diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesProductionRecordReportExtDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesProductionRecordReportExtDao.java index 38f5001..0256419 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesProductionRecordReportExtDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesProductionRecordReportExtDao.java @@ -15,6 +15,6 @@ import java.util.List; **/ public interface IMesProductionRecordReportExtDao { - ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List reportStatusList); + ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List reportStatusList2Pr, List reportStatusList2Wo); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesProductionRecordReportExtDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesProductionRecordReportExtDao.java index 14603b8..1a3ac13 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesProductionRecordReportExtDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesProductionRecordReportExtDao.java @@ -34,7 +34,8 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo private EntityManager entityManager; @Override - public ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager, List reportStatusList) { + public ListPager queryProductionRecordUnionWorkOrderLogReport( + MesProductionRecordReportExtModel model, Pager pager, List reportStatusList2Pr, List reportStatusList2Wo) { List resultList = new ArrayList<>(); @@ -48,7 +49,7 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo StringBuilder endHql = new StringBuilder(); StringBuilder limitHql = new StringBuilder(); - if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr) && !CollectionUtils.isEmpty(reportStatusList2Wo)) { unionQueryHql.append("SELECT " + " o.workCenterCode, " + " o.workCellCode, " + @@ -70,7 +71,7 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo countQueryHql.append("SELECT count(1) FROM ( "); } - if (!CollectionUtils.isEmpty(reportStatusList)) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr)) { prQueryHql.append("" + " SELECT " + " a.work_center_code AS workCenterCode, " + @@ -92,7 +93,7 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo " AND a.is_valid = :isValid " + " AND a.complete_date_time >= :completeDateTimeStart " + " AND a.complete_date_time <= :completeDateTimeEnd "); - if (reportStatusList.size() == 1) { + if (reportStatusList2Pr.size() == 1) { prQueryHql.append(" AND a.report_status = :reportStatus "); } else { prQueryHql.append(" AND a.report_status in (:reportStatus) "); @@ -123,11 +124,11 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo } - if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr) && !CollectionUtils.isEmpty(reportStatusList2Wo)) { prQueryHql.append(" ) UNION ALL ( "); } - if (model.getIsQueryWo()) { + if (!CollectionUtils.isEmpty(reportStatusList2Wo)) { woQueryHql.append("" + " SELECT " + " b.work_center_code AS workCenterCode, " + @@ -137,7 +138,7 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo " b.shift_code AS shiftCode, " + " ' ' AS equipmentCode, " + " ' ' AS equipmentName, " + - " 30 AS reportStatus, " + + " b.type AS reportStatus, " + " 2 AS dataSource, " + " SUM( modify_qty ) AS statisticsQty " + " FROM "); @@ -148,8 +149,12 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo " AND b.is_deleted = :isDeleted " + " AND b.is_valid = :isValid " + " AND b.modify_date_time >= :completeDateTimeStart " + - " AND b.modify_date_time <= :completeDateTimeEnd " + - " AND b.type = :messageType "); + " AND b.modify_date_time <= :completeDateTimeEnd "); + if (reportStatusList2Wo.size() == 1) { + woQueryHql.append(" AND b.type = :messageType "); + } else { + woQueryHql.append(" AND b.type in (:messageType) "); + } if (!StringUtils.isEmpty(model.getPartNo())) { woQueryHql.append(" AND b.part_no = :partNo "); } @@ -168,7 +173,7 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo } - if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr) && !CollectionUtils.isEmpty(reportStatusList2Wo)) { endHql.append(" )) AS o "); } else { endHql.append(" ) AS o "); @@ -176,11 +181,11 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo limitHql.append(" LIMIT :startRow , :pageSize "); - if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr) && !CollectionUtils.isEmpty(reportStatusList2Wo)) { queryHql.append(unionQueryHql).append(prQueryHql).append(woQueryHql).append(endHql).append(limitHql); countHql.append(countQueryHql).append(prQueryHql).append(woQueryHql).append(endHql); } else { - if (!CollectionUtils.isEmpty(reportStatusList)) { + if (!CollectionUtils.isEmpty(reportStatusList2Pr)) { queryHql.append(prQueryHql).append(limitHql); countHql.append(countQueryHql).append(prQueryHql).append(endHql); } else { @@ -193,9 +198,9 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo // log.info("countHql: --- {}", countHql.toString()); Query dataQuery = entityManager.createNativeQuery(queryHql.toString()); - setQueryParams(dataQuery, model, reportStatusList, pager); + setQueryParams(dataQuery, model, reportStatusList2Pr, reportStatusList2Wo, pager); Query countQuery = entityManager.createNativeQuery(countHql.toString()); - setQueryParams(countQuery, model, reportStatusList, null); + setQueryParams(countQuery, model, reportStatusList2Pr, reportStatusList2Wo, null); Object o = countQuery.getSingleResult(); @@ -219,7 +224,9 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo if (result.getDataSource().compareTo(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()) == 0) { if (result.getReportStatus().compareTo(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()) == 0) result.setReportStatusName(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getDescription()); else result.setReportStatusName(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getDescription()); - } else result.setReportStatusName(MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT.getDescription()); + } else { + result.setReportStatusName(MesExtEnumUtil.WORK_ORDER_LOG_TYPE.valueOfDescription(result.getReportStatus())); + } } resultList.add(result); @@ -231,20 +238,26 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo } - private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List reportStatusList, Pager pager) { + private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List reportStatusList2Pr, List reportStatusList2Wo, Pager pager) { query.setParameter(MesExtConstWords.ORGANIZE_CODE, model.getOrganizeCode()); query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); query.setParameter(MesExtConstWords.IS_VALID, CommonEnumUtil.IS_VAILD.VAILD.getValue()); query.setParameter(MesExtConstWords.COMPLETE_DATE_TIME_START, model.getCompleteDateTimeStart()); query.setParameter(MesExtConstWords.COMPLETE_DATE_TIME_END, model.getCompleteDateTimeEnd()); - if (!CollectionUtils.isEmpty(reportStatusList)) { - if (reportStatusList.size() == 1) { - query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList.get(0)); + if (!CollectionUtils.isEmpty(reportStatusList2Pr)) { + if (reportStatusList2Pr.size() == 1) { + query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList2Pr.get(0)); + } else { + query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList2Pr); + } + } + if (!CollectionUtils.isEmpty(reportStatusList2Wo)) { + if (reportStatusList2Wo.size() == 1) { + query.setParameter(MesExtConstWords.MESSAGE_TYPE, reportStatusList2Wo.get(0)); } else { - query.setParameter(MesExtConstWords.REPORT_STATUS, reportStatusList); + query.setParameter(MesExtConstWords.MESSAGE_TYPE, reportStatusList2Wo); } } - if (model.getIsQueryWo()) query.setParameter(MesExtConstWords.MESSAGE_TYPE, MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT.getValue()); if (!StringUtils.isEmpty(model.getPartNo())) { query.setParameter(MesExtConstWords.PART_NO, model.getPartNo()); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesProductionRecordReportExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesProductionRecordReportExtService.java index 22f61e7..aa62783 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesProductionRecordReportExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesProductionRecordReportExtService.java @@ -36,11 +36,15 @@ public class MesProductionRecordReportExtService implements IMesProductionRecord public ListPager queryProductionRecordUnionWorkOrderLogReport(MesProductionRecordReportExtModel model, Pager pager) { List reportStatusList = !StringUtils.isEmpty(model.getReportStatusList()) - ? Arrays.asList(model.getReportStatusList().split(MesExtConstWords.COMMA)).stream().map(Integer::parseInt).collect(Collectors.toList()) - : Stream.of(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_10.getValue(), - MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_20.getValue(), MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue()).collect(Collectors.toList()); + ? Arrays.asList(model.getReportStatusList().split(MesExtConstWords.COMMA)).stream().map(Integer::parseInt).collect(Collectors.toList()) : + Stream.of(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_10.getValue(), + MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_20.getValue(), + MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue(), + MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_40.getValue() + ).collect(Collectors.toList()); List reportStatusList2Pr = null; + List reportStatusList2Wo = null; if (reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_10.getValue())) { reportStatusList2Pr = new ArrayList<>(); reportStatusList2Pr.add(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_10.getValue()); @@ -51,10 +55,13 @@ public class MesProductionRecordReportExtService implements IMesProductionRecord reportStatusList2Pr.add(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()); } - if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode()) && - reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) model.setIsQueryWo(true); + if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode())) { + reportStatusList2Wo = new ArrayList<>(); + if (reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) reportStatusList2Wo.add(MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT.getValue()); + if (reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_40.getValue())) reportStatusList2Wo.add(MesExtEnumUtil.WORK_ORDER_LOG_TYPE.REPORT_ADJUST.getValue()); + } - ListPager listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr); + ListPager listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr, reportStatusList2Wo); return listPager; diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java index 5a2a8fc..93262bb 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesProductionRecordReportExtModel.java @@ -59,9 +59,6 @@ public class MesProductionRecordReportExtModel implements Serializable { @ApiParam("汇报状态名称") private String reportStatusName; - @ApiParam("是否查询工单日志表") - private Boolean isQueryWo = false; - public MesProductionRecordReportExtModel() {} public MesProductionRecordReportExtModel(Object workCenterCode, Object workCellCode, Object partNo, Object partName, Object shiftCode, Object equipmentCode, Object equipmentName, Object reportStatus, Object dataSource, Object qty) {