瀏覽代碼

新增产品费用及承包规则历史记录查询接口

haoyu 2 年之前
父節點
當前提交
bb1657d62f
共有 20 個文件被更改,包括 1274 次插入76 次删除
  1. 81 0
      src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementHistoryController.java
  2. 19 0
      src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsAttrLinkHistoryMapper.java
  3. 23 0
      src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsNewHistoryMapper.java
  4. 19 0
      src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementUndwrtRulesAttrLinkHistoryMapper.java
  5. 24 0
      src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementUndwrtRulesNewHistoryMapper.java
  6. 77 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsAttrLinkHistory.java
  7. 203 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNewHistory.java
  8. 76 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesAttrLinkHistory.java
  9. 4 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesNew.java
  10. 72 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesNewHistory.java
  11. 14 0
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsAttrLinkHistoryService.java
  12. 24 0
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewHistoryService.java
  13. 14 0
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementUndwrtRulesAttrLinkHistoryService.java
  14. 24 0
      src/main/java/com/ydtech/modules/protocols/service/PtlAgreementUndwrtRulesNewHistoryService.java
  15. 21 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsAttrLinkHistoryServiceImpl.java
  16. 119 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewHistoryServiceImpl.java
  17. 131 44
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  18. 21 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesAttrLinkHistoryServiceImpl.java
  19. 131 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewHistoryServiceImpl.java
  20. 177 32
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java

+ 81 - 0
src/main/java/com/ydtech/modules/protocols/controller/PtlNewAgreementHistoryController.java

@@ -0,0 +1,81 @@
+package com.ydtech.modules.protocols.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.protocol.service.PtlAgreementProductCostsHistoryService;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNewHistory;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesNewHistory;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductQueryVo;
+import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRulesQueryVo;
+import com.ydtech.modules.protocols.service.PtlAgreementProductCostsNewHistoryService;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrService;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesNewHistoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+@Api(tags = "协议历史查询")
+@RequestMapping("/plt/new/agreementhistory")
+@RestController
+public class PtlNewAgreementHistoryController extends BaseController {
+
+    @Value("${agreement.shutdown}")
+    private boolean shutdown;
+
+    @Autowired
+    private PtlAgreementProductCostsHistoryService ptlAgreementProductCostsHistoryService;
+
+    @Autowired
+    private PtlAgreementUndwrtRulesNewHistoryService ptlAgreementUndwrtRulesNewHistoryService;
+
+    @Autowired
+    private PtlAgreementProductCostsNewHistoryService ptlAgreementProductCostsNewHistoryService;
+    @Autowired
+    private PtlAgreementUndwrtRulesAttrService ptlAgreementUndwrtRulesAttrService;
+
+
+//
+//    @PostMapping("costsHistoryPage")
+//    @ApiOperation("分页查询协议历史记录")
+//    public HttpResult<PageResult> costsHistoryPage(@RequestBody PtlAgreementProductQueryVo ptlAgreementProductCostsHistory) {
+//        Page page = buildPageRequest(ptlAgreementProductCostsHistory.getPageDto());
+//        Page<PtlAgreementProductCostsHistory> ptlAgreementProductCostsHistoryPage = ptlAgreementProductCostsHistoryService.pageHistory(page,ptlAgreementProductCostsHistory);
+//        return HttpResult.ok(buildPageResponse(ptlAgreementProductCostsHistoryPage));
+//    }
+
+    @PostMapping("agreementHistoryPage")
+    @ApiOperation("分页查询产品费用历史记录")
+    public HttpResult<PageResult> agreementHistoryPage(@RequestBody AgreementProductQueryVo agreementProductQueryVo) {
+        Page page = buildPageRequest(agreementProductQueryVo.getPageDto());
+        List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        Page<PtlAgreementProductCostsNewHistory> ptlAgreementPage = ptlAgreementProductCostsNewHistoryService.pageHistory(page, agreementProductQueryVo.getAgreementId(),undwrtRulesAttrList);
+        return HttpResult.ok(buildPageResponse(ptlAgreementPage));
+    }
+
+    @PostMapping("rulesHistoryPage")
+    @ApiOperation("分页查询承保规则历史记录")
+    public HttpResult<PageResult> rulesHistoryPage(@RequestBody AgreementUndwrtRulesQueryVo agreementUndwrtRulesQueryVo) {
+        Page page = buildPageRequest(agreementUndwrtRulesQueryVo.getPageDto());
+        List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        Page<PtlAgreementUndwrtRulesNewHistory> ptlAgreementUndwrtRulesPage = ptlAgreementUndwrtRulesNewHistoryService.pageHistory(page, agreementUndwrtRulesQueryVo.getAgreementId(),undwrtRulesAttrList);
+        return HttpResult.ok(buildPageResponse(ptlAgreementUndwrtRulesPage));
+    }
+
+
+}

+ 19 - 0
src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsAttrLinkHistoryMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLinkHistory;
+
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+public interface PtlAgreementProductCostsAttrLinkHistoryMapper extends BaseMapper<PtlAgreementProductCostsAttrLinkHistory> {
+
+}
+
+
+
+

+ 23 - 0
src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsNewHistoryMapper.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNewHistory;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.HashMap;
+
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+public interface PtlAgreementProductCostsNewHistoryMapper extends BaseMapper<PtlAgreementProductCostsNewHistory> {
+
+}
+
+
+
+

+ 19 - 0
src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementUndwrtRulesAttrLinkHistoryMapper.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLinkHistory;
+
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+public interface PtlAgreementUndwrtRulesAttrLinkHistoryMapper extends BaseMapper<PtlAgreementUndwrtRulesAttrLinkHistory> {
+
+}
+
+
+
+

+ 24 - 0
src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementUndwrtRulesNewHistoryMapper.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesNewHistory;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.HashMap;
+
+
+/**
+ * @author
+ * @description
+ * @createDate
+ */
+public interface PtlAgreementUndwrtRulesNewHistoryMapper extends BaseMapper<PtlAgreementUndwrtRulesNewHistory> {
+    Page<HashMap> pageHistory(@Param("page") Page page, @Param("agreementId") String agreementId);
+
+}
+
+
+
+

+ 77 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsAttrLinkHistory.java

@@ -0,0 +1,77 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ *
+ */
+@TableName(value = "ptl_agreement_product_costs_attr_link_history", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PtlAgreementProductCostsAttrLinkHistory {
+
+    @TableId(value = "id", type = com.baomidou.mybatisplus.annotation.IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "费用id")
+    @TableField(value = "costs_id")
+    private String costsId;
+
+    @ApiModelProperty(value = "属性id")
+    @TableField(value = "attr_id")
+    private String attrId;
+
+    @ApiModelProperty(value = "属性编码")
+    @TableField(value = "attr_code")
+    private String attrCode;
+
+    @ApiModelProperty(value = "左操作数")
+    @TableField(value = "min")
+    private String min;
+
+    @ApiModelProperty(value = "左操作数数组")
+    @TableField(exist = false)
+    private String[] minArray;
+
+    @ApiModelProperty(value = "操作符")
+    @TableField(value = "operator")
+    private String operator;
+
+    @ApiModelProperty(value = "右操作数")
+    @TableField(value = "max")
+    private String max;
+
+
+    @ApiModelProperty(value = "批次")
+    @TableField(value = "batch")
+    private String batch;
+
+    @ApiModelProperty(value = "操作类型")
+    @TableField(value = "operator_type")
+    private String operatorType;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField(value = "operator_time")
+    private LocalDateTime operatorTime;
+
+    @TableField(exist = false)
+    private JSONArray dictLabal;
+
+    @ApiModelProperty(value = "关联属性使用")
+    @TableField(exist = false)
+    private PtlAgreementProductCostsAttrLinkHistory children;
+}

+ 203 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNewHistory.java

@@ -0,0 +1,203 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ *
+ */
+@TableName(value = "ptl_agreement_product_costs_new_history", autoResultMap = true)     //todo 添加数据库表
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PtlAgreementProductCostsNewHistory {
+
+    @TableId(value = "id",type= IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "协议id")
+    @TableField(value = "agreement_id")
+    private String agreementId;
+
+
+    @ApiModelProperty(value = "费用id")
+    @TableField(value = "costs_id")
+    private String costsId;
+
+
+    @ApiModelProperty(value = "产品id")
+    @TableField(value = "product_id")
+    private String productId;
+
+    @ApiModelProperty(value = "产品名称")
+    @TableField(value = "product_name")
+    private String productName;
+
+    @ApiModelProperty(value = "费用比例(交强)")
+    @TableField(value = "jq_car_costs_proportion")
+    private String jqCarCostsProportion;
+
+    @ApiModelProperty(value = "总费用比例(交强)")
+    @TableField(value = "jq_costs_proportion")
+    private String jqCostsProportion;
+
+    @ApiModelProperty(value = "加投比例(交强)")
+    @TableField(value = "jq_costs_proportion_add_invsestment")
+    private String jqCostsProportionAddInvsestment;
+
+    @ApiModelProperty(value = "其他费用比例(交强)")
+    @TableField(value = "jq_car_other_costs_proportion")
+    private String jqCarOtherCostsProportion;
+
+    @ApiModelProperty(value = "费用比例(商业)")
+    @TableField(value = "sy_car_costs_proportion")
+    private String syCarCostsProportion;
+
+    @ApiModelProperty(value = "总费用比例(商业)")
+    @TableField(value = "sy_costs_proportion")
+    private String syCostsProportion;
+
+    @ApiModelProperty(value = "加投比例(商业)")
+    @TableField(value = "sy_costs_proportion_add_invsestment")
+    private String syCostsProportionAddInvsestment;
+
+    @ApiModelProperty(value = "其他费用比例(商业)")
+    @TableField(value = "sy_car_other_costs_proportion")
+    private String syCarOtherCostsProportion;
+
+
+    @ApiModelProperty(value = "费用比例(非车)")
+    @TableField(value = "no_car_costs_proportion")
+    private String noCarCostsProportion;
+
+    @ApiModelProperty(value = "总费用比例(非车)")
+    @TableField(value = "no_costs_proportion")
+    private String noCostsProportion;
+
+    @ApiModelProperty(value = "其他费用比例(非车)")
+    @TableField(value = "no_car_other_costs_proportion")
+    private String noCarOtherCostsProportion;
+
+    @ApiModelProperty(value = "费用描述")
+    @TableField(value = "costs_description")
+    private String costsDescription;
+
+    @ApiModelProperty(value = "费用起期")
+    @TableField(value = "costs_start_date")
+    private String costsStartDate;
+
+    @ApiModelProperty(value = "费用止期")
+    @TableField(value = "costs_end_date")
+    private String costsEndDate;
+
+    @ApiModelProperty(value = "优先级")
+    @TableField(value = "priority_level")
+    private String priorityLevel;
+
+
+    @ApiModelProperty(value = "交强出口比例一级")
+    @TableField(value = "jq_export_radio_level_1")
+    private BigDecimal jqExportRadioLevel1;
+
+    @ApiModelProperty(value = "交强出口比例二级")
+    @TableField(value = "jq_export_radio_level_2")
+    private BigDecimal jqExportRadioLevel2;
+
+    @ApiModelProperty(value = "交强出口比例三级")
+    @TableField(value = "jq_export_radio_level_3")
+    private BigDecimal jqExportRadioLevel3;
+
+    @ApiModelProperty(value = "交强出口比例四级")
+    @TableField(value = "jq_export_radio_level_4")
+    private BigDecimal jqExportRadioLevel4;
+
+    @ApiModelProperty(value = "交强出口比例五级")
+    @TableField(value = "jq_export_radio_level_5")
+    private BigDecimal jqExportRadioLevel5;
+
+    @ApiModelProperty(value = "交强出口加投比例")
+    @TableField(value = "jq_export_investment_radio")
+    private BigDecimal jqExportInvestmentRadio;
+
+
+    @ApiModelProperty(value = "商业出口比例一级")
+    @TableField(value = "sy_export_radio_level_1")
+    private BigDecimal syExportRadioLevel1;
+
+    @ApiModelProperty(value = "商业出口比例二级")
+    @TableField(value = "sy_export_radio_level_2")
+    private BigDecimal syExportRadioLevel2;
+
+    @ApiModelProperty(value = "商业出口比例三级")
+    @TableField(value = "sy_export_radio_level_3")
+    private BigDecimal syExportRadioLevel3;
+
+    @ApiModelProperty(value = "商业出口比例四级")
+    @TableField(value = "sy_export_radio_level_4")
+    private BigDecimal syExportRadioLevel4;
+
+    @ApiModelProperty(value = "商业出口比例五级")
+    @TableField(value = "sy_export_radio_level_5")
+    private BigDecimal syExportRadioLevel5;
+
+    @ApiModelProperty(value = "商业出口加投比例")
+    @TableField(value = "sy_export_investment_radio")
+    private BigDecimal syExportInvestmentRadio;
+
+    @ApiModelProperty(value = "非车出口比例一级")
+    @TableField(value = "no_car_export_radio_level_1")
+    private BigDecimal noCarExportRadioLevel1;
+
+    @ApiModelProperty(value = "非车出口比例二级")
+    @TableField(value = "no_car_export_radio_level_2")
+    private BigDecimal noCarExportRadioLevel2;
+
+    @ApiModelProperty(value = "非车出口比例三级")
+    @TableField(value = "no_car_export_radio_level_3")
+    private BigDecimal noCarExportRadioLevel3;
+
+    @ApiModelProperty(value = "非车出口比例四级")
+    @TableField(value = "no_car_export_radio_level_4")
+    private BigDecimal noCarExportRadioLevel4;
+
+    @ApiModelProperty(value = "非车出口比例五级")
+    @TableField(value = "no_car_export_radio_level_5")
+    private BigDecimal noCarExportRadioLevel5;
+
+    @ApiModelProperty(value = "非车出口加投比例")
+    @TableField(value = "no_car_export_investment_radio")
+    private BigDecimal noCarExportInvestmentRadio;
+
+    @ApiModelProperty(value = "费用因子属性")
+    @TableField(exist = false)
+    private String costsAttrLinks;
+
+    @ApiModelProperty(value = "批次")
+    @TableField(value = "batch")
+    private String batch;
+
+    @ApiModelProperty(value = "操作类型")
+    @TableField(value = "operator_type")
+    private String operatorType;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField(value = "operator_time")
+    private LocalDateTime operatorTime;
+
+
+
+}

+ 76 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesAttrLinkHistory.java

@@ -0,0 +1,76 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ *
+ */
+@TableName(value = "ptl_agreement_undwrt_rules_attr_link_history", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PtlAgreementUndwrtRulesAttrLinkHistory {
+
+    @TableId(value = "id", type = com.baomidou.mybatisplus.annotation.IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "承包规则id")
+    @TableField(value = "rules_id")
+    private String rulesId;
+
+    @ApiModelProperty(value = "属性id")
+    @TableField(value = "attr_id")
+    private String attrId;
+
+    @ApiModelProperty(value = "属性编码")
+    @TableField(value = "attr_code")
+    private String attrCode;
+
+    @ApiModelProperty(value = "左操作数")
+    @TableField(value = "min")
+    private String min;
+
+    @ApiModelProperty(value = "左操作数数组")
+    @TableField(exist = false)
+    private String[] minArray;
+
+    @ApiModelProperty(value = "操作符")
+    @TableField(value = "operator")
+    private String operator;
+
+    @ApiModelProperty(value = "右操作数")
+    @TableField(value = "max")
+    private String max;
+
+    @ApiModelProperty(value = "批次")
+    @TableField(value = "batch")
+    private String batch;
+
+    @ApiModelProperty(value = "操作类型")
+    @TableField(value = "operator_type")
+    private String operatorType;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField(value = "operator_time")
+    private LocalDateTime operatorTime;
+
+    @TableField(exist = false)
+    private JSONArray dictLabal;
+
+    @ApiModelProperty(value = "关联属性使用")
+    @TableField(exist = false)
+    private PtlAgreementUndwrtRulesAttrLinkHistory children;
+}

+ 4 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesNew.java

@@ -44,6 +44,10 @@ public class PtlAgreementUndwrtRulesNew {
     @TableField(value = "valid_ind")
     private String validInd;
 
+    @ApiModelProperty(value = "生成的描述")
+    @TableField(exist = false)
+    private String desc;
+
     @ApiModelProperty(value = "规则属性")
     @TableField(exist = false)
     private List<PtlAgreementUndwrtRulesAttrLink> rulesAttrList;

+ 72 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementUndwrtRulesNewHistory.java

@@ -0,0 +1,72 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ *
+ */
+@TableName(value = "ptl_agreement_undwrt_rules_new_history", autoResultMap = true) //todo 添加数据库表
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PtlAgreementUndwrtRulesNewHistory {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "协议id")
+    @TableField(value = "agreement_id")
+    private String agreementId;
+
+    @ApiModelProperty(value = "承包规则id")
+    @TableField(value = "rules_id")
+    private String rulesId;
+
+    @ApiModelProperty(value = "规则类型")
+    @TableField(value = "rules_type")
+    private String rulesType;
+
+    @ApiModelProperty(value = "业务类型")
+    @TableField(value = "product_type")
+    private String productType;
+
+    @ApiModelProperty(value = "规则描述")
+    @TableField(value = "rule_description")
+    private String ruleDescription;
+
+    @ApiModelProperty(value = "是否生效")
+    @TableField(value = "valid_ind")
+    private String validInd;
+
+    @ApiModelProperty(value = "费用因子属性")
+    @TableField(exist = false)
+    private String costsAttrLinks;
+    @ApiModelProperty(value = "批次")
+    @TableField(value = "batch")
+    private String batch;
+
+    @ApiModelProperty(value = "操作类型")
+    @TableField(value = "operator_type")
+    private String operatorType;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField(value = "modifier")
+    private String modifier;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField(value = "operator_time")
+    private LocalDateTime operatorTime;
+
+
+
+}

+ 14 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsAttrLinkHistoryService.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLinkHistory;
+
+/**
+*@author:
+*@description:
+*@create:
+*/
+public interface PtlAgreementProductCostsAttrLinkHistoryService extends IService<PtlAgreementProductCostsAttrLinkHistory> {
+
+}

+ 24 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementProductCostsNewHistoryService.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocol.entity.vo.PtlAgreementHistoryConvertQueryVo;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNewHistory;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
+
+import java.util.List;
+
+/**
+ * @author:
+ * @description:
+ * @create:
+ */
+public interface PtlAgreementProductCostsNewHistoryService extends IService<PtlAgreementProductCostsNewHistory> {
+
+    Page<PtlAgreementProductCostsNewHistory> pageHistory(Page page, String agreementId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList);
+
+
+}

+ 14 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementUndwrtRulesAttrLinkHistoryService.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLinkHistory;
+
+/**
+*@author:
+*@description:
+*@create:
+*/
+public interface PtlAgreementUndwrtRulesAttrLinkHistoryService extends IService<PtlAgreementUndwrtRulesAttrLinkHistory> {
+
+}

+ 24 - 0
src/main/java/com/ydtech/modules/protocols/service/PtlAgreementUndwrtRulesNewHistoryService.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocol.entity.dto.history.PtlAgreementUndwrtRulesHistory;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesNew;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesNewHistory;
+import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRules;
+import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRulesSave;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+*@author:
+*@description:
+*@create:
+*/
+public interface PtlAgreementUndwrtRulesNewHistoryService extends IService<PtlAgreementUndwrtRulesNewHistory> {
+
+
+    Page<PtlAgreementUndwrtRulesNewHistory> pageHistory(Page page, String agreementId,List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList);
+}

+ 21 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsAttrLinkHistoryServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsAttrLinkHistoryMapper;
+import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsAttrLinkMapper;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLinkHistory;
+import com.ydtech.modules.protocols.service.PtlAgreementProductCostsAttrLinkHistoryService;
+import com.ydtech.modules.protocols.service.PtlAgreementProductCostsAttrLinkService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description
+ * @createDate
+ * @Entity
+ */
+@Service
+public class PtlAgreementProductCostsAttrLinkHistoryServiceImpl extends ServiceImpl<PtlAgreementProductCostsAttrLinkHistoryMapper, PtlAgreementProductCostsAttrLinkHistory>
+        implements PtlAgreementProductCostsAttrLinkHistoryService {
+
+}

+ 119 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewHistoryServiceImpl.java

@@ -0,0 +1,119 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
+import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
+import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsNewHistoryMapper;
+import com.ydtech.modules.protocols.entity.po.*;
+import com.ydtech.modules.protocols.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @description
+ * @createDate
+ * @Entity
+ */
+@Service
+public class PtlAgreementProductCostsNewHistoryServiceImpl extends ServiceImpl<PtlAgreementProductCostsNewHistoryMapper, PtlAgreementProductCostsNewHistory>
+        implements PtlAgreementProductCostsNewHistoryService {
+
+
+    @Autowired
+    PtlAgreementProductCostsAttrLinkHistoryService costsAttrLinkHistoryService;
+    @Autowired
+    PtlAreaLicenseService ptlAreaLicenseService;
+    @Autowired
+    PtlAgreementUndwrtRulesAttrService ptlAgreementUndwrtRulesAttrService;
+
+    @Override
+    public Page<PtlAgreementProductCostsNewHistory> pageHistory(Page page, String agreementId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+        Page<PtlAgreementProductCostsNewHistory> historyVoPage = new Page<>();
+        //获取当前协议下的产品
+        LambdaQueryWrapper<PtlAgreementProductCostsNewHistory> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlAgreementProductCostsNewHistory::getAgreementId, agreementId);
+        Page selectPage = baseMapper.selectPage(page, wrapper);
+        List<PtlAgreementProductCostsNewHistory> records = selectPage.getRecords();
+
+
+        //获取所有历史记录产品批次
+        List<String> batch = new ArrayList<>();
+        records.forEach(x -> {
+            batch.add(x.getBatch());
+        });
+
+        //获取当前协议所有产品下的所有费用因子的历史记录
+        List<PtlAgreementUndwrtRulesAttr> rulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        List<PtlAgreementProductCostsAttrLinkHistory> list = costsAttrLinkHistoryService.list(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLinkHistory>()
+                .in(PtlAgreementProductCostsAttrLinkHistory::getBatch, batch));
+
+        Map<String, List<PtlAgreementProductCostsAttrLinkHistory>> groupedByCostsId = list.stream()
+                .collect(Collectors.groupingBy(PtlAgreementProductCostsAttrLinkHistory::getBatch));
+
+        groupedByCostsId.forEach((k, v) -> {
+            records.stream().filter(x -> x.getBatch().equals(k)).findFirst().ifPresent(x -> x.setCostsAttrLinks(buildDesc(v, undwrtRulesAttrList)));
+        });
+
+        //封装返回
+        historyVoPage.setCurrent(selectPage.getCurrent());
+        historyVoPage.setSize(selectPage.getSize());
+        historyVoPage.setPages(selectPage.getPages());
+        historyVoPage.setRecords(records);
+        historyVoPage.setTotal(selectPage.getTotal());
+        return historyVoPage;
+    }
+
+    /**
+     * 遍历费用属性描述文字
+     *
+     * @param v
+     * @param undwrtRulesAttrList
+     * @return
+     */
+    private String buildDesc(List<PtlAgreementProductCostsAttrLinkHistory> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+        String desc = "";
+        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();
+            //数值范围判断
+            if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
+            }
+        }
+        return desc;
+    }
+
+    private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementProductCostsAttrLinkHistory ptlAgreementProductCostsAttrLinkHistory) {
+        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                x.getCode().equals(ptlAgreementProductCostsAttrLinkHistory.getMin())).findAny().get();
+        return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
+    }
+
+    private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementProductCostsAttrLinkHistory ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
+        }
+        return "";
+    }
+
+}

+ 131 - 44
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -3,7 +3,7 @@ package com.ydtech.modules.protocols.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
 import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
 import com.ydtech.modules.protocols.dao.PtlAgreementProductCostsNewMapper;
@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -41,6 +42,12 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     @Autowired
     PtlAgreementProductCostsExportService ptlAgreementProductCostsExportService;
 
+    @Autowired
+    PtlAgreementProductCostsNewHistoryServiceImpl ptlAgreementProductCostsNewHistoryService;
+
+    @Autowired
+    PtlAgreementProductCostsAttrLinkHistoryService ptlAgreementProductCostsAttrLinkHistoryService;
+
     @Override
     public Page<PtlAgreementProductCostsNew> getByAgreementId(Page page, String agreementId) {
         Page<PtlAgreementProductCostsNew> pages = baseMapper.selectPage(page, new LambdaQueryWrapper<PtlAgreementProductCostsNew>()
@@ -100,51 +107,48 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
      * @param undwrtRulesAttrList
      * @return
      */
-    private String buildDesc(List<PtlAgreementProductCostsAttrLink> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList){
+    private String buildDesc(List<PtlAgreementProductCostsAttrLink> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
         String desc = "";
-        for(int i=0;i<v.size();i++){
+        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();
             //数值范围判断
-            if("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType()))
-            {
-                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr,v.get(i)) + "\n";
+            if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
             }
-            if("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType()))
-            {
-                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr,v.get(i)) + "\n";
+            if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
             }
-            if("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType()))
-            {
+            if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                 desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
             }
         }
         return desc;
     }
 
-    private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr,PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink){
+    private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink) {
         PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
                 x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
         return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
     }
 
-    private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr,PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink){
-        if("1".equals(ptlAgreementProductCostsAttrLink.getOperator())){
+    private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementProductCostsAttrLink ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
-        }else if("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
-        }else if("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
-        }else if("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
-        }else if("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
         }
         return "";
     }
 
     @Override
-    public AgreementProductCostsSave costsGet(String costsId,List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+    public AgreementProductCostsSave costsGet(String costsId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
         //设置费用入口信息
         PtlAgreementProductCostsNew ptlAgreementProductCostsNew = baseMapper.selectOne(new LambdaQueryWrapper<PtlAgreementProductCostsNew>().eq(PtlAgreementProductCostsNew::getId, costsId));
         if (ptlAgreementProductCostsNew == null) {
@@ -156,7 +160,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         //设置费用出口信息
         PtlAgreementProductCostsExport ptlAgreementProductCostsExport = ptlAgreementProductCostsExportService.getOne(new LambdaQueryWrapper<PtlAgreementProductCostsExport>()
                 .eq(PtlAgreementProductCostsExport::getCostsId, costsId));
-        if(!Objects.isNull(ptlAgreementProductCostsExport)) {
+        if (!Objects.isNull(ptlAgreementProductCostsExport)) {
             agreementProductCosts.setExportRadio(ptlAgreementProductCostsExport);
         }
 
@@ -168,12 +172,11 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
 
         undwrtRulesAttrList.stream().forEach(x -> {
             //处理多选和下拉
-            if("checkbox".equals(x.getAttrType()) || "select".equals(x.getAttrType()))
-            {
+            if ("checkbox".equals(x.getAttrType()) || "select".equals(x.getAttrType())) {
                 //处理车牌
-                if("select".equals(x.getAttrType()) && "LicenseNo".equals(x.getAttrCode())){
+                if ("select".equals(x.getAttrType()) && "LicenseNo".equals(x.getAttrCode())) {
                     PtlAgreementProductCostsAttrLink licenseNo = list.stream().filter(l -> l.getAttrCode().equals("LicenseNo")).findFirst().orElse(null);
-                    if(licenseNo != null) {
+                    if (licenseNo != null) {
                         //根据operator 获取车牌的地区id
                         List<PtlAreaLicense> byParentNumber = ptlAreaLicenseService.getByParentNumber(licenseNo.getOperator());
                         List<PtlAgreementUndwrtRulesDictLabal> dictLabal = byParentNumber.stream().map(y -> {
@@ -188,14 +191,14 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                 }
                 x.setMinArray(new String[]{});
                 list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
-                    if(null != z.getMin()) {
+                    if (null != z.getMin()) {
                         x.setId(z.getId());
                         x.setMinArray(z.getMin().split(","));
                         x.setMax(z.getMax());
                         x.setOperator(z.getOperator());
                     }
                 });
-            }else{
+            } else {
                 list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
                     x.setId(z.getId());
                     x.setMin(z.getMin());
@@ -212,6 +215,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         return agreementProductCosts;
     }
 
+
     @Override
     public List<AgreementProductCosts> costsGetList(String agreementId) {
         List<PtlAgreementProductCostsNew> ptlAgreementProductCostsNews = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreementProductCostsNew>()
@@ -225,15 +229,14 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             BeanUtils.copyProperties(news, productCosts);
             agreementProductCosts.add(productCosts);
         });
-        if(ptlAgreementProductCostsNews.size() > 0)
-        {
+        if (ptlAgreementProductCostsNews.size() > 0) {
             List<PtlAgreementProductCostsAttrLink> list = ptlAgreementProductCostsAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>()
                     .in(PtlAgreementProductCostsAttrLink::getCostsId, ptlAgreementProductCostsNews.stream().map(PtlAgreementProductCostsNew::getId).collect(Collectors.toList())));
             agreementProductCosts.forEach(x -> {
                 List<PtlAgreementProductCostsAttrLink> collect = list.stream().filter(y -> y.getCostsId().equals(x.getId())).collect(Collectors.toList());
                 x.setCostsAttrLinks(collect);
             });
-        }else{
+        } else {
             agreementProductCosts.forEach(x -> {
                 x.setCostsAttrLinks(new ArrayList<>());
             });
@@ -256,15 +259,14 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             BeanUtils.copyProperties(news, productCosts);
             agreementProductCosts.add(productCosts);
         });
-        if(ptlAgreementProductCostsNews.size() > 0)
-        {
+        if (ptlAgreementProductCostsNews.size() > 0) {
             List<PtlAgreementProductCostsAttrLink> list = ptlAgreementProductCostsAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>()
                     .in(PtlAgreementProductCostsAttrLink::getCostsId, ptlAgreementProductCostsNews.stream().map(PtlAgreementProductCostsNew::getId).collect(Collectors.toList())));
             agreementProductCosts.forEach(x -> {
                 List<PtlAgreementProductCostsAttrLink> collect = list.stream().filter(y -> y.getCostsId().equals(x.getId())).collect(Collectors.toList());
                 x.setCostsAttrLinks(collect);
             });
-        }else{
+        } else {
             agreementProductCosts.forEach(x -> {
                 x.setCostsAttrLinks(new ArrayList<>());
             });
@@ -272,6 +274,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         return agreementProductCosts;
     }
 
+
     @Transactional
     @Override
     public boolean costsAdd(AgreementProductCosts agreementProductCosts) {
@@ -289,28 +292,61 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         ptlAgreementProductCostsExport.setId(null);
         ptlAgreementProductCostsExport.blank();
         ptlAgreementProductCostsExportService.save(ptlAgreementProductCostsExport);
-
+        //保存产品费用历史记录
+        PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
+        BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsNewHistory);
+        //添加费用ID
+        ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
+        //生成批次ID
+        String uuid = UUID.randomUUID().toString();
+        ptlAgreementProductCostsNewHistory.setBatch(uuid);
+        ptlAgreementProductCostsNewHistory.setOperatorType("add");
+        ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
+        ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
+        ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
+        //创建产品费用因子历史记录容器
+        List<PtlAgreementProductCostsAttrLinkHistory> costsAttrLinkHistories = new ArrayList<>();
         //遍历费用属性
         List<PtlAgreementProductCostsAttrLink> costsAttrLinks = agreementProductCosts.getCostsAttrLinks();
         List<PtlAgreementProductCostsAttrLink> costsAttrLink = new ArrayList<>();
         costsAttrLinks.forEach(x -> {
+            PtlAgreementProductCostsAttrLinkHistory costsAttrLinkHistory = new PtlAgreementProductCostsAttrLinkHistory();
+
             //单独处理车牌号
-            if("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && !x.getMin().equals(""))){
+            if ("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && !x.getMin().equals(""))) {
                 x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
                 x.setCostsId(ptlAgreementProductCostsNew.getId());
                 x.setId(0);
                 costsAttrLink.add(x);
-            }else {
+                BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                //设置产品费用因子历史记录
+                costsAttrLinkHistory.setBatch(uuid);
+                costsAttrLinkHistory.setOperatorType("add");
+                costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                costsAttrLinkHistories.add(costsAttrLinkHistory);
+            } else {
                 if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
 
                     x.setCostsId(ptlAgreementProductCostsNew.getId());
                     x.setId(0);
                     costsAttrLink.add(x);
+                    BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                    //设置产品费用因子历史记录
+                    costsAttrLinkHistory.setBatch(uuid);
+
+                    costsAttrLinkHistory.setOperatorType("add");
+                    costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                    costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                    costsAttrLinkHistories.add(costsAttrLinkHistory);
                 }
             }
         });
+        //保存产品费用因子历史记录
+        ptlAgreementProductCostsAttrLinkHistoryService.saveBatch(costsAttrLinkHistories);
         ptlAgreementProductCostsAttrLinkService.saveBatch(costsAttrLink);
         return true;
+
     }
 
     @Transactional
@@ -324,13 +360,15 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         //更新费用出口表信息
         PtlAgreementProductCostsExport ptlAgreementProductCostsExport = ptlAgreementProductCostsExportService.getOne(
                 new LambdaQueryWrapper<PtlAgreementProductCostsExport>()
-                .eq(PtlAgreementProductCostsExport::getCostsId, ptlAgreementProductCostsNew.getId()));
-        if(Objects.isNull(ptlAgreementProductCostsExport)){
+                        .eq(PtlAgreementProductCostsExport::getCostsId, ptlAgreementProductCostsNew.getId()));
+
+
+        if (Objects.isNull(ptlAgreementProductCostsExport)) {
             ptlAgreementProductCostsExport = new PtlAgreementProductCostsExport();
             BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsExport);
             ptlAgreementProductCostsExport.setCostsId(ptlAgreementProductCostsNew.getId());
             ptlAgreementProductCostsExport.setId(null);
-        }else{
+        } else {
             //保存原始id
             String id = ptlAgreementProductCostsExport.getId();
             BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsExport);
@@ -339,41 +377,86 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         }
         ptlAgreementProductCostsExportService.saveOrUpdate(ptlAgreementProductCostsExport);
 
+        //保存产品费用历史记录
+        PtlAgreementProductCostsNewHistory ptlAgreementProductCostsNewHistory = new PtlAgreementProductCostsNewHistory();
+        BeanUtils.copyProperties(agreementProductCosts, ptlAgreementProductCostsNewHistory);
+        //添加费用ID
+        ptlAgreementProductCostsNewHistory.setCostsId(ptlAgreementProductCostsNew.getId());
+        //生成批次ID
+        String uuid = UUID.randomUUID().toString();
+        ptlAgreementProductCostsNewHistory.setBatch(uuid);
+
+        ptlAgreementProductCostsNewHistory.setOperatorType("update");
+        ptlAgreementProductCostsNewHistory.setModifier(BaseController.getUser().getId());
+        ptlAgreementProductCostsNewHistory.setOperatorTime(LocalDateTime.now());
+        ptlAgreementProductCostsNewHistoryService.save(ptlAgreementProductCostsNewHistory);
+
+
         //设置费用因子属性
         //先删除属性值
         ptlAgreementProductCostsAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>()
                 .eq(PtlAgreementProductCostsAttrLink::getCostsId, ptlAgreementProductCostsNew.getId()));
         List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        //创建产品费用因子历史记录容器
+        List<PtlAgreementProductCostsAttrLinkHistory> costsAttrLinkHistories = new ArrayList<>();
         //再添加属性值
         List<PtlAgreementProductCostsAttrLink> costsAttrLinks = agreementProductCosts.getCostsAttrLinks();
         List<PtlAgreementProductCostsAttrLink> costsAttrLink = new ArrayList<>();
         costsAttrLinks.forEach(x -> {
             //单独处理车牌号
-            if("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && x.getMin() != "")){
+            if ("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && x.getMin() != "")) {
                 x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
                 x.setCostsId(ptlAgreementProductCostsNew.getId());
                 x.setId(0);
                 costsAttrLink.add(x);
-            }else {
+                //设置产品费用因子历史记录
+                PtlAgreementProductCostsAttrLinkHistory costsAttrLinkHistory = new PtlAgreementProductCostsAttrLinkHistory();
+                BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                costsAttrLinkHistory.setBatch(uuid);
+
+                costsAttrLinkHistory.setOperatorType("update");
+                costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                costsAttrLinkHistories.add(costsAttrLinkHistory);
+            } else {
                 PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().orElse(null);
                 //单独判断radio  radio中存在0的属性值
-                if("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())){
+                if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                     if (null != x.getMin()) {
-
                         x.setCostsId(ptlAgreementProductCostsNew.getId());
                         x.setId(0);
                         costsAttrLink.add(x);
+                        //设置产品费用因子历史记录
+                        PtlAgreementProductCostsAttrLinkHistory costsAttrLinkHistory = new PtlAgreementProductCostsAttrLinkHistory();
+                        BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                        costsAttrLinkHistory.setBatch(uuid);
+
+                        costsAttrLinkHistory.setOperatorType("update");
+                        costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                        costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                        costsAttrLinkHistories.add(costsAttrLinkHistory);
                     }
-                }else {
+                } else {
                     if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
 
                         x.setCostsId(ptlAgreementProductCostsNew.getId());
                         x.setId(0);
                         costsAttrLink.add(x);
+                        //设置产品费用因子历史记录
+                        PtlAgreementProductCostsAttrLinkHistory costsAttrLinkHistory = new PtlAgreementProductCostsAttrLinkHistory();
+                        BeanUtils.copyProperties(x, costsAttrLinkHistory);
+                        costsAttrLinkHistory.setBatch(uuid);
+
+                        costsAttrLinkHistory.setOperatorType("update");
+                        costsAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                        costsAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                        costsAttrLinkHistories.add(costsAttrLinkHistory);
                     }
                 }
             }
         });
+        //保存产品费用因子历史记录
+        ptlAgreementProductCostsAttrLinkHistoryService.saveBatch(costsAttrLinkHistories);
         ptlAgreementProductCostsAttrLinkService.saveBatch(costsAttrLink);
         return true;
     }
@@ -383,6 +466,10 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     public boolean costsDelete(String costsId) {
         baseMapper.deleteById(costsId);
         ptlAgreementProductCostsAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLink>().eq(PtlAgreementProductCostsAttrLink::getCostsId, costsId));
-        return true;
+        //删除产品费用历史记录
+        ptlAgreementProductCostsNewHistoryService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsNewHistory>().eq(PtlAgreementProductCostsNewHistory::getCostsId, costsId));
+        //删除产品费用因子历史记录
+        ptlAgreementProductCostsAttrLinkHistoryService.remove(new LambdaQueryWrapper<PtlAgreementProductCostsAttrLinkHistory>().eq(PtlAgreementProductCostsAttrLinkHistory::getCostsId, costsId));
+              return true;
     }
 }

+ 21 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesAttrLinkHistoryServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.protocols.dao.PtlAgreementUndwrtRulesAttrLinkHistoryMapper;
+import com.ydtech.modules.protocols.dao.PtlAgreementUndwrtRulesAttrLinkMapper;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLink;
+import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttrLinkHistory;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrLinkHistoryService;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrLinkService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description
+ * @createDate
+ * @Entity
+ */
+@Service
+public class PtlAgreementUndwrtRulesAttrLinkHistoryServiceImpl extends ServiceImpl<PtlAgreementUndwrtRulesAttrLinkHistoryMapper, PtlAgreementUndwrtRulesAttrLinkHistory>
+        implements PtlAgreementUndwrtRulesAttrLinkHistoryService {
+
+}

+ 131 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewHistoryServiceImpl.java

@@ -0,0 +1,131 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
+import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
+import com.ydtech.modules.protocols.dao.PtlAgreementUndwrtRulesNewHistoryMapper;
+import com.ydtech.modules.protocols.entity.po.*;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrLinkHistoryService;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrService;
+import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesNewHistoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * @description
+ * @createDate
+ * @Entity
+ */
+@Service
+public class PtlAgreementUndwrtRulesNewHistoryServiceImpl extends ServiceImpl<PtlAgreementUndwrtRulesNewHistoryMapper, PtlAgreementUndwrtRulesNewHistory>
+        implements PtlAgreementUndwrtRulesNewHistoryService {
+
+
+    @Autowired
+    PtlAgreementUndwrtRulesAttrLinkHistoryService undwrtRulesAttrLinkHistoryService;
+
+    @Autowired
+    PtlAreaLicenseService ptlAreaLicenseService;
+
+    @Autowired
+    PtlAgreementUndwrtRulesAttrService ptlAgreementUndwrtRulesAttrService;
+
+    @Override
+    public Page<PtlAgreementUndwrtRulesNewHistory> pageHistory(Page page, String agreementId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+        Page<PtlAgreementUndwrtRulesNewHistory> historyVoPage = new Page<>();
+        //获取当前协议下的承包规则
+        LambdaQueryWrapper<PtlAgreementUndwrtRulesNewHistory> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlAgreementUndwrtRulesNewHistory::getAgreementId, agreementId);
+        Page selectPage = baseMapper.selectPage(page, wrapper);
+        List<PtlAgreementUndwrtRulesNewHistory> records = selectPage.getRecords();
+
+        //获取所有历史记录承包规则批次
+        List<String> batch = new ArrayList<>();
+        records.forEach(x -> {
+            batch.add(x.getBatch());
+        });
+
+        //获取当前协议所有承包规则下的所有费用因子的历史记录
+        List<PtlAgreementUndwrtRulesAttr> rulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        List<PtlAgreementUndwrtRulesAttrLinkHistory> list = undwrtRulesAttrLinkHistoryService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLinkHistory>()
+                .in(PtlAgreementUndwrtRulesAttrLinkHistory::getBatch, batch));
+
+        Map<String, List<PtlAgreementUndwrtRulesAttrLinkHistory>> groupedByCostsId = list.stream()
+                .collect(Collectors.groupingBy(PtlAgreementUndwrtRulesAttrLinkHistory::getBatch));
+
+        groupedByCostsId.forEach((k, v) -> {
+            records.stream().filter(x -> x.getBatch().equals(k)).findFirst().ifPresent(x -> x.setCostsAttrLinks(buildDesc(v, undwrtRulesAttrList)));
+        });
+
+        //封装返回
+        historyVoPage.setCurrent(selectPage.getCurrent());
+        historyVoPage.setSize(selectPage.getSize());
+        historyVoPage.setPages(selectPage.getPages());
+        historyVoPage.setRecords(records);
+        historyVoPage.setTotal(selectPage.getTotal());
+        return historyVoPage;
+    }
+
+    /**
+     * 遍历费用属性描述文字
+     *
+     * @param v
+     * @param undwrtRulesAttrList
+     * @return
+     */
+    private String buildDesc(List<PtlAgreementUndwrtRulesAttrLinkHistory> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+        String desc = "";
+        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();
+            //数值范围判断
+            if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
+            }
+        }
+        return desc;
+    }
+
+    private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLinkHistory ptlAgreementProductCostsAttrLinkHistory) {
+        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                x.getCode().equals(ptlAgreementProductCostsAttrLinkHistory.getMin())).findAny().get();
+        return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
+    }
+
+    private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLinkHistory ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
+        }
+        return "";
+    }
+}
+
+
+
+

+ 177 - 32
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementUndwrtRulesNewServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAreaLicense;
 import com.ydtech.modules.protocol.service.PtlAreaLicenseService;
@@ -14,18 +15,14 @@ import com.ydtech.modules.protocols.entity.po.*;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
 import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRules;
 import com.ydtech.modules.protocols.entity.vo.AgreementUndwrtRulesSave;
-import com.ydtech.modules.protocols.service.PtlAgreementProductCostsAttrLinkService;
-import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrLinkService;
-import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrService;
-import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesNewService;
+import com.ydtech.modules.protocols.service.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.time.LocalDateTime;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +43,12 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
     @Autowired
     private PtlAgreementUndwrtRulesAttrService ptlAgreementUndwrtRulesAttrService;
 
+    @Autowired
+    private PtlAgreementUndwrtRulesNewHistoryService ptlAgreementUndwrtRulesNewHistoryService;
+
+    @Autowired
+    private PtlAgreementUndwrtRulesAttrLinkHistoryService ptlAgreementUndwrtRulesAttrLinkHistoryService;
+
     @Override
     public AgreementUndwrtRulesSave rulesGet(String ruleId, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
         //设置费用入口信息
@@ -53,7 +56,6 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         AgreementUndwrtRulesSave agreementUndwrtRulesSave = new AgreementUndwrtRulesSave();
         BeanUtils.copyProperties(ptlAgreementUndwrtRulesNew, agreementUndwrtRulesSave);
 
-
         //设置费用因子属性
         List<PtlAgreementUndwrtRulesAttr> ptlAgreementUndwrtRulesAttrs = new ArrayList<>();
         List<PtlAgreementUndwrtRulesAttrLink> list = ptlAgreementUndwrtRulesAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
@@ -61,12 +63,11 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
 
         undwrtRulesAttrList.stream().forEach(x -> {
             //处理多选和下拉
-            if("checkbox".equals(x.getAttrType()) || "select".equals(x.getAttrType()))
-            {
+            if ("checkbox".equals(x.getAttrType()) || "select".equals(x.getAttrType())) {
                 //处理车牌
-                if("select".equals(x.getAttrType()) && "LicenseNo".equals(x.getAttrCode())){
+                if ("select".equals(x.getAttrType()) && "LicenseNo".equals(x.getAttrCode())) {
                     PtlAgreementUndwrtRulesAttrLink licenseNo = list.stream().filter(l -> l.getAttrCode().equals("LicenseNo")).findFirst().orElse(null);
-                    if(licenseNo != null) {
+                    if (licenseNo != null) {
                         //根据operator 获取车牌的地区id
                         List<PtlAreaLicense> byParentNumber = ptlAreaLicenseService.getByParentNumber(licenseNo.getOperator());
                         List<PtlAgreementUndwrtRulesDictLabal> dictLabal = byParentNumber.stream().map(y -> {
@@ -81,14 +82,14 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
                 }
                 x.setMinArray(new String[]{});
                 list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
-                    if(null != z.getMin()) {
+                    if (null != z.getMin()) {
                         x.setId(z.getId());
                         x.setMinArray(z.getMin().split(","));
                         x.setMax(z.getMax());
                         x.setOperator(z.getOperator());
                     }
                 });
-            }else{
+            } else {
                 list.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().ifPresent(z -> {
                     x.setId(z.getId());
                     x.setMin(z.getMin());
@@ -110,7 +111,7 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         List<PtlAgreementUndwrtRulesNew> rulesList = baseMapper.selectList(new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
                 .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId));
         List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
-        rulesList.forEach(item->{
+        rulesList.forEach(item -> {
             List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());
             item.setRulesAttrList(collect);
         });
@@ -118,20 +119,84 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
     }
 
     @Override
-    public Page rulesPage(Page page,String agreementId) {
+    public Page rulesPage(Page page, String agreementId) {
 
-        Page<PtlAgreementUndwrtRulesNew> rulesPage = baseMapper.selectPage(page,new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
+        Page<PtlAgreementUndwrtRulesNew> rulesPage = baseMapper.selectPage(page, new LambdaQueryWrapper<PtlAgreementUndwrtRulesNew>()
                 .eq(PtlAgreementUndwrtRulesNew::getAgreementId, agreementId));
-        List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
+
+//        List<PtlAgreementUndwrtRulesAttrLink> ptlAgreementUndwrtRulesAttrLinkList = ptlAgreementUndwrtRulesAttrLinkService.list();
         List<PtlAgreementUndwrtRulesNew> records = rulesPage.getRecords();
-        records.forEach(item->{
-            List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());
-            item.setRulesAttrList(collect);
+        //遍历费用列表
+        List<String> ids = new ArrayList<>();
+        records.forEach(x -> {
+            ids.add(x.getId());
         });
+
+        //获取费用属性
+        List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList = ptlAgreementUndwrtRulesAttrService.getUndwrtRulesAttrList();
+        List<PtlAgreementUndwrtRulesAttrLink> list = ptlAgreementUndwrtRulesAttrLinkService.list(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
+                .in(PtlAgreementUndwrtRulesAttrLink::getRulesId, ids));
+
+        Map<String, List<PtlAgreementUndwrtRulesAttrLink>> groupedByCostsId = list.stream()
+                .collect(Collectors.groupingBy(PtlAgreementUndwrtRulesAttrLink::getRulesId));
+        groupedByCostsId.forEach((k, v) -> {
+            records.stream().filter(x -> x.getId().equals(k)).findFirst().ifPresent(x -> x.setDesc(buildDesc(v,undwrtRulesAttrList)));
+        });
+
+//        records.forEach(item -> {
+//            List<PtlAgreementUndwrtRulesAttrLink> collect = ptlAgreementUndwrtRulesAttrLinkList.stream().filter(x -> Objects.equals(x.getRulesId(), item.getId())).collect(Collectors.toList());
+//            item.setRulesAttrList(collect);
+//        });
         rulesPage.setRecords(records);
         return rulesPage;
     }
 
+    /**
+     * 遍历费用属性描述文字
+     * @param v
+     * @param undwrtRulesAttrList
+     * @return
+     */
+    private String buildDesc(List<PtlAgreementUndwrtRulesAttrLink> v, List<PtlAgreementUndwrtRulesAttr> undwrtRulesAttrList) {
+        String desc = "";
+        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();
+            //数值范围判断
+            if ("inputNumber".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += inputNumberIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += radioIdentifying(ptlAgreementUndwrtRulesAttr, v.get(i)) + "\n";
+            }
+            if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
+                desc += ptlAgreementUndwrtRulesAttr.getAttrName() + "包含" + v.get(i).getMin() + "\n";
+            }
+        }
+        return desc;
+    }
+
+    private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
+        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream().filter(x ->
+                x.getCode().equals(ptlAgreementProductCostsAttrLink.getMin())).findAny().get();
+        return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
+    }
+
+    private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
+        if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("2".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("3".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "小于等于" + ptlAgreementProductCostsAttrLink.getMin();
+        } else if ("4".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于" + ptlAgreementProductCostsAttrLink.getMax();
+        } else if ("5".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
+            return ptlAgreementUndwrtRulesAttr.getAttrName() + "大于等于" + ptlAgreementProductCostsAttrLink.getMax();
+        }
+        return "";
+    }
+
     @Transactional
     @Override
     public boolean rulesAdd(AgreementUndwrtRules agreementUndwrtRules) {
@@ -141,25 +206,61 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         ptlAgreementUndwrtRulesNew.setId(null);
         int insert = baseMapper.insert(ptlAgreementUndwrtRulesNew);
 
+        //保存承包规则历史记录
+        PtlAgreementUndwrtRulesNewHistory ptlAgreementUndwrtRulesNewHistory = new PtlAgreementUndwrtRulesNewHistory();
+        BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNewHistory);
+        //添加承包规则ID
+        ptlAgreementUndwrtRulesNewHistory.setRulesId(ptlAgreementUndwrtRulesNew.getId());
+        //生成批次ID
+        String uuid = UUID.randomUUID().toString();
+        ptlAgreementUndwrtRulesNewHistory.setBatch(uuid);
+
+        ptlAgreementUndwrtRulesNewHistory.setOperatorType("add");
+        ptlAgreementUndwrtRulesNewHistory.setModifier(BaseController.getUser().getId());
+        ptlAgreementUndwrtRulesNewHistory.setOperatorTime(LocalDateTime.now());
+        ptlAgreementUndwrtRulesNewHistoryService.save(ptlAgreementUndwrtRulesNewHistory);
+        //创建承包规则费用因子历史记录容器
+        List<PtlAgreementUndwrtRulesAttrLinkHistory> undwrtRulesAttrLinkHistories = new ArrayList<>();
+
+
         //遍历承保规则属性
         List<PtlAgreementUndwrtRulesAttrLink> rulesAttrList = agreementUndwrtRules.getRulesAttrList();
         List<PtlAgreementUndwrtRulesAttrLink> costsAttrLink = new ArrayList<>();
         rulesAttrList.forEach(x -> {
             //单独处理车牌号
-            if("LicenseNo".equals(x.getAttrCode())){
+            if ("LicenseNo".equals(x.getAttrCode())) {
                 x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
                 x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
                 x.setId(0);
                 costsAttrLink.add(x);
-            }else {
+                PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
+                BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
+                //设置承包规则费用因子历史记录
+                undwrtRulesAttrLinkHistory.setBatch(uuid);
+
+                undwrtRulesAttrLinkHistory.setOperatorType("add");
+                undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
+            } else {
                 if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
 
                     x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
                     x.setId(0);
                     costsAttrLink.add(x);
+                    PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
+                    BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
+                    //设置承包规则费用因子历史记录
+                    undwrtRulesAttrLinkHistory.setBatch(uuid);
+
+                    undwrtRulesAttrLinkHistory.setOperatorType("add");
+                    undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                    undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                    undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
                 }
             }
         });
+        ptlAgreementUndwrtRulesAttrLinkHistoryService.saveBatch(undwrtRulesAttrLinkHistories);
         ptlAgreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);
         return true;
     }
@@ -172,6 +273,22 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNew);
         int update = baseMapper.updateById(ptlAgreementUndwrtRulesNew);
 
+        //保存承包规则历史记录
+        PtlAgreementUndwrtRulesNewHistory ptlAgreementUndwrtRulesNewHistory = new PtlAgreementUndwrtRulesNewHistory();
+        BeanUtils.copyProperties(agreementUndwrtRules, ptlAgreementUndwrtRulesNewHistory);
+        //添加承包规则ID
+        ptlAgreementUndwrtRulesNewHistory.setRulesId(ptlAgreementUndwrtRulesNew.getId());
+        //生成批次ID
+        String uuid = UUID.randomUUID().toString();
+        ptlAgreementUndwrtRulesNewHistory.setBatch(uuid);
+
+        ptlAgreementUndwrtRulesNewHistory.setOperatorType("update");
+        ptlAgreementUndwrtRulesNewHistory.setModifier(BaseController.getUser().getId());
+        ptlAgreementUndwrtRulesNewHistory.setOperatorTime(LocalDateTime.now());
+        ptlAgreementUndwrtRulesNewHistoryService.save(ptlAgreementUndwrtRulesNewHistory);
+        //创建承包规则费用因子历史记录容器
+        List<PtlAgreementUndwrtRulesAttrLinkHistory> undwrtRulesAttrLinkHistories = new ArrayList<>();
+
         //设置费用因子属性
         //先删除属性值
         ptlAgreementUndwrtRulesAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
@@ -182,31 +299,57 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
         List<PtlAgreementUndwrtRulesAttrLink> costsAttrLink = new ArrayList<>();
         costsAttrLinks.forEach(x -> {
             //单独处理车牌号
-            if("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && x.getMin() != "")){
+            if ("LicenseNo".equals(x.getAttrCode()) && (x.getMin() != null && x.getMin() != "")) {
                 x.setOperator(x.getDictLabal().getJSONObject(0).getString("parentNumber"));
                 x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
                 x.setId(0);
                 costsAttrLink.add(x);
-            }else {
+                PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
+                BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
+                //设置承包规则费用因子历史记录
+                undwrtRulesAttrLinkHistory.setBatch(uuid);
+
+                undwrtRulesAttrLinkHistory.setOperatorType("update");
+                undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
+            } else {
                 PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr = undwrtRulesAttrList.stream().filter(y -> y.getAttrCode().equals(x.getAttrCode())).findFirst().orElse(null);
                 //单独判断radio  radio中存在0的属性值
-                if("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())){
+                if ("radio".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                     if (null != x.getMin()) {
-
                         x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
                         x.setId(0);
                         costsAttrLink.add(x);
+                        PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
+                        BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
+                        //设置承包规则费用因子历史记录
+                        undwrtRulesAttrLinkHistory.setBatch(uuid);
+
+                        undwrtRulesAttrLinkHistory.setOperatorType("update");
+                        undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                        undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                        undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
                     }
-                }else {
+                } else {
                     if ((!"0".equals(x.getMin()) && null != x.getMin()) || (!"0".equals(x.getMax()) && null != x.getMax())) {
-
                         x.setRulesId(ptlAgreementUndwrtRulesNew.getId());
                         x.setId(0);
                         costsAttrLink.add(x);
+                        PtlAgreementUndwrtRulesAttrLinkHistory undwrtRulesAttrLinkHistory = new PtlAgreementUndwrtRulesAttrLinkHistory();
+                        BeanUtils.copyProperties(x, undwrtRulesAttrLinkHistory);
+                        //设置承包规则费用因子历史记录
+                        undwrtRulesAttrLinkHistory.setBatch(uuid);
+
+                        undwrtRulesAttrLinkHistory.setOperatorType("update");
+                        undwrtRulesAttrLinkHistory.setModifier(BaseController.getUser().getId());
+                        undwrtRulesAttrLinkHistory.setOperatorTime(LocalDateTime.now());
+                        undwrtRulesAttrLinkHistories.add(undwrtRulesAttrLinkHistory);
                     }
                 }
             }
         });
+        ptlAgreementUndwrtRulesAttrLinkHistoryService.saveBatch(undwrtRulesAttrLinkHistories);
         ptlAgreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);
         return true;
     }
@@ -214,9 +357,11 @@ public class PtlAgreementUndwrtRulesNewServiceImpl extends ServiceImpl<PtlAgreem
     @Transactional
     @Override
     public boolean rulesDelete(String rulesId) {
-        ptlAgreementUndwrtRulesAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>()
-                .eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, rulesId));
-
+        ptlAgreementUndwrtRulesAttrLinkService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLink>().eq(PtlAgreementUndwrtRulesAttrLink::getRulesId, rulesId));
+        //删除承包规则历史记录
+        ptlAgreementUndwrtRulesNewHistoryService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesNewHistory>().eq(PtlAgreementUndwrtRulesNewHistory::getRulesId, rulesId));
+        //删除承包规则费用因子历史记录
+        ptlAgreementUndwrtRulesAttrLinkHistoryService.remove(new LambdaQueryWrapper<PtlAgreementUndwrtRulesAttrLinkHistory>().eq(PtlAgreementUndwrtRulesAttrLinkHistory::getRulesId, rulesId));
         baseMapper.deleteById(rulesId);
         return true;
     }