Просмотр исходного кода

Merge branch 'dev_jzg_lipf_v20260518'

lipf 3 месяцев назад
Родитель
Сommit
cbfaa1c1af

+ 3 - 2
commons/src/main/java/com/jzg/commons/entity/po/SysAmountAuditing.java

@@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
 import com.jzg.commons.entity.dto.ApplyWithdrawParam;
 import com.jzg.commons.entity.dto.SysUserJzgInfoBankCardDto;
+import com.jzg.commons.util.BigDecimalUtil;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -114,8 +115,8 @@ public class SysAmountAuditing extends BaseModel {
     ){
         // 提现金额
         this.setAmount(applyWithdrawParam.getWithdrawAmount());
-        // 当前账户金额 modify by lipf 2026年6月3日16:55:06 账户中剩余的金额。 该金额 是没有扣除当前提现金额的金额
-        this.setBalanceAmount(sysUserAccount.getSumAmountUnpaid());
+        // 当前账户金额 modify by lipf 2026年6月3日16:55:06 账户中剩余的金额。 该金额 是扣除当前提现金额的金额
+        this.setBalanceAmount(BigDecimalUtil.subtract(sysUserAccount.getSumAmountUnpaid(),applyWithdrawParam.getWithdrawAmount()));
         // 提现用户
         this.setUserId(userId);
         // 银行卡卡号

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysRelationPerson.java

@@ -39,4 +39,7 @@ public class SysRelationPerson extends BaseModel {
     @Schema(description = "推荐类型(0:合伙人  1:机构负责人 )")
     private Integer type;
 
+    @Schema(description = "租户代码")
+    private String systemCode;
+
 }

+ 8 - 0
commons/src/main/java/com/jzg/commons/entity/vo/AmountAuditVo.java

@@ -27,6 +27,14 @@ public class AmountAuditVo  extends BaseModel {
     @Schema(description = "sys_user_jzg_info的主键")
     private String userJzgInfoId;
 
+    @ExcelProperty("用户信息userId")
+    @Schema(description = "sys_user表的主键")
+    private String userId;
+
+    @ExcelProperty("租户代码")
+    @Schema(description = "租户代码")
+    private String systemCode;
+
     @ExcelProperty("业务员姓名")
     @Schema(description = "业务员姓名")
     private String name;

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

@@ -24,6 +24,9 @@ public class SysUserWalletVo {
     @Schema(description = "钱包余额")
     private BigDecimal walletBalance;
 
+    @Schema(description = "钱包余额(扣除冻结)")
+    private BigDecimal walletBalanceRemoveWithdraw;
+
     @Schema(description = "提现中金额")
     private BigDecimal withdrawingBalance;
 

+ 4 - 2
commons/src/main/java/com/jzg/commons/util/PDFUtil.java

@@ -177,7 +177,8 @@ public class PDFUtil {
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-       return text;
+        log.info("解析pdf。pdfFilePath=[{}].解析得到的内容是:[{}]",pdfFilePath,text);
+        return text;
     }
 
     public static String getPdfContentStr(String pdfText, String beginStr,String endStr,String dateType) {
@@ -437,6 +438,7 @@ public class PDFUtil {
         return null;
     }
     private static LocalDateTime getStringTranferDate(String payDate) {
+        String payDateBefore = payDate;
         if(StringUtils.isNotBlank(payDate)){
             payDate=payDate.replaceAll(" ", "");
             payDate=payDate.replaceAll("\\n+", "");
@@ -444,7 +446,7 @@ public class PDFUtil {
             payDate=payDate.replaceAll("\\r+", "");
             payDate = payDate.replaceAll("\\s+", "");
             payDate = payDate.replaceAll("[\u4e00-\u9fa5]", "");
-            System.out.println(payDate.length());
+            log.info("getStringTranferDate. 处理前。payDateBefore=[{}] payDate=[{}]. len=[{}]",payDateBefore, payDate, payDate.length());
             if(payDate.length() == 18){
                 payDate = payDate.substring(0,10)+" "+ payDate.substring(10,18);
             }else if(payDate.length() == 15){

+ 1 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -119,8 +119,7 @@ public class InsFeeAuditController {
     @Operation(summary = "更新签单时间")
     public HttpResult<String> updateSigningTime(@RequestParam("orderNo") String orderNo){
         String userName = baseController.getUserName();
-        insFeeAuditService.updateSigningTime(orderNo, userName);
-        return HttpResult.ok();
+        return insFeeAuditService.updateSigningTime(orderNo, userName);
     }
 
     /**

+ 3 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java

@@ -2,6 +2,7 @@ package com.jzg.quotation.summary.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.CostCalculateRespVO;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
@@ -70,8 +71,9 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
      *
      * @param orderNo  订单号(jzg系统内部的车险订单号)
      * @param userName 操作用户
+     * @return HttpResult<String>
      */
-    void updateSigningTime(String orderNo, String userName);
+    HttpResult<String> updateSigningTime(String orderNo, String userName);
 
     /**
      * 审核订单

+ 32 - 13
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -17,10 +17,7 @@ import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
-import com.jzg.commons.entity.po.InsFeeOrders;
-import com.jzg.commons.entity.po.SysUser;
-import com.jzg.commons.entity.po.SysUserAccount;
-import com.jzg.commons.entity.po.SysUserJzgInfo;
+import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.rights.po.InsOrderRights;
 import com.jzg.commons.entity.rights.po.InsOrderRightsPackage;
@@ -333,14 +330,14 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
      *
      * @param orderNo  订单号(jzg系统内部的车险订单号)
      * @param userName 操作用户
+     * @return HttpResult<String>
      */
     @Override
-    public void updateSigningTime(String orderNo, String userName) {
+    public HttpResult<String> updateSigningTime(String orderNo, String userName) {
         log.info("用户[{}]更新订单[{}]的签单时间",userName,orderNo);
-        InsOrders orders = insOrdersService.getById(orderNo);
+        InsOrders order = insOrdersService.getById(orderNo);
         // 查询电子保单路径
         InsOrdersPdfUrl pdfUrl = ordersPdfUrlService.getById(orderNo);
-        log.info("订单[{}]没有生成电子表单",orderNo);
         AssertionUtils.isFail(Objects.isNull(pdfUrl), "未生成电子保单!");
         String url = null;
         int type = 0;
@@ -355,11 +352,23 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
         // 转为本地路径
         String localUrl = PDFUtil.trafferHttpToLocalPath(url);
+        log.info("url[{}]转换为本地路径为[{}]",url,localUrl);
+
+        String companyId = order.getCompanyId();
+        HttpResult<EsmInsCompany> companyHttpResult = esmInsCompanyClient.findById(companyId);
+        EsmInsCompany insCompany = companyHttpResult.getData();
+        if(insCompany == null){
+            return HttpResult.error("订单关联的保险公司不存在");
+        }
         //通过保险公司配置读取截取的前缀和后缀
         LambdaQueryWrapper<InsOrderReadPdf> qws = new LambdaQueryWrapper<>();
-        qws.eq(InsOrderReadPdf::getCompanyId, orders.getCompanyId());
+        qws.eq(InsOrderReadPdf::getCompanyId, insCompany.getCompanyCode());
         qws.eq(InsOrderReadPdf::getType, type);
         List<InsOrderReadPdf> list = ordersReadPdfService.list(qws);
+        if(CollUtil.isEmpty(list)){
+            log.error("保险公司发票读取规则未配置. companyId=[{}]",order.getCompanyId());
+            return HttpResult.error("保险公司发票读取规则未配置");
+        }
 
         HashMap<String, LocalDateTime> map = new HashMap<>();
         String pdfText = PDFUtil.getPdfText(localUrl);
@@ -370,6 +379,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                     map.put(insOrderReadPdf.getOrderMsg(), pdfContentDate);
                 }
             }
+            log.info("ins_order_read_pdf配置转换得到的map是[{}]", JSONUtil.toJsonStr(map));
         }
 
         //刪除临时文件
@@ -378,13 +388,22 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             file.delete();
         }
         if (map.get("payDate") != null) {
-            orders.setPayTime(map.get("payDate"));
+            order.setPayTime(map.get("payDate"));
         }
         if (map.get("signingTime") != null) {
-            orders.setSigningTime(map.get("signingTime"));
-        }
-        //更新时间表
-        insOrdersService.updateById(orders);
+            order.setSigningTime(map.get("signingTime"));
+        }
+        //更新时间表 modify by lipf, 只更新指定的字段 2026年6月15日16:41:32
+        // insOrdersService.updateById(order);
+        LambdaUpdateWrapper<InsOrders> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(InsOrders::getId,order.getId());
+        updateWrapper.set(InsOrders::getPayTime,order.getPayTime());
+        updateWrapper.set(InsOrders::getSigningTime,order.getSigningTime());
+        updateWrapper.set(InsOrders::getUpdateTime, LocalDateTime.now());
+        updateWrapper.set(InsOrders::getUpdateBy, baseController.getUserName());
+
+        insOrdersService.update(null, updateWrapper);
+        return HttpResult.ok("更新成功");
     }
 
     /**

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

@@ -13,6 +13,7 @@ import com.jzg.commons.entity.vo.IncomeAndExpenseVo;
 import com.jzg.commons.entity.vo.SysUserAccountVo;
 import com.jzg.commons.entity.vo.SysUserWalletVo;
 import com.jzg.commons.entity.vo.UserAccountStatisVo;
+import com.jzg.commons.util.BigDecimalUtil;
 import com.jzg.organization.client.QuoteClient;
 import com.jzg.organization.mapper.SysUserAccountMapper;
 import com.jzg.organization.service.*;
@@ -128,12 +129,15 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         sysUserWalletVo.setWalletBalance(sysUserAccount.getSumAmountUnpaid());
         List<SysAmountAuditing> sysAmountAuditingList = sysAmountAuditingService
                 .list(new LambdaQueryWrapper<SysAmountAuditing>()
-                        .eq(SysAmountAuditing::getUserId, sysUser.getId()).eq(SysAmountAuditing::getAuditingStatus, 0));
+                        .eq(SysAmountAuditing::getUserId, sysUser.getId())
+                        .eq(SysAmountAuditing::getSystemCode,sysUserJzgInfo.getSystemCode())
+                        .eq(SysAmountAuditing::getAuditingStatus, 0));
         BigDecimal withdrawingBalance = BigDecimal.ZERO;
         for (SysAmountAuditing sysAmountAuditing : sysAmountAuditingList) {
             withdrawingBalance = withdrawingBalance.add(sysAmountAuditing.getAmount());
         }
         sysUserWalletVo.setWithdrawingBalance(withdrawingBalance);
+        sysUserWalletVo.setWalletBalanceRemoveWithdraw(BigDecimalUtil.subtract(sysUserAccount.getSumAmountUnpaid(),withdrawingBalance));
         sysUserWalletVo.setIntegral(sysUserAccount.getIntegral());
         InsFeeOrdersParam param = new InsFeeOrdersParam();
         param.setUserId(sysUserJzgInfo.getUserId());

+ 5 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgAppServiceImpl.java

@@ -96,6 +96,9 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
     @Override
     public UserInfoVo userInfoGet(String userName) {
         String systemCode = baseController.getSystemCode();
+        if (StrUtil.isBlank(userName) || StrUtil.isBlank(systemCode)) {
+            throw new SystemException("用户名、租户编码不能为空");
+        }
         log.info("获取用户信息:systemCode=[{}],userName=[{}]", systemCode, userName);
         UserInfoVo infoVo = sysUserJzgAppMapper.userInfoGet(userName,systemCode);
         infoVo.setHeadSculpture(MinioUtils.getPresignedObjectUrl("jzg", infoVo.getHeadSculpture()));
@@ -298,7 +301,6 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
                 }
                 sysUserId = user.getId();
             }
-            // add by lipf 2026年6月9日15:16:39 向 sys_user_jzg_info_salesman 表中插入一条记录 
             // add by lipf 2026年6月9日15:16:39 向 sys_user_jzg_info_salesman 表中插入一条记录
             Map<String, String> stringStringMap = sysUserJzgInfoSalesmanService.queryAllTypeAttrMap();
             String typeAttrs = stringStringMap.getOrDefault(yqrInfo.getId(), "");
@@ -595,6 +597,7 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
      * @param appUser
      */
     private void addRelationPerson(SysUserJzgApp sourceAppUser, SysUserJzgApp appUser) {
+        log.info("添加推荐人关系:sourceAppUser=[{}], appUser=[{}]", JSONUtil.toJsonStr(sourceAppUser), JSONUtil.toJsonStr(appUser));
         // 查询推荐人关系
         LambdaQueryWrapper<SysRelationPerson> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysRelationPerson::getSuggestId, sourceAppUser.getId())
@@ -605,6 +608,7 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
         relationPerson.setSuggestId(appUser.getId());
         relationPerson.setSource(0);
         relationPerson.setType(0);
+        relationPerson.setSystemCode(sourceAppUser.getSystemCode());
         if (Objects.isNull(person)) {
             relationPerson.setSuggestLevel(1);
         } else {

+ 10 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.jzg.organization.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
@@ -79,6 +80,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     private SysUserJzgInfoMapper sysUserJzgInfoMapper;
 
+    @Resource
+    private SysUserJzgAppMapper sysUserJzgAppMapper;
+
     @Autowired
     private SysAreaService sysAreaService;
 
@@ -564,6 +568,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserJzgInfoSalesman1.setTypeAttr(sysUserVo.getTypeAttr());  // 业务员类型
         sysUserJzgInfoSalesmanList.add(sysUserJzgInfoSalesman1);
 
+        // app内也要新增一条数据
+        SysUserJzgApp sysUserJzgApp = BeanUtil.copyProperties(sysUserJzgInfo, SysUserJzgApp.class);
+        sysUserJzgApp.setId(IdGenerate.nextId());
+        sysUserJzgApp.setSystemCode(baseController.getAppSystemCode());
+
+        sysUserJzgAppMapper.insert(sysUserJzgApp);
         sysUserJzgInfoSalesmanService.saveBatch(sysUserJzgInfoSalesmanList);
     }
 

+ 2 - 0
tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

@@ -162,6 +162,8 @@
         saa.bank_card_num AS bankCardNum,
         saa.bank_name AS bankName,
         saa.bank_num AS bankNum,
+        saa.user_id,
+        saa.system_code,
         saa.auditing_time
         FROM sys_amount_auditing saa
         LEFT JOIN sys_user_jzg_info suji on saa.user_id = suji.user_id AND suji.is_delete = 0