From 8f88fcadac2c01c0b217e38791b1d8a5005e23a8 Mon Sep 17 00:00:00 2001 From: jun Date: Fri, 5 Jul 2024 13:31:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E5=B7=A5=E5=8E=82=E9=98=B2=E9=94=99?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IMesCorssOrganizeErrorProofingService.java | 17 +++ .../MesCorssOrganizeErrorProofingController.java | 20 +++ .../controller/busi/MesWhiteListController.java | 19 ++- .../dao/IMesCorssOrganizeErrorProofingDao.java | 20 +++ .../MesCorssOrganizeErrorProofingDaoImpl.java | 52 ++++++++ .../MesCorssOrganizeErrorProofingJob.java | 57 +++++++++ .../MesCorssOrganizeErrorProofingServiceImpl.java | 137 +++++++++++++++++++++ .../serviceimpl/base/MesPartProdGroupService.java | 2 +- .../base/file/MesModuleExcelServiceImpl.java | 8 ++ 9 files changed, 330 insertions(+), 2 deletions(-) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCorssOrganizeErrorProofingService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCorssOrganizeErrorProofingController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesCorssOrganizeErrorProofingDao.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesCorssOrganizeErrorProofingDaoImpl.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCorssOrganizeErrorProofingJob.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCorssOrganizeErrorProofingServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCorssOrganizeErrorProofingService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCorssOrganizeErrorProofingService.java new file mode 100644 index 0000000..40d67a8 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesCorssOrganizeErrorProofingService.java @@ -0,0 +1,17 @@ +package cn.estsh.i3plus.ext.mes.api.base; + +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofing; +import io.swagger.annotations.ApiOperation; + +/** + * @Description : 跨工厂防错 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/4 16:49 + * @Modify: + **/ +public interface IMesCorssOrganizeErrorProofingService extends IBaseMesService { + + @ApiOperation("跨工厂防错JOB") + void doMesCorssOrganizeErrorProofing(String organizeCode ,Integer pageSize,String userName); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCorssOrganizeErrorProofingController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCorssOrganizeErrorProofingController.java new file mode 100644 index 0000000..ef311c9 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesCorssOrganizeErrorProofingController.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base; + +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofing; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 跨工厂防错 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/4 16:48 + * @Modify: + **/ +@Api(tags = "跨工厂防错") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesCorssOrganizeErrorProofing") +public class MesCorssOrganizeErrorProofingController extends BaseMesController { +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java index d3af065..3b0ba8c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/MesWhiteListController.java @@ -8,7 +8,6 @@ import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.bean.MesShift; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; @@ -66,6 +65,10 @@ public class MesWhiteListController extends MesBaseController { private IMesQmsScrapService qmsScrapService; @Autowired private IMesQmsSuspiciousService qmsSuspiciousService; + + @Autowired + private IMesCorssOrganizeErrorProofingService mesCorssOrganizeErrorProofingService; + @PostMapping(value = "/meter/main-data") @ApiOperation(value = "Maximo仪表主数据", notes = "Maximo仪表主数据") public Map doMeterMainData(@RequestBody MaximoParamModel paramModel) { @@ -110,6 +113,20 @@ public class MesWhiteListController extends MesBaseController { return ResultBean.success().setSuccess(true); } + @GetMapping(value = "/doMesCorssOrganizeErrorProofing") + @ApiOperation(value = "跨工厂防错JOB") + public ResultBean doMesCorssOrganizeErrorProofing(String organizeCode, Integer pageSize) { + //统计数据 + try { + mesCorssOrganizeErrorProofingService.doMesCorssOrganizeErrorProofing(organizeCode, pageSize, "job"); + } catch (ImppBusiException imppException) { + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + return ResultBean.success("执行成功"); + } + @GetMapping("/reportWorkByPreDayJob") @ApiOperation(value = "job测试") public ResultBean queryReworkTaskByPager(String organizeCode) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesCorssOrganizeErrorProofingDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesCorssOrganizeErrorProofingDao.java new file mode 100644 index 0000000..f8ad8fd --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesCorssOrganizeErrorProofingDao.java @@ -0,0 +1,20 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao; + +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofing; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 跨工厂防错 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/4 18:03 + * @Modify: + **/ +public interface IMesCorssOrganizeErrorProofingDao { + + @ApiOperation("根据工厂物料,查询产品条码信息") + List findMesProduceSnByOrganizeCodeAndPart(MesCorssOrganizeErrorProofing mesCorssOrganizeErrorProofing, Integer pageSize); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesCorssOrganizeErrorProofingDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesCorssOrganizeErrorProofingDaoImpl.java new file mode 100644 index 0000000..8899536 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesCorssOrganizeErrorProofingDaoImpl.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesCorssOrganizeErrorProofingDao; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofing; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.Date; +import java.util.List; + +/** + * @Description : 跨工厂防错 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/4 17:59 + * @Modify: + **/ +@Service +public class MesCorssOrganizeErrorProofingDaoImpl implements IMesCorssOrganizeErrorProofingDao { + + @Autowired + private EntityManager entityManager; + + @Override + public List findMesProduceSnByOrganizeCodeAndPart(MesCorssOrganizeErrorProofing mesCorssOrganizeErrorProofing, Integer pageSize) { + String sql = "select srcSn from MesProduceSn srcSn left join MesProduceSn destSn on srcSn.serialNumber = destSn.serialNumber " + + " and destSn.organizeCode=:destOrganizeCode and destSn.isDeleted=:isDeleted and destSn.isValid = :isValid " + + " where srcSn.createDatetime >= :createDatetime and srcSn.organizeCode = :srcOrganizeCode " + + " and srcSn.isDeleted=:isDeleted and srcSn.isValid = :isValid and srcSn.partNo = :partNo " + + " and srcSn.snStatus in (10,20) and srcSn.qcStatus in (10,15) and destSn.serialNumber is null " + + " order by srcSn.createDatetime asc"; + Query query = entityManager.createQuery(sql, MesProduceSn.class); + query.setParameter("srcOrganizeCode", mesCorssOrganizeErrorProofing.getSrcOrganizeCode()); + query.setParameter("destOrganizeCode", mesCorssOrganizeErrorProofing.getOrganizeCode()); + query.setParameter("isValid", CommonEnumUtil.VALID); + query.setParameter("isDeleted", CommonEnumUtil.FALSE); + query.setParameter("partNo", mesCorssOrganizeErrorProofing.getPartNo()); + if (StringUtils.isEmpty(mesCorssOrganizeErrorProofing.getLastCreateDatetime())) { + query.setParameter("createDatetime", TimeTool.pareDateToString(new Date(0))); + } else { + query.setParameter("createDatetime", mesCorssOrganizeErrorProofing.getLastCreateDatetime()); + } + query.setFirstResult(0).setMaxResults(pageSize); + return query.getResultList(); + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCorssOrganizeErrorProofingJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCorssOrganizeErrorProofingJob.java new file mode 100644 index 0000000..44fa415 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesCorssOrganizeErrorProofingJob.java @@ -0,0 +1,57 @@ +package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; + + +import cn.estsh.i3plus.ext.mes.api.base.IMesCorssOrganizeErrorProofingService; +import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; +import cn.estsh.i3plus.platform.common.tool.JsonUtilTool; +import cn.estsh.i3plus.pojo.model.wms.WmsJobParamModel; +import cn.estsh.impp.framework.boot.init.ApplicationProperties; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.JobExecutionContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * @Description : 跨工厂防错JOB + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/5 11:07 + * @Modify: + **/ +@Slf4j +@DisallowConcurrentExecution +@Component +@ApiOperation("跨工厂防错JOB") +public class MesCorssOrganizeErrorProofingJob extends BaseMesScheduleJob { + + @Autowired + private IMesCorssOrganizeErrorProofingService mesCorssOrganizeErrorProofingService; + + public MesCorssOrganizeErrorProofingJob() { + super(MesCorssOrganizeErrorProofingJob.class, "跨工厂防错JOB"); + } + + @Override + public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { + List wmsJobParamModelList = JsonUtilTool.toList(this.getJobParam(), WmsJobParamModel.class); + if (!CollectionUtils.isEmpty(wmsJobParamModelList)) { + for (WmsJobParamModel wmsJobParamModel : wmsJobParamModelList) { + //统计数据 + try { + long startTime = System.currentTimeMillis(); + mesCorssOrganizeErrorProofingService.doMesCorssOrganizeErrorProofing(wmsJobParamModel.getOrganizeCode(), wmsJobParamModel.getPageSize(), "job"); + long endTime = System.currentTimeMillis(); + log.info("工厂{}跨工厂防错job --- END --- 耗时: {} ms", wmsJobParamModel.getOrganizeCode(), endTime - startTime); + } catch (Exception e) { + log.info("工厂{}跨工厂防错job 执行失败{}", wmsJobParamModel.getOrganizeCode(), e); + } + } + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCorssOrganizeErrorProofingServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCorssOrganizeErrorProofingServiceImpl.java new file mode 100644 index 0000000..c9caca2 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesCorssOrganizeErrorProofingServiceImpl.java @@ -0,0 +1,137 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.ext.mes.api.base.IMesCorssOrganizeErrorProofingService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesCorssOrganizeErrorProofingDao; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.mes.apiservice.util.DateUtil; +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.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofing; +import cn.estsh.i3plus.pojo.mes.bean.MesCorssOrganizeErrorProofingLog; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; +import cn.estsh.i3plus.pojo.mes.repository.IMesCorssOrganizeErrorProofingLogRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description : 跨工厂防错 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/7/4 16:50 + * @Modify: + **/ +@Service +@Slf4j +public class MesCorssOrganizeErrorProofingServiceImpl extends BaseMesService implements IMesCorssOrganizeErrorProofingService { + + @Autowired + private IMesCorssOrganizeErrorProofingDao mesCorssOrganizeErrorProofingDao; + + @Autowired + private MesProduceSnRepository mesProduceSnRepository; + + @Autowired + private IMesCorssOrganizeErrorProofingLogRepository mesCorssOrganizeErrorProofingLogRepository; + + @Override + protected void setPackQueryBean(MesCorssOrganizeErrorProofing bean, DdlPackBean packBean) { + DdlPreparedPack.getStringEqualPack(bean.getSrcOrganizeCode(), "srcOrganizeCode", packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartNo(), "partNo", packBean); + DdlPreparedPack.getStringLikerPack(bean.getPartName(), "partName", packBean); + } + + @Override + protected void onInsertBean(MesCorssOrganizeErrorProofing item) { + // 数据校验 + checkData(item); + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getSrcOrganizeCode(), "srcOrganizeCode", packBean); + DdlPreparedPack.getStringLikerPack(item.getPartNo(), "partNo", packBean); + if (baseRDao.isExitByHql(packBean)) { + MesException.throwMesBusiException("源工厂代码【%s】物料【%s】,数据已存在", item.getSrcOrganizeCode(), item.getPartNo()); + } + } + + @Override + protected void onUpdateBean(MesCorssOrganizeErrorProofing item) { + // 数据校验 + checkData(item); + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(item.getSrcOrganizeCode(), "srcOrganizeCode", packBean); + DdlPreparedPack.getStringLikerPack(item.getPartNo(), "partNo", packBean); + DdlPreparedPack.getNumNOEqualPack(item.getId(), "id", packBean); + if (baseRDao.isExitByHql(packBean)) { + MesException.throwMesBusiException("源工厂代码【%s】物料【%s】,数据已存在", item.getSrcOrganizeCode(), item.getPartNo()); + } + } + + @Override + public void doMesCorssOrganizeErrorProofing(String organizeCode, Integer pageSize, String userName) { + List corssOrganizeErrorProofingList = baseRDao.findByHqlWhere(DdlPackBean.getDdlPackBean(organizeCode)); + if (CollectionUtils.isEmpty(corssOrganizeErrorProofingList)) { + return; + } + //循环处理数据 + for (MesCorssOrganizeErrorProofing organizeErrorProofing : corssOrganizeErrorProofingList) { + //查询待同步的数据 + List produceSnList = mesCorssOrganizeErrorProofingDao.findMesProduceSnByOrganizeCodeAndPart(organizeErrorProofing, pageSize); + int transSize = 0; + if (!CollectionUtils.isEmpty(produceSnList)) { + //插入条码 + insertMesProduceSn(organizeErrorProofing, produceSnList); + //最后同步条码创建时间 + String createDatetime = produceSnList.get(produceSnList.size() - 1).getCreateDatetime(); + organizeErrorProofing.setLastCreateDatetime(TimeTool.pareDateToString(DateUtil.addMinutes(TimeTool.parseDate(createDatetime), -10))); + transSize = produceSnList.size(); + } + organizeErrorProofing.setLastExeTime(TimeTool.getNowTime(true)); + //更新数据 + baseRDao.update(organizeErrorProofing); + //保存记录 + saveLog(userName, organizeErrorProofing, transSize); + } + } + + private void checkData(MesCorssOrganizeErrorProofing item) { + ValidatorBean.checkNotNull(item.getSrcOrganizeCode(), "源工厂代码不能为空"); + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); + if (item.getSrcOrganizeCode().equalsIgnoreCase(item.getOrganizeCode())) { + MesException.throwMesBusiException("源工厂代码不能和目标工厂代码一样"); + } + } + + private void saveLog(String userName, MesCorssOrganizeErrorProofing organizeErrorProofing, int transSize) { + MesCorssOrganizeErrorProofingLog mesCorssOrganizeErrorProofingLog = new MesCorssOrganizeErrorProofingLog(); + BeanUtils.copyProperties(organizeErrorProofing, mesCorssOrganizeErrorProofingLog, "id"); + mesCorssOrganizeErrorProofingLog.setTransSize(transSize); + ConvertBean.serviceModelInitialize(mesCorssOrganizeErrorProofingLog, userName); + mesCorssOrganizeErrorProofingLogRepository.insert(mesCorssOrganizeErrorProofingLog); + } + + private void insertMesProduceSn(MesCorssOrganizeErrorProofing organizeErrorProofing, List produceSnList) { + //数据持久化 + for (MesProduceSn produceSn : produceSnList) { + MesProduceSn saveDbProduceSn = new MesProduceSn(); + BeanUtils.copyProperties(produceSn, saveDbProduceSn, "id"); + saveDbProduceSn.setOrganizeCode(organizeErrorProofing.getOrganizeCode()); + saveDbProduceSn.setSnType(MesExtEnumUtil.PRODUCE_SN_TYPE.CORSS_ORGANIZE.getValue()); + saveDbProduceSn.setDescription(produceSn.getOrganizeCode()); + saveDbProduceSn.setSystemSyncStatus(CommonEnumUtil.FALSE); + mesProduceSnRepository.insert(saveDbProduceSn); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java index 6d0fe3c..cc804f7 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartProdGroupService.java @@ -32,7 +32,7 @@ public class MesPartProdGroupService extends BaseMesService im public List findMesPartProdGroup(MesPartProdGroupDetail mesPartProdGroupDetail){ DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPartProdGroupDetail.getOrganizeCode()); - DdlPreparedPack.getStringLikerPack(mesPartProdGroupDetail.getPartNo(),"partNo",ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getPartNo(),"partNo",ddlPackBean); DdlPreparedPack.getStringEqualPack(mesPartProdGroupDetail.getWorkCenterCode(),"workCenterCode",ddlPackBean); List mesPartProdGroupDetails = mesPartProdGroupDetailRDao.findByHqlWhere(ddlPackBean); if(CollectionUtils.isEmpty(mesPartProdGroupDetails)){ diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java index 4ec4d9a..c4eb59e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java @@ -73,12 +73,20 @@ public class MesModuleExcelServiceImpl extends BaseMesService im if (moduleExcelManageDb == null) { MesException.throwMesBusiException("ID【%s】记录不存在", mesModuleExcel.getId()); } + //校验数据是否存在 + DdlPackBean packBean = MesExtHqlPack.getAllBaseData(mesModuleExcel.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(mesModuleExcel.getModuleCode(), MesExtConstWords.MODULE_CODE, packBean); + DdlPreparedPack.getNumNOEqualPack(mesModuleExcel.getId(), "id", packBean); + if(baseRDao.isExitByHql(packBean)){ + MesException.throwMesBusiException("模块代码【%s】数据已存在", mesModuleExcel.getModuleCode()); + } //改变文件时清除fileUrl if (StringUtils.isEmpty(mesModuleExcel.getFileUrl())) { MesFile mesFile = getMesFile(file, mesModuleExcel); moduleExcelManageDb.setFileId(mesFileRDao.insert(mesFile).getId()); } + moduleExcelManageDb.setModuleCode(mesModuleExcel.getModuleCode()); moduleExcelManageDb.setModuleName(mesModuleExcel.getModuleName()); ConvertBean.serviceModelUpdate(moduleExcelManageDb, mesModuleExcel.getModifyUser()); baseRDao.update(moduleExcelManageDb);