From 0b2532edbd24f5125613051007f20c5083df5a65 Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Wed, 21 May 2025 16:53:57 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E5=88=86=E5=88=87?= =?UTF-8?q?=E6=9A=82=E5=AD=98=E7=BB=B4=E6=8A=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pda/controller/SlitterPdaController.java | 8 ++ .../tasks/slitter/service/SlitterService.java | 7 ++ .../service/impl/SlitterServiceImpl.java | 113 ++++++++++++------ 3 files changed, 89 insertions(+), 39 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index e6601d2ec..18021980a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -248,4 +248,12 @@ public class SlitterPdaController { public ResponseEntity returnShaft(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterService.returnShaft(param), HttpStatus.OK); } + + @PostMapping("/cutCacheInventory") + @Log("分切暂存维护") + @SaIgnore + public ResponseEntity cutCacheInventory(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterService.cutCacheInventory(param), HttpStatus.OK); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index f67edcdf1..e9268fd2b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -362,4 +362,11 @@ public interface SlitterService { * @return */ JSONObject returnShaft(JSONObject param); + + /** + * 分切暂存维护 + * @param param + * @return + */ + JSONObject cutCacheInventory(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 308bdae3e..f28ce19d7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -1585,7 +1585,8 @@ public class SlitterServiceImpl implements SlitterService { data.put("status", "1".equals(point.getPoint_status()) ? "空位" : "2".equals(point.getPoint_status()) ? "有气胀轴" : "3".equals(point.getPoint_status()) - ? "有子卷" : "-"); + ? "有子卷" : "4".equals(point.getPoint_status()) + ? "有气胀轴(不带管芯)" : "-"); if (SlitterConstant.SLITTER_NO.equals(point.getIs_used())) { data.put("status", "已禁用"); } @@ -2402,11 +2403,15 @@ public class SlitterServiceImpl implements SlitterService { throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的行架任务!"); } // 校验是否存在agv任务 - List taskList = taskService.checkHaveStartTask(pointCode); + List taskList = taskService.checkHaveTask(pointCode); if (taskList.size() > 0) { throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的agv任务!"); } + if (ObjectUtil.equals(point.getPoint_status(), "1")) { + // 如果是没货 + throw new BadRequestException("点位:" + point.getPoint_code() + "未检测有气胀轴,请先设置点位信息再触发!!"); + } if (ObjectUtil.equals(point.getPoint_status(), "2")) { // 如果是没货 throw new BadRequestException("点位:" + point.getPoint_code() + "检测空气胀轴,请先清空点位信息再触发!!"); @@ -2417,46 +2422,46 @@ public class SlitterServiceImpl implements SlitterService { if (ObjectUtil.isNotEmpty(point.getQzz_no1()) || ObjectUtil.isNotEmpty(point.getQzz_no2())) { throw new BadRequestException("点位:" + point.getPoint_code() + " 的气胀轴编码不为空,请先清空点位信息再触发!!"); } - if (Objects.equals(point.getPoint_status(), "1") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { - // 如果是没货 绑定为空轴状态 - point.setPoint_status("4"); - bcutpointivtService.updateById(point); - } - JSONObject taskParam = new JSONObject(); + if (Objects.equals(point.getPoint_status(), "4") && ObjectUtil.isEmpty(point.getQzz_no1()) && ObjectUtil.isEmpty(point.getQzz_no2())) { - // 获取内包间缓存位 - List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); - if (areaEmptyNotTaskPoint.size() <= 1) { - throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); - } - BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); - RLock lock = redissonClient.getLock(endPoint.getPoint_code()); - boolean tryLock; - try { - tryLock = lock.tryLock(0, TimeUnit.SECONDS); - } catch (InterruptedException e) { - throw new BadRequestException("获取锁异常"); - } - try { - if (tryLock) { - taskParam.put("point_code1", point.getPoint_code()); - taskParam.put("point_code2", endPoint.getPoint_code()); - if (ObjectUtil.isNotEmpty(size1)) { - taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1); - } - if (ObjectUtil.isNotEmpty(size2)) { - taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2); - } - taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间")); - taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - returnShaftAgvTask.createTask(taskParam); - } else { - throw new BadRequestException("系统繁忙,稍后在试!!"); + JSONObject taskParam = new JSONObject(); + + // 获取内包间缓存位 + List areaEmptyNotTaskPoint = bcutpointivtService.getNBJCanUsePoint("1", "1", "0", "2"); + if (areaEmptyNotTaskPoint.size() <= 1) { + throw new BadRequestException("请求搬运失败,内包间没有可存放位置!"); } - } finally { - if (lock.isLocked() && lock.isHeldByCurrentThread()) { - lock.unlock(); + BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); + RLock lock = redissonClient.getLock(endPoint.getPoint_code()); + boolean tryLock; + try { + tryLock = lock.tryLock(0, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new BadRequestException("获取锁异常"); } + try { + if (tryLock) { + taskParam.put("point_code1", point.getPoint_code()); + taskParam.put("point_code2", endPoint.getPoint_code()); + if (ObjectUtil.isNotEmpty(size1)) { + taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1); + } + if (ObjectUtil.isNotEmpty(size2)) { + taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2); + } + taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间")); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + returnShaftAgvTask.createTask(taskParam); + } else { + throw new BadRequestException("系统繁忙,稍后在试!!"); + } + } finally { + if (lock.isLocked() && lock.isHeldByCurrentThread()) { + lock.unlock(); + } + } + }else { + throw new BadRequestException("点位:" + point.getPoint_code() + "点位状态不对,请先设置点位信息再触发!!"); } return res; } @@ -2667,4 +2672,34 @@ public class SlitterServiceImpl implements SlitterService { res.put("message", "饵料下卷成功!"); return res; } + + @Override + public JSONObject cutCacheInventory(JSONObject param) { + log.info("手持维护分切暂存库存:{}", param); + // param : point_code, type + String pointCode = param.getString("point_code"); + BstIvtCutpointivt bstIvtCutpointivt = bcutpointivtService.getPintByTrussCode(pointCode, false); + if (bstIvtCutpointivt.getTruss_point_code1().equals(pointCode)) { + bstIvtCutpointivt.setQzz_no1(""); + } + if (bstIvtCutpointivt.getTruss_point_code2().equals(pointCode)) { + bstIvtCutpointivt.setQzz_no2(""); + } + if (SlitterConstant.SLITTER_YES.equals(param.getString("type"))) { + if (ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no1()) && ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no2())) { + bstIvtCutpointivt.setPoint_status("4"); + } + } else { + if (ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no1()) && ObjectUtil.isEmpty(bstIvtCutpointivt.getQzz_no2())) { + bstIvtCutpointivt.setPoint_status("1"); + } + } + TaskUtils.updateOptMessageByBCutPoint(bstIvtCutpointivt); + bcutpointivtService.updateById(bstIvtCutpointivt); + JSONObject res = new JSONObject(); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "分切暂存设置成功!"); + return res; + } + }