From 79dc62a6870a1ff258fd521a3b1c3d656b6b4054 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 18 Dec 2024 01:24:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E9=87=8F=E7=BB=9F=E8=AE=A1=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/MesProductionRecordReportExtDao.java | 252 +++++++++++---------- .../base/MesProductionRecordReportExtService.java | 2 - 2 files changed, 133 insertions(+), 121 deletions(-) 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 47b6060..14603b8 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 @@ -8,6 +8,7 @@ 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.mes.util.MesExtEnumUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -25,6 +26,7 @@ import java.util.List; * @CreateDate : 2024/9/29 10:21 * @Modify: **/ +@Slf4j @Service public class MesProductionRecordReportExtDao implements IMesProductionRecordReportExtDao { @@ -42,187 +44,194 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo StringBuilder unionQueryHql = new StringBuilder(); StringBuilder countQueryHql = new StringBuilder(); StringBuilder prQueryHql = new StringBuilder(); - StringBuilder prCommonQueryHql = new StringBuilder(); StringBuilder woQueryHql = new StringBuilder(); - StringBuilder woCommonQueryHql = new StringBuilder(); + StringBuilder endHql = new StringBuilder(); + StringBuilder limitHql = new StringBuilder(); if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { - unionQueryHql.append("SELECT\n" + - "\to.workCenterCode,\n" + - "\to.workCellCode,\n" + - "\to.partNo,\n" + - "\to.partName,\n" + - "\to.shiftCode,\n" + - "\to.equipmentCode,\n" + - "\to.equipmentName,\n" + - "\to.reportStatus,\n" + - "\to.dataSource,\n" + - "\to.statisticsQty \n" + - "FROM\n" + - "\t(\n" + - "\t\t(\n"); - - countQueryHql.append("SELECT count(1)\n" + - "FROM\n" + - "\t(\n" + - "\t\t(\n"); + unionQueryHql.append("SELECT " + + " o.workCenterCode, " + + " o.workCellCode, " + + " o.partNo, " + + " o.partName, " + + " o.shiftCode, " + + " o.equipmentCode, " + + " o.equipmentName, " + + " o.reportStatus, " + + " o.dataSource, " + + " o.statisticsQty " + + " FROM " + + " (( "); + + countQueryHql.append("SELECT count(1) " + + " FROM " + + " (( "); } else { - countQueryHql.append("SELECT count(1) FROM\n"); + countQueryHql.append("SELECT count(1) FROM ( "); } if (!CollectionUtils.isEmpty(reportStatusList)) { - prQueryHql.append("\t\tSELECT\n" + - "\t\t\ta.work_center_code AS workCenterCode,\n" + - "\t\t\ta.work_cell_code AS workCellCode,\n" + - "\t\t\ta.part_no AS partNo,\n" + - "\t\t\ta.part_name AS partName,\n" + - "\t\t\ta.shift_code AS shiftCode,\n" + - "\t\t\ta.equipment_code AS equipmentCode,\n" + - "\t\t\ta.equipment_name AS equipmentName,\n" + - "\t\t\ta.report_status AS reportStatus,\n" + - "\t\t\t1 AS dataSource,\n" + - "\t\t\tSUM( qty ) AS statisticsQty \n" + - "\t\tFROM\n"); - - prCommonQueryHql.append("\t\t\tmes_production_record a \n" + - "\t\tWHERE\n" + - "\t\t\ta.organize_code = :organizeCode \n" + - "\t\t\tAND a.is_deleted = :isDeleted \n" + - "\t\t\tAND a.is_valid = :isValid \n" + - "\t\t\tAND a.complete_date_time >= :completeDateTimeStart \n" + - "\t\t\tAND a.complete_date_time <= :completeDateTimeEnd \n"); + prQueryHql.append("" + + " SELECT " + + " a.work_center_code AS workCenterCode, " + + " a.work_cell_code AS workCellCode, " + + " a.part_no AS partNo, " + + " a.part_name AS partName, " + + " a.shift_code AS shiftCode, " + + " a.equipment_code AS equipmentCode, " + + " a.equipment_name AS equipmentName, " + + " a.report_status AS reportStatus, " + + " 1 AS dataSource, " + + " SUM( qty ) AS statisticsQty " + + " FROM "); + + prQueryHql.append(" mes_production_record a " + + " WHERE " + + " a.organize_code = :organizeCode " + + " AND a.is_deleted = :isDeleted " + + " AND a.is_valid = :isValid " + + " AND a.complete_date_time >= :completeDateTimeStart " + + " AND a.complete_date_time <= :completeDateTimeEnd "); if (reportStatusList.size() == 1) { - prCommonQueryHql.append("\t\t\tAND a.report_status = :reportStatus \n"); + prQueryHql.append(" AND a.report_status = :reportStatus "); } else { - prCommonQueryHql.append("\t\t\tAND a.report_status in (:reportStatus) \n"); + prQueryHql.append(" AND a.report_status in (:reportStatus) "); } if (!StringUtils.isEmpty(model.getPartNo())) { - prCommonQueryHql.append("\t\t\tAND a.part_no = :partNo \n"); + prQueryHql.append(" AND a.part_no = :partNo "); } if (!StringUtils.isEmpty(model.getWorkCenterCode())) { - prCommonQueryHql.append("\t\t\tAND a.work_center_code = :workCenterCode \n"); + prQueryHql.append(" AND a.work_center_code = :workCenterCode "); } if (!StringUtils.isEmpty(model.getWorkCellCode())) { - prCommonQueryHql.append("\t\t\tAND a.work_cell_code = :workCellCode \n"); + prQueryHql.append(" AND a.work_cell_code = :workCellCode "); } if (!StringUtils.isEmpty(model.getShiftCode())) { - prCommonQueryHql.append("\t\t\tAND a.shift_code = :shiftCode \n"); + prQueryHql.append(" AND a.shift_code = :shiftCode "); } if (!StringUtils.isEmpty(model.getEquipmentCode())) { - prCommonQueryHql.append("\t\t\tAND a.equipment_code = :equipmentCode \n"); + prQueryHql.append(" AND a.equipment_code = :equipmentCode "); } - prCommonQueryHql.append("\t\tGROUP BY\n" + - "\t\t\ta.work_center_code,\n" + - "\t\t\ta.work_cell_code,\n" + - "\t\t\ta.part_no,\n" + - "\t\t\ta.shift_code,\n" + - "\t\t\ta.report_status \n" + - "\t\tORDER BY\n" + - "\t\t\ta.complete_date_time DESC \n"); + prQueryHql.append(" GROUP BY " + + " a.work_center_code, " + + " a.work_cell_code, " + + " a.part_no, " + + " a.shift_code, " + + " a.report_status " + + " ORDER BY " + + " a.complete_date_time DESC "); + } if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { - prCommonQueryHql.append("\t\t) UNION ALL\n" + - "\t\t("); + prQueryHql.append(" ) UNION ALL ( "); } if (model.getIsQueryWo()) { - woQueryHql.append("\t\tSELECT\n" + - "\t\t\tb.work_center_code AS workCenterCode,\n" + - "\t\t\tNULL AS workCellCode,\n" + - "\t\t\tb.part_no AS partNo,\n" + - "\t\t\tb.part_name AS partName,\n" + - "\t\t\tb.shift_code AS shiftCode,\n" + - "\t\t\tNULL AS equipmentCode,\n" + - "\t\t\tNULL AS equipmentName,\n" + - "\t\t\t30 AS reportStatus,\n" + - "\t\t\t2 AS dataSource,\n" + - "\t\t\tSUM( modify_qty ) AS statisticsQty \n" + - "\t\tFROM\n"); - - woCommonQueryHql.append("\t\t\tmes_work_order_log b \n" + - "\t\tWHERE\n" + - "\t\t\tb.organize_code = :organizeCode \n" + - "\t\t\tAND b.is_deleted = :isDeleted \n" + - "\t\t\tAND b.is_valid = :isValid \n" + - "\t\t\tAND b.modify_date_time >= :completeDateTimeStart \n" + - "\t\t\tAND b.modify_date_time <= :completeDateTimeEnd \n" + - "\t\t\tAND b.type = :messageType \n"); + woQueryHql.append("" + + " SELECT " + + " b.work_center_code AS workCenterCode, " + + " ' ' AS workCellCode, " + + " b.part_no AS partNo, " + + " b.part_name AS partName, " + + " b.shift_code AS shiftCode, " + + " ' ' AS equipmentCode, " + + " ' ' AS equipmentName, " + + " 30 AS reportStatus, " + + " 2 AS dataSource, " + + " SUM( modify_qty ) AS statisticsQty " + + " FROM "); + + woQueryHql.append(" mes_work_order_log b " + + " WHERE " + + " b.organize_code = :organizeCode " + + " 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 "); if (!StringUtils.isEmpty(model.getPartNo())) { - woCommonQueryHql.append("\t\t\tAND b.part_no = :partNo \n"); + woQueryHql.append(" AND b.part_no = :partNo "); } if (!StringUtils.isEmpty(model.getWorkCenterCode())) { - woCommonQueryHql.append("\t\t\tAND b.work_center_code = :workCenterCode \n"); + woQueryHql.append(" AND b.work_center_code = :workCenterCode "); } if (!StringUtils.isEmpty(model.getShiftCode())) { - woCommonQueryHql.append("\t\t\tAND b.shift_code = :shiftCode \n"); + woQueryHql.append(" AND b.shift_code = :shiftCode "); } - woCommonQueryHql.append("\t\tGROUP BY\n" + - "\t\t\tb.work_center_code,\n" + - "\t\t\tb.part_no,\n" + - "\t\t\tb.shift_code \n" + - "\t\tORDER BY\n" + - "\t\t\tb.modify_date_time DESC \n"); + woQueryHql.append(" GROUP BY " + + " b.work_center_code, " + + " b.part_no, " + + " b.shift_code " + + " ORDER BY " + + " b.modify_date_time DESC "); + } if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { - woCommonQueryHql.append("\t) \n" + - "\t) AS o \n"); + endHql.append(" )) AS o "); + } else { + endHql.append(" ) AS o "); } + limitHql.append(" LIMIT :startRow , :pageSize "); + if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { - queryHql.append(unionQueryHql).append(prQueryHql).append(prCommonQueryHql).append(woQueryHql).append(woCommonQueryHql); - countHql.append(countQueryHql).append(prQueryHql).append(prCommonQueryHql).append(woQueryHql).append(woCommonQueryHql); + 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)) { - queryHql.append(prQueryHql).append(prCommonQueryHql); - countHql.append(countQueryHql).append(prCommonQueryHql); + queryHql.append(prQueryHql).append(limitHql); + countHql.append(countQueryHql).append(prQueryHql).append(endHql); } else { - queryHql.append(woQueryHql).append(woCommonQueryHql); - countHql.append(countQueryHql).append(woCommonQueryHql); + queryHql.append(woQueryHql).append(limitHql); + countHql.append(countQueryHql).append(woQueryHql).append(endHql); } } +// log.info("queryHql: --- {}", queryHql.toString()); +// log.info("countHql: --- {}", countHql.toString()); + Query dataQuery = entityManager.createNativeQuery(queryHql.toString()); - setQueryParams(dataQuery, model, reportStatusList); + setQueryParams(dataQuery, model, reportStatusList, pager); Query countQuery = entityManager.createNativeQuery(countHql.toString()); - setQueryParams(countQuery, model, reportStatusList); + setQueryParams(countQuery, model, reportStatusList, null); - pager = PagerHelper.getPager(pager, Integer.parseInt(countQuery.getSingleResult().toString())); + Object o = countQuery.getSingleResult(); - dataQuery.setMaxResults(pager.getPageSize()); - if (pager.getCurrentPage() == 0) { - pager.setCurrentPage(1); - } - dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + int count = Integer.parseInt(o.toString()); List list = dataQuery.getResultList(); - for (Object object : list) { + if (!CollectionUtils.isEmpty(list)) { - if (null == object) continue; + for (Object object : list) { - Object[] objectArr = (Object[]) object; + if (null == object) continue; - if (null == objectArr || objectArr.length != 10) continue; + Object[] objectArr = (Object[]) object; - MesProductionRecordReportExtModel result = new MesProductionRecordReportExtModel( - objectArr[0], objectArr[1], objectArr[2], objectArr[3], objectArr[4], objectArr[5], objectArr[6], objectArr[7], objectArr[8], objectArr[9]); - if (!StringUtils.isEmpty(result.getDataSource()) && !StringUtils.isEmpty(result.getReportStatus())) { - 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()); - } + if (null == objectArr || objectArr.length != 10) continue; - resultList.add(result); + MesProductionRecordReportExtModel result = new MesProductionRecordReportExtModel( + objectArr[0], objectArr[1], objectArr[2], objectArr[3], objectArr[4], objectArr[5], objectArr[6], objectArr[7], objectArr[8], objectArr[9]); + if (!StringUtils.isEmpty(result.getDataSource()) && !StringUtils.isEmpty(result.getReportStatus())) { + 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()); + } + + resultList.add(result); + } } + pager = PagerHelper.getPager(pager, count); return new ListPager(resultList, pager); } - private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List reportStatusList) { + private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List reportStatusList, 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()); @@ -251,6 +260,11 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo if (!StringUtils.isEmpty(model.getEquipmentCode())) { query.setParameter(MesExtConstWords.EQUIPMENT_CODE, model.getEquipmentCode()); } + if (null != pager) { + Integer startRow = (pager.getCurrentPage() - 1) * pager.getPageSize(); + query.setParameter("startRow", startRow); + query.setParameter("pageSize", pager.getPageSize()); + } } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java index 3358019..2cab54d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordReportExtService.java @@ -54,8 +54,6 @@ public class MesProductionRecordReportExtService implements IMesProductionRecord if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode()) && reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) model.setIsQueryWo(true); - Integer startRow = (pager.getCurrentPage() - 1) * pager.getPageSize(); - ListPager listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr); return listPager;