Przeglądaj źródła

工单取消接口以及更新数量接口相关代码

LZH 1 rok temu
rodzic
commit
c1c96f09ee

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/wms/asn/WmsDocAsnHeaderController.java

@@ -9,6 +9,9 @@ import javax.servlet.http.HttpServletResponse;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.form.DelDocAsnDetailsForm;
 import com.ruoyi.ams.asn.service.IWmsDocAsnDetailsService;
+import com.ruoyi.ams.xuankuang.domain.form.TicketTaskCancellation;
+import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
+import com.ruoyi.ams.xuankuang.service.WmsToWcsApiService;
 import com.ruoyi.base.domain.BaseIdsequence;
 import com.ruoyi.base.service.IBaseIdsequenceService;
 import com.ruoyi.common.core.domain.model.LoginUser;
@@ -40,6 +43,8 @@ public class WmsDocAsnHeaderController extends BaseController {
     private IBaseIdsequenceService baseIdsequenceService;
     @Autowired
     private IWmsDocAsnDetailsService wmsDocAsnDetailsService;
+    @Autowired
+    private WmsToWcsApiService wmsToWcsApiService;
 
     /**
      * 查询入库单列表
@@ -191,6 +196,13 @@ public class WmsDocAsnHeaderController extends BaseController {
     @PostMapping(value = "/closeAsn")
     public AjaxResult closeAsn(@RequestBody Map<String, Object> param) {
         String asnNo = param.get("asnNo").toString();
+        TicketTaskCancellation ticketTaskCancellation = new TicketTaskCancellation();
+        ticketTaskCancellation.setDocNo(asnNo);
+        ticketTaskCancellation.setLineNo("1");
+        WcsResponseVo wcsResponseVo = wmsToWcsApiService.cancelTheTask(ticketTaskCancellation);
+        if (!wcsResponseVo.isSuccess()){
+            return AjaxResult.error("只有未开始任务的订单才能关闭");
+        }
         return toAjax(wmsDocAsnHeaderService.closeHeader(asnNo));
     }
 

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/xuankuang/controller/WcsToWmsApiController.java

@@ -9,6 +9,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.spring.web.json.Json;
+
+import java.util.Locale;
 
 /**
  * WCS调WMS接口
@@ -95,6 +98,10 @@ public class WcsToWmsApiController {
     @ApiOperation("WCS安全交握AGV")
     @PostMapping("/callback/task")
     public AjaxResult callbackTask(@RequestBody CallbackTaskFrom callbackTaskFrom) {
+        System.out.println(callbackTaskFrom.getTaskNo());
+        System.out.println(callbackTaskFrom.getHandshakeType());
+        System.out.println(callbackTaskFrom.getMessage());
+        System.out.println(callbackTaskFrom.getSafeCode());
         return AjaxResult.success("");
     }
 
@@ -107,7 +114,21 @@ public class WcsToWmsApiController {
     @ApiOperation("WCS出库任务下发AGV")
     @PostMapping("/outboundRequest")
     public AjaxResult outboundRequest(@RequestBody OutboundForm outboundForm) {
+        System.out.println(outboundForm.getWcsId());
+        System.out.println(outboundForm.getPalletNo());
         return AjaxResult.success("任务创建成功");
     }
 
+    /**
+     * 当入库时因为物料袋破碎等原因,导致入库袋数减少,更新数据
+     *
+     * @param outboundForm
+     * @return
+     */
+    @ApiOperation("入库数量不足更新数据")
+    @PostMapping("/updateAsnData")
+    public AjaxResult updateAsnData(@RequestBody UpdateForm updateForm) {
+        return wcsToWmsApiService.updateAsnData(updateForm);
+    }
+
 }

+ 66 - 3
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java

@@ -23,7 +23,7 @@ import com.ruoyi.common.utils.StringUtils;
 
 /**
  * 通用http发送方法
- * 
+ *
  * @author ruoyi
  */
 public class HttpUtils
@@ -50,7 +50,7 @@ public class HttpUtils
      */
     public static String sendGet(String url, String param)
     {
-        return sendGet(url, param, Constants.UTF8);
+        return sendGet1(url, param, Constants.UTF8);
     }
 
     /**
@@ -116,6 +116,69 @@ public class HttpUtils
         return result.toString();
     }
 
+    /**
+     * 向指定 URL 发送GET方法的请求
+     *
+     * @param url 发送请求的 URL
+     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @param contentType 编码类型
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendGet1(String url, String param, String contentType)
+    {
+        StringBuilder result = new StringBuilder();
+        BufferedReader in = null;
+        try
+        {
+            String urlNameString = StringUtils.isNotBlank(param) ? url + param : url;
+            log.info("sendGet - {}", urlNameString);
+            URL realUrl = new URL(urlNameString);
+            URLConnection connection = realUrl.openConnection();
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            connection.connect();
+            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
+            String line;
+            while ((line = in.readLine()) != null)
+            {
+                result.append(line);
+            }
+            log.info("recv - {}", result);
+        }
+        catch (ConnectException e)
+        {
+            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
+        }
+        catch (SocketTimeoutException e)
+        {
+            log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e);
+        }
+        catch (IOException e)
+        {
+            log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e);
+        }
+        catch (Exception e)
+        {
+            log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e);
+        }
+        finally
+        {
+            try
+            {
+                if (in != null)
+                {
+                    in.close();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+            }
+        }
+        return result.toString();
+    }
+
     /**
      * 向指定 URL 发送POST方法的请求
      *
@@ -271,4 +334,4 @@ public class HttpUtils
             return true;
         }
     }
-}
+}

+ 39 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/domain/form/TicketTaskCancellation.java

@@ -0,0 +1,39 @@
+package com.ruoyi.ams.xuankuang.domain.form;
+
+/**
+ * @author Jwk
+ * @version 1.0
+ * @date 2023/5/8 23:07
+ */
+
+/**
+ * 工单任务取消
+ */
+public class TicketTaskCancellation {
+
+    /**
+     * 单号
+     */
+    String docNo;
+
+    /**
+     * 行号
+     */
+    String lineNo;
+
+    public String getDocNo() {
+        return docNo;
+    }
+
+    public void setDocNo(String docNo) {
+        this.docNo = docNo;
+    }
+
+    public String getLineNo() {
+        return lineNo;
+    }
+
+    public void setLineNo(String lineNo) {
+        this.lineNo = lineNo;
+    }
+}

+ 49 - 0
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/domain/form/UpdateForm.java

@@ -0,0 +1,49 @@
+package com.ruoyi.ams.xuankuang.domain.form;
+
+/**
+ * @author Jwk
+ * @version 1.0
+ * @date 2023/3/30 16:37
+ */
+
+/**
+ * 更新数据
+ */
+public class UpdateForm {
+    /**
+     * 单号
+     */
+    private String docNo;
+    /**
+     * 行号
+     */
+    private String lineNo;
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    public String getDocNo() {
+        return docNo;
+    }
+
+    public void setDocNo(String docNo) {
+        this.docNo = docNo;
+    }
+
+    public String getLineNo() {
+        return lineNo;
+    }
+
+    public void setLineNo(String lineNo) {
+        this.lineNo = lineNo;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+}

+ 24 - 3
warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WmsToWcsApiService.java

@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
 import com.ruoyi.ams.xuankuang.domain.form.*;
 import com.ruoyi.ams.xuankuang.domain.vo.WcsResponseVo;
 import com.ruoyi.base.constant.Constant;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.HttpMethod;
 import com.ruoyi.common.utils.http.HttpRequest;
 import com.ruoyi.common.utils.http.HttpUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -87,7 +89,7 @@ public class WmsToWcsApiService {
         String r = "";
         WcsResponseVo wcsResponseVo = new WcsResponseVo();
         try {
-            r = HttpRequest.postData(Constant.WCS_TASK_URL, json);
+            r = HttpRequest.postData(Constant.WCS_TASK_URL4, json);
             wcsResponseVo = JSON.parseObject(r, WcsResponseVo.class);
         } catch (Exception e) {
             log.error("agv入库任务下发接口失败: ", e);
@@ -105,7 +107,7 @@ public class WmsToWcsApiService {
         String r = "";
         WcsResponseVo wcsResponseVo = new WcsResponseVo();
         try {
-            r = HttpUtils.sendGet(Constant.WCS_TASK_URL, taskNo);
+            r = HttpUtils.sendGet(Constant.WCS_TASK_URL5, taskNo);
             wcsResponseVo = JSON.parseObject(r, WcsResponseVo.class);
         } catch (Exception e) {
             log.error("agv回调wcs卸货完成失败: ", e);
@@ -123,11 +125,30 @@ public class WmsToWcsApiService {
         String r = "";
         WcsResponseVo wcsResponseVo = new WcsResponseVo();
         try {
-            r = HttpUtils.sendGet(Constant.WCS_TASK_URL, wcsId);
+            r = HttpUtils.sendGet(Constant.WCS_TASK_URL6, wcsId);
             wcsResponseVo = JSON.parseObject(r, WcsResponseVo.class);
         } catch (Exception e) {
             log.error("agv回调wcs货物取走接口失败: ", e);
         }
         return wcsResponseVo;
     }
+
+    /**
+     * 工单任务取消接口
+     * @param ticketTaskCancellation
+     * @return
+     */
+    public WcsResponseVo cancelTheTask(TicketTaskCancellation ticketTaskCancellation){
+        String json = JSON.toJSONString(ticketTaskCancellation);
+        String r = "";
+        WcsResponseVo wcsResponseVo = new WcsResponseVo();
+        try {
+            r = HttpRequest.postData(Constant.WCS_TASK_URL3, json);
+            wcsResponseVo = JSON.parseObject(r, WcsResponseVo.class);
+        } catch (Exception e) {
+            log.error("任务取消失败", e);
+        }
+        return wcsResponseVo;
+    }
 }
+