785834757 hace 8 meses
padre
commit
a3d87558e8
Se han modificado 37 ficheros con 543 adiciones y 96 borrados
  1. 33 0
      commons/src/main/java/com/jzg/commons/entity/account/po/SysUserAccountIncomeLog.java
  2. 3 0
      commons/src/main/java/com/jzg/commons/entity/dto/FeeAuditParam.java
  3. 13 3
      commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java
  4. 5 0
      commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordResult.java
  5. 1 1
      commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditVo.java
  6. 22 3
      commons/src/main/java/com/jzg/commons/entity/scheme/vo/PtlSchemeSaveVo.java
  7. 2 0
      commons/src/main/java/com/jzg/commons/entity/vo/SalesmanVo.java
  8. 5 1
      gateway/src/main/resources/application-test.yml
  9. 2 2
      platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java
  10. 1 1
      platform/src/main/resources/application-test.yml
  11. 0 1
      pom.xml
  12. 8 1
      tenant/costsorrule/src/main/java/com/jzg/costsorrule/controller/CostsController.java
  13. 4 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/build/ChengTaiAPIQuoteResultsVoBuild.java
  14. 1 0
      tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java
  15. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/CostsRuleClient.java
  16. 25 0
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java
  17. 1 1
      tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java
  18. 8 8
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  19. 7 2
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java
  20. 2 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/quote/QuoteDispatchDecorator.java
  21. 103 17
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  22. 11 3
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  23. 17 5
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml
  24. 7 1
      tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java
  25. 1 1
      tenant/organization/src/main/java/com/jzg/organization/client/EsmInsCompanyClient.java
  26. 11 13
      tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java
  27. 13 1
      tenant/organization/src/main/java/com/jzg/organization/controller/UserAccountController.java
  28. 7 0
      tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java
  29. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserAccountIncomeLogMapper.java
  30. 1 2
      tenant/organization/src/main/java/com/jzg/organization/service/ReceivableService.java
  31. 27 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserAccountIncomeLogService.java
  32. 5 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java
  33. 16 20
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  34. 54 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountIncomeLogServiceImpl.java
  35. 11 0
      tenant/organization/src/main/resources/application-test.yml
  36. 13 1
      tenant/organization/src/main/resources/mapper/PtlAgreementMapper.xml
  37. 93 7
      tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

+ 33 - 0
commons/src/main/java/com/jzg/commons/entity/account/po/SysUserAccountIncomeLog.java

@@ -0,0 +1,33 @@
+package com.jzg.commons.entity.account.po;
+
+import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * 用户收入来源记录表
+ */
+@Data
+public class SysUserAccountIncomeLog extends BaseModel {
+
+    private String id;
+
+    @Schema(description = "用户id")
+    private String userId;
+
+    @Schema(description = "提现金额")
+    private BigDecimal amount;
+
+    @Schema(description = "账户余额")
+    private BigDecimal balanceAmount;
+
+    @Schema(description = "来源订单id")
+    private String orderId;
+
+    @Schema(description = "钱属性")
+    private int property;
+
+}

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/dto/FeeAuditParam.java

@@ -106,4 +106,7 @@ public class FeeAuditParam extends PageRequest {
     @Schema(description = "是否是疑问订单 0.否 1.是")
     @Schema(description = "是否是疑问订单 0.否 1.是")
     private Integer isProblem;
     private Integer isProblem;
 
 
+    @Schema(description = "系统code")
+    private String systemCode;
+
 }
 }

+ 13 - 3
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java

@@ -31,16 +31,18 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "险种")
     @Schema(description = "险种")
     private String riskCode;
     private String riskCode;
 
 
-    @Schema(description = "出单时间")
-    private String payTime;
-
+//    @Schema(description = "出单时间")
+//    private String payTime;
+//
     @Schema(description = "签单时间")
     @Schema(description = "签单时间")
+    @TableField(exist = false)
     private String signingTime;
     private String signingTime;
 
 
     @Schema(description = "保司ID")
     @Schema(description = "保司ID")
     private String companyId;
     private String companyId;
 
 
     @Schema(description = "保司名称")
     @Schema(description = "保司名称")
+    @TableField(exist = false)
     private String companyName;
     private String companyName;
 
 
     @Schema(description = "协议Id")
     @Schema(description = "协议Id")
@@ -98,6 +100,10 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "应收手续费")
     @Schema(description = "应收手续费")
     private String superviseCostsPremiums;
     private String superviseCostsPremiums;
 
 
+    @TableField(exist = false)
+    @Schema(description = "应收跟单费")
+    private String otherCostsPremiums;
+
     @Schema(description = "交强跟单费比例")
     @Schema(description = "交强跟单费比例")
     private String jqOtherCostsProportion;
     private String jqOtherCostsProportion;
 
 
@@ -161,5 +167,9 @@ public class InsPlyIncome  extends BaseModel {
     @Schema(description = "商业起保日期")
     @Schema(description = "商业起保日期")
     private String syStartDate;
     private String syStartDate;
 
 
+    @TableField(exist = false)
+    @Schema(description = "订单类型")
+    private String orderType;
+
 
 
 }
 }

+ 5 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/InvoiceRecordResult.java

@@ -16,6 +16,11 @@ public class InvoiceRecordResult extends PageRequest {
      */
      */
     private String companyId;
     private String companyId;
 
 
+    /**
+     * 保险公司名称
+     */
+    private String companyName;
+
     /**
     /**
      * 开票方
      * 开票方
      */
      */

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditVo.java

@@ -27,7 +27,7 @@ public class FeeAuditVo extends BaseModel {
     private String insurName;
     private String insurName;
 
 
     @Schema(description = "订单类型  1 车险录入 2 待客录单 3 外部订单")
     @Schema(description = "订单类型  1 车险录入 2 待客录单 3 外部订单")
-    private Integer orderType;
+    private String orderType;
 
 
     @Schema(description = "业务员姓名")
     @Schema(description = "业务员姓名")
     private String name;
     private String name;

+ 22 - 3
commons/src/main/java/com/jzg/commons/entity/scheme/vo/PtlSchemeSaveVo.java

@@ -196,16 +196,21 @@ public class PtlSchemeSaveVo {
             }
             }
             if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
             if ("checkbox".equals(ptlAgreementUndwrtRulesAttr.getAttrType()) || "select".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                 if(linkList.get(i).getMinArray() != null && linkList.get(i).getMinArray().length > 0){
                 if(linkList.get(i).getMinArray() != null && linkList.get(i).getMinArray().length > 0){
-                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(String.join(",",Arrays.asList(linkList.get(i).getMinArray()))).append("\n");
+//                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(String.join(",",Arrays.asList(linkList.get(i).getMinArray()))).append("\n");
+                    desc.append(checkBoxIdentifying(ptlAgreementUndwrtRulesAttr, linkList.get(i))).append("\n");
                 }else{
                 }else{
                     desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(linkList.get(i).getMin()).append("\n");
                     desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(linkList.get(i).getMin()).append("\n");
                 }
                 }
             }
             }
             if ("inputTag".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
             if ("inputTag".equals(ptlAgreementUndwrtRulesAttr.getAttrType())) {
                 if (linkList.get(i).getOperator() != null && linkList.get(i).getOperator().equals("1")) {
                 if (linkList.get(i).getOperator() != null && linkList.get(i).getOperator().equals("1")) {
-                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(linkList.get(i).getMin()).append("\n");
+                    for(int k=0; k< linkList.get(i).getMinArray().length;k++) {
+                        desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(linkList.get(i).getMinArray()[k]).append("\n");
+                    }
                 } else {
                 } else {
-                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("不包含").append(linkList.get(i).getMin()).append("\n");
+                    for(int k=0; k< linkList.get(i).getMinArray().length;k++) {
+                        desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("不包含").append(linkList.get(i).getMinArray()[k]).append("\n");
+                    }
                 }
                 }
             }
             }
         }
         }
@@ -217,6 +222,20 @@ public class PtlSchemeSaveVo {
         return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
         return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
     }
     }
 
 
+    private String checkBoxIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttr ptlAgreementProductCostsAttrLink) {
+        String[] minArray = ptlAgreementProductCostsAttrLink.getMinArray();
+        StringBuilder result = new StringBuilder();
+        result.append(ptlAgreementUndwrtRulesAttr.getAttrName());
+        result.append("包含");
+        for(int i=0;i<minArray.length;i++) {
+            int finalI = i;
+            PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = ptlAgreementUndwrtRulesAttr.getDictLabal().stream()
+                    .filter(x -> x.getCode().equals(minArray[finalI])).findAny().get();
+            result.append(ptlAgreementUndwrtRulesDictLabal.getName());
+        }
+        return result.toString();
+    }
+
     private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttr ptlAgreementProductCostsAttrLink) {
     private String inputNumberIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttr ptlAgreementProductCostsAttrLink) {
         if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
         if ("1".equals(ptlAgreementProductCostsAttrLink.getOperator())) {
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();
             return ptlAgreementUndwrtRulesAttr.getAttrName() + "范围值" + ptlAgreementProductCostsAttrLink.getMin() + "到" + ptlAgreementProductCostsAttrLink.getMax();

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

@@ -9,6 +9,8 @@ import lombok.Data;
 
 
 @Data
 @Data
 public class SalesmanVo {
 public class SalesmanVo {
+    private String id;
+
     private String name;
     private String name;
 
 
     private String deptName;
     private String deptName;

+ 5 - 1
gateway/src/main/resources/application-test.yml

@@ -1,6 +1,6 @@
 spring:
 spring:
   minio:
   minio:
-    url: http://192.168.0.250:9000
+    url: http://test-api.baoxianzhanggui.com
     access-key: v7Zb8XhyLcYNcSHlxvyK
     access-key: v7Zb8XhyLcYNcSHlxvyK
     secret-key: 58YibMwpxGKtXcekPL065OM4GonC1hf2tFMjI9EN
     secret-key: 58YibMwpxGKtXcekPL065OM4GonC1hf2tFMjI9EN
     bucket-name: jzg
     bucket-name: jzg
@@ -89,6 +89,7 @@ spring:
                   - /appManage/**
                   - /appManage/**
                   - /version/**
                   - /version/**
                   - /userAccount/**
                   - /userAccount/**
+                  - /newCarJudgeRules/**
 
 
         - id: summary_route
         - id: summary_route
           uri: http://192.168.0.250:9898/
           uri: http://192.168.0.250:9898/
@@ -102,6 +103,9 @@ spring:
                   - /unify/**
                   - /unify/**
                   - /order/taskImages/**
                   - /order/taskImages/**
                   - /order/qrCode/**
                   - /order/qrCode/**
+                  - /orderTrack/**
+                  - /feeAudit/**
+                  - /adjust/**
 
 
         - id: costsorrule_route
         - id: costsorrule_route
           uri: http://192.168.0.250:9085/
           uri: http://192.168.0.250:9085/

+ 2 - 2
platform/src/main/java/com/jzg/service/impl/SysSystemServiceImpl.java

@@ -442,8 +442,8 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
             sysUser = new SysUser(param);
             sysUser = new SysUser(param);
             boolean mobileExists = this.isExistsMobile(sysUser.getMobile());
             boolean mobileExists = this.isExistsMobile(sysUser.getMobile());
             if(mobileExists){throw new SystemException("管理员手机号重复!");}
             if(mobileExists){throw new SystemException("管理员手机号重复!");}
-            boolean nameExists = this.isExistsUserName(sysUser.getUsername());
-            if(nameExists){throw new SystemException("管理员用户名重复!");}
+//            boolean nameExists = this.isExistsUserName(sysUser.getUsername());
+//            if(nameExists){throw new SystemException("管理员用户名重复!");}
             sysUserMapper.insert(sysUser);
             sysUserMapper.insert(sysUser);
 
 
             // 新建顶级机构
             // 新建顶级机构

+ 1 - 1
platform/src/main/resources/application-test.yml

@@ -8,7 +8,7 @@ spring:
       password: nacos
       password: nacos
       config:
       config:
         file-extension: yaml
         file-extension: yaml
-        namespace: bfe09cf4-508a-4443-acfa-b354be6f4bac
+        namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
         group: DEFAULT_GROUP
         group: DEFAULT_GROUP
       discovery:
       discovery:
         namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45
         namespace: bb8f915c-82b0-4f0d-9e9e-03aa629f2d45

+ 0 - 1
pom.xml

@@ -13,7 +13,6 @@
     <module>tenant</module>
     <module>tenant</module>
     <module>rocketmq</module>
     <module>rocketmq</module>
     <module>consoleStatistics</module>
     <module>consoleStatistics</module>
-      <module>tenant/insurance/quotation-renbao</module>
   </modules>
   </modules>
   <packaging>pom</packaging>
   <packaging>pom</packaging>
 
 

+ 8 - 1
tenant/costsorrule/src/main/java/com/jzg/costsorrule/controller/CostsController.java

@@ -1,13 +1,20 @@
 package com.jzg.costsorrule.controller;
 package com.jzg.costsorrule.controller;
 
 
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.costs.vo.ValidateSchemeRuleVo;
+import com.jzg.commons.entity.dto.CostAgreementParam;
+import com.jzg.commons.entity.vo.CostsListVo;
 import com.jzg.costsorrule.service.CostsService;
 import com.jzg.costsorrule.service.CostsService;
+import com.jzg.quotation.commons.client.OrgClient;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.List;
+
 /**
 /**
- * 协议管理接口
+ * 费用匹配接口
  *
  *
  * @author tz
  * @author tz
  */
  */

+ 4 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/build/ChengTaiAPIQuoteResultsVoBuild.java

@@ -1,5 +1,6 @@
 package com.jzg.quotation.chengtai.api.build;
 package com.jzg.quotation.chengtai.api.build;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.TaxInfoVo;
 import com.jzg.commons.entity.quote.vo.TaxInfoVo;
@@ -54,6 +55,9 @@ public final class ChengTaiAPIQuoteResultsVoBuild {
             quoteResultsVo.setKindInfoVo(kindInfoVo);
             quoteResultsVo.setKindInfoVo(kindInfoVo);
         }
         }
 
 
+        // 评分
+        quoteResultsVo.getScoreVo().setScoreJson(new JSONArray());
+
 
 
         // 费用因子
         // 费用因子
 //        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());
 //        List<ExpenseFactor> expenseFactors = buildExpenseFactor(calculatePremiumResponse.getPriceInfoList());

+ 1 - 0
tenant/insurance/quotation-chengtai/src/main/java/com/jzg/quotation/chengtai/api/component/ChengTaiRequestApiComponent.java

@@ -227,6 +227,7 @@ public class ChengTaiRequestApiComponent {
                 CarInfoResponse.class,
                 CarInfoResponse.class,
                 httpHeaders,
                 httpHeaders,
                 partnerCode,url);
                 partnerCode,url);
+        System.out.printf("诚泰返回:" + response.message);
         CarInfoResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(CarInfoResponse.class);
         CarInfoResponse res = JSON.parseObject(response.getDecodeData()).toJavaObject(CarInfoResponse.class);
         res.setCode(response.getCode());
         res.setCode(response.getCode());
         res.setMessage(response.getMessage());
         res.setMessage(response.getMessage());

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/CostsRuleClient.java

@@ -6,7 +6,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 
 
-@FeignClient(name="jzg-costsorrule",url = "http://localhost:8001/")
+@FeignClient(name="jzg-costsorrule",url = "${feign.client.jzg-costsorrule.url}")
 public interface CostsRuleClient {
 public interface CostsRuleClient {
 
 
 
 

+ 25 - 0
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/OrgClient.java

@@ -1,6 +1,8 @@
 package com.jzg.quotation.commons.client;
 package com.jzg.quotation.commons.client;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
 import com.jzg.commons.entity.agreement.dispatch.dto.PtlAgreementDispatchAfterAction;
 import com.jzg.commons.entity.agreement.dispatch.dto.PtlAgreementDispatchAfterAction;
 import com.jzg.commons.entity.agreement.dispatch.vo.PtlAgreementDispatchVo;
 import com.jzg.commons.entity.agreement.dispatch.vo.PtlAgreementDispatchVo;
 import com.jzg.commons.entity.dto.CostAgreementParam;
 import com.jzg.commons.entity.dto.CostAgreementParam;
@@ -77,6 +79,16 @@ public interface OrgClient {
                                       @RequestHeader("Authorization") String authToken,
                                       @RequestHeader("Authorization") String authToken,
                                       @RequestHeader("system_code") String systemCode);
                                       @RequestHeader("system_code") String systemCode);
 
 
+    /**
+     * 获取用户唯一id
+     * @param mobile
+     * @param authToken
+     * @return
+     */
+    @GetMapping(value = "/userInfo/getUserOnlyIdByMobile")
+    public HttpResult<SysUser>  getUserOnlyIdByMobile(@RequestParam String mobile,
+                                          @RequestHeader("Authorization") String authToken);
+
     /**
     /**
      * 用户账户信息查询
      * 用户账户信息查询
      * @param userId
      * @param userId
@@ -169,4 +181,17 @@ public interface OrgClient {
      */
      */
     @GetMapping(value = "/agreementRules/getRuleInfo")
     @GetMapping(value = "/agreementRules/getRuleInfo")
     public HttpResult getRuleInfo(@RequestParam("ruleId") String ruleId, @RequestHeader("Authorization") String authToken);
     public HttpResult getRuleInfo(@RequestParam("ruleId") String ruleId, @RequestHeader("Authorization") String authToken);
+
+    /**
+     * 添加应收
+     * @return
+     */
+    @PostMapping(value = "/receivable/addReceivable")
+    public HttpResult addReceivable(@RequestBody JSONObject requestData, @RequestHeader("Authorization") String authToken);
+
+    /**
+     * 添加用户账户收入记录
+     */
+    @PostMapping(value = "/userAccount/addUserAccountIncomeLog")
+    public HttpResult addUserAccountIncomeLog(@RequestBody List<SysUserAccountIncomeLog> incomeLogs,@RequestHeader("Authorization") String authToken);
 }
 }

+ 1 - 1
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/client/PlatformClient.java

@@ -17,7 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.List;
 import java.util.List;
 
 
-@FeignClient(name="jzg-platform",url = "http://localhost:8083/")
+@FeignClient(name="jzg-platform",url = "${feign.client.jzg-platform.url}")
 public interface PlatformClient {
 public interface PlatformClient {
 
 
 
 

+ 8 - 8
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -323,7 +323,7 @@ public class QuoteVerificationAspect {
             return BigDecimal.ZERO;
             return BigDecimal.ZERO;
         }
         }
         BigDecimal inletPercent = convertPercent(costType.getInlet());
         BigDecimal inletPercent = convertPercent(costType.getInlet());
-        return inletPercent.subtract(entranceFeeRatio);
+        return inletPercent.subtract(entranceFeeRatio).setScale(5);
     }
     }
 
 
     /**
     /**
@@ -370,7 +370,7 @@ public class QuoteVerificationAspect {
         BigDecimal taxablePremium = premium.multiply(taxFactor);
         BigDecimal taxablePremium = premium.multiply(taxFactor);
         BigDecimal receivable = taxablePremium.multiply(inletPercent)
         BigDecimal receivable = taxablePremium.multiply(inletPercent)
                 .add(taxablePremium.multiply(addThrowPercent))
                 .add(taxablePremium.multiply(addThrowPercent))
-                .add(taxablePremium.multiply(followRatio))
+//                .add(taxablePremium.multiply(followRatio))
                 .setScale(5, RoundingMode.HALF_EVEN);
                 .setScale(5, RoundingMode.HALF_EVEN);
 
 
         // 计算应付金额(保费 * 出口比例,保留2位小数)
         // 计算应付金额(保费 * 出口比例,保留2位小数)
@@ -379,9 +379,9 @@ public class QuoteVerificationAspect {
         // 计算各类费用并设置到订单对象
         // 计算各类费用并设置到订单对象
         setReceivable.accept(insFeeOrders, receivable);
         setReceivable.accept(insFeeOrders, receivable);
         setPayable.accept(insFeeOrders, payable);
         setPayable.accept(insFeeOrders, payable);
-        setCommission.accept(insFeeOrders, premium.multiply(commissionRatio).setScale(5, RoundingMode.HALF_EVEN));
-        setFollow.accept(insFeeOrders, premium.multiply(followRatio).setScale(5, RoundingMode.HALF_EVEN));
-        setAdditional.accept(insFeeOrders, premium.multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
+        setCommission.accept(insFeeOrders, taxablePremium.multiply(commissionRatio).setScale(5, RoundingMode.HALF_EVEN));
+        setFollow.accept(insFeeOrders, taxablePremium.multiply(followRatio).setScale(5, RoundingMode.HALF_EVEN));
+        setAdditional.accept(insFeeOrders, taxablePremium.multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
     }
     }
 
 
     /**
     /**
@@ -431,11 +431,11 @@ public class QuoteVerificationAspect {
                 ? convertPercent(jyCostType.getInlet() != null ? jyCostType.getInlet() : BigDecimal.ZERO) : BigDecimal.ZERO);
                 ? convertPercent(jyCostType.getInlet() != null ? jyCostType.getInlet() : BigDecimal.ZERO) : BigDecimal.ZERO);
         // 跟单比例
         // 跟单比例
         insFeeOrders.setJqFollowRatio(jqCostType != null ?
         insFeeOrders.setJqFollowRatio(jqCostType != null ?
-                calculateFollowRatio(jqCostType, agreementInfoVo.getAgreement().getJqEntranceFeeRatio()) : BigDecimal.ZERO);
+                calculateFollowRatio(jqCostType, convertPercent(agreementInfoVo.getAgreement().getJqEntranceFeeRatio())) : BigDecimal.ZERO);
         insFeeOrders.setSyFollowRatio(syCostType != null ?
         insFeeOrders.setSyFollowRatio(syCostType != null ?
-                calculateFollowRatio(syCostType, agreementInfoVo.getAgreement().getSyEntranceFeeRatio()) : BigDecimal.ZERO);
+                calculateFollowRatio(syCostType, convertPercent(agreementInfoVo.getAgreement().getSyEntranceFeeRatio())) : BigDecimal.ZERO);
         insFeeOrders.setJyFollowRatio(jyCostType != null ?
         insFeeOrders.setJyFollowRatio(jyCostType != null ?
-                calculateFollowRatio(jyCostType, agreementInfoVo.getAgreement().getJyEntranceFeeRatio()) : BigDecimal.ZERO);
+                calculateFollowRatio(jyCostType, convertPercent(agreementInfoVo.getAgreement().getJyEntranceFeeRatio())) : BigDecimal.ZERO);
         // 加投比例
         // 加投比例
         insFeeOrders.setJqAdditionalRatio(jqCostType != null
         insFeeOrders.setJqAdditionalRatio(jqCostType != null
                 ? convertPercent(jqCostType.getAddThrow() != null ? jqCostType.getAddThrow() : BigDecimal.ZERO)
                 ? convertPercent(jqCostType.getAddThrow() != null ? jqCostType.getAddThrow() : BigDecimal.ZERO)

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

@@ -2,6 +2,7 @@ package com.jzg.quotation.summary.controller;
 
 
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.core.page.HttpResult;
 import com.jzg.commons.entity.dto.FeeAuditAddParam;
 import com.jzg.commons.entity.dto.FeeAuditAddParam;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.FeeAuditParam;
@@ -26,6 +27,9 @@ public class InsFeeAuditController {
     @Autowired
     @Autowired
     private InsFeeAuditService insFeeAuditService;
     private InsFeeAuditService insFeeAuditService;
 
 
+    @Autowired
+    private BaseController baseController;
+
     /**
     /**
      * 订单列表分页
      * 订单列表分页
      * @return
      * @return
@@ -33,6 +37,7 @@ public class InsFeeAuditController {
     @PostMapping("/auditList")
     @PostMapping("/auditList")
     @Operation(summary = "订单审核列表分页")
     @Operation(summary = "订单审核列表分页")
     public HttpResult auditList(@RequestBody FeeAuditParam param){
     public HttpResult auditList(@RequestBody FeeAuditParam param){
+        param.setSystemCode(baseController.getUserSystemCode());
         Page<FeeAuditVo> result = insFeeAuditService.queryPage(param);
         Page<FeeAuditVo> result = insFeeAuditService.queryPage(param);
         return HttpResult.ok(result);
         return HttpResult.ok(result);
     }
     }
@@ -77,7 +82,7 @@ public class InsFeeAuditController {
     @Operation(summary = "放弃领取审核订单")
     @Operation(summary = "放弃领取审核订单")
     public HttpResult auditCancel(@RequestParam("orderNo") String orderNo){
     public HttpResult auditCancel(@RequestParam("orderNo") String orderNo){
         insFeeAuditService.auditCancel(orderNo);
         insFeeAuditService.auditCancel(orderNo);
-        return HttpResult.ok();
+        return HttpResult.ok("已放弃审核订单");
     }
     }
 
 
     /**
     /**
@@ -99,7 +104,7 @@ public class InsFeeAuditController {
     @Operation(summary = "审核订单")
     @Operation(summary = "审核订单")
     public HttpResult verifyOrder(@RequestBody VerifyOrderParam param){
     public HttpResult verifyOrder(@RequestBody VerifyOrderParam param){
         insFeeAuditService.verifyOrder(param);
         insFeeAuditService.verifyOrder(param);
-        return HttpResult.ok();
+        return HttpResult.ok("订单审核成功");
     }
     }
 
 
     /**
     /**

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/factory/decorator/quote/QuoteDispatchDecorator.java

@@ -61,6 +61,8 @@ public class QuoteDispatchDecorator {
         if(baseController.getUserSystemCode().equals("APP")){
         if(baseController.getUserSystemCode().equals("APP")){
             HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
             HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
             systemCode = request.getHeader("system_code");
             systemCode = request.getHeader("system_code");
+        }else{
+            systemCode = baseController.getUserSystemCode();
         }
         }
         HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(agreementId, token, systemCode);
         HttpResult<PtlAgreementAttribution> agreementAttribution = platformClient.getAgreementAttribution(agreementId, token, systemCode);
         AssertionUtils.isFail(agreementAttribution.getCode() == 500, "获取协议属性失败");
         AssertionUtils.isFail(agreementAttribution.getCode() == 500, "获取协议属性失败");

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

@@ -1,30 +1,32 @@
 package com.jzg.quotation.summary.service.impl;
 package com.jzg.quotation.summary.service.impl;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.StateResult;
 import com.jzg.commons.core.base.StateResult;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.po.InsFeeOrders;
 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.SysUserAccount;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
-import com.jzg.commons.entity.vo.AgreementInfoVo;
-import com.jzg.commons.entity.vo.AgreementVo;
-import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
-import com.jzg.commons.entity.vo.PtlAgreementCostTypeVo;
+import com.jzg.commons.entity.vo.*;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.PDFUtil;
 import com.jzg.commons.util.PDFUtil;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.StringUtils;
+import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.client.OrgClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.summary.mapper.InsFeeAuditMapper;
 import com.jzg.quotation.summary.mapper.InsFeeAuditMapper;
@@ -37,6 +39,7 @@ import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import java.io.File;
 import java.io.File;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -184,9 +187,8 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             AssertionUtils.isFail(true, "订单已审核!");
             AssertionUtils.isFail(true, "订单已审核!");
         }
         }
         String userName = baseController.getUserName();
         String userName = baseController.getUserName();
-        if (userName.equals(audit.getReceiveUser())) {
-            AssertionUtils.isFail(true, "已放弃订单审核任务!");
-        }
+        AssertionUtils.isFail(!userName.equals(audit.getReceiveUser()), "未领取审核任务!");
+//        AssertionUtils.isFail(!userName.equals(audit.getReceiveUser()), "已放弃订单审核任务!");
 
 
         LambdaUpdateWrapper<InsFeeAudit> wrapper = new LambdaUpdateWrapper<>();
         LambdaUpdateWrapper<InsFeeAudit> wrapper = new LambdaUpdateWrapper<>();
         wrapper.set(InsFeeAudit::getReceiveUser,null);
         wrapper.set(InsFeeAudit::getReceiveUser,null);
@@ -274,17 +276,24 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         if (!userName.equals(audit.getReceiveUser())) {
         if (!userName.equals(audit.getReceiveUser())) {
             AssertionUtils.isFail(true, "订单已被"+audit.getReceiveUser()+"领取返回待审核订单列表!");
             AssertionUtils.isFail(true, "订单已被"+audit.getReceiveUser()+"领取返回待审核订单列表!");
         }
         }
+        InsFeeOrders feeOrders = null;
+        SysUserAccount userAccount = null,distributor1 = null,distributor2 = null,distributor3 = null;
         if(param.getAuditStatus().equals(1)){
         if(param.getAuditStatus().equals(1)){
+            List<SysUserAccountIncomeLog> incomeLogs = new ArrayList<>();
             StateResult stateFailResult = auditStateListener.statusChange(AuditState.AuditStateEnum.SUCCESS_AUDIT,audit.getAuditStatus()+"");
             StateResult stateFailResult = auditStateListener.statusChange(AuditState.AuditStateEnum.SUCCESS_AUDIT,audit.getAuditStatus()+"");
             audit.setAuditStatus(stateFailResult.getCurrentState());
             audit.setAuditStatus(stateFailResult.getCurrentState());
 
 
             // 更新用户账户
             // 更新用户账户
-            InsFeeOrders feeOrders = feeOrdersService.getById(param.getOrderNo());
-            HttpResult<SysUserAccount> result = orgClient.accountGet(orders.getRealQuoteUserId(), baseController.getToken());
+            feeOrders = feeOrdersService.getById(param.getOrderNo());
+            HttpResult<SysUser> sysUserResult = orgClient.getUserOnlyIdByMobile(orders.getRealQuoteUserId(), baseController.getToken());
+            HttpResult<SysUserAccount> result = orgClient.accountGet(sysUserResult.getData().getId(), baseController.getToken());
             AssertionUtils.isFail(result.getCode() != 200,"获取用户账户失败!");
             AssertionUtils.isFail(result.getCode() != 200,"获取用户账户失败!");
-            SysUserAccount userAccount = result.getData();
+            userAccount = result.getData();
             if(Objects.isNull(userAccount)){
             if(Objects.isNull(userAccount)){
-                userAccount.setUserId(orders.getRealQuoteUserId());
+                userAccount = new SysUserAccount();
+                // 新建账户
+                userAccount.setId(IdGenerate.nextId());
+                userAccount.setUserId(sysUserResult.getData().getId());
                 userAccount.setSumAmount(feeOrders.getTotalReceivablePremium());
                 userAccount.setSumAmount(feeOrders.getTotalReceivablePremium());
                 userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium());
                 userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium());
             }else{
             }else{
@@ -292,34 +301,43 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium().add(userAccount.getSumAmount()));
                 userAccount.setSumAmountUnpaid(feeOrders.getTotalReceivablePremium().add(userAccount.getSumAmount()));
             }
             }
             orgClient.saveOrUpdate(userAccount, baseController.getToken());
             orgClient.saveOrUpdate(userAccount, baseController.getToken());
+
+            // 进入应收表
+            List<String> orderNos = new ArrayList<>();
+            orderNos.add(audit.getOrderNo());
+            JSONObject requestData = new JSONObject();
+            requestData.put("orderNos",orderNos);
+            HttpResult httpResult = orgClient.addReceivable(requestData, baseController.getToken());
+            AssertionUtils.isFail(httpResult.getCode() == 500,"应收出错");
+
             // 一级分销费用户进账
             // 一级分销费用户进账
-            if (feeOrders.getFirstDistributionFee().compareTo(BigDecimal.ZERO) > 0 && feeOrders.getFirstDistributorId() != null) {
+            if (feeOrders.getFirstDistributorId() != null && feeOrders.getFirstDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getFirstDistributorId());
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getFirstDistributorId());
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
-                SysUserAccount distributor1 = jzgAccountResult.getData();
+                distributor1 = jzgAccountResult.getData();
                 verifySysAccount(distributor1,jzgInfo,feeOrders);
                 verifySysAccount(distributor1,jzgInfo,feeOrders);
             }
             }
             // 二级分销费用户进账
             // 二级分销费用户进账
-            if (feeOrders.getSecondDistributionFee().compareTo(BigDecimal.ZERO) > 0 && feeOrders.getSecondDistributorId() != null) {
+            if (feeOrders.getSecondDistributorId() != null && feeOrders.getSecondDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getSecondDistributorId());
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getSecondDistributorId());
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
-                SysUserAccount distributor2 = jzgAccountResult.getData();
+                distributor2 = jzgAccountResult.getData();
                 verifySysAccount(distributor2,jzgInfo,feeOrders);
                 verifySysAccount(distributor2,jzgInfo,feeOrders);
             }
             }
             // 三级分销费用户进账
             // 三级分销费用户进账
-            if (feeOrders.getThirdDistributionFee().compareTo(BigDecimal.ZERO) > 0 && feeOrders.getThirdDistributorId() != null) {
+            if (feeOrders.getThirdDistributorId() != null && feeOrders.getThirdDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getThirdDistributorId());
                 HttpResult<SysUserJzgInfo> jzgInfoResult = orgClient.getUserInfoById(feeOrders.getThirdDistributorId());
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 AssertionUtils.isFail(jzgInfoResult.getCode() != 200,"获取用户失败!");
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 SysUserJzgInfo jzgInfo = jzgInfoResult.getData();
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 HttpResult<SysUserAccount> jzgAccountResult = orgClient.accountGet(jzgInfo.getUserId(), baseController.getToken());
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
                 AssertionUtils.isFail(jzgAccountResult.getCode() != 200,"获取用户账户失败!");
-                SysUserAccount distributor3 = jzgAccountResult.getData();
+                distributor3 = jzgAccountResult.getData();
                 verifySysAccount(distributor3,jzgInfo,feeOrders);
                 verifySysAccount(distributor3,jzgInfo,feeOrders);
             }
             }
         }else{
         }else{
@@ -329,8 +347,76 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         audit.setRefuse(param.getRefuse());
         audit.setRefuse(param.getRefuse());
         audit.setIsProblem(0);
         audit.setIsProblem(0);
         this.updateById(audit);
         this.updateById(audit);
+
+
+        // 增加账户的金额记录
+        List<SysUserAccountIncomeLog>builderIncomeLog = this.builderIncomeLog(param.getOrderNo(),feeOrders,userAccount,distributor1,distributor2,distributor3);
+        HttpResult result = orgClient.addUserAccountIncomeLog(builderIncomeLog,baseController.getToken());
+        AssertionUtils.isFail(result.getCode() != 200,"账户记录添加失败,审核失败");
+
     }
     }
 
 
+    /**
+     * 生成收入明细日志
+     * @param orderNo       订单号
+     * @param feeOrders     费用
+     * @param userAccount   分账用户
+     * @param distributor1  1级分销人员
+     * @param distributor2  2级分销人员
+     * @param distributor3  3级分销人员
+     * @return
+     */
+    private List<SysUserAccountIncomeLog> builderIncomeLog(String orderNo,InsFeeOrders feeOrders,SysUserAccount userAccount,SysUserAccount distributor1,
+                                                           SysUserAccount distributor2, SysUserAccount distributor3){
+        List<SysUserAccountIncomeLog> incomeLogs = new ArrayList<>();
+
+        // 出口费用
+        SysUserAccountIncomeLog exportIncomeLog = new SysUserAccountIncomeLog();
+        exportIncomeLog.setOrderId(orderNo);
+        exportIncomeLog.setUserId(userAccount.getUserId());
+        exportIncomeLog.setAmount(feeOrders.getJqExportPremium().add(feeOrders.getSyExportPremium()).add(feeOrders.getJyExportPremium()));
+        exportIncomeLog.setProperty(1);
+        exportIncomeLog.setBalanceAmount(userAccount.getSumAmount());
+
+        incomeLogs.add(exportIncomeLog);
+
+        // 1级分销费
+        if (feeOrders.getFirstDistributorId() != null && feeOrders.getFirstDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
+            SysUserAccountIncomeLog distributor1IncomeLog = new SysUserAccountIncomeLog();
+            distributor1IncomeLog.setOrderId(orderNo);
+            distributor1IncomeLog.setUserId(distributor1.getUserId());
+            distributor1IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
+            distributor1IncomeLog.setProperty(2);
+            distributor1IncomeLog.setBalanceAmount(userAccount.getSumAmount());
+            incomeLogs.add(distributor1IncomeLog);
+        }
+
+        // 2级分销费
+        if (feeOrders.getSecondDistributorId() != null && feeOrders.getSecondDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
+            SysUserAccountIncomeLog distributor2IncomeLog = new SysUserAccountIncomeLog();
+            distributor2IncomeLog.setOrderId(orderNo);
+            distributor2IncomeLog.setUserId(distributor2.getUserId());
+            distributor2IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
+            distributor2IncomeLog.setProperty(2);
+            distributor2IncomeLog.setBalanceAmount(userAccount.getSumAmount());
+            incomeLogs.add(distributor2IncomeLog);
+        }
+
+        // 3级分销费
+        if (feeOrders.getThirdDistributorId() != null && feeOrders.getThirdDistributionFee().compareTo(BigDecimal.ZERO) > 0) {
+            SysUserAccountIncomeLog distributor3IncomeLog = new SysUserAccountIncomeLog();
+            distributor3IncomeLog.setOrderId(orderNo);
+            distributor3IncomeLog.setUserId(distributor3.getUserId());
+            distributor3IncomeLog.setAmount(feeOrders.getFirstDistributionFee());
+            distributor3IncomeLog.setProperty(2);
+            distributor3IncomeLog.setBalanceAmount(userAccount.getSumAmount());
+            incomeLogs.add(distributor3IncomeLog);
+        }
+        return incomeLogs;
+    }
+
+
+
     // 验证用户账户
     // 验证用户账户
     public void verifySysAccount(SysUserAccount userAccount, SysUserJzgInfo jzgInfo, InsFeeOrders feeOrders) {
     public void verifySysAccount(SysUserAccount userAccount, SysUserJzgInfo jzgInfo, InsFeeOrders feeOrders) {
         if (Objects.isNull(userAccount)) {
         if (Objects.isNull(userAccount)) {

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

@@ -372,9 +372,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             throw new SystemException("查询结果为空,无法处理订单信息");
             throw new SystemException("查询结果为空,无法处理订单信息");
         }
         }
         // 协议名称、协议类型
         // 协议名称、协议类型
-        HttpResult<AgreementInfoVo> ptlAgreement =orgClient.queryAgreementById(insOrdersVo.getInsOrders().getAgreementId(),baseController.getToken(),baseController.getAppSystemCode());
-        insOrdersVo.setAgreementType(ptlAgreement.getData().getAgreement().getAgreementType());
-        insOrdersVo.setAgreementName(ptlAgreement.getData().getAgreement().getAgreementName());
+        if(Objects.nonNull(insOrdersVo.getInsOrders().getAgreementId())) {
+            HttpResult<AgreementInfoVo> ptlAgreement = orgClient.queryAgreementById(insOrdersVo.getInsOrders().getAgreementId(), baseController.getToken(), baseController.getAppSystemCode());
+            insOrdersVo.setAgreementType(ptlAgreement.getData().getAgreement().getAgreementType());
+            insOrdersVo.setAgreementName(ptlAgreement.getData().getAgreement().getAgreementName());
+        }
 
 
         // 业务员信息
         // 业务员信息
         SalesmanVo salesmanInfo = orgClient.getUserByMobile(insOrdersVo.getCreateBy(),baseController.getToken(),baseController.getAppSystemCode());
         SalesmanVo salesmanInfo = orgClient.getUserByMobile(insOrdersVo.getCreateBy(),baseController.getToken(),baseController.getAppSystemCode());
@@ -1193,6 +1195,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if(orderStatusResultVo.getOrderStatus().equals(InsOrderStatusEnum.UNDERWRITED)){
         if(orderStatusResultVo.getOrderStatus().equals(InsOrderStatusEnum.UNDERWRITED)){
             // 增加财务审核
             // 增加财务审核
             insFeeAuditService.feeAuditAdd(insOrders);
             insFeeAuditService.feeAuditAdd(insOrders);
+            // 将父订单的保司id 和名称更新
+            InsOrders baseInsOrders = insOrdersMapper.selectOne(new LambdaQueryWrapper<InsOrders>().eq(InsOrders::getId, insOrders.getParentId()));
+            baseInsOrders.setCompanyId(insOrders.getCompanyId());
+            baseInsOrders.setCompanyName(insOrders.getCompanyName());
+            // 更新父订单
+            baseMapper.updateById(baseInsOrders);
             // 发送订单状态变更消息
             // 发送订单状态变更消息
             this.orderStatusMessage(insOrders,
             this.orderStatusMessage(insOrders,
                     insOrdersCarInfo,costs,
                     insOrdersCarInfo,costs,

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

@@ -26,10 +26,21 @@
         update_time,update_by,is_problem
         update_time,update_by,is_problem
     </sql>
     </sql>
     <select id="queryPage" resultType="com.jzg.commons.entity.orders.vo.FeeAuditVo">
     <select id="queryPage" resultType="com.jzg.commons.entity.orders.vo.FeeAuditVo">
-        SELECT ifa.order_no as orderNo,io.company_name as companyName,
-               ioci.license_no AS licenseNo,iocui.name as insurName,
-               io.entry_status as orderType,suji.name as name, su.mobile as mobile,
-               suji.type_attr as attrType,io.signing_time as signingTime,
+        SELECT
+            ifa.order_no as orderNo,
+            io.company_name as companyName,
+            ioci.license_no AS licenseNo,
+            iocui.name as insurName,
+            CASE io.entry_status
+            WHEN 1 THEN '车险出单'
+            WHEN 2 THEN '待客录单'
+            WHEN 3 THEN '补录订单'
+            ELSE '未知状态'
+            END AS order_type,
+            suji.name as name,
+            su.mobile as mobile,
+               suji.type_attr as attrType,
+               io.signing_time as signingTime,
                io.create_time as quotationTime, sua.username as dockingPerson,
                io.create_time as quotationTime, sua.username as dockingPerson,
                pa.agreement_abbreviation as agreementName,io.product_name as productName,
                pa.agreement_abbreviation as agreementName,io.product_name as productName,
                ioc.jq_premium as jqPremium, ioc.sy_premium as syPremium, ioc.jy_premium as jyPremium,
                ioc.jq_premium as jqPremium, ioc.sy_premium as syPremium, ioc.jy_premium as jyPremium,
@@ -40,7 +51,8 @@
         LEFT JOIN ins_orders as io on ifa.order_no = io.id
         LEFT JOIN ins_orders as io on ifa.order_no = io.id
         LEFT JOIN ins_orders_car_info as ioci on io.id = ioci.order_no
         LEFT JOIN ins_orders_car_info as ioci on io.id = ioci.order_no
         LEFT JOIN ins_orders_car_user_info as iocui on io.id = iocui.order_no and iocui.policy_person_type = 3
         LEFT JOIN ins_orders_car_user_info as iocui on io.id = iocui.order_no and iocui.policy_person_type = 3
-        LEFT JOIN sys_user_jzg_info suji on suji.user_id = io.real_quote_user_id
+        LEFT JOIN sys_user qsu on qsu.mobile = io.real_quote_user_id
+        LEFT JOIN sys_user_jzg_info suji ON suji.user_id = qsu.id and system_code = #{param.systemCode}
         LEFT JOIN sys_user su on su.id = io.real_quote_user_id
         LEFT JOIN sys_user su on su.id = io.real_quote_user_id
         LEFT JOIN sys_dept sd on suji.dept_id = sd.id
         LEFT JOIN sys_dept sd on suji.dept_id = sd.id
         LEFT JOIN ptl_agreement pa on io.agreement_id = pa.id
         LEFT JOIN ptl_agreement pa on io.agreement_id = pa.id

+ 7 - 1
tenant/insurance/quotation-yangguang/src/main/java/com/jzg/quotation/yangguang/api/componet/YangGuangApiRequestComponent.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.jzg.commons.constants.quote.enums.base.InsuranceEnum;
 import com.jzg.commons.constants.quote.enums.base.InsuranceEnum;
+import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.utils.InsuranceLog;
 import com.jzg.quotation.commons.utils.InsuranceLog;
 import com.jzg.quotation.yangguang.api.entity.request.*;
 import com.jzg.quotation.yangguang.api.entity.request.*;
 import com.jzg.quotation.yangguang.api.entity.response.*;
 import com.jzg.quotation.yangguang.api.entity.response.*;
@@ -58,7 +59,12 @@ public class YangGuangApiRequestComponent {
         String decryptedResponse = yangGuangEncryption.authcodeDecode(body, yangGuangApiProperties.getKey());
         String decryptedResponse = yangGuangEncryption.authcodeDecode(body, yangGuangApiProperties.getKey());
 
 
         InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", type, decryptedResponse);
         InsuranceLog.infoLog(InsuranceEnum.YGBX.getPinyin(), "\n\t---------> {} \n\t---------> 响应参数:{}", type, decryptedResponse);
-        JSONObject jsonObject = JSON.parseObject(decryptedResponse);
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject = JSON.parseObject(decryptedResponse);
+        }catch (Exception e){
+            throw new SystemException(type + "解密失败");
+        }
         S t = jsonObject.toJavaObject(tClass);
         S t = jsonObject.toJavaObject(tClass);
         // 反序列化响应
         // 反序列化响应
         return JSON.parseObject(decryptedResponse).toJavaObject(tClass);
         return JSON.parseObject(decryptedResponse).toJavaObject(tClass);

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

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 
 import java.util.List;
 import java.util.List;
 
 
-@FeignClient(name="jzg-platform",url = "http://localhost:8001/")
+@FeignClient(name="jzg-platform",url = "${feign.client.jzg-platform.url}")
 public interface EsmInsCompanyClient {
 public interface EsmInsCompanyClient {
 
 
 
 

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

@@ -48,7 +48,7 @@ public class ReceivableController {
     @PostMapping("getUnauditedOrder")
     @PostMapping("getUnauditedOrder")
     @Operation(summary = "获取未审核的订单")
     @Operation(summary = "获取未审核的订单")
     public HttpResult getUnauditedOrder(@RequestBody ReceivableQueryVo receivableQueryVo){
     public HttpResult getUnauditedOrder(@RequestBody ReceivableQueryVo receivableQueryVo){
-        if (receivableQueryVo.getAgreementType().equals(""))
+        if (Objects.isNull(receivableQueryVo.getAgreementType()) || receivableQueryVo.getAgreementType().equals(""))
         {
         {
             receivableQueryVo.setAgreementType("1");
             receivableQueryVo.setAgreementType("1");
         }
         }
@@ -62,17 +62,15 @@ public class ReceivableController {
 
 
     @PostMapping("addReceivable")
     @PostMapping("addReceivable")
     @Operation(summary = "添加应收记录")
     @Operation(summary = "添加应收记录")
-    public HttpResult addReceivable(@RequestSingleParam("orderNo") List<String> orderNo){
-        List<InsPlyIncome> auditedOrder  = receivableService.getUnauditOrderList(orderNo, InsOrderStatusEnum.UNDERWRITED.getCode(),"0");
-        AssertionUtils.isEmpty(auditedOrder,"订单不存在");
-        boolean result = receivableService.saveAuditedOrder(auditedOrder);
+    public HttpResult addReceivable(@RequestSingleParam("orderNos") List<String> orderNos){
+        boolean result = receivableService.saveAuditedOrder(orderNos);
         return result ? HttpResult.ok("添加成功") : HttpResult.error("添加失败");
         return result ? HttpResult.ok("添加成功") : HttpResult.error("添加失败");
     }
     }
 
 
     @PostMapping("getCommissionReceivableList")
     @PostMapping("getCommissionReceivableList")
     @Operation(summary = "获取私有协议手续费列表")
     @Operation(summary = "获取私有协议手续费列表")
     public HttpResult getCommissionReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
     public HttpResult getCommissionReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
-        receivableQueryVo.setQueryType("1");
+        receivableQueryVo.setQueryType("2");
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
     }
     }
 
 
@@ -86,14 +84,14 @@ public class ReceivableController {
     @PostMapping("getJyCommissionReceivableList")
     @PostMapping("getJyCommissionReceivableList")
     @Operation(summary = "获取私有协议驾意险手续费列表")
     @Operation(summary = "获取私有协议驾意险手续费列表")
     public HttpResult getJyCommissionReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
     public HttpResult getJyCommissionReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
-        receivableQueryVo.setQueryType("3");
+        receivableQueryVo.setQueryType("2");
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
     }
     }
 
 
     @PostMapping("getJyOtherReceivableList")
     @PostMapping("getJyOtherReceivableList")
     @Operation(summary = "获取私有协议驾意险跟单费列表")
     @Operation(summary = "获取私有协议驾意险跟单费列表")
     public HttpResult getJyOtherReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
     public HttpResult getJyOtherReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
-        receivableQueryVo.setQueryType("4");
+        receivableQueryVo.setQueryType("2");
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
         return HttpResult.ok(receivableService.getReceivablePage(receivableQueryVo));
     }
     }
 
 
@@ -104,11 +102,11 @@ public class ReceivableController {
     }
     }
 
 
 
 
-    @PostMapping("getPlatformReceivableList")
-    @Operation(summary = "获取平台协议驾意险列表")
-    public void getPlatformReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
-
-    }
+//    @PostMapping("getPlatformReceivableList")
+//    @Operation(summary = "获取平台协议驾意险列表")
+//    public void getPlatformReceivableList(@RequestBody ReceivableQueryVo receivableQueryVo){
+//
+//    }
 
 
     @PostMapping("commissionInvoicing")
     @PostMapping("commissionInvoicing")
     @Operation(summary = "手续费开票")
     @Operation(summary = "手续费开票")

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

@@ -3,18 +3,22 @@ package com.jzg.organization.controller;
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
 import com.jzg.commons.entity.dto.IncomeAndExpenseParam;
 import com.jzg.commons.entity.dto.IncomeAndExpenseParam;
 import com.jzg.commons.entity.dto.SysUserAccountPageParam;
 import com.jzg.commons.entity.dto.SysUserAccountPageParam;
 import com.jzg.commons.entity.dto.SysUserAccountParam;
 import com.jzg.commons.entity.dto.SysUserAccountParam;
 import com.jzg.commons.entity.po.SysUserAccount;
 import com.jzg.commons.entity.po.SysUserAccount;
 import com.jzg.commons.entity.vo.SysUserAccountVo;
 import com.jzg.commons.entity.vo.SysUserAccountVo;
 import com.jzg.commons.entity.vo.UserAccountStatisVo;
 import com.jzg.commons.entity.vo.UserAccountStatisVo;
+import com.jzg.organization.service.SysUserAccountIncomeLogService;
 import com.jzg.organization.service.SysUserAccountService;
 import com.jzg.organization.service.SysUserAccountService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.List;
+
 @Tag(name="用户账户接口")
 @Tag(name="用户账户接口")
 @RestController
 @RestController
 @RequestMapping("/userAccount")
 @RequestMapping("/userAccount")
@@ -23,6 +27,9 @@ public class UserAccountController {
     @Autowired
     @Autowired
     private SysUserAccountService userAccountService;
     private SysUserAccountService userAccountService;
 
 
+    @Autowired
+    private SysUserAccountIncomeLogService sysUserAccountIncomeLogService;
+
     /**
     /**
      * 用户账户信息查询
      * 用户账户信息查询
      * @param userId
      * @param userId
@@ -43,7 +50,7 @@ public class UserAccountController {
     @PostMapping("/saveOrUpdate")
     @PostMapping("/saveOrUpdate")
     public HttpResult saveOrUpdate(@RequestBody SysUserAccount account) {
     public HttpResult saveOrUpdate(@RequestBody SysUserAccount account) {
         boolean isSuccess = userAccountService.saveOrUpdate(account);
         boolean isSuccess = userAccountService.saveOrUpdate(account);
-        return isSuccess ? HttpResult.ok() : HttpResult.error();
+        return isSuccess ? HttpResult.ok("用户账户信息更新成功") : HttpResult.error("用户账户信息更新失败");
     }
     }
 
 
     /**
     /**
@@ -80,4 +87,9 @@ public class UserAccountController {
         return HttpResult.ok(userAccountService.getIncomeAndExpense(param));
         return HttpResult.ok(userAccountService.getIncomeAndExpense(param));
     }
     }
 
 
+    @Operation(summary = "添加用户钱包账户记录")
+    @PostMapping("/addUserAccountIncomeLog")
+    public HttpResult addUserAccountIncomeLog(@RequestBody List<SysUserAccountIncomeLog> incomeLogs){
+        return HttpResult.ok(sysUserAccountIncomeLogService.saveBatch(incomeLogs));
+    }
 }
 }

+ 7 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/UserController.java

@@ -204,4 +204,11 @@ public class UserController extends BaseController {
         return HttpResult.ok(sysUserService.getUserInfoByMobile(mobile));
         return HttpResult.ok(sysUserService.getUserInfoByMobile(mobile));
     }
     }
 
 
+    @Operation(summary = "获取用户唯一id", description = "获取用户唯一id")
+    @GetMapping(value = "/getUserOnlyIdByMobile")
+    public HttpResult<SysUser> getUserOnlyIdByMobile(@RequestParam String mobile){
+        SysUser userByMobile = sysUserService.getUserByMobile(mobile);
+        return HttpResult.ok(userByMobile);
+    }
+
 }
 }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserAccountIncomeLogMapper.java

@@ -0,0 +1,9 @@
+package com.jzg.organization.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserAccountIncomeLogMapper extends BaseMapper<SysUserAccountIncomeLog> {
+}

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

@@ -40,7 +40,7 @@ public interface ReceivableService extends IService<InsPlyIncome> {
     /**
     /**
      * 添加已审核订单的数据 应收表插入
      * 添加已审核订单的数据 应收表插入
      */
      */
-    boolean saveAuditedOrder(List<InsPlyIncome> orders);
+    boolean saveAuditedOrder(List<String> orderNos);
 
 
     /**
     /**
      * 获取应收订单的保司
      * 获取应收订单的保司
@@ -58,7 +58,6 @@ public interface ReceivableService extends IService<InsPlyIncome> {
 
 
 
 
     List<InsPlyIncome> getReceivableList(ReceivableQueryVo receivableQueryVo);
     List<InsPlyIncome> getReceivableList(ReceivableQueryVo receivableQueryVo);
-
     /**
     /**
      * 开票检测
      * 开票检测
      * @param invoicingVo
      * @param invoicingVo

+ 27 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserAccountIncomeLogService.java

@@ -0,0 +1,27 @@
+package com.jzg.organization.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.account.po.SysUserAccountIncomeLog;
+import com.jzg.commons.entity.dto.SysUserInfoParam;
+import com.jzg.commons.entity.dto.SysUserJzgInfoDto;
+import com.jzg.commons.entity.po.SysUser;
+import com.jzg.commons.entity.po.SysUserJzgInfo;
+import com.jzg.commons.entity.user.vo.SysTennatVo;
+import com.jzg.commons.entity.vo.*;
+import com.jzg.commons.exception.SystemException;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【SysUserAccountIncomeLog】的数据库操作Service
+ * @createDate 2023-11-15 11:23:28
+ */
+public interface SysUserAccountIncomeLogService extends IService<SysUserAccountIncomeLog> {
+
+}

+ 5 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java

@@ -13,6 +13,7 @@ import com.jzg.commons.entity.po.PtlAgreementUndwrtRulesDictLabal;
 import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostVo;
+import com.jzg.commons.exception.SystemException;
 import com.jzg.costsorrule.constants.OperatorConstant;
 import com.jzg.costsorrule.constants.OperatorConstant;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrMapper;
@@ -152,6 +153,10 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
             //单独判断radio  radio中存在0的属性值
             //单独判断radio  radio中存在0的属性值
             link.setRulesId(rules.getId());
             link.setRulesId(rules.getId());
             link.setId(null);
             link.setId(null);
+            //判断空值
+            if(Objects.isNull(link.getMin()) && Objects.isNull(link.getMax()) && Objects.isNull(link.getMinArray())){
+                throw new SystemException(ptlAgreementUndwrtRulesAttr.getAttrName() + "规则不能为空,请修改");
+            }
             costsAttrLink.add(link);
             costsAttrLink.add(link);
         });
         });
         agreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);
         agreementUndwrtRulesAttrLinkService.saveBatch(costsAttrLink);

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

@@ -126,17 +126,20 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     }
     }
 
 
     @Override
     @Override
-    public boolean saveAuditedOrder(List<InsPlyIncome> orders) {
+    public boolean saveAuditedOrder(List<String> orderNos) {
+
+        List<InsPlyIncome> auditedOrder  = this.getUnauditOrderList(orderNos, InsOrderStatusEnum.UNDERWRITED.getCode(),"0");
+        AssertionUtils.isEmpty(auditedOrder,"订单不存在");
         // 查看当前表是否已经存在了已审核订单数据
         // 查看当前表是否已经存在了已审核订单数据
 //        Long count = baseMapper.selectCount(new LambdaQueryWrapper<InsPlyIncome>().eq(InsPlyIncome::getOrderNo, order.getOrderNo()));
 //        Long count = baseMapper.selectCount(new LambdaQueryWrapper<InsPlyIncome>().eq(InsPlyIncome::getOrderNo, order.getOrderNo()));
 //        // 订单已经录入成功了
 //        // 订单已经录入成功了
 //        if (count > 0){
 //        if (count > 0){
 //            return false;
 //            return false;
 //        }
 //        }
-        orders.forEach(item->{
+        auditedOrder.forEach(item->{
             item.setId(IdGenerate.nextId());
             item.setId(IdGenerate.nextId());
         });
         });
-        return saveBatch(orders);
+        return saveBatch(auditedOrder);
     }
     }
 
 
     @Override
     @Override
@@ -487,7 +490,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setCompanyId(matchCompany.getId());
             insPlyIncome.setCompanyId(matchCompany.getId());
             insPlyIncome.setCompanyName(matchCompany.getName());
             insPlyIncome.setCompanyName(matchCompany.getName());
-            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setJqPolicyNo(vo.getJqPolicyNo());
             insPlyIncome.setJqPolicyNo(vo.getJqPolicyNo());
@@ -580,7 +583,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             InsPlyIncome insPlyIncome = new InsPlyIncome();
             InsPlyIncome insPlyIncome = new InsPlyIncome();
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setCompanyId(matchCompany.getId());
             insPlyIncome.setCompanyId(matchCompany.getId());
-            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setJqPolicyNo(vo.getJqPolicyNo());
             insPlyIncome.setJqPolicyNo(vo.getJqPolicyNo());
@@ -673,7 +676,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             InsPlyIncome insPlyIncome = new InsPlyIncome();
             InsPlyIncome insPlyIncome = new InsPlyIncome();
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setId(IdGenerate.nextId());
             insPlyIncome.setCompanyId(matchCompany.getId());
             insPlyIncome.setCompanyId(matchCompany.getId());
-            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//            insPlyIncome.setSigningTime(signDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setAgreementId(ptlAgreement.getId());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setLicenseNo(vo.getLicenseNo());
             insPlyIncome.setJyPolicyNo(vo.getJyPolicyNo());
             insPlyIncome.setJyPolicyNo(vo.getJyPolicyNo());
@@ -728,9 +731,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     insPlyIncome.setJyOtherCostsPremiums(jyOtherReceivablePremium.toString());
                     insPlyIncome.setJyOtherCostsPremiums(jyOtherReceivablePremium.toString());
                 }
                 }
 
 
-                if (batchModifyVo.getSigningTime() != null){
-                    insPlyIncome.setSigningTime(batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
-                }
+//                if (batchModifyVo.getSigningTime() != null){
+//                    insPlyIncome.setSigningTime(batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//                }
 
 
 
 
                 updateInsPlyIncome.add(insPlyIncome);
                 updateInsPlyIncome.add(insPlyIncome);
@@ -747,7 +750,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 .set(InsPlyIncome::getJqOtherCostsProportion, batchModifyVo.getJqOtherCostsProportion())
                 .set(InsPlyIncome::getJqOtherCostsProportion, batchModifyVo.getJqOtherCostsProportion())
                 .set(InsPlyIncome::getSyOtherCostsProportion, batchModifyVo.getSyOtherCostsProportion())
                 .set(InsPlyIncome::getSyOtherCostsProportion, batchModifyVo.getSyOtherCostsProportion())
                 .set(InsPlyIncome::getJyOtherCostsProportion, batchModifyVo.getJyOtherCostsProportion())
                 .set(InsPlyIncome::getJyOtherCostsProportion, batchModifyVo.getJyOtherCostsProportion())
-                .set(InsPlyIncome::getSigningTime, batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+//                .set(InsPlyIncome::getSigningTime, batchModifyVo.getSigningTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
                 .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
                 .in(InsPlyIncome::getId, batchModifyVo.getIncomeIds()));
 
 
         return false;
         return false;
@@ -760,14 +763,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
 
 
     @Override
     @Override
     public Page<InsPlyIncome> getPlatFormReceivableList(ReceivableQueryVo receivableQueryVo) {
     public Page<InsPlyIncome> getPlatFormReceivableList(ReceivableQueryVo receivableQueryVo) {
-
-        Page page = baseMapper.selectPage(receivableQueryVo.getPage(),new LambdaQueryWrapper<InsPlyIncome>()
-                .eq(InsPlyIncome::getAgreementType,receivableQueryVo.getQueryType())
-                .eq(InsPlyIncome::getSuperviseSettlement,0)
-                .eq(InsPlyIncome::getOtherSettlement,0)
-                .eq(InsPlyIncome::getJySuperviseSettlement,0)
-                .eq(InsPlyIncome::getJyOtherSettlement,0));
-
+        Page<InsPlyIncome> page = baseMapper.getReceivablePage(receivableQueryVo.getPage(),receivableQueryVo);
         return page;
         return page;
     }
     }
 
 
@@ -808,13 +804,13 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     // 过滤不需要的字段
     // 过滤不需要的字段
     private ExportSuperviseExcelDto convertToDto(InsPlyIncome income) {
     private ExportSuperviseExcelDto convertToDto(InsPlyIncome income) {
         ExportSuperviseExcelDto dto = new ExportSuperviseExcelDto();
         ExportSuperviseExcelDto dto = new ExportSuperviseExcelDto();
-        dto.setSigningTime(income.getSigningTime());
+//        dto.setSigningTime(income.getSigningTime());
         dto.setOrderNo(income.getOrderNo());
         dto.setOrderNo(income.getOrderNo());
         dto.setCompanyName(income.getCompanyName());
         dto.setCompanyName(income.getCompanyName());
         dto.setDeptName(income.getDeptName());
         dto.setDeptName(income.getDeptName());
         dto.setAgreementName(income.getAgreementName());
         dto.setAgreementName(income.getAgreementName());
         dto.setLicenseNo(income.getLicenseNo());
         dto.setLicenseNo(income.getLicenseNo());
-        dto.setReceivableAmount(income.getReceivableAmount());
+//        dto.setReceivableAmount(income.getReceivableAmount());
         dto.setProductName(income.getProductName());
         dto.setProductName(income.getProductName());
         dto.setInsuredPerson(income.getInsuredPerson());
         dto.setInsuredPerson(income.getInsuredPerson());
         dto.setJqPolicyNo(income.getJqPolicyNo());
         dto.setJqPolicyNo(income.getJqPolicyNo());

+ 54 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountIncomeLogServiceImpl.java

@@ -0,0 +1,54 @@
+package com.jzg.organization.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.jzg.commons.constants.RedisKeyConstants;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.core.base.HistoryDataService;
+import com.jzg.commons.core.base.StateResult;
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.account.po.SysUserAccountIncomeLog;
+import com.jzg.commons.entity.dto.SysUserInfoParam;
+import com.jzg.commons.entity.dto.SysUserJzgInfoBankCardDto;
+import com.jzg.commons.entity.dto.SysUserJzgInfoDto;
+import com.jzg.commons.entity.enums.MessageCodeEnum;
+import com.jzg.commons.entity.po.*;
+import com.jzg.commons.entity.user.vo.SysTennatVo;
+import com.jzg.commons.entity.vo.*;
+import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.exception.ValidateException;
+import com.jzg.commons.util.MinioUtils;
+import com.jzg.commons.util.PasswordUtils;
+import com.jzg.commons.util.StringUtils;
+import com.jzg.commons.util.idgen.IdGenerate;
+import com.jzg.organization.consumer.templete.UserMessageTemplate;
+import com.jzg.organization.mapper.*;
+import com.jzg.organization.service.*;
+import com.jzg.organization.state.UserState;
+import com.jzg.organization.state.listener.UserStateListener;
+import jakarta.annotation.Resource;
+import lombok.Setter;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_area(省市县代码)】的数据库操作Service实现
+ * @createDate 2023-11-15 11:23:28
+ */
+@Service
+public class SysUserAccountIncomeLogServiceImpl extends ServiceImpl<SysUserAccountIncomeLogMapper, SysUserAccountIncomeLog> implements SysUserAccountIncomeLogService{
+
+}
+
+

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

@@ -19,6 +19,17 @@ spring:
       - nacos:minio
       - nacos:minio
       - nacos:rocketmq
       - nacos:rocketmq
 
 
+feign:
+  client:
+    jzg-insurance:
+      url: http://192.168.0.250:9898/
+    jzg-org:
+      url: http://192.168.0.250:9084/
+    jzg-costsorrule:
+      url: http://192.168.0.250:9085/
+    jzg-platform:
+      url: http://192.168.0.250:9083/
+
 config:
 config:
   sso: 1
   sso: 1
 
 

+ 13 - 1
tenant/organization/src/main/resources/mapper/PtlAgreementMapper.xml

@@ -80,10 +80,22 @@
                 and pa.system_code = #{param.systemCode}
                 and pa.system_code = #{param.systemCode}
             </if>
             </if>
             <if test="param.companyId != null and param.companyId != ''">
             <if test="param.companyId != null and param.companyId != ''">
-                and pa.company_id = #{param.companyId}
+                and pa.company_id in (
+                    WITH RECURSIVE t AS (
+                    SELECT id
+                    FROM esm_ins_company
+                    WHERE id = #{param.companyId}
+                    AND parent_id = 0
+                    UNION ALL
+                    SELECT c.id
+                    FROM esm_ins_company c
+                    JOIN t ON c.parent_id = t.id
+                    )
+                SELECT id FROM t)
             </if>
             </if>
             <if test="param.companyIds != null and param.companyIds != ''">
             <if test="param.companyIds != null and param.companyIds != ''">
                 and pa.company_id in
                 and pa.company_id in
+
                 <foreach collection="param.companyIds" item="item" index="index" open="(" separator="," close=")">
                 <foreach collection="param.companyIds" item="item" index="index" open="(" separator="," close=")">
                     #{item}
                     #{item}
                 </foreach>
                 </foreach>

+ 93 - 7
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -199,12 +199,55 @@
 
 
     <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
     <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
         SELECT
         SELECT
-            *
+            io.signing_time,
+            io.id,
+            io.company_name,
+            ipi.dept_name,
+            ipi.agreement_name,
+            io.product_name,
+            CASE io.entry_status
+            WHEN 1 THEN '车险出单'
+            WHEN 2 THEN '待客录单'
+            WHEN 3 THEN '补录订单'
+            ELSE '未知状态'
+            END AS order_type,
+            ipi.license_no,
+            (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount,  -- 总应收金额
+            (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
+            (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as otherCostsPremiums,  -- 总应收跟单费
+            io.product_name,
+            iocui.name AS insuredPerson,
+            ipi.jq_premium,
+            ipi.sy_premium,
+            ipi.jy_premium,
+            ipi.tax_premium,
+            ipi.jq_supervise_costs_proportion,
+            ipi.sy_supervise_costs_proportion,
+            ipi.jy_supervise_costs_proportion,
+            ipi.jq_other_costs_proportion,
+            ipi.sy_other_costs_proportion,
+            ipi.jy_other_costs_proportion,
+            ior1.start_date as jq_start_date,
+            ior2.start_date as sy_start_date,
+            io.product_name AS productName,
+            iop.jq_policy_no,
+            iop.sy_policy_no,
+            iop.jy_policy_no,
+            io.company_name,
+            io.create_time,
+            io.docking_person
+
         FROM
         FROM
             ins_ply_income ipi
             ins_ply_income ipi
+            LEFT JOIN ins_orders io ON ipi.order_no = io.id
+            LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
+            LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
+            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
         WHERE
         WHERE
             1=1
             1=1
-          AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
+        AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
+        AND ipi.agreement_type = #{receivableQueryVo.queryType}
         <if test = "receivableQueryVo.ids != null and receivableQueryVo.ids.size > 0">
         <if test = "receivableQueryVo.ids != null and receivableQueryVo.ids.size > 0">
             AND ipi.id in
             AND ipi.id in
             <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
             <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
@@ -215,7 +258,7 @@
             AND ipi.supervise_settlement = 0
             AND ipi.supervise_settlement = 0
         </if>
         </if>
         <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
         <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
-            AND ipi.other_settlement = 1
+            AND ipi.other_settlement = 0
         </if>
         </if>
         <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
         <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
             AND ipi.jy_premium != 0
             AND ipi.jy_premium != 0
@@ -241,6 +284,13 @@
         <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
         <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
             AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and  #{receivableQueryVo.signingTimeEnd}
             AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and  #{receivableQueryVo.signingTimeEnd}
         </if>
         </if>
+        <if test="receivableQueryVo.insuredName != null and receivableQueryVo.insuredName != ''">
+            AND iocui.name = #{receivableQueryVo.insuredName}
+        </if>
+
+        <if test="receivableQueryVo.orderType != null and receivableQueryVo.orderType != ''">
+            AND io.entry_status = #{receivableQueryVo.orderType}
+        </if>
 
 
 
 
     </select>
     </select>
@@ -254,15 +304,17 @@
             iocui.name AS insuredPerson,
             iocui.name AS insuredPerson,
             ior1.start_date as jqStartDate,
             ior1.start_date as jqStartDate,
             ior2.start_date as syStartDate,
             ior2.start_date as syStartDate,
-            io.product_name AS productName
-        *
+            io.product_name AS productName,
+            iop.jq_policy_no,
+            iop.sy_policy_no,
+            iop.jy_policy_no
         FROM
         FROM
             ins_ply_income ipi
             ins_ply_income ipi
         LEFT JOIN ins_orders io ON ipi.order_no = io.id
         LEFT JOIN ins_orders io ON ipi.order_no = io.id
         LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
         LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
         LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
         LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
         LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
         LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
-        ins_ply_income ipi
+        LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
         WHERE
         WHERE
         1=1
         1=1
         AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
         AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
@@ -895,7 +947,21 @@
 
 
     <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
     <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
         SELECT
         SELECT
-            ipii.*,
+            ipii.id,
+            ipii.company_id,
+            ipii.invoice_type,
+            CASE
+                WHEN ipii.invoice_party = '1' THEN
+                    '我方开票' ELSE '保司开票'
+            END as invoice_party,
+            ipii.overinflated_amount,
+            ipii.receivable_supervise_premium,
+            ipii.tax_point,
+            ipii.create_time,
+            ipii.create_by,
+            ipii.update_time,
+            ipii.update_by,
+            eic.name as company_name,
             sum( ipiis.actual_received_amount ) AS actual_received_amount,
             sum( ipiis.actual_received_amount ) AS actual_received_amount,
             CASE
             CASE
                 WHEN ipii.receivable_supervise_premium = SUM( ipiis.actual_received_amount ) THEN
                 WHEN ipii.receivable_supervise_premium = SUM( ipiis.actual_received_amount ) THEN
@@ -904,6 +970,7 @@
         FROM
         FROM
             ins_ply_income_invoice ipii
             ins_ply_income_invoice ipii
                 LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id
                 LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id
+                LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id
         WHERE
         WHERE
             1=1
             1=1
         <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
         <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
@@ -1118,4 +1185,23 @@
             ipi.company_name
             ipi.company_name
     </select>
     </select>
 
 
+<!--    <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">-->
+<!--        SELECT-->
+<!--            ipi.*,-->
+<!--            io.signing_time,-->
+<!--            io.company_name-->
+<!--        FROM-->
+<!--            ins_ply_income ipi-->
+<!--                LEFT JOIN ins_orders io ON ipi.order_no = io.id-->
+<!--                LEFT JOIN ins_ply_income_invoice_link ipiil on ipiil.income_id = ipi.id-->
+<!--        WHERE-->
+<!--            1 = 1-->
+<!--          AND ipi.supervise_settlement = 0-->
+<!--          AND ipi.other_settlement = 0-->
+<!--          AND ipi.jy_supervise_settlement = 0-->
+<!--          AND ipi.jy_other_settlement = 0-->
+<!--          AND ipiil.income_id IS NULL-->
+
+<!--    </select>-->
+
 </mapper>
 </mapper>