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 1b8e7b2..d3bd874 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 @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesNumberRuleMatchDispatchService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPullingOrderInfoService; @@ -51,6 +52,8 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { @Autowired private IMesProduceSnExtService mesProduceSnExtService; + @Autowired + private IMesConfigService configService; @Override public ListPager queryMesPullingOrderInfoByPager(MesPullingOrderInfo bean, Pager pager) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); @@ -106,28 +109,42 @@ public class MesPullingOrderInfoService implements IMesPullingOrderInfoService { MesPcnException.throwMesBusiException("扫描拉动单号【%s】拉动单状态不是【已确认】", bean.getPullingOrderNo()); } - //强过码 如果强过为true 不校验顺序 直接扫描完成修改状态为已扫描 todo - if ((!Objects.isNull(bean.getIsPass()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == bean.getIsPass())) { + //强过码 如果强过为true 不校验顺序 直接扫描完成修改状态为已扫描 + //扫完单号 扫强过码校验通过后 单号顺序之前的单子变成无序 都可扫描 + String spsPass = configService.getCfgValue(bean.getOrganizeCode(), MesPcnExtConstWords.SPS_STRONGER_PASS); + if (mesPullingOrderInfo.getIsPassCode()==CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() + ||(!Objects.isNull(bean.getIsPass()) && spsPass.equals(bean.getIsPass()))) { mesPullingOrderInfo.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.JIS_PULL.getValue()); ConvertBean.serviceModelUpdate(mesPullingOrderInfo, userName); mesPullingOrderInfoRepository.update(mesPullingOrderInfo); + //修改当前单号之前的为可强过 + DdlPackBean packBeanPass= DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBeanPass); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PULL_ORDER_STATUS.KITTING_PULL.getValue(), "pullOrderStatus", packBeanOne); + DdlPreparedPack.getStringSmallerNotEqualPack(bean.getPullingOrderNo(), "pullingOrderNo", packBeanPass); + DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBeanPass); + List mesPullingOrderInfos = mesPullingOrderInfoRepository.findByHqlWhere(packBeanPass); + if (!CollectionUtils.isEmpty(mesPullingOrderInfos)){ + for (MesPullingOrderInfo pullingOrderInfo : mesPullingOrderInfos) { + pullingOrderInfo.setIsPassCode(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.serviceModelUpdate(pullingOrderInfo, userName); + } + mesPullingOrderInfoRepository.saveAll(mesPullingOrderInfos); + } } else { DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(bean.getPullCode(), "pullCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getNumEqualPack(bean.getPullOrderType(), "pullOrderType", packBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PULL_ORDER_STATUS.KITTING_PULL.getValue(), "pullOrderStatus", packBean); -// if (!StringUtil.isEmpty(bean.orderBy())) { -// packBean.setOrderByStr(bean.orderBy()); -// } else { + //顺序校验 根据未扫描单号 1 、2 、3,如果没有强过码 必须先扫1 再扫2 pullingOrderNo修改位workOrderNo - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"workOrderNo"}, packBean); -// } + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"pullingOrderNo"}, packBean); List pullingOrderInfos = mesPullingOrderInfoRepository.findByHqlWhere(packBean); if (!CollectionUtils.isEmpty(pullingOrderInfos)) { //按照排序 依次扫描,如果扫描不按照顺序 报错 MesPullingOrderInfo pullingOrderInfo = pullingOrderInfos.get(0); - if (pullingOrderInfo.getPullOrderStatus().equals(mesPullingOrderInfo.getPullOrderStatus())) { + if (pullingOrderInfo.getPullingOrderNo().equals(mesPullingOrderInfo.getPullingOrderNo())) { mesPullingOrderInfo.setPullOrderStatus(MesExtEnumUtil.PULL_ORDER_STATUS.JIS_PULL.getValue()); ConvertBean.serviceModelUpdate(mesPullingOrderInfo, userName); mesPullingOrderInfoRepository.update(mesPullingOrderInfo);