src/main/java/com/zy/asrs/controller/CommandInfoLogController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/TaskWrkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/TaskWrkLogController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/TaskWrkLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/TaskOverToWms.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/TaskLogScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/taskWrkLog/commandManageLog.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/CommandInfoLogController.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import com.zy.asrs.entity.CommandInfo; import com.zy.asrs.entity.CommandInfoLog; import com.zy.asrs.service.CommandInfoLogService; import com.core.annotations.ManagerAuth; @@ -24,6 +25,20 @@ @Autowired private CommandInfoLogService commandInfoLogService; @RequestMapping(value = "/commandInfoLog/listLog/auth") @ManagerAuth public R listLog(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam Map<String, Object> param){ EntityWrapper<CommandInfoLog> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} return R.ok(commandInfoLogService.selectPage(new Page<>(curr, limit), wrapper)); } @RequestMapping(value = "/commandInfoLog/{id}/auth") @ManagerAuth public R get(@PathVariable("id") String id) { src/main/java/com/zy/asrs/controller/TaskWrkController.java
@@ -1,28 +1,42 @@ 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.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.CommandInfo; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.param.TaskOverToWms; import com.zy.asrs.service.CommandInfoService; import com.zy.asrs.service.TaskWrkService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; 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.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import java.util.*; @RestController @Slf4j public class TaskWrkController extends BaseController { @Value("${wms.url}") private String wmsUrl; @Autowired private TaskWrkService taskWrkService; @Autowired private CommandInfoService commandInfoService; @RequestMapping(value = "/taskWrk/{wrkNo}/auth") @ManagerAuth @@ -149,22 +163,79 @@ @ManagerAuth(memo = "手动完成任务") public R complete(@RequestParam String taskNo) { TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); if (taskWrk == null) { return R.error(); Map<String, Object> map = new HashMap<>(); map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); TaskOverToWms taskOverToWms = new TaskOverToWms(); taskOverToWms.setFeedbackFrom("WCS"); //来源 taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识 taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号 taskOverToWms.setTaskType(getTaskType(taskWrk.getIoType())); // 任务类型 taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 容器编码 if (taskWrk.getIoType() ==1 ){ taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 }else if (taskWrk.getIoType() ==2){ Map<Integer,String> map1 = new HashMap<>(); map1.put(102,"J-1101"); map1.put(106,"J-1103"); map1.put(110,"J-1105"); map1.put(114,"J-1107"); map1.put(118,"J-1109"); map1.put(122,"J-1111"); taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码 taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位 } if (taskWrk.getStatus().equals(TaskStatusType.COMPLETE.id)) { return R.error(taskWrk.getTaskNo() + "已完结"); } Date now = new Date(); taskWrk.setStatus(TaskStatusType.COMPLETE.id); taskWrk.setModiTime(now);//操作时间 try{ taskWrk.setModiUser(getUserId());//操作员 taskOverToWms.setTaskStatus("handle"); //任务状态 String response = null; try { response = new HttpHandler.Builder() .setHeaders(map) .setUri(wmsUrl) .setPath("wcsManager/wcsInterface/taskStatusFeedback") .setJson(JSON.toJSONString(taskOverToWms)) .build() .doPost(); }catch (Exception e){ taskWrk.setModiUser(9999L);//操作员 log.error("wms连接失败"); } taskWrk.setCompleteTime(now);//完结时间 taskWrkService.updateById(taskWrk); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)){ if (taskWrk == null) { return R.error(); } if (taskWrk.getStatus().equals(TaskStatusType.COMPLETE.id)) { return R.error(taskWrk.getTaskNo() + "已完结"); } Date now = new Date(); taskWrk.setStatus(TaskStatusType.COMPLETE.id); taskWrk.setModiTime(now);//操作时间 try{ taskWrk.setModiUser(getUserId());//操作员 }catch (Exception e){ taskWrk.setModiUser(9999L);//操作员 } taskWrk.setCompleteTime(now);//完结时间 taskWrkService.updateById(taskWrk); if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) > 0) { //任务已经转日志,将该任务下面的指令转日志 commandInfoService.saveToHistory(taskWrk.getTaskNo()); //删除任务 taskWrkService.delete(new EntityWrapper<TaskWrk>().eq("task_no", taskWrk.getTaskNo())); //删除指令 commandInfoService.delete(new EntityWrapper<CommandInfo>().eq("task_no", taskWrk.getTaskNo())); } }else { return R.error("wms通讯失败"); } return R.ok(); } @@ -206,4 +277,17 @@ return R.ok(); } public static String getTaskType(Integer paramIoType){ switch (paramIoType){ case 1: return "RK"; case 2: return "CK"; case 3: return "YK"; default: return "未知"; } } } src/main/java/com/zy/asrs/controller/TaskWrkLogController.java
@@ -67,7 +67,7 @@ @RequestMapping(value = "/taskWrkLog/update/auth") @ManagerAuth public R update(TaskWrkLog taskWrkLog){ if (Cools.isEmpty(taskWrkLog) || null==taskWrkLog.getId()){ if (Cools.isEmpty(taskWrkLog)){ return R.error(); } taskWrkLogService.updateById(taskWrkLog); @@ -103,8 +103,8 @@ List<Map<String, Object>> result = new ArrayList<>(); for (TaskWrkLog taskWrkLog : page.getRecords()){ Map<String, Object> map = new HashMap<>(); map.put("id", taskWrkLog.getId()); map.put("value", taskWrkLog.getId()); map.put("id", taskWrkLog.getTaskNo()); map.put("value", taskWrkLog.getTaskNo()); result.add(map); } return R.ok(result); src/main/java/com/zy/asrs/entity/TaskWrkLog.java
@@ -173,9 +173,9 @@ @TableField("command_step") private Integer commandStep; @ApiModelProperty(value= "") @TableId(value = "id", type = IdType.AUTO) private Long id; // @ApiModelProperty(value= "") // @TableId(value = "id", type = IdType.AUTO) // private Long id; @ApiModelProperty(value = "移库标记") src/main/java/com/zy/asrs/entity/param/TaskOverToWms.java
New file @@ -0,0 +1,19 @@ package com.zy.asrs.entity.param; import lombok.Data; @Data public class TaskOverToWms { private String feedbackFrom; private String warehouseId; private String taskType; private String equipmentCode; private String taskNo; private String taskStatus; private String sourceLocationCode; private String targetLocationCode; private String containerCode; private String containerTypeCode; private String emptyContainer; private String errorCode; } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -133,7 +133,7 @@ map.put("J-1107",114);map.put("J-1108",113); map.put("J-1109",118);map.put("J-1110",117); map.put("J-1111",122);map.put("J-1112",121); map.put("H-1101",305);map.put("H-1102",300); // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { // 获取入库站信息 @@ -155,7 +155,7 @@ }else { if (staProtocol.isLoading() && !staProtocol.isCar() && workNo == 0){ //AGV入库完成以后 staProtocol.setWorkNo((short) 9998); staProtocol.setWorkNo((short) 9999); staProtocol.setStaNo(inSta.getStaNo().shortValue()); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (result) { src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -1,20 +1,27 @@ package com.zy.asrs.task; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.CommandInfo; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.param.TaskOverToWms; import com.zy.asrs.entity.param.TaskStatusFeedbackParam; import com.zy.asrs.service.CommandInfoService; import com.zy.asrs.service.TaskWrkService; import com.zy.asrs.utils.PostMesDataUtils; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 定时将任务(完成、取消)转成日志 @@ -34,15 +41,60 @@ private String movePath; @Scheduled(cron = "0/3 * * * * ? ") public void execute() { public void execute() throws IOException { for (TaskWrk taskWrk : taskWrkService.selectToBeHistoryData()) { TaskStatusFeedbackParam taskStatusFeedbackParam = new TaskStatusFeedbackParam(taskWrk); if (taskWrk.getStatus().equals(TaskStatusType.COMPLETE.id)) {//完成 taskStatusFeedbackParam.setTaskStatus("done"); new PostMesDataUtils().postMesData("完成上报",wmsUrl,movePath,taskWrk); Map<String, Object> map = new HashMap<>(); map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); TaskOverToWms taskOverToWms = new TaskOverToWms(); taskOverToWms.setFeedbackFrom("WCS"); //来源 taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识 taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号 taskOverToWms.setTaskType(taskStatusFeedbackParam.getTaskType()); // 任务类型 taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 容器编码 if (taskWrk.getIoType() ==1 ){ taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 }else if (taskWrk.getIoType() ==2){ Map<Integer,String> map1 = new HashMap<>(); map1.put(102,"J-1101"); map1.put(106,"J-1103"); map1.put(110,"J-1105"); map1.put(114,"J-1107"); map1.put(118,"J-1109"); map1.put(122,"J-1111"); taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码 taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位 } taskOverToWms.setTaskStatus("done"); //任务状态 String response = null; try { response = new HttpHandler.Builder() .setHeaders(map) .setUri(wmsUrl) .setPath("wcsManager/wcsInterface/taskStatusFeedback") .setJson(JSON.toJSONString(taskOverToWms)) .build() .doPost(); }catch (Exception e){ continue; } JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)){ }else { continue; } //new PostMesDataUtils().postMesData("完成上报",wmsUrl,movePath,taskWrk); } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) { taskStatusFeedbackParam.setTaskStatus("cancelled"); new PostMesDataUtils().postMesData("取消任务完成",wmsUrl,movePath,taskWrk); //new PostMesDataUtils().postMesData("取消任务完成",wmsUrl,movePath,taskWrk); } if (taskWrkService.saveToHistory(taskWrk.getTaskNo()) > 0) { src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -351,7 +351,7 @@ } OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) 100); OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) (staNoSize*4)); if (resultErr.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 src/main/webapp/views/taskWrkLog/commandManageLog.html
@@ -118,7 +118,7 @@ data.curr = this.currentPage data.limit = this.pageSize $.ajax({ url: baseUrl + "/commandInfo/list/auth", url: baseUrl + "/commandInfoLog/list/auth", headers: { 'token': localStorage.getItem('token') }, @@ -141,28 +141,30 @@ } }); $.ajax({ url: baseUrl + "/taskWrk/" + this.tableSearchParam.wrk_no + "/auth", headers: { 'token': localStorage.getItem('token') }, data: data, dataType: 'json', contentType: 'application/json;charset=UTF-8', method: 'GET', success: function(res) { if (res.code == 200) { that.commandStep = parseInt(res.data.commandStep) } else if (res.code === 403) { top.location.href = baseUrl + "/"; } else { that.$message({ message: res.msg, type: 'error' }); if (this.tableSearchParam.wrk_no != null) { $.ajax({ url: baseUrl + "/taskWrk/" + this.tableSearchParam.wrk_no + "/auth", headers: { 'token': localStorage.getItem('token') }, data: data, dataType: 'json', contentType: 'application/json;charset=UTF-8', method: 'GET', success: function(res) { if (res.code == 200) { that.commandStep = parseInt(res.data.commandStep) } else if (res.code === 403) { top.location.href = baseUrl + "/"; } else { that.$message({ message: res.msg, type: 'error' }); } } } }); }); } }, handleSizeChange(val) { console.log(`每页 ${val} 条`);