Browse Source

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

FengChaoYu 5 months ago
parent
commit
dfcbb8a3be

+ 36 - 15
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/workorder/OrderBaseLogic.java

@@ -3,6 +3,7 @@ package com.gree.mall.miniapp.logic.workorder;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.db.sql.Order;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -211,19 +212,34 @@ public class OrderBaseLogic {
         }
         }
         List<String> orderStatusList = new ArrayList<>();
         List<String> orderStatusList = new ArrayList<>();
         String orderStatus = orderBaseStatusEnum != null ? orderBaseStatusEnum.getKey() : null;
         String orderStatus = orderBaseStatusEnum != null ? orderBaseStatusEnum.getKey() : null;
+
+        Boolean isMeet = false;
         if(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())){
         if(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())){
             orderStatusList.add(orderStatus);
             orderStatusList.add(orderStatus);
             orderStatusList.add(OrderBaseStatusEnum.YJS.getKey());
             orderStatusList.add(OrderBaseStatusEnum.YJS.getKey());
             orderStatusList.add(OrderBaseStatusEnum.GCSZX.getKey());
             orderStatusList.add(OrderBaseStatusEnum.GCSZX.getKey());
             orderStatusList.add(OrderBaseStatusEnum.WDWG.getKey());
             orderStatusList.add(OrderBaseStatusEnum.WDWG.getKey());
             orderStatusList.add(OrderBaseStatusEnum.YWGO.getKey());
             orderStatusList.add(OrderBaseStatusEnum.YWGO.getKey());
+            isMeet = true;
         }else if(StringUtils.equals(orderStatus,OrderBaseStatusEnum.YCD.getKey())) {
         }else if(StringUtils.equals(orderStatus,OrderBaseStatusEnum.YCD.getKey())) {
             //异常单,不能通过工单状态字段去查,所以这里留空
             //异常单,不能通过工单状态字段去查,所以这里留空
             orderStatusList.clear();
             orderStatusList.clear();
-        }else if (StringUtils.equals(orderStatus, OrderBaseStatusEnum.DCL.getKey())){
-            orderStatusList.clear();
+            isMeet = true;
+        }else if (StringUtils.equals(orderStatus, OrderBaseStatusEnum.DCL.getKey())) {
+            orderStatusList.add(OrderBaseStatusEnum.YWG.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.YJS.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.GCSZX.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.YWGO.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.WDWG.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.DQD.getKey());
+            orderStatusList.add(OrderBaseStatusEnum.DCL.getKey());
+            isMeet = false;
+        }else if (StringUtils.equals(orderStatus, OrderBaseStatusEnum.DJD.getKey())){
+            orderStatusList.add(OrderBaseStatusEnum.DJD.getKey());
+            isMeet = false;
         } else if(orderStatus != null){
         } else if(orderStatus != null){
             orderStatusList.add(orderStatus);
             orderStatusList.add(orderStatus);
+            isMeet = true;
         }
         }
 
 
         if(StringUtils.equals(orderStatus, OrderBaseStatusEnum.FWZ.getKey())){
         if(StringUtils.equals(orderStatus, OrderBaseStatusEnum.FWZ.getKey())){
@@ -238,14 +254,28 @@ public class OrderBaseLogic {
             orderStatusList.add(OrderBaseStatusEnum.TJXSBH.getKey());
             orderStatusList.add(OrderBaseStatusEnum.TJXSBH.getKey());
             orderStatusList.add(OrderBaseStatusEnum.ZBBH.getKey());
             orderStatusList.add(OrderBaseStatusEnum.ZBBH.getKey());
             orderStatusList.add(OrderBaseStatusEnum.FZXBH.getKey());
             orderStatusList.add(OrderBaseStatusEnum.FZXBH.getKey());
+            isMeet = true;
         }
         }
 
 
+        Boolean finalIsMeet = isMeet;
+
         Page page = pgOrderBaseService.lambdaQuery()
         Page page = pgOrderBaseService.lambdaQuery()
                 .eq(PgOrderBase::getCompanyWechatId,currentCompanyWechat.getCompanyWechatId())
                 .eq(PgOrderBase::getCompanyWechatId,currentCompanyWechat.getCompanyWechatId())
-                .notIn(orderStatus != null && orderStatus.equals(OrderBaseStatusEnum.DCL.getKey()),PgOrderBase::getOrderStatus,
-                        OrderBaseStatusEnum.YWG.getKey(),OrderBaseStatusEnum.YWGO.getKey(),OrderBaseStatusEnum.GCSZX.getKey(),
-                        OrderBaseStatusEnum.WDWG.getKey() ,OrderBaseStatusEnum.DQD.getKey(),OrderBaseStatusEnum.YJS.getKey()
-                        )
+
+                .notIn(PgOrderBase::getOrderStatus,OrderBaseStatusEnum.YQX.getKey(),OrderBaseStatusEnum.FWQX.getKey()
+                ,OrderBaseStatusEnum.FL.getKey(), OrderBaseStatusEnum.FWZT.getKey(),OrderBaseStatusEnum.YCGB
+                )
+
+                .and(CollectionUtils.isNotEmpty(orderStatusList) && !orderStatusList.contains("DCL") && !orderStatusList.contains("DJD"),item ->
+                        item.in(PgOrderBase::getOrderStatus,orderStatusList).eq(PgOrderBase::getIsMeet, finalIsMeet))
+
+                .and(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DCL"),item ->
+                        item.notIn(PgOrderBase::getOrderStatus,orderStatusList))
+
+                .and(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"),item ->
+                        item.in(PgOrderBase::getOrderStatus,orderStatusList)
+                        .or().eq(PgOrderBase::getIsMeet, finalIsMeet)
+                )
                 .ne(isYb != null && isYb,PgOrderBase::getPgIncreOrderId,"")
                 .ne(isYb != null && isYb,PgOrderBase::getPgIncreOrderId,"")
                 .ne(isWb != null && isWb,PgOrderBase::getRpProjectRepairId,"")
                 .ne(isWb != null && isWb,PgOrderBase::getRpProjectRepairId,"")
                 .eq(StringUtils.isNotBlank(pgIncreOrderId),PgOrderBase::getPgIncreOrderId,pgIncreOrderId)
                 .eq(StringUtils.isNotBlank(pgIncreOrderId),PgOrderBase::getPgIncreOrderId,pgIncreOrderId)
@@ -257,15 +287,6 @@ public class OrderBaseLogic {
                                 .like(PgOrderBase::getOrderSmallTypeText,keyword).or()
                                 .like(PgOrderBase::getOrderSmallTypeText,keyword).or()
                                 .like(PgOrderBase::getUserMobile,keyword).or()
                                 .like(PgOrderBase::getUserMobile,keyword).or()
                                 .like(PgOrderBase::getAddress,keyword))
                                 .like(PgOrderBase::getAddress,keyword))
-                .and(CollectionUtils.isNotEmpty(orderStatusList),item -> item.in(CollectionUtils.isNotEmpty(orderStatusList), PgOrderBase::getOrderStatus, orderStatusList)
-                        .eq(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"),PgOrderBase::getIsImportExcel,false)
-                .or(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"),item1 -> item1
-                        .eq(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"),PgOrderBase::getIsMeet,false)
-                        .eq(PgOrderBase::getIsImportExcel,true)
-                )
-
-                )
-                .eq(CollectionUtils.isNotEmpty(orderStatusList) && (!orderStatusList.contains("DJD") || !orderStatusList.contains("DCL")),PgOrderBase::getIsMeet,true)
                 .eq(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YCD.getKey()),PgOrderBase::getIsException,true)
                 .eq(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YCD.getKey()),PgOrderBase::getIsException,true)
                 .between(!StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())
                 .between(!StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())
                         && StringUtils.isNoneBlank(startTime, endTime) && (byDay == null || byDay != 3), PgOrderBase::getDispatchTime, startTime, endTime)
                         && StringUtils.isNoneBlank(startTime, endTime) && (byDay == null || byDay != 3), PgOrderBase::getDispatchTime, startTime, endTime)

+ 1 - 1
mall-miniapp-service/src/main/resources/mapper/workorder/OrderBaseCMapper.xml

@@ -8,7 +8,7 @@
             count(DISTINCT if(a.order_status in ('FWZ','GCSZT','BFWG','DSM','YZP','XSBH','TJXSBH','ZBBH','FZXBH','WDBH')  and a.is_meet = true,a.id,null)) 'fwz',
             count(DISTINCT if(a.order_status in ('FWZ','GCSZT','BFWG','DSM','YZP','XSBH','TJXSBH','ZBBH','FZXBH','WDBH')  and a.is_meet = true,a.id,null)) 'fwz',
             count(DISTINCT if(a.is_exception=1,a.id,null)) 'ycd',
             count(DISTINCT if(a.is_exception=1,a.id,null)) 'ycd',
             count(DISTINCT if(a.order_status='DQD',a.id,null)) 'dqd',
             count(DISTINCT if(a.order_status='DQD',a.id,null)) 'dqd',
-            count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG'),a.id,null)) 'ywg',
+            count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG') and a.is_meet = true,a.id,null)) 'ywg',
             count(DISTINCT if(a.over_time between date(now()) and now(),a.id,null)) 'jrwg',
             count(DISTINCT if(a.over_time between date(now()) and now(),a.id,null)) 'jrwg',
             count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG'),a.id,null)) 'jbnwg',
             count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG'),a.id,null)) 'jbnwg',
             count(DISTINCT if(a.order_status not in ('YWG','YJS','GCSZX','YWGO','WDWG','DQD'),a.id,null)) 'WWG',
             count(DISTINCT if(a.order_status not in ('YWG','YJS','GCSZX','YWGO','WDWG','DQD'),a.id,null)) 'WWG',