|
|
|
@ -11,15 +11,13 @@ 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.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPackingDefine;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPackingDefineDetails;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesPackingDefineDetailsRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesPackingDefineRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
@ -61,7 +59,11 @@ public class MesProduceSnPrintServiceImpl implements IMesProduceSnPrintService {
|
|
|
|
|
private IMesTemplateService mesTemplateService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<MesPackingDefine> findMesPackingDefine(MesProduceSnPrintModel mesProduceSnPrintModel) {
|
|
|
|
|
public MesProduceSnPrintModel findMesPackingDefine(MesProduceSnPrintModel mesProduceSnPrintModel) {
|
|
|
|
|
//查询SAP下发物料信息
|
|
|
|
|
MesPartSap mesPartSap = mesPartService.getMesPartSapByPartNo(mesProduceSnPrintModel.getPartNo(), mesProduceSnPrintModel.getOrganizeCode());
|
|
|
|
|
mesProduceSnPrintModel.setQty(mesPartSap.getSnp());
|
|
|
|
|
mesProduceSnPrintModel.setPartName(mesPartSap.getPartName());
|
|
|
|
|
//查询包装定义明细
|
|
|
|
|
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "partNo", ddlPackBean);
|
|
|
|
@ -72,7 +74,8 @@ public class MesProduceSnPrintServiceImpl implements IMesProduceSnPrintService {
|
|
|
|
|
//查询包装定义主表
|
|
|
|
|
ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getInPackList(packingDefineDetails.stream().map(MesPackingDefineDetails::getPackCode).collect(Collectors.toList()), "packCode", ddlPackBean);
|
|
|
|
|
return mesPackingDefineRDao.findByHqlWhere(ddlPackBean);
|
|
|
|
|
mesProduceSnPrintModel.setMesPackingDefineList(mesPackingDefineRDao.findByHqlWhere(ddlPackBean));
|
|
|
|
|
return mesProduceSnPrintModel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -88,22 +91,26 @@ public class MesProduceSnPrintServiceImpl implements IMesProduceSnPrintService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesProduceSnPrintModel doPrint(MesProduceSnPrintModel mesProduceSnPrintModel) {
|
|
|
|
|
//获取打印模板信息
|
|
|
|
|
mesProduceSnPrintModel.setMesLabelTemplate(mesTemplateService.getMesLabelTemplate(mesProduceSnPrintModel.getPrintTemplate()));
|
|
|
|
|
//条码生成
|
|
|
|
|
if (StringUtils.isEmpty(mesProduceSnPrintModel.getProductSn())) {
|
|
|
|
|
//物料信息
|
|
|
|
|
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), mesProduceSnPrintModel.getOrganizeCode());
|
|
|
|
|
//条码生成
|
|
|
|
|
if (StringUtils.isEmpty(mesProduceSnPrintModel.getProductSn())) {
|
|
|
|
|
ValidatorBean.checkNotNull(mesProduceSnPrintModel.getSnRule(), "条码规则不能为空");
|
|
|
|
|
ValidatorBean.checkNotNull(mesProduceSnPrintModel.getPrintTemplate(), "打印模板不能为空");
|
|
|
|
|
//生成条码
|
|
|
|
|
List<String> snList = getStringList(mesProduceSnPrintModel);
|
|
|
|
|
for (String sn : snList) {
|
|
|
|
|
mesProduceSnPrintModel.getMesProduceSnList().add(generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName()));
|
|
|
|
|
mesProduceSnPrintModel.getMesProduceSnList().add(generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName(),mesProduceSnPrintModel.getQty()));
|
|
|
|
|
}
|
|
|
|
|
mesProduceSnRDao.saveAll(mesProduceSnPrintModel.getMesProduceSnList());
|
|
|
|
|
//条码补打
|
|
|
|
|
} else {
|
|
|
|
|
ValidatorBean.checkNotNull(mesPart.getProductLabelTemplate(), "打印模板不能为空");
|
|
|
|
|
mesProduceSnPrintModel.setPrintTemplate(mesPart.getProductLabelTemplate());
|
|
|
|
|
mesProduceSnPrintModel.getMesProduceSnList().add(findMesProduceSn(mesProduceSnPrintModel));
|
|
|
|
|
}
|
|
|
|
|
//获取打印模板信息
|
|
|
|
|
mesProduceSnPrintModel.setMesLabelTemplate(mesTemplateService.getMesLabelTemplate(mesProduceSnPrintModel.getPrintTemplate()));
|
|
|
|
|
return mesProduceSnPrintModel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -113,7 +120,7 @@ public class MesProduceSnPrintServiceImpl implements IMesProduceSnPrintService {
|
|
|
|
|
return resultList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName) {
|
|
|
|
|
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName,Double qty) {
|
|
|
|
|
MesProduceSn mesProduceSn = new MesProduceSn();
|
|
|
|
|
mesProduceSn.setSerialNumber(snowflakeIdMaker.nextId() + "");
|
|
|
|
|
mesProduceSn.setProductSn(sn);
|
|
|
|
@ -123,7 +130,7 @@ public class MesProduceSnPrintServiceImpl implements IMesProduceSnPrintService {
|
|
|
|
|
mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate());
|
|
|
|
|
mesProduceSn.setCustLabelTemplate(mesPart.getCustLabelTemplate());
|
|
|
|
|
mesProduceSn.setProdLabelTemplate(mesPart.getProductLabelTemplate());
|
|
|
|
|
mesProduceSn.setQty(1d);
|
|
|
|
|
mesProduceSn.setQty(qty);
|
|
|
|
|
mesProduceSn.setSnStatus(10);
|
|
|
|
|
mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
|
|
|
|
|
mesProduceSn.setLotNo(TimeTool.getDateTimeShort());
|
|
|
|
|