فهرست منبع

订单查询sql优化,查询评分信息

785834757 2 سال پیش
والد
کامیت
52a3e18658

+ 2 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -22,6 +22,8 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
 
     InsOrders getByUseridAndLicenseNo(VerifyOrdersVo verifyOrdersVo);
 
+    Long queryPageOrderCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo,
+                             @Param("isTeamLeader") Boolean isTeamLeader,@Param("isCdy")Boolean isCdy);
     Page<InsOrders> queryPageOrder(@Param("page") Page page,@Param("orderQueryVo") OrderQueryVo orderQueryVo,
                                    @Param("isTeamLeader") Boolean isTeamLeader,@Param("isCdy")Boolean isCdy);
 

+ 2 - 1
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.entity;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -39,7 +40,7 @@ public class InsOrders implements Serializable {
     /**
      * 订单号
      */
-    @TableId(value = "orderno")
+    @TableId(value = "orderno",type = IdType.AUTO)
     private String orderno;
 
     /**

+ 15 - 0
src/main/java/com/ydtech/modules/order/entity/vo/ya/YaExtendInfoDto.java

@@ -43,6 +43,21 @@ public class YaExtendInfoDto implements Serializable {
     @ApiModelProperty("评分")
     private String score;
 
+    @ApiModelProperty("交强评分")
+    private String jqScore;
+
+    @ApiModelProperty("商业评分")
+    private String syScore;
+
+    @ApiModelProperty("赔付率")
+    private String lossRation;
+
+    @ApiModelProperty("交强赔付率")
+    private String jqLossRation;
+
+    @ApiModelProperty("商业赔付率")
+    private String syLossRation;
+
 
     /**
      *  临时增加

+ 12 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -267,6 +267,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     public BasePageResult<InsOrders> newQueryPageOrder(OrderQueryVo orderQueryVo) {
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
         // 领导标志
         boolean isTeamLeader = false;
         //是否出单员标志
@@ -280,7 +281,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 isCdy = true;
             }
         }
+
         Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page,orderQueryVo,isTeamLeader,isCdy);
+        Long total = baseMapper.queryPageOrderCount(orderQueryVo, isTeamLeader, isCdy);
+        orderVoPage.setTotal(total);
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
                 orderVoPage.getPages(), orderVoPage.getRecords());
     }
@@ -403,7 +407,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         InsAreaCompany iac = insAreaCompanyService.getById(companyId);
         //保费因素
         yaExtendInfoDto.setAccidentInfoStr(iac.getAccidentStrInfo());
+        //评分
         yaExtendInfoDto.setScore(iac.getScore());
+        yaExtendInfoDto.setJqScore(iac.getJqScore());
+        yaExtendInfoDto.setSyScore(iac.getSyScore());
+        //赔付率
+        yaExtendInfoDto.setLossRation(String.valueOf(iac.getLossRation()));
+        yaExtendInfoDto.setJqLossRation(String.valueOf(iac.getJqLossRation()));
+        yaExtendInfoDto.setSyLossRation(String.valueOf(iac.getSyLossRation()));
+
         orderAndAreaCompany.setExtendInfo(yaExtendInfoDto);
 
         orderAndAreaCompany.setReptxt(null);

+ 48 - 1
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -213,6 +213,52 @@
           and createtime > DATE_SUB(CURDATE(), INTERVAL 6 MONTH)
     </select>
 
+    <select id="queryPageOrderCount" resultType="Long">
+        select
+            count(1)
+        from (
+            select
+            io.orderno
+            from
+            ins_orders io
+            left JOIN
+            ins_area_company iac on iac.orderno = io.orderno
+            <where>
+                <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
+                    and io.orderno = #{orderNo}
+                </if>
+                <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
+                    and io.deptid like "${orderQueryVo.deptId}%"
+                </if>
+                <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
+                    and io.orderstatus = #{orderQueryVo.orderStatus}
+                </if>
+                <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
+                    and io.frameno = #{orderQueryVo.frameNo}
+                </if>
+                <if test="orderQueryVo.licenseNo != null and orderQueryVo.licenseNo != ''">
+                    and io.licenseno = #{orderQueryVo.licenseNo}
+                </if>
+                <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
+                    and io.insuredname = #{orderQueryVo.insuredName}
+                </if>
+                <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
+                    and io.createtime between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+                </if>
+                <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+                    and io.company_id = #{orderQueryVo.companyId}
+                </if>
+                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">
+                    and io.operatorid = #{orderQueryVo.userId}
+                </if>
+                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">
+                    and io.userid = #{orderQueryVo.userId}
+                </if>
+            </where>
+            group by orderno
+        )s
+    </select>
+
     <select id="queryPageOrder" resultType="com.ydtech.modules.order.entity.InsOrders">
         select
             io.*
@@ -252,7 +298,8 @@
                 and io.userid = #{orderQueryVo.userId}
             </if>
         </where>
-        group by io.orderno
+        group by orderno
+        order by io.createtime desc
     </select>
 
 </mapper>