Ver Fonte

费用复制优化

wanghao há 1 mês atrás
pai
commit
039e2f3814

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/controller/PtlAgreementCostController.java

@@ -120,8 +120,8 @@ public class PtlAgreementCostController {
     @PostMapping("copyCost")
     @PostMapping("copyCost")
     public HttpResult copyCost(@RequestBody PtlAgreementCostCopyParam costCopyParam){
     public HttpResult copyCost(@RequestBody PtlAgreementCostCopyParam costCopyParam){
         try{
         try{
-            List<String> newCostIds = ptlAgreementCostService.costCopy(costCopyParam);
-            return HttpResult.ok(newCostIds);
+             return ptlAgreementCostService.costCopy(costCopyParam);
+
         }catch (Exception e){
         }catch (Exception e){
             return HttpResult.error("复制费用异常:"+e.getMessage());
             return HttpResult.error("复制费用异常:"+e.getMessage());
         }
         }

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/service/PtlAgreementCostService.java

@@ -62,7 +62,7 @@ public interface PtlAgreementCostService extends IService<PtlAgreementCost> {
     /**
     /**
      * 复制费用
      * 复制费用
      */
      */
-    List<String> costCopy(PtlAgreementCostCopyParam costCopyParam);
+    HttpResult costCopy(PtlAgreementCostCopyParam costCopyParam);
 
 
     /**
     /**
      * 批量修改协议费用有效期
      * 批量修改协议费用有效期

+ 63 - 53
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementCostServiceImpl.java

@@ -393,66 +393,76 @@ public class PtlAgreementCostServiceImpl extends ServiceImpl<PtlAgreementCostMap
 
 
     @GlobalTransactional
     @GlobalTransactional
     @Override
     @Override
-    public List<String> costCopy(PtlAgreementCostCopyParam costCopyParam) {
+    public HttpResult costCopy(PtlAgreementCostCopyParam costCopyParam) {
         List<String> newCostId = new ArrayList<>();
         List<String> newCostId = new ArrayList<>();
         List<String> costIds = costCopyParam.getCostIds();
         List<String> costIds = costCopyParam.getCostIds();
+        StringBuilder errMsg = new StringBuilder();
         costIds.forEach(oldCostId-> {
         costIds.forEach(oldCostId-> {
             PtlAgreementCost ptlAgreementCost = ptlAgreementCostMapper.selectById(oldCostId);
             PtlAgreementCost ptlAgreementCost = ptlAgreementCostMapper.selectById(oldCostId);
-            List<PtlAgreementCostType> ptlAgreementCostTypes = ptlAgreementCostTypeMapper.selectList(new LambdaQueryWrapper<PtlAgreementCostType>()
-                    .eq(PtlAgreementCostType::getPtlAgreementCostId, ptlAgreementCost.getId()));
-            List<PtlAgreementCostRule> ptlAgreementCostRules = ptlAgreementCostRuleMapper.selectList(new LambdaQueryWrapper<PtlAgreementCostRule>()
-                    .eq(PtlAgreementCostRule::getPtlAgreementCostId, ptlAgreementCost.getId()));
-
-            // 调整数据 进行copy
-            String costId = IdGenerate.nextId();
-            ptlAgreementCost.setId(costId);
-            ptlAgreementCost.setCoverRuleId(costCopyParam.getCoverRuleId());
-            ptlAgreementCost.setPtlAgreementId(costCopyParam.getAgreementId());
-            ptlAgreementCost.setCostDescribe("复制的费用:" + ptlAgreementCost.getCostDescribe());
-            ptlAgreementCost.setCreateTime(LocalDateTime.now());
-            ptlAgreementCost.setUpdateTime(LocalDateTime.now());
-            ptlAgreementCost.setProductId(costCopyParam.getProductId());
-            ptlAgreementCost.setProductName(costCopyParam.getProductName());
-            // 复制的费用为待审核
-            ptlAgreementCost.setApproved(0);
-
-
-            List<PtlAgreementCostType> newPtlAgreementCostTypes = ptlAgreementCostTypes.stream()
-                    .filter(item -> {
-                        String productId = costCopyParam.getProductId();
-                        // 单交剔除 CostType = 商业险
-                        if ("0330".equals(productId)) {
-                            return !"商业险".equals(item.getCostType());
-                        }
-                        // 单商剔除 CostType = 交强险
-                        if ("034001".equals(productId)) {
-                            return !"交强险".equals(item.getCostType());
-                        }
-                        // 单三剔除 CostType = 交强险
-                        if ("034002".equals(productId)) {
-                            return !"交强险".equals(item.getCostType());
-                        }
-                        return true;
-                    })
-                    .peek(item -> {
-                        // 给留存的元素赋值字段
-                        item.setId(IdGenerate.nextId());
-                        item.setPtlAgreementCostId(costId);
-                    })
-                    .collect(Collectors.toList());
-
-            ptlAgreementCostRules.forEach(item->{
-                item.setId(IdGenerate.nextId());
-                item.setPtlAgreementCostId(costId);
-            });
+            if(ptlAgreementCost != null){
+                List<PtlAgreementCostType> ptlAgreementCostTypes = ptlAgreementCostTypeMapper.selectList(new LambdaQueryWrapper<PtlAgreementCostType>()
+                        .eq(PtlAgreementCostType::getPtlAgreementCostId, ptlAgreementCost.getId()));
+                List<PtlAgreementCostRule> ptlAgreementCostRules = ptlAgreementCostRuleMapper.selectList(new LambdaQueryWrapper<PtlAgreementCostRule>()
+                        .eq(PtlAgreementCostRule::getPtlAgreementCostId, ptlAgreementCost.getId()));
+
+                // 调整数据 进行copy
+                String costId = IdGenerate.nextId();
+                ptlAgreementCost.setId(costId);
+                ptlAgreementCost.setCoverRuleId(costCopyParam.getCoverRuleId());
+                ptlAgreementCost.setPtlAgreementId(costCopyParam.getAgreementId());
+                ptlAgreementCost.setCostDescribe("复制的费用:" + ptlAgreementCost.getCostDescribe());
+                ptlAgreementCost.setCreateTime(LocalDateTime.now());
+                ptlAgreementCost.setUpdateTime(LocalDateTime.now());
+                if(costCopyParam.getProductId() != null && !costCopyParam.getProductId().isEmpty()){
+                    ptlAgreementCost.setProductId(costCopyParam.getProductId());
+                }
+                if(costCopyParam.getProductName() != null && !costCopyParam.getProductName().isEmpty()){
+                    ptlAgreementCost.setProductName(costCopyParam.getProductName());
+                }
+
+                // 复制的费用为待审核
+                ptlAgreementCost.setApproved(0);
+                List<PtlAgreementCostType> newPtlAgreementCostTypes = ptlAgreementCostTypes.stream()
+                        .filter(item -> {
+                            String productId = costCopyParam.getProductId();
+                            // 单交剔除 CostType = 商业险
+                            if ("0330".equals(productId)) {
+                                return !"商业险".equals(item.getCostType());
+                            }
+                            // 单商剔除 CostType = 交强险
+                            if ("034001".equals(productId)) {
+                                return !"交强险".equals(item.getCostType());
+                            }
+                            // 单三剔除 CostType = 交强险
+                            if ("034002".equals(productId)) {
+                                return !"交强险".equals(item.getCostType());
+                            }
+                            return true;
+                        })
+                        .peek(item -> {
+                            // 给留存的元素赋值字段
+                            item.setId(IdGenerate.nextId());
+                            item.setPtlAgreementCostId(costId);
+                        })
+                        .collect(Collectors.toList());
+
+                ptlAgreementCostRules.forEach(item->{
+                    item.setId(IdGenerate.nextId());
+                    item.setPtlAgreementCostId(costId);
+                });
+
+                ptlAgreementCostMapper.insert(ptlAgreementCost);
+                ptlAgreementCostTypeMapper.insert(newPtlAgreementCostTypes);
+                ptlAgreementCostRuleMapper.insert(ptlAgreementCostRules);
+                newCostId.add(ptlAgreementCost.getId());
+
+            }else{
+                errMsg.append("costId为"+oldCostId+"的费用信息已被删除");
+            }
 
 
-            ptlAgreementCostMapper.insert(ptlAgreementCost);
-            ptlAgreementCostTypeMapper.insert(newPtlAgreementCostTypes);
-            ptlAgreementCostRuleMapper.insert(ptlAgreementCostRules);
-            newCostId.add(ptlAgreementCost.getId());
 
 
         });
         });
-        return newCostId;
+        return HttpResult.ok(errMsg.toString(),newCostId);
     }
     }
 
 
     @Override
     @Override