|
|
|
@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesContainerPartsModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesContainerSnBindModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.tool.TimeTool;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
@ -67,40 +68,34 @@ public class MesPackageContainerSnServiceImpl implements IMesPackageContainerSnS
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public MesContainerSnBindModel packageContain(String organizeCode,String userName, String containSn, String sn) {
|
|
|
|
|
MesContainerSnBindModel mesContainerSnBindModel = MesContainerSnBindModel.builder().build();
|
|
|
|
|
try {
|
|
|
|
|
// 是否是容器包容器
|
|
|
|
|
boolean isContainerToContainer = false;
|
|
|
|
|
// 获取容器条码 并判断是否是容器与容器绑定
|
|
|
|
|
MesContainerSn mesContainerSn = getMesContainerSnAndValidate(organizeCode, containSn);
|
|
|
|
|
MesContainerSn produceSn = getMesContainerSnAndValidate(organizeCode, sn);
|
|
|
|
|
if (produceSn != null) {
|
|
|
|
|
isContainerToContainer = true;
|
|
|
|
|
}
|
|
|
|
|
// 如果是容器套容器
|
|
|
|
|
if (isContainerToContainer) {
|
|
|
|
|
mesContainerSnBindModel = containerToContainer(organizeCode,userName, mesContainerSn, produceSn);
|
|
|
|
|
}
|
|
|
|
|
}catch (ImppBusiException e) {
|
|
|
|
|
|
|
|
|
|
MesContainerSn produceSn = getMesContainerSnAndValidate(organizeCode, sn);
|
|
|
|
|
if (produceSn == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
return mesContainerSnBindModel;
|
|
|
|
|
// 获取容器条码 并判断是否是容器与容器绑定
|
|
|
|
|
MesContainerSn mesContainerSn = getMesContainerSnAndValidate(organizeCode, containSn);
|
|
|
|
|
return containerToContainer(organizeCode,userName, mesContainerSn, produceSn);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesContainerSnPart> getMesContainerSnParts(String organizeCode, String containSn) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MesContainerSnPart> mesContainerSnParts = getMesContainerSnPart(organizeCode, containSn);
|
|
|
|
|
|
|
|
|
|
private List<MesContainerSnPart> getMesContainerSnParts(String organizeCode, MesContainerSn containerSn) {
|
|
|
|
|
Set<String> partNoSet = new HashSet<>();
|
|
|
|
|
List<MesContainerSnPart> mesContainerSnParts = getMesContainerSnPart(organizeCode, containerSn.getContainerSn());
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesContainerSnParts)) {
|
|
|
|
|
for (MesContainerSnPart mesContainerSnPart : mesContainerSnParts) {
|
|
|
|
|
if (StringUtils.isEmpty(mesContainerSnPart.getPartNo())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
partNoSet.add(mesContainerSnPart.getPartNo());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<MesContainerTypePart> mesContainerTypeParts = new ArrayList<>();
|
|
|
|
|
if (CollectionUtils.isEmpty(mesContainerSnParts)) {
|
|
|
|
|
mesContainerSnParts = new ArrayList<>();
|
|
|
|
|
mesContainerTypeParts = getMesContainerTypePart(organizeCode, containSn);
|
|
|
|
|
if (CollectionUtils.isEmpty(mesContainerTypeParts)) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的容器条码:%s,对应容器零件类型关系不存在", containSn);
|
|
|
|
|
}
|
|
|
|
|
List<MesContainerTypePart> mesContainerTypeParts = getMesContainerTypePart(organizeCode, containerSn.getContainerTypeCode());
|
|
|
|
|
if (!CollectionUtils.isEmpty(mesContainerTypeParts)) {
|
|
|
|
|
for (MesContainerTypePart mesContainerTypePart : mesContainerTypeParts) {
|
|
|
|
|
if (partNoSet.contains(mesContainerTypePart.getPartNo())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesContainerSnPart mesContainerSnPart = new MesContainerSnPart();
|
|
|
|
|
mesContainerSnPart.setMatchType(mesContainerTypePart.getMatchType());
|
|
|
|
|
mesContainerSnPart.setContainerTypeCode(mesContainerTypePart.getContainerTypeCode());
|
|
|
|
@ -109,81 +104,132 @@ public class MesPackageContainerSnServiceImpl implements IMesPackageContainerSnS
|
|
|
|
|
mesContainerSnParts.add(mesContainerSnPart);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(mesContainerSnParts)) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的容器条码:%s,对应容器零件关系不存在", containerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
return mesContainerSnParts;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public MesContainerSnBindModel containerToContainer(String organizeCode, String userName, MesContainerSn masterContainerSn, MesContainerSn subContainerSn) {
|
|
|
|
|
|
|
|
|
|
MesContainerSnBindModel model = MesContainerSnBindModel.builder().build();
|
|
|
|
|
private List<MesContainerPartsModel> getContainerParts(String organizeCode, MesContainerSn containerSn) {
|
|
|
|
|
List<MesContainerPartsModel> result = new ArrayList<>();
|
|
|
|
|
Set<String> partNoSet = new HashSet<>();
|
|
|
|
|
List<MesContainerSnPart> snPartList = containerSnPartRepository.findByProperty(
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, "containerTypeCode", "containerSn"},
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), containerSn.getContainerTypeCode(), containerSn.getContainerSn()});
|
|
|
|
|
if (!CollectionUtils.isEmpty(snPartList)) {
|
|
|
|
|
for (MesContainerSnPart snPart : snPartList) {
|
|
|
|
|
if (StringUtils.isEmpty(snPart.getPartNo())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// 获取容器类型
|
|
|
|
|
MesContainerType mesContainerType = getMesContainerType(organizeCode, masterContainerSn.getContainerSn(), masterContainerSn.getContainerTypeCode());
|
|
|
|
|
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), mesContainerType.getIsAllowRecursion())) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的容器条码:%s,不允许绑定容器", masterContainerSn.getContainerSn());
|
|
|
|
|
partNoSet.add(snPart.getPartNo());
|
|
|
|
|
MesContainerPartsModel model = MesContainerPartsModel.builder()
|
|
|
|
|
.partNo(snPart.getPartNo())
|
|
|
|
|
.partName(snPart.getPartName())
|
|
|
|
|
.matchType(snPart.getMatchType())
|
|
|
|
|
.matchRule(snPart.getMatchRule())
|
|
|
|
|
.qty(snPart.getQty())
|
|
|
|
|
.build();
|
|
|
|
|
result.add(model);
|
|
|
|
|
}
|
|
|
|
|
// 判断子容器是否是已装箱状态
|
|
|
|
|
MesContainerPackage masterContainerPackage = getMesContainerPackage(organizeCode, subContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesContainerPackage subContainerPackage = getMesContainerPackage(organizeCode, subContainerSn.getContainerSn());
|
|
|
|
|
if (subContainerPackage == null || subContainerPackage.getPackageStatus() != 30) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的子容器条码:%s,不是已关箱状态", subContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
// 获取 容器类型与零件关系
|
|
|
|
|
List<MesContainerSnPart> masterContainerSnParts = getMesContainerSnParts(organizeCode, masterContainerSn.getContainerSn());
|
|
|
|
|
List<MesContainerSnPart> subContainerSnParts = getMesContainerSnParts(organizeCode, subContainerSn.getContainerSn());
|
|
|
|
|
List<String> subParts = subContainerSnParts.stream().map(MesContainerSnPart::getPartNo).collect(Collectors.toList());
|
|
|
|
|
List<String> masterParts = masterContainerSnParts.stream().map(MesContainerSnPart::getPartNo).collect(Collectors.toList());
|
|
|
|
|
if (!masterParts.contains(subParts)) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的主容器条码:%s,与子容器条码不匹配,无法包装", subContainerSn.getContainerSn(),subContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 验证标包
|
|
|
|
|
* 1 查询子包装的上料明细
|
|
|
|
|
* 2 查询总包装下面的最终条码上料明细
|
|
|
|
|
* 3 校验标包是否满足
|
|
|
|
|
*/
|
|
|
|
|
List<MesContainerPackageDetail> masterPackageDetails = getMesContainerPackageDetail(organizeCode, subContainerSn.getContainerSn(), true);
|
|
|
|
|
|
|
|
|
|
List<MesContainerPackageDetail> subPackageDetails = getMesContainerPackageDetail(organizeCode, subContainerSn.getContainerSn(), false);
|
|
|
|
|
// 调用涛哥的根据条码对应标包验证。todo
|
|
|
|
|
MesAbstractContainerBindCheckQtyService checkQtyService = ContainerBindManager.INSTANCE.getCheckQtyService(MesExtEnumUtil.CONTAINER_TYPE_MIX_TYPE.getByValue(mesContainerType.getMixType()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (MesContainerPackageDetail subPackageDetail : subPackageDetails) {
|
|
|
|
|
MesContainerPartsModel containerPart = MesContainerPartsModel.builder()
|
|
|
|
|
.partNo(subPackageDetail.getPartNo())
|
|
|
|
|
.build();
|
|
|
|
|
MesContainerPartsModel containerPartTwo = MesContainerPartsModel.builder()
|
|
|
|
|
.partNo(subPackageDetail.getPartNo())
|
|
|
|
|
.qty(subPackageDetail.getQty())
|
|
|
|
|
.build();
|
|
|
|
|
List<MesContainerTypePart> partList = containerTypePartRepository.findByProperty(
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, "containerTypeCode"},
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), containerSn.getContainerTypeCode()});
|
|
|
|
|
if (!CollectionUtils.isEmpty(partList)) {
|
|
|
|
|
for (MesContainerTypePart partPart : partList) {
|
|
|
|
|
if (StringUtils.isEmpty(partPart.getPartNo())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, Object> checkQtyResult = checkQtyService.doCheck(organizeCode, masterContainerPackage, masterPackageDetails, containerPart, Arrays.asList(containerPartTwo));
|
|
|
|
|
if (checkQtyResult != null && Objects.equals(checkQtyResult.get(MesPcnExtConstWords.RESULT), false)) {
|
|
|
|
|
MesPcnException.throwMesBusiException(checkQtyResult.get(MesPcnExtConstWords.MESSAGE).toString());
|
|
|
|
|
if (partNoSet.contains(partPart.getPartNo())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
MesContainerPartsModel model = MesContainerPartsModel.builder()
|
|
|
|
|
.partNo(partPart.getPartNo())
|
|
|
|
|
.partName(partPart.getPartName())
|
|
|
|
|
.matchType(partPart.getMatchType())
|
|
|
|
|
.matchRule(partPart.getMatchRule())
|
|
|
|
|
.qty(partPart.getQty())
|
|
|
|
|
.build();
|
|
|
|
|
result.add(model);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (masterContainerPackage == null) {
|
|
|
|
|
masterContainerPackage = createMesContainerPackage(userName, masterContainerSn);
|
|
|
|
|
}
|
|
|
|
|
MesContainerPackageDetail mesContainerPackageDetailBean = crreateMesContainerPackageDetail(userName, masterContainerSn, subContainerSn, masterContainerPackage);
|
|
|
|
|
public MesContainerSnBindModel containerToContainer(String organizeCode, String userName, MesContainerSn masterContainerSn, MesContainerSn subContainerSn) {
|
|
|
|
|
MesContainerSnBindModel model = MesContainerSnBindModel.builder().build();
|
|
|
|
|
|
|
|
|
|
MesContainerPackageDetailBinding containerPackageDetailBinding = createContainerPackageDetailBinding(masterContainerPackage, mesContainerPackageDetailBean, MesExtEnumUtil.CONTAINER_RAW_SN_BINDING_STATUS.BINDING, userName);
|
|
|
|
|
subPackageDetails.add(mesContainerPackageDetailBean);
|
|
|
|
|
// 获取容器类型
|
|
|
|
|
MesContainerType mesContainerType = getMesContainerType(organizeCode, masterContainerSn.getContainerSn(), masterContainerSn.getContainerTypeCode());
|
|
|
|
|
if (!Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), mesContainerType.getIsAllowRecursion())) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的容器条码:%s,不允许绑定容器", masterContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
// 判断子容器是否是已装箱状态
|
|
|
|
|
MesContainerPackage masterContainerPackage = getMesContainerPackage(organizeCode, masterContainerSn.getContainerSn());
|
|
|
|
|
if (masterContainerPackage == null) {
|
|
|
|
|
masterContainerPackage = createMesContainerPackage(userName, masterContainerSn);
|
|
|
|
|
}
|
|
|
|
|
if (Objects.equals(masterContainerPackage.getPackageStatus(), MesExtEnumUtil.CONTAINER_PACKAGE_STATUS.STATUS_20.getValue())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("容器条码【%s】已关箱,不能再进行上料", masterContainerPackage.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MesContainerPackage subContainerPackage = getMesContainerPackage(organizeCode, subContainerSn.getContainerSn());
|
|
|
|
|
if (subContainerPackage == null || !Objects.equals(subContainerPackage.getPackageStatus(), MesExtEnumUtil.CONTAINER_PACKAGE_STATUS.STATUS_20.getValue())) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的子容器条码:%s,不是已关箱状态", subContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
// 获取 容器类型与零件关系
|
|
|
|
|
List<MesContainerPartsModel> masterContainerParts = getContainerParts(organizeCode, masterContainerSn);
|
|
|
|
|
List<MesContainerPartsModel> subContainerSnParts = getContainerParts(organizeCode, subContainerSn);
|
|
|
|
|
List<String> subParts = subContainerSnParts.stream().map(MesContainerPartsModel::getPartNo).collect(Collectors.toList());
|
|
|
|
|
List<String> masterParts = masterContainerParts.stream().map(MesContainerPartsModel::getPartNo).collect(Collectors.toList());
|
|
|
|
|
for (String subPart : subParts) {
|
|
|
|
|
if (!masterParts.contains(subPart)) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的主容器条码:%s,与子容器条码不匹配,无法包装", subContainerSn.getContainerSn(),subContainerSn.getContainerSn());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 验证标包
|
|
|
|
|
* 1 查询子包装的上料明细
|
|
|
|
|
* 2 查询总包装下面的最终条码上料明细
|
|
|
|
|
* 3 校验标包是否满足
|
|
|
|
|
*/
|
|
|
|
|
List<MesContainerPackageDetail> masterPackageDetails = getMesContainerPackageDetail(organizeCode, masterContainerSn.getContainerSn(), false);
|
|
|
|
|
for (MesContainerPackageDetail masterPackageDetail : masterPackageDetails) {
|
|
|
|
|
if (Objects.equals(masterPackageDetail.getBarCode(), model.getBarCode())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("容器条码【%s】与条码【%s】已绑定,请检查数据", masterContainerSn.getContainerSn(), model.getBarCode());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
model.setContainerPackage(masterContainerPackage);
|
|
|
|
|
model.setPackageDetails(subPackageDetails);
|
|
|
|
|
model.addPackageDetailBinding(containerPackageDetailBinding);
|
|
|
|
|
List<MesContainerPackageDetail> subPackageDetails = getMesContainerPackageDetail(organizeCode, subContainerSn.getContainerSn(), true);
|
|
|
|
|
// 调用涛哥的根据条码对应标包验证。todo
|
|
|
|
|
MesAbstractContainerBindCheckQtyService checkQtyService = ContainerBindManager.INSTANCE.getCheckQtyService(MesExtEnumUtil.CONTAINER_TYPE_MIX_TYPE.getByValue(mesContainerType.getMixType()));
|
|
|
|
|
|
|
|
|
|
containerPackageRepository.save(masterContainerPackage);
|
|
|
|
|
containerPackageDetailRepository.save(mesContainerPackageDetailBean);
|
|
|
|
|
packageDetailBindingRepository.save(containerPackageDetailBinding);
|
|
|
|
|
for (MesContainerPackageDetail subPackageDetail : subPackageDetails) {
|
|
|
|
|
MesContainerPartsModel containerPart = MesContainerPartsModel.builder()
|
|
|
|
|
.partNo(subPackageDetail.getPartNo())
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
}catch (ImppBusiException e) {
|
|
|
|
|
log.error("系统异常", e.getErrorDetail());
|
|
|
|
|
Map<String, Object> checkQtyResult = checkQtyService.doCheck(organizeCode, masterContainerPackage, subPackageDetails, containerPart, masterContainerParts);
|
|
|
|
|
if (checkQtyResult != null && Objects.equals(checkQtyResult.get(MesPcnExtConstWords.RESULT), false)) {
|
|
|
|
|
MesPcnException.throwMesBusiException(checkQtyResult.get(MesPcnExtConstWords.MESSAGE).toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
MesContainerPackageDetail mesContainerPackageDetailBean = crreateMesContainerPackageDetail(userName, masterContainerSn, subContainerSn, masterContainerPackage);
|
|
|
|
|
masterPackageDetails.add(mesContainerPackageDetailBean);
|
|
|
|
|
|
|
|
|
|
MesContainerPackageDetailBinding containerPackageDetailBinding = createContainerPackageDetailBinding(masterContainerPackage, mesContainerPackageDetailBean, MesExtEnumUtil.CONTAINER_RAW_SN_BINDING_STATUS.BINDING, userName);
|
|
|
|
|
|
|
|
|
|
model.setContainerPackage(masterContainerPackage);
|
|
|
|
|
model.setPackageDetails(masterPackageDetails);
|
|
|
|
|
model.addPackageDetailBinding(containerPackageDetailBinding);
|
|
|
|
|
|
|
|
|
|
containerPackageRepository.save(masterContainerPackage);
|
|
|
|
|
containerPackageDetailRepository.save(mesContainerPackageDetailBean);
|
|
|
|
|
packageDetailBindingRepository.save(containerPackageDetailBinding);
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -192,21 +238,23 @@ public class MesPackageContainerSnServiceImpl implements IMesPackageContainerSnS
|
|
|
|
|
// 新增上料表,和上料明细
|
|
|
|
|
masterContainerPackage = new MesContainerPackage();
|
|
|
|
|
masterContainerPackage.setId(snowflakeIdMaker.nextId());
|
|
|
|
|
masterContainerPackage.setOrganizeCode(masterContainerSn.getOrganizeCode());
|
|
|
|
|
masterContainerPackage.setContainerSn(masterContainerSn.getContainerSn());
|
|
|
|
|
masterContainerPackage.setPackageStatus(10);
|
|
|
|
|
masterContainerPackage.setQty(1);
|
|
|
|
|
masterContainerPackage.setQty(0);
|
|
|
|
|
ConvertBean.serviceModelInitialize(masterContainerPackage, userName);
|
|
|
|
|
containerPackageRepository.save(masterContainerPackage);
|
|
|
|
|
return masterContainerPackage;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesContainerPackageDetail crreateMesContainerPackageDetail(String userName, MesContainerSn masterContainerSn, MesContainerSn subContainerSn, MesContainerPackage masterContainerPackage) {
|
|
|
|
|
MesContainerPackageDetail mesContainerPackageDetailBean = new MesContainerPackageDetail();
|
|
|
|
|
mesContainerPackageDetailBean.setContainerSn(masterContainerSn.getContainerSn());
|
|
|
|
|
mesContainerPackageDetailBean.setPid(masterContainerPackage.getId());
|
|
|
|
|
mesContainerPackageDetailBean.setBarCode(subContainerSn.getContainerSn());
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesContainerPackageDetailBean, userName);
|
|
|
|
|
return mesContainerPackageDetailBean;
|
|
|
|
|
MesContainerPackageDetail detail = new MesContainerPackageDetail();
|
|
|
|
|
detail.setContainerSn(masterContainerSn.getContainerSn());
|
|
|
|
|
detail.setPid(masterContainerPackage.getId());
|
|
|
|
|
detail.setBarCode(subContainerSn.getContainerSn());
|
|
|
|
|
detail.setLoadPartTime(TimeTool.getNowTime(true));
|
|
|
|
|
ConvertBean.serviceModelInitialize(detail, userName);
|
|
|
|
|
return detail;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -227,9 +275,7 @@ public class MesPackageContainerSnServiceImpl implements IMesPackageContainerSnS
|
|
|
|
|
private MesContainerSn getMesContainerSnAndValidate(String organizeCode, String sn) {
|
|
|
|
|
// 判断条码是否存在
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(sn, "containerSn", ddlPackBean);
|
|
|
|
|
|
|
|
|
|
List<MesContainerSn> mesContainerSns = mesContainerSnRepository.findByHqlWhere(ddlPackBean);
|
|
|
|
|
if (CollectionUtils.isEmpty(mesContainerSns)) {
|
|
|
|
|
MesPcnException.throwBusiException("扫描的容器条码:%s,不存在", sn);
|
|
|
|
@ -280,11 +326,11 @@ public class MesPackageContainerSnServiceImpl implements IMesPackageContainerSnS
|
|
|
|
|
return mesContainerTypes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<MesContainerTypePart> getMesContainerTypePart(String organizeCode, String sn) {
|
|
|
|
|
private List<MesContainerTypePart> getMesContainerTypePart(String organizeCode, String containerTypeCode) {
|
|
|
|
|
// 判断条码是否存在
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(sn, "containerSn", ddlPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(containerTypeCode, "containerTypeCode", ddlPackBean);
|
|
|
|
|
|
|
|
|
|
List<MesContainerTypePart> mesContainerTypeParts = containerTypePartRepository.findByHqlWhere(ddlPackBean);
|
|
|
|
|
|
|
|
|
|