Procházet zdrojové kódy

私有协议的批量修改功能

lipf před 4 měsíci
rodič
revize
6ed7fc7920

+ 35 - 0
commons/src/main/java/com/jzg/commons/config/LocalDateTimeDefiner.java

@@ -0,0 +1,35 @@
+package com.jzg.commons.config;
+
+import ch.qos.logback.classic.pattern.MessageConverter;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 利用 SLF4J 的参数格式化机制,自定义一个全局的格式化器
+ *
+ * @author lipf
+ * @date 2026/5/28 14:21
+ */
+@Component
+public class LocalDateTimeDefiner extends MessageConverter {
+    // 定义你想要的统一格式
+    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+    @Override
+    public String convert(ILoggingEvent event) {
+        Object[] argArray = event.getArgumentArray();
+        if (argArray != null) {
+            for (int i = 0; i < argArray.length; i++) {
+                // 如果参数是 LocalDateTime 类型,就按指定格式转换
+                if (argArray[i] instanceof LocalDateTime) {
+                    argArray[i] = FORMATTER.format((LocalDateTime) argArray[i]);
+                }
+            }
+        }
+        // 返回原本的日志消息(此时参数数组里的 LocalDateTime 已经被替换为格式化后的字符串)
+        return event.getMessage();
+    }
+}

+ 4 - 2
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java

@@ -10,6 +10,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
+import java.time.LocalDateTime;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
@@ -50,9 +51,9 @@ public class InsPlyIncome extends BaseModel {
     private String riskCode;
 
     @Schema(description = "签单时间")
-    @TableField(exist = false)
+    //@TableField(exist = false)
     @ExcelProperty("签单时间")
-    private String signingTime;
+    private LocalDateTime signingTime;
 
     @Schema(description = "签单年份")
     @TableField(exist = false)
@@ -242,6 +243,7 @@ public class InsPlyIncome extends BaseModel {
     @ExcelProperty("结算状态(编码)")
     private String settlementStatus="0";
 
+    @TableField(exist = false)
     @Schema(description = "结算状态(转义后)")
     @ExcelProperty("结算状态(转义后)")
     private String settlementStatusName;

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

@@ -1,5 +1,6 @@
 package com.jzg.commons.entity.finance.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -39,6 +40,7 @@ public class BatchModifyVo {
 //    @Schema(description = "驾意跟单费比例")
 //    private BigDecimal jyOtherCostsProportion;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Schema(description = "签单时间")
     private LocalDateTime signingTime;
 

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java

@@ -6,10 +6,12 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
 import java.time.LocalDateTime;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 @Schema(description = "保险订单表")
 public class InsOrders extends BaseModel {

+ 0 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsOrdersController.java

@@ -41,7 +41,6 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.validation.constraints.NotNull;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/supplementOrder")

+ 15 - 12
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -1680,18 +1680,21 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
             log.info("车险订单[{}]对应的订单明细是[{}]", orderNo, JSONUtil.toJsonStr(oldInsOrders));
 
-            InsOrders insOrders = new InsOrders();
-            insOrders.setId(orderNo);
-            insOrders.setSigningTime(batchModifyVo.getSigningTime());
-            insOrders.setDockingPerson(batchModifyVo.getContractUserName());
-            insOrders.setDockingPersonPhone(batchModifyVo.getContractPhone());
-
-            // 批量修改
-            baseMapper.update(new InsOrders(), new LambdaUpdateWrapper<InsOrders>()
-                    .set(InsOrders::getSigningTime, batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
-                    .set(InsOrders::getDockingPerson, batchModifyVo.getContractUserName())
-                    .set(InsOrders::getDockingPersonPhone, batchModifyVo.getContractPhone())
-                    .eq(InsOrders::getId,orderNo));
+            if(batchModifyVo.getSigningTime() != null){
+                baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
+                        .set(InsOrders::getSigningTime, batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+                        .eq(InsOrders::getId,orderNo));
+            }
+            if(StrUtil.isNotEmpty(batchModifyVo.getContractUserName())){
+                baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
+                        .set(InsOrders::getDockingPerson, batchModifyVo.getContractUserName())
+                        .eq(InsOrders::getId,orderNo));
+            }
+            if(StrUtil.isNotEmpty(batchModifyVo.getContractPhone())){
+                baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
+                        .set(InsOrders::getDockingPersonPhone, batchModifyVo.getContractPhone())
+                        .eq(InsOrders::getId,orderNo));
+            }
             count++;
         }
         String msg = String.format("成功修改%d条车险订单",count);

+ 1 - 1
tenant/organization/src/main/java/com/jzg/organization/client/InsFeeOrdersClient.java

@@ -26,7 +26,7 @@ public interface InsFeeOrdersClient {
     List<InsFeeOrders> getInsFeeOrderByOrderNo(@RequestParam String orderNo);
 
 
-    @PostMapping("/updateOrdersBatch")
+    @PostMapping("/supplementOrder/updateOrdersBatch")
     @Operation(summary = "车险报价批量修改联系人等信息")
     HttpResult<String> updateOrdersBatch(@RequestBody BatchModifyVo batchModifyVo);
 

+ 6 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -446,6 +446,12 @@ public class ReceivableController {
         receivableService.exportOtherSettlementDetailJyExcel(page,settlementQueryVo);
     }
 
+    /**
+     * 私有协议-手续费,跟单费,平台协议三个页面的保险公司报表统计接口
+     *
+     * @author lipf
+     * @date 2026/5/28 11:15
+     */
     @PostMapping("companySuperviseSettlementReport")
     @Operation(summary = "保险公司结算报表")
     public HttpResult<List<CompanySuperviseSettlementReportDto>> companySuperviseSettlementReport(@RequestBody SettlementReportQueryVo settlementReportQueryVo) {

+ 23 - 30
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -277,8 +277,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 };
                 // 签单时间
                 Predicate<InsPlyIncome> signDatePredicate = insPlyIncome -> {
-                    String signingTime = insPlyIncome.getSigningTime();
-                    if(StrUtil.isEmpty(signingTime)){
+                    LocalDateTime signingTime = insPlyIncome.getSigningTime();
+                    if(signingTime == null){
                         // 签单时间如果为空,说明是数据问题 先返回去,让业务去处理
                         return true;
                     }
@@ -1427,7 +1427,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Transactional
     public boolean batchModify(BatchModifyVo batchModifyVo) {
         log.info("批量修改应收订单: batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
-
         List<String> incomeIds = batchModifyVo.getIncomeIds();
         if(CollUtil.isEmpty(incomeIds)) {
             throw new ServiceException("请勾选要批量修改的应收订单");
@@ -1440,48 +1439,42 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 continue;
             }
             insOrders.add(insPlyIncomeSource.getOrderNo());
-            InsPlyIncome insPlyIncome = new InsPlyIncome();
-            insPlyIncome.setId(insPlyIncomeSource.getId());
             if (Objects.nonNull(batchModifyVo.getJqSuperviseCostsProportion()) && batchModifyVo.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal superviseReceivablePremium = calcReceivableAmount(new BigDecimal(insPlyIncome.getJqPremium()), batchModifyVo.getJqSuperviseCostsProportion());
-                insPlyIncome.setJqSuperviseCostsProportion(Objects.toString(batchModifyVo.getJqSuperviseCostsProportion()));
-                insPlyIncome.setJqSuperviseCostsPremiums(superviseReceivablePremium.toString());
+                BigDecimal superviseReceivablePremium = calcReceivableAmount(new BigDecimal(Objects.toString(insPlyIncomeSource.getJqPremium(),"0") ), batchModifyVo.getJqSuperviseCostsProportion());
+                baseMapper.update(null, new LambdaUpdateWrapper<InsPlyIncome>()
+                        .set(InsPlyIncome::getJqSuperviseCostsProportion, batchModifyVo.getJqSuperviseCostsProportion())
+                        .set(InsPlyIncome::getJqSuperviseCostsPremiums, superviseReceivablePremium)
+                        .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
             }
             if (Objects.nonNull(batchModifyVo.getSySuperviseCostsProportion()) && batchModifyVo.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
-                BigDecimal otherReceivablePremium = calcReceivableAmount(new BigDecimal(insPlyIncome.getSyPremium()), batchModifyVo.getSySuperviseCostsProportion());
-                insPlyIncome.setSySuperviseCostsProportion(Objects.toString(batchModifyVo.getSySuperviseCostsProportion()));
-                insPlyIncome.setSySuperviseCostsPremiums(otherReceivablePremium.toString());
+                BigDecimal otherReceivablePremium = calcReceivableAmount(new BigDecimal(Objects.toString(insPlyIncomeSource.getSyPremium(),"0")), batchModifyVo.getSySuperviseCostsProportion());
+                baseMapper.update(null, new LambdaUpdateWrapper<InsPlyIncome>()
+                        .set(InsPlyIncome::getSySuperviseCostsProportion, batchModifyVo.getSySuperviseCostsProportion())
+                        .set(InsPlyIncome::getSySuperviseCostsPremiums, otherReceivablePremium)
+                        .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
             }
             if (batchModifyVo.getSigningTime() != null){
-                insPlyIncome.setSigningTime(batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+                baseMapper.update(null, new LambdaUpdateWrapper<InsPlyIncome>()
+                        .set(InsPlyIncome::getSigningTime, batchModifyVo.getSigningTime())
+                        .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
 
             }
-
             if(StrUtil.isNotEmpty(batchModifyVo.getContractUserName())){
-                insPlyIncome.setContactPerson(batchModifyVo.getContractUserName());
+                baseMapper.update(null, new LambdaUpdateWrapper<InsPlyIncome>()
+                        .set(InsPlyIncome::getContactPerson, batchModifyVo.getContractUserName())
+                        .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
 
             }
             if(StrUtil.isNotEmpty(batchModifyVo.getContractPhone())){
-                insPlyIncome.setContactPersonPhone(batchModifyVo.getContractPhone());
-
-
+                baseMapper.update(null, new LambdaUpdateWrapper<InsPlyIncome>()
+                        .set(InsPlyIncome::getContactPersonPhone, batchModifyVo.getContractPhone())
+                        .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
             }
         }
-
         batchModifyVo.setOrderNos(insOrders);
         HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
-        if(updateOrdersRes.isSuccess()){
-            // 批量修改
-            baseMapper.update(new InsPlyIncome(), new LambdaUpdateWrapper<InsPlyIncome>()
-                    .set(InsPlyIncome::getJqSuperviseCostsProportion, batchModifyVo.getJqSuperviseCostsProportion())
-                    .set(InsPlyIncome::getSySuperviseCostsProportion, batchModifyVo.getSySuperviseCostsProportion())
-                    .set(InsPlyIncome::getSigningTime, batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
-                    .set(InsPlyIncome::getContactPerson, batchModifyVo.getContractUserName())
-                    .set(InsPlyIncome::getContactPersonPhone, batchModifyVo.getContractPhone())
-                    .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
-            return true;
-        }
-        return false;
+        log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
+        return true;
     }
 
     @Override