From 0d04bc5d8080b82338302fba0a59fccff2eaedfc Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 06 七月 2025 11:28:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java | 497 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 310 insertions(+), 187 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java index 1fc8368..c1e15a8 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java @@ -1,15 +1,14 @@ package com.zy.asrs.wcs.core.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.common.utils.HttpHandler; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.common.SnowflakeIdWorker; import com.zy.asrs.wcs.core.domain.dto.BasLiftStaDto; -import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam; -import com.zy.asrs.wcs.core.domain.param.CreateManualTakeTaskParam; -import com.zy.asrs.wcs.core.domain.param.CreateMoveTaskParam; -import com.zy.asrs.wcs.core.domain.param.CreateOutTaskParam; +import com.zy.asrs.wcs.core.domain.param.*; import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; import com.zy.asrs.wcs.core.model.enums.TaskCtgType; @@ -19,20 +18,22 @@ import com.zy.asrs.wcs.rcs.cache.SlaveConnection; import com.zy.asrs.wcs.rcs.entity.Device; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; +import com.zy.asrs.wcs.rcs.model.enums.WorkModeType; import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; import com.zy.asrs.wcs.rcs.service.DeviceService; +import com.zy.asrs.wcs.rcs.thread.DevpThread; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import com.zy.asrs.wcs.system.controller.BaseController; import com.zy.asrs.wcs.system.entity.Dict; import com.zy.asrs.wcs.system.service.DictService; +import org.apache.poi.ss.formula.functions.T; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; -import java.util.Date; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; /** * 瀵瑰鏆撮湶鎺ュ彛 @@ -42,6 +43,7 @@ @RequestMapping("/openapi") public class OpenController extends BaseController { + private static final Logger log = LoggerFactory.getLogger(OpenController.class); @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired @@ -58,189 +60,239 @@ private BasConveyorPathService basConveyorPathService; @Autowired private BasLiftService basLiftService; + @Autowired + private BasConveyorService basConveyorService; + @Autowired + private BasConveyorStaService basConveyorStaService; + @Autowired + private OpenService openService; + + + @PostMapping("/agvPickupComplete") + public Map<String, Object> agvPickupComplete(@RequestBody AgvTaskParam agvTaskParam) { + HashMap<String, String> mesMap = new HashMap<>(); + mesMap.put("taskNo", agvTaskParam.getRobotTaskCode()); + mesMap.put("contNo",agvTaskParam.getExtra().getValues().getCarrierCode()); + boolean returnTask3 = toMesHttpRequest(mesMap, "172.18.231.126", "/api/wcs/wcsTaskInfo", "3",agvTaskParam.getExtra().getValues().getSlotName()); + + HashMap<String, Object> map = new HashMap<>(); + map.put("code","0"); + map.put("message","鎴愬姛"); + map.put("reqCode", ""); + log.info("agv璇锋眰鍙栬揣瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam)); + return map; + + } + + @PostMapping("/agvTaskComplete") + public Map<String, Object> agvTaskComplete(@RequestBody AgvTaskParam agvTaskParam) { + log.info("agv璇锋眰浠诲姟瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam)); + HashMap<String, Object> map = new HashMap<>(); + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getWmsTaskNo, agvTaskParam.getRobotTaskCode())); + if (!Cools.isEmpty(task)){ + if (agvTaskParam.getExtra().getValues().getSlotName().equals("06YZ0001")){ + Device device = deviceService.getOne(new LambdaQueryWrapper<Device>() + .eq(Device::getDeviceType, DeviceCtgType.CONVEYOR.val()) + .eq(Device::getStatus, 1) + .eq(Device::getDeviceNo, 1)); + if (device == null) { + map.put("code","1"); + map.put("message","澶辫触锛岃澶囦笉瀛樺湪"); + map.put("reqCode", ""); + return map; + } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, device.getId().intValue()); + if (devpThread == null) { + map.put("code","1"); + map.put("message","澶辫触锛岃緭閫佺嚎涓嶅湪绾�"); + map.put("reqCode", ""); + return map; + } + boolean result = devpThread.writeWorkSta(100, Short.parseShort("9999"), (short) 101); + if (!result) { + map.put("code","1"); + map.put("message","澶辫触锛岃緭閫佺嚎鍛戒护涓嬪彂澶辫触"); + map.put("reqCode", ""); + return map; + } + }else { + if (task.getTaskSts() == 1000 && task.getMemo().equals(agvTaskParam.getExtra().getValues().getSlotName())){ + HashMap<String, String> mesMap = new HashMap<>(); + mesMap.put("taskNo", agvTaskParam.getRobotTaskCode()); + mesMap.put("contNo",agvTaskParam.getExtra().getValues().getCarrierCode()); + boolean returnTask4 = toMesHttpRequest(mesMap, "172.18.231.126", "/api/wcs/wcsTaskInfo", "4",agvTaskParam.getExtra().getValues().getSlotName()); + if (returnTask4){ + task.setTaskSts(1001L); + taskService.updateById(task); + log.info("鍑哄簱浠诲姟瀹屾垚鎺ㄩ�乵es"+task.getWmsTaskNo()); + }else { + log.error("鍑哄簱浠诲姟瀹屾垚鎺ㄩ�乵es澶辫触"+task.getWmsTaskNo()); + } + + } + } + }else { + HashMap<String, String> mesMap = new HashMap<>(); + mesMap.put("taskNo", agvTaskParam.getRobotTaskCode()); + mesMap.put("contNo",agvTaskParam.getExtra().getValues().getCarrierCode()); + boolean returnTask4 = toMesHttpRequest(mesMap, "172.18.231.126", "/api/wcs/wcsTaskInfo", "4",agvTaskParam.getExtra().getValues().getSlotName()); + if (returnTask4){ + log.info("鍑哄簱浠诲姟瀹屾垚鎺ㄩ�乵es"+agvTaskParam.getRobotTaskCode()); + }else { + log.error("鍑哄簱浠诲姟瀹屾垚鎺ㄩ�乵es澶辫触"+agvTaskParam.getRobotTaskCode()); + } + } + + map.put("code","0"); + map.put("message","鎴愬姛"); + map.put("reqCode", ""); + return map; + } + + private boolean toMesHttpRequest(Map<String,String> map, String url, String path, String code,String location){ + Date now = new Date(); + long time = now.getTime()/1000; + ReturnWcsTaskStatisParam returnWcsTaskStatisParam = new ReturnWcsTaskStatisParam(); + returnWcsTaskStatisParam.setRequestPK(map.get("taskNo")); + returnWcsTaskStatisParam.setTrkId(map.get("taskNo")); + returnWcsTaskStatisParam.setContNo(map.get("contNo")); + returnWcsTaskStatisParam.setCode(code); + returnWcsTaskStatisParam.setOperator("wcs"); + returnWcsTaskStatisParam.setOperationTime(time); + returnWcsTaskStatisParam.setTrkType("01"); + returnWcsTaskStatisParam.setCurPos(location); + String response = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(url) + .setPath(path) + .setJson(JSONObject.toJSONString(returnWcsTaskStatisParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + + String code1 = jsonObject.get("success").toString(); + log.info("涓婃姤mes鎺ュ彛璇锋眰浣�:"+JSON.toJSONString(returnWcsTaskStatisParam) +",杩斿洖鍊�:"+jsonObject.toJSONString()); + if(code1.equals("1")){ + success = true; + } + }catch (Exception e){ + return success; + } + return success; + } + + + //鍙栨秷wcs浠诲姟 + @PostMapping("/cancelWcsTask") + public HashMap<String,Object> cancelWcsTask(@RequestBody CreateWcsTaskParam param){ + HashMap<String, Object> map = new HashMap<>(); + if (Cools.isEmpty(param)){ + map.put("success", "0"); + map.put("message", "澶辫触锛岃姹傚弬鏁颁负绌�"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + return map; + } + if (Cools.isEmpty(param.getRequestPK()) || Cools.isEmpty(param.getContNo()) ){ + map.put("success", "0"); + map.put("message", "澶辫触锛岃姹傚弬鏁颁负绌�"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + return map; + } + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, param.getRequestPK()).eq(Task::getHostId,1L)); + if (task == null){ + map.put("success", "0"); + map.put("message", "澶辫触锛屾湭鎵惧埌鐩稿悓缂栧彿鐨勪换鍔�"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + return map; + } + if (task.getTaskSts() == 1 || task.getTaskSts() == 101){ + boolean remove = false; + try { + remove = taskService.removeById(task); + }catch (Exception e){ + map.put("success", "0"); + map.put("message", "鍙栨秷浠诲姟澶辫触:"+e.getMessage()); + map.put("result", ""); + map.put("requestPK",param.getRequestPK()); + return map; + }finally { + if (remove){ + map.put("success", "1"); + map.put("message", "鍙栨秷浠诲姟鎴愬姛"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + }else { + map.put("success", "0"); + map.put("message", "鍙栨秷浠诲姟澶辫触"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + } + } + }else { + map.put("success", "0"); + map.put("message", "澶辫触锛屼换鍔″凡鎵ц"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + return map; + } + return map; + + } + + + //mes涓嬪彂浠诲姟 + @PostMapping("/createWcsTask") + public HashMap<String,Object> createWcsTask(@RequestBody CreateWcsTaskParam param){ + log.info("mes浠诲姟涓嬪彂锛岃姹備綋:"+JSONObject.toJSONString(param)); + HashMap<String, Object> map = new HashMap<>(); + if (Cools.isEmpty(param)){ + map.put("success", "0"); + map.put("message", "澶辫触锛岃姹傚弬鏁颁负绌�"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); + return map; + } + if (Cools.isEmpty(param.getRequestPK()) || Cools.isEmpty(param.getContNo()) || Cools.isEmpty(param.getTrkPrty()) || Cools.isEmpty(param.getToPos())){ + map.put("success", "0"); + map.put("message", "澶辫触锛岃姹傚弬鏁颁负绌�"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); + return map; + } + + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, param.getRequestPK()).eq(Task::getHostId,1L)); + if(task != null){ + map.put("success", "0"); + map.put("message", "澶辫触锛屽瓨鍦ㄧ浉鍚岀紪鍙风殑浠诲姟"); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); + return map; + } + + map = openService.createWcsTaskCache(param); + log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); + return map; + } //鐢熸垚鍏ュ簱浠诲姟 @PostMapping("/createInTask") public R createInTask(@RequestBody CreateInTaskParam param) { - //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 - TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) - .eq(TaskCtg::getStatus, 1)); - if (taskCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - - Long hostId = 1L;//榛樿涓讳粨搴� - - Loc loc = locService.selectByLocNo(param.getDestLoc()); - if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); - } - - //鑾峰彇涓ユ牸妯″紡鍙傛暟 - boolean mapStrict = true;//榛樿涓ユ牸妯″紡 - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); - if (dict != null) { - mapStrict = Boolean.parseBoolean(dict.getValue()); - } - - if (mapStrict && !loc.getLocStsFlag().equals("O")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢"); - } - - Task one = taskService.getOne(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskCtg.getId()) - .eq(Task::getOriginSite, param.getOriginSite()) - .eq(Task::getDestSite, param.getDestSite()) - .eq(Task::getDestLoc, param.getDestLoc())); - if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); - } - - String destSite = param.getDestSite(); - if (Cools.isEmpty(param.getDestSite())) { - //鐩爣绔欎负绌哄垯浣跨敤WCS绯荤粺鍐呯疆璺緞 - BasConveyorPath path = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() - .eq(BasConveyorPath::getTypeNo, taskCtg.getId()) - .eq(BasConveyorPath::getHostId, hostId) - .eq(BasConveyorPath::getStnNo, param.getOriginSite())); - if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); - } - destSite = String.valueOf(path.getDeviceStn()); - } - - //浼樺厛绾� - Integer priority = 10; - if (param.getPriority() != null) { - priority = param.getPriority(); - } - - Task task = new Task(); - task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); - task.setTaskNo(String.valueOf(Utils.getTaskNo("IN"))); - task.setWmsTaskNo(param.getTaskNo()); - task.setTaskSts(TaskStsType.NEW_INBOUND.sts); - task.setTaskCtg(taskCtg.getId()); - task.setPriority(priority); - task.setOriginSite(param.getOriginSite()); - task.setOriginLoc(null); - task.setDestSite(destSite); - task.setDestLoc(param.getDestLoc()); - task.setIoTime(new Date()); - task.setStartTime(new Date()); - task.setStatus(1); - task.setMemo(""); - task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� - task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 - task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 - - boolean result = taskService.save(task); - if (!result) { - return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触锛�"); - } - return R.ok(); + return openService.createInTask(param, null); } //鐢熸垚鍑哄簱浠诲姟 @PostMapping("/createOutTask") public R createOutTask(@RequestBody CreateOutTaskParam param) { - //鑾峰彇鍑哄簱浠诲姟绫诲瀷 - TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) - .eq(TaskCtg::getStatus, 1)); - if (taskCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - - Long hostId = 1L;//榛樿涓讳粨搴� - - Loc loc = locService.selectByLocNo(param.getOriginLoc()); - if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); - } - - //鑾峰彇涓ユ牸妯″紡鍙傛暟 - boolean mapStrict = true;//榛樿涓ユ牸妯″紡 - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); - if (dict != null) { - mapStrict = Boolean.parseBoolean(dict.getValue()); - } - - if (mapStrict && !loc.getLocStsFlag().equals("F")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢"); - } - - Task one = taskService.getOne(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskCtg.getId()) - .eq(Task::getOriginSite, param.getOriginSite()) - .eq(Task::getOriginLoc, param.getOriginLoc()) - .eq(Task::getDestSite, param.getDestSite())); - if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); - } - - String originSite = param.getOriginSite(); - if (Cools.isEmpty(param.getOriginSite())) { - //浣跨敤WCS绯荤粺鍐呯疆璺緞 - BasConveyorPath path = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() - .eq(BasConveyorPath::getTypeNo, taskCtg.getId()) - .eq(BasConveyorPath::getHostId, hostId) - .eq(BasConveyorPath::getStnNo, param.getDestSite())); - if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); - } - Integer deviceNo = path.getDeviceNo();//鑾峰彇鎻愬崌鏈哄彿 - BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getLiftNo, deviceNo).eq(BasLift::getHostId, hostId)); - if(basLift == null) { - return R.error("鎻愬崌鏈哄璞′笉瀛樺湪"); - } - List<BasLiftStaDto> staList = JSON.parseArray(basLift.getSta(), BasLiftStaDto.class); - BasLiftStaDto originStaDto = null; - for (BasLiftStaDto sta : staList) { - if (sta.getLev() == Utils.getLev(param.getOriginLoc())) { - originStaDto = sta; - break; - } - } - - if (originStaDto == null) { - return R.error("婧愮珯涓嶅瓨鍦�"); - } - - originSite = String.valueOf(originStaDto.getStaNo()); - } - - //浼樺厛绾� - Integer priority = 10; - if (param.getPriority() != null) { - priority = param.getPriority(); - } - - Task task = new Task(); - task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); - task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); - task.setWmsTaskNo(param.getTaskNo()); - task.setTaskSts(TaskStsType.NEW_OUTBOUND.sts); - task.setTaskCtg(taskCtg.getId()); - task.setPriority(priority); - task.setOriginSite(originSite); - task.setOriginLoc(param.getOriginLoc()); - task.setDestSite(param.getDestSite()); - task.setDestLoc(null); - task.setIoTime(new Date()); - task.setStartTime(new Date()); - task.setStatus(1); - task.setMemo(""); - task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� - task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 - task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 - - boolean result = taskService.save(task); - if (!result) { - return R.error("鐢熸垚鍑哄簱浠诲姟澶辫触锛�"); - } - return R.ok(); + return openService.createOutTask(param, null); } //鐢熸垚鎵嬪姩鍙栨斁璐т换鍔� @@ -294,6 +346,57 @@ return R.ok(); } + //鐢熸垚杞借揣绉诲姩浠诲姟 + @PostMapping("/createLadenMoveTakeTask") + public R createLadenMoveTakeTask(@RequestBody CreateManualTakeTaskParam param) { + //鑾峰彇鎵嬪姩浠诲姟绫诲瀷 + TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE)) + .eq(TaskCtg::getStatus, 1)); + if (taskCtg == null) { + return R.error("浠诲姟绫诲瀷寮傚父"); + } + + Task one = taskService.getOne(new LambdaQueryWrapper<Task>() + .eq(Task::getTaskCtg, taskCtg.getId()) + .eq(Task::getOriginLoc, param.getOriginLoc()) + .eq(Task::getDestLoc, param.getDestLoc())); + if (one != null) { + return R.error("浠诲姟宸插瓨鍦�"); + } + + //浼樺厛绾� + Integer priority = 10; + if (param.getPriority() != null) { + priority = param.getPriority(); + } + + Task task = new Task(); + task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); + task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); + task.setWmsTaskNo(param.getTaskNo()); + task.setTaskSts(TaskStsType.NEW_LADEN_MOVE.sts); + task.setTaskCtg(taskCtg.getId()); + task.setPriority(priority); + task.setOriginSite(null); + task.setOriginLoc(param.getOriginLoc());//婧愬簱浣� + task.setDestSite(null); + task.setDestLoc(param.getDestLoc());//鐩爣搴撲綅 + task.setIoTime(new Date()); + task.setStartTime(new Date()); + task.setStatus(1); + task.setMemo(""); + task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� + task.setRecordLoc(param.getRecord() ? "Y" : "N");//璁板綍搴撳瓨淇℃伅 + task.setHostId(1L);//涓存椂鎺у埗鍙厑璁竓ost涓�1 + + boolean result = taskService.save(task); + if (!result) { + return R.error("鐢熸垚鎵嬪姩鍙栨斁璐т换鍔″け璐ワ紒"); + } + return R.ok(); + } + //鐢熸垚灏忚溅绉诲姩浠诲姟 @PostMapping("/createMoveTask") public R createMoveTask(@RequestBody CreateMoveTaskParam param) { @@ -321,9 +424,9 @@ if (shuttleProtocol == null) { return R.error("绌挎杞︿笉鍦ㄧ嚎"); } - if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(param.getDestLoc())) { - return R.error("绌挎杞﹀拰鐩爣浣嶇疆涓嶅湪鍚屼竴妤煎眰"); - } +// if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(param.getDestLoc())) { +// return R.error("绌挎杞﹀拰鐩爣浣嶇疆涓嶅湪鍚屼竴妤煎眰"); +// } Task one = taskService.getOne(new LambdaQueryWrapper<Task>() .eq(Task::getTaskCtg, taskCtg.getId()) @@ -364,4 +467,24 @@ return R.ok(); } + //鍒囨崲宸ヤ綔妯″紡 + @PostMapping("/switchWorkMode") + public R switchWorkMode(@RequestBody SwitchWorkModeParam param) { + BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, param.getConveyorNo())); + if(basConveyor == null) { + return R.error("杈撻�佺嚎涓嶅瓨鍦�"); + } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); + if(devpThread == null) { + return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); + } + + boolean result = devpThread.switchWorkMode(param.getSiteId(), param.getWorkMode()); + if (!result) { + return R.error("妯″紡鍒囨崲澶辫触"); + } + return R.ok(); + } + } -- Gitblit v1.9.1