From 83e3d34abd06c0256f61382c4c9cf89c4be109d8 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 19 五月 2025 19:35:41 +0800
Subject: [PATCH] #问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java         |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java         |    8 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java          |    2 
 rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx                               |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java      |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java                  |    4 -
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java            |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java         |    8 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java    |   11 +--
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java       |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java |   18 ++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java       |   53 +++++++++++++----
 13 files changed, 82 insertions(+), 39 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
index 115901a..fc25ff4 100644
--- a/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
+++ b/rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
@@ -36,10 +36,10 @@
     };
 
     React.useEffect(() => {
-        if (record?.areaIds && record.areaIds.length > 0) {
+        if (record?.areaIds && record.areaIds.length !== 0  && record.areaIds.length > 0) {
             fetchAreaNames();
         }
-    }, [record]);
+    }, [record]);    
 
     if (loading) {
         return <CircularProgress size={20} />;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
index 129de11..48df947 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/WcsController.java
@@ -38,7 +38,7 @@
         if (Cools.isEmpty(param.getLocType1())){
             return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
         }
-        InTaskMsgDto msgDto = wcsService.createInTask(param,getLoginUserId());
+        InTaskMsgDto msgDto = wcsService.createInTask(param);
         return R.ok(msgDto);
 
 
@@ -56,7 +56,7 @@
         if (Cools.isEmpty(param.getBarcode())) {
             return R.error("鏉$爜涓嶈兘涓虹┖");
         }
-        if (param.getIoType().equals(TaskType.TASK_TYPE_AGV_IN.type)) {
+        if (!param.getIoType().equals(TaskType.TASK_TYPE_IN.type)) {
             return R.error("鍏ュ簱绫诲瀷鏈夎");
         }
         wcsService.agvTaskPickUpComplete(param);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java
index aee0ee6..155829f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/TaskInParam.java
@@ -9,6 +9,7 @@
     private Integer sourceStaNo; //浣滀笟绔欑偣 or 鏉ユ簮绔欑偣
     private String barcode; //瀹瑰櫒鏉$爜
     private Integer locType1; //搴撲綅绫诲瀷
+    private Long user;
 //    private Integer locType2; //搴撲綅绫诲瀷
 //    private Integer locType3; //搴撲綅绫诲瀷
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java
index 46b655a..0048a4d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/WcsService.java
@@ -4,7 +4,7 @@
 import com.vincent.rsf.server.api.controller.params.TaskInParam;
 
 public interface WcsService {
-    InTaskMsgDto createInTask(TaskInParam param, Long loginUserId);
+    InTaskMsgDto createInTask(TaskInParam param);
 
     void agvTaskPickUpComplete(TaskInParam param);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
index dc2d1f8..5793052 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
@@ -82,6 +82,7 @@
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R AGVInTaskStart(Map<String, Object> params,Long loginUserId ) {
         String sta = params.get("sta").toString();
         String area = params.get("area").toString();
@@ -112,6 +113,13 @@
 
         taskService.generateAGVTasks(waitPakin,targetLoc,sta,loginUserId);
 
+        basStation.setUseStatus(StaUseStatusType.TYPE_R.type);
+        if (!basStationService.updateById(basStation)){
+            throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐�");
+        }
+
+
+
         return R.ok();
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index bfe75b6..638917e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -940,8 +940,8 @@
 //        List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
 
         WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
-                .eq(!Cools.isEmpty(params.get("barcode")),WaitPakin::getBarcode, params.get("barcode").toString())
-                .eq(!Cools.isEmpty(params.get("code")),WaitPakin::getCode, params.get("code").toString())
+                .eq(!Cools.isEmpty(params.get("barcode")),WaitPakin::getBarcode, params.get("barcode"))
+                .eq(!Cools.isEmpty(params.get("code")),WaitPakin::getCode, params.get("code"))
                 .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
         if (Objects.isNull(waitPakin)) {
             return R.error("鏈壘鍒拌瀹瑰櫒鐮佺殑缁勬墭鏄庣粏锛岃妫�鏌ョ粍鎵樼姸鎬�");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 4e610b6..84f477e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -83,7 +83,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public InTaskMsgDto createInTask(TaskInParam param, Long loginUserId) {
+    public InTaskMsgDto createInTask(TaskInParam param) {
         // 鑾峰彇搴撲綅鍙�
         InTaskMsgDto locNo = getLocNo(param);
 
@@ -98,7 +98,7 @@
 
         // 鍒涘缓骞朵繚瀛樹换鍔�
         Task task = createTask(ruleCode, locNo.getLocNo(), waitPakin.getBarcode(),
-                deviceSite.getDeviceSite(), param.getSourceStaNo().toString(), loginUserId);
+                deviceSite.getDeviceSite(), param.getSourceStaNo().toString(), param.getUser());
 
         // 鏇存柊搴撲綅鐘舵��
         updateLocStatus(task.getTargLoc(), waitPakin.getBarcode());
@@ -107,10 +107,10 @@
         List<WaitPakinItem> waitPakinItems = getWaitPakinItems(waitPakin.getId());
 
         // 鍒涘缓骞朵繚瀛樹换鍔℃槑缁�
-        saveTaskItems(task.getId(), waitPakinItems, loginUserId);
+        saveTaskItems(task.getId(), waitPakinItems, param.getUser());
 
         // 鏇存柊缁勬墭鐘舵��
-        updateWaitPakinStatus(param.getBarcode(), loginUserId);
+        updateWaitPakinStatus(param.getBarcode(), param.getUser());
 
         // 璁剧疆宸ヤ綔鍗曞彿骞惰繑鍥�
         locNo.setWorkNo(ruleCode);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java
index f9fa107..2d70b3b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasStationController.java
@@ -33,13 +33,16 @@
         PageParam<BasStation, BaseParam> pageParam = new PageParam<>(baseParam, BasStation.class);
         PageParam<BasStation, BaseParam> page = basStationService.page(pageParam, pageParam.buildWrapper(true));
         for (BasStation station : page.getRecords()) {
-            String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1);
-            String[] parts = content.split(",");
-            Long[] longArray = new Long[parts.length];
-            for (int i = 0; i < parts.length; i++) {
-                longArray[i] = Long.parseLong(parts[i].trim());
+            if (!Cools.isEmpty(station.getCrossZoneArea())) {
+                String content = station.getCrossZoneArea().substring(1, station.getCrossZoneArea().length() - 1);
+                String[] parts = content.split(",");
+                Long[] longArray = new Long[parts.length];
+                for (int i = 0; i < parts.length; i++) {
+                    longArray[i] = Long.parseLong(parts[i].trim());
+                }
+                station.setAreaIds(longArray);
             }
-            station.setAreaIds(longArray);
+
         }
         return R.ok().add(page);
     }
@@ -85,6 +88,9 @@
         if (!Cools.isEmpty(serviceOne)) {
             return R.error(basStation.getStationName()+"绔欏凡琚垵濮嬪寲");
         }
+        if (null !=basStation.getAreaIds()){
+            basStation.setCrossZoneArea(Arrays.toString(basStation.getAreaIds()));
+        }
         if (!basStationService.save(basStation)) {
             return R.error("淇濆瓨澶辫触");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index 9741a32..114e815 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -6,21 +6,15 @@
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.manager.enums.TaskStsType;
+import com.vincent.rsf.server.manager.entity.*;
+import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.common.utils.ExcelUtil;
 import com.vincent.rsf.server.common.annotation.OperationLog;
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
-import com.vincent.rsf.server.manager.entity.Loc;
-import com.vincent.rsf.server.manager.entity.Task;
-import com.vincent.rsf.server.manager.entity.TaskItem;
-import com.vincent.rsf.server.manager.entity.WaitPakin;
-import com.vincent.rsf.server.manager.enums.PakinIOStatus;
-import com.vincent.rsf.server.manager.service.LocService;
-import com.vincent.rsf.server.manager.service.TaskItemService;
-import com.vincent.rsf.server.manager.service.TaskService;
-import com.vincent.rsf.server.manager.service.WaitPakinService;
+import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl;
 import com.vincent.rsf.server.system.controller.BaseController;
 import com.vincent.rsf.server.system.enums.LocStsType;
 import io.swagger.annotations.ApiOperation;
@@ -46,6 +40,8 @@
 
     @Autowired
     private LocService locService;
+    @Autowired
+    private BasStationService basStationService;
 
     @PreAuthorize("hasAuthority('manager:task:list')")
     @PostMapping("/task/page")
@@ -120,7 +116,8 @@
             if (null != waitPakin) {
                 waitPakin.setIoStatus(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
                 if (!waitPakinService.updateById(waitPakin)) {
-                    return R.error("鏇存柊缁勬墭鐘舵�佸け璐�");
+                    throw new CoolException("鏇存柊缁勬墭鐘舵�佸け璐ワ紒锛�");
+
                 }
             }
             Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
@@ -132,9 +129,41 @@
 
                 loc.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
                 if (!locService.updateById(loc)) {
-                    return R.error("鏇存柊搴撲綅鐘舵�佸け璐�");
+                    throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐ワ紒锛�");
                 }
             }
+            if (task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.id)){
+                BasStation basStation = null;
+                if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
+                ){
+                    basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                            .eq(BasStation::getStationName, task.getOrgSite())
+                            .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
+                    );
+
+
+                } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+                        || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
+                ) {
+                    basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                            .eq(BasStation::getStationName, task.getTargLoc())
+                            .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
+                    );
+                }
+                if (null == basStation) {
+                    throw new CoolException("绔欑偣鐘舵�侀敊璇紒锛�");
+                }
+                basStation.setUseStatus(StaUseStatusType.TYPE_F.type);
+                if (!basStationService.updateById(basStation)){
+                    throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐ワ紒锛�");
+                }
+            }
+
+
         }
         if (!taskService.removeByIds(Arrays.asList(ids))) {
             return R.error("Delete Fail");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java
index 4a14128..6aec967 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/StaUseStatusType.java
@@ -4,6 +4,8 @@
     //璁㈠崟绫诲瀷
     TYPE_O("O", "绌洪棽"),
     TYPE_F("F", "鍗犵敤"),
+    TYPE_S("S", "棰勭害鍏ョ珯"),
+    TYPE_R("R", "棰勭害鍑虹珯"),
     TYPE_X("X", "绂佺敤"),
 
     ;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
index 8ee875c..8e01b64 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -10,15 +10,13 @@
 public enum TaskType {
 
     TASK_TYPE_IN("1", "鍏ュ簱"),
-    TASK_TYPE_FLAT_WAREHOUSE_IN("2", "骞冲簱涓婃灦"),
-    TASK_TYPE_AGV_IN("3", "AGV鍏ュ簱"),
     TASK_TYPE_EMPITY_IN("10", "绌烘澘鍏ュ簱"),
     TASK_TYPE_LOC_MOVE("11", "搴撴牸绉昏浇"),
     TASK_TYPE_PICK_IN("53", "鎷f枡鍐嶅叆搴�"),
     TASK_TYPE_MERGE_IN("54", "骞舵澘鍐嶅叆搴�"),
     TASK_TYPE_CHECK_IN("57", "鐩樼偣鍐嶅叆搴�"),
     TASK_TYPE_OUT("101", "鍑哄簱"),
-    TASK_TYPE_PICK_AGAIN_IN("103", "鎷f枡鍏ュ簱"),
+    TASK_TYPE_PICK_AGAIN_IN("103", "鎷f枡鍑哄簱"),
     TASK_TYPE_MERGE_OUT("104", "骞舵澘鍑哄簱"),
     TASK_TYPE_CHECK_OUT("107", "鐩樼偣鍑哄簱"),
     TASK_TYPE_EMPITY_OUT("110", "绌烘澘鍑哄簱"),
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index 54675bd..9df319a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -56,7 +56,7 @@
     * @time 2025/4/2 12:37
     */
 //    @Scheduled(cron = "0 0/05 * * * ?  ")
-    @Scheduled(cron = "0/15 * * * * ?")
+    @Scheduled(cron = "0/3 * * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void completeInStock() throws Exception {
         List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index c8291e1..ecbe972 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -3,15 +3,12 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.server.manager.enums.OrderType;
-import com.vincent.rsf.server.manager.enums.TaskStsType;
+import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.api.utils.LocUtils;
 import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams;
 import com.vincent.rsf.server.manager.entity.*;
-import com.vincent.rsf.server.manager.enums.PakinIOStatus;
 import com.vincent.rsf.server.manager.mapper.TaskMapper;
 import com.vincent.rsf.server.manager.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -93,7 +90,8 @@
             Task task = new Task();
             task.setTaskCode(ruleCode)
                     .setTaskStatus(TaskStsType.GENERATE_IN.id.shortValue())
-                    .setTaskType(TaskType.TASK_TYPE_AGV_IN.type.shortValue())
+                    .setTaskType(TaskType.TASK_TYPE_IN.type.shortValue())
+                    .setWarehType(WarehType.WAREHOUSE_TYPE_AGV.id)
                     .setTargLoc(targetLoc)
                     .setOrgSite(orgSta)
                     .setBarcode(pakin.getBarcode())
@@ -178,7 +176,8 @@
             Task task = new Task();
             task.setTaskCode(ruleCode)
                     .setTaskStatus(TaskStsType.COMPLETE_IN.id.shortValue())
-                    .setTaskType(TaskType.TASK_TYPE_FLAT_WAREHOUSE_IN.type.shortValue())
+                    .setTaskType(TaskType.TASK_TYPE_IN.type.shortValue())
+                    .setWarehType(WarehType.WAREHOUSE_TYPE_PLAT.id)
                     .setTargLoc(targetLoc)
                     .setBarcode(pakin.getBarcode())
                     .setCreateBy(loginUserId)

--
Gitblit v1.9.1