src/main/java/com/zy/asrs/controller/CrnController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/CrnListVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/CrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/wms/js/crnOperate/crnOperate.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/deviceOperate/crnOperate.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -331,6 +331,7 @@ } vo.setInEnable(basCrnp.getInEnable()); vo.setOutEnable(basCrnp.getOutEnable()); vo.setTaskComplete(crnThread.getResetFlag()? "任务完成下发等待":"-"); } return R.ok().add(list); } @@ -549,19 +550,54 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs系统状态为开启"); // } CrnCommand command = new CrnCommand(); command.setCrnNo(param.getCrnNo()); // 堆垛机编号 command.setTaskNo((short) 0); // 工作号 command.setAckFinish((short) 1); // 任务完成确认位 command.setTaskMode(CrnTaskModeType.NONE); // 任务模式 command.setSourcePosX((short) 0); // 源库位排 command.setSourcePosY((short) 0); // 源库位列 command.setSourcePosZ((short) 0); // 源库位层 command.setDestinationPosX((short) 0); // 目标库位排 command.setDestinationPosY((short) 0); // 目标库位列 command.setDestinationPosZ((short) 0); // 目标库位层 command.setCommand((short)0); return crnControl(command)?R.ok():R.error(); if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) { return R.error("请选择堆垛机"); } CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo()); crnThread.setResetFlag(true); return R.ok(); // CrnCommand command = new CrnCommand(); // command.setCrnNo(); // 堆垛机编号 // command.setTaskNo((short) 0); // 工作号 // command.setAckFinish((short) 1); // 任务完成确认位 // command.setTaskMode(CrnTaskModeType.NONE); // 任务模式 // command.setSourcePosX((short) 0); // 源库位排 // command.setSourcePosY((short) 0); // 源库位列 // command.setSourcePosZ((short) 0); // 源库位层 // command.setDestinationPosX((short) 0); // 目标库位排 // command.setDestinationPosY((short) 0); // 目标库位列 // command.setDestinationPosZ((short) 0); // 目标库位层 // command.setCommand((short)0); // return crnControl(command)?R.ok():R.error(); } @ManagerAuth(memo = "任务完成指令清除") @PostMapping("/crn/operator/taskCompleteClearCommand") public R crnTaskCompleteClearCommand(CrnOperatorParam param){ // 系统运行状态判断 // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs系统状态为开启"); // } // 系统运行状态判断 if (Cools.isEmpty(param.getCrnNo()) || param.getCrnNo() == 0) { return R.error("请选择堆垛机"); } CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo()); crnThread.setResetFlag(false); return R.ok(); // CrnCommand command = new CrnCommand(); // command.setCrnNo(); // 堆垛机编号 // command.setTaskNo((short) 0); // 工作号 // command.setAckFinish((short) 1); // 任务完成确认位 // command.setTaskMode(CrnTaskModeType.NONE); // 任务模式 // command.setSourcePosX((short) 0); // 源库位排 // command.setSourcePosY((short) 0); // 源库位列 // command.setSourcePosZ((short) 0); // 源库位层 // command.setDestinationPosX((short) 0); // 目标库位排 // command.setDestinationPosY((short) 0); // 目标库位列 // command.setDestinationPosZ((short) 0); // 目标库位层 // command.setCommand((short)0); // return crnControl(command)?R.ok():R.error(); } // @ManagerAuth(memo = "暂停") @@ -624,6 +660,7 @@ } CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(crn.getId()); // 堆垛机编号 crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 堆垛机巷道号 crnCommand.setTaskMode(CrnTaskModeType.CLEAR); crnCommand.setAckFinish((short) 0); // 任务完成确认位 crnCommand.setCommand((short) 0); // 任务完成确认位 @@ -781,6 +818,8 @@ if (crnProtocol == null) { throw new CoolException("堆垛机不在线"); } command.setLaneNo(crnProtocol.getLaneNo()); // 堆垛机巷道号 // 空闲判断 // if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) { if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(4, command))) { @@ -815,6 +854,8 @@ if (crnProtocol == null) { throw new CoolException("堆垛机不在线"); } command.setLaneNo(crnProtocol.getLaneNo()); // 堆垛机巷道号 // 空闲判断 // if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) { if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) { src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
@@ -112,6 +112,7 @@ // 可出 private String outEnable; private String taskComplete = "无"; private String errorCrn; public void setXspeed(Float xspeed) { src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -668,7 +668,7 @@ } CrnSlave crnSlave = new CrnSlave(crn); if (Cools.isEmpty(crnProtocol.getLoaded()) || crnProtocol.getLoaded()==0){ if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ continue; } @@ -778,7 +778,7 @@ // 命令下发区 -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号 crnCommand.setCrnNo(crnProtocol.getLaneNo()); // 堆垛机巷道编号 crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 堆垛机巷道编号 crnCommand.setTaskNo((short)999); // 工作号 crnCommand.setAckFinish((short) 0); // 任务完成确认位 crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式: 库位移转 @@ -831,7 +831,7 @@ } CrnSlave crn = new CrnSlave(crnSlave); if (Cools.isEmpty(crnProtocol.getLoaded()) || crnProtocol.getLoaded()==0){ if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ continue; } @@ -1335,7 +1335,7 @@ } CrnSlave crn = new CrnSlave(crnSlave); if (Cools.isEmpty(crnProtocol.getLoaded()) || crnProtocol.getLoaded()==0){ if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ continue; } @@ -1357,11 +1357,14 @@ } // Thread.sleep(300); //确认完成信号 CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); crnOperatorParam.setCrnNo(crn.getId()); // CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); // crnOperatorParam.setCrnNo(crn.getId()); Date now = new Date(); crnController.crnTaskComplete(crnOperatorParam); // crnController.crnTaskComplete(crnOperatorParam); // MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command)) crnThread.setResetFlag(true); if (!Cools.isEmpty(taskWrk)) { if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) { taskWrk.setWrkSts(4);//入库完成 src/main/java/com/zy/core/CrnThread.java
@@ -7,5 +7,6 @@ CrnProtocol getCrnProtocol(); void setResetFlag(boolean flag); boolean getResetFlag(); } src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -207,10 +207,12 @@ backHpFlag = false; } if (!Cools.isEmpty(crnProtocol.getLoaded()) && crnProtocol.getLoaded()!=0){ if (!Cools.isEmpty(crnProtocol.getLaneNo()) && crnProtocol.getLaneNo()!=0){ CrnCommand crnCommand = new CrnCommand(); crnCommand.setAckFinish((short)1); // crnCommand.setTaskNo(crnProtocol.getTaskNo()); crnCommand.setLaneNo(crnProtocol.getLaneNo()); crnCommand.setTaskMode(CrnTaskModeType.NONE); // 任务模式 if (write(crnCommand)) { resetFlag = false; } @@ -556,4 +558,22 @@ public void setWrkSign() { } /** * 清除作业启动中 */ @Override public void setResetFlag(boolean flag) { this.resetFlag = flag; } /** * 清除作业启动中 */ @Override public boolean getResetFlag() { return resetFlag; } } src/main/webapp/static/wms/js/crnOperate/crnOperate.js
@@ -105,6 +105,13 @@ }); } // 任务完成 function taskCompleteClearCommand() { http.post(baseUrl+"/crn/operator/taskCompleteClearCommand", getReqParam(), function (res) { layer.msg(res.msg); }); } // 清除命令 function clearCommand() { http.post(baseUrl+"/crn/operator/clearCommand", getReqParam(), function (res) { src/main/webapp/views/deviceOperate/crnOperate.html
@@ -28,6 +28,8 @@ </el-table-column> <el-table-column property="deviceStatus" label="设备状态"> </el-table-column> <el-table-column property="taskComplete" label="任务完成指令"> </el-table-column> <el-table-column property="errorCrn" label="异常提示"> </el-table-column> </el-table> @@ -81,7 +83,8 @@ <!-- <el-button @click="requestOperate('take')" type="primary">出库</el-button>--> <!-- <el-button @click="requestOperate('stockMove')" type="primary">库位转移</el-button>--> <!-- <el-button @click="requestOperate('siteMove')" type="primary">站到站</el-button>--> <!-- <el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button>--> <el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button> <el-button @click="requestOperate('taskCompleteClearCommand')" type="primary">任务完成指令清除</el-button> <!-- <el-button @click="requestOperate('clearCommand')" type="primary">清除命令</el-button>--> <!-- <el-button @click="requestOperate('reset')" type="primary">复位</el-button>--> <br/>