From 88ccf86ab2f3e431d1fa947381852850cb9b3e6f Mon Sep 17 00:00:00 2001 From: ludj Date: Wed, 4 Jan 2023 16:18:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=B9=B6=E5=8F=91=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/service/impl/AcsToWmsServiceImpl.java | 246 +++++++++--------- 1 file changed, 124 insertions(+), 122 deletions(-) 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 f26b17c..f134492 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 @@ -35,7 +35,7 @@ import java.util.Map; @RequiredArgsConstructor @Slf4j public class AcsToWmsServiceImpl implements AcsToWmsService { - private final TaskService taskService; + private final Object lockObj = new Object(); /** * task_id:任务标识 @@ -169,134 +169,136 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject apply(JSONObject whereJson) { - String type = whereJson.getString("type"); - String point_code = whereJson.getString("point_code"); - String vehicle_type = whereJson.getString("vehicle_type"); - String vehicle_code = whereJson.getString("vehicle_code"); - //载具数量 - String vehicle_num = whereJson.getString("vehicle_num"); - //物料数量 - String material_num = whereJson.getString("qty"); + synchronized (lockObj) { + String type = whereJson.getString("type"); + String point_code = whereJson.getString("point_code"); + String vehicle_type = whereJson.getString("vehicle_type"); + String vehicle_code = whereJson.getString("vehicle_code"); + //载具数量 + String vehicle_num = whereJson.getString("vehicle_num"); + //物料数量 + String material_num = whereJson.getString("qty"); - if (ObjectUtil.isEmpty(type)) throw new BadRequestException("类型不能为空"); - if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); - - /* - * 根据type判断是什么业务类型: - * 1.共挤线申请空盘 - * 2.共挤线满托入库 - * 3.油漆线申请空盘 - * 4.油漆线申请物料 - * 5.油漆线空盘入库 - * 6.一楼空盘入库 (有载具号) - * 7.油漆线->输送线(油漆线满料) - * 8.豪凯自动线下料入库 - */ - if (StrUtil.equals(type, "1")) { - // 1.共挤线申请空盘: 调用空托盘出库处理类创建任务 - if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); - - JSONObject param = new JSONObject(); - param.put("point_code2", point_code); - param.put("vehicle_type", vehicle_type); - param.put("vehicle_code", vehicle_code); - param.put("qty", material_num); - // 创建任务 - GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class); - taskBean.createTask(param); - - } else if (StrUtil.equals(type, "2")) { - // 2.共挤线满托入库: 调用物料入库处理类创建任务 - if (ObjectUtil.isEmpty(material_num) || (StrUtil.equals(material_num, "0"))) - throw new BadRequestException("物料数量不能为空或者为0"); - - JSONObject param = new JSONObject(); - param.put("point_code1", point_code); // 满料位 - param.put("qty", material_num); // 满料位 - param.put("vehicle_type", vehicle_type); - param.put("vehicle_code", vehicle_code); - - GjxSendMaterialTask taskBean = SpringContextHolder.getBean(GjxSendMaterialTask.class); - String task_id = taskBean.createTask(param); // 创建任务 - } else if (StrUtil.equals(type, "3")) { - // 3.油漆线申请空盘: 调用空托盘出库处理类创建任务 - if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); - - JSONObject param = new JSONObject(); - param.put("point_code2", point_code); - param.put("vehicle_code", vehicle_code); - param.put("qty", vehicle_num); - // 创建任务 - YqxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxCallEmpVehicleTask.class); - String task_id = taskBean.createTask(param); - } else if (StrUtil.equals(type, "4")) { - // 4.油漆线申请物料: 调用物料出库库处理类创建任务 - JSONObject param = new JSONObject(); - param.put("point_code2", point_code); // 叫料点 - param.put("io_type", "2"); - param.put("vehicle_type", vehicle_type); - param.put("vehicle_code", vehicle_code); - param.put("material_num", material_num); - // 创建任务 - YqxCallMaterialTask taskBean = SpringContextHolder.getBean(YqxCallMaterialTask.class); - String task_id = taskBean.createTask(param); - - } else if (StrUtil.equals(type, "5")) { - // 5.油漆线空盘入库: 调用空托盘入库处理类创建任务 + if (ObjectUtil.isEmpty(type)) throw new BadRequestException("类型不能为空"); if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); - if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); - if (ObjectUtil.isEmpty(vehicle_type)) throw new BadRequestException("载具类型不能为空"); - JSONObject param = new JSONObject(); - param.put("point_code1", point_code); - param.put("qty", vehicle_num); - param.put("vehicle_type", vehicle_type); - param.put("vehicle_code", vehicle_code); - // 创建任务 - YqxSendEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxSendEmpVehicleTask.class); - taskBean.createTask(param); + /* + * 根据type判断是什么业务类型: + * 1.共挤线申请空盘 + * 2.共挤线满托入库 + * 3.油漆线申请空盘 + * 4.油漆线申请物料 + * 5.油漆线空盘入库 + * 6.一楼空盘入库 (有载具号) + * 7.油漆线->输送线(油漆线满料) + * 8.豪凯自动线下料入库 + */ + if (StrUtil.equals(type, "1")) { + // 1.共挤线申请空盘: 调用空托盘出库处理类创建任务 + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); + + JSONObject param = new JSONObject(); + param.put("point_code2", point_code); + param.put("vehicle_type", vehicle_type); + param.put("vehicle_code", vehicle_code); + param.put("qty", material_num); + // 创建任务 + GjxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(GjxCallEmpVehicleTask.class); + taskBean.createTask(param); + + } else if (StrUtil.equals(type, "2")) { + // 2.共挤线满托入库: 调用物料入库处理类创建任务 + if (ObjectUtil.isEmpty(material_num) || (StrUtil.equals(material_num, "0"))) + throw new BadRequestException("物料数量不能为空或者为0"); + + JSONObject param = new JSONObject(); + param.put("point_code1", point_code); // 满料位 + param.put("qty", material_num); // 满料位 + param.put("vehicle_type", vehicle_type); + param.put("vehicle_code", vehicle_code); + + GjxSendMaterialTask taskBean = SpringContextHolder.getBean(GjxSendMaterialTask.class); + String task_id = taskBean.createTask(param); // 创建任务 + } else if (StrUtil.equals(type, "3")) { + // 3.油漆线申请空盘: 调用空托盘出库处理类创建任务 + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); + + JSONObject param = new JSONObject(); + param.put("point_code2", point_code); + param.put("vehicle_code", vehicle_code); + param.put("qty", vehicle_num); + // 创建任务 + YqxCallEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxCallEmpVehicleTask.class); + String task_id = taskBean.createTask(param); + } else if (StrUtil.equals(type, "4")) { + // 4.油漆线申请物料: 调用物料出库库处理类创建任务 + JSONObject param = new JSONObject(); + param.put("point_code2", point_code); // 叫料点 + param.put("io_type", "2"); + param.put("vehicle_type", vehicle_type); + param.put("vehicle_code", vehicle_code); + param.put("material_num", material_num); + // 创建任务 + YqxCallMaterialTask taskBean = SpringContextHolder.getBean(YqxCallMaterialTask.class); + String task_id = taskBean.createTask(param); + + } else if (StrUtil.equals(type, "5")) { + // 5.油漆线空盘入库: 调用空托盘入库处理类创建任务 + if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空"); + if (ObjectUtil.isEmpty(vehicle_num)) throw new BadRequestException("数量不能为空"); + if (ObjectUtil.isEmpty(vehicle_type)) throw new BadRequestException("载具类型不能为空"); + + JSONObject param = new JSONObject(); + param.put("point_code1", point_code); + param.put("qty", vehicle_num); + param.put("vehicle_type", vehicle_type); + param.put("vehicle_code", vehicle_code); + // 创建任务 + YqxSendEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxSendEmpVehicleTask.class); + taskBean.createTask(param); - } else if (StrUtil.equals(type, "6")) { - // 6.一楼空盘入库 (有载具号): 调用空托盘入库处理类创建任务 - if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("载具号不能为空"); - JSONObject param = new JSONObject(); + } else if (StrUtil.equals(type, "6")) { + // 6.一楼空盘入库 (有载具号): 调用空托盘入库处理类创建任务 + if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("载具号不能为空"); + JSONObject param = new JSONObject(); + + // 查询载具号对应的数量 + JSONObject jsonVeQty = new JSONObject(); + if (ObjectUtil.isEmpty(vehicle_num)) { + if (ObjectUtil.isEmpty(jsonVeQty)) throw new BadRequestException("请先手持扫码"); + } else { + jsonVeQty.put("qty", vehicle_num); + } + + param.put("qty", jsonVeQty.getString("qty")); + param.put("point_code1", point_code); + param.put("vehicle_code", vehicle_code); + param.put("vehicle_type", vehicle_type); + // 创建任务 + HtSendEmpVehicleTask taskBean = SpringContextHolder.getBean(HtSendEmpVehicleTask.class); + String task_id = taskBean.createTask(param); + + } else if (StrUtil.equals(type, "7")) { + JSONObject param = new JSONObject(); + param.put("point_code1", point_code); + param.put("vehicle_code", vehicle_code); + param.put("vehicle_type", vehicle_type); + param.put("qty", material_num); + // 1.生成起点确定的任务 + SpringContextHolder.getBean(YqxSendMaterialTask.class).createTask(param); + } else if (StrUtil.equals(type, "8")) { + // 8.豪凯自动线下料入库 + JSONObject param = new JSONObject(); + param.put("point_code1", point_code); + param.put("vehicle_code", vehicle_code); + param.put("vehicle_type", vehicle_type); + param.put("qty", material_num); + HkxSendMaterialTask taskBean = SpringContextHolder.getBean(HkxSendMaterialTask.class); + String task_id = taskBean.createTask(param); - // 查询载具号对应的数量 - JSONObject jsonVeQty = new JSONObject(); - if (ObjectUtil.isEmpty(vehicle_num)) { - if (ObjectUtil.isEmpty(jsonVeQty)) throw new BadRequestException("请先手持扫码"); - } else { - jsonVeQty.put("qty", vehicle_num); } - - param.put("qty", jsonVeQty.getString("qty")); - param.put("point_code1", point_code); - param.put("vehicle_code", vehicle_code); - param.put("vehicle_type", vehicle_type); - // 创建任务 - HtSendEmpVehicleTask taskBean = SpringContextHolder.getBean(HtSendEmpVehicleTask.class); - String task_id = taskBean.createTask(param); - - } else if (StrUtil.equals(type, "7")) { - JSONObject param = new JSONObject(); - param.put("point_code1", point_code); - param.put("vehicle_code", vehicle_code); - param.put("vehicle_type", vehicle_type); - param.put("qty", material_num); - // 1.生成起点确定的任务 - SpringContextHolder.getBean(YqxSendMaterialTask.class).createTask(param); - } else if (StrUtil.equals(type, "8")) { - // 8.豪凯自动线下料入库 - JSONObject param = new JSONObject(); - param.put("point_code1", point_code); - param.put("vehicle_code", vehicle_code); - param.put("vehicle_type", vehicle_type); - param.put("qty", material_num); - HkxSendMaterialTask taskBean = SpringContextHolder.getBean(HkxSendMaterialTask.class); - String task_id = taskBean.createTask(param); - + return null; } - return null; } }