| | |
| | | import com.zy.asrs.entity.WrkMastLog; |
| | | import com.zy.common.constant.ApiInterfaceConstant; |
| | | import com.zy.common.properties.AgvProperties; |
| | | import com.zy.common.utils.AgvUtils; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 构造请求内容(仙工M4格式) |
| | | */ |
| | | public String getRequest(Task task, String nameSpace) { |
| | | JSONObject object = new JSONObject(); |
| | | // taskId使用工作号(wrk_no),格式:T + 工作号 |
| | | // 如果工作号为空,则使用任务ID作为备选 |
| | | String taskIdValue = (task.getWrkNo() != null) ? "T" + task.getWrkNo() : "T" + task.getId(); |
| | | // taskId使用agvWrkNo字段,如果为空则生成新的agvWrkNo |
| | | String taskIdValue = task.getAgvWrkNo(); |
| | | if (taskIdValue == null || taskIdValue.isEmpty()) { |
| | | // 如果agvWrkNo为空,生成新的agvWrkNo |
| | | if (task.getWrkNo() != null) { |
| | | taskIdValue = AgvUtils.generateAgvWrkNo(task.getWrkNo()); |
| | | // 更新任务的agvWrkNo字段 |
| | | task.setAgvWrkNo(taskIdValue); |
| | | taskService.updateById(task); |
| | | } else { |
| | | // 如果工作号也为空,使用任务ID作为备选(向后兼容) |
| | | taskIdValue = "T" + task.getId(); |
| | | } |
| | | } |
| | | object.put("taskId", taskIdValue); |
| | | // fromBin使用源库位编号(sourceLocNo),如果为空则使用源站点编号(sourceStaNo)作为备选 |
| | | String fromBin = task.getSourceLocNo(); |
| | |
| | | // todo 计算agv目标暂存位 |
| | | int endSite = 2004; |
| | | |
| | | // 生成AGV工作号 |
| | | String agvWrkNo = AgvUtils.generateAgvWrkNo(wrkMast.getWrkNo()); |
| | | |
| | | // 插入agv任务 |
| | | Task task = new Task(wrkMast.getWrkNo(), 7L, wrkMast.getIoType(), String.valueOf(wrkMast.getStaNo()), String.valueOf(endSite), null, wrkMast.getBarcode()); |
| | | task.setAgvWrkNo(agvWrkNo); // 设置AGV工作号 |
| | | taskService.insert(task); |
| | | // 更新任务档agv搬运标识 |
| | | wrkMast.setCallAgv(2); |
| | |
| | | |
| | | // 构造取消任务请求 |
| | | JSONObject cancelRequest = new JSONObject(); |
| | | // taskId使用工作号(wrk_no),格式:T + 工作号 |
| | | // 如果工作号为空,则使用任务ID作为备选 |
| | | String taskIdValue = (task.getWrkNo() != null) ? "T" + task.getWrkNo() : "T" + task.getId(); |
| | | cancelRequest.put("taskId", taskIdValue); |
| | | // taskId使用agvWrkNo字段,如果为空则使用工作号或任务ID作为备选 |
| | | String taskIdValue = task.getAgvWrkNo(); |
| | | if (taskIdValue == null || taskIdValue.isEmpty()) { |
| | | if (task.getWrkNo() != null) { |
| | | taskIdValue = AgvUtils.generateAgvWrkNo(task.getWrkNo()); |
| | | } else { |
| | | taskIdValue = "T" + task.getId(); |
| | | } |
| | | } |
| | | cancelRequest.put("taskId", task.getAgvWrkNo()); |
| | | cancelRequest.put("kind", kind); |
| | | String body = cancelRequest.toJSONString(); |
| | | |