Bläddra i källkod

应收应付导入 功能修改

785834757 2 år sedan
förälder
incheckning
e709cc610a

+ 8 - 3
src/main/java/com/ydtech/modules/inv/controller/InvReceivableController.java

@@ -214,10 +214,15 @@ public class InvReceivableController extends BaseController {
     @ApiOperation("数据匹配")
     @GetMapping("dataMatching")
     public HttpResult dataMatching(){
-        int data = invReceivableService.dataMatching();
-        if(data > 0)
+        List<String> licensenos = invReceivableService.dataMatching();
+        if(licensenos.size() > 0)
         {
-            return HttpResult.ok("有"+data+"条数据与应收表数据无法匹配",true);
+            String msg = "";
+            for(int i=0;i<licensenos.size();i++){
+                msg += licensenos.get(i) + ",";
+            }
+            msg = msg.substring(0,msg.length()-1);
+            return HttpResult.ok("有"+licensenos.size()+"条数据与应收表数据无法匹配,其中包括:" + msg,true);
         }
         return HttpResult.ok("",false);
     }

+ 1 - 0
src/main/java/com/ydtech/modules/inv/dao/InvReceivableMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.inv.model.po.InvChannelAccount;
+import com.ydtech.modules.inv.model.po.InvSource;
 import com.ydtech.modules.inv.model.vo.*;
 import org.apache.ibatis.annotations.Param;
 

+ 12 - 1
src/main/java/com/ydtech/modules/inv/dao/InvSourceMapper.java

@@ -1,7 +1,13 @@
 package com.ydtech.modules.inv.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.inv.model.po.InvSource;
+import com.ydtech.modules.inv.model.vo.InvSourceQueryVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
 * @author Administrator
@@ -12,7 +18,12 @@ import com.ydtech.modules.inv.model.po.InvSource;
 public interface InvSourceMapper extends BaseMapper<InvSource> {
     Integer syncStatus();
 
-    Integer dataMatching();
+    List<String> dataMatching();
+
+    Page<InvSource> getRecivablePage(Page page,@Param("param") InvSourceQueryVo invSourceQueryVo);
+
+
+    List<InvSource> getRecivableList(@Param("param") InvSourceQueryVo invSourceQueryVo);
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/inv/model/vo/InvSourceQueryVo.java

@@ -150,6 +150,9 @@ public class InvSourceQueryVo extends PageRequest implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd")
     private String signingTime;
 
+    private String signingTimeStartTime;
+    private String signingTimeEndTime;
+
     /**
      * 结算日期
      */
@@ -157,6 +160,8 @@ public class InvSourceQueryVo extends PageRequest implements Serializable {
     @ApiModelProperty("结算日期")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private String clearingTime;
+    private String clearingTimeStartTime;
+    private String clearingTimeEndTime;
 
     /**
      * 车船税

+ 1 - 1
src/main/java/com/ydtech/modules/inv/service/InvReceivableService.java

@@ -58,5 +58,5 @@ public interface InvReceivableService {
 
     Boolean addReceivable(InvSource invSource);
 
-    int dataMatching();
+    List<String> dataMatching();
 }

+ 30 - 100
src/main/java/com/ydtech/modules/inv/service/impl/InvReceivableServiceImpl.java

@@ -359,63 +359,27 @@ public class InvReceivableServiceImpl implements InvReceivableService {
         pageRequest.setPageNum(invSourceQueryVo.getPageNum());
         pageRequest.setPageSize(invSourceQueryVo.getPageSize());
         Page page = PageRequest.buildPageRequest(pageRequest);
-        LambdaQueryWrapper<InvSource> queryWrapper = new LambdaQueryWrapper<>();
-        if(invSourceQueryVo.getLicenseno() != null && !"".equals(invSourceQueryVo.getLicenseno())){
-            queryWrapper.eq(InvSource::getLicenseno,invSourceQueryVo.getLicenseno());
-        }
-        if(invSourceQueryVo.getJqPolicyId() != null && !"".equals(invSourceQueryVo.getJqPolicyId())){
-            queryWrapper.eq(InvSource::getJqPolicyId,invSourceQueryVo.getJqPolicyId());
-        }
-        if(invSourceQueryVo.getSyPolicyId() != null && !"".equals(invSourceQueryVo.getSyPolicyId())){
-            queryWrapper.eq(InvSource::getSyPolicyId,invSourceQueryVo.getSyPolicyId());
-        }
-        if(invSourceQueryVo.getNonCarPolicyId() != null && !"".equals(invSourceQueryVo.getNonCarPolicyId())){
-            queryWrapper.eq(InvSource::getNonCarPolicyId,invSourceQueryVo.getNonCarPolicyId());
-        }
-        if(invSourceQueryVo.getInsuranceId() != null && !"".equals(invSourceQueryVo.getInsuranceId())){
-            queryWrapper.in(InvSource::getInsuranceId,invSourceQueryVo.getInsuranceId());
-        }
-        if(invSourceQueryVo.getRisk() != null && !"".equals(invSourceQueryVo.getRisk())){
-            queryWrapper.eq(InvSource::getRisk,invSourceQueryVo.getRisk());
-        }
-        if(invSourceQueryVo.getInsuredName() != null && !"".equals(invSourceQueryVo.getInsuredName())){
-            queryWrapper.like(InvSource::getInsuredName,invSourceQueryVo.getInsuredName());
-        }
-        if(invSourceQueryVo.getClearingTime() != null && !"".equals(invSourceQueryVo.getClearingTime())){
-            String[] split = invSourceQueryVo.getClearingTime().split(",");
-            queryWrapper.between(InvSource::getClearingTime,split[0],split[1]);
-        }
-        if(invSourceQueryVo.getSigningTime() != null && !"".equals(invSourceQueryVo.getSigningTime())){
-            String[] split = invSourceQueryVo.getSigningTime().split(",");
-            queryWrapper.between(InvSource::getSigningTime,split[0],split[1]);
-        }
-        if(invSourceQueryVo.getInsuranceDept() != null && !"".equals(invSourceQueryVo.getInsuranceDept())){
-            queryWrapper.eq(InvSource::getInsuranceDept,invSourceQueryVo.getInsuranceDept());
-        }
-        if(invSourceQueryVo.getClearingState() != null && !"".equals(invSourceQueryVo.getClearingState()))
+        if(invSourceQueryVo.getSigningTime() != null && !"".equals(invSourceQueryVo.getSigningTime()))
         {
-            queryWrapper.eq(InvSource::getClearingState,invSourceQueryVo.getClearingState());
+            String[] split = invSourceQueryVo.getSigningTime().split(",");
+            invSourceQueryVo.setSigningTimeStartTime(split[0]);
+            invSourceQueryVo.setSigningTimeEndTime(split[1]);
         }
-        if(invSourceQueryVo.getInsuranceClearingState() != null && !"".equals(invSourceQueryVo.getInsuranceClearingState()))
+        if(invSourceQueryVo.getClearingTime() != null && !"".equals(invSourceQueryVo.getClearingTime()))
         {
-            queryWrapper.eq(InvSource::getInsuranceClearingState,invSourceQueryVo.getInsuranceClearingState());
+            String[] split1 = invSourceQueryVo.getClearingTime().split(",");
+            invSourceQueryVo.setClearingTimeStartTime(split1[0]);
+            invSourceQueryVo.setClearingTimeEndTime(split1[1]);
         }
-        Page pageData = invSourceMapper.selectPage(page, queryWrapper);
+
+
+        Page<InvSource> pageData = invSourceMapper.getRecivablePage(page, invSourceQueryVo);
         List<InvSource> records = pageData.getRecords();
         records.forEach(x->{
-            if("0".equals(x.getClearingState())){
-                x.setClearingState("未结算");
-            }else if("1".equals(x.getClearingState()))
-            {
-                x.setClearingState("已结算");
-            }
-
-            if("0".equals(x.getInsuranceClearingState())){
-                x.setInsuranceClearingState("未结算");
-            }else if("1".equals(x.getInsuranceClearingState()))
-            {
-                x.setInsuranceClearingState("已结算");
-            }
+            x.setClearingState("0".equals(x.getClearingState()) ? "未结算" : "1".equals(x.getClearingState()) ? "已结算" :
+                    "2".equals(x.getClearingState()) ? "孤儿单" : x.getClearingState());
+            x.setInsuranceClearingState("0".equals(x.getInsuranceClearingState()) ? "未结算" :
+                    "1".equals(x.getInsuranceClearingState()) ? "已结算" : x.getInsuranceClearingState());
         });
         pageData.setRecords(records);
         return pageData;
@@ -423,54 +387,20 @@ public class InvReceivableServiceImpl implements InvReceivableService {
 
     @Override
     public List<InvSource> getRecivableList(InvSourceQueryVo invSourceQueryVo) {
-        LambdaQueryWrapper<InvSource> queryWrapper = new LambdaQueryWrapper<>();
-        if(invSourceQueryVo.getLicenseno() != null && !"".equals(invSourceQueryVo.getLicenseno())){
-            queryWrapper.eq(InvSource::getLicenseno,invSourceQueryVo.getLicenseno());
-        }
-        if(invSourceQueryVo.getJqPolicyId() != null && !"".equals(invSourceQueryVo.getJqPolicyId())){
-            queryWrapper.eq(InvSource::getJqPolicyId,invSourceQueryVo.getJqPolicyId());
-        }
-        if(invSourceQueryVo.getSyPolicyId() != null && !"".equals(invSourceQueryVo.getSyPolicyId())){
-            queryWrapper.eq(InvSource::getSyPolicyId,invSourceQueryVo.getSyPolicyId());
-        }
-        if(invSourceQueryVo.getNonCarPolicyId() != null && !"".equals(invSourceQueryVo.getNonCarPolicyId())){
-            queryWrapper.eq(InvSource::getNonCarPolicyId,invSourceQueryVo.getNonCarPolicyId());
-        }
-        if(invSourceQueryVo.getInsuranceId() != null && !"".equals(invSourceQueryVo.getInsuranceId())){
-            queryWrapper.in(InvSource::getInsuranceId,invSourceQueryVo.getInsuranceId());
-        }
-        if(invSourceQueryVo.getRisk() != null && !"".equals(invSourceQueryVo.getRisk())){
-            queryWrapper.eq(InvSource::getRisk,invSourceQueryVo.getRisk());
-        }
-        if(invSourceQueryVo.getInsuredName() != null && !"".equals(invSourceQueryVo.getInsuredName())){
-            queryWrapper.like(InvSource::getInsuredName,invSourceQueryVo.getInsuredName());
-        }
-        if(invSourceQueryVo.getClearingTime() != null && !"".equals(invSourceQueryVo.getClearingTime())){
-            String[] split = invSourceQueryVo.getClearingTime().split(",");
-            queryWrapper.between(InvSource::getClearingTime,split[0],split[1]);
-        }
-        if(invSourceQueryVo.getInsuranceDept() != null && !"".equals(invSourceQueryVo.getInsuranceDept())){
-            queryWrapper.eq(InvSource::getInsuranceDept,invSourceQueryVo.getInsuranceDept());
-        }
-        if(invSourceQueryVo.getSigningTime() != null && !"".equals(invSourceQueryVo.getSigningTime())){
-            String[] split = invSourceQueryVo.getSigningTime().split(",");
-            queryWrapper.between(InvSource::getSigningTime,split[0],split[1]);
-        }
-        List<InvSource> pageData = invSourceMapper.selectList(queryWrapper);
-        pageData.forEach(x->{
-            if("0".equals(x.getClearingState())){
-                x.setClearingState("未结算");
-            }else if("1".equals(x.getClearingState()))
-            {
-                x.setClearingState("已结算");
-            }
+        String[] split = invSourceQueryVo.getSigningTime().split(",");
+        invSourceQueryVo.setSigningTimeStartTime(split[0]);
+        invSourceQueryVo.setSigningTimeEndTime(split[1]);
 
-            if("0".equals(x.getInsuranceClearingState())){
-                x.setInsuranceClearingState("未结算");
-            }else if("1".equals(x.getInsuranceClearingState()))
-            {
-                x.setInsuranceClearingState("已结算");
-            }
+        String[] split1 = invSourceQueryVo.getClearingTime().split(",");
+        invSourceQueryVo.setClearingTimeStartTime(split1[0]);
+        invSourceQueryVo.setClearingTimeEndTime(split1[1]);
+
+        List<InvSource> pageData = invSourceMapper.getRecivableList(invSourceQueryVo);
+        pageData.forEach(x->{
+            x.setClearingState("0".equals(x.getClearingState()) ? "未结算" : "1".equals(x.getClearingState()) ? "已结算" :
+                    "2".equals(x.getClearingState()) ? "孤儿单" : x.getClearingState());
+            x.setInsuranceClearingState("0".equals(x.getInsuranceClearingState()) ? "未结算" :
+                    "1".equals(x.getInsuranceClearingState()) ? "已结算" : x.getInsuranceClearingState());
         });
         return pageData;
     }
@@ -725,8 +655,8 @@ public class InvReceivableServiceImpl implements InvReceivableService {
     }
 
     @Override
-    public int dataMatching() {
-        Integer data = invSourceMapper.dataMatching();
+    public List<String> dataMatching() {
+        List<String> data = invSourceMapper.dataMatching();
         return data;
     }
 

+ 121 - 70
src/main/resources/mapper/modules/inv/InvReceivableMapper.xml

@@ -7,6 +7,7 @@
     <resultMap id="BaseResultMap" type="com.ydtech.modules.inv.model.vo.ReceivableResultVo">
     </resultMap>
 
+
     <select id="getReceivableList" resultType="com.ydtech.modules.inv.model.vo.ReceivableResultVo">
         SELECT
             DATE_FORMAT( signing_time, '%d' ) AS DAY,
@@ -178,114 +179,164 @@
 
     <select id="getReceivableAndSettlementPage" resultType="com.ydtech.modules.inv.model.vo.ReceivableAndSettlementVo">
         SELECT
-            iss.operations_team,
-            iss.channel_classification,
-            ivs.signing_time as sign_date,
-            iss.channel,
-            ivs.licenseno,
-            ivs.insured_name,
-            ivs.insurance_id,
-            ivs.insurance_name as insurance_company,
-            ivs.insurance_dept_id,
-            ivs.insurance_dept,
-            ivs.risk as insurance_type,
-            iss.business_owner,
-            ivs.jq_policy_id,
-            ivs.jq_premium_tax,
-            ivs.jq_premium,
-            ivs.sy_policy_id,
-            ivs.sy_premium_tax,
-            ivs.sy_premium,
-            ivs.non_car_policy_id,
-            ivs.non_car_premium_tax,
-            ivs.non_car_premium,
-            iss.agency_settlement_time,
-            ivs.taxamount,
-            ivs.jq_receivable_ratio,
-            ivs.jq_premium_ratio,
-            ivs.jq_non_copying_ratio,
-            ivs.sy_receivable_ratio,
-            ivs.sy_premium_ratio,
-            ivs.sy_non_copying_ratio,
-            ivs.non_car_receivable_ratio,
-            ivs.non_car_premium_ratio,
-            ivs.non_car_non_copying_ratio,
-            ivs.premium,
-            ivs.non_copying,
-            ivs.receivable,
-            ivs.subsidy_ratio,
-            ivs.subsidy_amount,
-            ivs.max_jq_receivable_ratio,
-            ivs.max_sy_receivable_ratio,
-            ivs.max_non_car_receivable_ratio,
-            ivs.max_receivable,
-            ivs.total_receivable_amount,
-            iss.settlement_amount,
-            (CASE ivs.clearing_state
-            WHEN 1 THEN '已结算'
-            WHEN 0 THEN '未结算'
-            WHEN 3 THEN '孤儿单'
-            END) as clearing_state,
-            (CASE ivs.insurance_clearing_state
-            WHEN 1 THEN '已结算'
-            WHEN 0 THEN '未结算'
-            WHEN 3 THEN '孤儿单'
-            END) as insurance_clearing_state
+        a.operations_team,
+        a.channel_classification,
+        a.sign_date,
+        a.channel,
+        a.licenseno,
+        a.insured_name,
+        a.insurance_id,
+        a.insurance_company,
+        a.insurance_dept_id,
+        a.insurance_dept,
+        a.insurance_type,
+        a.business_owner,
+        a.jq_policy_id,
+        a.jq_premium_tax,
+        a.jq_premium,
+        a.sy_policy_id,
+        a.sy_premium_tax,
+        a.sy_premium,
+        a.non_car_policy_id,
+        a.non_car_premium_tax,
+        a.non_car_premium,
+        a.agency_settlement_time,
+        a.taxamount,
+        a.jq_receivable_ratio,
+        a.jq_premium_ratio,
+        a.jq_non_copying_ratio,
+        a.sy_receivable_ratio,
+        a.sy_premium_ratio,
+        a.sy_non_copying_ratio,
+        a.non_car_receivable_ratio,
+        a.non_car_premium_ratio,
+        a.non_car_non_copying_ratio,
+        a.premium,
+        a.non_copying,
+        a.receivable,
+        a.subsidy_ratio,
+        a.subsidy_amount,
+        a.max_jq_receivable_ratio,
+        a.max_sy_receivable_ratio,
+        a.max_non_car_receivable_ratio,
+        a.max_receivable,
+        a.total_receivable_amount,
+        a.settlement_amount,
+        ( CASE a.clearing_state WHEN 1 THEN '已结算' WHEN 0 THEN '未结算' WHEN 2 THEN '孤儿单' END ) AS clearing_state,
+        ( CASE a.insurance_clearing_state WHEN 1 THEN '已结算' WHEN 0 THEN '未结算' END ) AS insurance_clearing_state
+        FROM
+        (
+        SELECT
+        *
+        FROM
+        (
+        SELECT
+        iss.operations_team,
+        iss.channel_classification,
+        ivs.signing_time AS sign_date,
+        iss.channel,
+        ivs.licenseno,
+        ivs.insured_name,
+        ivs.insurance_id,
+        ivs.insurance_name AS insurance_company,
+        ivs.insurance_dept_id,
+        ivs.insurance_dept,
+        ivs.risk AS insurance_type,
+        iss.business_owner,
+        ivs.jq_policy_id,
+        ivs.jq_premium_tax,
+        ivs.jq_premium,
+        ivs.sy_policy_id,
+        ivs.sy_premium_tax,
+        ivs.sy_premium,
+        ivs.non_car_policy_id,
+        ivs.non_car_premium_tax,
+        ivs.non_car_premium,
+        iss.agency_settlement_time,
+        ivs.taxamount,
+        ivs.jq_receivable_ratio,
+        ivs.jq_premium_ratio,
+        ivs.jq_non_copying_ratio,
+        ivs.sy_receivable_ratio,
+        ivs.sy_premium_ratio,
+        ivs.sy_non_copying_ratio,
+        ivs.non_car_receivable_ratio,
+        ivs.non_car_premium_ratio,
+        ivs.non_car_non_copying_ratio,
+        ivs.premium,
+        ivs.non_copying,
+        ivs.receivable,
+        ivs.subsidy_ratio,
+        ivs.subsidy_amount,
+        ivs.max_jq_receivable_ratio,
+        ivs.max_sy_receivable_ratio,
+        ivs.max_non_car_receivable_ratio,
+        ivs.max_receivable,
+        ivs.total_receivable_amount,
+        iss.settlement_amount,
+        CASE
+
+        WHEN DATEDIFF( NOW(), signing_time ) > 90 THEN
+        2 ELSE ivs.clearing_state
+        END AS clearing_state,
+        insurance_clearing_state
         FROM
         inv_source ivs
         LEFT JOIN inv_settlement_source iss ON ivs.licenseno = iss.licenseno
         AND ivs.jq_policy_id = iss.jq_policy_id
         AND ivs.sy_policy_id = iss.sy_policy_id
         AND ivs.non_car_policy_id = iss.non_car_policy_id
+        ) a
+        ) a
         WHERE
-            1=1
+        1 =1
             <if test="param.signDateStartTime != null and param.signDateStartTime != ''">
-                and iss.sign_date between #{param.signDateStartTime} and #{param.signDateEndTime}
+                and a.sign_date between #{param.signDateStartTime} and #{param.signDateEndTime}
             </if>
             <if test="param.agencySettlementTimeStartTime != null and param.agencySettlementTimeStartTime != ''">
-                and iss.agency_settlement_time between #{param.agencySettlementTimeStartTime} and #{param.agencySettlementTimeEndTime}
+                and a.agency_settlement_time between #{param.agencySettlementTimeStartTime} and #{param.agencySettlementTimeEndTime}
             </if>
             <if test="param.operationsTeam != null and param.operationsTeam != ''">
-                and iss.operations_team = #{param.operationsTeam}
+                and a.operations_team = #{param.operationsTeam}
             </if>
             <if test="param.channelClassification != null and param.channelClassification != ''">
-                and iss.channel_classification = #{param.channelClassification}
+                and a.channel_classification = #{param.channelClassification}
             </if>
             <if test="param.channel != null and param.channel != ''">
-                and iss.channel = #{param.channel}
+                and a.channel = #{param.channel}
             </if>
             <if test="param.licenseNo != null and param.licenseNo != ''">
-                and ivs.licenseno = #{param.licenseNo}
+                and a.licenseno = #{param.licenseNo}
             </if>
             <if test="param.insuredName != null and param.insuredName != ''">
-                and ivs.insured_name = #{param.insuredName}
+                and a.insured_name = #{param.insuredName}
             </if>
             <if test="param.insuranceId != null and param.insuranceId != ''">
-                and ivs.insurance_id = #{param.insuranceId}
+                and a.insurance_id = #{param.insuranceId}
             </if>
             <if test="param.insuranceDeptId != null and param.insuranceDeptId != ''">
-                and ivs.insurance_dept_id = #{param.insuranceDeptId}
+                and a.insurance_dept_id = #{param.insuranceDeptId}
             </if>
         <if test="param.clearingState != null and param.clearingState != ''">
-            and ivs.clearing_state = #{param.clearingState}
+            and a.clearing_state = #{param.clearingState}
         </if>
         <if test="param.insuranceClearingState != null and param.insuranceClearingState != ''">
-            and ivs.insurance_clearing_state = #{param.insuranceClearingState}
+            and a.insurance_clearing_state = #{param.insuranceClearingState}
         </if>
         <if test="param.insuranceDept != null and param.insuranceDept != ''">
-            and ivs.insurance_dept = #{param.insuranceDept}
+            and a.insurance_dept = #{param.insuranceDept}
         </if>
         <if test="param.insuranceType != null and param.insuranceType != ''">
-            and ivs.risk = #{param.insuranceType}
+            and a.insurance_type = #{param.insuranceType}
         </if>
         <if test="param.jqPolicyId != null and param.jqPolicyId != ''">
-            and ivs.jq_policy_id = #{param.jqPolicyId}
+            and a.jq_policy_id = #{param.jqPolicyId}
         </if>
         <if test="param.syPolicyId != null and param.syPolicyId != ''">
-            and ivs.sy_policy_id = #{param.syPolicyId}
+            and a.sy_policy_id = #{param.syPolicyId}
         </if>
         <if test="param.nonCarPolicyId != null and param.nonCarPolicyId != ''">
-            and ivs.non_car_policy_id = #{param.nonCarPolicyId}
+            and a.non_car_policy_id = #{param.nonCarPolicyId}
         </if>
 
     </select>

+ 171 - 2
src/main/resources/mapper/modules/inv/InvSourceMapper.xml

@@ -70,9 +70,9 @@
             ins.clearing_time = iss.agency_settlement_time;
     </update>
 
-    <select id="dataMatching" resultType="Integer">
+    <select id="dataMatching" resultType="HashMap">
         SELECT
-            count(iss.licenseno) as count
+            iss.licenseno
         FROM
             inv_settlement_source iss
         WHERE
@@ -85,4 +85,173 @@
                     ivs.licenseno = iss.licenseno
             )
     </select>
+
+    <select id="getRecivablePage" resultType="com.ydtech.modules.inv.model.po.InvSource">
+        select * from (select
+        id,
+        insurance_id,
+        insurance_name,
+        insurance_dept,
+        insurance_dept_id,
+        risk,
+        jq_policy_id,
+        jq_premium_tax,
+        jq_premium,
+        sy_policy_id,
+        sy_premium_tax,
+        sy_premium,
+        non_car_policy_id,
+        non_car_premium_tax,
+        non_car_premium,
+        insured_name,
+        licenseno,
+        signing_time,
+        clearing_time,
+        taxamount,
+        jq_receivable_ratio,
+        jq_premium_ratio,
+        jq_non_copying_ratio,
+        sy_receivable_ratio,
+        sy_premium_ratio,
+        sy_non_copying_ratio,
+        non_car_receivable_ratio,
+        non_car_premium_ratio,
+        non_car_non_copying_ratio,
+        premium,
+        non_copying,
+        receivable,
+        subsidy_ratio,
+        subsidy_amount,
+        total_receivable_amount,
+        max_jq_receivable_ratio,
+        max_sy_receivable_ratio,
+        max_non_car_receivable_ratio,
+        max_receivable,
+        CASE WHEN DATEDIFF(NOW(), signing_time) > 90 THEN 2 ELSE inv_source.clearing_state END as clearing_state,
+        insurance_clearing_state
+        from inv_source
+        ) a
+        where 1=1
+        <if test="param.licenseno != null and param.licenseno != ''">
+            and a.licenseno = #{param.licenseno}
+        </if>
+        <if test="param.jqPolicyId != null and param.jqPolicyId != ''">
+            and a.jq_policy_id = #{jqPolicyId}
+        </if>
+        <if test="param.syPolicyId != null and param.syPolicyId != ''">
+            and a.sy_policy_id = #{syPolicyId}
+        </if>
+        <if test="param.nonCarPolicyId != null and param.nonCarPolicyId != ''">
+            and a.non_car_policy_id = #{nonCarPolicyId}
+        </if>
+        <if test="param.insuranceId != null and param.insuranceId != ''">
+            and a.insurance_id = #{insuranceId}
+        </if>
+        <if test="param.risk != null and param.risk != ''">
+            and a.risk = #{risk}
+        </if>
+        <if test="param.insuranceName != null and param.insuranceName != ''">
+            and a.insurance_name = #{insuranceName}
+        </if>
+        <if test="param.clearingTimeStartTime != null and param.clearingTimeStartTime != ''">
+            and a.clearing_time between #{param.clearingTimeStartTime} and #{param.clearingTimeEndTime]}
+        </if>
+        <if test="param.signingTimeStartTime != null and param.signingTimeStartTime != ''">
+            and a.signing_time between #{param.signingTimeStartTime} and #{param.signingTimeEndTime}
+        </if>
+        <if test="param.insuranceDept != null and param.insuranceDept != ''">
+            and a.insurance_dept = #{param.insuranceDept}
+        </if>
+        <if test="param.clearingState != null and param.clearingState != ''">
+            and a.clearing_state = #{param.clearingState}
+        </if>
+        <if test="param.insuranceClearingState != null and param.insuranceClearingState != ''">
+            and a.insurance_clearing_state = #{param.insuranceClearingState}
+        </if>
+    </select>
+
+
+    <select id="getRecivableList" resultType="com.ydtech.modules.inv.model.po.InvSource">
+        select * from (select
+        id,
+        insurance_id,
+        insurance_name,
+        insurance_dept,
+        insurance_dept_id,
+        risk,
+        jq_policy_id,
+        jq_premium_tax,
+        jq_premium,
+        sy_policy_id,
+        sy_premium_tax,
+        sy_premium,
+        non_car_policy_id,
+        non_car_premium_tax,
+        non_car_premium,
+        insured_name,
+        licenseno,
+        signing_time,
+        clearing_time,
+        taxamount,
+        jq_receivable_ratio,
+        jq_premium_ratio,
+        jq_non_copying_ratio,
+        sy_receivable_ratio,
+        sy_premium_ratio,
+        sy_non_copying_ratio,
+        non_car_receivable_ratio,
+        non_car_premium_ratio,
+        non_car_non_copying_ratio,
+        premium,
+        non_copying,
+        receivable,
+        subsidy_ratio,
+        subsidy_amount,
+        total_receivable_amount,
+        max_jq_receivable_ratio,
+        max_sy_receivable_ratio,
+        max_non_car_receivable_ratio,
+        max_receivable,
+        CASE WHEN DATEDIFF(NOW(), signing_time) > 90 THEN 2 ELSE inv_source.clearing_state END as clearing_state,
+        insurance_clearing_state
+        from inv_source
+        ) a
+        where 1=1
+        <if test="param.licenseno != null and param.licenseno != ''">
+            and a.licenseno = #{param.licenseno}
+        </if>
+        <if test="param.jqPolicyId != null and param.jqPolicyId != ''">
+            and a.jq_policy_id = #{jqPolicyId}
+        </if>
+        <if test="param.syPolicyId != null and param.syPolicyId != ''">
+            and a.sy_policy_id = #{syPolicyId}
+        </if>
+        <if test="param.nonCarPolicyId != null and param.nonCarPolicyId != ''">
+            and a.non_car_policy_id = #{nonCarPolicyId}
+        </if>
+        <if test="param.insuranceId != null and param.insuranceId != ''">
+            and a.insurance_id = #{insuranceId}
+        </if>
+        <if test="param.risk != null and param.risk != ''">
+            and a.risk = #{risk}
+        </if>
+        <if test="param.insuranceName != null and param.insuranceName != ''">
+            and a.insurance_name = #{insuranceName}
+        </if>
+        <if test="param.clearingTimeStartTime != null and param.clearingTimeStartTime != ''">
+            and a.clearing_time between #{param.clearingTimeStartTime} and #{param.clearingTimeEndTime]}
+        </if>
+        <if test="param.signingTimeStartTime != null and param.signingTimeStartTime != ''">
+            and a.signing_time between #{param.signingTimeStartTime} and #{param.signingTimeEndTime}
+        </if>
+        <if test="param.insuranceDept != null and param.insuranceDept != ''">
+            and a.insurance_dept = #{param.insuranceDept}
+        </if>
+        <if test="param.clearingState != null and param.clearingState != ''">
+            and a.clearing_state = #{param.clearingState}
+        </if>
+        <if test="param.insuranceClearingState != null and param.insuranceClearingState != ''">
+            and a.insurance_clearing_state = #{param.insuranceClearingState}
+        </if>
+    </select>
 </mapper>