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 dacb2418a..abc2d59d7 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 @@ -390,6 +390,7 @@ public class SlitterServiceImpl implements SlitterService { @SneakyThrows @Override public JSONObject acsSendShaftToCache(JSONObject param) { + // 需要请求放货 log.info("ACS申请送气涨轴到气涨轴暂存位的输入参数为:{}", param); String lock = "lock"; JSONObject res = new JSONObject(); @@ -409,15 +410,21 @@ public class SlitterServiceImpl implements SlitterService { BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); // 临时存放气涨轴尺寸 startPoint.setQzz_size(qzzSize); + // 获取等待点(放货点) // 获取空位 - List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); - if (shafttubeivts.size() == 0) { - throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); +// List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); +// if (shafttubeivts.size() == 0) { +// throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); +// } + BstIvtShafttubeivt putWaitPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location()) + .eq(BstIvtShafttubeivt::getPoint_type, "8")); + if (ObjectUtil.isNotEmpty(putWaitPoint)) { + throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位"); } - BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); // 创建任务 param.put("point_code1", deviceCode); - param.put("point_code2", shafttubeivt.getPoint_code()); + param.put("point_code2", putWaitPoint.getPoint_code()); // hint: 当前分切计划的气涨轴尺寸 param.put("qzz_size", qzzSize); param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); @@ -452,14 +459,20 @@ public class SlitterServiceImpl implements SlitterService { } BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); // 获取气涨轴缓存没有任务的点位 - List shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize, - startPoint.getQzz_generation(), startPoint.getPoint_location()); - if (shafttubeivts.size() == 0) { - throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); +// List shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize, +// startPoint.getQzz_generation(), startPoint.getPoint_location()); +// if (shafttubeivts.size() == 0) { +// throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); +// } + BstIvtShafttubeivt pickWaitPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location()) + .eq(BstIvtShafttubeivt::getPoint_type, "7")); + if (ObjectUtil.isNotEmpty(pickWaitPoint)) { + throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位"); } - BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); +// BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); JSONObject taskParam = new JSONObject(); - taskParam.put("point_code1", shafttubeivt.getPoint_code()); + taskParam.put("point_code1", pickWaitPoint.getPoint_code()); taskParam.put("point_code2", startPoint.getPoint_code()); taskParam.put("is_bushing", SlitterConstant.SLITTER_YES); taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); 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 61408c116..fecf5494f 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 @@ -35,11 +35,6 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); } - - - - - @PostMapping("/orderFinish") @Log(value = "ACS给WMS下发工单完成状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @@ -230,6 +225,13 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.acsCallShaftFromCache(param), HttpStatus.OK); } + @PostMapping("/acsRequestPoint") + @Log(value = "二期ACS请求出轴", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) + @SaIgnore + public ResponseEntity acsRequestPoint(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.acsRequestPoint(param), HttpStatus.OK); + } + @PostMapping("/forceMove") @Log(value = "二期捆扎位ACS请求强制离开", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) @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 fa56b751e..79787c465 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 @@ -239,4 +239,11 @@ public interface AcsToWmsService { * @return JSONObject */ JSONObject forceMove(JSONObject param); + + /** + * 二期请求放货/取货 + * @param param + * @return + */ + JSONObject acsRequestPoint(JSONObject param); } 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 9df6f234e..c0dbb2e64 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 @@ -19,6 +19,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pda.service.ProductOutTwoService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan; @@ -165,6 +167,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Autowired private IStIvtIostorinvOutService iStIvtIostorinvOutService; + @Autowired + private IBstIvtShafttubeivtService shafttubeivtService; /** @@ -2730,4 +2734,66 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.info("forceMove返回参数:---------------------------------------------{}", result.toString()); return result; } + + @Override + public JSONObject acsRequestPoint(JSONObject param) { + log.info("acsRequestPoint输入参数为--------------------------:" + param.toString()); + JSONObject result = new JSONObject(); + // task_code、type + String type = param.getString("type"); + String taskCode = param.getString("task_code"); + SchBaseTask task = taskService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTask::getTask_code, taskCode) + .eq(SchBaseTask::getIs_delete, "0")); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("任务号【" + taskCode + "】对应的任务找不到!"); + } + String targetPoint = ""; + if ("1".equals(type)) { + // 请求取货 + String deviceCode = task.getPoint_code2(); + BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); + JSONObject requestParam = JSONObject.parseObject(task.getRequest_param()); + String qzzSize = requestParam.getString("qzz_size"); + // 获取气涨轴缓存没有任务的点位 + List shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize, + startPoint.getQzz_generation(), startPoint.getPoint_location()); + if (shafttubeivts.size() == 0) { + throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + targetPoint = shafttubeivt.getPoint_code(); + // 修改任务 + task.setPoint_code1(targetPoint); + task.setRemark("取货请求成功"); + task.setUpdate_time(DateUtil.now()); + } + if ("2".equals(type)) { + // 请求放货 + // 穿拔轴点位 + String deviceCode = task.getPoint_code1(); + BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); + JSONObject requestParam = JSONObject.parseObject(task.getRequest_param()); + String qzzSize = requestParam.getString("qzz_size"); + // 临时存放气涨轴尺寸 + startPoint.setQzz_size(qzzSize); + // 获取空位 + List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); + if (shafttubeivts.size() == 0) { + throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + targetPoint = shafttubeivt.getPoint_code(); + // 修改任务 + task.setPoint_code2(targetPoint); + task.setRemark("放货请求成功"); + task.setUpdate_time(DateUtil.now()); + } + taskService.updateById(task); + result.put("status", HttpStatus.OK.value()); + result.put("device_code", targetPoint); + result.put("message", "反馈成功!"); + log.info("acsRequestPoint输出参数为--------------------------:" + result.toString()); + return result; + } }