From 470aff1fd6bb47bbf210fcb0e5e9f2ba7c45abe8 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 18 Mar 2025 20:26:45 +0800 Subject: [PATCH 1/5] =?UTF-8?q?45573=20PCN-=E6=89=93=E5=8D=B0=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=9AcustomFieldPrintStrategy=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=89=93=E5=8D=B0=E5=87=BA=E5=85=AB=E4=BD=8D?= =?UTF-8?q?=E5=B9=B4=E6=9C=88=E6=97=A5=E7=9A=84=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/print/strategy/CustomFieldPrintStrategy.java | 2 ++ .../cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustomFieldPrintStrategy.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustomFieldPrintStrategy.java index 18a8169..49c347d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustomFieldPrintStrategy.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/print/strategy/CustomFieldPrintStrategy.java @@ -142,6 +142,8 @@ public class CustomFieldPrintStrategy implements IPrintTemplateStrategyService { result.put(MesPcnExtConstWords.PRINT_BAR_CODE, produceSn.getProductSn()); result.put(MesPcnExtConstWords.PRINT_DATE, TimeTool.getNowTime(true)); result.put(MesPcnExtConstWords.USER_NAME, produceSn.getCreateUser()); + result.put(MesPcnExtConstWords.PRODUCT_DATE, TimeTool.getToday()); + result.put(MesPcnExtConstWords.PRODUCT_TIME, TimeTool.getTimeShortWithColon()); return result; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 076b45f..a5cffb4 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -745,6 +745,10 @@ public class MesPcnExtConstWords { public static final String FG_PART_NO = "fgPartNo"; // 打印日期 public static final String PRINT_DATE = "printDate"; + // 生产日期 + public static final String PRODUCT_DATE = "productDate"; + // 生产日期 + public static final String PRODUCT_TIME = "productTime"; // 打印时间 public static final String PRINT_TIME = "printTime"; //替换数 From 27e636b1e5e172e9c0d41060261b8ed18b33625a Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 27 Mar 2025 12:31:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=B0=8F=E9=B9=8F=E6=96=B0=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XiaoPengNumberRule2StrategyService.java | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/XiaoPengNumberRule2StrategyService.java diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/XiaoPengNumberRule2StrategyService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/XiaoPengNumberRule2StrategyService.java new file mode 100644 index 0000000..ebe7328 --- /dev/null +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/numberrule/XiaoPengNumberRule2StrategyService.java @@ -0,0 +1,67 @@ +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.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.mes.pcn.api.iservice.busi.INumberRulePackAttributeStrategyService; +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.repository.MesCustomerPartRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.Map; + +@Component +public class XiaoPengNumberRule2StrategyService implements INumberRulePackAttributeStrategyService { + + @Autowired + private MesCustomerPartRepository customerPartRepository; + + @Override + public GenSerialNoModel execute(GenSerialNoModel genSerialNoModel) { + + Map dataMap = genSerialNoModel.getDataMap(); + 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()); + } + + //年月日缩写 + Date date = new Date(); + genSerialNoModel.setYear(getYearShort(date)); + genSerialNoModel.setMonth(getMonthShort(date)); + genSerialNoModel.setDay(getDayShort(date)); + return genSerialNoModel; + } + + private String getYearShort(Date date) { + return MesExtEnumUtil.YEAR_SHORT2.valueOfDescription(Integer.parseInt(TimeTool.getYear(date))); + } + + private String getMonthShort(Date date) { + return MesExtEnumUtil.MONTH_SHORT2.valueOfDescription(Integer.parseInt(TimeTool.getMonth(date))); + } + + private String getDayShort(Date 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; + } + +} From 11ffcf11744bcdd69c6896c137974b91e2172a83 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 2 Apr 2025 15:17:48 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=AE=81=E5=BE=B7=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E8=A3=85=E7=AE=B1=E9=98=B2=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesBoxingErrorProofingController.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java index 1e43637..3c5a6ed 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java @@ -82,6 +82,23 @@ public class MesBoxingErrorProofingController { } } + @GetMapping("/do-second-scan") + @ApiOperation(value = "二次装箱扫描") + public ResultBean doSecondScan(MesPackageDetail mesPackageDetail) { + + try { + ValidatorBean.checkNotNull(mesPackageDetail.getPackageNo(), "箱条码不能为空"); + + mesPackageDetail.setOrganizeCode(!StringUtils.isEmpty(mesPackageDetail.getOrganizeCode())?mesPackageDetail.getOrganizeCode():AuthUtil.getOrganizeCode()); + ConvertBean.serviceModelInitialize(mesPackageDetail,!StringUtils.isEmpty(mesPackageDetail.getModifyUser())?mesPackageDetail.getModifyUser():AuthUtil.getSessionUser().getUserName()); + return mesBoxingErrorProofingService.doScan(mesPackageDetail); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + @PostMapping("/mes-package-details/saveAll") @ApiOperation(value = "保存包装明细") From f4069c469898f3cffd7630590caf1b40ff977486 Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 8 Apr 2025 12:43:16 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=AE=81=E5=BE=B7=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E8=A3=85=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesBoxingErrorProofingService.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java index 2ca04dc..913ba2f 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java @@ -149,7 +149,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //校验包装条码信息 MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); //校验是否已关闭 - if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed() ) { + if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed() && !Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) { List produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); //1.查询包装明细是否包含此零件 List defineDetails = getMesPackingDefineDetailsNew(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn(), mesPackage.getPartNo()); @@ -171,7 +171,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //保存包装明细 mesPackageDetailRDao.insert(saveMesPackageDetail); //更新包装表 - updateMesPackage(mesPackage, mesPackageDetail.getModifyUser(), 1d, false); + updateMesPackage(mesPackage, mesPackageDetail.getModifyUser(), 1d, false, packingDefine); } //缓存是否记忆开关 saveRedis(getKey(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getModifyUser()),mesPackageDetail.getIsMemory()); @@ -200,7 +200,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer mesPackageDetailRDao.saveAll(saveMesPackageDetailList); int qty = saveMesPackageDetailList.size(); //更新包装表 - updateMesPackage(mesPackage, userName, qty, false); + updateMesPackage(mesPackage, userName, qty, false, null); } if(mesPackage.getIsSealed() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ return ResultBean.success("当前箱条码已完成装箱,请扫描下一个箱条码!").setResultObject(mesPackage); @@ -227,7 +227,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer MesPcnException.throwMesBusiException("箱条码[%s]下不存在零件条码,不允许关箱,请检查数据!", mesPackage.getPackageNo()); } //关箱 - updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true); + updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true, null); return ResultBean.success("关箱成功!"); } else { if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) { @@ -387,13 +387,15 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer } - private void updateMesPackage(MesPackage mesPackage, String userName, double qty, boolean close) { + private void updateMesPackage(MesPackage mesPackage, String userName, double qty, boolean close, MesPackingDefine packingDefine) { mesPackage.setQty(MathOperation.add(mesPackage.getQty(), qty)); if (mesPackage.getPackSpecQty() <= mesPackage.getQty() || close) { mesPackage.setIsSealed(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); mesPackage.setLotNo(TimeTool.getToday()); //数据写入接口表回传wms - saveMesPackageResult(mesPackage, userName); + if (packingDefine == null || !Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) { + saveMesPackageResult(mesPackage, userName); + } } ConvertBean.serviceModelUpdate(mesPackage, userName); mesPackageRDao.update(mesPackage); From 9528d539c0b83dfdc5709eba977809da25836d6b Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 9 Apr 2025 14:09:53 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=AE=81=E5=BE=B7=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E8=A3=85=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesBoxingErrorProofingService.java | 42 +++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java index 913ba2f..979c58a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java @@ -149,7 +149,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //校验包装条码信息 MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); //校验是否已关闭 - if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed() && !Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) { + if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { List produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); //1.查询包装明细是否包含此零件 List defineDetails = getMesPackingDefineDetailsNew(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn(), mesPackage.getPartNo()); @@ -166,7 +166,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //校验条码规则 MesPart mesPart = getMesPartNew(mesPackageDetail, mesPackage, packingDefine); //包装规格明细 - MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart); + MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart, packingDefine); if (mesPackageDetail.getIsMemoryBoolean()) { //保存包装明细 mesPackageDetailRDao.insert(saveMesPackageDetail); @@ -294,31 +294,34 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer } } - private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) { - //校验是否重复扫描 - checkSerialNumber(mesPackageDetail); - //获取包装定义明细 - List defineDetails = getMesPackingDefineDetails(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn()); - //校验是否包含 -// String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails); - //校验条码信息 - String partNo = checkSn(mesPackageDetail, packingDefine, mesPackage, defineDetails); - //物料信息 - return getPart(mesPackageDetail.getOrganizeCode(), partNo); - } +// private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) { +// //校验是否重复扫描 +// checkSerialNumber(mesPackageDetail); +// //获取包装定义明细 +// List defineDetails = getMesPackingDefineDetails(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn()); +// //校验是否包含 +//// String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails); +// //校验条码信息 +// String partNo = checkSn(mesPackageDetail, packingDefine, mesPackage, defineDetails); +// //物料信息 +// return getPart(mesPackageDetail.getOrganizeCode(), partNo); +// } private MesPart getMesPartNew(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) { //校验是否重复扫描 - checkSerialNumber(mesPackageDetail); + checkSerialNumber(mesPackageDetail, packingDefine); //校验条码信息 String partNo = checkSnNew(mesPackageDetail, packingDefine, mesPackage); //物料信息 return getPart(mesPackageDetail.getOrganizeCode(), partNo); } - private void checkSerialNumber(MesPackageDetail mesPackageDetail) { + private void checkSerialNumber(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), MesPcnExtConstWords.SERIAL_NUMBER, ddlPackBean); + if (Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) { + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), "isSecondPack", ddlPackBean); + } if (mesPackageDetailRDao.isExitByHql(ddlPackBean)) { MesPcnException.throwMesBusiException("零件条码[%s]已装箱,请检查数据!", mesPackageDetail.getSerialNumber()); } @@ -420,7 +423,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer return mesPackageDetails; } - private MesPackageDetail getPackageDetail(MesPackageDetail mesPackageDetail, MesPart mesPart) { + private MesPackageDetail getPackageDetail(MesPackageDetail mesPackageDetail, MesPart mesPart, MesPackingDefine packingDefine) { MesPackageDetail saveMesPackageDetail = new MesPackageDetail(); saveMesPackageDetail.setPackageNo(mesPackageDetail.getPackageNo()); saveMesPackageDetail.setSerialNumber(mesPackageDetail.getSerialNumber()); @@ -428,6 +431,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer saveMesPackageDetail.setPartName(mesPart.getPartName()); saveMesPackageDetail.setQty(1d); saveMesPackageDetail.setOrganizeCode(mesPackageDetail.getOrganizeCode()); + if (packingDefine != null && Objects.equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), packingDefine.getIsConfirmCheck())) { + saveMesPackageDetail.setIsSecondPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + } else { + saveMesPackageDetail.setIsSecondPack(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + } ConvertBean.serviceModelInitialize(saveMesPackageDetail, mesPackageDetail.getCreateUser()); return saveMesPackageDetail; }