Quellcode durchsuchen

解决批量修改时,对接人手机号和对接人姓名没有显示的bug

轨迹中,签单时间等字段没有转义的问题
轨迹中,对接人手机号和对接人姓名没有展示的问题
轨迹中,LocalDate和LocalDateTime 没有展示为可读的日期,而是时间戳
lipf vor 1 Monat
Ursprung
Commit
be5a8d95c3

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/dto/IncomeAndExpenseParam.java

@@ -31,4 +31,11 @@ public class IncomeAndExpenseParam {
     @Schema(description = "用户序号")
     private String userId;
 
+    public IncomeAndExpenseParam(String userId,String systemCode) {
+        this.systemCode = systemCode;
+        this.userId = userId;
+    }
+
+    public IncomeAndExpenseParam() {
+    }
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/BatchModifyVo.java

@@ -51,6 +51,9 @@ public class BatchModifyVo {
     @Schema(description = "对接人姓名")
     private String contractUserName;
 
+    @Schema(description = "对接人手机号")
+    private String contractUserPhone;
+
     @Schema(description = "对接人手机号")
     private String contractPhone;
 

+ 6 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -62,6 +62,10 @@ public class QuoteEchoVo extends QuoteVo {
         private String orderStatus;
         private String companyName;
         private String productsName;
+
+        private String dockingPerson;
+        private String dockingPersonPhone;
+
         /**
          * 协议id
          */
@@ -345,6 +349,8 @@ public class QuoteEchoVo extends QuoteVo {
         this.getOrder().setSigningTime(insOrdersVo.getPayTime());
         this.getOrder().setOrderType(insOrdersVo.getOrderType());
         this.getOrder().setEntryStatus(insOrdersVo.getEntryStatus());
+        this.getOrder().setDockingPerson (insOrdersVo.getDockingPerson());
+        this.getOrder().setDockingPersonPhone(insOrdersVo.getDockingPersonPhone());
         if (Objects.nonNull(insOrdersVo.getSpecialInfoVo())) {
             this.setCiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0507")).collect(Collectors.toList()));
             this.setBiSpecialInfoVo(insOrdersVo.getSpecialInfoVo().stream().filter(companyClauseVo -> companyClauseVo.getRiskCode().equals("0510")).collect(Collectors.toList()));

+ 5 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/orders/InsOrdersVo.java

@@ -76,6 +76,11 @@ public class InsOrdersVo extends QuoteVo {
     @Schema(description = "订单类型")
     private String orderType;
 
+    @Schema(description = "对接人姓名")
+    private String dockingPerson;
+    @Schema(description = "对接人手机号")
+    private String dockingPersonPhone;
+
     @Schema(description = "录单时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;

+ 10 - 0
commons/src/main/java/com/jzg/commons/util/OrderComponts.java

@@ -45,6 +45,16 @@ public class OrderComponts {
         nameMap.put("insFeeOrders.totalReceivablePremium","总应收费用");
         nameMap.put("insFeeOrders.totalPayablePremium","总应付费用");
         nameMap.put("insFeeOrders.totalExportPremium","总出口费用");
+
+        nameMap.put("costRatio.jqCommissionRatio","交强险手续费比例");
+        nameMap.put("costRatio.syCommissionRatio","商业险手续费比例");
+        nameMap.put("costRatio.jyCommissionRatio","驾意险手续费比例");
+        nameMap.put("insFeeOrders.jqCommissionPremium","交强险手续费费用");
+        nameMap.put("insFeeOrders.syCommissionPremium","商业险手续费费用");
+        nameMap.put("insFeeOrders.jyCommissionPremium","驾意险手续费费用");
+        nameMap.put("insFeeOrders.signTime","签单时间");
+        nameMap.put("order.dockingPerson","对接人姓名");
+        nameMap.put("order.dockingPersonPhone","对接人手机号");
         return nameMap;
     }
 

+ 4 - 8
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java

@@ -1,6 +1,7 @@
 package com.jzg.quotation.summary.aop;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONConfig;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
@@ -83,6 +84,8 @@ public class OrderOperationLogAspect {
         }
         ExpressionParser parser = new SpelExpressionParser();
         Object result = null;
+        // 创建 JSONConfig 并设置日期格式, 会把LocalDate 和LocalDateTime 都转换为 包含时分秒的格式(后续有了更好的办法再优化)
+        JSONConfig jsonConfig = JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss");
         switch (log.optType().getCode()){
             // 创建订单
             case 0:
@@ -169,16 +172,9 @@ public class OrderOperationLogAspect {
                 QuoteEchoVo detailVoOld = insFeeAuditService.auditInfo(vo.getOrderNo());
                 result = joinPoint.proceed();
                 QuoteEchoVo detailVoNew = insFeeAuditService.auditInfo(vo.getOrderNo());
-                Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld), JSONUtil.toJsonStr(detailVoNew), new HashSet<>());
+                Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld,jsonConfig), JSONUtil.toJsonStr(detailVoNew,jsonConfig), new HashSet<>());
                 this.saveCostInfo(result,log, vo,diffMap);
                 break;
-            // 批量修改比例
-            case 16:
-                logger.info("批量修改比例.log.orderSpEl()=[{}]",log.orderSpEl());
-                BatchModifyVo batchModifyVo = parser.parseExpression(log.orderSpEl()).getValue(context, BatchModifyVo.class);
-                result = joinPoint.proceed();
-                this.batchModify(result,log, batchModifyVo);
-                break;
             // 设为疑问订单
             case 17:
                 logger.info("设置为疑问订单.log.orderSpEl()=[{}]",log.orderSpEl());

+ 4 - 1
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -208,6 +208,8 @@
         <result property="auditName" column="audit_name" jdbcType="VARCHAR"/>
         <result property="errorMessage" column="error_message" jdbcType="VARCHAR"/>
         <result property="orderType" column="order_type" jdbcType="VARCHAR"/>
+        <result property="dockingPerson" column="docking_person" jdbcType="VARCHAR"/>
+        <result property="dockingPersonPhone" column="docking_person_phone" jdbcType="VARCHAR"/>
         <association property="insOrders" column="{id=id}" select="selectOrdersById"/>
         <association property="carInfoVo" column="{orderNo=id}" select="selectOrdersCarInfoByOrderNo"/>
         <association property="insOrdersOtherInfo" column="{orderNo=id}" select="selectOrdersOtherByOrderNo"/>
@@ -793,7 +795,8 @@
         WHEN 2 THEN '代客录单'
         WHEN 3 THEN '补录订单'
         ELSE ''
-        END AS order_type
+        END AS order_type,
+        docking_person , docking_person_phone
         from ins_orders
         <where>
             and is_delete = 0

+ 4 - 3
tenant/organization/src/main/java/com/jzg/organization/aop/OrderOperationLogAspect.java

@@ -1,6 +1,7 @@
 package com.jzg.organization.aop;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.json.JSONConfig;
 import cn.hutool.json.JSONUtil;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.finance.vo.BatchModifyVo;
@@ -8,7 +9,6 @@ import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
 import com.jzg.commons.entity.orders.po.InsOrdersTrack;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
-import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import com.jzg.commons.entity.vo.QuestionOrder;
 import com.jzg.commons.util.JsonDiffUtil;
 import com.jzg.commons.util.OrderComponts;
@@ -146,6 +146,8 @@ public class OrderOperationLogAspect {
             logger.info("批量修改没有传入订单号");
             return;
         }
+        // 创建 JSONConfig 并设置日期格式, 会把LocalDate 和LocalDateTime 都转换为 包含时分秒的格式(后续有了更好的办法再优化)
+        JSONConfig jsonConfig = JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss");
         for (String orderNo : orderNos) {
             InsOrdersTrack track = new InsOrdersTrack();
             track.setModule(log.module());
@@ -154,8 +156,7 @@ public class OrderOperationLogAspect {
             track.setOptContent(log.description());
             QuoteEchoVo detailVoOld = oldOrders.get(orderNo);
             QuoteEchoVo detailVoNew = newOrders.get(orderNo);
-            Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld), JSONUtil.toJsonStr(detailVoNew), new HashSet<>());
-
+            Map<String, List<String>> diffMap = JsonDiffUtil.compareJson(JSONUtil.toJsonStr(detailVoOld,jsonConfig), JSONUtil.toJsonStr(detailVoNew,jsonConfig), new HashSet<>());
             if(CollUtil.isNotEmpty(diffMap)){
                 List<String> oldItems = new ArrayList<>();
                 List<String> newItems = new ArrayList<>();

+ 3 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -3687,6 +3687,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Transactional(rollbackFor = Exception.class)
     public boolean batchModify(BatchModifyVo batchModifyVo) {
         log.info("批量修改应收订单: batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
+        if(StrUtil.isEmpty(batchModifyVo.getContractPhone())){
+            batchModifyVo.setContractPhone(batchModifyVo.getContractUserPhone());
+        }
         List<String> incomeIds = batchModifyVo.getIncomeIds();
         if (CollUtil.isEmpty(incomeIds)) {
             throw new ServiceException("请勾选要批量修改的应收订单");

+ 2 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -314,6 +314,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         }
         param.setCreateTimeStart(createTimeStart);
         param.setCreateTimeEnd(createTimeEnd);
+        List<IncomeAndExpenseList> recordsWithOutParam = sysAmountAuditingService.getIncomeAndExpense(new IncomeAndExpenseParam(param.getUserId(),param.getSystemCode()));
         List<IncomeAndExpenseList> allRecords = sysAmountAuditingService.getIncomeAndExpense(param);
         allRecords = allRecords.stream().peek(action->{
             if("0".equals(action.getStatus())){
@@ -363,7 +364,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
         // 按月份分组统计
         Map<String, IncomeAndExpenseVo.IncomeAndExpense> monthSummaryMap = new TreeMap<>(Collections.reverseOrder());
-        for (IncomeAndExpenseList record : allRecords) {
+        for (IncomeAndExpenseList record : recordsWithOutParam) {
             if (record.getCreateTime() == null) continue;
             // 获取月份(格式:yyyy-MM)
             String month = record.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM"));