diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index ed25bfb..4b98cde 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -422,16 +422,19 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl().eq("box", subList.get(0).getPackage_box_sn())); + String containerNameStr = pdmBiContainerinbound.getContainer_name(); + if (StrUtil.isEmpty(containerNameStr)){ + throw new BadRequestException("当前木箱关联的子卷为空"); + } + List containerBiList = Arrays.asList(containerNameStr.split(",")); + HashSet containerSet = new HashSet<>(containerList); + HashSet containerBiSet = new HashSet<>(containerBiList); + if (!containerSet.containsAll(containerBiSet) || !containerBiSet.containsAll(containerSet)){ + throw new BadRequestException("手持扫描子卷和木箱出库子卷不属于同一组" + containerBiList); } - iPdmBiContainerinboundService.save(pdmBiContainerinbound); PdmProductSpecServiceImpl.doRecord(SpecEnum.ZXRK, null, Boolean.TRUE, null, containerList); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/boxstack/BoxSSXTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/boxstack/BoxSSXTask.java index 98b49c5..dde7838 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/boxstack/BoxSSXTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/boxstack/BoxSSXTask.java @@ -11,8 +11,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import org.nl.b_lms.bst.ivt.boxstack.service.dao.BstIvtBoxstack; import org.nl.b_lms.bst.ivt.boxstack.service.dao.mapper.BstIvtBoxstackMapper; +import org.nl.b_lms.pdm.info.dao.PdmBiContainerinbound; +import org.nl.b_lms.pdm.info.service.IPdmBiContainerinboundService; import org.nl.b_lms.pdm.storagevehicleext.dao.MdPbStoragevehicleext; import org.nl.b_lms.pdm.storagevehicleext.dao.mapper.MdPbStoragevehicleextMapper; +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.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; @@ -25,12 +29,14 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsTaskDto; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.TaskStatusEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import static org.nl.wms.util.TaskUtil.getRoutePlanCode; @@ -58,7 +64,12 @@ public class BoxSSXTask extends AbstractAcsTask { @Resource private MdStorageVehicleInfoMapper mdStorageVehicleInfoMapper; + @Autowired + private PdmBiSubpackagerelationMapper pdmBiSubpackagerelationMapper; + + @Autowired + private IPdmBiContainerinboundService iPdmBiContainerinboundService; @Override public List addTask() { /* @@ -142,6 +153,23 @@ public class BoxSSXTask extends AbstractAcsTask { mdPbStoragevehicleext.setUpdate_time( DateUtil.now()); mdPbStoragevehicleextMapper.updateById(mdPbStoragevehicleext); } + //子卷和木箱组盘 + String containerName = ""; + List pdmBiSubpackagerelations = pdmBiSubpackagerelationMapper.selectList(new QueryWrapper().eq("package_box_sn", taskObj.getString("vehicle_code"))); + if (!pdmBiSubpackagerelations.isEmpty() && pdmBiSubpackagerelations.size()>1){ + containerName = pdmBiSubpackagerelations.stream() + .map(item -> item.getContainer_name() != null ? item.getContainer_name() : "") + .filter(name -> !name.isEmpty()) // 过滤掉空字符串 + .collect(Collectors.joining(",")); + }else { + containerName = pdmBiSubpackagerelations.get(0).getContainer_name(); + } + + PdmBiContainerinbound pdmBiContainerinbound = new PdmBiContainerinbound(); + pdmBiContainerinbound.setId(org.nl.common.utils.IdUtil.getStringId()); + pdmBiContainerinbound.setContainer_name(containerName); + pdmBiContainerinbound.setBox( taskObj.getString("vehicle_code")); + iPdmBiContainerinboundService.save(pdmBiContainerinbound); } // 取消 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml index 220940e..653172e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/dao/mapper/StIvtIostorinvMapper.xml @@ -649,9 +649,45 @@ #{code} + AND EXISTS ( + SELECT 1 FROM ST_IVT_IOStorInv ios_sub + WHERE ios_sub.iostorinv_id = dtl.iostorinv_id + AND ios_sub.is_delete = '0' + AND ios_sub.io_type = '0' + + AND ios_sub.stor_id IN + + #{code} + + + + AND ios_sub.stor_id = #{paramMap.stor_id} + + + AND ios_sub.bill_type = #{paramMap.bill_type} + + + AND ios_sub.bill_code LIKE '%${paramMap.bill_code}%' + + + AND ios_sub.create_mode = #{paramMap.create_mode} + + + AND ios_sub.bill_status = #{paramMap.bill_status} + + + + AND ios_sub.input_time = ]]> #{paramMap.begin_time} + + + AND ios_sub.input_time #{paramMap.end_time} + + ) GROUP BY dtl.iostorinv_id ) dtl2 ON ios2.iostorinv_id = dtl2.iostorinv_id + order BY + ios2.input_time DESC