From c4981fa8aa11b6509a5fb21f11ebe01c868a666a Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期六, 15 三月 2025 11:01:22 +0800
Subject: [PATCH] 配置信息

---
 src/main/java/com/zy/asrs/controller/TaskWrkController.java |  214 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 178 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
index f82660e..e1740ef 100644
--- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -1,28 +1,65 @@
 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.enums.TaskStatusType;
-import com.zy.asrs.entity.TaskWrk;
-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.DateUtils;
 import com.core.common.R;
+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.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.*;
 
 @RestController
+@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;
+
+    public static String getTaskType(Integer paramIoType) {
+        switch (paramIoType) {
+            case 1:
+                return "RK";
+            case 2:
+                return "CK";
+            case 3:
+                return "YK";
+            default:
+                return "鏈煡";
+        }
+    }
 
     @RequestMapping(value = "/taskWrk/{wrkNo}/auth")
     @ManagerAuth
@@ -32,22 +69,24 @@
 
     @RequestMapping(value = "/taskWrk/list/auth")
     @ManagerAuth
-    public R list(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam Map<String, Object> param){
+    public R list(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String orderByField,
+                  @RequestParam(required = false) String orderByType,
+                  @RequestParam Map<String, Object> param) {
         EntityWrapper<TaskWrk> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        }
         return R.ok(taskWrkService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -64,9 +103,9 @@
         return R.ok();
     }
 
-	@RequestMapping(value = "/taskWrk/update/auth")
-	@ManagerAuth
-    public R update(TaskWrk taskWrk){
+    @RequestMapping(value = "/taskWrk/update/auth")
+    @ManagerAuth
+    public R update(TaskWrk taskWrk) {
         if (Cools.isEmpty(taskWrk) || null == taskWrk.getTaskNo()) {
             return R.error();
         }
@@ -76,7 +115,7 @@
 
     @RequestMapping(value = "/taskWrk/updatePoint/auth")
     @ManagerAuth
-    public R updatePoint(TaskWrk taskWrk){
+    public R updatePoint(TaskWrk taskWrk) {
         if (Cools.isEmpty(taskWrk) || null == taskWrk.getTaskNo()) {
             return R.error();
         }
@@ -94,8 +133,8 @@
 
     @RequestMapping(value = "/taskWrk/delete/auth")
     @ManagerAuth
-    public R delete(@RequestParam(value="ids[]") Long[] ids){
-         for (Long id : ids){
+    public R delete(@RequestParam(value = "ids[]") Long[] ids) {
+        for (Long id : ids) {
             taskWrkService.deleteById(id);
         }
         return R.ok();
@@ -103,7 +142,7 @@
 
     @RequestMapping(value = "/taskWrk/export/auth")
     @ManagerAuth
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         EntityWrapper<TaskWrk> wrapper = new EntityWrapper<>();
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         Map<String, Object> map = excludeTrash(param.getJSONObject("taskWrk"));
@@ -119,7 +158,7 @@
         wrapper.like("id", condition);
         Page<TaskWrk> page = taskWrkService.selectPage(new Page<>(0, 10), wrapper);
         List<Map<String, Object>> result = new ArrayList<>();
-        for (TaskWrk taskWrk : page.getRecords()){
+        for (TaskWrk taskWrk : page.getRecords()) {
             Map<String, Object> map = new HashMap<>();
             map.put("id", taskWrk.getTaskNo());
             map.put("value", taskWrk.getTaskNo());
@@ -132,7 +171,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<TaskWrk> wrapper = new EntityWrapper<TaskWrk>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != taskWrkService.selectOne(wrapper)){
+        if (null != taskWrkService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(TaskWrk.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -149,23 +188,98 @@
     @ManagerAuth(memo = "鎵嬪姩瀹屾垚浠诲姟")
     public R complete(@RequestParam String taskNo) {
         TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
-        if (taskWrk == null) {
-            return R.error();
+        if (Cools.isEmpty(taskWrk) || taskWrk.getStatus() >= 3) {
+            return R.error("宸插畬缁撴垨宸插彇娑�");
         }
-        if (taskWrk.getStatus().equals(TaskStatusType.COMPLETE.id)) {
-            return R.error(taskWrk.getTaskNo() + "宸插畬缁�");
+        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());
+
         }
-        Date now = new Date();
-        taskWrk.setStatus(TaskStatusType.COMPLETE.id);
-        taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿
-        try{
-            taskWrk.setModiUser(getUserId());//鎿嶄綔鍛�
-        }catch (Exception e){
-            taskWrk.setModiUser(9999L);//鎿嶄綔鍛�
+        String response = "";
+        try {
+            HashMap<String, Object> headParam = new HashMap<>();
+            headParam.put("TaskNo", taskWrk.getTaskNo());
+            headParam.put("Result", 1);
+//            headParam.put("reportTime",new Date());
+            log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk);
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(wmsUrl)
+                    .setPath(TaskExecCallback)
+                    .setJson(JSON.toJSONString(headParam))
+                    .build()
+                    .doPost();
+
+            JSONObject jsonObject = JSON.parseObject(response);
+            apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
+                    , wmsUrl + TaskExecCallback
+                    , null
+                    , "127.0.0.1"
+                    , JSON.toJSONString(headParam)
+                    , response
+                    , true
+            );
+        } catch (Exception e) {
+            log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶眥},杩斿洖鍊�={}", taskWrk, response);
+//            throw new CoolException(e);
         }
-        taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
+        locMastService.updateById(locMast);
+        taskWrk.setStatus(7);//鎵嬪姩瀹屾垚浠诲姟
+        taskWrk.setModiTime(new Date());
         taskWrkService.updateById(taskWrk);
         return R.ok();
+    }
+
+    @PostMapping(value = "/taskWrk/returnWorkingCondition/auth")
+    @ManagerAuth(memo = "閲嶆柊缁欏爢鍨涙満涓嬪彂浠诲姟")
+    public R returnWorkingCondition(@RequestParam String taskNo) {
+        TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo);
+        if (!Cools.isEmpty(taskWrk) && taskWrk.getWrkSts() == 12) {
+            taskWrk.setWrkSts(11);
+            if (!taskWrkService.updateById(taskWrk)) {
+                return R.error("鏇存柊浠诲姟鐘舵�佸け璐�");
+            }
+            return R.ok();
+        } else if (!Cools.isEmpty(taskWrk) && taskWrk.getWrkSts() == 3) {
+            taskWrk.setWrkSts(2);
+            taskWrkService.updateById(taskWrk);
+            if (!taskWrkService.updateById(taskWrk)) {
+                return R.error("鏇存柊浠诲姟鐘舵�佸け璐�");
+            }
+            return R.ok();
+        } else {
+            return R.error("浠诲姟鐘舵�佷笉瀵规棤娉曢噸鏂扮粰鍫嗗灈鏈轰笅鍙戜换鍔�");
+        }
+
     }
 
     @PostMapping(value = "/taskWrk/cancel/auth")
@@ -181,11 +295,39 @@
         Date now = new Date();
         taskWrk.setStatus(TaskStatusType.CANCEL.id);
         taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿
-        try{
+        try {
             taskWrk.setModiUser(getUserId());//鎿嶄綔鍛�
-        }catch (Exception e){
+        } catch (Exception e) {
             taskWrk.setModiUser(9999L);//鎿嶄綔鍛�
         }
+        String response = "";
+        try {
+            HashMap<String, Object> headParam = new HashMap<>();
+            headParam.put("TaskNo", taskWrk.getTaskNo());
+            headParam.put("Result", 0);
+//            headParam.put("reportTime",new Date());
+
+            log.info("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wm={}", taskWrk);
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(wmsUrl)
+                    .setPath(TaskExecCallback)
+                    .setJson(JSON.toJSONString(headParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
+                    , wmsUrl + TaskExecCallback
+                    , null
+                    , "127.0.0.1"
+                    , JSON.toJSONString(headParam)
+                    , response
+                    , true
+            );
+        } catch (Exception e) {
+            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={},杩斿洖鍊�={}", taskWrk, response);
+//            throw new CoolException(e);
+        }
         taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿
         taskWrkService.updateById(taskWrk);
         return R.ok();

--
Gitblit v1.9.1