From 1de6b39bfe3967916dcab8122be0d69fbaba8cca Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 30 五月 2025 17:29:06 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   78 +++++++++++++++++++++++++++------------
 1 files changed, 54 insertions(+), 24 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index cac3725..43a083b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -1,7 +1,5 @@
 package com.vincent.rsf.server.manager.service.impl;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
@@ -14,7 +12,6 @@
 import com.vincent.rsf.server.manager.controller.params.LocToTaskParams;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.*;
-import com.vincent.rsf.server.manager.enums.LocType;
 import com.vincent.rsf.server.manager.mapper.LocItemMapper;
 import com.vincent.rsf.server.manager.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +24,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.lang.reflect.Array;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,8 +41,6 @@
     @Autowired
     private DeviceSiteService deviceSiteService;
     @Autowired
-    private SlaveProperties slaveProperties;
-    @Autowired
     private WcsService wcsService;
 
 
@@ -55,12 +49,13 @@
      * type: check 鐩樼偣, stock: 搴撳瓨鍑哄簱
      *
      * @param map
+     * @param loginUserId
      * @return
      */
     @Override
     @Synchronized
     @Transactional(rollbackFor = Exception.class)
-    public R generateTask(LocToTaskParams map) {
+    public R generateTask(LocToTaskParams map, Long loginUserId) {
         if (Objects.isNull(map.getSiteNo())) {
             throw new CoolException("绔欑偣涓嶈兘涓虹┖锛�");
         }
@@ -84,9 +79,9 @@
             }
 
             Task moveTask = new Task();
-            if (!LocUtils.isShallowLoc(slaveProperties, loc.getCode())) {
+            if (!LocUtils.isShallowLoc(loc.getCode())) {
                 //鑾峰彇娣卞簱浣嶅搴旀祬搴撲綅
-                String shallowLoc = LocUtils.getShallowLoc(slaveProperties, loc.getCode());
+                String shallowLoc = LocUtils.getShallowLoc(loc.getCode());
                 Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc));
                 if (Objects.isNull(one)) {
                     throw new CoolException("瀵瑰簲搴撲綅涓嶅瓨鍦紒锛�");
@@ -94,7 +89,7 @@
                 map.setOrgLoc(one.getCode());
                 //浼樺厛鐢熸垚绉诲簱浠诲姟
                 if (!one.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
-                    moveTask = genMoveTask(map);
+                    moveTask = genMoveTask(map, loginUserId);
                 }
             }
 
@@ -103,6 +98,11 @@
                     .setTaskCode(ruleCode)
                     .setParentId(moveTask.getId())
                     .setTargSite(siteNo)
+                    .setSort(Constants.TASK_SORT_DEFAULT_VALUE)
+                    .setUpdateBy(loginUserId)
+                    .setCreateBy(loginUserId)
+                    .setCreateTime(new Date())
+                    .setUpdateTime(new Date())
                     .setTaskStatus(TaskStsType.GENERATE_OUT.id)
                     .setBarcode(loc.getBarcode());
 
@@ -125,8 +125,6 @@
                 Double useQty = Math.round((outQty + workQty) * 10000) / 10000.0;
                 if (orgQty.compareTo(useQty) > 0) {
                     //鎷f枡鍑哄簱
-                    task.setTaskType(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type);
-
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                             .eq(DeviceSite::getSite, siteNo)
                             .eq(DeviceSite::getChannel, loc.getChannel())
@@ -134,19 +132,21 @@
                     if (Objects.isNull(deviceSite)) {
                         throw new CoolException("绔欑偣涓嶆敮鎸佹嫞鏂欏嚭搴擄紒锛�");
                     }
+                    task.setTaskType(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type).setWarehType(deviceSite.getDevice());
+
                 } else {
                     //鍏ㄦ澘鍑哄簱
-                    task.setTaskType(TaskType.TASK_TYPE_OUT.type);
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                             .eq(DeviceSite::getChannel, loc.getChannel())
                             .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_OUT.type));
                     if (Objects.isNull(deviceSite)) {
                         throw new CoolException("绔欑偣涓嶆敮鎸佸叏鏉垮嚭搴擄紒锛�");
                     }
+                    task.setTaskType(TaskType.TASK_TYPE_OUT.type).setWarehType(deviceSite.getDevice());
+
                 }
             } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK)) {
                 //鐩樼偣鍑哄簱
-                task.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type);
                 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                         .eq(DeviceSite::getChannel, loc.getChannel())
                         .eq(DeviceSite::getSite, siteNo)
@@ -154,11 +154,21 @@
                 if (Objects.isNull(deviceSite)) {
                     throw new CoolException("褰撳墠绔欑偣涓嶆敮鎸佺洏鐐瑰嚭搴擄紒锛�");
                 }
+
+                task.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type).setWarehType(deviceSite.getDevice());
             }
 
             if (!taskService.save(task)) {
                 throw new CoolException("浠诲姟鍒涘缓澶辫触锛侊紒");
             }
+
+            if (!Objects.isNull(moveTask.getId())) {
+                moveTask.setParentId(task.getId());
+                if (!taskService.saveOrUpdate(moveTask)) {
+                    throw new CoolException("浠诲姟淇℃伅淇敼澶辫触锛侊紒");
+                }
+            }
+
             List<TaskItem> taskItems = new ArrayList<>();
             listMap.get(key).forEach(item -> {
                 TaskItem taskItem = new TaskItem();
@@ -166,6 +176,13 @@
                 taskItem.setTaskId(task.getId())
                         .setAnfme(item.getOutQty())
                         .setBatch(item.getBatch())
+                        .setUpdateBy(loginUserId)
+                        .setCreateBy(loginUserId)
+                        .setSource(item.getId())
+                        .setSourceId(item.getLocId())
+                        .setSourceCode(item.getLocCode())
+                        .setCreateTime(new Date())
+                        .setUpdateTime(new Date())
                         .setOrderType(OrderType.ORDER_OUT.type)
                         .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
                 taskItems.add(taskItem);
@@ -186,6 +203,8 @@
                 } else {
                     item.setWorkQty(qty);
                 }
+                item.setUpdateBy(loginUserId).setUpdateTime(new Date());
+
                 if (!locItemService.updateById(item)) {
                     throw new CoolException("搴撳瓨淇℃伅淇敼澶辫触锛侊紒");
                 }
@@ -203,11 +222,12 @@
      * 鐢熸垚绉诲簱浠诲姟
      *
      * @param map
+     * @param loginUserId
      * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Task genMoveTask(LocToTaskParams map) {
+    public Task genMoveTask(LocToTaskParams map, Long loginUserId) {
         if (Objects.isNull(map.getOrgLoc()) || StringUtils.isBlank(map.getOrgLoc())) {
             throw new CoolException("婧愬簱浣嶄笉鑳戒负绌猴紒");
         }
@@ -217,11 +237,11 @@
             throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
         }
 
-        if (orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_R.type)
-                || orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_S.type)
-                || orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_X.type ) ) {
-            throw new CoolException("婧愬簱浣嶆湁浠诲姟姝e湪鎵ц涓�...");
-        }
+//        if (orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_R.type)
+//                || orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_S.type)
+//                || orgLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_X.type ) ) {
+//            throw new CoolException("婧愬簱浣嶆湁浠诲姟姝e湪鎵ц涓�...");
+//        }
 
         orgLoc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
 
@@ -240,8 +260,10 @@
             }
             TaskInParam param = new TaskInParam();
             param.setIoType(TaskType.TASK_TYPE_OUT.type)
+                    .setOrgLoc(map.getOrgLoc())
                     .setSourceStaNo(Integer.parseInt(deviceSite.getSite()))
-                    .setLocType1(Integer.parseInt(orgLoc.getType()));
+                    .setLocType1(Integer.parseInt(orgLoc.getType())
+                    );
             InTaskMsgDto locNo = null;
             try {
                 locNo = wcsService.getLocNo(param);
@@ -270,7 +292,10 @@
                 .setTaskCode(ruleCode)
                 .setTaskType(TaskType.TASK_TYPE_LOC_MOVE.type)
                 .setTargLoc(targetLoc.getCode())
-                .setTaskStatus(TaskStsType.GENERATE_IN.id)
+                .setUpdateBy(loginUserId)
+                .setSort(Constants.TASK_SORT_DEFAULT_VALUE)
+                .setUpdateTime(new Date())
+                .setTaskStatus(TaskStsType.GENERATE_OUT.id)
                 .setBarcode(orgLoc.getBarcode());
 
         if (!taskService.save(task)) {
@@ -286,8 +311,13 @@
                 taskItem.setTaskId(task.getId())
                         .setAnfme(item.getAnfme())
                         .setBatch(item.getBatch())
-                        .setOrderType(OrderType.ORDER_IN.type)
-                        .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type));
+                        .setUpdateBy(loginUserId)
+                        .setSourceId(item.getLocId())
+                        .setSourceCode(item.getLocCode())
+                        .setSource(item.getId())
+                        .setUpdateTime(new Date())
+                        .setOrderType(OrderType.ORDER_OUT.type)
+                        .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER.type));
                 taskItems.add(taskItem);
             }
             if (!taskItemService.saveBatch(taskItems)) {

--
Gitblit v1.9.1