diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java index b5235fc..82f3bce 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_smart_plc_test/HailiangSmartplcTestDeviceDriver.java @@ -182,9 +182,7 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im break; case 4: //申请空盘 - System.out.println("执行到mode = 4了,此时move = " + move + ",requireSucess = " + requireSucess); if (move == 0 && !requireSucess) { - System.out.println("进入到申请空盘的任务了,mode = " + mode); Date date = new Date(); if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); @@ -200,17 +198,13 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im if (res_jo.getString("status").equals("200")) { logServer.deviceExecuteLog(device_code, "", "", "空盘任务申请成功-"); requireSucess = true; - } else { - System.out.println("申请满托入库失败" + String.valueOf(res_jo)); } } } break; case 5: - System.out.println("执行到mode = 5了,此时move = " + move + ",requireSucessFullIn = " + requireSucessFullIn); //满托入库 if (move == 1 && !requireSucessFullIn) { - System.out.println("进入到申请空盘的任务了,mode = " + mode); Date date = new Date(); if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) { log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); @@ -227,8 +221,6 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im if (res_jo.getString("status").equals("200")) { requireSucessFullIn = true; logServer.deviceExecuteLog(device_code, "", "", "满托入库任务申请成功-"); - } else { - System.out.println("申请满托入库失败" + String.valueOf(res_jo)); } } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 1767f31..4c6e24b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -88,7 +88,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String task_type = task.getString("task_type"); String remark = task.getString("remark"); String params = task.getString("params"); - String vehicle_qty = task.getString("vehicle_qty"); if (start_point_code.indexOf("-") > 0) { String str[] = start_point_code.split("-"); @@ -138,7 +137,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { jo.put("vehicle_type", vehicle_type); jo.put("remark", remark); jo.put("params", params); - jo.put("emptypallet_num", vehicle_qty); jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type)); if (!StrUtil.isEmpty(ext_task_id)) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index bde332c..0caad2f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -248,7 +248,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { public List queryAllUnfinished(Map whereJson) { WQLObject wo = WQLObject.getWQLObject("acs_task"); JSONArray arr = wo.query("task_status < 2 ").getResultJSONArray(0); - List list = arr.toJavaList(TaskDto.class); + List list =arr.toJavaList(TaskDto.class); return list; } @@ -390,7 +390,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.insert(json); tasks.add(dto); @@ -492,7 +492,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } if (ObjectUtil.isNotEmpty(this.findByStartCode(start_device_code)) - || ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) { + || ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) { throw new WDKException("已存在该起点或终点的任务!"); } if (StrUtil.equals(material_type, "") || StrUtil.equals(quantity, "")) { @@ -523,7 +523,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { dto.setUpdate_by(currentUsername); WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.update(json); @@ -787,7 +787,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { JSONObject feed_jo = new JSONObject(); feed_jo.put("ext_task_id", entity.getExt_task_id()); feed_jo.put("task_code", entity.getTask_code()); - feed_jo.put("task_status", "0"); + feed_jo.put("task_status", entity.getTask_status()); JSONArray ja = new JSONArray(); ja.add(feed_jo); acstowmsService.feedbackTaskStatusToWms(ja); @@ -1215,7 +1215,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } @Override - public Integer queryStartNum(String start_code, String next_code) { + public Integer queryStartNum(String start_code,String next_code) { int num = 0; Iterator iterator = tasks.iterator(); while (iterator.hasNext()) { @@ -1228,7 +1228,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } @Override - public Integer queryEndNum(String next_code, String start_code) { + public Integer queryEndNum(String next_code,String start_code) { int num = 0; Iterator iterator = tasks.iterator(); while (iterator.hasNext()) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java index 8b69b3f..01307b7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java @@ -145,6 +145,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { dto.setUpdate_optname(nickName); dto.setUpdate_time(now); dto.setCreate_time(now); + dto.setBase_unit_id(15); WQLObject wo = WQLObject.getWQLObject("md_me_materialbase"); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); wo.insert(json); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java index b4c2586..d864d69 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/WorkorderDto.java @@ -90,4 +90,7 @@ public class WorkorderDto implements Serializable { /** 修改时间 */ private String update_time; + + /** 工单类型 **/ + private String workorder_type; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java index 7310c4e..87afafc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java @@ -2,7 +2,6 @@ package org.nl.wms.sch.rest; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index e3251ff..37f93b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -54,6 +54,10 @@ public class TaskServiceImpl implements TaskService { if (StrUtil.isNotEmpty(task_status)) { task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); } + String moreTaskStatus = whereJson.getString("more_task_status"); + if (ObjectUtil.isNotEmpty(moreTaskStatus)) { + task_status = moreTaskStatus; + } map.put("task_status", task_status); //处理状态为未完成 if (StrUtil.isNotEmpty(task_status) && task_status.contains("-1")) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/AcsTaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/AcsTaskDto.java index c76d653..e6db861 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/AcsTaskDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/AcsTaskDto.java @@ -28,5 +28,7 @@ public class AcsTaskDto { private String params; //路由类型 private String route_plan_code; + // 载具数量 + private String vehicle_qty; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java index e11d4ab..ae3e029 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java @@ -181,7 +181,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { // 创建任务 JSONObject jsonTask = taskArr.getJSONObject(i); String vehicle_type = jsonTask.getString("vehicle_type"); - // 更新点位 + // 更新点位 更新所有叠盘架B Map query = new HashMap<>(); query.put("flag", "2"); query.put("region_code", RegionTypeEnum.DPJQB.getCode()); @@ -192,7 +192,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { JSONObject jsonDpjStart = pointTab.query("region_code = '" + RegionTypeEnum.DPJQB.getCode() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty <> '0'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonDpjStart)) { - // 判断叠盘架是否有任务 有就下一个任务 + // todo + // 判断叠盘架是否有任务 有就下一个任务 : 可以去除 boolean is_point = this.isTask(jsonDpjStart.getString("point_code")); if (!is_point) continue; @@ -210,10 +211,12 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { JSONObject jsonDpjStart2 = pointTab.query("region_id = '" + RegionTypeEnum.DPJQB.getId() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty = '0'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonDpjStart2)) continue; + // todo: 删除任务校验 // 判断叠盘架是否有任务 boolean is_point = this.isTask(jsonDpjStart2.getString("point_code")); if (!is_point) continue; + // todo: 如何知道缓存位是否有空托盘 // 找叠盘架暂存位是否有空托盘 JSONObject map = new JSONObject(); map.put("flag", "1"); @@ -357,7 +360,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { .acs_task_type("2") .vehicle_code(form.getString("vehicle_code")) .vehicle_type(workOrderObj.getString("vehicle_type")) - .vehicle_qty(form.getIntValue("qty")) + .vehicle_qty(1) .task_group_id(IdUtil.getLongId()) .handle_class(THIS_CLASS) .create_time(DateUtil.now()) @@ -420,6 +423,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { .vehicle_type(json.getString("vehicle_type")) .priority(json.getString("priority")) .remark(json.getString("remark")) + .vehicle_qty(json.getString("vehicle_qty")) .build(); resultList.add(dto); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java index 2b47722..79b2e60 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/YqxCallEmpVehicleTask.java @@ -89,7 +89,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { taskTab.delete("task_id = '" + task_id + "'"); } - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + if (StrUtil.equals(status, "1")) { // 更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); @@ -97,7 +97,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { taskTab.update(jsonTask); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, "2")) { /* * 更改任务状态为完成 * 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态 @@ -364,7 +364,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .acs_task_type("2") .vehicle_code(form.getString("vehicle_code")) .vehicle_type(workOrderObj.getString("vehicle_type")) - .vehicle_qty(form.getIntValue("qty")) + .vehicle_qty(1) .task_group_id(org.nl.wms.util.IdUtil.getLongId()) .handle_class(THIS_CLASS) .create_time(DateUtil.now()) @@ -427,6 +427,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .vehicle_type(json.getString("vehicle_type")) .priority(json.getString("priority")) .remark(json.getString("remark")) + .vehicle_qty(json.getString("vehicle_qty")) .build(); resultList.add(dto); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java index 4e4d26e..e4f0039 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java @@ -61,7 +61,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { taskTab.delete("task_id = '" + task_id + "'"); } - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + if (StrUtil.equals(status, "1")) { // 更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); @@ -69,7 +69,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { taskTab.update(jsonTask); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, "2")) { // 更改任务状态为完成 jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); jsonTask.put("update_time", DateUtil.now()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java index 10bbbfb..20dd5c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/YqxSendEmpVehicleTask.java @@ -59,7 +59,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { taskTab.delete("task_id = '" + task_id + "'"); } - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + if (StrUtil.equals(status, "1")) { // 更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); @@ -67,7 +67,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { taskTab.update(jsonTask); } - if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { + if (StrUtil.equals(status, "2")) { // 更改任务状态为完成 jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); jsonTask.put("update_time", DateUtil.now()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java index 65aed4d..a7616fa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/GjxSendMaterialTask.java @@ -17,6 +17,7 @@ import org.nl.wms.sch.SchTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.tasks.AcsTaskDto; +import org.nl.wms.sch.tasks.utils.PointUpdateUtil; import org.nl.wms.util.IdUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,10 +41,11 @@ public class GjxSendMaterialTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject task, String status) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); + WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); String task_id = task.getString("task_id"); JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); - + String workOrderId = taskObj.getString("material_info_id"); //任务取消 if (StrUtil.equals(status, "0")) { // 取消删除任务 @@ -84,8 +86,19 @@ public class GjxSendMaterialTask extends AbstractAcsTask { // 更改任务状态为完成 taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode()); taskObj.put("update_time", DateUtil.now()); + taskObj.put("remark", "任务执行完成"); taskTab.update(taskObj); + JSONObject order = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0); + if (order.getString("workorder_type").equals("1")) { + // 货梯口 + String point_code2 = taskObj.getString("point_code2"); + JSONObject param = new JSONObject(); + param.put("lock_type", "1"); + param.put("point_status", "3"); + pointTab.update(param, "point_code = '" + point_code2 + "'"); + } + String point_code2 = taskObj.getString("point_code2"); JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0); @@ -146,24 +159,56 @@ public class GjxSendMaterialTask extends AbstractAcsTask { public void findNextPoint() { //判断共挤线是否有执行中的任务,如果任务数>=3,则不生成任务 WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - /* + WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); + /** * 根据业务找对应的终点 */ WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0); for (int i = 0; i < taskArr.size(); i++) { JSONObject taskObj = taskArr.getJSONObject(i); + String task_id = taskObj.getString("task_id"); String material_id = taskObj.getString("material_id"); String vehicle_type = taskObj.getString("vehicle_type"); + String workOrderId = taskObj.getString("material_info_id"); // 工单号 + // 获取工单判断是去养生区还是货梯口 + JSONObject workOrder = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(workOrder)) throw new BadRequestException("工单不能为空"); + if (workOrder.getString("workorder_type").equals("1")) { // 机采去货梯扣 + // 更新点位 + JSONArray ssxArray = WQL.getWO("QSCH_yqxSendMaterial_01").addParam("flag", "2").process().getResultJSONArray(0); + PointUpdateUtil.updatePoint(ssxArray); + JSONObject param = new JSONObject(); + param.put("flag", "1"); + JSONObject endPoint = WQL.getWO("QSCH_yqxSendMaterial_01").addParamMap(param).process().uniqueResult(0); + if (ObjectUtil.isEmpty(endPoint)) { + taskObj.put("remark", "电梯无可用点"); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + } else { + //锁住点位 + endPoint.put("lock_type", "2"); + endPoint.put("task_id", task_id); + pointTab.update(endPoint); + + //修改任务状态 + taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + taskObj.put("remark", ""); + taskObj.put("point_code2", endPoint.getString("point_code")); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + } + return; + } JSONObject param1 = new JSONObject(); param1.put("flag", "1"); param1.put("material_id", material_id); param1.put("region_code", "YSQA01"); - param1.put("vehicle_type", "%" + vehicle_type + "%"); + param1.put("vehicle_type", vehicle_type ); //1、查找库区类是否有响应的载具类型和对应的物料 + // json1: 对应相同物料的点位 JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0); - //判断是否有到同一列的相同物料SKU的AGV任务,如果有,则等待 JSONArray taskIngs = taskTab.query("is_delete='0' and material_id = '" + material_id + "' and (task_status = '4' or task_status = '5' or task_status = '6' )").getResultJSONArray(0); @@ -181,59 +226,68 @@ public class GjxSendMaterialTask extends AbstractAcsTask { } - if (ObjectUtil.isNotEmpty(json1)) { + if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位 Integer block_num = json1.getInteger("block_num"); Integer col_num = json1.getInteger("col_num"); Integer row_num = json1.getInteger("row_num"); - - JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='" + (col_num - 1) + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!"); - taskObj.put("point_code2", firstRow.getString("point_code")); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); - //二楼普通任务 - taskTab.update(taskObj); - //锁住相关货位 - JSONObject point = new JSONObject(); - point.put("lock_type", "2"); - point.put("task_id", taskObj.getString("task_id")); - pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'"); - - } else {//找空位入 - if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) { - taskObj.put("remark", "相应列有AGV在工作,等待执行!"); - taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); - continue; - } - - JSONObject param2 = new JSONObject(); - param2.put("flag", "2"); - param2.put("region_code", "YSQA01"); - param2.put("vehicle_type", "%" + vehicle_type + "%"); - //1、查找整列为空的货位 - JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0); - if (ObjectUtil.isEmpty(json2)) { - taskObj.put("remark", "养生A区无可用货位"); - taskObj.put("update_time", DateUtil.now()); - taskTab.update(taskObj); - } else { - Integer block_num = json2.getInteger("block_num"); - Integer row_num = json2.getInteger("row_num"); - JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='9'").uniqueResult(0); + if (col_num != 1) {// 物料位在第一个位置说明已经叠满了 + // 因为找到的是对应相同的物料点,所以是下一个位置 + JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num ='" + (col_num - 1) + "' + if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!"); taskObj.put("point_code2", firstRow.getString("point_code")); - //二楼普通任务 - taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); taskObj.put("update_time", DateUtil.now()); + taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + //二楼普通任务 taskTab.update(taskObj); //锁住相关货位 JSONObject point = new JSONObject(); point.put("lock_type", "2"); - point.put("task_id", taskObj.getString("task_id")); - pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + 9 + "'"); + pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'"); + return; +// JSONObject point = new JSONObject(); +// point.put("lock_type", "2"); +// point.put("task_id", taskObj.getString("task_id")); +// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'"); } } + //找空位入: 物料点查找在第一列或者是没有找到物料点 + if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) { + taskObj.put("remark", "相应列有AGV在工作,等待执行!"); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + continue; + } + + JSONObject param2 = new JSONObject(); + param2.put("flag", "2"); + param2.put("region_code", "YSQA01"); + param2.put("vehicle_type",vehicle_type); + //1、查找整列为空的货位 + JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0); + if (ObjectUtil.isEmpty(json2)) { + taskObj.put("remark", "养生A区无可用货位"); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + } else { + Integer block_num = json2.getInteger("block_num"); + Integer row_num = json2.getInteger("row_num"); + Integer sum = json2.getInteger("sum"); + JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num = '" + sum + "' + taskObj.put("point_code2", firstRow.getString("point_code")); + //二楼普通任务 + taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + //锁住相关货位 + JSONObject point = new JSONObject(); + point.put("lock_type", "2"); + pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'"); +// JSONObject point = new JSONObject(); +// point.put("lock_type", "2"); +// point.put("task_id", taskObj.getString("task_id")); +// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + sum + "'"); // 9 + } } } @@ -273,7 +327,6 @@ public class GjxSendMaterialTask extends AbstractAcsTask { @Override public String createTask(JSONObject whereJson) { String point_code1 = whereJson.getString("point_code1"); - String vehicle_type = whereJson.getString("vehicle_type"); String vehicle_code = whereJson.getString("vehicle_code"); String qty = whereJson.getString("qty"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java index c0af6f2..a3d3b32 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java @@ -67,7 +67,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask { taskTab.update(jsonTask); } - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { + if (StrUtil.equals(status, "1")) { //更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); @@ -75,7 +75,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask { taskTab.update(jsonTask); } - if (TaskStatusEnum.FINISHED.getCode().equals(status)) { + if (StrUtil.equals(status, "2")) { // 更新任务状态为完成 jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode")); @@ -130,8 +130,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask { //修改任务状态 taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); taskObj.put("point_code2", endPoint.getString("point_code")); - taskObj.put("update_optid", SecurityUtils.getCurrentUserId()); - taskObj.put("update_optname", SecurityUtils.getCurrentNickName()); + taskObj.put("remark", ""); taskObj.put("update_time", DateUtil.now()); taskTab.update(taskObj); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/wql/QSCH_gjxSendMaterial_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/wql/QSCH_gjxSendMaterial_01.wql index 29b1351..c9282ab 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/wql/QSCH_gjxSendMaterial_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/wql/QSCH_gjxSendMaterial_01.wql @@ -57,7 +57,7 @@ AND is_delete = '0' AND lock_type = '1' AND point_status = '3' - and col_num>1 + and col_num>=1 OPTION 输入.material_id <> "" p.material_id = 输入.material_id ENDOPTION @@ -65,7 +65,7 @@ p.region_code = 输入.region_code ENDOPTION OPTION 输入.vehicle_type <> "" - p.can_vehicle_type like 输入.vehicle_type + p.can_vehicle_type like "%" 输入.vehicle_type "%" ENDOPTION ORDER BY block_num,row_num,col_num ENDSELECT @@ -87,10 +87,10 @@ AND point_status = '1' AND lock_type = '1' OPTION 输入.vehicle_type <> "" - p.can_vehicle_type like 输入.vehicle_type + p.can_vehicle_type like "%" 输入.vehicle_type "%" ENDOPTION GROUP BY block_num,row_num - HAVING sum = 9 + HAVING sum in ('9','13') ORDER BY block_num,row_num ENDSELECT ENDQUERY diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/utils/PointUpdateUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/utils/PointUpdateUtil.java index 9554e22..81898aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/utils/PointUpdateUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/utils/PointUpdateUtil.java @@ -32,6 +32,7 @@ public class PointUpdateUtil { if (pointObj2.getString("region_code").equals(RegionTypeEnum.DPJQB.getCode())) { // 碟盘机 String vehicleNum = pointObj.getString("vehicle_num"); pointObj2.put("vehicle_qty", vehicleNum); + pointObj2.put("point_status", vehicleNum.equals("0")?"1":"2"); pointTable.update(pointObj2); } else if (pointObj2.getString("region_code").equals(RegionTypeEnum.SSX.getCode())) { String move = pointObj.getString("move"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql index e139c90..5a35f1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql @@ -54,7 +54,9 @@ SELECT point.*, d3.label as lock_type_name, - ma.material_name + ma.material_name, + ma.material_code, + ma.material_spec FROM sch_base_point point LEFT JOIN SCH_BASE_Region region ON point.region_id = region.region_id diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql index 729b8ca..91351d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql @@ -72,7 +72,7 @@ task.create_time <= 输入.end_time ENDOPTION OPTION 输入.unFinish <> "" - task.task_status <> '07' + task.task_status <> '7' ENDOPTION OPTION 输入.task_status <> "" find_in_set( task.task_status, 输入.task_status) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 9bd0cbb..11fdae9 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls differ diff --git a/lms/nladmin-ui/src/views/wms/basedata/vehicle/index.vue b/lms/nladmin-ui/src/views/wms/basedata/vehicle/index.vue index 739f100..a9ca01d 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/vehicle/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/vehicle/index.vue @@ -202,8 +202,9 @@ export default { // 打印纸张大小设置https://www.it610.com/article/2094844.html LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '1') // LODOP.ADD_PRINT_RECT('0mm', '0mm', '50mm', '30mm', 0, 1) - LODOP.ADD_PRINT_BARCODE('4.3mm', '6.2mm', '60mm', '40mm', '128Auto', item) + LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', item) LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中 + LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2) // LODOP.PREVIEW()// 预览 LODOP.PRINT()// 打印 }) @@ -225,8 +226,9 @@ export default { // 打印纸张大小设置https://www.it610.com/article/2094844.html LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '') // LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1) - LODOP.ADD_PRINT_BARCODE('4.3mm', '8.2mm', '60mm', '40mm', '128Auto', code) + LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', code) LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中 + LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2) // LODOP.PREVIEW()// 预览 LODOP.PRINT()// 打印 this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS) diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue index 0794291..c56bb90 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue @@ -200,6 +200,22 @@ /> + + + + + + + + @@ -342,13 +363,14 @@ const defaultForm = { device_code: null, is_canupdate_update: '1', material_spec: null, - sale_id: null + sale_id: null, + workorder_type: '1' } export default { name: 'Produceshiftorder', components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl, ViewDialog, DeviceDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], - dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure'], + dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure', 'workorder_type'], cruds() { return CRUD({ title: '工单', url: 'api/workorder', idField: 'workorder_id', sort: 'workorder_id,desc', diff --git a/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue b/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue index ee122f2..7b4c2be 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/ViewDialog.vue @@ -56,30 +56,30 @@ - - + + - + - + - + - + - + - + diff --git a/lms/nladmin-ui/src/views/wms/sch/point/index.vue b/lms/nladmin-ui/src/views/wms/sch/point/index.vue index 4072c36..4fdca4e 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -315,6 +315,7 @@ + diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 5a73580..8825747 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -132,10 +132,10 @@ - - - - + + + + - + + + + + 取 消 确 定 @@ -254,8 +254,8 @@ export default { crudTask.getFinishType().then(data => { this.finishTypeList = data }) - this.crud.query.task_status = ['-1'] - this.crud.toQuery() + // this.crud.query.task_status = ['-1'] + // this.crud.toQuery() }, methods: { initClass1() { @@ -298,8 +298,9 @@ export default { this.crud.toQuery() }, handTaskStatus(value) { + this.crud.query.more_task_status = null if (value) { - this.query.task_status = this.task_status.toString() + this.crud.query.more_task_status = value.toString() } this.crud.toQuery() },