From 4a1a21fc5e83081b9432777c5cf0510b3d7c0dcc Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 31 十月 2024 13:50:07 +0800
Subject: [PATCH] 入库呼叫agv取货修改

---
 src/main/java/com/zy/asrs/controller/MobileController.java |  144 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 138 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index b436325..cc313b9 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -1,30 +1,31 @@
 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.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.entity.param.GDYKConfirmGoodsParam;
-import com.zy.asrs.entity.param.MobileAdjustParam;
-import com.zy.asrs.entity.param.OffSaleParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.MobileAdjustResult;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
+import com.zy.common.constant.ApiInterfaceConstant;
 import com.zy.common.model.WrkDto;
 import com.zy.common.service.CommonService;
+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.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.List;
 
 /**
  * 绉诲姩绔帴鍙f帶鍒跺櫒
@@ -32,6 +33,7 @@
  */
 @RestController
 @RequestMapping("mobile")
+@Slf4j
 public class MobileController extends BaseController  {
 
     @Autowired
@@ -61,6 +63,136 @@
     @Autowired
     private CommonService commonService;
 
+    @PostMapping("/agv/start")
+    @ManagerAuth
+    public R pdaAgvStart(@RequestBody Map<String,Object> map){
+//        HashMap<String, String> map1 = new HashMap<>();
+//        map1.put("agv0001","sta0001");
+//        String sta = map.get("sta").toString();
+//
+//        ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam();
+//        getAgvTaskParam(forwardAGVTaskParam,sta,map1.get(sta));
+//        String request = forwardAGVHttpRequest(forwardAGVTaskParam, "10.0.100.110:8182", "/rcms/services/rest/hikRpcService/genAgvSchedulingTask");
+//        if ("SUCCESS".equals(request)) {
+//            return R.ok();
+//        }
+        String sta = (String) map.get("sta"); // 鏆傚瓨浣�
+        String inSts = "1040"; // 鍏ュ簱绔欑偣
+
+        ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam();
+        forwardAGVTaskParam.setReqCode("test");
+        forwardAGVTaskParam.setTaskTyp("GT3");
+        forwardAGVTaskParam.setCtnrTyp("2");
+        forwardAGVTaskParam.setPriority("1");
+        List<ForwardAGVTaskParam.PositionCodePaths> positionCodePathsList = new ArrayList<>();
+        positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(sta,"05"));
+        positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(inSts,"05"));
+        forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
+
+        String body = JSON.toJSONString(forwardAGVTaskParam);
+        String response = "";
+        boolean success = false;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(ApiInterfaceConstant.AGV_IP)
+                    .setPath(ApiInterfaceConstant.AGV_CALL_IN_PATH)
+                    .setJson(body)
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.getInteger("code").equals(0)) {
+                success = true;
+            } else {
+                log.error("鍏ュ簱鍛煎彨agv澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ApiInterfaceConstant.AGV_IP+ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response);
+            }
+        } catch (Exception e) {
+            log.error("鍏ュ簱鍛煎彨agv寮傚父", e);
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+//                apiLogService.save(
+//                        "璇锋眰浠撳偍MES鐩樼偣鍗曚笂鎶ユ帴鍙�",
+//                        MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_SB_URL,
+//                        null,
+//                        "127.0.0.1",
+//                        JSON.toJSONString(collect),
+//                        response,
+//                        success
+//                );
+            } catch (Exception e) { log.error("", e); }
+        }
+
+        return R.error();
+    }
+
+    private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam,String agv,String sta){
+        List<ForwardAGVTaskParam.PositionCodePaths> agvTaskParamList = Arrays.asList(
+                //璧峰浣�
+                new ForwardAGVTaskParam.PositionCodePaths(agv,"05"),
+                //鐩爣浣�
+                new ForwardAGVTaskParam.PositionCodePaths(sta,"05")
+        );
+        Date date = new Date();
+        DecimalFormat df = new DecimalFormat("0000");
+        String wrkNo = "Crn"+date.getTime()/1000;
+        agvTaskCreateParam.setReqCode(wrkNo);
+        agvTaskCreateParam.setReqTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        agvTaskCreateParam.setTaskTyp("GT1");
+        agvTaskCreateParam.setCtnrCode("00000000");
+        agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
+        agvTaskCreateParam.setCtnrTyp("1");
+        agvTaskCreateParam.setTaskCode(wrkNo);
+
+    }
+
+    private String forwardAGVHttpRequest(Object requestParam, String url, String path){
+        String response = "";
+        String success = "error";
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(url)
+//                    .setHttps(true)
+                    .setPath(path)
+                    .setJson(JSONObject.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+
+            String message = jsonObject.get("code").toString();
+            if(("0").equals(message) || ("璇锋眰缂栧彿宸插瓨鍦�").contains(message)){
+                success = "SUCCESS";
+            }else {
+                success = message;
+            }
+            log.info("杞彂agv浠诲姟锛氳姹備綋:"+JSONObject.toJSONString(requestParam)+",杩斿洖鍊�:"+jsonObject);
+        }catch (Exception e){
+
+        }
+        return success;
+    }
+
+    @RequestMapping("/select/workDetl/barcode")
+    @ManagerAuth
+    public R selectWorkDetlBarcode(@RequestBody Map<String,Object> map) {
+        String barcode = map.get("barcode").toString();
+        if (Cools.isEmpty(barcode)) {
+            return R.error("鏉$爜涓虹┖");
+        }
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+        if (Cools.isEmpty(wrkMast)) {
+            return R.error("鏈壘鍒颁换鍔�");
+        }
+        if (wrkMast.getWrkSts() != 14 && wrkMast.getIoType() != 103) {
+            return R.error("浠诲姟鐘舵�佹湁璇�");
+        }
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (Cools.isEmpty(wrkDetls)) {
+            return R.error("宸ヤ綔鏄庣粏鏈夎");
+        }
+        return R.ok(wrkDetls);
+
+    }
+
     @RequestMapping("/leftovers/out")
     @ManagerAuth
     public R leftoversOut(@RequestBody Map<String,Object> map) {

--
Gitblit v1.9.1