Compare commits
No commits in common. "f8f361881bc5cc655c929c7fb600fcb7d097a039" and "3f13341a3b7abd9e250a553ccb7c3cc0e946147f" have entirely different histories.
f8f361881b
...
3f13341a3b
|
|
@ -1,24 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.constant;
|
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典代码:check_status
|
|
||||||
* 字典名称:勘料状态
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public enum CheckStatus implements DictStr {
|
|
||||||
Wu("Wu", "无需勘料"),
|
|
||||||
|
|
||||||
YiKanLiao("YiKanLiao", "已勘料"),
|
|
||||||
|
|
||||||
WeiKanLiao("WeiKanLiao", "未勘料"),
|
|
||||||
|
|
||||||
;
|
|
||||||
private final String val;
|
|
||||||
|
|
||||||
private final String txt;
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.constant;
|
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典代码:payment_status
|
|
||||||
* 字典名称:支付状态
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public enum PaymentStatus implements DictStr {
|
|
||||||
MianFei("MianFei", "免费"),
|
|
||||||
|
|
||||||
WeiZhiFu("WeiZhiFu", "未支付"),
|
|
||||||
|
|
||||||
YiZhiFu("YiZhiFu", "已支付"),
|
|
||||||
|
|
||||||
YiTuiKuan("YiTuiKuan", "已退款"),
|
|
||||||
|
|
||||||
;
|
|
||||||
private final String val;
|
|
||||||
|
|
||||||
private final String txt;
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.constant;
|
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典代码:settlement_way
|
|
||||||
* 字典名称:结算方式
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public enum SettlementWay implements DictStr {
|
|
||||||
YueJie("YueJie", "月结"),
|
|
||||||
|
|
||||||
YuE("YuE", "余额"),
|
|
||||||
|
|
||||||
XianFu("XianFu", "现付"),
|
|
||||||
|
|
||||||
;
|
|
||||||
private final String val;
|
|
||||||
|
|
||||||
private final String txt;
|
|
||||||
}
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.constant;
|
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典代码:trans_status
|
|
||||||
* 字典名称:运输状态
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public enum TransStatus implements DictStr {
|
|
||||||
DaiPaiDan("DaiPaiDan", "待派单"),
|
|
||||||
|
|
||||||
DaiJieDan("DaiJieDan", "待接单"),
|
|
||||||
|
|
||||||
YiJieDan("YiJieDan", "已接单"),
|
|
||||||
|
|
||||||
YunShuZhong("YunShuZhong", "运输中"),
|
|
||||||
|
|
||||||
YiJinChang("YiJinChang", "已进场"),
|
|
||||||
|
|
||||||
YiChuChang("YiChuChang", "已出场"),
|
|
||||||
|
|
||||||
YiWanCheng("YiWanCheng", "已完成"),
|
|
||||||
|
|
||||||
YiQuXiao("YiQuXiao", "已取消"),
|
|
||||||
|
|
||||||
;
|
|
||||||
private final String val;
|
|
||||||
|
|
||||||
private final String txt;
|
|
||||||
}
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.constant;
|
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典代码:zx
|
|
||||||
* 字典名称:装/卸货
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public enum Zx implements DictStr {
|
|
||||||
ZhuangHuo("ZhuangHuo", "装货地址"),
|
|
||||||
|
|
||||||
XieHuo("XieHuo", "卸货地址"),
|
|
||||||
|
|
||||||
;
|
|
||||||
private final String val;
|
|
||||||
|
|
||||||
private final String txt;
|
|
||||||
}
|
|
||||||
|
|
@ -4,7 +4,6 @@ import com.njzscloud.common.core.utils.R;
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam;
|
|
||||||
import com.njzscloud.dispose.cst.order.service.OrderService;
|
import com.njzscloud.dispose.cst.order.service.OrderService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -14,7 +13,6 @@ import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收/销订单
|
* 收/销订单
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -29,8 +27,8 @@ public class OrderController {
|
||||||
* 新增
|
* 新增
|
||||||
*/
|
*/
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
public synchronized R<?> add(@RequestBody CreateOrderParam param) {
|
public R<?> add(@RequestBody OrderEntity orderEntity) {
|
||||||
orderService.add(param);
|
orderService.add(orderEntity);
|
||||||
return R.success();
|
return R.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@ import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收/销订单
|
* 收/销订单
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
|
@ -84,7 +84,7 @@ public class OrderEntity extends BaseEntity {
|
||||||
/**
|
/**
|
||||||
* 指派清运公司时间
|
* 指派清运公司时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime assignmentTransTime;
|
private BigDecimal assignmentTransTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站点 Id;cst_station.id
|
* 站点 Id;cst_station.id
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,11 @@ public class OrderTransEntity extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private Long orderId;
|
private Long orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点 Id
|
||||||
|
*/
|
||||||
|
private Long stationId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 运输状态;字典代码:trans_status,DaiPaiDan-->待派单、DaiJieDan-->待接单、YiJieDan-->已接单、YunShuZhong-->运输中、YiJinChang-->已进场、YiChuChang-->已出场、YiWanCheng-->已完成、YiQuXiao-->已取消
|
* 运输状态;字典代码:trans_status,DaiPaiDan-->待派单、DaiJieDan-->待接单、YiJieDan-->已接单、YunShuZhong-->运输中、YiJinChang-->已进场、YiChuChang-->已出场、YiWanCheng-->已完成、YiQuXiao-->已取消
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.pojo.param;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 装/卸货地信息
|
|
||||||
*
|
|
||||||
* @author ljw
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class CreateOrderCargoPlaceParam {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 省;代码
|
|
||||||
*/
|
|
||||||
private String province;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 市;代码
|
|
||||||
*/
|
|
||||||
private String city;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 区县;代码
|
|
||||||
*/
|
|
||||||
private String area;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 乡镇街道;代码
|
|
||||||
*/
|
|
||||||
private String town;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 省;名称
|
|
||||||
*/
|
|
||||||
private String provinceName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 市;名称
|
|
||||||
*/
|
|
||||||
private String cityName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 区县;名称
|
|
||||||
*/
|
|
||||||
private String areaName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 乡镇街道;名称
|
|
||||||
*/
|
|
||||||
private String townName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 详细地址
|
|
||||||
*/
|
|
||||||
private String address;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 经度
|
|
||||||
*/
|
|
||||||
private Double lng;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 纬度
|
|
||||||
*/
|
|
||||||
private Double lat;
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
package com.njzscloud.dispose.cst.order.pojo.param;
|
package com.njzscloud.dispose.cst.order.pojo.param;
|
||||||
|
|
||||||
|
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
|
||||||
|
import com.njzscloud.dispose.cst.project.pojo.entity.ProjectEntity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -11,13 +15,29 @@ import java.time.LocalDateTime;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class CreateOrderParam {
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class CreateOrderParamEntity extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单编号
|
||||||
|
*/
|
||||||
|
private String sn;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目 Id
|
* 项目 Id
|
||||||
*/
|
*/
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单人 Id;sys_user.id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单人客户 Id;cst_customer.id
|
||||||
|
*/
|
||||||
|
private Long customerId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下单人姓名
|
* 下单人姓名
|
||||||
*/
|
*/
|
||||||
|
|
@ -28,6 +48,11 @@ public class CreateOrderParam {
|
||||||
*/
|
*/
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下单时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime orderTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出
|
* 订单类型;字典代码:order_category,HuiShouYuYue-->回收预约单、XiaoShouYuYue-->销售预约单、DuanBoRu-->短驳入、DuanBoChu-->短驳出
|
||||||
*/
|
*/
|
||||||
|
|
@ -56,7 +81,7 @@ public class CreateOrderParam {
|
||||||
/**
|
/**
|
||||||
* 指派清运公司时间
|
* 指派清运公司时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime assignmentTransTime;
|
private BigDecimal assignmentTransTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 站点 Id;cst_station.id
|
* 站点 Id;cst_station.id
|
||||||
|
|
@ -104,9 +129,9 @@ public class CreateOrderParam {
|
||||||
private String customerMemo;
|
private String customerMemo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 装卸货信息
|
* 项目信息
|
||||||
*/
|
*/
|
||||||
private CreateOrderCargoPlaceParam cargoPlaceParam;
|
private ProjectEntity projectInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
package com.njzscloud.dispose.cst.order.pojo.vo;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ljw
|
|
||||||
* @apiNote
|
|
||||||
* @date 2025/12/20
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class Scope {
|
|
||||||
|
|
||||||
private String strategy;
|
|
||||||
|
|
||||||
@TableField(typeHandler = JsonTypeHandler.class)
|
|
||||||
private List<Long> ids;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -4,18 +4,16 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收/销订单
|
* 收/销订单
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
public interface OrderService extends IService<OrderEntity> {
|
public interface OrderService extends IService<OrderEntity> {
|
||||||
|
|
||||||
void add(CreateOrderParam param);
|
void add(OrderEntity orderEntity);
|
||||||
|
|
||||||
void modify(OrderEntity orderEntity);
|
void modify(OrderEntity orderEntity);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,21 @@
|
||||||
package com.njzscloud.dispose.cst.order.service.impl;
|
package com.njzscloud.dispose.cst.order.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.fastjson.Fastjson;
|
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.util.SecurityUtil;
|
|
||||||
import com.njzscloud.common.sn.support.SnUtil;
|
|
||||||
import com.njzscloud.dispose.cst.order.constant.*;
|
|
||||||
import com.njzscloud.dispose.cst.order.mapper.OrderMapper;
|
import com.njzscloud.dispose.cst.order.mapper.OrderMapper;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderCargoPlaceEntity;
|
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
import com.njzscloud.dispose.cst.order.pojo.entity.OrderEntity;
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderExpenseItemsEntity;
|
|
||||||
import com.njzscloud.dispose.cst.order.pojo.entity.OrderTransEntity;
|
|
||||||
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderCargoPlaceParam;
|
|
||||||
import com.njzscloud.dispose.cst.order.pojo.param.CreateOrderParam;
|
|
||||||
import com.njzscloud.dispose.cst.order.pojo.vo.Scope;
|
|
||||||
import com.njzscloud.dispose.cst.order.service.OrderCargoPlaceService;
|
|
||||||
import com.njzscloud.dispose.cst.order.service.OrderExpenseItemsService;
|
|
||||||
import com.njzscloud.dispose.cst.order.service.OrderService;
|
import com.njzscloud.dispose.cst.order.service.OrderService;
|
||||||
import com.njzscloud.dispose.cst.order.service.OrderTransService;
|
|
||||||
import com.njzscloud.dispose.finance.constant.ScopeStrategy;
|
|
||||||
import com.njzscloud.dispose.finance.pojo.entity.ExpenseItemEntity;
|
|
||||||
import com.njzscloud.dispose.finance.service.ExpenseItemService;
|
|
||||||
import com.njzscloud.dispose.sys.auth.pojo.result.MyResult;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收/销订单
|
* 收/销订单
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -44,56 +23,10 @@ import java.util.stream.Collectors;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderEntity> implements OrderService {
|
public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderEntity> implements OrderService {
|
||||||
|
|
||||||
private final OrderCargoPlaceService orderCargoPlaceService;
|
|
||||||
private final OrderTransService orderTransService;
|
|
||||||
private final ExpenseItemService expenseItemService;
|
|
||||||
private final OrderExpenseItemsService orderExpenseItemsService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void add(CreateOrderParam param) {
|
public void add(OrderEntity orderEntity) {
|
||||||
// 订单信息
|
|
||||||
param.setOrderStatus(OrderStatus.YiYuYue.getVal());
|
|
||||||
Long transOrgId = param.getTransOrgId();
|
|
||||||
OrderStatus orderStatus = transOrgId == null ? OrderStatus.YiYuYue : OrderStatus.JinXingZhong;
|
|
||||||
MyResult userDetail = SecurityUtil.loginUser();
|
|
||||||
OrderEntity orderEntity = BeanUtil.copyProperties(param, OrderEntity.class)
|
|
||||||
.setSn(this.generateSn())
|
|
||||||
.setUserId(SecurityUtil.currentUserId())
|
|
||||||
.setCustomerId(userDetail.getCurrentCustomerId())
|
|
||||||
.setOrderTime(LocalDateTime.now())
|
|
||||||
.setOrderStatus(orderStatus.getVal())
|
|
||||||
.setAssignmentTransTime(transOrgId == null ? null : LocalDateTime.now());
|
|
||||||
this.save(orderEntity);
|
this.save(orderEntity);
|
||||||
|
|
||||||
// 装卸货信息
|
|
||||||
CreateOrderCargoPlaceParam cargoPlace = param.getCargoPlaceParam();
|
|
||||||
OrderCargoPlaceEntity placeEntity = BeanUtil.copyProperties(cargoPlace, OrderCargoPlaceEntity.class)
|
|
||||||
.setOrderId(orderEntity.getId());
|
|
||||||
if (OrderCategory.HuiShouYuYue.getVal().equals(param.getOrderCategory())) {
|
|
||||||
placeEntity.setZx(Zx.ZhuangHuo.getVal());
|
|
||||||
} else if (OrderCategory.XiaoShouYuYue.getVal().equals(param.getOrderCategory())) {
|
|
||||||
placeEntity.setZx(Zx.XieHuo.getVal());
|
|
||||||
}
|
|
||||||
orderCargoPlaceService.add(placeEntity);
|
|
||||||
|
|
||||||
// 运输信息
|
|
||||||
int transNum = orderEntity.getEstimatedTrainNum();
|
|
||||||
OrderTransEntity transEntity = new OrderTransEntity();
|
|
||||||
transEntity.setOrderId(orderEntity.getId());
|
|
||||||
for (int i = 1; i <= transNum; i++) {
|
|
||||||
transEntity.setTrainNum(i);
|
|
||||||
transEntity.setTransStatus(transOrgId == null ? null : TransStatus.DaiPaiDan.getVal());
|
|
||||||
transEntity.setTransTime(transOrgId == null ? null : LocalDateTime.now());
|
|
||||||
transEntity.setCheckStatus(CheckStatus.WeiKanLiao.getVal());
|
|
||||||
transEntity.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal());
|
|
||||||
orderTransService.add(transEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 付费项
|
|
||||||
if (transOrgId != null) {
|
|
||||||
this.createOrderExpenseItems(orderEntity);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -117,100 +50,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderEntity> impl
|
||||||
public PageResult<OrderEntity> paging(PageParam pageParam, OrderEntity orderEntity) {
|
public PageResult<OrderEntity> paging(PageParam pageParam, OrderEntity orderEntity) {
|
||||||
return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(orderEntity)));
|
return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(orderEntity)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 生成订单号
|
|
||||||
*
|
|
||||||
* @return sn 订单号
|
|
||||||
*/
|
|
||||||
public String generateSn() {
|
|
||||||
String sn = SnUtil.next("Booking-Order-SN");
|
|
||||||
if (this.exists(Wrappers.<OrderEntity>lambdaQuery().eq(OrderEntity::getSn, sn).eq(OrderEntity::getDeleted, Boolean.FALSE))) {
|
|
||||||
this.generateSn();
|
|
||||||
}
|
|
||||||
return sn;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建订单付费项
|
|
||||||
*
|
|
||||||
* @param orderEntity 订单信息
|
|
||||||
*/
|
|
||||||
public void createOrderExpenseItems(OrderEntity orderEntity) {
|
|
||||||
// 读取启用的付费项配置,并按过滤
|
|
||||||
List<ExpenseItemEntity> itemEntityList = expenseItemService.list(Wrappers.<ExpenseItemEntity>lambdaQuery()
|
|
||||||
.eq(ExpenseItemEntity::getCanuse, Boolean.TRUE)
|
|
||||||
.eq(ExpenseItemEntity::getDeleted, Boolean.FALSE));
|
|
||||||
Long transOrgId = orderEntity.getTransOrgId();
|
|
||||||
Long goodsId = orderEntity.getGoodsId();
|
|
||||||
Long stationId = orderEntity.getStationId();
|
|
||||||
List<ExpenseItemEntity> goodsItems = itemEntityList.stream().filter(item ->
|
|
||||||
item.getGoodsId().equals(goodsId)).toList();
|
|
||||||
|
|
||||||
OrderExpenseItemsEntity goodsOrderItem = null;
|
|
||||||
if (!goodsItems.isEmpty()) {
|
|
||||||
goodsOrderItem = BeanUtil.copyProperties(goodsItems.getFirst(), OrderExpenseItemsEntity.class)
|
|
||||||
.setOrderId(orderEntity.getId())
|
|
||||||
.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OrderExpenseItemsEntity> extraItems = itemEntityList.stream()
|
|
||||||
.filter(cfg -> {
|
|
||||||
Scope userScope = Fastjson.toBean(cfg.getUserScope(), Scope.class);
|
|
||||||
Scope goodsScope = Fastjson.toBean(cfg.getGoodsScope(), Scope.class);
|
|
||||||
Scope stationsScope = Fastjson.toBean(cfg.getStationScope(), Scope.class);
|
|
||||||
List<Long> companyIds = userScope != null ? userScope.getIds() : null;
|
|
||||||
List<Long> goodsIds = goodsScope != null ? goodsScope.getIds() : null;
|
|
||||||
List<Long> stationsIds = stationsScope != null ? stationsScope.getIds() : null;
|
|
||||||
|
|
||||||
// 判断客户范围
|
|
||||||
boolean isComTrue;
|
|
||||||
if (userScope != null && ScopeStrategy.SuoYou.getVal().equals(userScope.getStrategy())) {
|
|
||||||
isComTrue = true; // 所有客户都匹配
|
|
||||||
} else {
|
|
||||||
isComTrue = companyIds != null && transOrgId != null && companyIds.contains(transOrgId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断产品范围
|
|
||||||
boolean isGoodsTrue;
|
|
||||||
if (goodsScope != null && ScopeStrategy.SuoYou.getVal().equals(goodsScope.getStrategy())) {
|
|
||||||
isGoodsTrue = true; // 所有产品都匹配
|
|
||||||
} else {
|
|
||||||
isGoodsTrue = goodsIds != null && goodsId != null && goodsIds.contains(goodsId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断站点范围
|
|
||||||
boolean isStationsTrue;
|
|
||||||
if (stationsScope != null && ScopeStrategy.SuoYou.getVal().equals(stationsScope.getStrategy())) {
|
|
||||||
isStationsTrue = true; // 所有站点都匹配
|
|
||||||
} else {
|
|
||||||
isStationsTrue = stationsIds != null && stationId != null && stationsIds.contains(stationId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 只有当三个条件都为true时,才返回true
|
|
||||||
return isComTrue && isGoodsTrue && isStationsTrue;
|
|
||||||
})
|
|
||||||
// 复制配置为订单付费项(数量口径与产品一致:按车=1,否则=settleWeight)
|
|
||||||
.map(cfg -> {
|
|
||||||
OrderExpenseItemsEntity entity = BeanUtil.copyProperties(cfg, OrderExpenseItemsEntity.class);
|
|
||||||
entity.setOrderId(orderEntity.getId());
|
|
||||||
entity.setPaymentStatus(PaymentStatus.WeiZhiFu.getVal());
|
|
||||||
return entity;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 第三步:合并集合并计算金额,然后批量落库
|
|
||||||
if (goodsOrderItem != null) {
|
|
||||||
extraItems.addFirst(goodsOrderItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extraItems.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 批量保存付费项
|
|
||||||
orderExpenseItemsService.saveBatch(extraItems);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
package com.njzscloud.dispose.finance.constant;
|
package com.njzscloud.dispose.finance.constant;
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import com.njzscloud.common.core.ienum.DictStr;
|
||||||
/**
|
/**
|
||||||
* 字典代码:payer
|
* 字典代码:payer
|
||||||
* 字典名称:付费方
|
* 字典名称:付费方
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
|
@ -17,7 +15,7 @@ public enum Payer implements DictStr {
|
||||||
|
|
||||||
ChanFei("ChanFei", "产废方"),
|
ChanFei("ChanFei", "产废方"),
|
||||||
|
|
||||||
QingYun("YunShuFang", "运输方"),
|
QingYun("QingYun", "清运方"),
|
||||||
|
|
||||||
XiaoNa("XiaoNa", "消纳方"),
|
XiaoNa("XiaoNa", "消纳方"),
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,17 @@
|
||||||
package com.njzscloud.dispose.finance.constant;
|
package com.njzscloud.dispose.finance.constant;
|
||||||
|
|
||||||
import com.njzscloud.common.core.ienum.DictStr;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import com.njzscloud.common.core.ienum.DictStr;
|
||||||
/**
|
/**
|
||||||
* 字典代码:scope_strategy
|
* 字典代码:scope_strategy
|
||||||
* 字典名称:适用用户
|
* 字典名称:适用用户
|
||||||
*
|
|
||||||
* @author ljw
|
* @author ljw
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public enum ScopeStrategy implements DictStr {
|
public enum ScopeStrategy implements DictStr {
|
||||||
|
|
||||||
Wu("Wu", "无"),
|
|
||||||
|
|
||||||
ZhiDing("ZhiDing", "指定"),
|
ZhiDing("ZhiDing", "指定"),
|
||||||
|
|
||||||
SuoYou("SuoYou", "所有"),
|
SuoYou("SuoYou", "所有"),
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, GoodsEntity> impl
|
||||||
expenseItem.setGoodsId(goodsEntity.getId());
|
expenseItem.setGoodsId(goodsEntity.getId());
|
||||||
expenseItem.setExpenseItemCategory(ExpenseItemCategory.ChanPin.getVal());
|
expenseItem.setExpenseItemCategory(ExpenseItemCategory.ChanPin.getVal());
|
||||||
expenseItem.setExpenseItemName(goodsEntity.getGoodsName());
|
expenseItem.setExpenseItemName(goodsEntity.getGoodsName());
|
||||||
|
// goodsScope默认传{strategy: 'ZhiDing',ids:[goodsEntity.getId()]}
|
||||||
|
expenseItem.setGoodsScope("{\"strategy\":\"ZhiDing\",\"ids\":[" + goodsEntity.getId() + "]}");
|
||||||
expenseItemService.save(expenseItem);
|
expenseItemService.save(expenseItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue