From da8539a0a7959d1a067162712ca0e7ff01a85bb1 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 18 Mar 2024 11:34:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=98=89=E5=85=B4=20mes=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=20=20=E8=8A=82=E6=8B=8D?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=85=A8=E5=B7=A5=E4=BD=8D=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/api/base/IProdOrgExtService.java | 9 +++++++++ .../controller/base/ProdOrgExtController.java | 14 ++++++++++++++ .../serviceimpl/base/ProdOrgExtService.java | 12 ++++++++++++ .../serviceimpl/base/WorkOrderExtService.java | 11 ++++++++--- .../busi/jx/SxWorkCellTaktCollectRecordService.java | 20 ++++++++++++++------ .../i3plus/ext/mes/pojo/model/WorkOrderQueryDto.java | 7 +++++++ .../ext/mes/pojo/model/jx/JxCellTaktReportModel.java | 2 +- 7 files changed, 65 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IProdOrgExtService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IProdOrgExtService.java index 6438de8..f3f8571 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IProdOrgExtService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IProdOrgExtService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pojo.bean.MesWorkCenterExt; import cn.estsh.i3plus.ext.mes.pojo.model.SxProdOrgModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesArea; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; import io.swagger.annotations.ApiOperation; @@ -126,4 +127,12 @@ public interface IProdOrgExtService { */ @ApiOperation(value = "获取事业别最新人件费信息", notes = "获取事业别最新人件费信息") Map getCareerPersonnelCostMap(String organizeCode); + + /** + * 查询区域集合 + * @param organizeCode + * @return + */ + @ApiOperation(value = "查询区域集合", notes = "查询区域集合") + List queryAreaList(String organizeCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/ProdOrgExtController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/ProdOrgExtController.java index 7679dbf..71e7a1f 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/ProdOrgExtController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/ProdOrgExtController.java @@ -142,4 +142,18 @@ public class ProdOrgExtController extends MesBaseController { } } + @GetMapping(value = "/area-ext/query-list") + @ApiOperation(value = "查询区域集合") + public ResultBean queryAreaList() { + try { + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(prodOrgExtService.queryAreaList(AuthUtil.getOrganize().getOrganizeCode())); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } 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/ProdOrgExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/ProdOrgExtService.java index 91c7436..92d5776 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/ProdOrgExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/ProdOrgExtService.java @@ -17,8 +17,10 @@ import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesArea; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import cn.estsh.i3plus.pojo.mes.bean.MesWorkCenter; +import cn.estsh.i3plus.pojo.mes.repository.MesAreaRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCellRepository; import cn.estsh.i3plus.pojo.mes.repository.MesWorkCenterRepository; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -46,6 +48,9 @@ import java.util.stream.Collectors; public class ProdOrgExtService implements IProdOrgExtService { @Autowired + private MesAreaRepository areaRepository; + + @Autowired private MesAreaExtRepository areaExtRepository; @Autowired @@ -259,6 +264,13 @@ public class ProdOrgExtService implements IProdOrgExtService { return careerPersonnelCostMap; } + @Override + public List queryAreaList(String organizeCode) { + return areaRepository.findByProperty( + new String[]{MesExtConstWords.ORGANIZE_CODE, MesExtConstWords.IS_DELETED, MesExtConstWords.IS_VALID}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + } + private String getCareerPersonnelCost(List workCenterExtList) { workCenterExtList = workCenterExtList.stream().filter(o -> null != o).sorted(Comparator.comparing(MesWorkCenterExt::getModifyDatetime).reversed()).collect(Collectors.toList()); return workCenterExtList.get(0).getPersonnelCost(); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/WorkOrderExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/WorkOrderExtService.java index b3a734f..e2297e5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/WorkOrderExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/WorkOrderExtService.java @@ -1040,13 +1040,18 @@ public class WorkOrderExtService implements IWorkOrderExtService { String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); if (!ObjectUtils.isEmpty(workOrderQueryDto)) { + DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getAreaCode(), MesExtConstWords.AREA_CODE, ddlPackBean); DdlPreparedPack.getStringEqualPack(workOrderQueryDto.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getOrderNo(), MesExtConstWords.ORDER_NO, ddlPackBean); DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getPartNo(), MesExtConstWords.PART_NO, ddlPackBean); - DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), "createUser", ddlPackBean); + DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getCreateUser(), MesExtConstWords.CREATE_USER, ddlPackBean); DdlPreparedPack.getStringLikerPack(workOrderQueryDto.getErpWarehouse(), MesExtConstWords.ERP_WARE_HOUSE, ddlPackBean); - DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean); - DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), "workOrderType", ddlPackBean); + if (!StringUtils.isEmpty(workOrderQueryDto.getWorkOrderStatus())) + DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderStatus(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean); + else if (StringUtils.isEmpty(workOrderQueryDto.getIsHasDel()) || !workOrderQueryDto.getIsHasDel().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())) + DdlPreparedPack.getNumNOEqualPack(MesExtEnumUtil.WORK_ORDER_STATUS.REMOVE.getValue(), MesExtConstWords.WORK_ORDER_STATUS, ddlPackBean); + + DdlPreparedPack.getNumEqualPack(workOrderQueryDto.getWorkOrderType(), MesExtConstWords.WORK_ORDER_TYPE, ddlPackBean); DdlPreparedPack.getIsNotNull(MesExtConstWords.WORK_CENTER_CODE, ddlPackBean); if (!StringUtils.isEmpty(workOrderQueryDto.getStartTimeStart()) || !StringUtils.isEmpty(workOrderQueryDto.getStartTimeEnd())) { DdlPreparedPack.timeBuilder(workOrderQueryDto.getStartTimeStart(), workOrderQueryDto.getStartTimeEnd(), MesExtConstWords.START_TIME, ddlPackBean, true); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/SxWorkCellTaktCollectRecordService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/SxWorkCellTaktCollectRecordService.java index a638c75..3cc189c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/SxWorkCellTaktCollectRecordService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/SxWorkCellTaktCollectRecordService.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.busi.jx; +import cn.estsh.i3plus.ext.mes.api.base.IProdOrgExtService; import cn.estsh.i3plus.ext.mes.api.busi.jx.ISxWorkCellTaktCollectRecordService; import cn.estsh.i3plus.ext.mes.pojo.bean.SxWorkCellTaktCollectRecord; import cn.estsh.i3plus.ext.mes.pojo.model.jx.JxCellTaktReportModel; @@ -16,6 +17,7 @@ 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.tool.HqlPack; +import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -36,6 +38,9 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec @Autowired private SxWorkCellTaktCollectRecordRepository workCellTaktCollectRecordRepository; + @Autowired + private IProdOrgExtService prodOrgExtService; + @Override public ListPager queryWorkCellTaktCollectRecordListByPager(SxWorkCellTaktCollectRecord workCellTaktCollectRecord, Pager pager) { if (workCellTaktCollectRecord == null) { @@ -102,12 +107,14 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec Map> recordDbMap2Cell = CollectionUtils.isEmpty(recordDbList) ? null : recordDbList.stream().filter(o -> null != o).collect(Collectors.groupingBy(SxWorkCellTaktCollectRecord::getWorkCellCode)); DoubleSummaryStatistics statistics; if (!CollectionUtils.isEmpty(recordDbMap2Cell)) { - recordDbMap2Cell = recordDbMap2Cell.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new)); - for (Map.Entry> entry : recordDbMap2Cell.entrySet()) { - if (null == entry) continue; - List recordDbList2Cell = entry.getValue(); + List workCellList = prodOrgExtService.getWorkCellListByCenter(model.getOrganizeCode(), model.getWorkCenterCode()); + workCellList = workCellList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getSeq()))).sorted(Comparator.comparing(MesWorkCell::getSeq).thenComparing(MesWorkCell::getWorkCellCode)).collect(Collectors.toList()); + for (MesWorkCell workCell : workCellList) { + List recordDbList2Cell = recordDbMap2Cell.get(workCell); + if (CollectionUtils.isEmpty(recordDbMap2Cell)) continue; + statistics = recordDbList2Cell.stream().filter(o -> null != o).mapToDouble(o -> new Double(o.getWorkTakt())).summaryStatistics(); - JxCellTaktReportModel result = new JxCellTaktReportModel(model.getOrganizeCode(), model.getWorkCenterCode(), entry.getKey()); + JxCellTaktReportModel result = new JxCellTaktReportModel(model.getOrganizeCode(), model.getWorkCenterCode(), workCell.getWorkCellCode()); result.setCreateDatetimeStart(model.getCreateDatetimeStart()); result.setCreateDatetimeEnd(model.getCreateDatetimeEnd()); result.setWorkTakt(statistics.getAverage()); @@ -115,8 +122,9 @@ public class SxWorkCellTaktCollectRecordService implements ISxWorkCellTaktCollec result.setWorkTaktMin(statistics.getMin()); resultList.add(result); } + } - statistics = CollectionUtils.isEmpty(resultList) ? null : resultList.stream().filter(o -> null != o).mapToDouble(JxCellTaktReportModel::getWorkTaktMin).summaryStatistics(); + statistics = CollectionUtils.isEmpty(resultList) ? null : resultList.stream().filter(o -> null != o).mapToDouble(JxCellTaktReportModel::getWorkTakt).summaryStatistics(); pager = PagerHelper.getPager(pager, resultList.size()); resultList = CollectionUtils.isEmpty(resultList) ? resultList : resultList.subList((pager.getCurrentPage() - 1) * pager.getPageSize(), (pager.getCurrentPage() * pager.getPageSize()) > resultList.size() ? resultList.size() : pager.getCurrentPage() * pager.getPageSize()); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderQueryDto.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderQueryDto.java index 7c6e5cb..44215d9 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderQueryDto.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/WorkOrderQueryDto.java @@ -23,6 +23,9 @@ public class WorkOrderQueryDto { @ApiParam("工单状态") private Integer workOrderStatus; + @ApiParam("区域代码") + private String areaCode; + @ApiParam("生产线代码") private String workCenterCode; @@ -93,4 +96,8 @@ public class WorkOrderQueryDto { @ApiParam(value = "是否有解绑数量") public Integer isExistUnbindSn; + + @ApiParam(value = "是否包含删除的工单") + public String isHasDel; + } diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/JxCellTaktReportModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/JxCellTaktReportModel.java index fe85e7f..04e1cbe 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/JxCellTaktReportModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/jx/JxCellTaktReportModel.java @@ -20,7 +20,7 @@ public class JxCellTaktReportModel implements Serializable { @ApiParam("组织代码") public String organizeCode; - @ApiParam("工位维度") + @ApiParam("工位维度: 1=单 2=全") public Integer dimension; @ApiParam("查询时间")