From 03a94a7179937df4ee2831aa9b4761f43a64f2ed Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 2 Jul 2024 15:37:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=91=BC=E5=8F=AB=E6=B0=94=E8=83=80?= =?UTF-8?q?=E8=BD=B4=E6=9F=A5=E8=AF=A2acs=EF=BC=8C=E6=B0=94=E8=83=80?= =?UTF-8?q?=E8=BD=B4=E5=BA=93=E6=B2=A1=E8=B4=A7=E5=88=99=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/BstIvtShafttubeivtMapper.java | 4 ++- .../dao/mapper/BstIvtShafttubeivtMapper.xml | 4 ++- .../slitter/auto/AutoCallAirShaftTask.java | 35 +++++++++++-------- .../tasks/slitter/service/SlitterService.java | 7 ++++ .../service/impl/SlitterServiceImpl.java | 34 ++++++++++++++++++ .../src/test/java/org/nl/init/EventTest.java | 13 ++++++- 6 files changed, 80 insertions(+), 17 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java index 7ecef895c..029d4d16b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.java @@ -23,7 +23,9 @@ public interface BstIvtShafttubeivtMapper extends BaseMapper * @param location 位置(上下) * @return / */ - List getNotTaskShaftCache(String qzzSize, String specification, String location); + List getNotTaskShaftCache(@Param("qzzSize") String qzzSize, + @Param("specification") String specification, + @Param("location") String location); /** * 获取空气胀轴的气胀轴暂存位 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml index 1d497c5ad..b8225bd44 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/shafttubeivt/service/dao/mapper/BstIvtShafttubeivtMapper.xml @@ -29,7 +29,9 @@ WHERE b.have_qzz = '1' AND b.point_type = '6' AND b.qzz_size = #{qzzSize} - AND b.qzz_generation = #{specification} + + AND b.qzz_generation = #{specification} + AND b.point_location = #{location} AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' AND t.point_code1 = b.point_code) ORDER BY b.sort_seq DESC diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java index d20d04be2..a767381ad 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java @@ -301,30 +301,37 @@ public class AutoCallAirShaftTask { throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - // todo: 访问acs判断有无气涨轴 - JSONArray acsParam = new JSONArray(); - JSONObject acsQzz = new JSONObject(); - acsQzz.put("device_code", shafttubeivt.getPoint_code()); - acsQzz.put("code", "to_command"); - acsQzz.put("value", "1"); - acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - acsParam.add(acsQzz); - wmsToAcsService.action(acsParam); + // 访问acs判断有无气涨轴 + JSONArray array = new JSONArray(); + JSONObject device = new JSONObject(); + device.put("device_code", shafttubeivt.getPoint_code()); + array.add(device); + JSONObject pointStatus = wmsToAcsService.getPointStatus(array); + if (pointStatus.getInteger("qty") == 0) { + // 没有货 + toCreatShaftCacheTask(qzzSize, location, empty); + } else { + JSONArray acsParam = new JSONArray(); + JSONObject acsQzz = new JSONObject(); + acsQzz.put("device_code", shafttubeivt.getPoint_code()); + acsQzz.put("code", "to_command"); + acsQzz.put("value", "1"); + acsQzz.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + acsParam.add(acsQzz); + wmsToAcsService.action(acsParam); + } } /** - * todo: 预留 * 创建气涨轴缓存的桁架任务 * * @param qzzSize 气涨轴尺寸 - * @param specification 标箔、锂电(1,2) * @param location 位置:上半部分还是下半部分 * @param empty 套拔轴点位 */ - @Deprecated - private void toCreatShaftCacheTask(String qzzSize, String specification, String location, BstIvtShafttubeivt empty) { + private void toCreatShaftCacheTask(String qzzSize, String location, BstIvtShafttubeivt empty) { // 获取气涨轴缓存没有任务的点位 - List shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, specification, location); + List shafttubeivts = bstIvtShafttubeivtService.getNotTaskShaftCache(qzzSize, empty.getQzz_generation(), location); if (shafttubeivts.size() == 0) { throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位"); } 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 2d2f4513d..36e4cbdab 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 @@ -44,6 +44,13 @@ public interface SlitterService { */ JSONObject acsSendShaftToCache(JSONObject param); + /** + * ACS申请从气涨轴暂存位呼叫气胀轴 + * @param param / + * @return / + */ + JSONObject acsCallShaftFromCache(JSONObject param); + /** * 分切机下料 * @param 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 e96daf720..d6f543da3 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 @@ -399,6 +399,40 @@ public class SlitterServiceImpl implements SlitterService { return res; } + @Override + public JSONObject acsCallShaftFromCache(JSONObject param) { + log.info("ACS申请从气涨轴暂存位呼叫气胀轴的输入参数为:{}", param); + JSONObject res = new JSONObject(); + String deviceCode = param.getString("device_code"); + String qzzSize = param.getString("size"); + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } + 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 + "」的暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", shafttubeivt.getPoint_code()); + taskParam.put("point_code2", startPoint.getPoint_code()); + taskParam.put("is_bushing", SlitterConstant.SLITTER_YES); + taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + taskParam.put("qzz_size", qzzSize); + trussCallShaftCacheTask.createTask(taskParam); + res.put("status", HttpStatus.HTTP_OK); + res.put("message", "请求成功"); + return res; + } + @SneakyThrows @Override // @Transactional(rollbackFor = Exception.class) diff --git a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java index fa0744316..47fa86d64 100644 --- a/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java +++ b/lms/nladmin-system/src/test/java/org/nl/init/EventTest.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; +import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.mapper.BstIvtShafttubeivtMapper; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt; @@ -19,6 +21,7 @@ import org.nl.common.enums.ContainerLevelEnum; import org.nl.common.enums.PackageInfoIvtEnum; import org.nl.modules.common.exception.BadRequestException; import org.nl.system.service.param.ISysParamService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -29,8 +32,8 @@ import java.util.stream.Stream; @Slf4j @ExtendWith(SpringExtension.class) -@SpringBootTest @DisplayName("event test") +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class EventTest { @Resource @@ -57,6 +60,14 @@ public class EventTest { @Resource private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + @Autowired + private BstIvtShafttubeivtMapper bstIvtShafttubeivtMapper; + + @Test + public void sl() { + List notTaskShaftCache = bstIvtShafttubeivtMapper.getNotTaskShaftCache("3", "4", "0"); + System.out.println(notTaskShaftCache); + } /** * 装箱区->空载具缓存位补空