Ver código fonte

订单导出bug调整

785834757 1 mês atrás
pai
commit
7b1a6110b3

+ 1 - 0
gateway/src/main/resources/application-prod.yml

@@ -119,6 +119,7 @@ spring:
                   - /rightsGrant/**
                   - /insOrderRights/**
                   - /order/searchHistory/**
+                  - /insFeeOrder/updateAvailableAmount
 
         - id: costsorrule_route
           uri: http://172.24.144.225:8085/

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

@@ -1566,6 +1566,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     public String exportDynamicFields(InsOrdersParamVO insOrdersParam) {
         log.info("导出订单列表。支持动态选择要导出的字段:导出车险订单=[{}]", JSONUtil.toJsonStr(insOrdersParam));
+        insOrdersParam.setSystemCode(baseController.getSystemCode());
         List<OrderListVo> orderListVos = insOrdersMapper.queryOrderListAll(insOrdersParam);
         log.info("导出订单列表,导出[{}]条记录", CollUtil.size(orderListVos));
         // 动态设置要导出的字段

+ 70 - 53
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -1086,72 +1086,79 @@
         ioa1.after_premium as adjustPremium
         FROM
         ins_orders io
-        LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
-        LEFT JOIN
-        ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and owner_u.is_delete = 0
-        left JOIN
-        ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and policy_u.is_delete = 0
-        left JOIN
-        ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and insur_u.is_delete = 0
-        left join
-        ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
-        left join
-        ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
-        LEFT JOIN
-        ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
-        left join
-        sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
-        left join
-        sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
-        left join
-        sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
-        left join
-        sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
-        left join
-        ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
-        left join
-        (
-        SELECT *
-        FROM (
-        SELECT t.*,
-        ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
-        FROM ins_order_adjust t where t.is_delete = 0
-        ) x WHERE x.rn = 1
-        ) ioa ON io.id = ioa.order_no
-        left join
-        (
-        SELECT *
-        FROM (
-        SELECT t.*,
-        ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
-        FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
-        ) x WHERE x.rn = 1
-        ) ioa1 ON io.id = ioa1.order_no
+        LEFT JOIN ins_orders_car_info ioci
+        ON ioci.order_no = io.id and ioci.is_delete = 0
+        LEFT JOIN ins_orders_car_user_info owner_u
+        ON owner_u.order_no = io.id and owner_u.policy_person_type = 1 and owner_u.is_delete = 0
+        LEFT JOIN ins_orders_car_user_info policy_u
+        ON policy_u.order_no = io.id and policy_u.policy_person_type = 2 and policy_u.is_delete = 0
+        LEFT JOIN ins_orders_car_user_info insur_u
+        ON insur_u.order_no = io.id and insur_u.policy_person_type = 3 and insur_u.is_delete = 0
+        LEFT JOIN ins_orders_risk iorci
+        ON iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
+        LEFT JOIN ins_orders_risk iorbi
+        ON iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
+        LEFT JOIN ins_orders_costs iorco
+        ON iorco.order_no = io.id and iorco.is_delete = 0
+        LEFT JOIN sys_user su
+        ON su.mobile = io.real_quote_user_id and su.is_delete = 0
+        LEFT JOIN sys_user_jzg_info suji
+        ON suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
+        LEFT JOIN sys_user_jzg_info_salesman sujis
+        ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
+        LEFT JOIN sys_dept sd
+        ON sd.id = suji.dept_id and sd.is_delete = 0
+        LEFT JOIN ptl_agreement pa
+        ON pa.id = io.agreement_id and pa.is_delete = 0
+
+        <!-- 优化1: 替代原 ROW_NUMBER() 获取最新一条 adjust 记录 -->
+        LEFT JOIN ins_order_adjust ioa
+        ON ioa.id = (
+        SELECT t.id
+        FROM ins_order_adjust t
+        WHERE t.order_no = io.id AND t.is_delete = 0
+        ORDER BY t.create_time DESC, t.id DESC
+        LIMIT 1
+        )
+
+        <!-- 优化2: 替代原 ROW_NUMBER() 获取 status=2 的最新一条 adjust 记录 -->
+        LEFT JOIN ins_order_adjust ioa1
+        ON ioa1.id = (
+        SELECT t.id
+        FROM ins_order_adjust t
+        WHERE t.order_no = io.id AND t.status = 2 AND t.is_delete = 0
+        ORDER BY t.create_time DESC, t.id DESC
+        LIMIT 1
+        )
+
         <where>
             and io.is_delete = 0 and sujis.type_attr NOT IN (1,2,3,4)
+
             <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
                 AND io.id = #{insOrdersParam.orderNo}
             </if>
-<!--            <if test="insOrdersParam.parentId != null">-->
-<!--                AND io.parent_id = #{insOrdersParam.parentId}-->
-<!--            </if>-->
             <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
                 AND ioci.license_no = #{insOrdersParam.licenseNo}
             </if>
-            <if test="insOrdersParam.orderStatus!= null and insOrdersParam.orderStatus!= ''">
+            <if test="insOrdersParam.orderStatus != null and insOrdersParam.orderStatus != ''">
                 AND io.order_status = #{insOrdersParam.orderStatus}
             </if>
-            <if test="insOrdersParam.adjustStatus!= null and insOrdersParam.adjustStatus!= ''">
+            <if test="insOrdersParam.adjustStatus != null and insOrdersParam.adjustStatus != ''">
                 AND ioa.status = #{insOrdersParam.adjustStatus}
             </if>
-            <if test="insOrdersParam.salesman!= null">
+            <if test="insOrdersParam.salesman != null">
                 AND io.real_quote_user_id = #{insOrdersParam.salesman}
             </if>
             <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
                 AND io.company_id = #{insOrdersParam.companyId}
             </if>
-            <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
-                AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
+
+            <!-- 创建时间范围 -->
+            <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''">
+                AND io.create_time &gt;= #{insOrdersParam.startDate}
+            </if>
+            <if test="insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
+                AND io.create_time &lt;= #{insOrdersParam.endDate}
             </if>
 
             <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
@@ -1232,11 +1239,21 @@
             <if test="insOrdersParam.adjustPremium != null">
                 AND ioa1.after_premium = #{insOrdersParam.adjustPremium}
             </if>
-            <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''and insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
-                AND io.signing_time BETWEEN #{insOrdersParam.startSigningTime} and #{insOrdersParam.endSigningTime}
+
+            <!-- 签单时间范围优化 -->
+            <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''">
+                AND io.signing_time &gt;= #{insOrdersParam.startSigningTime}
             </if>
-            <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''and insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
-                AND io.pay_time BETWEEN #{insOrdersParam.startPayTime} and #{insOrdersParam.endPayTime}
+            <if test="insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
+                AND io.signing_time &lt;= #{insOrdersParam.endSigningTime}
+            </if>
+
+            <!-- 支付时间范围优化 -->
+            <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''">
+                AND io.pay_time &gt;= #{insOrdersParam.startPayTime}
+            </if>
+            <if test="insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
+                AND io.pay_time &lt;= #{insOrdersParam.endPayTime}
             </if>
         </where>
         order by io.create_time desc

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

@@ -9,6 +9,7 @@ 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.ProductsType;
+import com.jzg.commons.constants.quote.enums.quote.EnergyTypeCode;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.action.enums.ActionEnum;
@@ -827,7 +828,7 @@ public class PtlSchemeServiceImpl extends ServiceImpl<PtlSchemeMapper, PtlScheme
         // 过滤类型
         List<SchemeResultVo.SchemeVo> newSchemeList = schemeInsuranceInfo.stream()
                 .filter(scheme -> scheme.getVehicleType().contains(vehicleType)
-                        && scheme.getEnergyType().contains(energyType)
+                        && scheme.getEnergyType().contains(EnergyTypeCode.isNewEnergy(energyType) ? "1" : "0")
                         && scheme.getCarnature().contains(carnature))
                 .collect(Collectors.toList());