瀏覽代碼

订单提交、修改、受理接口加入合同信息校验

yzc 2 年之前
父節點
當前提交
ead3a8f133
共有 1 個文件被更改,包括 37 次插入7 次删除
  1. 37 7
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

+ 37 - 7
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -369,10 +369,13 @@ public class KwoTradeOrderService {
         orderCheck.setGoodsId(param.getGoodsInfo().getGoodsId()).setUnitPrice(param.getGoodsInfo().getUnitPrice())
                 .setOrderSource(DictEnum.TORDER_SOURCE_2.getValue());
         orderCheck(orderCheck, false);
+        ContractInfo contract = param.getContractInfo();
+        contractCheck(contract);
+        param.setContractInfo(contract);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
         order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(OrderGenerateUtils.generateOrderNo(ORDER_NO_PREFIX))
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_2.getValue());
-        String contractStatus = param.getContractInfo().getContractStatus();
+        String contractStatus = contract.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
             order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
         } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -389,6 +392,29 @@ public class KwoTradeOrderService {
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
     }
 
+    /**
+     * @desc: 合同校验
+     * @author: yzc
+     * @date: 2023-08-24 10:54
+     * @Param contract:
+     * @return: void
+     */
+    private void contractCheck(ContractInfo contract) {
+        Map<Long, ContractCommonInfoResDto> map = remoteContractService.queryContractBaseInfo(List.of(contract.getContractId()));
+        ContractCommonInfoResDto contractInfo = map.get(contract.getContractId());
+        if (Objects.isNull(contractInfo)) {
+            throw new BusinessException("不存在该合同信息!");
+        }
+        Integer status = contractInfo.getStatus();
+        if (!Objects.equals(0, status) || !Objects.equals(1, status)) {
+            throw new BusinessException("合同状态异常!");
+        }
+        contract.setContractName(contract.getContractName());
+        contract.setContractNo(contractInfo.getContractCode());
+        contract.setContractSigningWay(contractInfo.getSigningWayName());
+        contract.setContractStatus(String.valueOf(status));
+    }
+
     /**
      * @desc: 获取订单详情
      * @author: yzc
@@ -527,7 +553,10 @@ public class KwoTradeOrderService {
             if (Objects.equals(source, DictEnum.TORDER_SOURCE_1.getValue())) {
                 order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
             } else {
-                String contractStatus = param.getContractInfo().getContractStatus();
+                ContractInfo contract = param.getContractInfo();
+                contractCheck(contract);
+                param.setContractInfo(contract);
+                String contractStatus = contract.getContractStatus();
                 if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
                     order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
                 } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -716,7 +745,9 @@ public class KwoTradeOrderService {
         orderCheck(orderCheck, true);
         //更新订单信息
         BeanUtils.copyProperties(param, order);
-        String contractStatus = param.getContractInfo().getContractStatus();
+        ContractInfo contractInfo = param.getContractInfo();
+        contractCheck(contractInfo);
+        String contractStatus = contractInfo.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
             order.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_3.getValue()));
         } else if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_1.getValue())) {
@@ -726,10 +757,9 @@ public class KwoTradeOrderService {
         }
         kwoTradeOrderMapper.updateById(order);
         //保存合同信息
-        ContractInfo contractInfo = param.getContractInfo();
-        KwoTradeOrderContract contract = BeanUtils.copyProperties(contractInfo, KwoTradeOrderContract.class);
-        contract.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo());
-        kwoTradeOrderContractService.insert(contract);
+        KwoTradeOrderContract tradeOrderContract = BeanUtils.copyProperties(contractInfo, KwoTradeOrderContract.class);
+        tradeOrderContract.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo());
+        kwoTradeOrderContractService.insert(tradeOrderContract);
         //订单状态记录
         KwoTradeOrderTrack track = new KwoTradeOrderTrack();
         track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setStatus(order.getStatus());