打印模板调整

tags/yfai-pcn-ext-v1.2
jun 10 months ago
parent fb52cb2394
commit 715f8be640

@ -194,6 +194,7 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
MesPrintedSnLog mesPrintedSnLog = snLogList.get(0); MesPrintedSnLog mesPrintedSnLog = snLogList.get(0);
MesProduceSnPrintDataModel model = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel model = new MesProduceSnPrintDataModel();
BeanUtil.copyProperties(mesPrintedSnLog, model); BeanUtil.copyProperties(mesPrintedSnLog, model);
model.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(model); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(model);
} }
//获取打印模板信息 //获取打印模板信息
@ -209,149 +210,10 @@ public class MesProduceSnPrintService implements IMesProduceSnPrintService {
return mesConfigList.iterator().next().getCfgValue(); return mesConfigList.iterator().next().getCfgValue();
} }
private String getTemplate(MesProduceSnPrintModel mesProduceSnPrintModel, MesPart mesPart) {
Date date = new Date();
StringBuilder template = new StringBuilder();
if (MesPcnEnumUtil.PRINT_TEMPLATE.B2M.getCode().equals(mesProduceSnPrintModel.getPrintTemplate()) || MesPcnEnumUtil.PRINT_TEMPLATE.GQAA.getCode().equals(mesProduceSnPrintModel.getPrintTemplate())) {
//获取客户零件号
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel);
mesProduceSnPrintModel.setCustPartNo(mesCustomerPart.getCustPartNo());
//"+"1+零件简号4+ 供应商代码SE103+生产线代号(1)+生产日期(4)+供应商生产流水号(4) +软件版本代号(2)
template.append("+").append(mesPart.getPartSnParam()).append("SE103").append("1").append(getDateTime(date)).append("serialNo").append("01");
} else if (MesPcnEnumUtil.PRINT_TEMPLATE.GQXNY.getCode().equals(mesProduceSnPrintModel.getPrintTemplate())) {
//获取客户零件号
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel);
mesProduceSnPrintModel.setCustPartNo(mesCustomerPart.getCustPartNo());
//零件号17+扩展位2+供应商代码7+扩展位3+产线1+年月日6位+流水号4+扩展位4+"+"
template.append(stringFormat(mesCustomerPart.getCustPartNo(), 17)).append("00").append(stringFormat("VD501", 7)).append("000").append("1").append(TimeTool.pareDateToString("yyMMdd", date)).append("serialNo").append("0000").append("+");
} else if (MesPcnEnumUtil.PRINT_TEMPLATE.NO_SORT_BAR_CODE_GZ.getCode().equals(mesProduceSnPrintModel.getPrintTemplate())) {
//内部条码M00061102-R619+"10158"
//条码拼接规则:零件号+年月日+5位流水号
template.append(mesPart.getPartNo()).append("-").append(getDateTime(date)).append("serialNo");
} else if (MesPcnEnumUtil.PRINT_TEMPLATE.NO_SORT_BAR_CODE_GZ_NEW.getCode().equals(mesProduceSnPrintModel.getPrintTemplate())) {
//获取客户零件号
MesCustomerPart mesCustomerPart = getMesCustomerPart(mesProduceSnPrintModel);
mesProduceSnPrintModel.setCustPartNo(mesCustomerPart.getCustPartNo());
//小鹏客户条码6205100EF3-S5-06-R61910027
//条码拼接规则:客户零件号+中杠+年月日+5位流水号按天递增
template.append(mesCustomerPart.getCustPartNo()).append("-").append(getDateTime(date)).append("serialNo");
}
return template.toString();
}
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String no, String custPartNo, String factoryName) {
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setFactoryName(factoryName);
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
mesProduceSnPrintDataModel.setNo(no);
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setProductDate(produceSn.getLotNo());
return mesProduceSnPrintDataModel;
}
private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) { private MesCustomerPart getMesCustomerPart(MesProduceSnPrintModel mesProduceSnPrintModel) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesProduceSnPrintModel.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "erpPartNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesProduceSnPrintModel.getPartNo(), "erpPartNo", ddlPackBean);
MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean); MesCustomerPart mesCustomerPart = mesCustomerPartRDao.getByProperty(ddlPackBean);
return mesCustomerPart; return mesCustomerPart;
} }
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty, String format) {
MesProduceSn mesProduceSn = new MesProduceSn();
mesProduceSn.setSerialNumber(snowflakeIdMaker.nextId() + "");
mesProduceSn.setProductSn(sn);
mesProduceSn.setCustSn(sn);
mesProduceSn.setPartNo(mesPart.getPartNo());
mesProduceSn.setPartName(mesPart.getPartName());
mesProduceSn.setProcessLabelTemplate(mesPart.getProcessLabelTemplate());
mesProduceSn.setCustLabelTemplate(mesPart.getCustLabelTemplate());
mesProduceSn.setProdLabelTemplate(mesPart.getProductLabelTemplate());
mesProduceSn.setQty(qty);
mesProduceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.CREATE.getValue());
mesProduceSn.setQcStatus(MesExtEnumUtil.PRODUCE_QC_STATUS.QUALIFIED.getValue());
mesProduceSn.setLotNo(TimeTool.getNowTime(format));
mesProduceSn.setPrintCount(MesPcnExtConstWords.ONE);
mesProduceSn.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.PRINTED.getValue());
mesProduceSn.setOrganizeCode(mesPart.getOrganizeCode());
ConvertBean.serviceModelInitialize(mesProduceSn, userName);
return mesProduceSn;
}
private String getDateTime(Date date) {
StringBuilder dateTime = new StringBuilder();
String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date)));
if (StringUtils.isEmpty(yearStr)) {
MesPcnException.throwMesBusiException("【%s】年月简号不存在", TimeTool.getYear(date));
}
String monthStr = MesExtEnumUtil.MONTH_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getMonth(date)));
if (StringUtils.isEmpty(monthStr)) {
MesPcnException.throwMesBusiException("【%s】月简号不存在", TimeTool.getMonth(date));
}
return dateTime.append(yearStr).append(monthStr).append(TimeTool.getDay(date)).toString();
}
private String getYearShort(Date date) {
String yearStr = MesExtEnumUtil.YEAR_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getYear(date)));
if (StringUtils.isEmpty(yearStr)) {
MesPcnException.throwMesBusiException("【%s】年月简号不存在", TimeTool.getYear(date));
}
return yearStr;
}
private String getMonthShort(Date date) {
String monthStr = MesExtEnumUtil.MONTH_SHORT.valueOfDescription(Integer.parseInt(TimeTool.getMonth(date)));
if (StringUtils.isEmpty(monthStr)) {
MesPcnException.throwMesBusiException("【%s】月简号不存在", TimeTool.getMonth(date));
}
return monthStr;
}
private String getDayShort(Date date) {
String day = TimeTool.getDay(date);
return day;
}
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, "*");
}
private String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % 34;
sb.append(base34Chars.charAt(remainder));
number /= 34;
}
return sb.reverse().toString();
}
} }

@ -1,6 +1,7 @@
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.apiservice.util.MesPcnException;
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;
@ -48,9 +49,7 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
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()) : getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo()); (MesCustomerPart)dataMap.get(MesCustomerPart.class.getSimpleName()) : getMesCustomerPart(genSerialNoModel.getOrganizeCode(), genSerialNoModel.getPartNo());
if (null != customerPart) { if (null != customerPart) {
String custPartNo = customerPart.getCustPartNo(); genSerialNoModel.setCustPartNo(customerPart.getCustPartNo());
String custPartNoFormat = stringFormat(custPartNo, 17);
genSerialNoModel.setCustPartNo(custPartNoFormat);
} }
//拓展位 2位 00 包含0~9,A~Z 不使用时补“0”填充 {SPILTRULE} //拓展位 2位 00 包含0~9,A~Z 不使用时补“0”填充 {SPILTRULE}
@ -58,8 +57,7 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
MesConfig supplierConfig = configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), genSerialNoModel.getOrganizeCode()); MesConfig supplierConfig = configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), genSerialNoModel.getOrganizeCode());
if (null != supplierConfig) { if (null != supplierConfig) {
String supplierCode = supplierConfig.getCfgValue(); String supplierCode = supplierConfig.getCfgValue();
String supplierCodeFormat = stringFormat(supplierCode, 7); genSerialNoModel.setCustCode(StringUtilExt.stringFormat(supplierCode, 7,MesPcnExtConstWords.SEPARATOR));
genSerialNoModel.setCustCode(supplierCodeFormat);
} }
//扩展位 3位 预留扩展位0~9 A~Z 不使用时,补 0 {SPILTRULE} //扩展位 3位 预留扩展位0~9 A~Z 不使用时,补 0 {SPILTRULE}
@ -75,34 +73,6 @@ public class GqxnyNumberRuleStrategyService implements INumberRulePackAttributeS
return genSerialNoModel; return genSerialNoModel;
} }
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, MesPcnExtConstWords.SEPARATOR);
}
private String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
private MesCustomerPart getMesCustomerPart(String orgaizeCode, String partNo) { private MesCustomerPart getMesCustomerPart(String orgaizeCode, String partNo) {
if (StringUtils.isEmpty(orgaizeCode) || StringUtils.isEmpty(partNo)) return null; if (StringUtils.isEmpty(orgaizeCode) || StringUtils.isEmpty(partNo)) return null;
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(orgaizeCode); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(orgaizeCode);

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
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.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;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.StringUtilExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; 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;
@ -79,19 +80,10 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
if (!isStep){ if (!isStep){
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1); ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1);
String sn = resultBean.getResultList().get(0).toString();
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = toBase34(Integer.parseInt(serialNo));
serialNo34 = stringFormat(serialNo34, 4, false, "0");
sn = snPrefix + serialNo34 + snSuffix;
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, resultBean.getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, serialNo, custPartNo, organizeName); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, numberRule, custPartNo, organizeName);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -103,20 +95,9 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
} }
}else { }else {
numberRule = getNumberRule(organizeCode, mesPart); numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//如下目的主要是截取流水号,主要把流水号转换为32位
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = toBase34(Integer.parseInt(serialNo));
serialNo34 = stringFormat(serialNo34, 4, false, "0");
sn = snPrefix + serialNo34 + snSuffix;
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, serialNo34, custPartNo, organizeName); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, numberRule, custPartNo, organizeName);
printDataModel.setBarcode(sn);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
MesPrintedSnLog snLog = new MesPrintedSnLog(); MesPrintedSnLog snLog = new MesPrintedSnLog();
@ -128,13 +109,24 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSnPrintModel; return mesProduceSnPrintModel;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String no, String custPartNo, String factoryName) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesNumberRule numberRule, String custPartNo, String factoryName) {
//34进制
String sn = produceSn.getProductSn();
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = StringUtilExt.stringFormat(StringUtilExt.toBase34(Integer.parseInt(serialNo)), 4, false, "0");
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setFactoryName(factoryName); mesProduceSnPrintDataModel.setFactoryName(factoryName);
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
mesProduceSnPrintDataModel.setNo(no); mesProduceSnPrintDataModel.setNo(StringUtilExt.stringFormat(serialNo, 4, false, "0"));
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setNo34(serialNo34);
mesProduceSnPrintDataModel.setBarcode34(snPrefix + serialNo34 + snSuffix);
mesProduceSnPrintDataModel.setCustPartNo(custPartNo); mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(), DateUtil.SHORT_FORMAT,"yyyy/MM/dd")); mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(), DateUtil.SHORT_FORMAT,"yyyy/MM/dd"));
@ -148,47 +140,6 @@ public class AionPrintStrategy implements IPrintTemplateStrategyService {
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule()); if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProcessMatchRule());
return numberRule; return numberRule;
} }
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % 34;
sb.append(base34Chars.charAt(remainder));
number /= 34;
}
return sb.reverse().toString();
}
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, "*");
}
private String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) { private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) {
MesProduceSn mesProduceSn = new MesProduceSn(); MesProduceSn mesProduceSn = new MesProduceSn();

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
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.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;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.StringUtilExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; 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;
@ -77,19 +78,10 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
if (!isStep){ if (!isStep){
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1); ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1);
String sn = resultBean.getResultList().get(0).toString();
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = toBase34(Integer.parseInt(serialNo));
serialNo34 = stringFormat(serialNo34, 4, false, "0");
sn = snPrefix + serialNo34 + snSuffix;
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, resultBean.getResultList().get(0).toString(), mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, serialNo, mesCustomerPart.getCustPartNo(), organizeName); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, numberRule, mesCustomerPart.getCustPartNo(), organizeName);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
@ -101,20 +93,9 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
} }
}else { }else {
numberRule = getNumberRule(organizeCode, mesPart); numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//如下目的主要是截取流水号,主要把流水号转换为32位
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = toBase34(Integer.parseInt(serialNo));
serialNo34 = stringFormat(serialNo34, 4, false, "0");
sn = snPrefix + serialNo34 + snSuffix;
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, serialNo34, mesCustomerPart.getCustPartNo(), organizeName); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, numberRule, mesCustomerPart.getCustPartNo(), organizeName);
printDataModel.setBarcode(sn);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
MesPrintedSnLog snLog = new MesPrintedSnLog(); MesPrintedSnLog snLog = new MesPrintedSnLog();
@ -126,13 +107,24 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSnPrintModel; return mesProduceSnPrintModel;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String no, String custPartNo, String factoryName) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesNumberRule numberRule, String custPartNo, String factoryName) {
//34进制
String sn = produceSn.getProductSn();
int versionNoLength = numberRule.getSpiltRule().substring(numberRule.getSpiltRule().lastIndexOf(",") + 1).length();
Integer serialNoLength = numberRule.getSerialnoLength();
String snPrefix = sn.substring(0, sn.length() - versionNoLength - serialNoLength);
String snSuffix = sn.substring(sn.length() - versionNoLength);
String serialNo = sn.substring(sn.length() - versionNoLength - serialNoLength, sn.length() - versionNoLength);
String serialNo34 = StringUtilExt.stringFormat(StringUtilExt.toBase34(Integer.parseInt(serialNo)), 4, false, "0");
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setFactoryName(factoryName); mesProduceSnPrintDataModel.setFactoryName(factoryName);
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
mesProduceSnPrintDataModel.setNo(no); mesProduceSnPrintDataModel.setNo(StringUtilExt.stringFormat(serialNo, 4, false, "0"));
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setNo34(serialNo34);
mesProduceSnPrintDataModel.setBarcode34(snPrefix+serialNo34+snSuffix);
mesProduceSnPrintDataModel.setCustPartNo(custPartNo); mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(),DateUtil.SHORT_FORMAT,"yyyy/MM/dd")); mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(),DateUtil.SHORT_FORMAT,"yyyy/MM/dd"));
@ -146,47 +138,6 @@ public class GqaaPrintStrategy implements IPrintTemplateStrategyService {
if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProductMatchRule()); if (null == numberRule) MesPcnException.throwMesBusiException("物料[%s]维护的零件条码匹配规则[%s]信息不存在", part.getPartNo(), part.getProductMatchRule());
return numberRule; return numberRule;
} }
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % 34;
sb.append(base34Chars.charAt(remainder));
number /= 34;
}
return sb.reverse().toString();
}
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, "*");
}
private String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) { private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) {
MesProduceSn mesProduceSn = new MesProduceSn(); MesProduceSn mesProduceSn = new MesProduceSn();

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.print.strategy;
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.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;
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.StringUtilExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintDataModel; 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;
@ -93,8 +94,7 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
//供应商代码 7位 供应商代码 0~9,A~Z;不足7位 右测补* //供应商代码 7位 供应商代码 0~9,A~Z;不足7位 右测补*
MesConfig supplierConfig = configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), organizeCode); MesConfig supplierConfig = configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), organizeCode);
String supplierCode = supplierConfig.getCfgValue(); String supplierCode = supplierConfig.getCfgValue();
String supplierCodeFormat = stringFormat(supplierCode, 7); genSerialNoModel.setCustCode(StringUtilExt.stringFormat(supplierCode, 7,MesPcnExtConstWords.SEPARATOR));
genSerialNoModel.setCustCode(supplierCodeFormat);
//扩展位 3位 预留扩展位0~9 A~Z 不使用时,补 0 {SPILTRULE} //扩展位 3位 预留扩展位0~9 A~Z 不使用时,补 0 {SPILTRULE}
//产线 1位 供应商产线号表示由数字1~9 和字母A~Z(I/O除外)组成; {SPILTRULE} //产线 1位 供应商产线号表示由数字1~9 和字母A~Z(I/O除外)组成; {SPILTRULE}
//年月日 6位 yyMMdd 零部件生产日期年月日各2位 //年月日 6位 yyMMdd 零部件生产日期年月日各2位
@ -106,47 +106,26 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) { for (int i = 0; i < mesProduceSnPrintModel.getPrintQty(); i++) {
ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1); ResultBean resultBean = syncFuncService.syncSerialNo(genSerialNoModel, mesProduceSnPrintModel.getUserName(), organizeCode, 1);
String sn = resultBean.getResultList().get(0).toString(); String sn = resultBean.getResultList().get(0).toString();
/**
* 2024/7/24
* 广, 34
*
*
*/
// String snPrefix = sn.substring(0, sn.length() - 9);
// String snSuffix = sn.substring(sn.length() - 5);
String serialNo = sn.substring(sn.length() - 9, sn.length() - 5);
// String serialNo34 = toBase34(Integer.parseInt(serialNo));
// serialNo34 = stringFormat(serialNo34, 4, false, "0");
// sn = snPrefix + serialNo34 + snSuffix;
//保存条码信息 //保存条码信息
MesProduceSn produceSn = generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty()); MesProduceSn produceSn = generateMesProduceSn(mesPart, sn, mesProduceSnPrintModel.getUserName(), mesProduceSnPrintModel.getQty());
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(produceSn, serialNo, custPartNo, organizeName); MesProduceSnPrintDataModel printDataModel = getModel(produceSn, numberRule, custPartNo, organizeName);
printDataModel.setSupplierCode(supplierCode); printDataModel.setSupplierCode(supplierCode);
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn);
//保存打印记录 //保存打印记录
MesPrintedSnLog snLog = new MesPrintedSnLog(); MesPrintedSnLog snLog = new MesPrintedSnLog();
BeanUtil.copyProperties(printDataModel, snLog); BeanUtil.copyProperties(printDataModel, snLog);
snLog.setOrganizeCode(organizeCode); snLog.setOrganizeCode(organizeCode);
ConvertBean.serviceModelInitialize(snLog, mesProduceSnPrintModel.getUserName()); ConvertBean.serviceModelInitialize(snLog, mesProduceSnPrintModel.getUserName());
mesProduceSnPrintModel.getMesProduceSnList().add(produceSn); mesProduceSnPrintModel.getMesPrintedSnLogList().add(snLog);
} }
}else { }else {
numberRule = getNumberRule(organizeCode, mesPart); numberRule = getNumberRule(organizeCode, mesPart);
String sn = mesProduceSnPrintModel.getProductSn();
MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0); MesProduceSn mesProduceSn = mesProduceSnPrintModel.getMesProduceSnList().get(0);
//零件长度17位拓展2位,供应商7位,扩展位3个0,产线1年月日流水号4位扩展位4位标识+
//{custPartNo}{spiltrule}{custCode}{spiltrule}{spiltrule}{year}{serialNo}{spiltrule}{spiltrule}
//客户零件号-扩展位-客户代码-预留位000-产线1-年月日-条码-扩展0000-追溯位+
//splitRule 00,000,1,0000,+
//如下目的主要是截取流水号,主要把流水号转换为32位
Integer serialNoLength = numberRule.getSerialnoLength();
String serialNo = sn.substring(sn.length()-serialNoLength-5, sn.length()-5);
String serialNo34 = toBase34(Integer.parseInt(serialNo));
serialNo34 = stringFormat(serialNo34, 4, false, "0");
//封装打印信息 //封装打印信息
MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, serialNo34, custPartNo, organizeName); MesProduceSnPrintDataModel printDataModel = getModel(mesProduceSn, numberRule, custPartNo, organizeName);
printDataModel.setSupplierCode(configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), organizeCode).getCfgValue()); printDataModel.setSupplierCode(configService.getMesConfigByCfgCodeKeyOrg(MesPcnExtConstWords.SUPPLIER_CODE, MesExtEnumUtil.MES_PRINT_TEMPLATE.GQXNY.getValue(), organizeCode).getCfgValue());
mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel); mesProduceSnPrintModel.getMesProduceSnPrintDataModelList().add(printDataModel);
//保存打印记录 //保存打印记录
@ -177,47 +156,6 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
return numberRule; return numberRule;
} }
private String stringFormat(String data, Integer length) {
return stringFormat(data, length, true, "0");
}
private String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
// 34进制字符集
private String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % 34;
sb.append(base34Chars.charAt(remainder));
number /= 34;
}
return sb.reverse().toString();
}
private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) { private MesProduceSn generateMesProduceSn(MesPart mesPart, String sn, String userName, Double qty) {
MesProduceSn mesProduceSn = new MesProduceSn(); MesProduceSn mesProduceSn = new MesProduceSn();
mesProduceSn.setSerialNumber(snowflakeIdMaker.nextId() + ""); mesProduceSn.setSerialNumber(snowflakeIdMaker.nextId() + "");
@ -239,13 +177,23 @@ public class GqxnyPrintStrategy implements IPrintTemplateStrategyService {
return mesProduceSn; return mesProduceSn;
} }
private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, String no, String custPartNo, String factoryName) { private MesProduceSnPrintDataModel getModel(MesProduceSn produceSn, MesNumberRule numberRule, String custPartNo, String factoryName) {
//34进制
String sn = produceSn.getProductSn();
Integer serialNoLength = numberRule.getSerialnoLength();
String serialNo = sn.substring(sn.length()-serialNoLength-5, sn.length()-5);
String snPrefix = sn.substring(0, sn.length()-serialNoLength-5);
String snSuffix = sn.substring(sn.length()-5);
String serialNo34 = StringUtilExt.stringFormat(StringUtilExt.toBase34(Integer.parseInt(serialNo)), 4, false, "0");
MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel(); MesProduceSnPrintDataModel mesProduceSnPrintDataModel = new MesProduceSnPrintDataModel();
mesProduceSnPrintDataModel.setFactoryName(factoryName); mesProduceSnPrintDataModel.setFactoryName(factoryName);
mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo()); mesProduceSnPrintDataModel.setPartNo(produceSn.getPartNo());
mesProduceSnPrintDataModel.setPartName(produceSn.getPartName()); mesProduceSnPrintDataModel.setPartName(produceSn.getPartName());
mesProduceSnPrintDataModel.setNo(no); mesProduceSnPrintDataModel.setNo(StringUtilExt.stringFormat(serialNo, 4, false, "0"));
mesProduceSnPrintDataModel.setNo34(serialNo34);
mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn()); mesProduceSnPrintDataModel.setBarcode(produceSn.getProductSn());
mesProduceSnPrintDataModel.setBarcode34(snPrefix+serialNo34+snSuffix);
mesProduceSnPrintDataModel.setCustPartNo(custPartNo); mesProduceSnPrintDataModel.setCustPartNo(custPartNo);
mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true)); mesProduceSnPrintDataModel.setPrintDate(TimeTool.getNowTime(true));
mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(),DateUtil.SHORT_FORMAT,"yyyy/MM/dd")); mesProduceSnPrintDataModel.setProductDate(TimeTool.parseStringFormat(produceSn.getLotNo(),DateUtil.SHORT_FORMAT,"yyyy/MM/dd"));

@ -0,0 +1,45 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.util;
public class StringUtilExt {
public static String stringFormat(String data, Integer length,String symbol) {
return stringFormat(data, length, true, symbol);
}
public static String stringFormat(String data, Integer length, boolean left, String symbol) {
//数据长途大于填充位数直接返回
if (data.length() >= length) {
return data;
}
StringBuilder dataBuffer = new StringBuilder();
//右拼接
if (left) {
dataBuffer.append(data);
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
}
//左拼接
if (!left) {
for (int i = 0; i < length - data.length(); i++) {
dataBuffer.append(symbol);
}
dataBuffer.append(data);
}
return dataBuffer.toString();
}
// 34进制字符集
public static String toBase34(int number) {
String base34Chars = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";
StringBuilder sb = new StringBuilder();
while (number > 0) {
int remainder = number % 34;
sb.append(base34Chars.charAt(remainder));
number /= 34;
}
return sb.reverse().toString();
}
}

@ -27,9 +27,15 @@ public class MesProduceSnPrintDataModel {
@ApiParam("流水号") @ApiParam("流水号")
private String no; private String no;
@ApiParam("34位流水号")
private String no34;
@ApiParam("二维码") @ApiParam("二维码")
private String barcode; private String barcode;
@ApiParam("二维码34")
private String barcode34;
@ApiParam("生产日期") @ApiParam("生产日期")
private String productDate; private String productDate;

Loading…
Cancel
Save