‘linchangsheng’ 5 months ago
parent
commit
c3ee4c06db

+ 11 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/workerorder/ChangeOrderController.java

@@ -66,6 +66,17 @@ public class ChangeOrderController {
     }
 
 
+    @PostMapping("/changWebsit")
+    @ApiOperation("自动派工")
+    public ResponseHelper changWebsit(
+            @RequestBody ChangeWorkerVO changeWorkerVO,
+            HttpServletRequest request
+    ) throws ParseException {
+        changeOrderLogic.changWebsit(changeWorkerVO.getIds());
+        return ResponseHelper.success();
+    }
+
+
 
     @PostMapping("/getOrderProduct")
     @ApiOperation("完工明细")

+ 62 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/ChangeOrderLogic.java

@@ -18,6 +18,7 @@ import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.logic.common.SysDictCompanyLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
+import com.gree.mall.manager.utils.StringUtil;
 import com.gree.mall.manager.utils.excel.ExcelUtils;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
@@ -176,9 +177,27 @@ public class ChangeOrderLogic {
 
         }
 
+        List<String> orderIds = new ArrayList<>();
+
+        for (String id : ids) {
+            PgOrderBase pgOrderBase = pgOrderBaseService.getById(id);
+
+            PgOrderProduct pgOrderProduct = pgOrderProductService.lambdaQuery().eq(PgOrderProduct::getOrderBaseId, id)
+                    .one();
+
+            if (websitDispatchService.lambdaQuery()
+                    .eq( WebsitDispatch::getStreetCode, pgOrderBase.getStreetId())
+                    .eq(WebsitDispatch::getSaleTypeId, pgOrderBase.getSaleType())
+                    .eq( WebsitDispatch::getCategoryId,pgOrderProduct.getMainId())
+                    .eq( WebsitDispatch::getOrderSmallId, pgOrderBase.getOrderSmallType())
+                    .eq(!StringUtil.isEmpty(websitId), WebsitDispatch::getWebsitId, websitId).count() > 0) {
+                orderIds.add(id);
+            }
+        }
+
 
         pgOrderBaseService.lambdaUpdate()
-                .in(PgOrderBase::getId, ids)
+                .in(PgOrderBase::getId, orderIds)
                 .set(PgOrderBase::getWorkerName, userOne.getNickName())
                 .set(PgOrderBase::getWebsitId, websitId)
                 .set(PgOrderBase::getWebsitName, adminWebsit.getName())
@@ -587,4 +606,46 @@ public class ChangeOrderLogic {
 
         return websitDispatchService.getById(id);
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void changWebsit(List<String> ids) {
+
+        List<String> orderIds = new ArrayList<>();
+
+        for (String id : ids) {
+            PgOrderBase pgOrderBase = pgOrderBaseService.getById(id);
+
+            PgOrderProduct pgOrderProduct = pgOrderProductService.lambdaQuery().eq(PgOrderProduct::getOrderBaseId, id)
+                    .one();
+
+            if (!StringUtils.equalsAny(pgOrderBase.getOrderStatus(),"DSHPG","CJ","YPD","DXSPD","DZBPG","DWDSPGP","DXSSPGP","DTJXSSPGP","DZBSPGP","DFZXPD","DFZXSPGP")){
+                continue;
+            }
+
+            if (websitDispatchService.lambdaQuery()
+                    .eq( WebsitDispatch::getStreetCode, pgOrderBase.getStreetId())
+                    .eq(WebsitDispatch::getSaleTypeId, pgOrderBase.getSaleType())
+                    .eq( WebsitDispatch::getCategoryId,pgOrderProduct.getMainId())
+                    .eq( WebsitDispatch::getOrderSmallId, pgOrderBase.getOrderSmallType())
+                    .count() > 0) {
+
+                WebsitDispatch websitDispatch = websitDispatchService.lambdaQuery()
+                        .eq(WebsitDispatch::getStreetCode, pgOrderBase.getStreetId())
+                        .eq(WebsitDispatch::getSaleTypeId, pgOrderBase.getSaleType())
+                        .eq(WebsitDispatch::getCategoryId, pgOrderProduct.getMainId())
+                        .eq(WebsitDispatch::getOrderSmallId, pgOrderBase.getOrderSmallType())
+                        .last("limit 1").one();
+
+                pgOrderBase.setWebsitId(websitDispatch.getWebsitId());
+                pgOrderBase.setWebsitName(websitDispatch.getWebsitName());
+                pgOrderBase.setDispatchWebsitTime(new Date());
+                pgOrderBase.updateById();
+
+                orderLogLogic.addLog(pgOrderBase.getId(), "指派网点", "自动派工给网点【" +(pgOrderBase.getWebsitId())+ pgOrderBase.getWebsitName() + "】", pgOrderBase.getWebsitName());
+
+
+
+            }
+        }
+    }
 }