diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java index 083d384..250a97c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/HtSendEmpVehicleTask.java @@ -50,30 +50,36 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { // 更改任务状态为完成 jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", SecurityUtils.getCurrentUserId()); - jsonTask.put("update_optname", SecurityUtils.getCurrentUsername()); jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); - String point_code2 = jsonTask.getString("point_code2"); - JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0); + String point_code3 = jsonTask.getString("point_code3"); + String point_code = ""; + // 更新终点:判断point_code3是否为空,为空就更新point_code2 + if (ObjectUtil.isNotEmpty(point_code3)) { + point_code = point_code3; + } else { + point_code = jsonTask.getString("point_code2"); + } + + JSONObject endPoint = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0); + //终点是叠盘架 - if (StrUtil.equals("DPJQB01", endPoint.getString("region_code"))) { + if (StrUtil.equals(endPoint.getString("region_id"),RegionTypeEnum.DPJQA.getId())) { Integer vehicle_qty = endPoint.getInteger("vehicle_qty"); vehicle_qty += jsonTask.getInteger("vehicle_qty"); - endPoint.put("lock_type", "00"); + endPoint.put("lock_type", "1"); endPoint.put("vehicle_qty", vehicle_qty); endPoint.put("point_status", "1"); endPoint.put("vehicle_type", jsonTask.getString("vehicle_type")); pointTab.update(endPoint); } else {//非叠盘架 - endPoint.put("lock_type", "00"); + endPoint.put("lock_type", "1"); endPoint.put("vehicle_qty", jsonTask.getString("vehicle_qty")); endPoint.put("vehicle_type", jsonTask.getString("vehicle_type")); - endPoint.put("point_status", "1"); + endPoint.put("point_status", "2"); pointTab.update(endPoint); } - } } @@ -151,6 +157,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { param.put("vehicle_type",jsonVehicle.getString("vehicle_type")); param.put("vehicle_qty",qty); param.put("vehicle_code",jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type","1"); task_id = this.pubCreateTask(param); } else { // 说明货梯无任务:找终点 @@ -167,9 +174,14 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { param2.put("vehicle_type",jsonVehicle.getString("vehicle_type")); param2.put("vehicle_qty",qty); param2.put("vehicle_code",jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type","1"); task_id = this.pubCreateTask(param2); } else { // 不为空则创建到养生A区等待点的任务 + + // 处理终点编码:入在第一个 '-'前加1,出在第一个 '-'前加2 +// String sub_1 = endPoint.substring(0, endPoint.indexOf("-")); +// String sub_2 = endPoint.substring(endPoint.indexOf("-"), endPoint.length()); JSONObject param2 = new JSONObject(); param2.put("task_status","4"); param2.put("point_code1",point_code1); @@ -177,7 +189,13 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { param2.put("vehicle_type",jsonVehicle.getString("vehicle_type")); param2.put("vehicle_qty",qty); param2.put("vehicle_code",jsonVehicle.getString("vehicle_code")); + param.put("acs_task_type","1"); task_id = this.pubCreateTask(param2); + + // 锁定终点 + JSONObject jsonEnd = pointTab.query("point_code = '" + endPoint + "'").uniqueResult(0); + jsonEnd.put("lock_type", "2"); + pointTab.update(jsonEnd); } } return task_id; @@ -191,7 +209,86 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { */ @Override public void findNextPoint() { + WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + 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 jsonTask = taskArr.getJSONObject(i); + String point_code_ht = ""; + + //判断SSX01A1是否有任务没有则判断其他的三个点位 + boolean ssx_1 = this.isTask("SSX01A1"); + if (ssx_1) { + String like = "SSX01%"; + + JSONArray taskArrNum = new JSONArray(); + JSONArray pointArr = pointTab.query("region_id = '" + RegionTypeEnum.SSX.getId() + "' and is_used = '1' and is_delete = '0' and point_code like '" + like + "'").getResultJSONArray(0); + + for (int j = 0; j < pointArr.size(); j++) { + JSONObject json = pointArr.getJSONObject(j); + boolean is_empTask = this.isTask(json.getString("point_code")); + + if (!is_empTask) taskArrNum.add(json); + } + + if (taskArrNum.size() > 0) { + + } else { + point_code_ht = "SSX01A1"; + } + } + + // 判断SSX02A1是否有任务没有则判断其他的三个点位 + if (ObjectUtil.isEmpty(point_code_ht)) { + boolean ssx_2 = this.isTask("SSX02A1"); + if (ssx_2) { + String like = "SSX02%"; + + JSONArray taskArrNum = new JSONArray(); + JSONArray pointArr = pointTab.query("region_id = '" + RegionTypeEnum.SSX.getId() + "' and is_used = '1' and is_delete = '0' and point_code like '" + like + "'").getResultJSONArray(0); + + for (int k = 0; k < pointArr.size(); k++) { + JSONObject json = pointArr.getJSONObject(k); + boolean is_empTask = this.isTask(json.getString("point_code")); + + if (!is_empTask) taskArrNum.add(json); + } + + if (taskArrNum.size() > 0) { + + } else { + point_code_ht = "SSX02A1"; + } + } + } + + // 如果此时point_code_ht为空则循环下一个任务 + if (ObjectUtil.isEmpty(point_code_ht)) { + continue; + } + + // 说明货梯无任务:找终点 + JSONObject param = new JSONObject(); + param.put("vehicle_type", jsonTask.getString("vehicle_type")); + param.put("qty", jsonTask.getString("vehicle_qty")); + String endPoint = this.endPoint(param); + + // 如果此时endPoint为空则循环下一个任务 + if (ObjectUtil.isEmpty(endPoint)) { + continue; + } + + // 更新任务表point_code2 + jsonTask.put("point_code2",endPoint); + jsonTask.put("task_status","4"); + taskTab.update(jsonTask); + + // 锁定终点 + JSONObject jsonEnd = pointTab.query("point_code = '" + endPoint + "'").uniqueResult(0); + jsonEnd.put("lock_type", "2"); + pointTab.update(jsonEnd); + } } @Override @@ -292,7 +389,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { jsonTask.put("priority", "1"); jsonTask.put("handle_class", THIS_CLASS); jsonTask.put("sort_seq", "1"); - jsonTask.put("acs_task_type", "1"); + jsonTask.put("acs_task_type", param.getString("acs_task_type")); jsonTask.put("create_time", DateUtil.now()); taskTab.insert(jsonTask); return jsonTask.getString("task_id");