Răsfoiți Sursa

承运订单-分包托运

lengfaqiang 2 ani în urmă
părinte
comite
1da98b1ae8

+ 1 - 1
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwLogisticsOrder.java

@@ -207,7 +207,7 @@ public class SckwLogisticsOrder {
     /**
      * 合同主键
      */
-    private Integer contractId;
+    private String contractId;
 
     /**
      * 合同编号

+ 9 - 5
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwConsignService.java

@@ -1,6 +1,7 @@
 package com.sckw.report.service;
 
 import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -100,7 +101,8 @@ public class KwConsignService {
 
         Query query1 = new Query(criteria);
         //in查询
-        if (CollectionUtils.isNotEmpty(query.getIds())) {
+        List<String> stringList = StringUtils.splitStrToList(query.getIds(), StringConstant.COMMA, String.class);
+        if (CollectionUtils.isNotEmpty(stringList)) {
             query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
         }
         // 12. 总记录数
@@ -193,7 +195,8 @@ public class KwConsignService {
             criteria.and("carrierEntId").is(LoginUserHolder.getEntId());
         }
         criteria.and("delFlag").is(String.valueOf(NumberConstant.ZERO));
-        if (CollectionUtils.isEmpty(query.getIds())) {
+        List<String> stringList = StringUtils.splitStrToList(query.getIds(), StringConstant.COMMA, String.class);
+        if (CollectionUtils.isEmpty(stringList)) {
             if (StringUtils.isNotBlank(query.getLoadAddress())) {
                 criteria.and("loadDetailAddress").is(query.getLoadAddress());
             }
@@ -224,12 +227,12 @@ public class KwConsignService {
                 criteria.orOperator(c1, c2, c3, c4, c5);
             }
             query1.addCriteria(criteria);
-            if (CollectionUtils.isNotEmpty(query.getIds())) {
+            if (CollectionUtils.isNotEmpty(stringList)) {
                 query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
             }
         } else {
             query1.addCriteria(criteria);
-            if (CollectionUtils.isNotEmpty(query.getIds())) {
+            if (CollectionUtils.isNotEmpty(stringList)) {
                 query1.addCriteria(Criteria.where("lOrderId").in(query.getIds()));
             }
         }
@@ -317,7 +320,8 @@ public class KwConsignService {
             criteria.andOperator(Criteria.where("createTime").gte(param.getStartDateTime()), Criteria.where("createTime")
                     .lte(param.getEndDateTime()));
         }
-        if (CollectionUtils.isNotEmpty(param.getIds())) {
+        List<String> stringList = StringUtils.splitStrToList(param.getIds(), StringConstant.COMMA, String.class);
+        if (CollectionUtils.isNotEmpty(stringList)) {
             criteria = Criteria.where("lOrderId").in(param.getIds());
         }
         //多条件模糊查询

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/AcceptCarriageOrderController.java

@@ -105,7 +105,7 @@ public class AcceptCarriageOrderController {
      * @return
      */
     @RequestMapping(value = "/subcontractConsignment", method = RequestMethod.POST)
-    public HttpResult subcontractConsignment(SubcontractConsignmentDTO query) {
+    public HttpResult subcontractConsignment(@RequestBody SubcontractConsignmentDTO query) {
         try {
             return acceptCarriageOrderService.subcontractConsignment(query);
         } catch (Exception e) {

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/LogisticsConsignmentController.java

@@ -45,7 +45,7 @@ public class LogisticsConsignmentController {
         try {
             return logisticsConsignmentService.purchaseLogisticsConsignment(logisticsConsignmentParam);
         } catch (Exception e) {
-            log.error("物流托运 error :{}", e.getMessage(), e);
+            log.error("采购订单-物流托运生成托运订单 error :{}", e.getMessage(), e);
             return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
         }
     }

+ 5 - 27
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/SubcontractConsignmentDTO.java

@@ -17,7 +17,7 @@ import java.util.Date;
  * @date 2023-06-26 17:06:52
  */
 @Data
-public class SubcontractConsignmentDTO {
+public class SubcontractConsignmentDTO /**implements IdsList*/ {
 
     /**
      *总量
@@ -44,12 +44,12 @@ public class SubcontractConsignmentDTO {
     private String checkCompanyId;
 
     /**
-     * 联系电话
+     * 托运联系电话
      */
     @NotNull(message = "托运联系电话不能为空")
     private String checkContactPhone;
     /**
-     * 联系人
+     * 托运联系人
      */
     @NotNull(message = "托运联系人不能为空")
     private String checkContacts;
@@ -86,12 +86,12 @@ public class SubcontractConsignmentDTO {
     private String consignCompanyId;
 
     /**
-     * 联系电话
+     * 承运联系电话
      */
     @NotNull(message = "承运联系电话不能为空")
     private String consignContactPhone;
     /**
-     * 联系人
+     * 承运联系人
      */
     @NotNull(message = "承运联系人不能为空")
     private String consignContacts;
@@ -203,28 +203,6 @@ public class SubcontractConsignmentDTO {
     @NotNull(message = "计费方式不能为空")
     private String billingMode;
 
-    /**
-     *订单编号
-     */
-    @NotBlank(message = "订单编号不能为空")
-    private String orderId;
-
-    /**
-     * 承运单位
-     */
-    @NotBlank(message = "承运单位不能为空")
-    private String acceptCarriageCompany;
-
-    /**
-     * 运价
-     */
-    private Long freight;
-
-    /**
-     * 合理耗损
-     */
-    private Long wastage;
-
     /**
      * 扣亏货值
      */

+ 39 - 23
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -16,10 +16,7 @@ import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
-import com.sckw.core.utils.CollectionUtils;
-import com.sckw.core.utils.IdWorker;
-import com.sckw.core.utils.RegularUtils;
-import com.sckw.core.utils.StringUtils;
+import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
@@ -154,33 +151,35 @@ public class AcceptCarriageOrderService {
         KwtLogisticsOrder logisticsOrder = logisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
                 .eq(KwtLogisticsOrder::getId, bo.getLOrderId()));
         if (logisticsOrder == null) {
-            log.error("订单id查找失败:{},订单编号:{}", bo.getOrderId(), bo.getLOrderNo());
+            log.error("订单id查找失败:{},订单编号:{}", bo.getLOrderId(), bo.getLOrderNo());
             throw new RuntimeException("单据错误,数据不存在");
         }
         //todo  校验当前登录角色是否具有4P物流角色
         EntCacheResDto entCacheResDto = remoteSystemService.queryEntCacheById(LoginUserHolder.getEntId());
-        if (entCacheResDto == null) {
-            log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
-            throw new RuntimeException("企业信息查询异常");
-        }
-        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
-            throw new RuntimeException("当前用户企业不具有分包功能权限!");
-        }
+//        if (entCacheResDto == null) {
+//            log.info("承运订单-分包托运 用户id:{}", LoginUserHolder.getUserId());
+//            throw new RuntimeException("企业信息查询异常");
+//        }
+//        if (!entCacheResDto.getEntTypes().contains(String.valueOf(NumberConstant.THREE))) {
+//            throw new RuntimeException("当前用户企业不具有分包功能权限!");
+//        }
         KwtLogisticsOrder order = new KwtLogisticsOrder();
         if (!bo.getIsFullDose()) {
             Long amount = bo.getAmount();
             Long carryingCapacity = bo.getCarryingCapacity();
             if (carryingCapacity > amount) {
-                log.error("运订单分包托运-可分配量分配错误:{}", bo.getOrderId());
+                log.error("运订单分包托运-可分配量分配错误:{}", bo.getLOrderId());
                 throw new RuntimeException("可分配量分配错误");
             }
             if (ArrayUtil.isEmpty(bo.getCarryingCapacity())) {
                 throw new RuntimeException("不是全量分配时,分配量不能为空!");
             }
             order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
+            order.setUnit(bo.getCarryingCapacityUnit());
         } else {
             order.setAmount(new BigDecimal(NumberConstant.ZERO));
             order.setSubcontractAmount(new BigDecimal(NumberConstant.ZERO));
+            order.setUnit(bo.getCarryingCapacityUnit());
         }
         String lOrderNo = com.sckw.transport.utils.StringUtils.getLOrderNo();
         Long orderId = new IdWorker(NumberConstant.ONE).nextId();
@@ -229,13 +228,26 @@ public class AcceptCarriageOrderService {
             throw new RuntimeException("生成物流托运合同异常");
         }
         insertSubcontractLogisticsGoods(bo, lOrderNo, orderId);
-        insertSubcontractLogisticsOrder(bo, lOrderNo, order, orderId, pids, orderStatus);
+        insertSubcontractLogisticsOrder(bo, lOrderNo, order, orderId, pids, orderStatus,logisticsOrder);
         insertSubcontractLogisticsOrderContract(bo, orderId);
         insertSubcontractLogisticsOrderUnit(bo, orderId);
         insertSubcontractLogisticsOrderAddress(bo, orderId, logisticsOrder);
         insertLogisticsOrderTrack(bo, orderId, orderStatus);
         //修改上级分配量以及可分配量委托量等
         logisticsOrder.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())));
+        logisticsOrderMapper.updateById(logisticsOrder);
+        //修改父级mongodb数据
+        //更新mongodb
+        SckwLogisticsOrder sckwLogisticsOrder = mongoTemplate.findById(logisticsOrder.getId(), SckwLogisticsOrder.class);
+        SckwLogisticsOrder updateParam = BeanUtils.copyProperties(sckwLogisticsOrder, SckwLogisticsOrder.class);
+        updateParam.setSubcontractAmount(logisticsOrder.getSubcontractAmount().add(new BigDecimal(bo.getCarryingCapacity())))
+                .setUpdateTime(new Date()).setUpdateBy(LoginUserHolder.getUserId()).setUpdateByName(LoginUserHolder.getUserName());
+        SckwBusSum busSum = new SckwBusSum();
+        busSum.setBusSumType(BusinessTypeEnum.LOGISTICS_ORDER_TYPE.getName());
+        busSum.setMethod(NumberConstant.TWO);
+        busSum.setObject(updateParam);
+        streamBridge.send("sckw-busSum", com.alibaba.fastjson2.JSON.toJSONString(busSum));
+        //新增当前分包mongodb数据
         subcontractSendMongoDB(lOrderNo, orderId, bo, logisticsOrder, orderStatus);
         return HttpResult.ok();
     }
@@ -289,7 +301,7 @@ public class AcceptCarriageOrderService {
         KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
         logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
         logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
-        logisticsOrder.setContractId(Integer.parseInt(bo.getContractId()));
+        logisticsOrder.setContractId(bo.getContractId());
         logisticsOrder.setContractNo(bo.getContractNo());
         logisticsOrder.setContractName(bo.getContractName());
         logisticsOrder.setContractSigningWay(bo.getPayment());
@@ -480,16 +492,17 @@ public class AcceptCarriageOrderService {
 
     /**
      * 分包托运-承运订单-主体
-     *
-     * @param bo
-     * @param lOrderNo
-     * @param order
-     * @param orderId
-     * @param pids
+     * @param bo    页面填写分包数据
+     * @param lOrderNo  当前分包物流订单编号
+     * @param order 父级物流订单数据
+     * @param orderId   当前订单主键id
+     * @param pids  组装的pids
+     * @param orderStatus   当前单据状态
+     * @param logisticsOrder   父级物流订单
      */
     private void insertSubcontractLogisticsOrder(SubcontractConsignmentDTO bo, String lOrderNo,
                                                  KwtLogisticsOrder order,
-                                                 Long orderId, String pids, Integer orderStatus) {
+                                                 Long orderId, String pids, Integer orderStatus,KwtLogisticsOrder logisticsOrder) {
         order.setId(orderId);
         order.setEntId(LoginUserHolder.getEntId());
         order.setTOrderId(order.getTOrderId());
@@ -506,7 +519,7 @@ public class AcceptCarriageOrderService {
         order.setAmount(new BigDecimal(bo.getCarryingCapacity()));
         order.setBillingMode(bo.getBillingMode());
         order.setLoss(new BigDecimal(bo.getLoss()));
-        order.setLossUnit(bo.getLossUnit());
+//        order.setLossUnit(bo.getLossUnit());
         order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
         order.setGoodsPrice(new BigDecimal(bo.getGoodsPrice()));
@@ -523,6 +536,7 @@ public class AcceptCarriageOrderService {
         order.setUpdateBy(LoginUserHolder.getUserId());
         order.setUpdateTime(new Date());
         order.setStatus(orderStatus);
+        /**补充默认值*/
         BigDecimal decimal = new BigDecimal(NumberConstant.ZERO);
         order.setEntrustAmount(decimal);
         order.setSubcontractAmount(decimal);
@@ -531,6 +545,8 @@ public class AcceptCarriageOrderService {
         order.setIgnoreAmount(decimal);
         order.setDeficitPrice(decimal);
         order.setDeficitAmount(decimal);
+        order.setTOrderId(logisticsOrder.getTOrderId());
+        order.setTOrderNo(logisticsOrder.getTOrderNo());
         kwtLogisticsOrderMapper.insert(order);
     }
 

+ 4 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/LogisticsConsignmentService.java

@@ -258,7 +258,7 @@ public class LogisticsConsignmentService {
         KwpGoods goods = goodsInfoService.getGoodsById(Long.parseLong(bo.getGoodsId()));
         logisticsOrder.setGoodsType(goods == null ? null : goods.getGoodsType());
         logisticsOrder.setGoodsSpec(goods == null ? null : goods.getSpec());
-        logisticsOrder.setContractId(Integer.parseInt(bo.getContractId()));
+        logisticsOrder.setContractId(bo.getContractId());
         logisticsOrder.setContractNo(bo.getContractNo());
         logisticsOrder.setContractName(bo.getContractName());
         logisticsOrder.setContractSigningWay(bo.getPayment());
@@ -411,7 +411,8 @@ public class LogisticsConsignmentService {
         order.setTOrderNo(bo.getTOrderNo());
         order.setLOrderNo(lOrderNo);
         order.setPid(null);
-        order.setPids(orderId + StringConstant.COMMA);
+//        order.setPids(orderId + StringConstant.COMMA);
+        order.setPids(String.valueOf(orderId));
         order.setSettlementCycle(bo.getSettlementCycle());
         order.setPrice(new BigDecimal(bo.getPrice()));
         order.setPriceType(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.PRICE_TYPE.getType(), bo.getPriceType()) == null ?
@@ -420,7 +421,7 @@ public class LogisticsConsignmentService {
         order.setBillingMode(bo.getBillingMode());
         order.setUnit(bo.getCarryingCapacityUnit());
         order.setLoss(new BigDecimal(bo.getLoss()));
-        order.setLossUnit(bo.getLossUnit());
+//        order.setLossUnit(bo.getLossUnit());
         order.setLossUnit(remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()) == null ?
                 null : remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.UNIT_TYPE.getType(), bo.getLossUnit()).getValue());
         order.setGoodsPrice(new BigDecimal(bo.getGoodsPrice()));