فهرست منبع

Merge remote-tracking branch 'origin/master'

Qchen 3 ماه پیش
والد
کامیت
79e6ced13f
43فایلهای تغییر یافته به همراه275 افزوده شده و 63 حذف شده
  1. 10 9
      authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java
  2. 1 0
      authentication/src/main/java/com/jzg/controller/AuthController.java
  3. 6 0
      commons/src/main/java/com/jzg/commons/core/base/BaseController.java
  4. 2 0
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeOrder.java
  5. 11 1
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeVO.java
  6. 6 1
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsFeeAudit.java
  7. 3 0
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java
  8. 3 0
      commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java
  9. 2 2
      commons/src/main/java/com/jzg/commons/entity/po/SysAmountAuditing.java
  10. 3 0
      commons/src/main/java/com/jzg/commons/entity/po/SysUserAccount.java
  11. 4 0
      commons/src/main/java/com/jzg/commons/exception/SystemException.java
  12. 1 0
      platform/src/main/java/com/jzg/service/impl/PtlInsAttributionTemplateServiceImpl.java
  13. 2 1
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/component/HtCrawlerRequestComponent.java
  14. 9 2
      tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/util/CookieUtils.java
  15. 13 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeOrderController.java
  16. 1 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/UnifyOrderManager.java
  17. 2 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java
  18. 7 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java
  19. 10 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeOrdersMapper.java
  20. 3 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java
  21. 9 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeOrdersService.java
  22. 3 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  23. 26 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java
  24. 2 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  25. 1 1
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml
  26. 14 0
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeOrdersMapper.xml
  27. 1 1
      tenant/insurance/quotation-summary/src/main/resources/mapper/SysQueryVehicleConfigMapper.xml
  28. 10 0
      tenant/organization/src/main/java/com/jzg/organization/client/InsFeeOrdersClient.java
  29. 7 1
      tenant/organization/src/main/java/com/jzg/organization/controller/AppUserController.java
  30. 13 1
      tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java
  31. 6 6
      tenant/organization/src/main/java/com/jzg/organization/controller/UserAccountController.java
  32. 3 2
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgAppMapper.java
  33. 9 0
      tenant/organization/src/main/java/com/jzg/organization/service/ReceivableService.java
  34. 5 3
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserAccountService.java
  35. 2 2
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoService.java
  36. 20 4
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  37. 8 3
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAmountAuditingServiceImpl.java
  38. 15 3
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java
  39. 15 9
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgAppServiceImpl.java
  40. 1 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java
  41. 0 1
      tenant/organization/src/main/resources/application.yml
  42. 3 1
      tenant/organization/src/main/resources/mapper/ReceivableMapper.xml
  43. 3 0
      tenant/organization/src/main/resources/mapper/SysUserJzgAppMapper.xml

+ 10 - 9
authentication/src/main/java/com/jzg/config/JzgAuthenticationProvider.java

@@ -248,22 +248,23 @@ public class JzgAuthenticationProvider implements AuthenticationProvider {
             }
 
             if(system.equals(SystemConstants.SYSTEM_JZG_APP.getCode())){
-                SysUserJzgApp jzgUserApp = sysUserJzgAppMapper.selectOne(new LambdaQueryWrapper<SysUserJzgApp>()
+                List<SysUserJzgApp> jzgUserApps = sysUserJzgAppMapper.selectList(new LambdaQueryWrapper<SysUserJzgApp>()
                         .eq(SysUserJzgApp::getUserId, weblogUser.getId())
                         .eq(SysUserJzgApp::getIsDelete,0));
                 // 如果用户存在,app信息为空,则创建app信息
-                if(Objects.isNull(jzgUserApp)){
-                    jzgUserApp = new SysUserJzgApp();
+                if(Objects.isNull(jzgUserApps)){
+                    SysUserJzgApp jzgUserApp = new SysUserJzgApp();
                     jzgUserApp.setUserId(weblogUser.getId());
                     jzgUserApp.setSystemCode("APP");
                     sysUserJzgAppMapper.insert(jzgUserApp);
                 }
-                if(Objects.isNull(jzgUserApp.getLastLoginTime())){
-                    isFirst = true;
-                }
-                //更新用户登录时间
-                jzgUserApp.setLastLoginTime(LocalDateTime.now());
-                sysUserJzgAppMapper.updateById(jzgUserApp);
+                // modify by lipf 2026年6月4日16:01:27 当用户属于多个租户的时候,在app端登录的时候,是不知道是哪个租户登录的。
+//                if(Objects.isNull(jzgUserApp.getLastLoginTime())){
+//                    isFirst = true;
+//                }
+//                //更新用户登录时间
+//                jzgUserApp.setLastLoginTime(LocalDateTime.now());
+//                sysUserJzgAppMapper.updateById(jzgUserApp);
             }else if(!system.equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
                 SysUserJzgVo jzgUserInfo = sysUserService.getJzgUserInfo(weblogUser.getId(),system);
                 log.info("租户[{}]下用户[{}]不存在",system,weblogUser.getId());

+ 1 - 0
authentication/src/main/java/com/jzg/controller/AuthController.java

@@ -185,6 +185,7 @@ public class AuthController extends BaseController {
      * 返回:HttpResult 文本提示
      * 注意:验证码暂固定为 123456,存入 Redis,120 秒过期
      */
+    // TODO 发送验证吗的功能没有实现
     @GetMapping("sendSmsCode")
     @Operation(summary = "发送短信验证码")
     public HttpResult sendSmsCode(String mobile) {

+ 6 - 0
commons/src/main/java/com/jzg/commons/core/base/BaseController.java

@@ -187,6 +187,12 @@ public class BaseController {
         return systemCode;
     }
 
+    /**
+     * 获取登录用户所属的租户
+     *      手机端和网页端的systemCode 都可以通过这个获取
+     * @author lipf
+     * @date 2026/6/4 14:11
+     */
     public String getSystemCode(){
         String userSystemCode = this.getUserSystemCode();
         if(userSystemCode.equals("APP")){

+ 2 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeOrder.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import java.io.Serial;
 import java.io.Serializable;
 
+
 @Data
 public class InsPlyIncomeOrder implements Serializable {
 
@@ -20,6 +21,7 @@ public class InsPlyIncomeOrder implements Serializable {
      */
     private String orderNo;
 
+
     public InsPlyIncomeOrder(String id, String orderNo) {
         this.id = id;
         this.orderNo = orderNo;

+ 11 - 1
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncomeVO.java

@@ -21,9 +21,19 @@ public class InsPlyIncomeVO implements Serializable {
      */
     private List<InsPlyIncomeOrder> insPlyIncomeOrders;
 
-    public InsPlyIncomeVO(Page insPlyIncomePage, List<InsPlyIncomeOrder> insPlyIncomeOrders){
+    /**
+     * 应收金额总计
+     */
+    private String allAmount;
+
+    public InsPlyIncomeVO(Page insPlyIncomePage, List<InsPlyIncomeOrder> insPlyIncomeOrders, String allAmount) {
         this.insPlyIncomePage = insPlyIncomePage;
         this.insPlyIncomeOrders = insPlyIncomeOrders;
+        this.allAmount = allAmount;
     }
 
+    public InsPlyIncomeVO(Page insPlyIncomePage, List<InsPlyIncomeOrder> insPlyIncomeOrders) {
+        this.insPlyIncomePage = insPlyIncomePage;
+        this.insPlyIncomeOrders = insPlyIncomeOrders;
+    }
 }

+ 6 - 1
commons/src/main/java/com/jzg/commons/entity/orders/po/InsFeeAudit.java

@@ -9,11 +9,13 @@ 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;
 
 /**
  * 订单审核表
- * @TableName ins_fee_audit
+ * ins_fee_audit
  */
+@EqualsAndHashCode(callSuper = true)
 @Data
 @Schema(description = "订单审核表")
 public class InsFeeAudit extends BaseModel {
@@ -34,6 +36,9 @@ public class InsFeeAudit extends BaseModel {
     @Schema(description = "审核人")
     private String auditUser;
 
+    @Schema(description = "租户代码")
+    private String systemCode;
+
     @Schema(description = "领取时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime receiveTime;

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

@@ -22,6 +22,9 @@ public class InsOrders extends BaseModel {
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;
 
+    @Schema(description = "租户代码")
+    private String systemCode;
+
     @Schema(description = "parentId")
     private String parentId;
 

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

@@ -25,6 +25,9 @@ public class InsFeeOrders {
     @TableId
     private String orderNo;
 
+    @Schema(description = "租户代码")
+    private String systemCode;
+
     @Schema(description = "协议id")
     private String agreementId;
 

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

@@ -114,8 +114,8 @@ public class SysAmountAuditing extends BaseModel {
     ){
         // 提现金额
         this.setAmount(applyWithdrawParam.getWithdrawAmount());
-        // 当前账户金额
-        this.setBalanceAmount(sysUserAccount.getSumAmount());
+        // 当前账户金额 modify by lipf 2026年6月3日16:55:06 账户中剩余的金额。 该金额 是没有扣除当前提现金额的金额
+        this.setBalanceAmount(sysUserAccount.getSumAmountUnpaid());
         // 提现用户
         this.setUserId(userId);
         // 银行卡卡号

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

@@ -40,6 +40,9 @@ public class SysUserAccount extends BaseModel {
     @Schema(description = "积分")
     private BigDecimal integral;
 
+    @Schema(description = "租户代码")
+    private String systemCode;
+
     public BigDecimal getSumAmount() {
         return Objects.requireNonNullElse(this.sumAmount, BigDecimal.ZERO);
     }

+ 4 - 0
commons/src/main/java/com/jzg/commons/exception/SystemException.java

@@ -1,8 +1,12 @@
 package com.jzg.commons.exception;
 
 
+import java.io.Serial;
+
 public class SystemException extends RuntimeException {
 
+    @Serial
+    private static final long serialVersionUID = 2382723461161144457L;
     private final String code;
 
     public SystemException(String message) {

+ 1 - 0
platform/src/main/java/com/jzg/service/impl/PtlInsAttributionTemplateServiceImpl.java

@@ -146,6 +146,7 @@ public class PtlInsAttributionTemplateServiceImpl extends ServiceImpl<PtlInsAttr
         log.info("获取协议属性信息:agreementId=[{}]",agreementId);
         PtlAgreement ptlAgreement = ptlAgreementService.getById(agreementId);
         AssertionUtils.isEmpty(ptlAgreement, "协议不存在");
+        log.info("agreementId=[{}],,,ptlAgreement=[{}]",agreementId, JSONUtil.toJsonStr(ptlAgreement));
 
         PtlAgreementAttribution ptlAgreementAttribution = agreementAttributionMapper.selectById(ptlAgreement.getAttributionId());
         AssertionUtils.isEmpty(ptlAgreementAttribution, "账号归属信息查询失败");

+ 2 - 1
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/component/HtCrawlerRequestComponent.java

@@ -83,11 +83,12 @@ public class HtCrawlerRequestComponent {
         try {
             stringObjectMap = new CookieUtils().mainFlow(loginDTO.getUsername(), loginDTO.getPassword(), loginDTO.getComcode(), loginDTO.getUseridname(), loginDTO.getDlrCode(), loginDTO.getDlxyCode(), 9999);
             if(stringObjectMap == null) return null;
+            log.info("登录stringObjectMap:{}", JSONObject.toJSONString(stringObjectMap));
             huaTaiCrawlerCacheComponent.cacheCookie(stringObjectMap.get("cookies").toString());
             huaTaiCrawlerCacheComponent.cacheGsInfo(stringObjectMap.get("gsInfo").toString());
             huaTaiCrawlerCacheComponent.cacheComCode(stringObjectMap.get("comCode").toString());
         } catch (Exception e) {
-            throw new RuntimeException("无法登录华泰集成出单系统,获取登录信息失败");
+            throw new RuntimeException("无法登录华泰集成出单系统,获取登录信息失败"+e.getMessage());
         }
         return stringObjectMap;
     }

+ 9 - 2
tenant/insurance/quotation-huatai/src/main/java/com/jzg/quotation/huatai/crawler/util/CookieUtils.java

@@ -74,6 +74,7 @@ public class CookieUtils {
             // 登录
             Map<String, Object> loginResult = login(username, pwd, comCode);
             if (loginResult.get("code") != null && (int) loginResult.get("code") != 200) {
+                System.out.println("华泰[" + username + "] 登录失败");
                 Map<String, Object> result1 = new HashMap<>();
                 result1.put("code", 400);
                 result1.put("message", "用户名、密码错误");
@@ -273,7 +274,7 @@ public class CookieUtils {
     }
 
     private void getGuishu(String comCode, String useridName, String dlrCode, String dlxyCode) throws Exception {
-        System.out.println("开始获取归属树");
+        System.out.println("开始获取归属树==================");
         RestTemplate restTemplate = getRestTemplate();
         HttpHeaders headers = buildHeadersWithCookie();
         MultiValueMap<String, String> data = new LinkedMultiValueMap<>();
@@ -433,6 +434,7 @@ public class CookieUtils {
         gsInfo.put("salesys_value", this.xstxCode);
         gsInfo.put("channel_orign", channelOrign);
         gsInfo.put("newChannel_orign", newChannelOrign);
+        System.out.println("归属树用户列表结束==============");
     }
 
     private Map<String, Object> createCodeItem(String name, String code) {
@@ -497,6 +499,7 @@ public class CookieUtils {
     }
 
     private void getCk() {
+        System.out.println("获取Cookie开始==========");
         RestTemplate restTemplate = getRestTemplate();
         HttpHeaders headers = buildCommonHeaders();
         HttpEntity<String> entity = new HttpEntity<>(headers);
@@ -512,9 +515,11 @@ public class CookieUtils {
         ResponseEntity<String> postResp = restTemplate.exchange(
                 baseUrl + "/ShakeHandsAction.do?cmd=checkWeb", HttpMethod.POST, postEntity, String.class);
         extractCookies(postResp);
+        System.out.println("获取Cookie结束==========");
     }
 
     private String getComcode(String uname, String comCode) {
+        System.out.println("获取机构开始==========");
         RestTemplate restTemplate = getRestTemplate();
         HttpHeaders headers = buildJsonHeaders();
         MultiValueMap<String, String> data = new LinkedMultiValueMap<>();
@@ -523,7 +528,6 @@ public class CookieUtils {
         ResponseEntity<String> response = restTemplate.exchange(
                 baseUrl + "/ShakeHandsAction.do?cmd=getBranch", HttpMethod.POST, entity, String.class);
         extractCookies(response);
-
         Map<String, Object> decrypted = htDecrypt(response.getBody());
         List<Map<String, Object>> comCodeList = (List<Map<String, Object>>) decrypted.get("comCodeList");
 
@@ -566,10 +570,12 @@ public class CookieUtils {
         entity = new HttpEntity<>(data, headers);
         restTemplate.exchange(baseUrl + "/ShakeHandsAction.do?cmd=getPrompt", HttpMethod.POST, entity, String.class);
 
+        System.out.println("获取机构结束==========");
         return comcode;
     }
 
     private Map<String, Object> doLogin(String uname, String pwd, String comcode) throws Exception {
+        System.out.println("登录开始==========");
         RestTemplate restTemplate = getRestTemplate();
         HttpHeaders headers = buildJsonHeaders();
         MultiValueMap<String, String> data = new LinkedMultiValueMap<>();
@@ -638,6 +644,7 @@ public class CookieUtils {
             result.put("code", 400);
             result.put("message", "账号密码错误");
         }
+        System.out.println("登录结束==========");
         return result;
     }
 

+ 13 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeOrderController.java

@@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -60,6 +61,18 @@ public class InsFeeOrderController {
         return insFeeOrdersService.getInsFeeOrderByOrderNo(orderNo);
     }
 
+    /**
+     * 查询指定订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:17
+     */
+    @PostMapping("/queryAllTotalReceivablePremiumByOrderNo")
+    BigDecimal queryAllTotalReceivablePremiumByOrderNo(@RequestBody List<String> orderNos){
+        return insFeeOrdersService.queryAllTotalReceivablePremiumByOrderNo(orderNos);
+    }
+
     @Operation(summary = "修改权益可用金额")
     @PostMapping("updateAvailableAmount")
     public HttpResult updateOrders(@RequestBody RightsAmountUpdateDto rightsAmountUpdateDto) {

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

@@ -758,10 +758,10 @@ public class UnifyOrderManager {
     public HttpResult<String> mockUnderwited(@RequestBody OrderStatusVo orderStatusVo) throws Exception {
         log.info("模拟承保(跳过实际付款操作). orderStatusVo=[{}]", JSONUtil.toJsonStr(orderStatusVo));
         InsOrders insOrders = insOrdersService.getById(orderStatusVo.getOrder().getOrdersNo());
+        AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         if (!"4".equals(insOrders.getOrderStatus())) {
             return HttpResult.error("只能对待缴费的订单进行模拟承保");
         }
-        AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         HttpResult<EsmInsCompany> esmInsCompanyHttpResult = platformClient.findById(insOrders.getCompanyId());
         orderStatusVo.getOrder().setAgreementId(insOrders.getAgreementId());
         orderStatusVo.getOrder().setInsuranceCompanyCode(esmInsCompanyHttpResult.getData().getCompanyCode());

+ 2 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/CompanyFactory.java

@@ -35,6 +35,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -226,7 +227,7 @@ public class CompanyFactory {
         //设置归属信息
         HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(clauseDataVo.getOrder()
                 .getAgreementId());
-        AssertionUtils.isFail(agreementAttribution.getCode() == 500, "获取协议属性失败");
+        AssertionUtils.isFail(agreementAttribution.getCode() == 500, Objects.toString(agreementAttribution.getMsg(),"获取协议信息异常"));
         Map<String, String> fieldMap = agreementAttribution.getData().getFields().stream()
                 .map(obj -> new JSONObject((Map<String, Object>) obj))  // 转换为 JSONObject
                 .collect(Collectors.toMap(

+ 7 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java

@@ -12,11 +12,17 @@ import java.util.List;
 /**
 * @author dongxin
 * @description 针对表【ins_fee_audit(订单审核表)】的数据库操作Mapper
-* @createDate 2025-07-02 14:35:50
+* @date 2025-07-02 14:35:50
 * @Entity generator.domain.InsFeeAudit
 */
 public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
 
+    /**
+     * 查询订单审核信息
+     *
+     * @author lipf
+     * @date 2026/6/3 17:48
+     */
     Page<FeeAuditVo> queryPage(Page page, @Param("param") FeeAuditParam param);
 
     List<FeeAuditVo> queryList(Page page, @Param("param") FeeAuditParam param);

+ 10 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeOrdersMapper.java

@@ -6,6 +6,7 @@ import com.jzg.commons.entity.po.InsFeeOrders;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Mapper
@@ -19,4 +20,13 @@ public interface InsFeeOrdersMapper extends BaseMapper<InsFeeOrders> {
     List<InsFeeOrders> getInsFeeOrderAudit(String userId);
 
     List<InsFeeOrders> getInsFeeOrderByOrderNo(String orderNo);
+
+    /**
+     * 查询应收总额
+     *
+     * @author lipf
+     * @date 2026/6/4 10:22
+     */
+    BigDecimal queryAllTotalReceivablePremiumByOrderNo(@Param("orders") List<String> orders);
+
 }

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

@@ -31,9 +31,10 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
     /**
      * 新增待审核订单
      *
-     * @param orders
+     * @param orders 订单所属的租户
+     * @param systemCode 租户代码
      */
-    void feeAuditAdd(InsOrders orders);
+    void feeAuditAdd(InsOrders orders, String systemCode);
 
     /**
      * 根据订单号查询订单详情

+ 9 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeOrdersService.java

@@ -26,4 +26,13 @@ public interface InsFeeOrdersService extends IService<InsFeeOrders> {
     HttpResult updateAvailableAmount(String orderNo,BigDecimal availableAmount);
 
     CostCalculateRespVO computedCostInfo(PtlAgreementCostRatioVo param);
+
+    /**
+     * 查询指定订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:17
+     */
+    BigDecimal queryAllTotalReceivablePremiumByOrderNo(List<String> orderNos);
 }

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

@@ -198,12 +198,12 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 feeAuditVo.setEquityAmount(BigDecimal.ZERO);
             }
         }
-
         return feeAuditVoList;
     }
 
     @Override
-    public void feeAuditAdd(InsOrders orders) {
+    public void feeAuditAdd(InsOrders orders, String systemCode) {
+        log.info("systemCode = [{}], feeAuditAdd: orders=[{}]",systemCode, JSONUtil.toJsonStr(orders));
         // 先检查是否已存在审核记录,避免重复INSERT导致主键冲突
         InsFeeAudit existing = this.getOne(new LambdaQueryWrapper<InsFeeAudit>().eq(InsFeeAudit::getOrderNo, orders.getId()));
         if (existing != null) {
@@ -219,6 +219,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         AgreementInfoVo agreementInfoVo = result.getData();
         AgreementVo agreementVo = agreementInfoVo.getAgreement();
         insFeeAudit.setAuditType(Integer.parseInt(agreementVo.getAuditType()));
+        insFeeAudit.setSystemCode(systemCode);
         if(agreementVo.getAuditType().equals("1")){ // 人工审核
             insFeeAudit.setAuditStatus(0);
         }else{ // 自动审核

+ 26 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java

@@ -1,5 +1,7 @@
 package com.jzg.quotation.summary.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -394,4 +396,28 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
         wrapper.eq(InsFeeOrders::getOrderNo, orderNo);
         return insFeeOrdersMapper.selectOne(wrapper);
     }
+
+    /**
+     * 查询指定订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:17
+     */
+    @Override
+    public BigDecimal queryAllTotalReceivablePremiumByOrderNo(List<String> orderNos) {
+        log.info("查询[{}]个订单的应付金额", CollUtil.size(orderNos));
+        if(CollUtil.isEmpty(orderNos)){
+            return BigDecimal.ZERO;
+        }
+        List<List<String>> split = ListUtil.split(orderNos, 3000);
+        BigDecimal initAmout = BigDecimal.ZERO;
+        for (List<String> orders : split) {
+            BigDecimal amount  = insFeeOrdersMapper.queryAllTotalReceivablePremiumByOrderNo(orders);
+            if (amount != null) {
+                initAmout = initAmout.add(amount);
+            }
+        }
+        return initAmout;
+    }
 }

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

@@ -1453,6 +1453,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     public void orderAfterUpdateOrderStatus(String orderNo, OrderStatusResultVo orderStatusResultVo) {
         // 检测主订单是否存在
+        String systemCode = baseController.getSystemCode();
         InsOrders insOrders = insOrdersMapper.selectOne(new LambdaQueryWrapper<InsOrders>().eq(InsOrders::getId, orderNo));
         AssertionUtils.isFail(Objects.isNull(insOrders), "订单不存在");
         InsOrdersCarInfo insOrdersCarInfo = insOrdersCarInfoMapper.selectById(insOrders.getId());
@@ -1488,7 +1489,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         if (orderStatusResultVo.getOrderStatus().equals(InsOrderStatusEnum.UNDERWRITED)) {
             // 增加财务审核
-            insFeeAuditService.feeAuditAdd(insOrders);
+            insFeeAuditService.feeAuditAdd(insOrders,systemCode );
             // 将父订单的保司id 和名称更新
             InsOrders baseInsOrders = insOrdersMapper.selectOne(new LambdaQueryWrapper<InsOrders>().eq(InsOrders::getId, insOrders.getParentId()));
             baseInsOrders.setCompanyId(insOrders.getCompanyId());

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

@@ -79,7 +79,7 @@
         LEFT JOIN ins_orders_costs ioc on ioc.order_no = io.id AND ioc.is_delete=0
         LEFT JOIN ins_orders_external_policy ioep on ioep.order_no = io.id AND ioep.is_delete=0
         <where>
-            and ifa.is_delete=0
+            and ifa.is_delete=0 and ifa.system_code = #{param.systemCode}
             <choose>
                 <when test="param.receiveUser != null and param.receiveUser != ''">
                     and ifa.receive_user = #{param.receiveUser}

+ 14 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeOrdersMapper.xml

@@ -80,4 +80,18 @@
             </if>
         </where>
     </select>
+
+    <!-- 查询应收订单总额 lipf 2026年6月4日10:22:57 -->
+    <select id="queryAllTotalReceivablePremiumByOrderNo" resultType="java.math.BigDecimal">
+        SELECT
+            sum(COALESCE(ifo.total_receivable_premium, 0))
+        from
+            ins_fee_orders ifo
+        <where>
+            ifo.order_no in
+            <foreach collection="orders" item="order" open="(" separator="," close=")">
+                #{order}
+            </foreach>
+        </where>
+    </select>
 </mapper>

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

@@ -9,7 +9,7 @@
     </sql>
 
     <select id="getByType" resultType="com.jzg.commons.entity.dto.SysQueryVehicleConfigDTO">
-        select <include refid="Base_Column_List"/>
+        select *
         from sys_query_vehicle_config c
         left join sys_query_vehicle_url u
         on c.id = u.config_id

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

@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -30,4 +31,13 @@ public interface InsFeeOrdersClient {
     @Operation(summary = "车险报价批量修改联系人等信息")
     HttpResult<String> updateOrdersBatch(@RequestBody BatchModifyVo batchModifyVo);
 
+    /**
+     * 查询指定订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:17
+     */
+    @PostMapping("/insFeeOrder/queryAllTotalReceivablePremiumByOrderNo")
+    BigDecimal queryAllTotalReceivablePremiumByOrderNo(@RequestBody List<String> orderNos);
 }

+ 7 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/AppUserController.java

@@ -162,7 +162,13 @@ public class AppUserController extends BaseController {
         log.info("邀请码注册:param=[{}]", JSONUtil.toJsonStr(param));
         AssertionUtils.isSucceed(userService.validateSmsCode(param.getMobile(), param.getSmsCode()), "短信验证码不通过!");
         param.setToken(getToken());
-        return HttpResult.ok(userJzgAppService.invitationRegister(param));
+        try{
+            InvitationVo invitationVo = userJzgAppService.invitationRegister(param);
+            return HttpResult.ok(invitationVo);
+        }catch (Exception e){
+            log.info("邀请用户注册发生异常:param=[{}]", JSONUtil.toJsonStr(param),e);
+            return HttpResult.error(e.getMessage());
+        }
     }
 
     @Operation(summary = "分销员app扫码邀请")

+ 13 - 1
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -25,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -369,11 +370,22 @@ public class ReceivableController {
         }
         Page<InsPlyIncome> data = receivableService.getPlatFormReceivableList(receivableQueryVo);
         List<InsPlyIncomeOrder> receivablePageIds = receivableService.getReceivablePageIds(receivableQueryVo);
-        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds));
+        //满足条件的的总的应收
+        BigDecimal totalReceivablePremium = null;
+        try{
+            List<String> orderNos = receivablePageIds.stream().map(InsPlyIncomeOrder::getOrderNo).distinct().toList();
+            totalReceivablePremium = receivableService.queryAllTotalReceivablePremium(orderNos);
+            totalReceivablePremium = totalReceivablePremium.setScale(2, RoundingMode.HALF_DOWN);
+        }catch (Exception e){
+            log.error("统计总的应收异常",e);
+        }
+        // receivablePageIds.stream().map(InsPlyIncomeOrder::getTotalReceivablePremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        return HttpResult.ok(new InsPlyIncomeVO(data, receivablePageIds, Objects.toString(totalReceivablePremium,"汇总金额异常")));
     }
 
     @PostMapping("/getPlatFormReceivableTotalAmount")
     @Operation(summary = "获取平台协议总金额")
+    @Deprecated(since = "2026-06-04")
     public HttpResult<BigDecimal> getPlatFormReceivableTotalAmount(@RequestBody ReceivableQueryVo receivableQueryVo){
         if (StrUtil.isBlank(receivableQueryVo.getQueryType())){
             receivableQueryVo.setQueryType("1");

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

@@ -2,6 +2,7 @@ package com.jzg.organization.controller;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
 import com.jzg.commons.entity.dto.IncomeAndExpenseParam;
@@ -26,12 +27,10 @@ public class UserAccountController {
 
     @Autowired
     private SysUserAccountService userAccountService;
-
     @Autowired
     private SysUserAccountIncomeLogService sysUserAccountIncomeLogService;
-//
-//    @Autowired
-//    private BaseController baseController;
+    @Autowired
+    private BaseController baseController;
 
     /**
      * 用户账户信息查询
@@ -40,8 +39,9 @@ public class UserAccountController {
      */
     @GetMapping(value = { "/accountGet"})
     @Operation(summary = "用户账户信息查询")
-    public HttpResult accountGet(String userId) {
-        return HttpResult.ok(userAccountService.queryByUserId(userId));
+    public HttpResult<SysUserAccount> accountGet(String userId) {
+        String systemCode = baseController.getSystemCode();
+        return HttpResult.ok(userAccountService.queryByUserId(userId,systemCode));
     }
 
     /**

+ 3 - 2
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgAppMapper.java

@@ -22,10 +22,11 @@ public interface SysUserJzgAppMapper extends BaseMapper<SysUserJzgApp> {
 
     /**
      * 个人信息查询
-     * @param userName
+     * @param userName 用户名
+     * @param systemCode 租户代码
      * @return
      */
-    UserInfoVo userInfoGet(@Param("userName") String userName);
+    UserInfoVo userInfoGet(@Param("userName") String userName, @Param("systemCode") String systemCode);
 
     /**
      * 所在企业列表查询

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/service/ReceivableService.java

@@ -405,4 +405,13 @@ public interface ReceivableService extends IService<InsPlyIncome> {
      * @return
      */
     boolean deleteSettlementById(String id);
+
+    /**
+     * 查询所有订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:15
+     */
+    BigDecimal queryAllTotalReceivablePremium(List<String> orderNos);
 }

+ 5 - 3
tenant/organization/src/main/java/com/jzg/organization/service/SysUserAccountService.java

@@ -16,16 +16,18 @@ import java.util.List;
 /**
 * @author dongxin
 * @description 针对表【sys_user_account(用户账户表)】的数据库操作Service
-* @createDate 2025-07-15 15:37:58
+* @date 2025-07-15 15:37:58
 */
 public interface SysUserAccountService extends IService<SysUserAccount> {
 
     /**
      * accountGet
-     * @param userId 用户唯一标识
+     *
+     * @param userId     用户唯一标识
+     * @param systemCode 租户代码
      * @return SysUserAccount
      */
-    SysUserAccount queryByUserId(String userId);
+    SysUserAccount queryByUserId(String userId, String systemCode);
 
     /**
      * 应付统计

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoService.java

@@ -22,8 +22,8 @@ public interface SysUserJzgInfoService extends IService<SysUserJzgInfo> {
 
     /**
      * 通过userId查询用户信息
-     * @param userId
-     * @return
+     * @param userId 用户序号
+     * @return SysUserJzgInfo 不同租户下的用户信息
      */
     SysUserJzgInfo getUserByUserId(String userId);
 

+ 20 - 4
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -225,7 +225,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     public List<InsPlyIncomeOrder> getReceivablePageIds(ReceivableQueryVo receivableQueryVo) {
         log.info("获取私有协议手续费应收列表的id集合。receivableQueryVo=[{}]", JSONUtil.toJsonStr(receivableQueryVo));
         // 设置page的searhCount 为false,则不会查询总数,会直接查询具体的值
-        Page<InsPlyIncome> page1 = new Page<>(1, 10000, false);
+        Page<InsPlyIncome> page1 = new Page<>(1, Integer.MAX_VALUE, false);
         Page<InsPlyIncome> page = baseMapper.getReceivablePage(page1, receivableQueryVo);
         List<InsPlyIncomeOrder> res = page.getRecords().stream()
                 .map(action -> new InsPlyIncomeOrder(action.getId(), action.getOrderNo())).toList();
@@ -257,8 +257,13 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
 //            log.info("应收数据的二次过滤. 逻辑条件必须是and或or");
 //            return HttpResult.error("逻辑条件必须是and或or");
 //        }
+
         List<InsPlyIncome> incomes =  baseMapper.queryIncomeDatasByOrderIds(orderNos,companyId);
         log.info("根据订单号和保司id查询出[{}]条记录。 orderNos =[{}],companyId=[{}]",CollUtil.size(incomes), JSONUtil.toJsonStr(orderNos), companyId);
+        // 需要查询未结算的数据 modify by lipf 2026年6月4日11:06:50
+        incomes = incomes.stream().filter(action->{
+            return "0".equals(action.getSettlementStatus());
+        }).toList();
         List<InsPlyIncome> filterIncomes = new ArrayList<>();
         if(CollUtil.isEmpty(incomeDataVO.getSearchList())){
             filterIncomes = incomes;
@@ -563,9 +568,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 String typeAttrName = Constant.ywyAttrTypeMap.get(typeAttr);
                 insPlyIncome.setTypeAttr(typeAttr);
                 insPlyIncome.setTypeAttrName(typeAttrName);
-                // 费用信息
-                List<InsFeeOrders> insFeeOrderByOrderNo = insFeeOrdersClient.getInsFeeOrderByOrderNo(insPlyIncome.getOrderNo());
-                insPlyIncome.setInsFeeOrders(CollUtil.getFirst(insFeeOrderByOrderNo));
+                // 费用信息, 这里添加费用,性能会很慢
+//                List<InsFeeOrders> insFeeOrderByOrderNo = insFeeOrdersClient.getInsFeeOrderByOrderNo(insPlyIncome.getOrderNo());
+//                insPlyIncome.setInsFeeOrders(CollUtil.getFirst(insFeeOrderByOrderNo));
 
                 String invoiceId = income2InvoceIdMap.get(insPlyIncome.getId());
                 insPlyIncome.setInvoiceStatusName(StrUtil.isEmpty(invoiceId)? "未开票":"已开票");
@@ -1368,6 +1373,17 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         return insPlyIncomeInvoiceSettlementMapper.deleteById(id) > 0;
     }
 
+    /**
+     * 查询所有订单的应收总额
+     *
+     * @param orderNos 订单编号
+     * @author lipf
+     * @date 2026/6/4 10:15
+     */
+    @Override
+    public BigDecimal queryAllTotalReceivablePremium(List<String> orderNos) {
+        return insFeeOrdersClient.queryAllTotalReceivablePremiumByOrderNo(orderNos);
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)

+ 8 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAmountAuditingServiceImpl.java

@@ -183,7 +183,8 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
     public HttpResult<String> verifyAmount(AmountAuditEditParam param) {
         String userName = baseController.getUserName();
         String userId = baseController.getUserId();
-        log.info("用户开始进行付款操作。userName=[{}],param=[{}]",userName,JSONUtil.toJsonStr(param));
+        String systemCode = baseController.getSystemCode();
+        log.info("用户开始进行付款操作。userName=[{}],param=[{}]systemCode=[{}]",userName,JSONUtil.toJsonStr(param),systemCode);
         if(StrUtil.isEmpty(param.getAccountId())){
             return HttpResult.error("付款账户不能为空");
         }
@@ -209,9 +210,12 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
                 audit.setPicId(param.getPicId());
                 audit.setVoucherId(param.getVoucherId());
                 audit.setAccountId(param.getAccountId());
+                audit.setPaymentTime(LocalDateTime.now());
+                audit.setAuditingTime(LocalDateTime.now());
+                audit.setAuditingUserId(userId);
                 this.updateById(audit);
                 // 更新用户账户
-                SysUserAccount userAccount = userAccountService.queryByUserId(audit.getUserId());
+                SysUserAccount userAccount = userAccountService.queryByUserId(audit.getUserId(),systemCode);
                 AssertionUtils.isFail(Objects.isNull(userAccount), "用户账户数据异常!");
                 AssertionUtils.isFail(audit.getAmount().compareTo(audit.getBalanceAmount()) > 0, "提现金额大于账户余额!");
 
@@ -295,6 +299,7 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
     public HttpResult<String> applyWithdraw(ApplyWithdrawParam applyWithdrawParam) {
         String userName = baseController.getUserName();
         String userId = baseController.getUserId();
+        String systemCode = baseController.getSystemCode();
         log.info("业务员提交提现申请:userName=[{}],userId=[{}],applyWithdrawParam=[{}]",userId, userName, JSONUtil.toJsonStr(applyWithdrawParam));
         // 当前有处于待审核状态的提现申请的时候,不能再次提交提现申请 add by lipf,  2026年6月3日14:09:07
         List<SysAmountAuditing> auditings = baseMapper.queryPaymentByUserId(userId, 0);
@@ -306,7 +311,7 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
             log.info("业务员[{}]提现提现金额不能为负值[{}]",userName, applyWithdrawParam.getWithdrawAmount());
             throw new SystemException("提现金额错误,请重新输入");
         }
-        SysUserAccount sysUserAccount = userAccountService.queryByUserId(userId);
+        SysUserAccount sysUserAccount = userAccountService.queryByUserId(userId,systemCode);
         AssertionUtils.isFail(Objects.isNull(sysUserAccount),"找不到用户账号");
 
         // sys_amount_auditing 表中的 balance_amount 字段,表示冻结的金额, 避免重复提现

+ 15 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -58,11 +58,20 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Autowired
     private QuoteClient quoteClient;
 
+    /**
+     * 查询指定租户下,用户在系统中的账户信息
+     *
+     * @param systemCode 租户代码
+     * @param userId 用户序号
+     * @author lipf
+     * @date 2026/6/4 14:04
+     */
     @Override
-    public SysUserAccount queryByUserId(String userId) {
+    public SysUserAccount queryByUserId(String userId, String systemCode) {
         LambdaQueryWrapper<SysUserAccount> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysUserAccount::getUserId, userId);
         wrapper.eq(SysUserAccount::getIsDelete, 0);
+        wrapper.eq(SysUserAccount::getSystemCode, systemCode);
         return this.getOne(wrapper);
     }
 
@@ -88,11 +97,13 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     public SysUserWalletVo userWallet() {
         // 获取个人中心信息
         String mobile = baseController.getUserName();
-        String systemCode = baseController.getAppSystemCode();
+        String systemCode = baseController.getSystemCode();
+        String userId  = baseController.getUserId();
+        log.info("查询用户的钱包信息:mobile=[{}], systemCode=[{}],userId=[{}]", mobile, systemCode, userId);
         SysUser sysUser = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getMobile, mobile));
         SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getOne(new LambdaQueryWrapper<SysUserJzgInfo>().eq(SysUserJzgInfo::getUserId, sysUser.getId()).eq(SysUserJzgInfo::getSystemCode, systemCode));
         SysDept sysDept = sysDeptService.getById(sysUserJzgInfo.getDeptId());
-        SysUserAccount sysUserAccount = sysUserAccountService.queryByUserId(sysUser.getId());
+        SysUserAccount sysUserAccount = sysUserAccountService.queryByUserId(sysUser.getId(),systemCode);
         if (sysUserAccount == null) {
             sysUserAccount = new SysUserAccount();
             sysUserAccount.setUserId(sysUser.getId());
@@ -100,6 +111,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             sysUserAccount.setSumAmountPaid(BigDecimal.ZERO);
             sysUserAccount.setSumAmountUnpaid(BigDecimal.ZERO);
             sysUserAccount.setIntegral(BigDecimal.ZERO);
+            sysUserAccount.setSystemCode(systemCode);
             sysUserAccountService.save(sysUserAccount);
         }
         return buildUserWalletVo(sysDept, sysUser, sysUserJzgInfo, sysUserAccount);

+ 15 - 9
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgAppServiceImpl.java

@@ -93,7 +93,9 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
 
     @Override
     public UserInfoVo userInfoGet(String userName) {
-        UserInfoVo infoVo = sysUserJzgAppMapper.userInfoGet(userName);
+        String systemCode = baseController.getSystemCode();
+        log.info("获取用户信息:systemCode=[{}],userName=[{}]", systemCode, userName);
+        UserInfoVo infoVo = sysUserJzgAppMapper.userInfoGet(userName,systemCode);
         infoVo.setHeadSculpture(MinioUtils.getPresignedObjectUrl("jzg", infoVo.getHeadSculpture()));
         // 获取身份信息
         LambdaQueryWrapper<SysUserJzgInfo> queryWrapper = new LambdaQueryWrapper<>();
@@ -218,7 +220,8 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
     @Override
     @Transactional(rollbackFor = Exception.class)
     public InvitationVo invitationRegister(InvitationAddParam param) {
-        log.info("邀请码注册:param=[{}]", JSONUtil.toJsonStr(param));
+        String systemCode = baseController.getSystemCode();
+        log.info("邀请码注册:systemCode=[{}],param=[{}]", systemCode, JSONUtil.toJsonStr(param));
         try {
             InvitationVo invitationVo = new InvitationVo();
             // 获取邀请人信息
@@ -231,10 +234,10 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
                 throw new SystemException("邀请人数据异常!");
             }
             SysDept dept = sysDeptMapper.selectById(yqirInfo.getDeptId());
-            AssertionUtils.isFail(Objects.isNull(yqrAppUser), "邀请人不存在");
+            AssertionUtils.isFail(Objects.isNull(dept), "邀请人所在部门不存在");
             invitationVo.setDeptName(dept.getName());
             invitationVo.setMobile(param.getMobile());
-            invitationVo.setSystemCode(yqrAppUser.getSystemCode());
+            invitationVo.setSystemCode(systemCode);
             LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(SysUser::getMobile, param.getMobile())
                     .eq(SysUser::getIsDelete, 0);
@@ -251,7 +254,7 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
                 // 创建app用户
                 SysUserJzgApp sysUserJzgApp = new SysUserJzgApp(sysUser);
                 sysUserJzgApp.setDeptId(yqrAppUser.getDeptId());
-                sysUserJzgApp.setSystemCode(yqrAppUser.getSystemCode());
+                sysUserJzgApp.setSystemCode(systemCode);
                 sysUserJzgApp.setReferrerId(yqrAppUser.getId());
                 sysUserJzgAppMapper.insert(sysUserJzgApp);
 
@@ -267,12 +270,12 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
                 wrapper.eq(SysUserJzgApp::getUserId, user.getId())
                         .eq(SysUserJzgApp::getIsDelete, 0)
                         .eq(SysUserJzgApp::getIsEnable, 0)
-                        .eq(SysUserJzgApp::getSystemCode, yqrAppUser.getSystemCode());
+                        .eq(SysUserJzgApp::getSystemCode, systemCode);
                 SysUserJzgApp appUser = sysUserJzgAppMapper.selectOne(wrapper);
                 if (Objects.isNull(appUser)) {
                     SysUserJzgApp sysUserJzgApp = new SysUserJzgApp(user);
                     sysUserJzgApp.setDeptId(yqrAppUser.getDeptId());
-                    sysUserJzgApp.setSystemCode(yqrAppUser.getSystemCode());
+                    sysUserJzgApp.setSystemCode(systemCode);
                     sysUserJzgApp.setReferrerId(yqrAppUser.getId());
                     sysUserJzgAppMapper.insert(sysUserJzgApp);
                     // 增加推荐人关系
@@ -280,8 +283,11 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
                     SysUserJzgInfo userInfo = new SysUserJzgInfo(yqirInfo, user);
                     sysUserJzgInfoService.save(userInfo);
                     userId = userInfo.getId();
+                    log.info("被邀请人在sys_user_jzg_app表中的序号是[{}]",userId);
                 } else {
-                    if (!appUser.getReferrerId().equals(yqrAppUser.getId())) {
+                    if (appUser.getReferrerId() !=null && !Objects.equals(appUser.getReferrerId(),yqrAppUser.getId())) {
+                        log.info("用户已被邀请注册.appUser.getReferrerId()=[{}],yqrAppUser.getId()=[{}].appUser=[{}],yqrAppUser=[{}]",
+                                appUser.getReferrerId(), yqrAppUser.getId(),JSONUtil.toJsonStr(appUser), JSONUtil.toJsonStr(yqrAppUser));
                         throw new SystemException("该用户已被邀请注册");
                     }
                     invitationVo.setIsJoined(1);
@@ -292,7 +298,7 @@ public class SysUserJzgAppServiceImpl extends ServiceImpl<SysUserJzgAppMapper, S
             return invitationVo;
         } catch (Exception e) {
             log.error("invitationRegister",e);
-            throw new SystemException("程序异常");
+            throw new SystemException(Objects.toString(e.getMessage(),"程序异常"));
         }
     }
 

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

@@ -212,7 +212,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 SysUserJzgInfo userInfoJzgInfo = sysUserJzgInfoService.getUserByUserId(loginUserId);
                 jzgInfoId = userInfoJzgInfo.getId();
             }
-            log.info("jzgInfoId=[{}]", jzgInfoId);
+            log.info("查看成员下的业务员信息:成员的序号:jzgInfoId=[{}]", jzgInfoId);
             userInfoList = sysUserJzgInfoMapper.queryYwy(page, sysUserInfoListVo, systemCode, jzgInfoId
             );
         }else if("1".equals(sysUserInfoListVo.getIsMember())){

+ 0 - 1
tenant/organization/src/main/resources/application.yml

@@ -87,7 +87,6 @@ tenant:
     - ins_ply_income_invoice
     - ins_ply_income_invoice_settlement
     - esm_user_referrer
-    - sys_user_account
     - ins_ply_income_invoice_settlement_file
     - wechat_customer_service
     - wechat_customer_service_duty

+ 3 - 1
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -259,7 +259,9 @@
         LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
         LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
         LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id
-        WHERE 1=1 and ipi.settlement_status = '0' and ipi.is_delete  = 0
+        WHERE 1=1
+        -- and ipi.settlement_status = '0'  -- 已经结算的车辆,在应收订单里面,还需要能查询到
+        and ipi.is_delete  = 0
     </sql>
 
     <!--根据保司id和订单号进行过滤 2026年5月12日15:06:40  lipf  -->

+ 3 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgAppMapper.xml

@@ -29,6 +29,9 @@
         LEFT JOIN sys_user sur on sur.id = suja.user_id
         <where>
             sujz.is_delete = 0 and sujz.is_enable = 0
+            <if test="systemCode != null and systemCode != ''">
+                and sujz.system_code = #{systemCode}
+            </if>
             <if test="userName != null and userName != ''">
                 and su.mobile = #{userName}
             </if>