From 3bf6f972604761c9ac59a2cb9ea01eeacaec2189 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 15:43:51 +0800
Subject: [PATCH] 更新为正式部署许可证

---
 src/main/java/com/zy/asrs/controller/MesController.java |  187 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 166 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MesController.java b/src/main/java/com/zy/asrs/controller/MesController.java
index a690371..52b6720 100644
--- a/src/main/java/com/zy/asrs/controller/MesController.java
+++ b/src/main/java/com/zy/asrs/controller/MesController.java
@@ -2,18 +2,32 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.AppAuth;
+import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
+import com.core.common.R;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.CanFin;
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.entity.mes.*;
+import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.mapper.CanFinMapper;
 import com.zy.asrs.service.MesService;
+import com.zy.asrs.service.MobileService;
+import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
+import java.util.Date;
+import java.util.List;
 
 @RestController
 @Slf4j
@@ -21,6 +35,15 @@
 
     @Resource
     private MesService mesService;
+
+    @Autowired
+    private MobileService mobileService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private CanFinMapper canFinMapper;
 
     private void auth(String appkey, Object obj, HttpServletRequest request) {
         log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getRequestURI(), appkey, JSON.toJSONString(obj));
@@ -30,12 +53,17 @@
     // 鐗╂枡淇℃伅鍚屾
     @PostMapping("/api/mes/synMatInfo")
     @AppAuth(memo = "鐗╂枡淇℃伅鍚屾")
-    public MesReturn synMatInfo(@RequestHeader(required = false) String appkey,@RequestBody MesMatRecvForm param, HttpServletRequest request){
-        auth(appkey, param, request);
+//    public MesReturn synMatInfo(@RequestHeader(required = false) String appkey, @RequestBody List<MesMatRecvForm> params, HttpServletRequest request){
+    public MesReturn synMatInfo(@RequestHeader(required = false) String appkey, @RequestBody MesMatRecvForm params, HttpServletRequest request){
+        auth(appkey, params, request);
         MesReturn mesReturn = new MesReturn();
         try {
-            mesReturn = mesService.matInfoAndInBound(param);
+//            for (MesMatRecvForm param : params){
+//                mesReturn = mesService.matInfoAndInBound(param);
+//            }
+                mesReturn = mesService.matInfoAndInBound(params);
         } catch (Exception e) {
+            log.error(String.valueOf(e));
             mesReturn.setSuccess("2");
             mesReturn.setMessage("鐗╂枡淇℃伅鍚屾澶辫触");
         }
@@ -119,26 +147,143 @@
         return mesService.queryInventory(itemno,orderNo);
     }
 
-    @PostMapping("/api/mes/pauseAGV")
-    public MesReturn AGVPause(@RequestBody JSONObject param) throws IOException {
-        MesReturn mesReturn = new MesReturn();
-        int AGVType;
-        if (param.containsKey("zoneCode")){
-            param.put("mapCode", "BB");
-            param.put("invoke", "FREEZE");
-            AGVType = 1;
+    /**
+     * MES璋冪敤PDA鐨凙GV璁㈠崟鍏ュ簱鎺ュ彛
+     * @param combParam
+     * @return
+     */
+    @RequestMapping("/comb/auth")
+    @ManagerAuth(memo = "缁勬墭")
+    public R comb(@RequestBody CombParam combParam){
+        log.info("=============== MES涓嬪彂缁勬墭璁㈠崟 ===============");
+        log.info("{}", combParam);
+        log.info("=============== MES涓嬪彂缁勬墭璁㈠崟 ===============");
+        if (combParam.getUserId() != null && !combParam.getUserId().equals(null)){
+            mobileService.comb(combParam, combParam.getUserId());
         }else {
-            AGVType = 2;
+            mobileService.comb(combParam, getUserId());
         }
-        if (mesService.AGVPause(param, AGVType) == 1){
-            mesReturn.setSuccess("1");
-            mesReturn.setMessage("鎴愬姛");
-            return mesReturn;
-        }else {
-            mesReturn.setSuccess("2");
-            mesReturn.setMessage("澶辫触");
-            return mesReturn;
-        }
+        return R.ok("缁勬墭鎴愬姛");
     }
 
+    /**
+     * MES璋冪敤PDA鐨勮ˉ绌烘澘
+     *
+     * @param locNo 鐩爣绔欑偣
+     * @param size  鎵樼洏澶у皬 1锛氬皬鎵樼洏  2锛氬ぇ鎵樼洏
+     * @return
+     */
+    @PostMapping("/callEmptyBinOutBound")
+    public synchronized R callEmptyBinOutBound(@RequestParam(required = false) String locNo
+            , @RequestParam(required = false) String size
+            , @RequestParam(required = false) String palletFormat
+            , @RequestParam(required = false) String agvTaskNo) {
+        if (Cools.isEmpty(locNo) || Cools.isEmpty(size)) {
+            return R.error("绔欑偣鎴栬�呭ぇ灏忎笉鑳戒负绌�");
+        }
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("memo", locNo));
+        if (wrkMast != null) {
+            return R.error("璇ョ珯鐐�="+locNo+"宸茬粡鏈夌┖鏉垮嚭搴撲换鍔★紝涓轰簡涓嶅牭濉炲爢鍨涙満鎺ラ┏绔欑偣锛岀姝笅鍙戝涓┖鏉垮嚭搴撲换鍔�");
+        }
+        return mobileService.callEmptyBinOutBound(locNo, size, palletFormat, agvTaskNo, 9995L);
+    }
+
+
+    /**
+     * 绌烘澘鍥炲簱鎴栬�呮嫞鏂欏洖搴�
+     *
+     * @param sourceStaNo
+     * @param staNo
+     * @return
+     */
+    @RequestMapping("/AGVStartReturn")
+    public synchronized R AGVStartReturn(@RequestParam(required = false) String sourceStaNo
+            , @RequestParam(required = false) String staNo
+            , @RequestParam(required = false) String taskNo) {
+        if (Cools.isEmpty(sourceStaNo) || Cools.isEmpty(staNo)) {
+            return R.error("婧愮珯鐐瑰拰鎵樼洏鐮佷笉鑳戒负绌�");
+        }
+        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("source_sta_no", sourceStaNo).eq("barcode", staNo));
+        if (tasks.size() > 0) {
+            return R.error("璇ユ墭鐩�="+staNo+"宸茬粡瀛樺湪鎼繍浠诲姟锛岃涓嶈閲嶅涓嬪彂");
+        }
+
+        String barcode = staNo.substring(0,1);
+        if(barcode.equals("3")){
+            taskNo = "307";
+        }else if(barcode.equals("4")){
+            taskNo = "402";
+        }else if(barcode.equals("5")){
+            taskNo = "401";
+        }
+
+        R r = R.ok();
+        //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+        // 淇濆瓨宸ヤ綔妗�
+        Task task = new Task();
+        Date date = new Date();
+        String TaskNo = 555555 + "aa" + date.getTime();
+        task.setWrkNo((int) date.getTime())
+                .setTaskNo(TaskNo)
+                .setIoTime(date)
+                .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+                .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�  4.绔欏埌鍖哄煙
+                .setTaskType("agv")
+                .setIoPri(10D)
+                .setFullPlt("Y") // 婊℃澘锛歒
+                .setPicking("N") // 鎷f枡
+                .setExitMk("N")// 閫�鍑�
+                .setStaNo(taskNo)
+                .setSourceStaNo(sourceStaNo)//agv鍙栬揣绔欑偣
+                .setEmptyMk("N")// 绌烘澘
+                .setBarcode(staNo)// 鎵樼洏鐮�
+                .setLinkMis("N")
+                .setAppeUser(9945L)
+                .setAppeTime(date)
+                .setModiUser(9945L)
+                .setModiTime(date);
+        if (taskService.insert(task)) {
+            Date now = new Date();
+            CanFin canFin = new CanFin();
+            canFin.setAgvType("agv-in");
+            canFin.setInNo(TaskNo);
+            canFin.setApplyTime(now);
+            canFinMapper.insert(canFin);
+        }else{
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        return r;
+    }
+    @PostMapping("/api/mes/pauseAGV")
+    public MesReturn AGVPause(@RequestBody JSONObject param){
+        MesReturn mesReturn = new MesReturn();
+
+        String type = "STOP";
+        if (param.getString("type") != null){
+            type = "START";
+        }
+
+        switch (mesService.AGVPause(param, type)){
+            case 1:
+                mesReturn.setSuccess("1");
+                mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+                return mesReturn;
+            case 2:
+                mesReturn.setSuccess("1");
+                mesReturn.setMessage("娴峰悍AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+                return mesReturn;
+            case 3:
+                mesReturn.setSuccess("1");
+                mesReturn.setMessage("鍗庢檽AGV鏆傚仠鎴栧惎鍔ㄦ垚鍔�");
+                return mesReturn;
+            case 4:
+                mesReturn.setSuccess("2");
+                mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄨ皟鐢ㄥけ璐�");
+                return mesReturn;
+        }
+        mesReturn.setSuccess("2");
+        mesReturn.setMessage("AGV鏆傚仠鎴栧惎鍔ㄨ皟鐢ㄥけ璐�");
+        return mesReturn;
+    }
 }

--
Gitblit v1.9.1