From 6f23a3fbe06f10768191a1c2bb823462ff7eafaa Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Sat, 12 Oct 2024 10:33:01 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=82=B9=E6=A3=80?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/IMesEquipmentSpotCheckDetailService.java | 6 ++- .../base/MesEquipmentCheckDetailController.java | 49 ++++++++++++++++++++++ .../base/MesEquipmentSpotCheckDetailService.java | 30 +++++++++---- 3 files changed, 76 insertions(+), 9 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java index ad593e1..4be372e 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java @@ -2,6 +2,9 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProdParamCfg; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description : 设备加工参数维护 @@ -12,5 +15,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; **/ public interface IMesEquipmentSpotCheckDetailService extends IBaseMesService{ - + @ApiOperation(value = "校验并返回导入数据", notes = "校验并返回导入数据") + List validateReturnImport(List bean, String equipmentCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java index b547f79..029c6f2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java @@ -1,9 +1,25 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.RedisCacheTool; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; /** * 设备点检明细 @@ -11,4 +27,37 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEquipmentCheckDetail") public class MesEquipmentCheckDetailController extends BaseMesController{ + + @Autowired + private IMesEquipmentSpotCheckDetailService mesEquipmentSpotCheckDetailService; + + @PostMapping(value = "/data/import") + @ApiOperation(value = "导入数据校验返回") + public ResultBean importExtExcel(@RequestParam("file") MultipartFile file, @RequestParam("equipmentCode") String equipmentCode) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + List returnImport = mesEquipmentSpotCheckDetailService.validateReturnImport(beanList, equipmentCode); + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + /* String userName = "zxw"; + String organizeCode = "CK01";*/ + for (MesEquipmentSpotCheckDetail bean : returnImport) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + } + baseService.insertBatch(returnImport); + + // 导入后 + afterImport(returnImport); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java index 6e68a4a..cfb0326 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -16,15 +17,13 @@ import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.beanutils.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @@ -105,10 +104,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService validateReturnImport(List beanList) { + public List validateReturnImport(List beanList, String equipmentCode) { if (CollectionUtils.isEmpty(beanList)) return beanList; //设备变量MAP - Map variableMap = getEquipmentVariableMap(beanList); + Map variableMap = getEquipmentVariableMap(beanList, equipmentCode); for (MesEquipmentSpotCheckDetail item : beanList) { // 数据校验 if(StringUtil.isEmpty(item.getPid())){ @@ -154,8 +153,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService getEquipmentVariableMap(List beanList) { + private Map getEquipmentVariableMap(List beanList, String equipmentCode) { String organizeCode = AuthUtilExt.getOrganizeCode(); + //String organizeCode = "CK01"; + List addressList = new ArrayList<>(); //查询设备变量信息 List realAddress = beanList.stream().map(MesEquipmentSpotCheckDetail::getRealValueAddress).filter(t-> !StringUtils.isEmpty(t)).distinct().collect(Collectors.toList()); @@ -163,6 +164,19 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService beanMap = new HashMap(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(addressList, "tagName", packBean); + DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", packBean); + List baseDataList = mesEquipmentVariableRepository.findByHqlWhere(packBean); + + if (!CollectionUtils.isEmpty(baseDataList)) { + beanMap = baseDataList.stream().collect(Collectors.toMap(mesEquipmentVariable -> mesEquipmentVariable.getTagName(), o-> o)); + } else { + MesException.throwMesBusiException(addressList + "信息不存在"); + } + return beanMap; } } From 2c1936b5ea5aa1fda8b7970055e26b1b44512d13 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Sat, 12 Oct 2024 14:15:15 +0800 Subject: [PATCH 2/4] =?UTF-8?q?Bom=E5=AF=BC=E5=87=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java index ff2d58e..d530985 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesBomService.java @@ -113,7 +113,7 @@ public class MesBomService extends BaseMesService implements IMesBomServ organize.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); organize.setName(AuthUtil.getOrganize().getName()); - + //organize.setName("zxw"); DdlPackBean packBean = DdlPackBean.getDdlPackBean(bom.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(bom.getPartNo(), "partNo", packBean); DdlPreparedPack.getStringEqualPack(bom.getBomVersion(), "bomVersion", packBean); From d96f360a0fc6b0608e0399510ddca9822866c7a4 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 16 Oct 2024 17:41:57 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=81=9C=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/base/IMesDowntimeRecordService.java | 5 + .../apiservice/controller/busi/TestController.java | 11 ++ .../controller/report/MesBusiReportController.java | 23 +++ .../schedulejob/MesDowntimeRecordJob.java | 6 +- .../base/MesDowntimeRecordServiceImpl.java | 210 +++++++++++++++++++-- .../base/MesPartTransferDetailService.java | 2 +- 6 files changed, 242 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesDowntimeRecordService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesDowntimeRecordService.java index ee1daaa..4dd4dd8 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesDowntimeRecordService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesDowntimeRecordService.java @@ -1,8 +1,11 @@ package cn.estsh.i3plus.ext.mes.api.base; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord; import cn.estsh.i3plus.pojo.mes.bean.MesEquipment; +import cn.estsh.i3plus.pojo.mes.model.report.MesDowntimeRecordResModel; import java.util.List; @@ -20,4 +23,6 @@ public interface IMesDowntimeRecordService extends IBaseMesService mesEquipmentList); + + ListPager queryRecordList(MesDowntimeRecord downtimeRecord, Pager pager); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java index 1dd91c9..52024b2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/TestController.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.busi; import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesAccountJob; +import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesDowntimeRecordJob; import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesGenerateAccountJob; import cn.estsh.i3plus.ext.mes.apiservice.schedulejob.MesWorkOrderUpdateQtyJob; import io.swagger.annotations.ApiOperation; @@ -23,6 +24,9 @@ public class TestController { @Autowired private MesGenerateAccountJob mesGenerateAccountJob; + @Autowired + private MesDowntimeRecordJob mesDowntimeRecordJob; + @GetMapping("/reportOrder") @ApiOperation(value = "报工") public void reportOrder() { @@ -40,4 +44,11 @@ public class TestController { public void generateMesAccount() { mesGenerateAccountJob.executeMesJob(null, null); } + + + @GetMapping("/mesDowntimeRecordJob") + @ApiOperation(value = "downtime") + public void mesDowntimeRecordJob() { + mesDowntimeRecordJob.executeMesJob(null, null); + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java index e71a2bb..ff543c0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesBusiReportController.java @@ -1,13 +1,17 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.report; +import cn.estsh.i3plus.ext.mes.api.base.IMesDowntimeRecordService; import cn.estsh.i3plus.ext.mes.api.base.IMesProductionRecordService; import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesDowntimeRecord; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesProductionRecord; import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; +import cn.estsh.i3plus.pojo.mes.model.report.MesDowntimeRecordResModel; import cn.estsh.i3plus.pojo.mes.model.report.MesProductAccountModel; import cn.estsh.i3plus.pojo.mes.model.report.MesProductAccountResModel; import cn.estsh.impp.framework.base.controller.MesBaseController; @@ -44,6 +48,9 @@ public class MesBusiReportController extends MesBaseController { @Autowired private IMesProductionRecordService mesProductionRecordService; + @Autowired + private IMesDowntimeRecordService mesDowntimeRecordService; + @ApiOperation(value = "查询追溯报表", notes = "查询追溯报表") @GetMapping("/traceability/find") public ResultBean findTraceabilityReport(MesProduceSn mesProduceSn) { @@ -125,4 +132,20 @@ public class MesBusiReportController extends MesBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @ApiOperation(value = "设备停机记录报表", notes = "设备停机记录报表") + @GetMapping("/equipment/downtime/record") + public ResultBean downtimeRecord(MesDowntimeRecord mesDowntimeRecord, Pager pager) { + try { + + ListPager recordList = mesDowntimeRecordService.queryRecordList(mesDowntimeRecord, pager); + + return ResultBean.success("查询成功").setListPager(recordList); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } catch (Exception e) { + e.printStackTrace(); + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDowntimeRecordJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDowntimeRecordJob.java index b502188..813e71d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDowntimeRecordJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesDowntimeRecordJob.java @@ -21,6 +21,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; @@ -34,6 +35,7 @@ import java.util.List; **/ @DisallowConcurrentExecution @ApiOperation("MES设备生产停机记录") +@Service public class MesDowntimeRecordJob extends BaseMesScheduleJob { public static final Logger LOGGER = LoggerFactory.getLogger(MesDowntimeRecordJob.class); @@ -60,9 +62,9 @@ public class MesDowntimeRecordJob extends BaseMesScheduleJob { public void executeMesJob(JobExecutionContext context, ApplicationProperties applicationProperties) { try { String jobParam = this.getJobParam(); - + //String jobParam = "CK01"; if (StringUtils.isBlank(jobParam)) { - throw new IllegalArgumentException("job参数为空,请检查参数"); + jobParam = "CK01"; } String[] organizeCodeList = jobParam.split(","); LOGGER.info("MES设备生产停机记录 -----start"); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java index 6d209d0..1cee1fc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java @@ -2,31 +2,37 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesConfigService; import cn.estsh.i3plus.ext.mes.api.base.IMesDowntimeRecordService; +import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanUtil; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.util.MesConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.*; -import cn.estsh.i3plus.pojo.mes.repository.MesDowntimeRecordRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesProductionRecordRepository; -import cn.estsh.i3plus.pojo.mes.repository.MesWcEquipmentRepository; +import cn.estsh.i3plus.pojo.mes.model.report.MesDowntimeRecordResModel; +import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import cn.hutool.core.stream.CollectorUtil; +import com.codepoetics.protonpack.collectors.CollectorUtils; +import com.xxl.job.core.util.DateUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.map.HashedMap; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** @@ -46,10 +52,26 @@ public class MesDowntimeRecordServiceImpl extends BaseMesService mesDowntimeRecordDaoList = mesDowntimeRecordRDao.findByHqlTopWhere(ddlPackBeanDowntime, 1); + if (CollectionUtils.isEmpty(mesDowntimeRecordDaoList)) { MesWcEquipment wcEquipmentDbList = wcEquipmentRepository.getByProperty( - new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID,""}, + new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID,"equipmentCode"}, new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), mesEquipment.getEquipmentCode()}); //新增设备停机记录 @@ -134,6 +158,8 @@ public class MesDowntimeRecordServiceImpl extends BaseMesService queryRecordList(MesDowntimeRecord downtimeRecord, Pager pager) { + ListPager pagerList = new ListPager(); + List list = new ArrayList<>(); + + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + if (!StringUtils.isEmpty(downtimeRecord.getEquipmentCode())) { + DdlPreparedPack.getStringEqualPack(downtimeRecord.getEquipmentCode(), "equipmentCode", ddlPackBean); + } + if (!StringUtils.isEmpty(downtimeRecord.getWorkCenterCode())) { + DdlPreparedPack.getStringEqualPack(downtimeRecord.getWorkCenterCode(), "workCenterCode", ddlPackBean); + } + if (!StringUtils.isEmpty(downtimeRecord.getWorkCellCode())) { + DdlPreparedPack.getStringEqualPack(downtimeRecord.getWorkCellCode(), "workCellCode", ddlPackBean); + } + DdlPreparedPack.getStringEqualPack(downtimeRecord.getReasonTypeCode(),"reasonTypeCode", ddlPackBean); + if (!StringUtils.isEmpty(downtimeRecord.getCreateDatetime())) { + DdlPreparedPack.getStringBiggerPack(downtimeRecord.getCreateDatetime(), "createDatetime", ddlPackBean); + } + if (!StringUtils.isEmpty(downtimeRecord.getModifyDatetime())) { + DdlPreparedPack.getStringBiggerPack(downtimeRecord.getModifyDatetime(), "modifyDatetime", ddlPackBean); + } + + List recordList = mesDowntimeRecordRDao.findByHqlWherePage(ddlPackBean, pager); + if (!CollectionUtils.isEmpty(recordList)) { + List reasonCodeList = recordList.stream().map(MesDowntimeRecord::getReasonCode).distinct().collect(Collectors.toList()); + List reasonTypeCodeList = recordList.stream().map(MesDowntimeRecord::getReasonTypeCode).distinct().collect(Collectors.toList()); + List equipmentInfoList = recordList.stream().map(MesDowntimeRecord::getEquipmentCode).distinct().collect(Collectors.toList()); + List workCellList = recordList.stream().map(MesDowntimeRecord::getWorkCellCode).distinct().collect(Collectors.toList()); + List workCenterList = recordList.stream().map(MesDowntimeRecord::getWorkCenterCode).distinct().collect(Collectors.toList()); + + + Map> reasonMap = getReason(reasonCodeList); + Map equipmentMap = getEquipment(equipmentInfoList); + Map workCenterMap = getWorkCenter(workCenterList); + Map workCellMap = getWorkCell(workCellList); + Map> reasonTypeMap = getReasonType(reasonTypeCodeList); + + + recordList.stream().forEach(record -> { + MesDowntimeRecordResModel mesDowntimeRecordResModel = new MesDowntimeRecordResModel(); + BeanUtils.copyProperties(record, mesDowntimeRecordResModel); + if (!StringUtils.isEmpty(record.getReasonCode())) { + if (reasonMap.get(record.getReasonCode()) != null) { + mesDowntimeRecordResModel.setReasonName(reasonMap.get(record.getReasonCode()).get(0).getReasonName()); + } + } + if (!StringUtils.isEmpty(record.getReasonTypeCode())) { + if (reasonTypeMap.get(record.getReasonTypeCode()) != null) { + mesDowntimeRecordResModel.setReasonTypeName(reasonTypeMap.get(record.getReasonTypeCode()).get(0).getReasonTypeName()); + } + } + if (!StringUtils.isEmpty(record.getEquipmentCode())) { + mesDowntimeRecordResModel.setEquipmentName(equipmentMap.get(record.getEquipmentCode()).getEquipmentName()); + } + if (!StringUtils.isEmpty(record.getWorkCenterCode())) { + mesDowntimeRecordResModel.setWorkCenterName(workCenterMap.get(record.getWorkCenterCode()).getWorkCenterName()); + } + if (!StringUtils.isEmpty(record.getWorkCellCode())) { + mesDowntimeRecordResModel.setWorkCellName(workCellMap.get(record.getWorkCellCode()).getWorkCellName()); + } + // 如果停机结束时间还在,则需要补充动态停机时间,否则需要有停机时间 + if (StringUtils.isEmpty(mesDowntimeRecordResModel.getModifyDatetime())) { + Date startTime = DateUtil.parseDateTime(mesDowntimeRecordResModel.getCreateDatetime()); + Date currentTime = new Date(); + Long time = (currentTime.getTime() - startTime.getTime())/1000; + mesDowntimeRecordResModel.setCurrentDownTime(time.intValue()); + } else { + Date startTime = DateUtil.parseDateTime(mesDowntimeRecordResModel.getCreateDatetime()); + Date endTime = DateUtil.parseDateTime(mesDowntimeRecordResModel.getModifyDatetime()); + Long time = (endTime.getTime() - startTime.getTime())/1000; + mesDowntimeRecordResModel.setDownTime(time.intValue()); + } + list.add(mesDowntimeRecordResModel); + }); + } + + pagerList.setObjectList(list); + pagerList.setObjectPager(pager); + return pagerList; + } + + private Map> getReason(List reasonCodeList) { + Map> reasonMap = new HashedMap(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(reasonCodeList, "reasonCode", ddlPackBean); + + List downtimeReasons = downtimeReasonRepository.findByHqlWhere(ddlPackBean); + if (!CollectionUtils.isEmpty(downtimeReasons)) { + reasonMap = downtimeReasons.stream().distinct().collect(Collectors.groupingBy(MesDowntimeReason::getReasonCode)); + } + return reasonMap; + + } + + private Map> getReasonType(List reasonTypeCodeList) { + Map> reasonMap = new HashedMap(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(reasonTypeCodeList, "reasonTypeCode", ddlPackBean); + + List downtimeReasonTypes = downtimeReasonTypeRepository.findByHqlWhere(ddlPackBean); + if (!CollectionUtils.isEmpty(downtimeReasonTypes)) { + reasonMap = downtimeReasonTypes.stream().collect(Collectors.groupingBy(MesDowntimeReasonType::getReasonTypeCode)); + } + return reasonMap; + + } + + private Map getEquipment(List equipmentList) { + Map equipmentMap = new HashedMap(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(equipmentList, "equipmentCode", ddlPackBean); + + List equipments = equipmentRepository.findByHqlWhere(ddlPackBean); + if (!CollectionUtils.isEmpty(equipments)) { + equipmentMap = equipments.stream().collect(Collectors.toMap(MesEquipment::getEquipmentCode, m -> m)); + } + return equipmentMap; + + } + + private Map getWorkCenter(List workCenterList) { + Map workCenterMap = new HashedMap(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(workCenterList, "workCenterCode", ddlPackBean); + + List workCenters = workCenterRepository.findByHqlWhere(ddlPackBean); + if (!CollectionUtils.isEmpty(workCenters)) { + workCenterMap = workCenters.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, m -> m)); + } + return workCenterMap; + } + + private Map getWorkCell(List equipmentList) { + Map workCellMap = new HashedMap(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getInPackList(equipmentList, "workCellCode", ddlPackBean); + List workCells = workCellRepository.findByHqlWhere(ddlPackBean); + if (!CollectionUtils.isEmpty(workCells)) { + workCellMap = workCells.stream().collect(Collectors.toMap(MesWorkCell::getWorkCellCode, m -> m)); } + return workCellMap; } /** diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java index 5e6e50c..457af13 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java @@ -30,7 +30,7 @@ public class MesPartTransferDetailService extends BaseMesService Date: Fri, 18 Oct 2024 11:40:49 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=81=9C=E6=9C=BA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95job=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/schedulejob/MesAccountJob.java | 2 +- .../serviceimpl/base/MesDowntimeRecordServiceImpl.java | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesAccountJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesAccountJob.java index 575e394..8f83a92 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesAccountJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesAccountJob.java @@ -145,7 +145,7 @@ public class MesAccountJob extends BaseMesScheduleJob { DdlPreparedPack.getStringEqualPack(detailLogs.get(0).getEquipVariableValue(), "mouldNo", mouldMultipackBeanTemp); List mouldMultiCavities = mesMouldMultiCavityRepository.findByHqlWhere(mouldMultipackBeanTemp); if (CollectionUtils.isEmpty(mouldMultiCavities)) { - continue; + partNo = ""; } else { List partList = mouldMultiCavities.stream().map(MesMouldMultiCavity::getPartNo).distinct().collect(Collectors.toList()); partNo = String.join(",", partList); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java index 1cee1fc..ad9852d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesDowntimeRecordServiceImpl.java @@ -11,6 +11,7 @@ import cn.estsh.i3plus.platform.common.util.MesConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; @@ -173,6 +174,10 @@ public class MesDowntimeRecordServiceImpl extends BaseMesService recordList = mesDowntimeRecordRDao.findByHqlWherePage(ddlPackBean, pager); if (!CollectionUtils.isEmpty(recordList)) { List reasonCodeList = recordList.stream().map(MesDowntimeRecord::getReasonCode).distinct().collect(Collectors.toList()); @@ -261,12 +268,12 @@ public class MesDowntimeRecordServiceImpl extends BaseMesService