合并46894 MES PCN: 吉翔下线条码,客户零件号优先取客户待开票物料 uat-temp-nht202505120000-46757

mes-test-batch-report-bug
王杰 3 months ago
commit e3d5501b05

@ -20,4 +20,7 @@ public interface IMesCustomerPartService {
MesCustomerPart getMesCustomerPart(String organizeCode,String partNo); MesCustomerPart getMesCustomerPart(String organizeCode,String partNo);
boolean isExistCustomerPart(String organizeCode,String partNo, String custPartNo); boolean isExistCustomerPart(String organizeCode,String partNo, String custPartNo);
String getCustPartNo(String organizeCode, String partNo);
} }

@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustPartInvoiced;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart; import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.repository.MesCustPartInvoicedRepository; import cn.estsh.i3plus.pojo.mes.repository.MesCustPartInvoicedRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
@ -61,4 +62,18 @@ public class MesCustomerPartService implements IMesCustomerPartService {
DdlPreparedPack.getStringEqualPack(custPartNo, "custPartNo", packBean); DdlPreparedPack.getStringEqualPack(custPartNo, "custPartNo", packBean);
return customerPartRepository.isExitByHql(packBean); return customerPartRepository.isExitByHql(packBean);
} }
public String getCustPartNo(String organizeCode, String partNo) {
if (StringUtils.isEmpty(partNo)|| StringUtils.isEmpty(organizeCode)) return "";
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean);
MesCustPartInvoiced invoiced = partInvoicedRao.getByProperty(ddlPackBean);
if (invoiced != null && !StringUtils.isEmpty(invoiced.getCustPartNo())) {
return invoiced.getCustPartNo();
}
MesCustomerPart customerPart = getMesCustomerPart(organizeCode, partNo);
return customerPart != null ? customerPart.getCustPartNo() : "";
}
} }

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.*; import cn.estsh.i3plus.ext.mes.pcn.api.busi.*;
@ -70,6 +71,9 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
private MesCustomerPartRepository mesCustomerPartRDao; private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired @Autowired
private IMesCustomerPartService mesCustomerPartService;
@Autowired
private MesProductionAssemblyRepository mesProductionAssemblyRepository; private MesProductionAssemblyRepository mesProductionAssemblyRepository;
@Autowired @Autowired
@ -171,6 +175,7 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
} }
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel); MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel);
final String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
GenSerialNoModel genSerialNoModel = new GenSerialNoModel(); GenSerialNoModel genSerialNoModel = new GenSerialNoModel();
genSerialNoModel.setRuleCode(numberRule.getRuleCode()); genSerialNoModel.setRuleCode(numberRule.getRuleCode());
genSerialNoModel.setPartNo(mesPart.getPartNo()); genSerialNoModel.setPartNo(mesPart.getPartNo());
@ -178,7 +183,7 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), mesCustomerPart); genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), mesCustomerPart);
genSerialNoModel.setShiftCode(mesProduceSnPrintModel.getShiftCode()); genSerialNoModel.setShiftCode(mesProduceSnPrintModel.getShiftCode());
genSerialNoModel.setOrganizeCode(organizeCode); genSerialNoModel.setOrganizeCode(organizeCode);
genSerialNoModel.setCustPartNo(mesCustomerPart == null ? null : mesCustomerPart.getCustPartNo()); genSerialNoModel.setCustPartNo(custPartNo);
IPrintTemplateStrategyService templateStrategy = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode); IPrintTemplateStrategyService templateStrategy = (IPrintTemplateStrategyService) SpringContextsUtil.getBean(methodCode);
MesProduceSnPrintModel resultModel = templateStrategy.execute(genSerialNoModel, mesProduceSnPrintModel, numberRule,null,null,false); MesProduceSnPrintModel resultModel = templateStrategy.execute(genSerialNoModel, mesProduceSnPrintModel, numberRule,null,null,false);

@ -3,21 +3,13 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustPartInvoiced;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesCustPartInvoicedRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Map;
import java.util.Objects;
/** /**
* @Description : MES- * @Description : MES-
@ -31,25 +23,15 @@ public class ChengDuSimpleYearNumberRuleStrategyService implements INumberRulePa
@Autowired @Autowired
private IMesCustomerPartService mesCustomerPartService; private IMesCustomerPartService mesCustomerPartService;
@Autowired
private MesCustPartInvoicedRepository partInvoicedRao;
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); final String custPartNo = mesCustomerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ? if (StringUtils.isEmpty(custPartNo)) {
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (Objects.isNull(customerPart)) {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo());
} }
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(genSerialNoModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(genSerialNoModel.getPartNo(), "partNo", ddlPackBean); genSerialNoModel.setCustPartNo(custPartNo);
MesCustPartInvoiced invoiced = partInvoicedRao.getByProperty(ddlPackBean);
if (invoiced != null && !StringUtils.isEmpty(invoiced.getCustPartNo())) {
genSerialNoModel.setCustPartNo(invoiced.getCustPartNo());
} else {
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
Date date = new Date(); Date date = new Date();
genSerialNoModel.setYear(getYear(date)); genSerialNoModel.setYear(getYear(date));
return genSerialNoModel; return genSerialNoModel;

@ -3,14 +3,10 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils;
import java.util.Map;
import java.util.Objects;
/** /**
* @Description : MES- * @Description : MES-
@ -27,13 +23,11 @@ public class CustCodeWhqrNumberRuleStrategyService implements INumberRulePackAtt
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); final String custPartNo = mesCustomerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ? if (StringUtils.isEmpty(custPartNo)) {
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (Objects.isNull(customerPart)) {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo());
} }
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo()); genSerialNoModel.setCustPartNo(custPartNo);
return genSerialNoModel; return genSerialNoModel;
} }
} }

@ -1,26 +1,19 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.StringUtilExt; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.StringUtilExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository; import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.Date; import java.util.Date;
import java.util.Map;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -38,6 +31,9 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
@Autowired @Autowired
private MesCustomerPartRepository customerPartRepository; private MesCustomerPartRepository customerPartRepository;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
//----广乘 45位 GQXNY //----广乘 45位 GQXNY
@ -45,12 +41,8 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
//客户零件号-扩展位-客户代码-预留位000-产线1-年月日-条码-扩展0000-追溯位+ //客户零件号-扩展位-客户代码-预留位000-产线1-年月日-条码-扩展0000-追溯位+
//零件长号---17位,不足17位 右边补* //零件长号---17位,不足17位 右边补*
//获取客户零件号 //获取客户零件号
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); final String custPartNo = mesCustomerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ? genSerialNoModel.setCustPartNo(custPartNo);
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (null != customerPart) {
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
//拓展位 2位 00 包含0~9,A~Z 不使用时补“0”填充 {SPILTRULE} //拓展位 2位 00 包含0~9,A~Z 不使用时补“0”填充 {SPILTRULE}
//供应商代码 7位 供应商代码 0~9,A~Z;不足7位 右测补* //供应商代码 7位 供应商代码 0~9,A~Z;不足7位 右测补*
@ -72,16 +64,4 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
return genSerialNoModel; return genSerialNoModel;
} }
private MesCustomerPart getMesCustomerPart(String orgaizeCode, String partNo) {
if (StringUtils.isEmpty(orgaizeCode) || StringUtils.isEmpty(partNo)) return null;
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(orgaizeCode);
DdlPreparedPack.getStringEqualPack(partNo, MesPcnExtConstWords.ERP_PART_NO, ddlPackBean);
MesCustomerPart customerPart = customerPartRepository.getByProperty(ddlPackBean);
if (Objects.isNull(customerPart)) {
MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", partNo);
}
return customerPart;
}
} }

@ -6,7 +6,6 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IPartService;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
@ -45,18 +44,15 @@ public class MesDPBarcodeWhNumberRuleStrategyService implements INumberRulePackA
MesPart part = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesPart.class.getSimpleName())) ? MesPart part = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesPart.class.getSimpleName())) ?
(MesPart) dataMap.get(MesPart.class.getSimpleName()) : partService.getPartByNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo()); (MesPart) dataMap.get(MesPart.class.getSimpleName()) : partService.getPartByNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) final String custPartNo = customerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
? (MesCustomerPart) dataMap.get(MesCustomerPart.class.getSimpleName())
: customerPartService.getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (null == part) MesPcnException.throwBusiException("请检查零件信息,零件[%s]信息不存在!", genSerialNoModel.getPartNo()); if (null == part) MesPcnException.throwBusiException("请检查零件信息,零件[%s]信息不存在!", genSerialNoModel.getPartNo());
if (null == customerPart) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件信息不存在!", genSerialNoModel.getPartNo()); if (StringUtils.isEmpty(custPartNo)) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件信息未维护客户零件号!", part.getPartNo());
if (StringUtils.isEmpty(customerPart.getCustPartNo())) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件信息未维护客户零件号!", part.getPartNo()); if (custPartNo.length() < 4) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件号[%s]长度小于4!", part.getPartNo(), custPartNo);
if (customerPart.getCustPartNo().length() < 4) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件号[%s]长度小于4!", part.getPartNo(), customerPart.getCustPartNo());
if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) MesPcnException.throwBusiException("入参缺少班次代码!"); if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) MesPcnException.throwBusiException("入参缺少班次代码!");
genSerialNoModel.partSnParam(part.getPartSnParam()) genSerialNoModel.partSnParam(part.getPartSnParam())
.dynamicRule(new StringJoiner(MesPcnExtConstWords.COMMA).add(customerPart.getCustPartNo().substring(customerPart.getCustPartNo().length() - 4)).add(genSerialNoModel.getShiftCode()).toString()); .dynamicRule(new StringJoiner(MesPcnExtConstWords.COMMA).add(custPartNo.substring(custPartNo.length() - 4)).add(genSerialNoModel.getShiftCode()).toString());
//年月日缩写 //年月日缩写
Date date = new Date(); Date date = new Date();
genSerialNoModel.setYear(getYearShort(date)); genSerialNoModel.setYear(getYearShort(date));

@ -34,16 +34,14 @@ public class MesNoSortCustSnNumberRuleStrategyService implements INumberRulePack
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); Map<String, Object> dataMap = genSerialNoModel.getDataMap();
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ? final String custPartNo = customerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : customerPartService.getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo()); if (StringUtils.isEmpty(custPartNo)) {
if (null != customerPart) {
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}else {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo());
} }
genSerialNoModel.setCustPartNo(custPartNo);
Calendar custCalendar = Calendar.getInstance(); Calendar custCalendar = Calendar.getInstance();
custCalendar.setTime(new Date()); custCalendar.setTime(new Date());
String partNo = customerPart.getCustPartNo(); String partNo = custPartNo;
String prefix = partNo.substring(0, partNo.length() - 4); String prefix = partNo.substring(0, partNo.length() - 4);
String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase(); String partNo4 = partNo.substring(partNo.length() - 4).toUpperCase();
genSerialNoModel.setPartNo(prefix+partNo4); genSerialNoModel.setPartNo(prefix+partNo4);

@ -1,13 +1,10 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -24,9 +21,8 @@ import java.util.Date;
**/ **/
@Component @Component
public class XiaoPengNewNumberRuleStrategyService implements INumberRulePackAttributeStrategyService { public class XiaoPengNewNumberRuleStrategyService implements INumberRulePackAttributeStrategyService {
@Autowired @Autowired
private MesCustomerPartRepository customerPartRepository; private IMesCustomerPartService customerPartService;
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel model) { public GenSerialNoModel execute(GenSerialNoModel model) {
@ -36,13 +32,12 @@ public class XiaoPengNewNumberRuleStrategyService implements INumberRulePackAttr
if (StringUtils.isEmpty(model.getPartNo())) if (StringUtils.isEmpty(model.getPartNo()))
MesPcnException.throwMesBusiException("XiaoPengNumberRuleStrategyService执行异常:缺失零件编码参数"); MesPcnException.throwMesBusiException("XiaoPengNumberRuleStrategyService执行异常:缺失零件编码参数");
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode()); final String custPartNo = customerPartService.getCustPartNo(model.getOrganizeCode(), model.getPartNo());
DdlPreparedPack.getStringEqualPack(model.getPartNo(), "erpPartNo", ddlPackBean); if (StringUtils.isEmpty(custPartNo)) {
MesCustomerPart customerPart = customerPartRepository.getByProperty(ddlPackBean);
if (null == customerPart)
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", model.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", model.getPartNo());
}
model.setCustPartNo(customerPart.getCustPartNo()); model.setCustPartNo(custPartNo);
Date date = new Date(); Date date = new Date();
// XIAO_PENG 原客户条码.小鹏汽车 NoSortBarCodeGZ-new // XIAO_PENG 原客户条码.小鹏汽车 NoSortBarCodeGZ-new

@ -1,40 +1,29 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Date; import java.util.Date;
import java.util.Map;
@Component @Component
public class XiaoPengNumberRule2StrategyService implements INumberRulePackAttributeStrategyService { public class XiaoPengNumberRule2StrategyService implements INumberRulePackAttributeStrategyService {
@Autowired @Autowired
private MesCustomerPartRepository customerPartRepository; private IMesCustomerPartService customerPartService;
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
final String custPartNo = customerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); if (StringUtils.isEmpty(custPartNo)) {
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ?
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (null != customerPart) {
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}else {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo());
} }
genSerialNoModel.setCustPartNo(custPartNo);
//年月日缩写 //年月日缩写
Date date = new Date(); Date date = new Date();
@ -55,13 +44,4 @@ public class XiaoPengNumberRule2StrategyService implements INumberRulePackAttrib
private String getDayShort(Date date) { private String getDayShort(Date date) {
return MesExtEnumUtil.DAY_SHORT2.valueOfDescription(Integer.parseInt(TimeTool.getDay(date))); return MesExtEnumUtil.DAY_SHORT2.valueOfDescription(Integer.parseInt(TimeTool.getDay(date)));
} }
private MesCustomerPart getMesCustomerPart(String orgaizeCode, String partNo) {
if (StringUtils.isEmpty(orgaizeCode) || StringUtils.isEmpty(partNo)) return null;
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(orgaizeCode);
DdlPreparedPack.getStringEqualPack(partNo, MesPcnExtConstWords.ERP_PART_NO, ddlPackBean);
MesCustomerPart customerPart = customerPartRepository.getByProperty(ddlPackBean);
return customerPart;
}
} }

@ -1,22 +1,16 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.numberrule;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Date; import java.util.Date;
import java.util.Map;
/** /**
* @Description : * @Description :
@ -27,21 +21,16 @@ import java.util.Map;
**/ **/
@Component @Component
public class XiaoPengNumberRuleStrategyService implements INumberRulePackAttributeStrategyService { public class XiaoPengNumberRuleStrategyService implements INumberRulePackAttributeStrategyService {
@Autowired @Autowired
private MesCustomerPartRepository customerPartRepository; private IMesCustomerPartService customerPartService;
@Override @Override
public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) {
final String custPartNo = customerPartService.getCustPartNo(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
Map<String, Object> dataMap = genSerialNoModel.getDataMap(); if (StringUtils.isEmpty(custPartNo)) {
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) ?
(MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (null != customerPart) {
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}else {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", genSerialNoModel.getPartNo());
} }
genSerialNoModel.setCustPartNo(custPartNo);
//年月日缩写 //年月日缩写
Date date = new Date(); Date date = new Date();
@ -63,13 +52,4 @@ public class XiaoPengNumberRuleStrategyService implements INumberRulePackAttribu
private String getDayShort(Date date) { private String getDayShort(Date date) {
return TimeTool.getDay(date); return TimeTool.getDay(date);
} }
private MesCustomerPart getMesCustomerPart(String orgaizeCode, String partNo) {
if (StringUtils.isEmpty(orgaizeCode) || StringUtils.isEmpty(partNo)) return null;
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(orgaizeCode);
DdlPreparedPack.getStringEqualPack(partNo, MesPcnExtConstWords.ERP_PART_NO, ddlPackBean);
MesCustomerPart customerPart = customerPartRepository.getByProperty(ddlPackBean);
return customerPart;
}
} }

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -14,27 +15,24 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.TimeTool; 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.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.hutool.core.bean.BeanUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Objects;
/** /**
* @Description : 广使 * @Description : 广使
* @Reference : * @Reference :
@ -58,7 +56,7 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
private IConfigService configService; private IConfigService configService;
@Autowired @Autowired
private MesCustomerPartRepository mesCustomerPartRDao; private IMesCustomerPartService mesCustomerPartService;
@Autowired @Autowired
private MesNumberRuleRepository numberRuleRepository; private MesNumberRuleRepository numberRuleRepository;
@ -77,8 +75,7 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
} }
//获取工厂名称 //获取工厂名称
String organizeName = mesConfig.getCfgValue(); String organizeName = mesConfig.getCfgValue();
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel); String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
String custPartNo = mesCustomerPart == null ? "" : mesCustomerPart.getCustPartNo();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
if (!isStep){ if (!isStep){
@ -157,17 +154,4 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
ConvertBean.serviceModelInitialize(mesProduceSn, userName); ConvertBean.serviceModelInitialize(mesProduceSn, userName);
return mesProduceSn; return mesProduceSn;
} }
private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "erpPartNo", ddlPackBean);
MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
/**
* 2024/07/25 numberRule
*/
// if (Objects.isNull(mesCustomerPart)) {
// MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
// }
return mesCustomerPart;
}
} }

@ -72,14 +72,18 @@ public class CustCodeWhqrPrintStrategy implements IPrintTemplateStrategyService
if (Objects.isNull(customerPart)) { if (Objects.isNull(customerPart)) {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", mesProduceSnPrintModel.getPartNo()); MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
} }
final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode, mesProduceSnPrintModel.getPartNo());
if (StringUtil.isEmpty(custPartNo)) {
MesPcnException.throwMesBusiException("请检查客户零件信息,零件[%s]客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
}
if (!isStep) { if (!isStep) {
genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), customerPart); genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), customerPart);
genSerialNoModel.partSnParam(mesPart.getPartSnParam()).setCustPartNo(customerPart.getCustPartNo()); genSerialNoModel.partSnParam(mesPart.getPartSnParam()).setCustPartNo(custPartNo);
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart, supplierCode); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo, supplierCode);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -88,7 +92,7 @@ public class CustCodeWhqrPrintStrategy implements IPrintTemplateStrategyService
} else { } else {
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart, supplierCode); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo, supplierCode);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -123,13 +127,11 @@ public class CustCodeWhqrPrintStrategy implements IPrintTemplateStrategyService
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart, String supplierCode) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo, String supplierCode) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -13,7 +13,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -24,9 +23,11 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Description : * @Description :
@ -61,20 +62,18 @@ public class CustomFieldPrintStrategy implements IPrintTemplateStrategyService {
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
Map<String, Object> customParamValue = mesTemplateService.queryMesLabelTemplateParamPartValue(mesPart.getPartNo(), mesPart.getProductLabelTemplate(), organizeCode); Map<String, Object> customParamValue = mesTemplateService.queryMesLabelTemplateParamPartValue(mesPart.getPartNo(), mesPart.getProductLabelTemplate(), organizeCode);
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear();
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
Map<String, Object> printTemplateData = new HashMap<>(getPrintContextMap(produceSn, customerPart)); Map<String, Object> printTemplateData = new HashMap<>(getPrintContextMap(produceSn, custPartNo));
printTemplateData.putAll(customParamValue); printTemplateData.putAll(customParamValue);
mesProduceSnPrintModel.getPrintContextList().add(printTemplateData); mesProduceSnPrintModel.getPrintContextList().add(printTemplateData);
//保存打印记录 //保存打印记录
@ -83,9 +82,9 @@ public class CustomFieldPrintStrategy implements IPrintTemplateStrategyService {
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear(); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().clear();
Map<String, Object> printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, customerPart)); Map<String, Object> printTemplateData = new HashMap<>(getPrintContextMap(mesProduceSn, custPartNo));
printTemplateData.putAll(customParamValue); printTemplateData.putAll(customParamValue);
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
printDataMapList.add(printTemplateData); printDataMapList.add(printTemplateData);
@ -118,13 +117,11 @@ public class CustomFieldPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());
@ -132,13 +129,11 @@ public class CustomFieldPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSnPrintDataModel; return mesProduceSnPrintDataModel;
} }
private Map<String, Object> getPrintContextMap(MesProduceSn produceSn, MesCustomerPart customerPart) { private Map<String, Object> getPrintContextMap(MesProduceSn produceSn, String custPartNo) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
result.put(MesPcnExtConstWords.PART_NO, produceSn.getPartNo()); result.put(MesPcnExtConstWords.PART_NO, produceSn.getPartNo());
result.put(MesPcnExtConstWords.PART_NAME, produceSn.getPartName()); result.put(MesPcnExtConstWords.PART_NAME, produceSn.getPartName());
if (!Objects.isNull(customerPart)) { result.put(MesPcnExtConstWords.CUST_PART_NO, custPartNo);
result.put(MesPcnExtConstWords.CUST_PART_NO, customerPart.getCustPartNo());
}
result.put(MesPcnExtConstWords.PRINT_BAR_CODE, produceSn.getProductSn()); result.put(MesPcnExtConstWords.PRINT_BAR_CODE, produceSn.getProductSn());
result.put(MesPcnExtConstWords.PRINT_DATE, TimeTool.getNowTime(true)); result.put(MesPcnExtConstWords.PRINT_DATE, TimeTool.getNowTime(true));
result.put(MesPcnExtConstWords.USER_NAME, produceSn.getCreateUser()); result.put(MesPcnExtConstWords.USER_NAME, produceSn.getCreateUser());

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -66,6 +67,9 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
@Autowired @Autowired
private IMesPrintedSnLogService mesPrintedSnLogService; private IMesPrintedSnLogService mesPrintedSnLogService;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
@Override @Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) {
// 获取工厂名称 // 获取工厂名称
@ -76,7 +80,10 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
} }
//获取工厂名称 //获取工厂名称
String organizeName = mesConfig.getCfgValue(); String organizeName = mesConfig.getCfgValue();
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel); final String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
if (StringUtils.isEmpty(custPartNo)) {
MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
}
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
if (!isStep){ if (!isStep){
@ -85,7 +92,7 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, resultBean.getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, resultBean.getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, numberRule, mesCustomerPart.getCustPartNo(), organizeName); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, numberRule, custPartNo, organizeName);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -95,7 +102,7 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
numberRule = getNumberRule(organizeCode, mesPart); numberRule = getNumberRule(organizeCode, mesPart);
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, numberRule, mesCustomerPart.getCustPartNo(), organizeName); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, numberRule, custPartNo, organizeName);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(),organizeCode,printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(),organizeCode,printDataModel));

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -62,6 +63,9 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
private MesCustomerPartRepository mesCustomerPartRDao; private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired @Autowired
private IMesCustomerPartService mesCustomerPartService;
@Autowired
private MesNumberRuleRepository numberRuleRepository; private MesNumberRuleRepository numberRuleRepository;
@Autowired @Autowired
@ -70,7 +74,11 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
@Override @Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule,StepResult stepResult, StationRequestBean reqBean,Boolean isStep) { public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule,StepResult stepResult, StationRequestBean reqBean,Boolean isStep) {
//获取客户零件号 //获取客户零件号
String custPartNo = getMesCustomerPart(mesProduceSnPrintModel).getCustPartNo(); // String custPartNo = getMesCustomerPart(mesProduceSnPrintModel).getCustPartNo();
String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
if (StringUtils.isEmpty(custPartNo)) {
MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
}
// 获取工厂名称 // 获取工厂名称
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode); MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode);

@ -13,7 +13,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -24,11 +23,8 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.Objects;
/** /**
* @Description : * @Description :
* @Reference : * @Reference :
@ -59,19 +55,17 @@ public class InternalBarcodePrintStrategy implements IPrintTemplateStrategyServi
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) { if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) {
MesPcnException.throwMesBusiException("班次代码未维护"); MesPcnException.throwMesBusiException("班次代码未维护");
} }
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -80,7 +74,7 @@ public class InternalBarcodePrintStrategy implements IPrintTemplateStrategyServi
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -109,13 +103,11 @@ public class InternalBarcodePrintStrategy implements IPrintTemplateStrategyServi
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -12,7 +12,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -23,9 +22,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -57,16 +53,14 @@ public class LiJiaBx1eSnPrintStrategy implements IPrintTemplateStrategyService {
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -75,7 +69,7 @@ public class LiJiaBx1eSnPrintStrategy implements IPrintTemplateStrategyService {
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -104,13 +98,11 @@ public class LiJiaBx1eSnPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime("HH:mm")); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime("HH:mm"));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -8,11 +8,9 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -23,9 +21,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -57,16 +52,14 @@ public class LiJiaInterPartSnPrintStrategy implements IPrintTemplateStrategyServ
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -75,7 +68,7 @@ public class LiJiaInterPartSnPrintStrategy implements IPrintTemplateStrategyServ
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -104,13 +97,11 @@ public class LiJiaInterPartSnPrintStrategy implements IPrintTemplateStrategyServ
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -12,7 +12,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -23,9 +22,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -57,16 +53,14 @@ public class LiJiaInterTimeSnPrintStrategy implements IPrintTemplateStrategyServ
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -75,7 +69,7 @@ public class LiJiaInterTimeSnPrintStrategy implements IPrintTemplateStrategyServ
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -104,13 +98,11 @@ public class LiJiaInterTimeSnPrintStrategy implements IPrintTemplateStrategyServ
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime("HH:mm:ss")); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime("HH:mm:ss"));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -12,7 +12,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -23,9 +22,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -57,16 +53,14 @@ public class MesCommonPrintStrategy implements IPrintTemplateStrategyService {
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -75,7 +69,7 @@ public class MesCommonPrintStrategy implements IPrintTemplateStrategyService {
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), organizeCode, printDataModel));
@ -104,13 +98,11 @@ public class MesCommonPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser()); mesProduceSnPrintDataModel.setUserName(produceSn.getCreateUser());

@ -1,6 +1,5 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
@ -54,9 +53,6 @@ public class MesDPBarcodeSubStringPartSnParamWhPrintStrategy implements IPrintTe
@Autowired @Autowired
private IMesPrintedSnLogService mesPrintedSnLogService; private IMesPrintedSnLogService mesPrintedSnLogService;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
@Override @Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) { public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) {

@ -13,7 +13,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -27,7 +26,10 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.StringJoiner;
/** /**
* @Description :cnsl * @Description :cnsl
@ -64,24 +66,20 @@ public class MesDPBarcodeWhPrintStrategy implements IPrintTemplateStrategyServic
? (MesPart) dataMap.get(MesPart.class.getSimpleName()) ? (MesPart) dataMap.get(MesPart.class.getSimpleName())
: partService.getPartByNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo()); : partService.getPartByNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) final String custPartNo = customerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
? (MesCustomerPart) dataMap.get(MesCustomerPart.class.getSimpleName())
: customerPartService.getMesCustomerPart(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (null == genSerialNoModel) MesPcnException.throwBusiException("入参缺少[GenSerialNoModel]!"); if (null == genSerialNoModel) MesPcnException.throwBusiException("入参缺少[GenSerialNoModel]!");
if (null == part) MesPcnException.throwBusiException("请检查零件信息,零件号[%s]信息不存在!", genSerialNoModel.getPartNo()); if (null == part) MesPcnException.throwBusiException("请检查零件信息,零件号[%s]信息不存在!", genSerialNoModel.getPartNo());
if (null == customerPart) MesPcnException.throwBusiException("请检查零件信息,零件号[%s]对应的客户零件信息不存在", genSerialNoModel.getPartNo()); if (StringUtils.isEmpty(custPartNo)) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件信息未维护客户零件号!", part.getPartNo());
if (StringUtils.isEmpty(customerPart.getCustPartNo())) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件信息未维护客户零件号!", part.getPartNo()); if (custPartNo.length() < 4) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件号[%s]长度小于4!", part.getPartNo(), custPartNo);
if (customerPart.getCustPartNo().length() < 4) MesPcnException.throwBusiException("请检查客户零件信息,零件号[%s]对应的客户零件号[%s]长度小于4!", part.getPartNo(), customerPart.getCustPartNo());
if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) MesPcnException.throwBusiException("入参缺少班次代码!"); if (StringUtils.isEmpty(genSerialNoModel.getShiftCode())) MesPcnException.throwBusiException("入参缺少班次代码!");
if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesPart.class.getSimpleName(), part); if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesPart.class.getSimpleName(), part);
if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesCustomerPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), customerPart);
genSerialNoModel.partSnParam(part.getPartSnParam()) genSerialNoModel.partSnParam(part.getPartSnParam())
.dynamicRule(new StringJoiner(MesPcnExtConstWords.COMMA).add(customerPart.getCustPartNo().substring(customerPart.getCustPartNo().length() - 4)).add(genSerialNoModel.getShiftCode()).toString()); .dynamicRule(new StringJoiner(MesPcnExtConstWords.COMMA).add(custPartNo.substring(custPartNo.length() - 4)).add(genSerialNoModel.getShiftCode()).toString());
//年月日缩写 //年月日缩写
Date date = new Date(); Date date = new Date();
genSerialNoModel.setYear(getYearShort(date)); genSerialNoModel.setYear(getYearShort(date));
@ -94,7 +92,7 @@ public class MesDPBarcodeWhPrintStrategy implements IPrintTemplateStrategyServic
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(part, productSn.toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(part, productSn.toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -103,7 +101,7 @@ public class MesDPBarcodeWhPrintStrategy implements IPrintTemplateStrategyServic
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getOrganizeCode(), printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getOrganizeCode(), printDataModel));
@ -132,13 +130,13 @@ public class MesDPBarcodeWhPrintStrategy implements IPrintTemplateStrategyServic
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (null != customerPart && !StringUtils.isEmpty(customerPart.getCustPartNo()) && customerPart.getCustPartNo().length() >= 4) { if (!StringUtils.isEmpty(custPartNo) && custPartNo.length() >= 4) {
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo().substring(0, 4)); mesProduceSnPrintDataModel.setCustPartNo(custPartNo.substring(0, 4));
mesProduceSnPrintDataModel.setCustPartNo1(customerPart.getCustPartNo().substring(customerPart.getCustPartNo().length() - 4)); mesProduceSnPrintDataModel.setCustPartNo1(custPartNo.substring(custPartNo.length() - 4));
} }
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));

@ -69,10 +69,11 @@ public class MesNingDeBarcodePrintStrategy implements IPrintTemplateStrategyServ
MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName())) MesCustomerPart customerPart = (!CollectionUtils.isEmpty(dataMap) && dataMap.containsKey(MesCustomerPart.class.getSimpleName()))
? (MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) ? (MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName())
: customerPartService.getMesCustomerPart(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo()); : customerPartService.getMesCustomerPart(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
final String custPartNo = customerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
if (null == part) MesPcnException.throwBusiException("零件编码[%s]信息不存在!", mesProduceSnPrintModel.getPartNo()); if (null == part) MesPcnException.throwBusiException("零件编码[%s]信息不存在!", mesProduceSnPrintModel.getPartNo());
if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwBusiException("零件编码[%s]信息未维护零件条码匹配规则!", mesProduceSnPrintModel.getPartNo()); if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwBusiException("零件编码[%s]信息未维护零件条码匹配规则!", mesProduceSnPrintModel.getPartNo());
if (null == customerPart) MesPcnException.throwBusiException("零件编码[%s]未维护客户零件号!", mesProduceSnPrintModel.getPartNo()); if (StringUtils.isEmpty(custPartNo)) MesPcnException.throwBusiException("零件编码[%s]未维护客户零件号!", mesProduceSnPrintModel.getPartNo());
if (null == numberRule) numberRule = numberRuleRepository.getByProperty( if (null == numberRule) numberRule = numberRuleRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE}, new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE},
new Object[]{mesProduceSnPrintModel.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProductMatchRule()}); new Object[]{mesProduceSnPrintModel.getOrganizeCode(), CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProductMatchRule()});
@ -86,23 +87,23 @@ public class MesNingDeBarcodePrintStrategy implements IPrintTemplateStrategyServ
if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesPart.class.getSimpleName(), part); if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesPart.class.getSimpleName(), part);
if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesCustomerPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), customerPart); if (CollectionUtils.isEmpty(dataMap) || !dataMap.containsKey(MesCustomerPart.class.getSimpleName())) genSerialNoModel.putDataMap(MesCustomerPart.class.getSimpleName(), customerPart);
genSerialNoModel.partSnParam(part.getPartSnParam()).setCustPartNo(customerPart.getCustPartNo()); genSerialNoModel.partSnParam(part.getPartSnParam()).setCustPartNo(custPartNo);
List<Object> productSnList = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPrintQty()).getResultList(); List<Object> productSnList = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPrintQty()).getResultList();
if (CollectionUtils.isEmpty(productSnList)) MesPcnException.throwBusiException("根据编码规则[%s]生成零件条码失败!", genSerialNoModel.getRuleCode()); if (CollectionUtils.isEmpty(productSnList)) MesPcnException.throwBusiException("根据编码规则[%s]生成零件条码失败!", genSerialNoModel.getRuleCode());
for (Object productSn : productSnList) { for (Object productSn : productSnList) {
MesProduceSn produceSn = generateMesProduceSn(part, productSn.toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(part, productSn.toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
Map<String, Object> printTemplateData = generatePrintTemplateData(part, customerPart, numberRule, produceSn, customParamValue); Map<String, Object> printTemplateData = generatePrintTemplateData(part, custPartNo, numberRule, produceSn, customParamValue);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
mesProduceSnPrintModel.getPrintContextList().add(printTemplateData); mesProduceSnPrintModel.getPrintContextList().add(printTemplateData);
mesProduceSnPrintModel.getMesPrintedSnLogList().add(getMesPrintedSnLog(mesProduceSnPrintModel, part, customerPart, produceSn.getProductSn(), printTemplateData)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(getMesPrintedSnLog(mesProduceSnPrintModel, part, custPartNo, produceSn.getProductSn(), printTemplateData));
} }
}else{ }else{
MesProduceSn produceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn produceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
Map<String, Object> printTemplateData = generatePrintTemplateData(part, customerPart, numberRule, produceSn, customParamValue); Map<String, Object> printTemplateData = generatePrintTemplateData(part, custPartNo, numberRule, produceSn, customParamValue);
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
printDataMapList.add(printTemplateData); printDataMapList.add(printTemplateData);
mesProduceSnPrintModel.getPrintContextList().add(packResultMap(mesProduceSnPrintModel, printDataMapList)); mesProduceSnPrintModel.getPrintContextList().add(packResultMap(mesProduceSnPrintModel, printDataMapList));
mesProduceSnPrintModel.getMesPrintedSnLogList().add(getMesPrintedSnLog(mesProduceSnPrintModel, part, customerPart, produceSn.getProductSn(), printTemplateData)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(getMesPrintedSnLog(mesProduceSnPrintModel, part, custPartNo, produceSn.getProductSn(), printTemplateData));
} }
return mesProduceSnPrintModel; return mesProduceSnPrintModel;
} }
@ -116,10 +117,10 @@ public class MesNingDeBarcodePrintStrategy implements IPrintTemplateStrategyServ
return resultMap; return resultMap;
} }
private Map<String, Object> generatePrintTemplateData(MesPart part, MesCustomerPart customerPart, MesNumberRule numberRule, MesProduceSn produceSn, Map<String, Object> customParamValue) { private Map<String, Object> generatePrintTemplateData(MesPart part, String custPartNo, MesNumberRule numberRule, MesProduceSn produceSn, Map<String, Object> customParamValue) {
Map<String, Object> printTemplateData = new HashMap<>(); Map<String, Object> printTemplateData = new HashMap<>();
printTemplateData.put(MesPcnExtConstWords.QR_CODE, customerPart.getCustPartNo()); printTemplateData.put(MesPcnExtConstWords.QR_CODE, custPartNo);
printTemplateData.put(MesPcnExtConstWords.CUST_PART_NO, customerPart.getCustPartNo()); printTemplateData.put(MesPcnExtConstWords.CUST_PART_NO, custPartNo);
printTemplateData.put(MesPcnExtConstWords.PART_NAME, part.getPartName()); printTemplateData.put(MesPcnExtConstWords.PART_NAME, part.getPartName());
printTemplateData.put(MesPcnExtConstWords.LOT_NO, StringUtils.isEmpty(numberRule.getPrefix()) ? printTemplateData.put(MesPcnExtConstWords.LOT_NO, StringUtils.isEmpty(numberRule.getPrefix()) ?
produceSn.getProductSn() : produceSn.getProductSn().replace(numberRule.getPrefix(), MesPcnExtConstWords.EMPTY)); produceSn.getProductSn() : produceSn.getProductSn().replace(numberRule.getPrefix(), MesPcnExtConstWords.EMPTY));
@ -149,12 +150,12 @@ public class MesNingDeBarcodePrintStrategy implements IPrintTemplateStrategyServ
return mesProduceSn; return mesProduceSn;
} }
private MesPrintedSnLog getMesPrintedSnLog(MesProduceSnPrintModel mesProduceSnPrintModel, MesPart part, MesCustomerPart customerPart, String productSn, Map<String, Object> printTemplateData) { private MesPrintedSnLog getMesPrintedSnLog(MesProduceSnPrintModel mesProduceSnPrintModel, MesPart part, String custPartNo, String productSn, Map<String, Object> printTemplateData) {
MesPrintedSnLog snLog = new MesPrintedSnLog(); MesPrintedSnLog snLog = new MesPrintedSnLog();
snLog.setBarcode(productSn); snLog.setBarcode(productSn);
snLog.setPartNo(part.getPartNo()); snLog.setPartNo(part.getPartNo());
snLog.setPartName(part.getPartName()); snLog.setPartName(part.getPartName());
snLog.setCustPartNo(customerPart.getCustPartNo()); snLog.setCustPartNo(custPartNo);
snLog.setPrintContext(printTemplateData); snLog.setPrintContext(printTemplateData);
ConvertBean.serviceModelInitialize(snLog, mesProduceSnPrintModel.getUserName()); ConvertBean.serviceModelInitialize(snLog, mesProduceSnPrintModel.getUserName());
snLog.setOrganizeCode(mesProduceSnPrintModel.getOrganizeCode()); snLog.setOrganizeCode(mesProduceSnPrintModel.getOrganizeCode());

@ -12,7 +12,6 @@ import cn.estsh.i3plus.mes.pcn.util.DateUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker; import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart; import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
@ -23,9 +22,6 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
/** /**
* @Description : (4) * @Description : (4)
@ -58,16 +54,15 @@ public class WuHanLengDaoPrintStrategy implements IPrintTemplateStrategyService
String organizeCode = mesProduceSnPrintModel.getOrganizeCode(); String organizeCode = mesProduceSnPrintModel.getOrganizeCode();
//物料信息 //物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo()); // MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && !CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName())) ? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName()) : mesCustomerPartService.getMesCustomerPart(organizeCode,mesProduceSnPrintModel.getPartNo());
final String custPartNo = mesCustomerPartService.getCustPartNo(organizeCode,mesProduceSnPrintModel.getPartNo());
if (!isStep){ if (!isStep){
if (!Objects.isNull(customerPart)) { genSerialNoModel.setCustPartNo(custPartNo);
genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
}
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, syncFuncService.syncSerialNo(genSerialNoModel.partSnParam(mesPart.getPartSnParam()), mesProduceSnPrintModel.getUserName(), organizeCode, 1).getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -76,7 +71,7 @@ public class WuHanLengDaoPrintStrategy implements IPrintTemplateStrategyService
}else{ }else{
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, customerPart); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, custPartNo);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(),organizeCode,printDataModel)); mesProduceSnPrintModel.getMesPrintedSnLogList().add(mesPrintedSnLogService.getMesPrintedSnLog(mesProduceSnPrintModel.getUserName(),organizeCode,printDataModel));
@ -105,13 +100,11 @@ public class WuHanLengDaoPrintStrategy implements IPrintTemplateStrategyService
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesCustomerPart customerPart) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String custPartNo) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
if (!Objects.isNull(customerPart)) { mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setCustPartNo(customerPart.getCustPartNo());
}
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setNo(produceSn.getProductSn().replace(produceSn.getPartNo(),"")); mesProduceSnPrintDataModel.setNo(produceSn.getProductSn().replace(produceSn.getPartNo(),""));
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));

@ -1,6 +1,5 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -48,9 +47,6 @@ public class WuHanPaintCenterPrint2Strategy implements IPrintTemplateStrategySer
@Autowired @Autowired
private IMesPrintedSnLogService mesPrintedSnLogService; private IMesPrintedSnLogService mesPrintedSnLogService;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
private static final String SUPPLIER_CODE_DEFAULT = "V280156"; private static final String SUPPLIER_CODE_DEFAULT = "V280156";
@Override @Override

@ -1,6 +1,5 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -48,9 +47,6 @@ public class WuHanPaintCenterPrintStrategy implements IPrintTemplateStrategyServ
@Autowired @Autowired
private IMesPrintedSnLogService mesPrintedSnLogService; private IMesPrintedSnLogService mesPrintedSnLogService;
@Autowired
private IMesCustomerPartService mesCustomerPartService;
private static final String SUPPLIER_CODE_DEFAULT = "V280156"; private static final String SUPPLIER_CODE_DEFAULT = "V280156";
@Override @Override

@ -70,7 +70,7 @@ public class WuhanSnPrintStrategy implements IPrintTemplateStrategyService {
MesPcnException.throwMesBusiException("零件号:%s客户物料信息不存在",model.getPartNo()); MesPcnException.throwMesBusiException("零件号:%s客户物料信息不存在",model.getPartNo());
} }
// 客户零件号 // 客户零件号
String custPartNo = customerPart.getCustPartNo(); String custPartNo = mesCustomerPartService.getCustPartNo(model.getOrganizeCode(),model.getPartNo());
// 客户零件号 前缀 排除后四位 // 客户零件号 前缀 排除后四位
String custPartNoPrefix = StringUtils.isEmpty(custPartNo) ? "" : custPartNo.substring(0, custPartNo.length() - 4); String custPartNoPrefix = StringUtils.isEmpty(custPartNo) ? "" : custPartNo.substring(0, custPartNo.length() - 4);
// 客户零件号 后四位 // 客户零件号 后四位

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -11,15 +12,15 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; 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.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
@ -41,7 +42,7 @@ import java.util.Date;
@Slf4j @Slf4j
public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService { public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
@Autowired @Autowired
private MesCustomerPartRepository mesCustomerPartRDao; private IMesCustomerPartService mesCustomerPartService;
@Autowired @Autowired
private ISyncFuncService syncFuncService; private ISyncFuncService syncFuncService;
@ -69,8 +70,7 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
//客户条码-小鹏汽车 gz-xiaopeng //客户条码-小鹏汽车 gz-xiaopeng
//{custPartNo}{year}{month}{day}{serialNo} //{custPartNo}{year}{month}{day}{serialNo}
//客户零件号 //客户零件号
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel); String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
String custPartNo = mesCustomerPart == null ? "" : mesCustomerPart.getCustPartNo();
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode); MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode);
String organizeName = mesConfig.getCfgValue(); String organizeName = mesConfig.getCfgValue();
@ -122,19 +122,6 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
return numberRule; return numberRule;
} }
private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "erpPartNo", ddlPackBean);
MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
/**
* 2024/07/25 numberRule
*/
// if (Objects.isNull(mesCustomerPart)) {
// MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
// }
return mesCustomerPart;
}
private String getYearShort(Date date) { private String getYearShort(Date date) {
String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date))); String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date)));
if (StringUtils.isEmpty(yearStr)) { if (StringUtils.isEmpty(yearStr)) {

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesPrintedSnLogService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
@ -11,15 +12,15 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; 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.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesConfig;
import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean; import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
import cn.estsh.i3plus.pojo.mes.model.StepResult; import cn.estsh.i3plus.pojo.mes.model.StepResult;
import cn.estsh.i3plus.pojo.mes.repository.MesCustomerPartRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository; import cn.estsh.i3plus.pojo.mes.repository.MesNumberRuleRepository;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
@ -41,7 +42,7 @@ import java.util.Date;
@Slf4j @Slf4j
public class XiaoPengPrintStrategy implements IPrintTemplateStrategyService { public class XiaoPengPrintStrategy implements IPrintTemplateStrategyService {
@Autowired @Autowired
private MesCustomerPartRepository mesCustomerPartRDao; private IMesCustomerPartService mesCustomerPartService;
@Autowired @Autowired
private ISyncFuncService syncFuncService; private ISyncFuncService syncFuncService;
@ -69,8 +70,7 @@ public class XiaoPengPrintStrategy implements IPrintTemplateStrategyService {
//客户条码-小鹏汽车 gz-xiaopeng //客户条码-小鹏汽车 gz-xiaopeng
//{custPartNo}{year}{month}{day}{serialNo} //{custPartNo}{year}{month}{day}{serialNo}
//客户零件号 //客户零件号
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel); String custPartNo = mesCustomerPartService.getCustPartNo(mesProduceSnPrintModel.getOrganizeCode(), mesProduceSnPrintModel.getPartNo());
String custPartNo = mesCustomerPart == null ? "" : mesCustomerPart.getCustPartNo();
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode); MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
numberRule = null != numberRule ? numberRule : getNumberRule(organizeCode, mesPart); numberRule = null != numberRule ? numberRule : getNumberRule(organizeCode, mesPart);
MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode); MesConfig mesConfig = configService.getMesConfigByCfgCode(MesPcnExtConstWords.ORGANIZE_NAME, organizeCode);
@ -124,19 +124,6 @@ public class XiaoPengPrintStrategy implements IPrintTemplateStrategyService {
return numberRule; return numberRule;
} }
private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "erpPartNo", ddlPackBean);
MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
/**
* 2024/07/25 numberRule
*/
// if (Objects.isNull(mesCustomerPart)) {
// MesPcnException.throwMesBusiException("物料【%s】客户零件关系未维护", mesProduceSnPrintModel.getPartNo());
// }
return mesCustomerPart;
}
private String getYearShort(Date date) { private String getYearShort(Date date) {
String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date))); String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date)));
if (StringUtils.isEmpty(yearStr)) { if (StringUtils.isEmpty(yearStr)) {

@ -2,11 +2,9 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesCustomerPartService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.IPrintTemplateStrategyService;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPackage; import cn.estsh.i3plus.pojo.mes.bean.MesPackage;
import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog; import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog;
@ -17,9 +15,12 @@ import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Description : * @Description :
@ -40,18 +41,15 @@ public class YfaiPackageNoFengRenPrintStrategy implements IPrintTemplateStrategy
MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean,
Boolean isStep) { Boolean isStep) {
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && final String custPartNo = mesCustomerPartService.getCustPartNo(model.getOrganizeCode(), model.getPartNo());
!CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName()))
? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName())
: mesCustomerPartService.getMesCustomerPart(model.getOrganizeCode(), model.getPartNo());
// 返回的结果集合 // 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
if (!isStep) { if (!isStep) {
model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, customerPart))); model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, custPartNo)));
model.setPrintContextList(printDataMapList); model.setPrintContextList(printDataMapList);
} else { } else {
model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, customerPart))); model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, custPartNo)));
model.getPrintContextList().add(packResultMap(model, printDataMapList)); model.getPrintContextList().add(packResultMap(model, printDataMapList));
} }
@ -78,11 +76,11 @@ public class YfaiPackageNoFengRenPrintStrategy implements IPrintTemplateStrategy
return snLog; return snLog;
} }
private Map<String, Object> getPrintMap(MesProduceSnPrintModel model, MesPackage packageDb, MesCustomerPart customerPart) { private Map<String, Object> getPrintMap(MesProduceSnPrintModel model, MesPackage packageDb, String custPartNo) {
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put(MesPcnExtConstWords.PART_NO, packageDb.getPartNo()); resultMap.put(MesPcnExtConstWords.PART_NO, packageDb.getPartNo());
resultMap.put(MesPcnExtConstWords.PART_NAME, packageDb.getPartName()); resultMap.put(MesPcnExtConstWords.PART_NAME, packageDb.getPartName());
resultMap.put(MesPcnExtConstWords.CUST_PART_NO, null == customerPart ? MesPcnExtConstWords.EMPTY : customerPart.getCustPartNo()); resultMap.put(MesPcnExtConstWords.CUST_PART_NO, StringUtils.isEmpty(custPartNo) ? MesPcnExtConstWords.EMPTY : custPartNo);
resultMap.put(MesPcnExtConstWords.QR_CODE, packageDb.getPackageNo()); resultMap.put(MesPcnExtConstWords.QR_CODE, packageDb.getPackageNo());
resultMap.put(MesPcnExtConstWords.QTY, packageDb.getQty().intValue()); resultMap.put(MesPcnExtConstWords.QTY, packageDb.getQty().intValue());
resultMap.put(MesPcnExtConstWords.UNIT, packageDb.getUnit()); resultMap.put(MesPcnExtConstWords.UNIT, packageDb.getUnit());

@ -6,7 +6,6 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.mes.bean.MesCustomerPart;
import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule; import cn.estsh.i3plus.pojo.mes.bean.MesNumberRule;
import cn.estsh.i3plus.pojo.mes.bean.MesPackage; import cn.estsh.i3plus.pojo.mes.bean.MesPackage;
import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog; import cn.estsh.i3plus.pojo.mes.bean.MesPrintedSnLog;
@ -17,9 +16,12 @@ import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Description : * @Description :
@ -39,20 +41,16 @@ public class YfaiPackageNoPrintStrategy implements IPrintTemplateStrategyService
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel model, public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel model,
MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean,
Boolean isStep) { Boolean isStep) {
final String custPartNo = mesCustomerPartService.getCustPartNo(model.getOrganizeCode(), model.getPartNo());
MesCustomerPart customerPart = (!Objects.isNull(genSerialNoModel) && if (StringUtils.isEmpty(custPartNo)) MesPcnException.throwBusiException("零件号[%s]未维护客户物料信息", model.getPartNo());
!CollectionUtils.isEmpty(genSerialNoModel.getDataMap()) && genSerialNoModel.getDataMap().containsKey(MesCustomerPart.class.getSimpleName()))
? (MesCustomerPart) genSerialNoModel.getDataMap().get(MesCustomerPart.class.getSimpleName())
: mesCustomerPartService.getMesCustomerPart(model.getOrganizeCode(), model.getPartNo());
if (null == customerPart) MesPcnException.throwBusiException("零件号[%s]未维护客户物料信息", model.getPartNo());
// 返回的结果集合 // 返回的结果集合
List<Map<String, Object>> printDataMapList = new ArrayList<>(); List<Map<String, Object>> printDataMapList = new ArrayList<>();
if (!isStep) { if (!isStep) {
model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, customerPart))); model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, custPartNo)));
model.setPrintContextList(printDataMapList); model.setPrintContextList(printDataMapList);
} else { } else {
model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, customerPart))); model.getPackageList().forEach(o -> printDataMapList.add(getPrintMap(model, o, custPartNo)));
model.getPrintContextList().add(packResultMap(model, printDataMapList)); model.getPrintContextList().add(packResultMap(model, printDataMapList));
} }
@ -79,11 +77,11 @@ public class YfaiPackageNoPrintStrategy implements IPrintTemplateStrategyService
return snLog; return snLog;
} }
private Map<String, Object> getPrintMap(MesProduceSnPrintModel model, MesPackage packageDb, MesCustomerPart customerPart) { private Map<String, Object> getPrintMap(MesProduceSnPrintModel model, MesPackage packageDb, String custPartNo) {
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put(MesPcnExtConstWords.PART_NO, packageDb.getPartNo()); resultMap.put(MesPcnExtConstWords.PART_NO, packageDb.getPartNo());
resultMap.put(MesPcnExtConstWords.PART_NAME, packageDb.getPartName()); resultMap.put(MesPcnExtConstWords.PART_NAME, packageDb.getPartName());
resultMap.put(MesPcnExtConstWords.CUST_PART_NO, customerPart.getCustPartNo()); resultMap.put(MesPcnExtConstWords.CUST_PART_NO, custPartNo);
resultMap.put(MesPcnExtConstWords.QR_CODE, packageDb.getPackageNo()); resultMap.put(MesPcnExtConstWords.QR_CODE, packageDb.getPackageNo());
resultMap.put(MesPcnExtConstWords.QTY, packageDb.getQty().intValue()); resultMap.put(MesPcnExtConstWords.QTY, packageDb.getQty().intValue());
resultMap.put(MesPcnExtConstWords.UNIT, packageDb.getUnit()); resultMap.put(MesPcnExtConstWords.UNIT, packageDb.getUnit());

Loading…
Cancel
Save