|
@@ -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();
|