Просмотр исходного кода

修改自动派车的贸易订单审核bug

donglang 19 часов назад
Родитель
Сommit
2d9e55ed61

+ 15 - 0
sckw-modules-api/sckw-contract-api/src/main/java/com/sckw/contract/api/model/vo/LogisticsEntDtoVO.java

@@ -27,6 +27,21 @@ public class LogisticsEntDtoVO implements Serializable {
      */
     private String contractNo;
 
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 签约方式
+     */
+    private String contractSigningWay;
+
+    /**
+     * 合同状态
+     */
+    private String contractStatus;
+
     /**
      * 开始时间
      */

+ 3 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/operateService/KwcContractTradeService.java

@@ -2257,6 +2257,9 @@ public class KwcContractTradeService {
             LogisticsEntDtoVO vo = new LogisticsEntDtoVO();
             vo.setContractId(log.getId());
             vo.setContractNo(log.getContractNo());
+            vo.setContractName(log.getName());
+            vo.setContractSigningWay(String.valueOf(log.getSigningWay()));
+            vo.setContractStatus(String.valueOf(log.getStatus()));
             vo.setStartTime(log.getStartTime());
             vo.setEndTime(log.getEndTime());
             vo.setCommonPrice(log.getCommonPrice());

+ 35 - 5
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -808,6 +808,7 @@ public class KwoTradeOrderService {
                     contractInfo.setContractName(c.getContactName());
                     contractInfo.setContractSigningWay(c.getSigningWayName());
                     contractInfo.setContractStatus(c.getStatusName());
+                    contractInfo.setDispatchWay(c.getDispatchWay());
                 });
                 return contractInfo;
             }).collect(Collectors.toList());
@@ -824,9 +825,41 @@ public class KwoTradeOrderService {
                 return transportUnitInfo;
             }).collect(Collectors.toList());
             detail.setUnitInfoList(collect1);
+        } else {
+            //自动派单
+            if (detail.getContractInfo() != null && DispatchWayEnums.AUTO_DISPATCH.getCode().equals(detail.getContractInfo().getDispatchWay())) {
+                //查询销售企业
+                KwoTradeOrderUnit tradeOrderUnit = units.stream().filter(unit -> String.valueOf(Global.NUMERICAL_TWO).equals(unit.getUnitType())).findFirst().orElse(null);
+                //
+                Long goodsId = detail.getGoodsInfo().getGoodsId();
+                //查询满足自动派单的物流合同
+                List<LogisticsEntDtoVO> contractLogisticsList = remoteContractService.queryAutoContractLogOrder(tradeOrderUnit.getEntId(), Lists.newArrayList(goodsId));
+                List<LogisticsEntDtoVO> validContractLogList = contractLogisticsList.stream().filter(Objects::nonNull)
+                        .filter(log -> log.getStartTime() != null)
+                        .filter(log -> {
+                            // 有效期:物流合同开始时间 <= 当前时间
+                            return !log.getStartTime().after(new Date());
+                        }).collect(Collectors.toList());
+                if (CollectionUtils.isEmpty(validContractLogList)) {
+                    throw new BusinessException("未找到该商品有效的自动派车物流合同,请先签订自动派车物流合同");
+                }
+                List<ContractInfo> contractInfoList = validContractLogList.stream().map(d -> {
+                    ContractInfo contractInfo = new ContractInfo();
+                    contractInfo.setContractId(d.getContractId());
+                    contractInfo.setContractNo(d.getContractNo());
+
+                    contractInfo.setContractName(d.getContractName());
+                    contractInfo.setContractSigningWay(d.getContractSigningWay());
+                    contractInfo.setContractStatus(d.getContractStatus());
+                    contractInfo.setDispatchWay(DispatchWayEnums.AUTO_DISPATCH.getCode());
 
+                    return contractInfo;
+                }).collect(Collectors.toList());
+                detail.setContractInfoList(contractInfoList);
+            }
         }
 
+
         //todo 关联物流订单信息
         return detail;
     }
@@ -2414,11 +2447,8 @@ public class KwoTradeOrderService {
         List<LogisticsEntDtoVO> validContractLog = contractLogisticsList.stream().filter(Objects::nonNull)
                 .filter(log -> log.getStartTime() != null)
                 .filter(log -> {
-                    // 开始时间:物流合同开始时间 ≥ 贸易合同开始时间
-                    boolean startTimeOk = !log.getStartTime().before(tradeContractResDto.getStartTime());
-                    // 结束时间:物流合同开始时间 <= 贸易合同开始时间
-                    boolean endTimeOk = log.getEndTime() == null || tradeContractResDto.getEndTime() == null || !log.getEndTime().after(tradeContractResDto.getEndTime());
-                    return startTimeOk && endTimeOk;
+                    // 有效期:物流合同开始时间 <= 当前时间
+                    return !log.getStartTime().after(new Date());
                 }).collect(Collectors.toList());
         if (CollectionUtils.isEmpty(validContractLog)) {
             throw new BusinessException("未找到该商品有效的自动派车物流合同,请先签订自动派车物流合同");