فهرست منبع

异常分页优化

yzc 1 سال پیش
والد
کامیت
c795a1fc03

+ 13 - 7
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/abnormal/impl/AbnormalInfoServiceImpl.java

@@ -14,7 +14,6 @@ import com.fjhx.victoriatourist.mapper.abnormal.AbnormalInfoMapper;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.utils.UserUtil;
 import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,12 +45,19 @@ public class AbnormalInfoServiceImpl extends ServiceImpl<AbnormalInfoMapper, Abn
 
 
         //采购人id过滤
         //采购人id过滤
         wrapper.eq("p.create_user", dto.getPurchaseUserId());
         wrapper.eq("p.create_user", dto.getPurchaseUserId());
-        wrapper.keyword(dto.getKeyword(),
-                new SqlField("ai", AbnormalInfo::getTitle),
-                new SqlField("ai", AbnormalInfo::getLinkCode),
-                new SqlField("pi.custom_code"),
-                new SqlField("pi.name")
-        );
+
+        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q -> q
+                    .like("ai", AbnormalInfo::getTitle, dto.getKeyword()).or()
+                    .like("ai", AbnormalInfo::getLinkCode, dto.getKeyword()).or()
+                    //到货质检
+                    .exists("select pd.purchase_id from bytesailing_purchase.purchase_detail pd LEFT JOIN bytesailing_item.product_info pi ON pd.bussiness_id = pi.id where pd.del_flag=0  and ( pi.`name` LIKE CONCAT( '%', {0}, '%' ) OR pi.custom_code LIKE CONCAT( '%', {0}, '%' ))", dto.getKeyword()).or()
+                    //京东
+                    .exists("select std.stock_transfer_id from stock_transfer_details std LEFT JOIN bytesailing_item.product_info pi ON std.product_id = pi.id where ( pi.`name` LIKE CONCAT( '%', {0}, '%' ) OR pi.custom_code LIKE CONCAT( '%', {0}, '%' ))", dto.getKeyword()).or()
+                    //待入库
+                    .exists("select arrd.arrival_id from bytesailing_purchase.arrival_detail arrd LEFT JOIN bytesailing_item.product_info pi ON arrd.bussiness_id = pi.id where arrd.del_flag=0 and ( pi.`name` LIKE CONCAT( '%', {0}, '%' ) OR pi.custom_code LIKE CONCAT( '%', {0}, '%' ))", dto.getKeyword()).or()
+            );
+        }
 
 
         //添加权限过滤
         //添加权限过滤
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);

+ 28 - 47
hx-victoriatourist/src/main/resources/mapper/abnormal/AbnormalInfoMapper.xml

@@ -4,55 +4,36 @@
     <select id="getPage" resultType="com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalInfoVo">
     <select id="getPage" resultType="com.fjhx.victoriatourist.entity.abnormal.vo.AbnormalInfoVo">
         SELECT
         SELECT
         ai.*,
         ai.*,
-        li.code as logisticsCode
-        <if test="businessType eq 10 or businessType eq 50">
-            ,p.create_user purchaseUserId
-        </if>
+        li.code as logisticsCode,
+        p.create_user purchaseUserId
         FROM
         FROM
         (
         (
-            SELECT
-                ai.id,
-                ai.type,
-                ai.link_id,
-                ai.link_code,
-                ai.title,
-                ai.`status`,
-                ai.handle_user,
-                ai.handle_time,
-                ai.remark,
-                ai.create_user,
-                ai.create_time,
-                ai.update_user,
-                ai.update_time,
-                ai.purchase_id,
-                ai.logistics_infos_id,
-                IFNULL( sum( ad.refund_amount ), 0 ) AS refundAmount
-            FROM
-                abnormal_info ai
-            LEFT JOIN abnormal_details ad ON ad.abnormal_info_id = ai.id
-            GROUP BY
-                ai.id
-        ) ai
-        <!-- 到货质检 待入库 来源 -->
-                <if test="businessType eq 10 or businessType eq 50">
-                        left JOIN bytesailing_purchase.purchase p ON ai.purchase_id = p.id
-                        LEFT JOIN bytesailing_purchase.purchase_detail pd ON pd.purchase_id = p.id
-                        LEFT JOIN bytesailing_item.product_info pi ON pd.bussiness_id = pi.id
-                </if>
-                <!-- 京东订单出库 调仓来源 -->
-                <if test="businessType eq 20 or businessType eq 30">
-                        left JOIN stock_transfer st ON ai.link_id = st.id
-                        left JOIN stock_transfer_details std ON std.stock_transfer_id = st.id
-                        LEFT JOIN bytesailing_item.product_info pi ON std.product_id = pi.id
-                </if>
-                <!-- 到货异常来源 -->
-                <if test="businessType eq 40">
-                        left JOIN bytesailing_purchase.arrival arr ON ai.link_id = arr.id and arr.del_flag = 0
-                        left JOIN bytesailing_purchase.arrival_detail arrd ON arrd.arrival_id = arr.id and arr.del_flag = 0
-                        LEFT JOIN bytesailing_item.product_info pi ON arrd.bussiness_id = pi.id
-                </if>
-                LEFT JOIN bytesailing_base.sys_dept de ON pi.deptIdWdly = de.dept_id
-                left join logistics_infos li on ai.logistics_infos_id = li.id
+        SELECT
+        ai.id,
+        ai.type,
+        ai.link_id,
+        ai.link_code,
+        ai.title,
+        ai.`status`,
+        ai.handle_user,
+        ai.handle_time,
+        ai.remark,
+        ai.create_user,
+        ai.create_time,
+        ai.update_user,
+        ai.update_time,
+        ai.purchase_id,
+        ai.logistics_infos_id,
+        IFNULL( sum( ad.refund_amount ), 0 ) AS refundAmount
+        FROM
+        abnormal_info ai
+        LEFT JOIN abnormal_details ad ON ad.abnormal_info_id = ai.id
+        GROUP BY
+        ai.id
+        )ai
+        left join bytesailing_purchase.purchase p on ai.purchase_id = p.id
+        LEFT JOIN bytesailing_base.sys_dept de ON p.team_id = de.dept_id
+        left join logistics_infos li on ai.logistics_infos_id = li.id
             ${ew.customSqlSegment}
             ${ew.customSqlSegment}
     </select>
     </select>