|
|
|
@ -5,12 +5,23 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
|
|
|
|
|
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.mes.bean.MesPartSap;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenterPartRelation;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesPartSapRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.TreeSet;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description :
|
|
|
|
|
* @Reference :
|
|
|
|
@ -22,17 +33,65 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class MesWorkCenterPartRelationService extends BaseMesService<MesWorkCenterPartRelation> implements IMesWorkCenterPartRelationService {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPartSapRepository partSapRao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesWorkCenterRepository mesWorkCenterRao;
|
|
|
|
|
@Override
|
|
|
|
|
protected List<MesWorkCenterPartRelation> onBeforeInsertBean(List<MesWorkCenterPartRelation> beanList) {
|
|
|
|
|
String organizeCode = AuthUtil.getOrganizeCode();
|
|
|
|
|
//去重
|
|
|
|
|
ArrayList<MesWorkCenterPartRelation> relationList = beanList.stream().collect(Collectors.collectingAndThen(
|
|
|
|
|
Collectors.toCollection(() -> new TreeSet<>(
|
|
|
|
|
Comparator.comparing(p -> p.getPartNo() + ";" + p.getWorkCenterName()))), ArrayList::new));
|
|
|
|
|
|
|
|
|
|
for (MesWorkCenterPartRelation item : relationList) {
|
|
|
|
|
//根据零件号查询数据
|
|
|
|
|
DdlPackBean partPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(),"partNo",partPackBean);
|
|
|
|
|
List<MesPartSap> partSapList = partSapRao.findByHqlWhere(partPackBean);
|
|
|
|
|
if (partSapList.isEmpty()) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("零件号【%s】不存在!",item.getPartNo())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
MesPartSap mesPartSap = partSapList.get(0);
|
|
|
|
|
item.setPartName(mesPartSap.getPartName());
|
|
|
|
|
//根据产线名称去查询数据
|
|
|
|
|
DdlPackBean workCenterPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterName(),"workCenterName",workCenterPackBean);
|
|
|
|
|
List<MesWorkCenter> centerList = mesWorkCenterRao.findByHqlWhere(workCenterPackBean);
|
|
|
|
|
if (centerList.isEmpty()) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("产线【%s】不存在!",item.getWorkCenterName())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
MesWorkCenter mesWorkCenter = centerList.get(0);
|
|
|
|
|
item.setWorkCenterCode(mesWorkCenter.getWorkCenterCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return relationList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onInsertBean(MesWorkCenterPartRelation item) {
|
|
|
|
|
DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(AuthUtil.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterCode(), "workCenterCode", partRelationPackBean);
|
|
|
|
|
String organizeCode = AuthUtil.getOrganizeCode();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DdlPackBean partRelationPackBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getWorkCenterName(), "workCenterName", partRelationPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", partRelationPackBean);
|
|
|
|
|
boolean flg = baseRDao.isExitByHql(partRelationPackBean);
|
|
|
|
|
if (flg) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("产线【%s】与零件【%s】关系已存在,请勿重复添加!",item.getWorkCenterCode(),item.getPartNo())
|
|
|
|
|
.setErrorDetail("产线【%s】与零件【%s】关系已存在,请勿重复添加!",item.getWorkCenterName(),item.getPartNo())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|