From 7c69a5f7246ae92bf07884258abd64c9635e1bea Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 27 四月 2025 14:51:49 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/TaskLogScheduler.java        |  124 ++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java    |    6 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   31 +++++--
 src/main/java/com/zy/asrs/controller/TaskWrkController.java |   59 --------------
 src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java  |    3 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   16 ++++
 6 files changed, 167 insertions(+), 72 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 90055d5..e9181b3 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -149,12 +149,12 @@
                 return R.error("鏉$爜[barcode]涓嶈兘涓虹┖");
             }
 
-            openService.taskCreateIn(param);
+            HashMap<String, Object> result = openService.taskCreateIn(param);
+            return R.ok().add(result);
         }catch (Exception e){
             log.error("浠诲姟涓嬪彂寮傚父"+e);
-            return R.error();
         }
-        return R.ok();
+        return R.error();
     }
 
     //鏌ヨ浠诲姟璇︽儏
diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
index 7a21695..252b1a3 100644
--- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -1,30 +1,22 @@
 package com.zy.asrs.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
-import com.zy.asrs.domain.dto.NotifyCustomDataDto;
-import com.zy.asrs.domain.enums.NotifyMsgType;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.TaskWrk;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.CommandInfoService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.TaskWrkService;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
-import com.zy.asrs.utils.NotifyUtils;
-import com.zy.common.utils.HttpHandler;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
@@ -33,20 +25,10 @@
 @Slf4j
 public class TaskWrkController extends BaseController {
 
-    @Value("${wms.url}")
-    private String wmsUrl;
     @Autowired
     private TaskWrkService taskWrkService;
     @Autowired
-    private CommandInfoService commandInfoService;
-    @Autowired
     private LocMastService locMastService;
-    @Value("${wms.TaskExecCallback}")
-    private String TaskExecCallback;
-    @Autowired
-    private ApiLogService apiLogService;
-    @Autowired
-    private NotifyUtils notifyUtils;
 
     @RequestMapping(value = "/taskWrk/{wrkNo}/auth")
     @ManagerAuth
@@ -173,45 +155,10 @@
     @ManagerAuth(memo = "鎵嬪姩瀹屾垚浠诲姟")
     public R complete(@RequestParam String taskNo) {
         TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
-        if (Cools.isEmpty(taskWrk) || taskWrk.getStatus()>=3){
-            return R.error("宸插畬缁撴垨宸插彇娑�") ;
+        if (Cools.isEmpty(taskWrk) || taskWrk.getStatus() >= 3) {
+            return R.error("宸插畬缁撴垨宸插彇娑�");
         }
-        LocMast locMast = new LocMast();
-        if(taskWrk.getIoType()==1){//鍏ュ簱浠诲姟瀹屾垚搴撲綅涓篎
-            locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
-            if(Cools.isEmpty(locMast)){
-              R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
-            }
-            locMast.setLocSts("F");
-            locMast.setModiTime(new Date());
-            locMast.setBarcode(taskWrk.getBarcode());
-        }else if(taskWrk.getIoType()==2){//鍑哄簱浠诲姟瀹屾垚搴撲綅涓篛
-            locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
-            if(Cools.isEmpty(locMast)){
-                R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
-            }
-            locMast.setLocSts("O");
-            locMast.setModiTime(new Date());
-        }else if(taskWrk.getIoType()==3){
-            locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
-            if(Cools.isEmpty(locMast)){
-                R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
-            }
-            locMast.setLocSts("O");
-            locMast.setModiTime(new Date());
-            locMastService.updateById(locMast);
-            locMast=locMastService.selectByLocNo(taskWrk.getTargetPoint());
-            if(Cools.isEmpty(locMast)){
-                R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
-            }
-            locMast.setLocSts("F");
-            locMast.setModiTime(new Date());
-            locMast.setBarcode(taskWrk.getBarcode());
-
-        }
-
-        locMastService.updateById(locMast);
-        taskWrk.setStatus(7);//鎵嬪姩瀹屾垚浠诲姟
+        taskWrk.setStatus(TaskStatusType.MANUAL_OVER.id);//鎵嬪姩瀹屾垚浠诲姟
         taskWrk.setModiTime(new Date());
         taskWrkService.updateById(taskWrk);
         return R.ok();
diff --git a/src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java b/src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java
index 248701c..423f3a2 100644
--- a/src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java
+++ b/src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java
@@ -6,7 +6,8 @@
     DISTRIBUTE(2,"娲惧彂"),
     COMPLETE(3,"鍛戒护瀹屾垚"),
     CANCEL(4,"鍙栨秷"),
-    OVER(5,"瀹岀粨")
+    OVER(5,"瀹岀粨"),
+    MANUAL_OVER(7,"鎵嬪姩瀹岀粨"),
     ;
 
     public Integer id;
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 91ad04b..f20e742 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -210,6 +210,11 @@
                                     continue;
                                 }
 
+                                if (!locMast.getLocSts().equals("O")) {
+                                    log.info(locNo + "搴撲綅涓嶅浜庣┖搴撲綅");
+                                    continue;
+                                }
+
                                 Date now = new Date();
                                 taskWrk = new TaskWrk();
                                 taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
@@ -217,21 +222,25 @@
                                 taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
                                 taskWrk.setWrkSts(2);//2.璁惧涓婅蛋
                                 taskWrk.setCreateTime(now);
-                                taskWrk.setIoType(1);//浠诲姟绫诲瀷
-                                taskWrk.setIoPri(13);//浼樺厛绾�
-                                taskWrk.setBarcode(barcode);//鏉$爜
-                                taskWrk.setCrnNo(locMast.getCrnNo());
-                                taskWrk.setTargetPoint(locNo);
-                                taskWrk.setStartPoint(String.valueOf(staProtocol.getStaNo()));
-                                if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
-                                    taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
-                                }
+                                    taskWrk.setIoType(1);//浠诲姟绫诲瀷
+                                    taskWrk.setIoPri(13);//浼樺厛绾�
+                                    taskWrk.setBarcode(barcode);//鏉$爜
+                                    taskWrk.setCrnNo(locMast.getCrnNo());
+                                    taskWrk.setTargetPoint(locNo);
+                                    taskWrk.setStartPoint(String.valueOf(staProtocol.getStaNo()));
+                                    if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+                                        taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+                                    }
 
-                                if (!taskWrkService.insert(taskWrk)) {
-                                    log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触");
+                                    if (!taskWrkService.insert(taskWrk)) {
+                                        log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触");
                                     continue;
                                 }
 
+                                locMast.setLocSts("S");
+                                locMast.setModiTime(new Date());
+                                locMastService.updateById(locMast);
+
                                 StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                         .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
                                 staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index cd5f403..9adda8a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -104,6 +104,22 @@
         Date now = new Date();
         taskWrk = new TaskWrk();
         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getTargetPoint()));
+        if (locMast == null) {
+            map.put("Code","0");
+            map.put("Msg", param.getTaskNo() + "搴撲綅涓嶅瓨鍦紒");
+            return map;
+        }
+
+        if (!locMast.getLocSts().equals("O")) {
+            map.put("Code","0");
+            map.put("Msg", param.getTaskNo() + "搴撲綅涓嶅浜庣┖搴撲綅锛�");
+            return map;
+        }
+
+        locMast.setLocSts("S");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+
         int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
         taskWrk.setTaskNo(param.getTaskNo());//浠诲姟鍙�
         taskWrk.setWrkNo(workNo1);
diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
index dc30951..9f0112d 100644
--- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -1,6 +1,8 @@
 package com.zy.asrs.task;
 
 import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.dto.NotifyCustomDataDto;
 import com.zy.asrs.domain.enums.NotifyMsgType;
@@ -16,6 +18,7 @@
 import org.springframework.stereotype.Component;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.HashMap;
 
 /**
@@ -42,6 +45,8 @@
     private String taskStatusFeedbackPath;
     @Autowired
     private NotifyUtils notifyUtils;
+    @Autowired
+    private LocMastService locMastService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
     public void execute() throws IOException {
@@ -50,12 +55,129 @@
             headParam.put("TaskNo", taskWrk.getTaskNo());
 
             NotifyMsgType notifyMsgType = null;
-            if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//瀹屾垚
+            if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus().equals(TaskStatusType.MANUAL_OVER.id)) {//瀹屾垚
                 headParam.put("Result", 1);//瀹屾垚
                 notifyMsgType = NotifyMsgType.TASK_COMPLETE;
+
+                if (taskWrk.getIoType() == 1) {//鍏ュ簱浠诲姟瀹屾垚搴撲綅涓篎
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getTargetPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("S")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶴.鍏ュ簱棰勭害");
+                    }
+
+                    locMast.setLocSts("F");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode(taskWrk.getBarcode());
+                    locMastService.updateById(locMast);
+                } else if (taskWrk.getIoType() == 2) {//鍑哄簱浠诲姟瀹屾垚搴撲綅涓篛
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getStartPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("R")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶳.鍑哄簱棰勭害");
+                    }
+
+                    locMast.setLocSts("O");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode("");
+                    locMastService.updateById(locMast);
+                } else if (taskWrk.getIoType() == 3) {//绉诲簱
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getStartPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("R")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶳.鍑哄簱棰勭害");
+                    }
+
+                    LocMast locMastTarget = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                    if (locMastTarget == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getTargetPoint());
+                    }
+
+                    if (!locMastTarget.getLocSts().equals("S")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶴.鍏ュ簱棰勭害");
+                    }
+
+                    locMastTarget.setLocSts("F");
+                    locMastTarget.setModiTime(new Date());
+                    locMastTarget.setBarcode(taskWrk.getBarcode());
+                    locMastService.updateById(locMastTarget);
+
+                    locMast.setLocSts("O");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode("");
+                    locMastService.updateById(locMast);
+                }
+
             } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) {
                 headParam.put("Result", 2);//鍙栨秷
                 notifyMsgType = NotifyMsgType.TASK_CANCEL;
+
+                if (taskWrk.getIoType() == 1) {//鍏ュ簱浠诲姟
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getTargetPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("S")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶴.鍏ュ簱棰勭害");
+                    }
+
+                    locMast.setLocSts("O");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode("");
+                    locMastService.updateById(locMast);
+                } else if (taskWrk.getIoType() == 2) {//鍑哄簱浠诲姟
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getStartPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("R")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶳.鍑哄簱棰勭害");
+                    }
+
+                    locMast.setLocSts("F");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode(taskWrk.getBarcode());
+                    locMastService.updateById(locMast);
+                } else if (taskWrk.getIoType() == 3) {//绉诲簱
+                    LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
+                    if (locMast == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getStartPoint());
+                    }
+
+                    if (!locMast.getLocSts().equals("R")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶳.鍑哄簱棰勭害");
+                    }
+
+                    LocMast locMastTarget = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+                    if (locMastTarget == null) {
+                        throw new CoolException("娌℃湁鎵惧埌璇ュ簱浣�" + taskWrk.getTargetPoint());
+                    }
+
+                    if (!locMastTarget.getLocSts().equals("S")) {
+                        throw new CoolException(taskWrk.getTaskNo() + "搴撲綅涓嶅浜嶴.鍏ュ簱棰勭害");
+                    }
+
+                    locMastTarget.setLocSts("O");
+                    locMastTarget.setModiTime(new Date());
+                    locMastTarget.setBarcode("");
+                    locMastService.updateById(locMastTarget);
+
+                    locMast.setLocSts("F");
+                    locMast.setModiTime(new Date());
+                    locMast.setBarcode(taskWrk.getBarcode());
+                    locMastService.updateById(locMast);
+                }
             }
 
             NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();

--
Gitblit v1.9.1