FengChaoYu 5 mesi fa
parent
commit
451111c96b

+ 29 - 12
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderFlagLogic.java

@@ -1,5 +1,6 @@
 package com.gree.mall.manager.logic.workorder;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.gree.mall.manager.enums.MaterialExamineStatusEnum;
 import com.gree.mall.manager.enums.workorder.OrderFlagEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
@@ -11,12 +12,10 @@ import com.gree.mall.manager.plus.service.PgOrderBaseService;
 import com.gree.mall.manager.plus.service.PgOrderFlagService;
 import com.gree.mall.manager.plus.service.RpMaterialOrderService;
 import com.gree.mall.manager.utils.StringUtil;
-import net.bytebuddy.asm.Advice;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -69,34 +68,52 @@ public class OrderFlagLogic {
 
     @Transactional
     public void saveOrderFlag(List<String> orderBaseIds, OrderFlagEnum orderFlagEnum, String remark){
-        if(CollectionUtils.isEmpty(orderBaseIds) || orderFlagEnum == null){
+        if (CollectionUtil.isEmpty(orderBaseIds) || orderFlagEnum == null) {
             return;
         }
         orderBaseIds = orderBaseIds.stream()
                 .distinct()
                 .collect(Collectors.toList());
         pgOrderFlagService.lambdaUpdate()
-                .in(PgOrderFlag::getOrderBaseId,orderBaseIds)
-                .eq(PgOrderFlag::getTag,orderFlagEnum.getKey())
+                .in(PgOrderFlag::getOrderBaseId, orderBaseIds)
+                .eq(PgOrderFlag::getTag, orderFlagEnum.getKey())
                 .remove();
+        // 排除4.0与自建标签同时存在问题
+        List<String> order4Flags = new ArrayList<>();
+        if (orderFlagEnum.getKey().equals(OrderFlagEnum.ORDER.getKey())) {
+            List<PgOrderFlag> flagList = pgOrderFlagService.lambdaQuery()
+                    .select(PgOrderFlag::getOrderBaseId)
+                    .in(PgOrderFlag::getOrderBaseId, orderBaseIds)
+                    .eq(PgOrderFlag::getTag, OrderFlagEnum.ORDER4.getKey())
+                    .list();
+            order4Flags = flagList.stream().map(PgOrderFlag::getOrderBaseId).collect(Collectors.toList());
+        }
         List<PgOrderFlag> orderFlags = new ArrayList<>();
-        for(String orderBaseId : orderBaseIds) {
+        for (String orderBaseId : orderBaseIds) {
+            if (CollectionUtil.isNotEmpty(order4Flags)
+                    && order4Flags.contains(orderBaseId)
+                    && orderFlagEnum.getKey().equals(OrderFlagEnum.ORDER.getKey())) {
+                continue;
+            }
             PgOrderFlag pgOrderFlag = new PgOrderFlag();
             pgOrderFlag.setOrderBaseId(orderBaseId);
             pgOrderFlag.setTag(orderFlagEnum.getKey());
             pgOrderFlag.setTagName(orderFlagEnum.getRemark());
             pgOrderFlag.setSortNum(orderFlagEnum.getSortNum());
             pgOrderFlag.setRemark(remark);
-            if(orderFlagEnum.getSortNum() != null && orderFlagEnum.getSortNum().intValue() == -1){
+            if (orderFlagEnum.getSortNum() != null && orderFlagEnum.getSortNum() == -1) {
                 pgOrderFlag.setType(0);
             }
             orderFlags.add(pgOrderFlag);
         }
-        pgOrderFlagService.saveBatch(orderFlags);
+        if (CollectionUtil.isNotEmpty(orderFlags))
+            pgOrderFlagService.saveBatch(orderFlags);
+
         //如果是异常反馈,标识主表字段
-        if(orderFlagEnum.getKey().equals(OrderFlagEnum.YI_CHANGE.getKey())){
-            pgOrderBaseService.lambdaUpdate().set(PgOrderBase::getIsException,true).in(PgOrderBase::getId,orderBaseIds).update();
+        if (orderFlagEnum.getKey().equals(OrderFlagEnum.YI_CHANGE.getKey())) {
+            pgOrderBaseService.lambdaUpdate().set(PgOrderBase::getIsException, true).in(PgOrderBase::getId, orderBaseIds).update();
         }
+
     }
 
 
@@ -124,7 +141,7 @@ public class OrderFlagLogic {
     }
 
     public Map<String, List<PgOrderFlag>> list(List<String> orderBaseIds){
-        if(CollectionUtils.isEmpty(orderBaseIds)){
+        if(CollectionUtil.isEmpty(orderBaseIds)){
             return Collections.emptyMap();
         }
         return this.list(orderBaseIds,1);
@@ -148,7 +165,7 @@ public class OrderFlagLogic {
      * 查询服务单标识-列表
      */
     public Map<String, List<PgOrderFlag>> list(List<String> orderBaseIds,Integer type){
-        if(CollectionUtils.isEmpty(orderBaseIds)){
+        if(CollectionUtil.isEmpty(orderBaseIds)){
             return Collections.emptyMap();
         }
         return pgOrderFlagService.lambdaQuery()