From b93e9c737cd4dd4de5f28b439d7fc0a97dcb5e36 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Fri, 22 Nov 2024 17:31:42 +0800 Subject: [PATCH] =?UTF-8?q?jis=E6=8B=89=E5=8A=A8=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86=20=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=20=20=E8=BD=A6?= =?UTF-8?q?=E5=9E=8B=E4=BB=A3=E7=A0=81=20=E8=BD=A6=E5=9E=8B=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=20=E5=B1=9E=E6=80=A7=E5=88=97=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesPullingOrderInfoController.java | 4 ++ .../busi/MesPullingOrderInfoService.java | 68 +++++++++++++++++----- 2 files changed, 57 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java index a0795c0..d98f5c2 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesPullingOrderInfoController.java @@ -35,6 +35,7 @@ public class MesPullingOrderInfoController { @Autowired private IMesTemplateService mesTemplateService; + @GetMapping(value = "/query-pager") @ApiOperation(value = "查询拉动单") public ResultBean queryMesPullingOrderInfoByPager(MesPullingOrderInfo mesPullingOrderInfo, Pager pager) { @@ -49,6 +50,7 @@ public class MesPullingOrderInfoController { return ResultBean.fail(e); } } + @PostMapping(value = "/doScan") @ApiOperation(value = "拉动单扫描") public ResultBean doMesPullingOrderInfoScan(@RequestBody MesPullingOrderInfo mesPullingOrderInfo) { @@ -97,6 +99,7 @@ public class MesPullingOrderInfoController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + @GetMapping(value = "/jis-part-info/query-pager") @ApiOperation(value = "查询JIS拉动单明细") public ResultBean queryMesPullingOrderPartInfoByPager(MesPullingOrderInfo mesPullingOrderInfo, Pager pager) { @@ -114,6 +117,7 @@ public class MesPullingOrderInfoController { return ResultBean.fail(e); } } + @PostMapping(value = "/doJisScan") @ApiOperation(value = "JIS物料拉动-校验条码") public ResultBean doMesPullingOrderInfoJisScan(@RequestBody MesPullingOrderPartInfo info) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java index 41133a1..255c574 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesPullingOrderInfoService.java @@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.*; import java.util.stream.Collectors; @@ -247,25 +248,62 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { List resultList = mesPullingOrderPartInfoRepository.findByHqlWherePage(packBean, pager); if (!CollectionUtils.isEmpty(resultList)) { + + Map> pullCodePartMap = null; + List pullingOrderInfoList = null; + Map> pullingOrderInfoMap = null; + Map> customerCarModelMap = null; + //查拉动单明细对应的拉动组规则 - DdlPackBean packBeanDetail = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); - DdlPreparedPack.getInPackList(resultList.stream().map(MesPullingOrderPartInfo::getPullCode).collect(Collectors.toList()), "pullCode", packBeanDetail); - List mesPartPullDetails = mesPartPullDetailRDao.findByHqlWhere(packBeanDetail); - if (!CollectionUtils.isEmpty(mesPartPullDetails)) { - Map> pullCodePartMap = mesPartPullDetails.stream().collect(Collectors.groupingBy(a -> a.getPullCode() + "=" + a.getPartNo())); - for (MesPullingOrderPartInfo partInfo : resultList) { - if (!CollectionUtils.isEmpty(pullCodePartMap.get(partInfo.getPullCode() + "=" + partInfo.getPartNo()))) { - MesPartPullDetail mesPartPullDetail = pullCodePartMap.get(partInfo.getPullCode() + "=" + partInfo.getPartNo()).get(0); - partInfo.setScanValidationType(StringUtil.isEmpty(mesPartPullDetail.getScanValidationType()) ? 10 : mesPartPullDetail.getScanValidationType()); - partInfo.setRuleValidation(StringUtil.isEmpty(mesPartPullDetail.getRuleValidation()) ? "" : mesPartPullDetail.getRuleValidation()); - if (Objects.isNull(mesPartPullDetail.getScanValidationType()) || mesPartPullDetail.getScanValidationType() == MesExtEnumUtil.PART_PULL_DETAIL_SCAN_VALIDATION_TYPE.UN_VALIDATE.getValue()) { - partInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode()); - } else if (partInfo.getColor() == MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode()) { - partInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.RED.getCode()); - } + List list = (resultList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPullCode()))).map(MesPullingOrderPartInfo::getPullCode).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(list)) { + DdlPackBean packBeanDetail = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getInPackList(list, "pullCode", packBeanDetail); + List mesPartPullDetails = mesPartPullDetailRDao.findByHqlWhere(packBeanDetail); + pullCodePartMap = CollectionUtils.isEmpty(mesPartPullDetails) ? null : + mesPartPullDetails.stream().filter(o -> null != o).collect(Collectors.groupingBy(o -> new StringJoiner(MesPcnExtConstWords.AND).add(o.getPullCode()).add(o.getPartNo()).toString())); + } + + list = resultList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getPullingOrderNo()))).map(MesPullingOrderPartInfo::getPullingOrderNo).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(list)) { + packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getInPackList(list, "pullingOrderNo", packBean); + pullingOrderInfoList = mesPullingOrderInfoRepository.findByHqlWhere(packBean); + pullingOrderInfoMap = CollectionUtils.isEmpty(pullingOrderInfoList) ? null : + pullingOrderInfoList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesPullingOrderInfo::getPullingOrderNo)); + } + + if (!CollectionUtils.isEmpty(pullingOrderInfoList)) { + list = (pullingOrderInfoList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCarModelCode()))).map(MesPullingOrderInfo::getCarModelCode).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getInPackList(list, MesPcnExtConstWords.CAR_MODEL_CODE, packBean); + List customerCarModelList = carModelRepository.findByHqlWhere(packBean); + customerCarModelMap = CollectionUtils.isEmpty(customerCarModelList) ? null : + customerCarModelList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesCustomerCarModel::getCarModelCode)); + } + + String key; + for (MesPullingOrderPartInfo partInfo : resultList) { + key = new StringJoiner(MesPcnExtConstWords.AND).add(partInfo.getPullCode()).add(partInfo.getPartNo()).toString(); + if (!CollectionUtils.isEmpty(pullCodePartMap) && pullCodePartMap.containsKey(key)) { + MesPartPullDetail mesPartPullDetail = pullCodePartMap.get(key).get(0); + partInfo.setScanValidationType(StringUtil.isEmpty(mesPartPullDetail.getScanValidationType()) ? 10 : mesPartPullDetail.getScanValidationType()); + partInfo.setRuleValidation(StringUtil.isEmpty(mesPartPullDetail.getRuleValidation()) ? MesPcnExtConstWords.EMPTY : mesPartPullDetail.getRuleValidation()); + if (Objects.isNull(mesPartPullDetail.getScanValidationType()) || mesPartPullDetail.getScanValidationType().compareTo(MesExtEnumUtil.PART_PULL_DETAIL_SCAN_VALIDATION_TYPE.UN_VALIDATE.getValue()) == 0) { + partInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode()); + } else if (partInfo.getColor() == MesExtEnumUtil.PART_PULL_DETAIL_COLOR.WHITE.getCode()) { + partInfo.setColor(MesExtEnumUtil.PART_PULL_DETAIL_COLOR.RED.getCode()); + } + if (!CollectionUtils.isEmpty(pullingOrderInfoMap) && pullingOrderInfoMap.containsKey(partInfo.getPullingOrderNo())) { + partInfo.setCarModelCode(pullingOrderInfoMap.get(partInfo.getPullingOrderNo()).get(0).getCarModelCode()); } + if (!StringUtils.isEmpty(partInfo.getCarModelCode()) && !CollectionUtils.isEmpty(customerCarModelMap) && customerCarModelMap.containsKey(partInfo.getCarModelCode())) { + partInfo.setCarModelName(customerCarModelMap.get(partInfo.getCarModelCode()).get(0).getCarModelName()); + } + } } + } return new ListPager<>(resultList, pager); }