添加工步打印策略查询numberRule规则

tags/yfai-pcn-ext-v1.0
臧学普 10 months ago
parent 801e2641cd
commit 3e243a279f

@ -20,6 +20,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
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.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
@ -56,6 +57,9 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
@Autowired
private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired
private MesNumberRuleRepository numberRuleRepository;
@Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule , StepResult stepResult, StationRequestBean reqBean, Boolean isStep) {
@ -96,6 +100,7 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog);
}
}else {
numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//如下目的主要是截取流水号,主要把流水号转换为32位
@ -131,7 +136,14 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintDataModel.setProductDate(produceSn.getLotNo());
return mesProduceSnPrintDataModel;
}
private MesNumberRule getNumberRule(String organizeCode, MesPart part) {
if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo());
MesNumberRule numberRule = numberRuleRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()});
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule());
return numberRule;
}
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";

@ -20,6 +20,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
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.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
@ -56,6 +57,8 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
@Autowired
private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired
private MesNumberRuleRepository numberRuleRepository;
@Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) {
@ -96,6 +99,7 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog);
}
}else {
numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//如下目的主要是截取流水号,主要把流水号转换为32位
@ -131,7 +135,14 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintDataModel.setProductDate(produceSn.getLotNo());
return mesProduceSnPrintDataModel;
}
private MesNumberRule getNumberRule(String organizeCode, MesPart part) {
if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo());
MesNumberRule numberRule = numberRuleRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()});
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule());
return numberRule;
}
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";

@ -21,6 +21,7 @@ import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
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.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ResultBean;
@ -57,7 +58,8 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
@Autowired
private MesCustomerPartRepository mesCustomerPartRDao;
@Autowired
private MesNumberRuleRepository numberRuleRepository;
@Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule,StepResult stepResult, StationRequestBean reqBean,Boolean isStep) {
//获取客户零件号
@ -71,9 +73,9 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
}
//获取工厂名称
String organizeName = mesConfig.getCfgValue();
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
if (!isStep){
//物料信息
MesPart mesPart = mesPartService.getMesPartByPartNo(mesProduceSnPrintModel.getPartNo(), organizeCode);
Date date = new Date();
//----广乘 45位 GQXNY
//{custPartNo}{SPILTURE}{custCode}{spiltrure}{spiltrule}{year}{serialNo}{spilture}{spiltrule}
@ -131,6 +133,7 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
}
}else {
numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//零件长度17位拓展2位,供应商7位,扩展位3个0,产线1年月日流水号4位扩展位4位标识+
@ -164,6 +167,14 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
}
return mesCustomerPart;
}
private MesNumberRule getNumberRule(String organizeCode, MesPart part) {
if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo());
MesNumberRule numberRule = numberRuleRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()});
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule());
return numberRule;
}
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, "0");

@ -13,12 +13,14 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.codemaker.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel;
import cn.estsh.i3plus.pojo.mes.model.StationRequestBean;
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.util.MesExtEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.hutool.core.bean.BeanUtil;
@ -55,6 +57,9 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
@Autowired
private IConfigService configService;
@Autowired
private MesNumberRuleRepository numberRuleRepository;
@Override
public MesProduceSnPrintModel execute(GenSerialNoModel genSerialNoModel, MesProduceSnPrintModel mesProduceSnPrintModel, MesNumberRule numberRule, StepResult stepResult, StationRequestBean reqBean, Boolean isStep) {
String format = "yyyy/MM/dd";
@ -95,6 +100,7 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog);
}
}else {
numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
Integer serialNoLength = numberRule.getSerialnoLength();
@ -111,6 +117,14 @@ public class XiaoPengNewPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSnPrintModel;
}
private MesNumberRule getNumberRule(String organizeCode, MesPart part) {
if (StringUtils.isEmpty(part.getProductMatchRule())) MesPcnException.throwMesBusiException("物料[%s]未维护零件条码匹配规则", part.getPartNo());
MesNumberRule numberRule = numberRuleRepository.getByProperty(
new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.RULE_CODE},
new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), part.getProcessMatchRule()});
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule());
return numberRule;
}
private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());

Loading…
Cancel
Save