diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 069ac9e..d8782be 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -221,6 +221,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { param.put("vehicle_type", vehicle_type); param.put("vehicle_code", vehicle_code); param.put("task_code", whereJson.getString("task_code")); + param.put("workorder_code", whereJson.getString("workorder_code")); GjxSendMaterialTask taskBean = SpringContextHolder.getBean(GjxSendMaterialTask.class); String task_id = taskBean.createTask(param); // 创建任务 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 d233743..b16f1e4 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 @@ -3,6 +3,7 @@ package org.nl.wms.ext.mes.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -38,6 +39,7 @@ public class MesToWmsServiceImpl implements MesToWmsService { WQLObject workOrderTab = WQLObject.getWQLObject("pdm_bd_workorder"); WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device"); WQLObject materialTab = WQLObject.getWQLObject("md_me_materialbase"); + WQLObject workOrderCacheTab = WQLObject.getWQLObject("PDM_BI_WorkOrderCache"); if (ObjectUtil.isEmpty(param)) { throw new BadRequestException("工单不能为空"); } @@ -67,7 +69,7 @@ public class MesToWmsServiceImpl implements MesToWmsService { orderWS.put("realproduceend_date", DateUtil.now()); workOrderTab.update(orderWS); } - if (ObjectUtil.isNotEmpty(orderKX)) { + if (ObjectUtil.isNotEmpty(orderKX)) { // 存在,就关闭 orderKX.put("order_status", "5"); orderKX.put("update_time", DateUtil.now()); orderKX.put("realproduceend_date", DateUtil.now()); @@ -95,8 +97,19 @@ public class MesToWmsServiceImpl implements MesToWmsService { param.put("device_id", "1654663328972279808"); param.put("device_code", deviceCodeKS); workOrderTab.insert(param); + } else { + // 有的话就暂存起来 + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1607915553220071424"); + param.put("device_code", deviceCodeWX); + param.put("update_time", DateUtil.now()); + workOrderCacheTab.insert(param); + param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); + param.put("device_id", "1654663328972279808"); + param.put("device_code", deviceCodeKS); + workOrderCacheTab.insert(param); } - } else { + } else { // 不是油漆线直接存入 param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); param.put("device_id", deviceCode.getString("device_id")); param.put("device_code", deviceCode.getString("device_code")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java index f886490..e890df0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java @@ -38,7 +38,7 @@ public class WmsToMesServiceImpl implements WmsToMesService { public void taskFeedback(JSONObject param, String finterfaceid) { JSONObject feedback = MesUtil.taskFeedback(param, finterfaceid); if (!feedback.getString("code").equals("200")) { - //???? + taskFeedback(param, finterfaceid); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java index f669ec0..442100b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkorderServiceImpl.java @@ -383,29 +383,30 @@ public class WorkorderServiceImpl implements WorkordeService { @Override @Transactional(rollbackFor = Exception.class) public void finish(JSONObject param) { + WQLObject workorderTab = WQLObject.getWQLObject("pdm_bd_workorder"); + WQLObject workOrderCacheTab = WQLObject.getWQLObject("PDM_BI_WorkOrderCache"); Long currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); JSONObject row = param.getJSONObject("row"); - String workorder_id = row.getString("workorder_id"); - WQLObject wo = WQLObject.getWQLObject("PDM_BD_WORKORDER"); - JSONObject produceorderMap = new JSONObject(); - produceorderMap.put("workorder_id",workorder_id); - produceorderMap.put("order_status","5"); - produceorderMap.put("update_optid", currentUserId); - produceorderMap.put("device_id", null); - produceorderMap.put("update_optname", nickName); - produceorderMap.put("update_time", now); - produceorderMap.put("realproduceend_date", now); - wo.update(produceorderMap); - //wms向acs发送请求 工单强制完成 - // TODO - JSONArray array = new JSONArray(); - JSONObject map = new JSONObject(); - map.put("ext_order_id",workorder_id); - map.put("type","3"); - array.add(map); - wmsToAcsService.orderStatusUpdate(array); + String deviceCode = row.getString("device_code"); + row.put("realproduceend_date", now); + row.put("update_optid", currentUserId); + row.put("update_optname", nickName); + row.put("update_time", now); + row.put("order_status", "5"); + workorderTab.update(row); + if (deviceCode.equals("YQX01WX") || deviceCode.equals("YQX01KS")) { + JSONObject jsonObject = workOrderCacheTab.query("device_code = '" + deviceCode + "'", "update_time").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonObject)) { + // 找不到就推出 + return; + } + // 油漆线特殊处理: 工单完成并把这个设备的工单换成暂存表的工单 + workorderTab.insert(jsonObject); + // 加入后工单要去掉 + workOrderCacheTab.delete(jsonObject); + } } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/MesUtil.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/MesUtil.java index b69a78f..59874cb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/MesUtil.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/MesUtil.java @@ -30,8 +30,10 @@ import java.util.Map; public class MesUtil { public static JSONObject taskFeedback(JSONObject param, String finterfaceid) { MDC.put("log_file_type", "WMS任务完成反馈给MES"); - String endpointUrl = "http://helptimely.com:7722/Timely4100_15_yonyu/services/HtWebService"; // 替换为实际的 WebService 地址 +// String endpointUrl = "http://helptimely.com:7722/Timely4100_15_yonyu/services/HtWebService"; // 替换为实际的 WebService 地址 + String endpointUrl = "http://192.168.4.111:8080/mes/services/HtWebService"; // 替换为实际的 WebService 地址 JSONObject result = new JSONObject(); + JSONObject resObj = new JSONObject(); Map stringMap = new HashMap<>(); try { // 创建 HttpClient @@ -73,14 +75,19 @@ public class MesUtil { stringMap = parseXml2Map(String.valueOf(responseContent), new HashMap<>()); log.info("Response Code: " + statusCode); log.info("Response Body: " + stringMap); - if (statusCode == 200) { + String s = stringMap.get("Body.postResponse.return"); + resObj = JSON.parseObject(s); + if (resObj.getString("ErrorCode").equals("0")) { result.put("code", 200); result.put("message", "操作成功!"); + } else { + result.put("code", resObj.getString("ErrorCode")); + result.put("message", resObj.getString("ErrorMessage")); } } catch (Exception e) { log.error(e.getMessage()); result.put("code", 400); - result.put("message", stringMap.get("ErrorMessage")); + result.put("message", resObj.get("ErrorMessage")); } MDC.remove("log_file_type"); return result; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/DPJCallVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/DPJCallVehicleTask.java index 351903e..2d42c9b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/DPJCallVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/DPJCallVehicleTask.java @@ -41,9 +41,7 @@ public class DPJCallVehicleTask extends AbstractAcsTask { private final String THIS_CLASS = DPJCallVehicleTask.class.getName(); @Override public List addTask() { - /* - * 下发给ACS时需要特殊处理 - */ + /** 下发给ACS时需要特殊处理*/ JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0); ArrayList acsTaskArr = new ArrayList<>(); @@ -150,7 +148,7 @@ public class DPJCallVehicleTask extends AbstractAcsTask { .addParamMap(query) .process() .getResultJSONArray(0); - PointUpdateUtil.updatePoint(array); +// PointUpdateUtil.updatePoint(array); // 选择一个空位 JSONObject endPoint = WQL.getWO("DPJ_AUTOTASK") @@ -210,7 +208,12 @@ public class DPJCallVehicleTask extends AbstractAcsTask { .addParamMap(MapOf.of("flag", "4", "block_num", emptyPoint.getString("block_num"), "row_num", emptyPoint.getString("row_num"))).process() .uniqueResult(0); - if (ObjectUtil.isEmpty(waitPoint)) throw new BadRequestException("叠盘架呼叫空托判断等待点异常!"); + if (ObjectUtil.isEmpty(waitPoint)) { + taskObj.put("remark", "叠盘架呼叫空托判断等待点异常"); + taskObj.put("update_time", DateUtil.now()); + taskTab.update(taskObj); + throw new BadRequestException("叠盘架呼叫空托判断等待点异常!"); + } // 2.2、判断等待点 if (!waitPoint.getString("waitcol").equals(emptyPoint.getString("col_num"))) { // 获取等待点 @@ -221,7 +224,7 @@ public class DPJCallVehicleTask extends AbstractAcsTask { "AND is_delete = '0' " + "AND lock_type = '1'").uniqueResult(0); if (ObjectUtil.isEmpty(waitPoints)) { - taskObj.put("remark", "等待点已被占用"); + taskObj.put("remark", "等待点[" + waitPoints.getString("point_code") + "]已被占用"); taskObj.put("update_time", DateUtil.now()); taskTab.update(taskObj); continue; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java index 36e8525..1546b8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/YqxCallMaterialTask.java @@ -78,6 +78,12 @@ public class YqxCallMaterialTask extends AbstractAcsTask { if (StrUtil.equals(status, "2")) { //完成后 + // 通知mes + feedback.put("fscanserialid001", taskObj.getString("task_code")); + feedback.put("flocationid979number", taskObj.getString("point_code1")); + feedback.put("flpn979", material_point.getString("vehicle_code")); + feedback.put("fstoragequantity979", material_point.getString("ivt_qty")); + wmsToMesService.taskFeedback(feedback, "WM_INV_MOVE_P011_AGV02"); // 物料点位解锁 并设置空位 material_point.put("lock_type", "1"); material_point.put("point_status", "1"); @@ -94,13 +100,6 @@ public class YqxCallMaterialTask extends AbstractAcsTask { if (ObjectUtil.isEmpty(material_point)) return; - // 通知mes - feedback.put("fscanserialid001", taskObj.getString("task_code")); - feedback.put("flocationid979number", taskObj.getString("point_code1")); - feedback.put("flpn979", taskObj.getString("vehicle_code")); - feedback.put("fstoragequantity979", taskObj.getString("material_qty")); - wmsToMesService.taskFeedback(feedback, "WM_INV_MOVE_P011_AGV02"); - //区域出入表【st_ivt_regionIO】 WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO"); JSONObject regionIoObj = new JSONObject(); @@ -129,7 +128,7 @@ public class YqxCallMaterialTask extends AbstractAcsTask { @Override public void findStartPoint() { - MDC.put("log_file_type", "YqxCallMaterial"); + MDC.put("log_file_type", "油漆线叫料"); // 到养生A区找起点:根据物料、载具类型去查找,均在工单中 WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表 WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表 @@ -194,10 +193,12 @@ public class YqxCallMaterialTask extends AbstractAcsTask { log.info("等待点搬运物料"); taskObj.put("point_code1", materialPoint.getString("point_code")); taskObj.put("material_qty", materialPoint.getString("ivt_qty")); + taskObj.put("vehicle_code", materialPoint.getString("vehicle_code")); taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); taskObj.put("acs_task_type", "2"); taskObj.put("remark", "等待点搬运物料"); taskObj.put("update_time", DateUtil.now()); + log.info("任务信息:{}", taskObj); taskTab.update(taskObj); } else { log.info("养生A区无所需物料"); @@ -336,10 +337,12 @@ public class YqxCallMaterialTask extends AbstractAcsTask { if (ObjectUtil.isEmpty(materialPoint)) { throw new BadRequestException("养生A区暂无所需物料!"); // 此时车会停止 } + log.info("追加任务物料点:{}", materialPoint); String pointCode = materialPoint.getString("point_code"); // 修改任务 hcTask.put("point_code1", pointCode); hcTask.put("material_qty", materialPoint.getString("ivt_qty")); + hcTask.put("vehicle_code", materialPoint.getString("vehicle_code")); hcTask.put("remark", "养生A区:" + pointCode); taskTab.update(hcTask); // 锁住点位 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 63c96bf..d9acc4d 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 @@ -17,6 +17,7 @@ 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.slf4j.MDC; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -123,6 +124,8 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { + MDC.put("log_file_type", "油漆线呼叫空载具"); + log.info("请求参数: {}", form); /* * 1.先生成确定起点的任务 * 2.通过findNextPoint()找终点 @@ -135,16 +138,16 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); String point_code1 = form.getString("point_code1"); String device_code = pointTab.query("point_code = '" + point_code1 + "'").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("该设备当前未生产或者已删除"); String vehicleType = workOrderObj.getString("vehicle_type"); + log.info("目前工单请求的载具类型: {}", vehicleType); if (ObjectUtil.isEmpty(vehicleType)) throw new BadRequestException("载具类型不能为空"); JSONObject jsonObject = pointTab.query("region_code = 'YQQY01' and point_type = '2' and can_vehicle_type = '" + vehicleType + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonObject)) throw new BadRequestException("找不到油漆线托盘下料起点"); String startPointCode = jsonObject.getString("point_code"); - + log.info("找到起点的位置:{}", startPointCode); //任务表【SCH_BASE_Task】 //判断当前点是否有未完成的任务 JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + @@ -167,6 +170,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { .build(); JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); + log.info("任务创建成功->id: {}", dto.getTask_id()); // this.findNextPoint(); this.immediateNotifyAcs(); return String.valueOf(dto.getTask_id()); @@ -253,10 +257,12 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { String end_code = ""; String vehicle_type = param.getString("vehicle_type"); + log.info("载具类型:{}", vehicle_type); // 1.找到对应类型的叠盘架 JSONObject jsonDpjEnd = 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'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonDpjEnd)) { + log.info("找到对应类型的叠盘架: {}", jsonDpjEnd.getString("point_code")); // 判断数量 + 叠盘架的数量是否超过此叠盘架的最大数量 double add_num = NumberUtil.add(param.getIntValue("qty"), jsonDpjEnd.getIntValue("vehicle_qty")); @@ -268,6 +274,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(jsonZcwEnd)) { end_code = jsonZcwEnd.getString("point_code"); + log.info("找到叠盘架缓存位:{}", end_code); } else { // 为空就去养生A区的等待位 // JSONObject jsonEmpWait = pointTab.query("region_id = '" + RegionTypeEnum.YSAQKTPQ01.getId() + "' and col_num = '1' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and point_status = '1'").uniqueResult(0); @@ -286,6 +293,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { if (is_point) { end_code = endPointCode; } + log.info("找到养生A区: {}", end_code); } } } else { @@ -293,6 +301,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { JSONObject jsonZcwEnd = pointTab.query("region_id = '" + RegionTypeEnum.KTPHCQB.getId() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and point_status = '1'").uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonZcwEnd)) { end_code = jsonZcwEnd.getString("point_code"); + log.info("叠盘架没有空位去找叠盘暂存位:{}", end_code); } else { // 为空就去养生A区的等待位 // JSONObject jsonEmpWait = pointTab.query("region_id = '" + RegionTypeEnum.YSAQKTPQ01.getId() + "' and col_num = '1' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and point_status = '1'").uniqueResult(0); @@ -312,8 +321,10 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { if (is_point) { end_code = endPointCode; } + log.info("去养生A区{}", end_code); } } + log.info("找到终点:{}", end_code); return end_code; } @@ -323,6 +334,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { * @return */ public String goToYSAQ(String vehicle_type) { + log.info("载具类型:{}", vehicle_type); String endPointCode = null; WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表 // 先找看看有没有放过托盘的 @@ -331,6 +343,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { " AND point_status = '2' AND is_used = '1' AND is_delete = '0'","block_num, row_num, in_empty_seq") .uniqueResult(0); if (ObjectUtil.isNotEmpty(emptyObj)) { + log.info("找到之前放过空载具的位置:{}", emptyObj); // 如果存在则往下继续放 Integer block_num = emptyObj.getInteger("block_num"); Integer col_num = emptyObj.getInteger("col_num"); // 列 @@ -352,6 +365,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask { "and point_status = '1'", "block_num, row_num, in_empty_seq desc").uniqueResult(0); endPointCode = endPointObj.getString("point_code"); } + log.info("找到的终点:{}", endPointCode); return endPointCode; } 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 1df573d..cfdedfc 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 @@ -328,14 +328,17 @@ public class GjxSendMaterialTask extends AbstractAcsTask { WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); //点位基础表【SCH_BASE_Point】 WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); + WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device"); //任务表【SCH_BASE_Task】 WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); String point_code1 = whereJson.getString("point_code1"); + String device = null; // mes点位不同,要重新寻找 JSONObject djwPoint = pointTab.query("mes_device_code = '" + point_code1 + "' AND is_used = '1'").uniqueResult(0); if (ObjectUtil.isNotEmpty(djwPoint)) { point_code1 = djwPoint.getString("point_code"); + device = djwPoint.getString("device_code"); } String vehicle_code = whereJson.getString("vehicle_code"); String qty = whereJson.getString("qty"); @@ -343,17 +346,30 @@ public class GjxSendMaterialTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(whereJson.getString("task_code"))) { task_code = whereJson.getString("task_code"); } + JSONObject workOrderObj = new JSONObject(); + String workorderCode = whereJson.getString("workorder_code"); + // 如果是acs自己玩就没有带工单编号 + if (ObjectUtil.isEmpty(workorderCode)) { + String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code"); + workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0); + } else { + workOrderObj = workOrderTab.query("workorder_code = '" + workorderCode + "'").uniqueResult(0); + } + if (ObjectUtil.isEmpty(workOrderObj)) { + throw new BadRequestException("该设备当前未生产或者已删除"); + } + if (ObjectUtil.isNotEmpty(device) && !workOrderObj.getString("device_code").equals(device)) { + JSONObject jsonObject = deviceTab.query("device_code = '" + device + "'").uniqueResult(0); + // 工单不符合,工单切换设备 + workOrderObj.put("device_code", jsonObject.getString("device_code")); + workOrderObj.put("device_id", jsonObject.getString("device_id")); + workOrderTab.update(workOrderObj); + } //判断当前点是否有未完成的任务 JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务"); - String device_code = pointTab.query("point_code = '" + point_code1 + "'").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("该设备当前未生产或者已删除"); - - SchTaskDto dto = SchTaskDto.builder() .task_id(IdUtil.getLongId()) .task_code(task_code) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java index 9a1eb29..2510945 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java @@ -128,6 +128,8 @@ public class HtSendMaterialTask extends AbstractAcsTask { @Override @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { + MDC.put("log_file_type", "一楼货梯口送料"); + log.info("传来的数据:{}", form); WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject vehicleInfoTab = WQLObject.getWQLObject("md_pb_vehicle"); String startPointCode = form.getString("point_code1"); @@ -159,6 +161,7 @@ public class HtSendMaterialTask extends AbstractAcsTask { JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto)); taskTab.insert(json); this.immediateNotifyAcs(); + MDC.remove("log_file_type"); return String.valueOf(dto.getTask_id()); } 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 858a3bc..b4d14ae 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