From b10f1d806a333bfd056b9265c920d6dd908e30a1 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Fri, 25 Aug 2023 16:01:17 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E5=88=BB=E5=AD=97=E8=BE=93=E9=80=81?= =?UTF-8?q?=E7=BA=BF=E4=BB=BB=E5=8A=A1=E4=B8=8B=E5=8F=91=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/common/utils/RedissonUtils.java | 2 +- .../pda/controller/TmpKZController.java | 76 ++++++++++--------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java index 289ef418..0c3912a0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/utils/RedissonUtils.java @@ -35,7 +35,7 @@ public class RedissonUtils { if (isLock){ process.process(); } else { - throw new BadRequestException("当前业务 key:"+key+"正在执行请稍后再试"); + throw new BadRequestException("当前业务:"+key+"正在执行请稍后再试"); } }catch (Exception ex){ ex.printStackTrace(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java index fffea509..b306c710 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/pda/controller/TmpKZController.java @@ -234,44 +234,48 @@ public class TmpKZController { @Log("刻字任务重新下发") @SaIgnore public ResponseEntity resend(@RequestBody JSONObject param){ - SchBaseTask baseTask = taskService.getById(param.getString("task_id")); - if (baseTask.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())){ - throw new BadRequestException("任务已经完成"); - }; - if (baseTask.getTask_type().equals(AcsTaskEnum.TASK_Engrave_CALL.getCode())){ - //下发 - Map qtyArr = JSONObject.parseObject(baseTask.getQtyArr(), Map.class); - JSONObject jo = new JSONObject(); - jo.put("start_point_code", baseTask.getPoint_code1()); - jo.put("task_code", baseTask.getTask_code()); - jo.put("all_weight", baseTask.getMaterial_qty().intValue()); - String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - List sort = qtyArr.keySet().stream().sorted(Comparator.comparingInt(key -> Integer.valueOf(key.substring(key.lastIndexOf("_") + 1)))).collect(Collectors.toList()); - for (int i1 = 0; i1 < sort.size(); i1++) { - String key = sort.get(i1); - to_sort_array[i1] = String.valueOf(i1+1); - to_devices_array[i1] = String.valueOf(key); - to_weight_array[i1] = String.valueOf(new BigDecimal(qtyArr.get(key))); - } - jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(","))); - jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(","))); - jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(","))); - JSONObject result = wmsToAcsService.request(jo, "api/wms/engravingIn"); - if (!result.getString("status").equals("200")){ - log.error("刻字上料输送线任务下发异常:{}",result.getString("message")); - baseTask.setRemark(result.getString("message")); - baseTask.setTask_status(TaskStatusEnum.SURE_START_ERROR.getCode()); - taskService.updateById(baseTask); - throw new BadRequestException(result.getString("message")); + RedissonUtils.lock(()->{ + SchBaseTask baseTask = taskService.getById(param.getString("task_id")); + if (baseTask.getTask_status().equals(StatusEnum.TASK_FINISH.getCode())){ + throw new BadRequestException("任务已经完成"); + }; + if (baseTask.getTask_type().equals(AcsTaskEnum.TASK_Engrave_CALL.getCode())){ + //下发 + Map qtyArr = JSONObject.parseObject(baseTask.getQtyArr(), Map.class); + JSONObject jo = new JSONObject(); + jo.put("start_point_code", baseTask.getPoint_code1()); + jo.put("task_code", baseTask.getTask_code()); + jo.put("all_weight", baseTask.getMaterial_qty().intValue()); + String[] to_sort_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + String[] to_devices_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + String[] to_weight_array = {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; + List sort = qtyArr.keySet().stream().sorted(Comparator.comparingInt(key -> Integer.valueOf(key.substring(key.lastIndexOf("_") + 1)))).collect(Collectors.toList()); + for (int i1 = 0; i1 < sort.size(); i1++) { + String key = sort.get(i1); + to_sort_array[i1] = String.valueOf(i1+1); + to_devices_array[i1] = String.valueOf(key); + to_weight_array[i1] = String.valueOf(new BigDecimal(qtyArr.get(key))); + } + jo.put("to_sort_array", Arrays.stream(to_sort_array).collect(Collectors.joining(","))); + jo.put("to_devices_array",Arrays.stream(to_devices_array).collect(Collectors.joining(","))); + jo.put("to_weight_array", Arrays.stream(to_weight_array).collect(Collectors.joining(","))); + JSONObject result = wmsToAcsService.request(jo, "api/wms/engravingIn"); + if (!result.getString("status").equals("200")){ + log.error("刻字上料输送线任务下发异常:{}",result.getString("message")); + baseTask.setRemark(result.getString("message")); + baseTask.setTask_status(TaskStatusEnum.SURE_START_ERROR.getCode()); + taskService.updateById(baseTask); + throw new BadRequestException(result.getString("message")); + }else { + baseTask.setTask_status(TaskStatusEnum.ISSUE.getCode()); + taskService.updateById(baseTask); + } }else { - baseTask.setTask_status(TaskStatusEnum.ISSUE.getCode()); - taskService.updateById(baseTask); + throw new BadRequestException("搬运任务不允许直接下发"); + //taskService.operation(MapOf.of("method_name","immediateNotifyAcs","task_id",param.getString("task_id"))); } - }else { - taskService.operation(MapOf.of("method_name","immediateNotifyAcs","task_id",param.getString("task_id"))); - } + },"刻字输送线下发",null); + return new ResponseEntity<>(TableDataInfo.build(),HttpStatus.OK); }