BSWYZ пре 3 месеци
родитељ
комит
54aef52429

+ 84 - 5
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/operationManagementCenter/ToolbarController.java

@@ -22,6 +22,7 @@ import com.github.zuihou.business.edgeLibrary.service.StockInfoService;
 import com.github.zuihou.business.edgeLibrary.service.StorgeService;
 import com.github.zuihou.business.externalApi.dto.ManualInfo;
 import com.github.zuihou.business.externalApi.entity.AgvHikOrderDetailInfo;
+import com.github.zuihou.business.externalApi.entity.AgvHikOrderInfo;
 import com.github.zuihou.business.externalApi.service.AgvHikOrderDetailInfoService;
 import com.github.zuihou.business.externalApi.service.AgvHikOrderInfoService;
 import com.github.zuihou.business.operationManagementCenter.dto.TTaskPageDTO;
@@ -48,6 +49,7 @@ import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
 import com.github.zuihou.log.annotation.SysLog;
 import com.google.common.collect.Maps;
+import com.qiniu.common.Zone;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -805,13 +807,90 @@ public class ToolbarController {
     public R agvTaskNotice(@RequestBody Map data) {
         BaseContextHandler.setTenant("0000");
         String taskCode = data.containsKey("taskCode")? data.get("taskCode").toString() : null;
-        if(StringUtils.isEmpty(taskCode)) return R.fail("数据传参为空");
+        String currentPositionCode = data.containsKey("currentPositionCode")? data.get("currentPositionCode").toString() : null;
+        if(StringUtils.isEmpty(taskCode) && StringUtils.isEmpty(currentPositionCode)) return R.fail("数据传参为空");
+
+        AgvHikOrderDetailInfo agvHikOrderDetailInfo = agvHikOrderDetailInfoService.getOne(new LbqWrapper<AgvHikOrderDetailInfo>().eq(AgvHikOrderDetailInfo::getTaskCode, taskCode).last("limit 1"));
+        if(null == agvHikOrderDetailInfo) return R.fail("任务编码传参有误");
+        String reqCode = agvHikOrderDetailInfo.getReqCode();
+
+        AgvHikOrderInfo agvHikOrderInfo = agvHikOrderInfoService.getOne(new LbqWrapper<AgvHikOrderInfo>().eq(AgvHikOrderInfo::getTaskCode, taskCode).last("limit 1"));
+        String startBin = agvHikOrderInfo.getStart().substring(0,2).toUpperCase();
+        String target = agvHikOrderInfo.getGoal().substring(0,2).toUpperCase();
+        System.out.println("起始位:"+startBin + " 目标位:" + target);
+
+        ZZone zZone = new ZZone();
+        JSONObject jsonParam = new JSONObject();
+        switch (currentPositionCode) {
+            case "start":
+//                System.out.println(currentPositionCode + " : 起点进入");
+                // 判断使用那条线的plc
+                if ("BZ".equals(startBin)) {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, startBin.toLowerCase()).last("limit 1"));
+                }else {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, startBin).last("limit 1"));
+                }
+                Map<String, String> startPlcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
+                jsonParam.put("url",startPlcInfo.get("url"));
+                jsonParam.put("port",startPlcInfo.get("port"));
+                jsonParam.put("start",  "1");
+                break;
+            case "outbin":
+//                System.out.println(currentPositionCode + " : 起点出");
+                // 判断使用那条线的plc
+                if ("BZ".equals(startBin)) {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, startBin.toLowerCase()).last("limit 1"));
+                }else {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, startBin).last("limit 1"));
+                }
+                Map<String, String> outbinPlcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
+                jsonParam.put("url",outbinPlcInfo.get("url"));
+                jsonParam.put("port",outbinPlcInfo.get("port"));
+                jsonParam.put("start",  "0");
+                break;
+            case "arrive":
+//                System.out.println(currentPositionCode + " : 终点入");
+                // 判断使用那条线的plc
+                if ("BZ".equals(target)) {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, target.toLowerCase()).last("limit 1"));
+                }else {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, target).last("limit 1"));
+                }
+                Map<String, String> arrivePlcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
+                jsonParam.put("url",arrivePlcInfo.get("url"));
+                jsonParam.put("port",arrivePlcInfo.get("port"));
+                jsonParam.put("start",  "1");
+                break;
+            case "end":
+//                System.out.println(currentPositionCode + " : 终点出");
+                // 判断使用那条线的plc
+                if ("BZ".equals(target)) {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, target.toLowerCase()).last("limit 1"));
+                }else {
+                    zZone = zoneService.getOne(new LbqWrapper<ZZone>().eq(ZZone::getAka, target).last("limit 1"));
+                }
+                Map<String, String> endPlcInfo = DictionaryKey.PLC_CATEGORY.get(zZone.getNo());
+                jsonParam.put("url",endPlcInfo.get("url"));
+                jsonParam.put("port",endPlcInfo.get("port"));
+                jsonParam.put("start",  "0");
+                break;
+            default:
+                return R.fail("起始信号为空");
+        }
+        String hostSystemUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(ParameterKey.HOSTSYSTEMURL).toString());
+        if(StringUtils.isEmpty(hostSystemUrl)) return R.fail("Redis缓存数据不存在");
+        String instructionUrl = "/api/setLightCurtain";
+        String callbackTaskList = msgUtil.httpForPost(hostSystemUrl+instructionUrl, jsonParam.toJSONString());
+        JSONObject jsonObject = JSONObject.parseObject(callbackTaskList);
         //判断是否允许继续执行任务 默认位true
-        boolean bool = true;
+        boolean bool = Boolean.parseBoolean(jsonObject.getString("result"));
+        if(null==callbackTaskList) {
+            return R.fail("CCS数据调用失败");
+        }else if (!bool){
+            return R.fail("CCS开关光幕失败");
+        }
+
         if(bool){
-            AgvHikOrderDetailInfo agvHikOrderDetailInfo = agvHikOrderDetailInfoService.getOne(new LbqWrapper<AgvHikOrderDetailInfo>().eq(AgvHikOrderDetailInfo::getTaskCode, taskCode).last("limit 1"));
-            if(null == agvHikOrderDetailInfo) return R.fail("任务编码传参有误");
-            String reqCode = agvHikOrderDetailInfo.getReqCode();
             String agvContinueTaskUrl = (null == msgUtil.redis_get(ParameterKey.PARAMETERS)? "": ((Map<String,String>)msgUtil.redis_get(ParameterKey.PARAMETERS)).get(ParameterKey.CONTINUETASK).toString());
             if(StringUtils.isEmpty(agvContinueTaskUrl)) return R.fail("继续执行任务接口地址为空");
             JSONObject params = new JSONObject();