|
|
@ -0,0 +1,275 @@
|
|
|
|
|
|
|
|
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.recyclablepackage;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageBindingService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.recyclablepackage.IMesRecyclablePackageService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesRecyclablePackageBindingModel;
|
|
|
|
|
|
|
|
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.enumutil.CommonEnumUtil;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.util.StringUtil;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPartSap;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackage;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackageBindingDetail;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.recyclablepackage.MesRecyclablePackagePart;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.recyclablepackage.MesRecyclablePackageBindingDetailRepository;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.recyclablepackage.MesRecyclablePackageBindingRepository;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @Description : 料箱绑定
|
|
|
|
|
|
|
|
* @Reference :
|
|
|
|
|
|
|
|
* @Author : junsheng.li
|
|
|
|
|
|
|
|
* @CreateDate 2024/9/7 10:20
|
|
|
|
|
|
|
|
* @Modify:
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
|
|
public class MesRecyclablePackageBindingServiceImpl implements IMesRecyclablePackageBindingService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IMesRecyclablePackageService mesRecyclablePackageService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private MesRecyclablePackageBindingRepository mesRecyclablePackageBindingRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private MesRecyclablePackageBindingDetailRepository mesRecyclablePackageBindingDetailRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IMesProduceSnExtService mesProduceSnExtService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IMesPartService mesPartService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<MesRecyclablePackageBindingDetail> findMesRecyclablePackageBindingDetailByPid(String organizeCode, long pid) {
|
|
|
|
|
|
|
|
if (StringUtil.isEmptyAndNull(organizeCode) || StringUtil.isEmptyAndNull(pid)) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBindingDetailRepository.findByProperty(
|
|
|
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PID},
|
|
|
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), pid});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public int findMesRecyclablePackageBindingDetailByPidCount(String organizeCode, long pid) {
|
|
|
|
|
|
|
|
if (StringUtil.isEmptyAndNull(organizeCode) || StringUtil.isEmptyAndNull(pid)) {
|
|
|
|
|
|
|
|
return MesPcnExtConstWords.ZERO;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBindingDetailRepository.findByPropertyCount(
|
|
|
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PID},
|
|
|
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), pid});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<MesRecyclablePackageBindingDetail> findMesRecyclablePackageBindingDetailByProductSn(String organizeCode, String productSn) {
|
|
|
|
|
|
|
|
if (StringUtil.isEmptyAndNull(organizeCode) || StringUtil.isEmptyAndNull(productSn)) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBindingDetailRepository.findByProperty(
|
|
|
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PRODUCT_SN},
|
|
|
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), productSn});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public MesRecyclablePackageBinding getMesRecyclablePackageBindingByPackageSn(String organizeCode, String packageSn) {
|
|
|
|
|
|
|
|
if (StringUtil.isEmptyAndNull(organizeCode) || StringUtil.isEmptyAndNull(packageSn)) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBindingRepository.getByProperty(
|
|
|
|
|
|
|
|
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PACKAGE_SN},
|
|
|
|
|
|
|
|
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), packageSn});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<MesRecyclablePackageBindingDetail> findMesRecyclablePackageBindingDetail(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
//回收包装绑定
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getMesRecyclablePackageBindingByPackageSn(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
if (Objects.isNull(mesRecyclablePackageBinding)) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//回收包装绑定明细
|
|
|
|
|
|
|
|
return findMesRecyclablePackageBindingDetailByPid(mesRecyclablePackageBinding.getOrganizeCode(), mesRecyclablePackageBinding.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public MesRecyclablePackageBinding doScan(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = null;
|
|
|
|
|
|
|
|
switch (mesRecyclablePackageBindingModel.getType()) {
|
|
|
|
|
|
|
|
//扫描包条码
|
|
|
|
|
|
|
|
case 10:
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = doScanPackageSn(mesRecyclablePackageBindingModel);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
//扫描零件条码
|
|
|
|
|
|
|
|
case 20:
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = doScanProductSn(mesRecyclablePackageBindingModel);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
//清空
|
|
|
|
|
|
|
|
case 30:
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = deletedMesRecyclablePackageBindingDetail(mesRecyclablePackageBindingModel, true);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
//删除
|
|
|
|
|
|
|
|
case 40:
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = deletedMesRecyclablePackageBindingDetail(mesRecyclablePackageBindingModel, false);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
//关箱
|
|
|
|
|
|
|
|
case 50:
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = updateClosePackageBinding(mesRecyclablePackageBindingModel);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("扫描类型【%s】不存在", mesRecyclablePackageBindingModel.getType());
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding doScanPackageSn(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
//校验包装
|
|
|
|
|
|
|
|
MesRecyclablePackage mesRecyclablePackage = mesRecyclablePackageService.checkMesRecyclablePackage(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
//绑定主表信息
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getMesRecyclablePackageBindingByPackageSn(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
if (Objects.isNull(mesRecyclablePackageBinding)) {
|
|
|
|
|
|
|
|
//保存包装
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding = insertMesRecyclablePackageBinding(mesRecyclablePackageBindingModel, mesRecyclablePackage.getPackageTypeCode());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding doScanProductSn(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
ValidatorBean.checkNotNull(mesRecyclablePackageBindingModel.getProductSn(), "零件条码不能为空");
|
|
|
|
|
|
|
|
//校验箱
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getPackageBinding(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
if (MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue() == mesRecyclablePackageBinding.getStatus()) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("包条码【%s】已关箱", mesRecyclablePackageBinding.getPackageSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//校验零件条码是否扫描
|
|
|
|
|
|
|
|
checkIsScan(mesRecyclablePackageBindingModel);
|
|
|
|
|
|
|
|
//条码信息
|
|
|
|
|
|
|
|
MesProduceSn mesProduceSn = getMesProduceSn(mesRecyclablePackageBindingModel);
|
|
|
|
|
|
|
|
//记录绑定明细
|
|
|
|
|
|
|
|
insertMesRecyclablePackageBindingDetail(mesRecyclablePackageBindingModel.getUserName(), mesRecyclablePackageBinding, mesProduceSn);
|
|
|
|
|
|
|
|
//更新数量
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setTotalQty(findMesRecyclablePackageBindingDetailByPidCount(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBinding.getId()));
|
|
|
|
|
|
|
|
//自动关箱
|
|
|
|
|
|
|
|
if (getRecyclablePackagePart(mesRecyclablePackageBindingModel, mesRecyclablePackageBinding.getPackageTypeCode(), mesProduceSn.getPartNo()).getQty().intValue() <= mesRecyclablePackageBinding.getTotalQty()) {
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setStatus(MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesRecyclablePackageBinding, mesRecyclablePackageBindingModel.getUserName());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingRepository.update(mesRecyclablePackageBinding);
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void checkIsScan(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
List<MesRecyclablePackageBindingDetail> detailByProductSn = findMesRecyclablePackageBindingDetailByProductSn(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getProductSn());
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(detailByProductSn)) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("零件条码【%s】已绑定,请勿重复绑定", mesRecyclablePackageBindingModel.getProductSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesProduceSn getMesProduceSn(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
List<MesProduceSn> produceSnList = mesProduceSnExtService.getProduceSnList(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getProductSn());
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(produceSnList)) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("条码【%s】信息不存在", mesRecyclablePackageBindingModel.getProductSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return produceSnList.stream().sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()).iterator().next();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackagePart getRecyclablePackagePart(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel, String packageTypeCode, String partNo) {
|
|
|
|
|
|
|
|
MesPartSap mesPartSapByPartNo = mesPartService.getMesPartSapByPartNo(partNo, mesRecyclablePackageBindingModel.getOrganizeCode());
|
|
|
|
|
|
|
|
MesRecyclablePackagePart recyclablePackagePart = mesRecyclablePackageService.getMesRecyclablePackagePartByPackageTypeCodeAndPartNo(mesRecyclablePackageBindingModel.getOrganizeCode(), packageTypeCode, mesPartSapByPartNo.getPartNo());
|
|
|
|
|
|
|
|
if (Objects.isNull(recyclablePackagePart)) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("条码【%s】找不到对应的零件", mesRecyclablePackageBindingModel.getProductSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return recyclablePackagePart;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void insertMesRecyclablePackageBindingDetail(String userName, MesRecyclablePackageBinding mesRecyclablePackageBinding, MesProduceSn mesProduceSn) {
|
|
|
|
|
|
|
|
MesRecyclablePackageBindingDetail mesRecyclablePackageBindingDetail = new MesRecyclablePackageBindingDetail();
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setOrganizeCode(mesRecyclablePackageBinding.getOrganizeCode());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setPid(mesRecyclablePackageBinding.getId());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setProductSn(mesProduceSn.getProductSn());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setPartNo(mesProduceSn.getPartNo());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setPartName(mesProduceSn.getPartName());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setQty(MesPcnExtConstWords.ONE);
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setStatus(MesPcnExtConstWords.ZERO);
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetail.setLotNumber(mesProduceSn.getLotNo());
|
|
|
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesRecyclablePackageBindingDetail, userName);
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetailRepository.insert(mesRecyclablePackageBindingDetail);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding insertMesRecyclablePackageBinding(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel, String packageTypeCode) {
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = new MesRecyclablePackageBinding();
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setOrganizeCode(mesRecyclablePackageBindingModel.getOrganizeCode());
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setPackageSn(mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setHangerPackageSn(mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setPackageTypeCode(packageTypeCode);
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setStatus(MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.UNCLOSED.getValue());
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setTotalQty(MesPcnExtConstWords.ZERO);
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setFid(UUID.randomUUID().toString());
|
|
|
|
|
|
|
|
ConvertBean.serviceModelInitialize(mesRecyclablePackageBinding, mesRecyclablePackageBindingModel.getUserName());
|
|
|
|
|
|
|
|
return mesRecyclablePackageBindingRepository.insert(mesRecyclablePackageBinding);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding deletedMesRecyclablePackageBindingDetail(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel, boolean deleteAll) {
|
|
|
|
|
|
|
|
if (!deleteAll && (Objects.isNull(mesRecyclablePackageBindingModel.getDetailsIds()) || mesRecyclablePackageBindingModel.getDetailsIds().length <= 0)) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("请选择要删除的数据");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//删除数据
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getPackageBinding(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesRecyclablePackageBindingModel.getOrganizeCode());
|
|
|
|
|
|
|
|
DdlPreparedPack.getNumEqualPack(mesRecyclablePackageBinding.getId(), "pid", packBean);
|
|
|
|
|
|
|
|
DdlPreparedPack.getInPackArray(mesRecyclablePackageBindingModel.getDetailsIds(), "id", packBean);
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingDetailRepository.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "isDeleted"},
|
|
|
|
|
|
|
|
new Object[]{mesRecyclablePackageBindingModel.getUserName(), TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}, packBean);
|
|
|
|
|
|
|
|
//更新数量
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setTotalQty(findMesRecyclablePackageBindingDetailByPidCount(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBinding.getId()));
|
|
|
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesRecyclablePackageBinding, mesRecyclablePackageBindingModel.getUserName());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingRepository.update(mesRecyclablePackageBinding);
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding updateClosePackageBinding(MesRecyclablePackageBindingModel mesRecyclablePackageBindingModel) {
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getPackageBinding(mesRecyclablePackageBindingModel.getOrganizeCode(), mesRecyclablePackageBindingModel.getPackageSn());
|
|
|
|
|
|
|
|
if (MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue() == mesRecyclablePackageBinding.getStatus()) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("包条码【%s】已关,不能重复关箱,请重新扫描", mesRecyclablePackageBinding.getPackageSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (findMesRecyclablePackageBindingDetailByPidCount(mesRecyclablePackageBinding.getOrganizeCode(), mesRecyclablePackageBinding.getId()) <= MesPcnExtConstWords.ZERO) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("包条码【%s】明细不能为空,请扫描零件明细", mesRecyclablePackageBinding.getPackageSn());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//更新未关箱状态
|
|
|
|
|
|
|
|
mesRecyclablePackageBinding.setStatus(MesExtEnumUtil.RECYCLABLE_PACKAGE_PACKAGE_BINDING_STATUS.CLOSED.getValue());
|
|
|
|
|
|
|
|
ConvertBean.serviceModelUpdate(mesRecyclablePackageBinding, mesRecyclablePackageBindingModel.getUserName());
|
|
|
|
|
|
|
|
mesRecyclablePackageBindingRepository.update(mesRecyclablePackageBinding);
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesRecyclablePackageBinding getPackageBinding(String organizeCode, String packageSn) {
|
|
|
|
|
|
|
|
MesRecyclablePackageBinding mesRecyclablePackageBinding = getMesRecyclablePackageBindingByPackageSn(organizeCode, packageSn);
|
|
|
|
|
|
|
|
if (Objects.isNull(mesRecyclablePackageBinding)) {
|
|
|
|
|
|
|
|
MesPcnException.throwMesBusiException("回收包装【%s】绑定信息不存在", packageSn);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return mesRecyclablePackageBinding;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|