Sfoglia il codice sorgente

费用因子数据不一致

wks 1 anno fa
parent
commit
b1d47f9266

+ 16 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsAttrLink.java

@@ -10,6 +10,10 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * 协议费用与规则属性关联表
  */
@@ -50,10 +54,22 @@ public class PtlAgreementProductCostsAttrLink {
     @TableField(value = "max")
     private String max;
 
+    @ApiModelProperty(value = "是否相同")
+    @TableField(value = "max")
+    private Integer same;
+
     @TableField(exist = false)
     private JSONArray dictLabal;
 
     @ApiModelProperty(value = "关联属性使用")
     @TableField(exist = false)
     private PtlAgreementProductCostsAttrLink children;
+
+//    public static boolean beforeAndAfterTheChange(List<PtlAgreementProductCostsAttrLink> before, List<PtlAgreementProductCostsAttrLink> after) {
+//        Map<String, PtlAgreementProductCostsAttrLink> collect = before.stream().collect(Collectors.toMap(PtlAgreementProductCostsAttrLink::getAttrCode, x -> x));
+//
+//
+//
+//    }
+
 }

+ 15 - 4
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsAttrLinkService.java

@@ -5,11 +5,22 @@ import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
 
+import java.util.List;
+
 /**
-*@author: tz
-*@description: 协议承保规则属性 service
-*@create: 2024-2-22 15:44:29
-*/
+ * @author: tz
+ * @description: 协议承保规则属性 service
+ * @create: 2024-2-22 15:44:29
+ */
 public interface PtlAgreementProductCostsAttrLinkService extends IService<PtlAgreementProductCostsAttrLink> {
 
+    /**
+     * 通过费用id 获取费用因子
+     *
+     * @param costsId 费用id
+     * @return 费用因子列表
+     */
+    default List<PtlAgreementProductCostsAttrLink> getByCostsId(String costsId) {
+        return lambdaQuery().eq(PtlAgreementProductCostsAttrLink::getCostsId, costsId).list();
+    }
 }

+ 10 - 16
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -829,27 +829,21 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         }
         ptlAgreementProductCostsExportService.saveOrUpdate(ptlAgreementProductCostsExport);
 
-        //保存产品费用历史记录
-        PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
-        BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsNewHistory);
-        //添加费用ID
-        ptlAgreementProductCostsNewHistory.setId(IdGenerate.nextId());
-        ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
-        //生成批次ID
+        //保存产品费用历史记录.
         String uuid = IdGenerate.nextId();
-        ptlAgreementProductCostsNewHistory.setBatch(uuid);
-        ptlAgreementProductCostsNewHistory.setProductId(newProjectId);
-        ptlAgreementProductCostsNewHistory.setProductName(newProjectName);
-        ptlAgreementProductCostsNewHistory.setOperatorType("update");
-        ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
-        ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
+        String userId = BaseController.getUser().getId();
+        PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory(ptlAgreementProductCostsNew, ptlAgreementProductCostsExport, OperatorType.UPDATE, uuid, userId);
+        BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsNewHistory);
         ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
 
+        // 获取上次提交的信息
+        List<PtlAgreementProductCostsAttrLink> ptlAgreementProductCostsAttrLinkList = ptlAgreementProductCostsAttrLinkService.getByCostsId(ptlAgreementProductCostsNew.getId());
+        List<String> costsAttrLinkId = ptlAgreementProductCostsAttrLinkList.stream().map(PtlAgreementProductCostsAttrLink::getCostsId).collect(Collectors.toList());
 
         //设置费用因子属性
         //先删除属性值
-        ptlAgreementProductCostsAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>()
-                .eq(PtlAgreementProductCostsAttrLink::getCostsId, ptlAgreementProductCostsNew.getId()));
+        ptlAgreementProductCostsAttrLinkService.removeBatchByIds(costsAttrLinkId);
+
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
         //创建产品费用因子历史记录容器
         List<PtlAgreementProductCostsAttrLinkHistory> costsAttrLinkHistories = new ArrayList<>();
@@ -912,7 +906,6 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                         BeanUtils.copyProperties(x, costsAttrLinkHistory);
                         costsAttrLinkHistory.setId(null);
                         costsAttrLinkHistory.setBatch(uuid);
-
                         costsAttrLinkHistory.setOperatorType("update");
                         costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
                         costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
@@ -923,6 +916,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         });
         //保存产品费用因子历史记录
         ptlAgreementProductCostsAttrLinkHistoryService.saveBatch(costsAttrLinkHistories);
+
         ptlAgreementProductCostsAttrLinkService.saveBatch(costsAttrLink);
         //添加费用因子轨迹
         ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(), "修改费用因子", BaseController.getUser().getId());

+ 12 - 8
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java

@@ -158,29 +158,33 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
      * @return
      */
     private String buildDesc(List<PtlAgreementUndwrtRulesAttrLink> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
-        String desc = "";
+        StringBuilder desc = new StringBuilder();
         for (int i = 0; i < v.size(); i++) {
             int finalI = i;
-            PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(x -> x.getAttrCode().equals(v.get(finalI).getAttrCode())).findAny().get();
+            PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream()
+                    .filter(x -> x.getAttrCode().equals(v.get(finalI).getAttrCode()))
+                    .findAny()
+                    .get();
             //数值范围判断
+
             if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
-                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+                desc.append(inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i))).append("\n");
             }
             if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
-                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+                desc.append(radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i))).append("\n");
             }
             if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
-                desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
+                desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(v.get(i).getMin()).append("\n");
             }
             if ("input".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                 if (v.get(i).getOperator() != null && v.get(i).getOperator().equals("1")) {
-                    desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
+                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(v.get(i).getMin()).append("\n");
                 } else {
-                    desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "不包含" + v.get(i).getMin() + "\n";
+                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("不包含").append(v.get(i).getMin()).append("\n");
                 }
             }
         }
-        return desc;
+        return desc.toString();
     }
 
     private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {