导入零件与产线关系

tags/yfai-mes-ext-v1.0
administrator 10 months ago
parent 704e3c30ce
commit 8950311d38

@ -2,9 +2,12 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenterPartRelation;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description : 线
* @Reference :
@ -15,4 +18,14 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesWorkCenterPartRelation")
public class MesWorkCenterPartRelationController extends BaseMesController<MesWorkCenterPartRelation> {
@Override
public void validateImport(List<MesWorkCenterPartRelation> beanList) {
beanList.forEach(item ->{
ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空");
ValidatorBean.checkNotNull(item.getWorkCenterName(), "产线名称不能为空!");
});
}
}

@ -90,6 +90,7 @@ public abstract class BaseMesService<T extends BaseBean> implements IBaseMesServ
@Override
public List<T> insertBatch(List<T> beanList) {
beanList = onBeforeInsertBean(beanList);
for (T bean : beanList) {
onInsertBean(bean);
insert(bean);
@ -169,6 +170,10 @@ public abstract class BaseMesService<T extends BaseBean> implements IBaseMesServ
ValidatorBean.beginValid(beanList);
return beanList;
}
protected List<T> onBeforeInsertBean(List<T> beanList) {
return beanList;
}
protected void onInsertBean(T item) {
}

@ -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();
}
}

Loading…
Cancel
Save