From 1b3a849fd74b40a819f537ae22692d54ae68aa6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=B1=9F=E7=8E=AE?= Date: Wed, 19 Jul 2023 17:37:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=A1=A8=E7=BB=93=E6=9E=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E5=8F=8D=E5=90=91=E7=BB=84=E7=9B=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ext/acs/rest/AcsToWmsController.java | 6 +- .../wms/ext/acs/service/AcsToWmsService.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 316 ++---------------- .../src/main/java/org/nl/wms/wms.xls | Bin 280576 -> 281088 bytes .../main/resources/config/application-dev.yml | 2 +- 5 files changed, 23 insertions(+), 303 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index dd8e7fa..69a5009 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -122,11 +122,7 @@ public class AcsToWmsController { @ApiOperation("入窑口反向组盘") @SaIgnore public ResponseEntity reverseGroup(@RequestBody JSONObject whereJson) { - acsToWmsService.reverseGroup(whereJson); - JSONObject result = new JSONObject(); - result.put("status", HttpStatus.OK.value()); - result.put("message", "发送任务成功"); - return new ResponseEntity<>(result, HttpStatus.OK); + return new ResponseEntity<>(acsToWmsService.reverseGroup(whereJson), HttpStatus.OK); } @SaIgnore diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index ac9cea8..bb1afd4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -100,7 +100,7 @@ public interface AcsToWmsService { * 入窑口反向组盘 * @param whereJson */ - void reverseGroup(JSONObject whereJson); + JSONObject reverseGroup(JSONObject whereJson); /** * 根据设备编码获取托盘信息 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 09e4eb8..24ae90f 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 @@ -207,263 +207,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject apply(JSONObject param) { - String point_code = param.getString("device_code"); - if (StrUtil.isBlank(point_code)) { - throw new BadRequestException("点位不能为空!"); - } - String type = param.getString("type"); - String task_code; - JSONObject point = param.getJSONObject("point"); - if (ObjectUtil.isEmpty(point)) { - point = WQLObject - .getWQLObject("sch_base_point") - .query("is_used = '1' AND point_code = '" + point_code + "'") - .uniqueResult(0); - if (ObjectUtil.isEmpty(point)) { - throw new BadRequestException("[" + point_code + "] 已删除或未启用!"); - } - } - TaskUtils.isLocked(point); - - Region region = Region.get(point.getString("region_code")); - - JSONObject method_param = new JSONObject(); - method_param.put("point", point); - method_param.put("create_mode", CreateMode.ACSSQ.value()); - String request_param = param.getString("request_param"); - if (StrUtil.isBlank(request_param)) { - request_param = param.toJSONString(); - } - method_param.put("request_param", request_param); - method_param.put("create_id", ACSSystem.id); - method_param.put("create_name", ACSSystem.nick_name); - switch (type) { - case "1": - // 送料 - switch (region) { - case HL: - JSONObject workorder = TaskUtils.hasWorkOrder(point); - method_param.put("workorder", workorder); - String vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code")); - if ("0000".equals(vehicle_code)) { - throw new BadRequestException("载具编码不能为空!"); - } - method_param.put("vehicle_code", vehicle_code); - String weight = param.getString("weight"); - if (StrUtil.isBlank(weight)) { - throw new BadRequestException("重量不能为空!"); - } - - WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail"); - JSONObject vd_update = new JSONObject(); - vd_update.put("is_delete", "1"); - vd_update.put("update_optid", ACSSystem.id); - vd_update.put("update_optname", ACSSystem.nick_name); - String now = DateUtil.now(); - vd_update.put("update_time", now); - vd_table.update(vd_update, "vehicle_type = '1' AND vehicle_code = '" + vehicle_code + "' AND is_delete = '0'"); - - String device_code = workorder.getString("device_code"); - JSONObject result = wmsToAcsService.getDeviceStatus( - new JSONArray() {{ - add(new JSONObject() {{ - put("device_code", device_code); - }}); - }}); - if (!"200".equals(result.getString("status"))) { - throw new BadRequestException("[" + device_code + "] ACS未返回设备信息!"); - } - JSONArray data = result.getJSONArray("data"); - if (ObjectUtil.isEmpty(data)) { - throw new BadRequestException("[" + device_code + "] ACS未返回设备信息!"); - } - String mix_num = data.getJSONObject(0).getString("mix_num"); - if (StrUtil.isBlank(mix_num)) { - throw new BadRequestException("未知碾次!"); - } - - JSONObject vd = new JSONObject(); - vd.put("vd_id", IdUtil.getSnowflake(1L, 1L).nextId()); - vd.put("vehicle_type", VehicleType.CUP.value()); - vd.put("vehicle_code", vehicle_code); - vd.put("material_id", workorder.getString("material_id")); - vd.put("weight", weight); - vd.put("workorder_id", workorder.getString("workorder_id")); - vd.put("point_code", point_code); - vd.put("create_id", ACSSystem.id); - vd.put("create_name", ACSSystem.nick_name); - vd.put("create_time", now); - vd.put("is_in_kiln", "0"); - vd.put("stand_status", StandStatus.STANDING.value()); - vd.put("mix_num", mix_num); - vd_table.insert(vd); - method_param.put("vd", vd); - - task_code = hlSendMaterialTask.createTask(method_param); - break; - case YZ: - method_param.put("workorder", param.getJSONObject("workorder")); - method_param.put("vd", param.getJSONObject("vd")); - task_code = yzSendMaterialTask.createTask(method_param); - break; - case SZ: - vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code")); - if ("0000".equals(vehicle_code)) { - throw new BadRequestException("载具编码不能为空!"); - } - method_param.put("vehicle_code", vehicle_code); - vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail"); - vd = vd_table - .query("is_delete = '0' AND vehicle_type = '2' AND vehicle_code = '" + vehicle_code + "'") - .uniqueResult(0); - if (ObjectUtil.isEmpty(vd)) { - throw new BadRequestException("未找到 [" + vehicle_code + "] 的组盘信息!"); - } - vd.put("is_fire", "1"); - vd.put("is_in_kiln", "0"); - vd_table.update(vd); - method_param.put("vd", vd); - - task_code = szSendMaterialTask.createTask(method_param); - break; - case FJ: - method_param.put("workorder", param.getJSONObject("workorder")); - method_param.put("vd", param.getJSONObject("vd")); - task_code = fjSendMaterialTask.createTask(method_param); - break; - default: - throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!"); - } - break; - case "2": - // 叫料 - switch (region) { - case YZ: - JSONObject workorder = TaskUtils.hasWorkOrder(point); - method_param.put("workorder", workorder); - task_code = yzCallMaterialTask.createTask(method_param); - break; - case SZ: - task_code = szCallMaterialTask.createTask(method_param); - break; - case FJ: - workorder = TaskUtils.hasWorkOrder(point); - method_param.put("workorder", workorder); - task_code = fjCallMaterialTask.createTask(method_param); - break; - default: - throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!"); - } - break; - case "3": - // 送空 - JSONObject workorder = WQLObject - .getWQLObject("pdm_bd_workorder") - .query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'") - .uniqueResult(0); - method_param.put("workorder", workorder); - - switch (region) { - case YZ: - String vehicle_type = point.getString("vehicle_type"); - if (StrUtil.isBlank(vehicle_type)) { - throw new BadRequestException("点位 [" + point_code + "] 无载具类型!"); - } - String vehicle_code = TaskUtils.formatVehicleCode(point.getString("vehicle_code")); - if ("0000".equals(vehicle_code)) { - throw new BadRequestException("点位 [" + point_code + "] 无载具编码!"); - } - JSONObject vd_update = new JSONObject(); - vd_update.put("is_delete", TrueOrFalse.TRUE.value()); - TaskUtils.addACSUpdateColum(vd_update); - WQLObject - .getWQLObject("st_ivt_vehicle_detail") - .update(vd_update, "vehicle_type = " + vehicle_type + " AND vehicle_code = '" + vehicle_code + "'"); - - task_code = yzSendEmptyTask.createTask(method_param); - break; - case FJ: - vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code")); - if ("0000".equals(vehicle_code)) { - vehicle_code = point.getString("vehicle_code"); - if (StrUtil.isBlank(vehicle_code) || "0000".equals(vehicle_code)) { - throw new BadRequestException("载具编码不能为空!"); - } - } - method_param.put("vehicle_code", vehicle_code); - vd_update = new JSONObject(); - vd_update.put("is_delete", TrueOrFalse.TRUE.value()); - TaskUtils.addACSUpdateColum(vd_update); - WQLObject - .getWQLObject("st_ivt_vehicle_detail") - .update(vd_update, "vehicle_type = '2' AND vehicle_code = '" + vehicle_code + "'"); - task_code = fjSendEmptyTask.createTask(method_param); - break; - default: - throw new BadRequestException("[" + region.label() + "] 不能发起送空任务!"); - } - break; - case "4": - // 叫空 - switch (region) { - case HL: - workorder = WQLObject - .getWQLObject("pdm_bd_workorder") - .query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'") - .uniqueResult(0); - method_param.put("workorder", workorder); - task_code = hlCallEmptyTask.createTask(method_param); - break; - case YZ: - workorder = WQLObject - .getWQLObject("pdm_bd_workorder") - .query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'") - .uniqueResult(0); - method_param.put("workorder", workorder); - task_code = yzCallEmptyTask.createTask(method_param); - break; - case GTK: - task_code = gtkCallEmptyTask.createTask(method_param); - break; - case FJ: - workorder = TaskUtils.hasWorkOrder(point); - method_param.put("workorder", workorder); - task_code = fjCallEmptyTask.createTask(method_param); - break; - default: - throw new BadRequestException("[" + region.label() + "] 不能发起叫空任务!"); - } - break; - case "5": - // 去包装 - switch (region) { - case FJ: - method_param.put("workorder", param.getJSONObject("workorder")); - method_param.put("vd", param.getJSONObject("vd")); - task_code = fjToPackageTask.createTask(method_param); - break; - case BTHC: - TaskUtils.isNotEmptyPoint(point); - JSONObject vd = WQLObject - .getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' vehicle_type = '" + point.getString("vehicle_type") + "' AND vehicle_code = '" + point.getString("vehicle_code") + "'") - .uniqueResult(0); - if (ObjectUtil.isEmpty(vd)) { - throw new BadRequestException("未找到 [" + point_code + "] 上的组盘信息!"); - } - method_param.put("vd", vd); - task_code = bthcToPackageTask.createTask(method_param); - break; - default: - throw new BadRequestException("[" + region.label() + "] 不能发起去包装任务!"); - } - break; - default: - throw new BadRequestException("未知任务类型!"); - } - JSONObject result = new JSONObject(); - result.put("message", "申请任务成功,任务编码 [" + task_code + "]"); - result.put("status", HttpStatus.OK.value()); - return result; + return null; } /** @@ -480,11 +224,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.isBlank(point_code)) { throw new BadRequestException("点位不能为空!"); } - String vehicle_code = jsonObject.getString("vehicle_code"); - vehicle_code = TaskUtils.formatVehicleCode(vehicle_code); - if ("0000".equals(vehicle_code)) { - throw new BadRequestException("载具编码不能为空!"); - } String qty = jsonObject.getString("qty"); if (StrUtil.isBlank(qty)) { throw new BadRequestException("数量不能为空!"); @@ -507,13 +246,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } TaskUtils.isLocked(point); + String vehicle_code = TaskUtils.formatVehicleCode(jsonObject.getString("vehicle_code")); JSONObject workorder = TaskUtils.hasWorkOrder(point); String vehicle_type = workorder.getString("vehicle_type"); WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail"); - JSONObject vd_update = new JSONObject(); - vd_update.put("is_delete", TrueOrFalse.TRUE.value()); - TaskUtils.addACSUpdateColum(vd_update); - vd_table.update(vd_update, "is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'"); + if (!"0000".equals(vehicle_code)) { + JSONObject vd_update = new JSONObject(); + vd_update.put("is_delete", TrueOrFalse.TRUE.value()); + TaskUtils.addACSUpdateColum(vd_update); + vd_table.update(vd_update, "is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'"); + } JSONObject vd = new JSONObject(); vd.put("vd_id", IdUtil.getSnowflake(1, 1).nextId()); @@ -578,19 +320,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { vd.put("create_time", DateUtil.now()); vd.put("is_delete", TrueOrFalse.FALSE.value()); - vd.put("is_fire", TrueOrFalse.FALSE.value()); - String region_code = point.getString("region_code"); - if (Region.FJ.value().equals(region_code)) { - vd.put("is_fire", TrueOrFalse.TRUE.value()); - } - vd.put("is_in_kiln", is_full); - if (Region.FJ.value().equals(region_code)) { - vd.put("is_in_kiln", TrueOrFalse.FALSE.value()); - } - if (Region.FJ.value().equals(region_code)) { - vd.put("is_package", jsonObject.getString("is_package")); - } - vd_table.insert(vd); // 入库 @@ -777,25 +506,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { */ @Override @Transactional(rollbackFor = Exception.class) - public void reverseGroup(JSONObject whereJson) { - WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); - WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup"); - WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + public JSONObject reverseGroup(JSONObject whereJson) { String vehicle_code = whereJson.getString("vehicle_code"); - String task_id = whereJson.getString("task_id"); - // 通过任务号获取任务中的 - JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); - String group_id = taskObj.getString("group_id"); + if (StrUtil.isBlank(vehicle_code)) { + throw new BadRequestException("条码不能为空!"); + } + String task_code = whereJson.getString("task_code"); + if (StrUtil.isBlank(task_code)) { + throw new BadRequestException("任务编码不能为空!"); + } - - JSONObject rywPoint = pointTab.query("point_code = 'RYW'").uniqueResult(0); - JSONObject group = groupTab.query("group_id = '" + group_id + "'").uniqueResult(0); - group.put("vehicle_code", vehicle_code); - group.put("create_time", DateUtil.now()); - groupTab.update(group); - // 清理点位 - rywPoint.put("point_status", PointEnum.POINT_STATUS_EMPTY_POSITION.getCode()); - pointTab.update(rywPoint); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "组盘成功!"); + return result; } /** 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 0633b6f54490965ca17d1322f69fb4192a56fde8..22eadec379f69509d738bf421be083f65e7389d6 100644 GIT binary patch delta 17703 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 F{|}2`b2R_} diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml index 2bdb3ab..854568d 100644 --- a/lms/nladmin-system/src/main/resources/config/application-dev.yml +++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml @@ -6,7 +6,7 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lnsh_lms3}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lnsh_lms4}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useOldAliasMetadataBehavior=true username: ${DB_USER:root} password: ${DB_PWD:123456} # 初始连接数