Преглед изворни кода

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260506' into dev_jzg_lipf_v20260506

# Conflicts:
#	tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
lipf пре 4 месеци
родитељ
комит
fbacd6b6af
17 измењених фајлова са 378 додато и 31 уклоњено
  1. 31 8
      commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditVo.java
  2. 18 2
      commons/src/main/java/com/jzg/commons/entity/vo/AmountAuditVo.java
  3. 11 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java
  4. 4 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java
  5. 7 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java
  6. 3 1
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/ExportBaseServiceImpl.java
  7. 58 5
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  8. 4 6
      tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml
  9. 2 1
      tenant/insurance/quotation-summary/src/main/resources/application-prod.yaml
  10. 2 1
      tenant/insurance/quotation-summary/src/main/resources/application-test.yaml
  11. 137 2
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml
  12. 10 2
      tenant/organization/src/main/java/com/jzg/organization/controller/AmountAuditingController.java
  13. 10 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysAmountAuditingMapper.java
  14. 7 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysAmountAuditingService.java
  15. 1 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  16. 24 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAmountAuditingServiceImpl.java
  17. 49 0
      tenant/organization/src/main/resources/mapper/SysAmountAuditingMapper.xml

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

@@ -1,98 +1,121 @@
 package com.jzg.commons.entity.orders.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 @Schema(description = "订单审核表VO")
 @Data
 public class FeeAuditVo extends BaseModel {
 
+    @ExcelProperty("订单号")
     @Schema(description = "订单号")
     private String orderNo;
 
+    @ExcelProperty("保险公司")
     @Schema(description = "保险公司")
     private String companyName;
 
+    @ExcelProperty("车牌号")
     @Schema(description = "车牌号")
     private String licenseNo;
 
+    @ExcelProperty("被保人姓名")
     @Schema(description = "被保人姓名")
     private String insurName;
 
+    @ExcelProperty("订单类型")
     @Schema(description = "订单类型  1 车险录入 2 待客录单 3 外部订单")
     private String orderType;
 
+    @ExcelProperty("业务员姓名")
     @Schema(description = "业务员姓名")
     private String name;
 
+    @ExcelProperty("业务员手机号")
     @Schema(description = "业务员手机号")
     private String mobile;
 
+    @ExcelProperty("业务员类型")
     @Schema(description = "业务员类型1.前线人员 2:后线人员 3:合伙人 4:工作室管理员 5:团队 6:个代 7:电销 8 渠道")
     private String attrType;
 
-    @Schema(description = "签单时间")
+    @ExcelProperty("签单时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "签单时间")
     private LocalDateTime signingTime;
 
-    @Schema(description = "报价时间")
+    @ExcelProperty("报价时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "报价时间")
     private LocalDateTime quotationTime;
 
+    @ExcelProperty("对接人")
     @Schema(description = "对接人")
     private String dockingPerson;
 
+    @ExcelProperty("出单协议")
     @Schema(description = "出单协议")
     private String agreementName;
 
+    @ExcelProperty("险种")
     @Schema(description = "险种")
     private String productName;
 
+    @ExcelProperty("出单机构")
     @Schema(description = "出单机构")
     private String deptName;
 
-    @Schema(description = "录单时间")
+    @ExcelProperty("录单时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "录单时间")
     private LocalDateTime createTime;
 
+    @ExcelProperty("录单人")
     @Schema(description = "录单人")
     private String createBy;
 
-    @Schema(description = "支付时间")
+    @ExcelProperty("支付时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "支付时间")
     private LocalDateTime payTime;
 
+    @ExcelProperty("交强险保费")
     @Schema(description = "交强险保费")
     private BigDecimal jqPremium;
 
+    @ExcelProperty("商业险保费")
     @Schema(description = "商业险保费")
     private BigDecimal syPremium;
 
+    @ExcelProperty("驾意险保费")
     @Schema(description = "驾意险保费")
     private BigDecimal jyPremium;
 
+    @ExcelProperty("总保费")
     @Schema(description = "总保费")
     private BigDecimal sumPremium;
 
-    @Schema(description = "审核时间")
+    @ExcelProperty("审核时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "审核时间")
     private LocalDateTime auditTime;
 
+    @ExcelProperty("审核人")
     @Schema(description = "审核人")
     private String auditUser;
 
+    @ExcelProperty("驳回原因")
     @Schema(description = "驳回原因")
     private String refuse;
 
+    @ExcelProperty("权益金额")
     @Schema(description = "权益金额")
     private BigDecimal equityAmount;
 
-
 }

+ 18 - 2
commons/src/main/java/com/jzg/commons/entity/vo/AmountAuditVo.java

@@ -1,5 +1,6 @@
 package com.jzg.commons.entity.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jzg.commons.core.base.BaseModel;
@@ -14,50 +15,65 @@ import java.time.LocalDateTime;
 @Data
 public class AmountAuditVo  extends BaseModel {
 
+    @ExcelProperty("主键")
     @Schema(description = "主键")
     private String id;
 
+    @ExcelProperty("用户信息ID")
     @Schema(description = "sys_user_jzg_info的主键")
     private String userJzgInfoId;
 
+    @ExcelProperty("业务员姓名")
     @Schema(description = "业务员姓名")
     private String name;
 
+    @ExcelProperty("业务员手机号")
     @Schema(description = "业务员手机号")
     private String mobile;
 
+    @ExcelProperty("管理人姓名")
     @Schema(description = "管理人姓名")
     private String managerName;
 
+    @ExcelProperty("管理人手机号")
     @Schema(description = "管理人手机号")
     private String managerMobile;
 
+    @ExcelProperty("业务员类型")
     @Schema(description = "业务员类型1.前线人员 2:后线人员 3:合伙人 4:工作室管理员 5:团队 6:个代 7:电销 8 渠道")
     private String attrType;
 
-    @Schema(description = "提现时间")
+    @ExcelProperty("提现时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "提现时间")
     private LocalDateTime createTime;
 
-    @Schema(description = "支付时间")
+    @ExcelProperty("支付时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(description = "支付时间")
     private LocalDateTime paymentTime;
 
+    @ExcelProperty("提现金额")
     @Schema(description = "提现金额")
     private BigDecimal amount;
 
+    @ExcelProperty("账户余额")
     @Schema(description = "账户余额")
     private BigDecimal balanceAmount;
 
+    @ExcelProperty("账户名称")
     @Schema(description = "账户名称")
     private String accountName;
 
+    @ExcelProperty("内部银行卡号")
     @Schema(description = "内部银行卡号")
     private String bankCardNum;
 
+    @ExcelProperty("内部银行卡开户行名称")
     @Schema(description = "内部银行卡开户行名称")
     private String bankName;
 
+    @ExcelProperty("内部银行卡开户行号")
     @Schema(description = "内部银行卡开户行号")
     private String bankNum;
 

+ 11 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -42,6 +42,17 @@ public class InsFeeAuditController {
         return HttpResult.ok(result);
     }
 
+    /**
+     * 订单列表分页
+     * @return
+     */
+    @PostMapping("/exportAuditList")
+    @Operation(summary = "导出订单审核列表")
+    public HttpResult<String> exportAuditList(@RequestBody FeeAuditParam param){
+        param.setSystemCode(baseController.getUserSystemCode());
+        return HttpResult.ok(insFeeAuditService.exportAuditList(param));
+    }
+
     /**
      * 订单审核详情
      * @return

+ 4 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java

@@ -7,6 +7,8 @@ import com.jzg.commons.entity.orders.po.InsFeeAudit;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【ins_fee_audit(订单审核表)】的数据库操作Mapper
@@ -16,6 +18,8 @@ import org.apache.ibatis.annotations.Param;
 public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
 
     Page<FeeAuditVo> queryPage(Page page, @Param("param") FeeAuditParam param);
+
+    List<FeeAuditVo> queryList(Page page, @Param("param") FeeAuditParam param);
 }
 
 

+ 7 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java

@@ -91,4 +91,11 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
      * @param param
      */
     void saveCostInfo(PtlAgreementCostRatioVo param);
+
+    /**
+     * 导出订单审核列表
+     * @param param
+     * @return
+     */
+    String exportAuditList(FeeAuditParam param);
 }

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

@@ -32,7 +32,7 @@ public class ExportBaseServiceImpl {
      * @author hxl
      * @date 2025/9/24 10:28
      */
-    public <T> void upLoadFile(ReportSearchCommonVo reportSearchCommonVo, Class<T> clazz, List<T> list, String upLoadName) {
+    public <T> String upLoadFile(Class<T> clazz, List<T> list, String upLoadName) {
         //打印导入数据的时间
         long startTime = System.currentTimeMillis();
         long endTime = System.currentTimeMillis();
@@ -42,6 +42,7 @@ public class ExportBaseServiceImpl {
             long duration = endTime - startTime;
             double minutes = (double) duration / (1000 * 60);
             log.info("方法执行时间[{}]分钟",minutes);
+            return fileName;
         }catch (Exception e){
             log.error("upLoadFile方法执行异常",e);
             endTime = System.currentTimeMillis();
@@ -49,6 +50,7 @@ public class ExportBaseServiceImpl {
             double minutes = (double) duration / (1000 * 60);
             log.info("方法执行异常,耗时[{}]分钟",minutes);
         }
+        return "";
     }
 
 

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

@@ -23,19 +23,16 @@ import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.rights.po.InsOrderRights;
 import com.jzg.commons.entity.rights.po.InsOrderRightsPackage;
-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.util.AssertionUtils;
 import com.jzg.commons.util.PDFUtil;
 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.PartnerClient;
 import com.jzg.quotation.commons.client.PlatformClient;
 import com.jzg.quotation.summary.client.LocalLivingClient;
-import com.jzg.quotation.commons.client.PartnerClient;
 import com.jzg.quotation.summary.entity.Result;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantReceiverDTO;
 import com.jzg.quotation.summary.entity.dto.ChannelRightsApiGrantRecordDTO;
@@ -57,6 +54,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.File;
 import java.math.BigDecimal;
+import java.time.Instant;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -114,6 +112,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private InsOrderRightsPackageMapper insOrderRightsPackageMapper;
 
+    @Autowired
+    private ExportBaseServiceImpl exportBaseService;
+
     private static final String ORDER_LOCK_PREFIX = "orderLock:";
 
     private final LocalLivingClient localLivingClient;
@@ -157,6 +158,41 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         return page;
     }
 
+    public List<FeeAuditVo> queryList(FeeAuditParam param) {
+        log.info("订单审核-任务中心,查询待审核任务。 param=[{}]", JSONUtil.toJsonStr(param));
+        // 获取选中的保险公司条件
+        String companyId = param.getCompanyId();
+        if(StringUtils.isNotBlank(companyId)){
+            HttpResult<List<String>> result = platformClient.getChildCompanyId(companyId);
+            AssertionUtils.isFail(Objects.isNull(result.getData()),"获取保险公司下级失败!");
+            List<String> companyIdList = result.getData();
+            param.setCompanyIdList(companyIdList);
+        }
+        List<FeeAuditVo> feeAuditVoList = baseMapper.queryList(param.getPage(), param);
+        // 循环每条数据,查询 ins_fee_orders 并计算权益金额
+        for (FeeAuditVo feeAuditVo : feeAuditVoList) {
+            // 查询订单的 ins_fee_orders 数据
+            InsFeeOrders insFeeOrders = feeOrdersService.getById(feeAuditVo.getOrderNo());
+            if (insFeeOrders != null) {
+                // 权益金额 = (交强出口费用 + 商业出口费用 + 驾意出口费用) - (交强出口留点费用 + 商业出口留点费用 + 驾意出口留点费用)
+                BigDecimal exportTotal = Optional.ofNullable(insFeeOrders.getJqExportPremium()).orElse(BigDecimal.ZERO)
+                        .add(Optional.ofNullable(insFeeOrders.getSyExportPremium()).orElse(BigDecimal.ZERO))
+                        .add(Optional.ofNullable(insFeeOrders.getJyExportPremium()).orElse(BigDecimal.ZERO));
+
+                BigDecimal exportKeepPointTotal = Optional.ofNullable(insFeeOrders.getJqExportKeepPointPremium()).orElse(BigDecimal.ZERO)
+                        .add(Optional.ofNullable(insFeeOrders.getSyExportKeepPointPremium()).orElse(BigDecimal.ZERO))
+                        .add(Optional.ofNullable(insFeeOrders.getJyExportKeepPointPremium()).orElse(BigDecimal.ZERO));
+
+                BigDecimal equityAmount = exportTotal.subtract(exportKeepPointTotal);
+                feeAuditVo.setEquityAmount(equityAmount);
+            }else{
+                feeAuditVo.setEquityAmount(BigDecimal.ZERO);
+            }
+        }
+
+        return feeAuditVoList;
+    }
+
     @Override
     public void feeAuditAdd(InsOrders orders) {
         InsFeeAudit insFeeAudit = new InsFeeAudit();
@@ -652,6 +688,23 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         recordService.save(record);
     }
 
+    /**
+     * 导出订单审核列表
+     * @param param
+     * @return
+     */
+    @Override
+    public String exportAuditList(FeeAuditParam param) {
+        List<FeeAuditVo> result = queryList(param);
+
+        // 调用动态导出
+        return exportBaseService.upLoadFile(
+                FeeAuditVo.class,
+                result,
+                "订单审核-任务中心-导出-" + Instant.now()
+        );
+    }
+
 
     private void getAuditCost(List<AuditCostInfoVo> auditCostInfoVos,
                               List<PtlAgreementCostTypeVo> costTypeVos,

+ 4 - 6
tenant/insurance/quotation-summary/src/main/resources/application-dev.yaml

@@ -89,11 +89,8 @@ yangguang:
 #诚泰财险 生产api
 chengtai:
   api:
-    ctPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvuUnoPTFin84nDdpNZFDiGZgUKn6d9fbp6F4/fqrb6pFoJX/wLMr0IsheP0ZnVCPpLGKLjflPNHJo/P9WRRTSM67D8fRD8GKoq+7CtSJkdIticASpN/U8AgJiNV6xdReJcMkaAWJ1ZbOQ+nYLg9OE0qQ6cuXqhy/wVrqx72CrvwIDAQAB
-    publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyVlpqmibguria884GdAYEuqCV4aQRl2N21+7l8Vxocoyz+M8KYyXqmlLKqApNL/U5pUVTjS6vpC6ojS+wvNbawijeMsm8r2NOlTHBnQ5vN0azjjPPtSrxgHL8/EYBa4lmBcexdmcUrUyWjAIYqfO8dlY+RuXvbiw7fBHZ7xpAvQIDAQAB
-    privateKey: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJWWmqaJuC6uJrzzgZ0BgS6oJXhpBGXY3bX7uXxXGhyjLP4zwpjJeqaUsqoCk0v9TmlRVONLq+kLqiNL7C81trCKN4yybyvY06VMcGdDm83RrOOM8+1KvGAcvz8RgFriWYFx7F2ZxStTJaMAhip87x2Vj5G5e9uLDt8EdnvGkC9AgMBAAECgYEAsEOHdEvOV1pWMdj9bgVpGW14YQu3RSfTSFheqGkpg5aMmSk3QbYDeOB1KhZysB3Ri9tdLRqi5TkqYK/DTjUnSUMs0iMhx0XaY2z3w16AMpvuJ0FZ4S2h8oAFfOWe4F6bpUYU8qmXANAaXcMm6HjU8k1QuTbjlSOeLujl8W7zk8ECQQDlHbUQ911kWmsSo8NE4S1+dq/6T+yIGCJlXzlNh/z6giMpjp8Dzm3fxDHLeZa+DCrhpT1qe6O3oGwx3HeR/85NAkEAx0NUy6pX5WolV+YAoLNHAmcCP26wQTB7LZ7mXbxww4yNNH9CWHE9PaBuV4Ws4NxSAnRDxrgArkz5+wgqnXzUMQJAHr16orkdra43+XtBYsd3jCUufT4l9SiPzNwW2yEovw+g2h2JlkAnG8O+DpfUstD9G+NItzW5hJSgj5wN6ufQbQJACEtdND0a+4m3lDkWvZm40vjGty08WPpTpkp+/FfjucAYAJ9re5L7IZ2T+kCuOY3yO/fq+lKedKLvpOtqGrQfgQJBAJ1wMccz+1ez8qpyTWbzj2h0O+GV+YDHqJ9SwRWcSacZOeAyO7UMgIZEwoYfs4nhye7DZH9e4BfkwBmFHJKwJNs=
-    partnerCode: JZG_TYTQ_SX
-
+    codeKey: TYTQBX
+    url: https://b2cuat.champion-ic.com/echannel/
 #大家财险api
 dajia:
   api:
@@ -236,7 +233,8 @@ zijin:
 #    # 对接三方渠道验车链接接口
 #    sendCheckCarLink: http://open.zking.com/api/v1/open/open-aggregate/auth/wanJiaYun/sendCheckCarLink
 zhongAn:
-  id: "975113"
+  id: "1402039"
+  productId: "10676"
 
 
 feign:

+ 2 - 1
tenant/insurance/quotation-summary/src/main/resources/application-prod.yaml

@@ -234,7 +234,8 @@ zijin:
 #    # 对接三方渠道验车链接接口
 #    sendCheckCarLink: http://open.zking.com/api/v1/open/open-aggregate/auth/wanJiaYun/sendCheckCarLink
 zhongAn:
-  id: "975113"
+  id: "1402039"
+  productId: "10676"
 
 
 feign:

+ 2 - 1
tenant/insurance/quotation-summary/src/main/resources/application-test.yaml

@@ -253,7 +253,8 @@ zijin:
 
 
 zhongAn:
-  id: "975113"
+  id: "1402039"
+  productId: "10676"
 
 
 

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

@@ -33,13 +33,148 @@
             iocui.name as insurName,
             CASE io.entry_status
             WHEN 1 THEN '车险出单'
-            WHEN 2 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,
+            CASE suji.type_attr
+                WHEN 1 THEN '前线人员'
+                WHEN 2 THEN '后线人员'
+                WHEN 3 THEN '合伙人'
+                WHEN 4 THEN '工作室管理员'
+                WHEN 5 THEN '团队'
+                WHEN 6 THEN '个代'
+                WHEN 7 THEN '渠道'
+                WHEN 8 THEN '电销'
+                ELSE ''
+            END AS attrType,
+               io.signing_time as signingTime,
+               io.create_time as quotationTime, sua.username as dockingPerson,
+               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.sum_premium as sumPremium,sd.name as deptName,ifa.create_time as createTime,
+               ifa.create_by as createBy,io.pay_time as payTime, ifa.audit_time as auditTime,
+               ifa.audit_user as auditUser, ifa.refuse
+        FROM ins_fee_audit ifa
+        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_user_info as iocui on io.id = iocui.order_no and iocui.policy_person_type = 3
+        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 suji.system_code = #{param.systemCode}
+        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 ptl_agreement pa on io.agreement_id = pa.id
+        LEFT JOIN sys_user sua on sua.id = pa.custodian_id
+        LEFT JOIN ins_orders_costs ioc on ioc.order_no = io.id
+        LEFT JOIN ins_orders_external_policy ioep on ioep.order_no = io.id
+        <where>
+            <choose>
+                <when test="param.receiveUser != null and param.receiveUser != ''">
+                    and ifa.receive_user = #{param.receiveUser}
+                </when>
+                <otherwise>
+                    and ifa.receive_user is NULL
+                </otherwise>
+            </choose>
+            <if test="param.auditType != null">
+                and ifa.audit_type = #{param.auditType}
+            </if>
+            <if test="param.isProblem != null">
+                and ifa.is_problem = #{param.isProblem}
+            </if>
+            <if test="param.licenseNo != null and param.licenseNo != ''">
+                and ioci.license_no like concat('%',#{param.licenseNo},'%')
+            </if>
+            <if test="param.attrType != null ">
+                and suji.type_attr = #{param.attrType}
+            </if>
+            <if test="param.salesman != null and param.salesman != ''">
+                and (su.username = #{param.salesman} or su.mobile = #{param.salesman})
+            </if>
+            <if test="param.orderStatus != null ">
+                and io.order_status = #{param.orderStatus}
+            </if>
+            <if test="param.orderType != null and param.orderType != ''">
+                and io.entry_status = #{param.orderType}
+            </if>
+            <if test="param.companyIdList != null and param.companyIdList.size() > 0" >
+                AND io.company_id in
+                <foreach collection="param.companyIdList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="param.deptId != null and param.deptId != ''">
+                and suji.dept_id = #{param.deptId}
+            </if>
+            <if test="param.insurName != null and param.insurName != ''">
+                and iocui.name = #{param.insurName}
+            </if>
+            <if test="param.quotationTimeStart != null and param.quotationTimeEnd != null">
+                and DATE_FORMAT(io.create_time, '%Y-%m-%d') between #{param.quotationTimeStart} AND #{param.quotationTimeEnd}
+            </if>
+            <if test="param.signingTimeStart != null and param.signingTimeEnd != null">
+                and DATE_FORMAT(io.signing_time, '%Y-%m-%d') between #{param.signingTimeStart} AND #{param.signingTimeEnd}
+            </if>
+            <if test="param.orderNo != null and param.orderNo != ''">
+                and ifa.order_no = #{param.orderNo}
+            </if>
+            <if test="param.agreementId != null and param.agreementId != ''">
+                and pa.id = #{param.agreementId}
+            </if>
+            <if test="param.productName != null and param.productName != ''">
+                and io.product_name = #{param.productName}
+            </if>
+            <if test="param.payTimeStart != null and param.payTimeEnd != null">
+                and DATE_FORMAT(io.pay_time, '%Y-%m-%d') between #{param.payTimeStart} AND #{param.payTimeEnd}
+            </if>
+            <if test="param.ciPolicyNumber != null and param.ciPolicyNumber != ''">
+                and ioep.jq_policy = #{param.ciPolicyNumber}
+            </if>
+            <if test="param.biPolicyNumber != null and param.biPolicyNumber != ''">
+                and ioep.sy_policy = #{param.biPolicyNumber}
+            </if>
+            <if test="param.niPolicyNumber != null and param.niPolicyNumber != ''">
+                and ioep.no_policy = #{param.niPolicyNumber}
+            </if>
+            <if test="param.auditTimeStart != null and param.auditTimeEnd != null">
+                and DATE_FORMAT(ifa.audit_time, '%Y-%m-%d') between #{param.auditTimeStart} AND #{param.auditTimeEnd}
+            </if>
+            <if test="param.auditUser != null and param.auditUser != ''">
+                and ifa.audit_user = #{param.auditUser}
+            </if>
+            <if test="param.auditStatus != null and param.auditStatus != ''">
+                and ifa.audit_status = #{param.auditStatus}
+            </if>
+        </where>
+        ORDER BY io.create_time desc
+    </select>
+    <select id="queryList" 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,
+                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,
+                CASE suji.type_attr
+                    WHEN 1 THEN '前线人员'
+                    WHEN 2 THEN '后线人员'
+                    WHEN 3 THEN '合伙人'
+                    WHEN 4 THEN '工作室管理员'
+                    WHEN 5 THEN '团队'
+                    WHEN 6 THEN '个代'
+                    WHEN 7 THEN '渠道'
+                    WHEN 8 THEN '电销'
+                    ELSE ''
+                END AS attrType,
                io.signing_time as signingTime,
                io.create_time as quotationTime, sua.username as dockingPerson,
                pa.agreement_abbreviation as agreementName,io.product_name as productName,

+ 10 - 2
tenant/organization/src/main/java/com/jzg/organization/controller/AmountAuditingController.java

@@ -3,8 +3,10 @@ package com.jzg.organization.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
-import com.jzg.commons.entity.dto.*;
-import com.jzg.commons.entity.orders.vo.FeeAuditVo;
+import com.jzg.commons.entity.dto.AmountAuditEditParam;
+import com.jzg.commons.entity.dto.AmountAuditParam;
+import com.jzg.commons.entity.dto.AmountAuditRejectParam;
+import com.jzg.commons.entity.dto.ApplyWithdrawParam;
 import com.jzg.commons.entity.vo.AmountAuditVo;
 import com.jzg.organization.service.SysAmountAuditingService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -31,6 +33,12 @@ public class AmountAuditingController extends BaseController {
         return HttpResult.ok(result);
     }
 
+    @PostMapping("/exportAuditList")
+    @Operation(summary = "导出申请列表")
+    public HttpResult<String> exportAuditList(@RequestBody AmountAuditParam param) {
+        return HttpResult.ok(sysAmountAuditingService.exportAuditList(param));
+    }
+
     /**
      * 判断领取按钮是否锁定
      * @return

+ 10 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysAmountAuditingMapper.java

@@ -7,6 +7,8 @@ import com.jzg.commons.entity.po.SysAmountAuditing;
 import com.jzg.commons.entity.vo.AmountAuditVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author dongxin
 * @description 针对表【sys_amount_auditing(提现申请表)】的数据库操作Mapper
@@ -23,6 +25,14 @@ public interface SysAmountAuditingMapper extends BaseMapper<SysAmountAuditing> {
      */
     Page<AmountAuditVo> queryPage(Page page,@Param("param") AmountAuditParam param);
 
+    /**
+     * 提现申请列表分页
+     * @param page
+     * @param param
+     * @return
+     */
+    List<AmountAuditVo> queryList(Page page, @Param("param") AmountAuditParam param);
+
     /**
      * 我的付款列表分页
      * @param page

+ 7 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysAmountAuditingService.java

@@ -68,4 +68,11 @@ public interface SysAmountAuditingService extends IService<SysAmountAuditing> {
      * @return
      */
     Boolean applyWithdraw(ApplyWithdrawParam applyWithdrawParam);
+
+    /**
+     * 导出申请列表
+     * @param param
+     * @return
+     */
+    String exportAuditList(AmountAuditParam param);
 }

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

@@ -536,7 +536,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
     @Override
     public boolean updateIncomeSettlementStatus(String invoiceType, List<String> invoiceIds) {
         log.info("更新结算状态: invoiceType=[{}],invoiceIds=[{}]",  invoiceType, JSONUtil.toJsonStr(invoiceIds));
-        if(CollUtil.isEmpty(invoiceIds)) {
+        if (CollectionUtils.isEmpty(invoiceIds)) {
             return false;
         }
         long result = 0;

+ 24 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysAmountAuditingServiceImpl.java

@@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.base.StateResult;
-import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
-import com.jzg.commons.entity.po.*;
+import com.jzg.commons.entity.po.SysAmountAuditing;
+import com.jzg.commons.entity.po.SysUserAccount;
+import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.vo.AmountAuditVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.Instant;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Objects;
@@ -59,6 +61,9 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
     @Autowired
     private SysUserJzgInfoService sysUserJzgInfoService;
 
+    @Autowired
+    private ExportBaseServiceImpl exportBaseService;
+
     private static final String AMOUNT_LOCK_PREFIX = "amountLock:";
 
     @Override
@@ -246,6 +251,23 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
         baseMapper.insert(sysAmountAuditing);
         return true;
     }
+
+    /**
+     * 导出申请列表
+     * @param param
+     * @return
+     */
+    @Override
+    public String exportAuditList(AmountAuditParam param) {
+        List<AmountAuditVo> amountAuditVos = baseMapper.queryList(param.getPage(), param);
+
+        // 调用动态导出
+        return exportBaseService.upLoadFile(
+                AmountAuditVo.class,
+                amountAuditVos,
+                "应付账款-提现申请-导出-" + Instant.now()
+        );
+    }
 }
 
 

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

@@ -90,6 +90,55 @@
         </where>
         ORDER BY saa.create_time desc
     </select>
+    <select id="queryList" resultType="com.jzg.commons.entity.vo.AmountAuditVo">
+        SELECT
+        saa.id,suji.name as name, su.mobile as mobile,suji.type_attr as attrType,
+        sujim.name as managerName,sum.mobile as managerMobile,saa.create_time as createTime,
+        saa.amount, saa.balance_amount as balanceAmount,saa.account_name AS accountName,
+        saa.bank_card_num as bankCardNum, saa.bank_name as bankName, saa.bank_num as bankNum, suji.id as userJzgInfoId,
+        saa.payment_time as paymentTime
+        FROM sys_amount_auditing saa
+        LEFT JOIN sys_user_jzg_info suji on saa.user_id = suji.user_id
+        LEFT JOIN sys_user su on su.id = saa.user_id
+        LEFT JOIN sys_user_jzg_info sujim on saa.manager_user_id = sujim.user_id
+        LEFT JOIN sys_user sum on sum.id = saa.manager_user_id
+        LEFT JOIN sys_user_jzg_info sujia on saa.auditing_user_id = sujia.user_id
+        LEFT JOIN sys_user sua on sua.id = saa.auditing_user_id
+        <where>
+            <if test="param.salesman != null and param.salesman != ''">
+                and (su.username = #{param.salesman} or su.mobile = #{param.salesman})
+            </if>
+            <if test="param.attrType != null ">
+                and suji.type_attr = #{param.attrType}
+            </if>
+
+            <if test="param.createTimeStart != null and param.createTimeEnd != null">
+                and DATE_FORMAT(saa.create_time, '%Y-%m-%d') between #{param.createTimeStart} AND #{param.createTimeEnd}
+            </if>
+            <if test="param.auditTimeStart != null and param.auditTimeEnd != null">
+                and DATE_FORMAT(saa.auditing_time, '%Y-%m-%d') between #{param.auditTimeStart} AND #{param.auditTimeEnd}
+            </if>
+            <if test="param.auditingUser != null and param.auditingUser != ''">
+                and (sua.username = #{param.auditingUser} or sua.mobile = #{param.auditingUser})
+            </if>
+            <if test="param.userJzgInfoId != null and param.userJzgInfoId != ''">
+                and suji.id = #{param.userJzgInfoId}
+            </if>
+
+            <if test="param.auditingStatus != null ">
+                and saa.auditing_status = #{param.auditingStatus}
+            </if>
+            <choose>
+                <when test="param.receiveUser != null and param.receiveUser != ''">
+                    and saa.receive_user = #{param.receiveUser}
+                </when>
+                <otherwise>
+                    and saa.receive_user is null
+                </otherwise>
+            </choose>
+        </where>
+        ORDER BY saa.create_time desc
+    </select>
 
 
     <select id="queryPaymentPage" resultType="com.jzg.commons.entity.vo.AmountAuditVo">