diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java index 5222d49..150da88 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java @@ -73,7 +73,8 @@ public class MesToWmsServiceImpl implements MesToWmsService { // 查找暂停/未生产/下发的工单 JSONObject stopOrder = workOrderTab.query("workorder_code = '" + param.getString("workorder_code") + "' AND order_status in ('4','1','2')").uniqueResult(0); - param.put("plan_qty", param.getString("qty")); +// param.put("plan_qty", param.getString("qty")); + param.put("plan_qty", param.getString("vehicle_qty")); // 计划数量改为托盘数 param.put("order_status", "3"); param.put("material_id", materialCode.getString("material_id")); param.put("produce_date", DateUtil.format(new Date(), "yyyy-MM-dd")); 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 fdd40bd..a1f55e9 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 @@ -42,6 +42,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { public void updateTaskStatus(JSONObject taskObj, String status) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); + WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder"); String task_id = taskObj.getString("task_id"); JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); @@ -170,6 +171,13 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { jsonTask2.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); jsonTask2.put("update_time", DateUtil.now()); taskTab.update(jsonTask2); + + // 更新工单数据 + String tableFk = taskObj.getString("table_fk"); // 工单号 + JSONObject object = workorderTab.query("workorder_id = '" + tableFk + "'").uniqueResult(0); + object.put("real_qty", object.getInteger("real_qty") + 1); + workorderTab.update(object); + } else { // 终点在供给线线: 更新起点(叠盘架)数量 JSONObject jsonStart = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); @@ -369,7 +377,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { //任务表【SCH_BASE_Task】 //判断当前点是否有未完成的任务 JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务"); + if (ObjectUtil.isNotEmpty(taskObj)) + throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务"); String point_code2 = form.getString("point_code2"); String sub_device_code = point_code2.substring(0, point_code2.indexOf("_")); @@ -379,6 +388,11 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除"); + // 超过数量也不需要呼叫 + if (workOrderObj.getInteger("real_qty") >= workOrderObj.getInteger("plan_qty")) { + throw new BadRequestException("该工单所需托盘已经足够"); + } + SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) .task_type("") @@ -390,6 +404,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { .vehicle_type(workOrderObj.getString("vehicle_type")) .vehicle_qty(1) .task_group_id(IdUtil.getLongId()) + .table_fk(workOrderObj.getString("workorder_id")) .handle_class(THIS_CLASS) .create_time(DateUtil.now()) .build(); @@ -406,7 +421,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0); if (ObjectUtil.isNotEmpty(taskObj)) - this.updateTaskStatus(taskObj,"2"); + this.updateTaskStatus(taskObj, "2"); else { throw new BadRequestException("未找到该任务或者任务已完成!"); } @@ -417,7 +432,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0); if (ObjectUtil.isNotEmpty(taskObj)) - this.updateTaskStatus(taskObj,"0"); + this.updateTaskStatus(taskObj, "0"); else { throw new BadRequestException("未找到该任务或者任务已完成!"); } 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 bc9b613..931e281 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 @@ -14,12 +14,14 @@ import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.pdm.service.WorkordeService; 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.RegionTypeEnum; import org.nl.wms.sch.tasks.utils.PointUpdateUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,12 +36,16 @@ import java.util.Map; public class YqxCallEmpVehicleTask extends AbstractAcsTask { private final String THIS_CLASS = YqxCallEmpVehicleTask.class.getName(); + @Autowired + private WorkordeService workordeService; + @Override @Transactional(rollbackFor = Exception.class) public void updateTaskStatus(JSONObject taskObj, String status) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); + WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder"); String task_id = taskObj.getString("task_id"); JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); @@ -188,6 +194,12 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { } } + // 更新工单数据 + String tableFk = taskObj.getString("table_fk"); // 工单号 + JSONObject object = workorderTab.query("workorder_id = '" + tableFk + "'").uniqueResult(0); + object.put("real_qty", object.getInteger("real_qty") + 1); + workorderTab.update(object); + jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); jsonTask.put("update_time", DateUtil.now()); jsonTask.put("remark", "任务完成"); @@ -391,15 +403,27 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务"); - - - String point_code2 = form.getString("point_code2");// YQX01_KS String device_code = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0).getString("device_code"); JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除"); + // 超过数量也不需要呼叫 + if (workOrderObj.getInteger("real_qty") >= workOrderObj.getInteger("plan_qty")) { + // 当前位置工单完成,物上工单完成 + JSONObject row = new JSONObject(); + row.put("row", workOrderObj); + workordeService.finish(row); +// // 物下工单 +// JSONObject workorderCode = workOrderTab.query("device_code = 'YQX01WX' and order_status = '3' and is_delete ='0' " + +// "and workorder_code = '" + workOrderObj.getString("workorder_code") + "'").uniqueResult(0); +// if (ObjectUtil.isNotEmpty(workorderCode)) { +// row.put("row", workorderCode); +// workordeService.finish(row); +// } + throw new BadRequestException("该工单所需托盘已经足够"); + } SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) @@ -412,6 +436,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask { .vehicle_code(form.getString("vehicle_code")) .vehicle_type(workOrderObj.getString("vehicle_type")) .vehicle_qty(1) + .table_fk(workOrderObj.getString("workorder_id")) .task_group_id(org.nl.wms.util.IdUtil.getLongId()) .handle_class(THIS_CLASS) .create_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 a5ac441..0a8a478 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 @@ -246,7 +246,7 @@ public class GjxSendMaterialTask extends AbstractAcsTask { } //找空位入: 物料点查找在第一列或者是没有找到物料点 if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) { - taskObj.put("remark", "相应列有AGV在工作,等待执行!"); + taskObj.put("remark", "相应排有AGV在工作,等待执行!"); taskObj.put("update_time", DateUtil.now()); taskTab.update(taskObj); continue;