Merge branch 'dev-temp-wj-2412160000-00001' into dev

tags/yfai-mes-ext-v2.5
王杰 5 months ago
commit f5a85d3364

@ -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.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -25,6 +26,7 @@ import java.util.List;
* @CreateDate : 2024/9/29 10:21 * @CreateDate : 2024/9/29 10:21
* @Modify: * @Modify:
**/ **/
@Slf4j
@Service @Service
public class MesProductionRecordReportExtDao implements IMesProductionRecordReportExtDao { public class MesProductionRecordReportExtDao implements IMesProductionRecordReportExtDao {
@ -42,162 +44,167 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo
StringBuilder unionQueryHql = new StringBuilder(); StringBuilder unionQueryHql = new StringBuilder();
StringBuilder countQueryHql = new StringBuilder(); StringBuilder countQueryHql = new StringBuilder();
StringBuilder prQueryHql = new StringBuilder(); StringBuilder prQueryHql = new StringBuilder();
StringBuilder prCommonQueryHql = new StringBuilder();
StringBuilder woQueryHql = new StringBuilder(); StringBuilder woQueryHql = new StringBuilder();
StringBuilder woCommonQueryHql = new StringBuilder(); StringBuilder endHql = new StringBuilder();
StringBuilder limitHql = new StringBuilder();
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
unionQueryHql.append("SELECT\n" + unionQueryHql.append("SELECT " +
"\to.workCenterCode,\n" + " o.workCenterCode, " +
"\to.workCellCode,\n" + " o.workCellCode, " +
"\to.partNo,\n" + " o.partNo, " +
"\to.partName,\n" + " o.partName, " +
"\to.shiftCode,\n" + " o.shiftCode, " +
"\to.equipmentCode,\n" + " o.equipmentCode, " +
"\to.equipmentName,\n" + " o.equipmentName, " +
"\to.reportStatus,\n" + " o.reportStatus, " +
"\to.dataSource,\n" + " o.dataSource, " +
"\to.statisticsQty \n" + " o.statisticsQty " +
"FROM\n" + " FROM " +
"\t(\n" + " (( ");
"\t\t(\n");
countQueryHql.append("SELECT count(1) " +
countQueryHql.append("SELECT count(1)\n" + " FROM " +
"FROM\n" + " (( ");
"\t(\n" +
"\t\t(\n");
} else { } else {
countQueryHql.append("SELECT count(1) FROM\n"); countQueryHql.append("SELECT count(1) FROM ( ");
} }
if (!CollectionUtils.isEmpty(reportStatusList)) { if (!CollectionUtils.isEmpty(reportStatusList)) {
prQueryHql.append("\t\tSELECT\n" + prQueryHql.append("" +
"\t\t\ta.work_center_code AS workCenterCode,\n" + " SELECT " +
"\t\t\ta.work_cell_code AS workCellCode,\n" + " a.work_center_code AS workCenterCode, " +
"\t\t\ta.part_no AS partNo,\n" + " a.work_cell_code AS workCellCode, " +
"\t\t\ta.part_name AS partName,\n" + " a.part_no AS partNo, " +
"\t\t\ta.shift_code AS shiftCode,\n" + " a.part_name AS partName, " +
"\t\t\ta.equipment_code AS equipmentCode,\n" + " a.shift_code AS shiftCode, " +
"\t\t\ta.equipment_name AS equipmentName,\n" + " a.equipment_code AS equipmentCode, " +
"\t\t\ta.report_status AS reportStatus,\n" + " a.equipment_name AS equipmentName, " +
"\t\t\t1 AS dataSource,\n" + " a.report_status AS reportStatus, " +
"\t\t\tSUM( qty ) AS statisticsQty \n" + " 1 AS dataSource, " +
"\t\tFROM\n"); " SUM( qty ) AS statisticsQty " +
" FROM ");
prCommonQueryHql.append("\t\t\tmes_production_record a \n" +
"\t\tWHERE\n" + prQueryHql.append(" mes_production_record a " +
"\t\t\ta.organize_code = :organizeCode \n" + " WHERE " +
"\t\t\tAND a.is_deleted = :isDeleted \n" + " a.organize_code = :organizeCode " +
"\t\t\tAND a.is_valid = :isValid \n" + " AND a.is_deleted = :isDeleted " +
"\t\t\tAND a.complete_date_time >= :completeDateTimeStart \n" + " AND a.is_valid = :isValid " +
"\t\t\tAND a.complete_date_time <= :completeDateTimeEnd \n"); " AND a.complete_date_time >= :completeDateTimeStart " +
" AND a.complete_date_time <= :completeDateTimeEnd ");
if (reportStatusList.size() == 1) { if (reportStatusList.size() == 1) {
prCommonQueryHql.append("\t\t\tAND a.report_status = :reportStatus \n"); prQueryHql.append(" AND a.report_status = :reportStatus ");
} else { } 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())) { 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())) { 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())) { 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())) { 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())) { 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" + prQueryHql.append(" GROUP BY " +
"\t\t\ta.work_center_code,\n" + " a.work_center_code, " +
"\t\t\ta.work_cell_code,\n" + " a.work_cell_code, " +
"\t\t\ta.part_no,\n" + " a.part_no, " +
"\t\t\ta.shift_code,\n" + " a.shift_code, " +
"\t\t\ta.report_status \n" + " a.report_status " +
"\t\tORDER BY\n" + " ORDER BY " +
"\t\t\ta.complete_date_time DESC \n"); " a.complete_date_time DESC ");
} }
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
prCommonQueryHql.append("\t\t) UNION ALL\n" + prQueryHql.append(" ) UNION ALL ( ");
"\t\t(");
} }
if (model.getIsQueryWo()) { if (model.getIsQueryWo()) {
woQueryHql.append("\t\tSELECT\n" + woQueryHql.append("" +
"\t\t\tb.work_center_code AS workCenterCode,\n" + " SELECT " +
"\t\t\tNULL AS workCellCode,\n" + " b.work_center_code AS workCenterCode, " +
"\t\t\tb.part_no AS partNo,\n" + " ' ' AS workCellCode, " +
"\t\t\tb.part_name AS partName,\n" + " b.part_no AS partNo, " +
"\t\t\tb.shift_code AS shiftCode,\n" + " b.part_name AS partName, " +
"\t\t\tNULL AS equipmentCode,\n" + " b.shift_code AS shiftCode, " +
"\t\t\tNULL AS equipmentName,\n" + " ' ' AS equipmentCode, " +
"\t\t\t30 AS reportStatus,\n" + " ' ' AS equipmentName, " +
"\t\t\t2 AS dataSource,\n" + " 30 AS reportStatus, " +
"\t\t\tSUM( modify_qty ) AS statisticsQty \n" + " 2 AS dataSource, " +
"\t\tFROM\n"); " SUM( modify_qty ) AS statisticsQty " +
" FROM ");
woCommonQueryHql.append("\t\t\tmes_work_order_log b \n" +
"\t\tWHERE\n" + woQueryHql.append(" mes_work_order_log b " +
"\t\t\tb.organize_code = :organizeCode \n" + " WHERE " +
"\t\t\tAND b.is_deleted = :isDeleted \n" + " b.organize_code = :organizeCode " +
"\t\t\tAND b.is_valid = :isValid \n" + " AND b.is_deleted = :isDeleted " +
"\t\t\tAND b.modify_date_time >= :completeDateTimeStart \n" + " AND b.is_valid = :isValid " +
"\t\t\tAND b.modify_date_time <= :completeDateTimeEnd \n" + " AND b.modify_date_time >= :completeDateTimeStart " +
"\t\t\tAND b.type = :messageType \n"); " AND b.modify_date_time <= :completeDateTimeEnd " +
" AND b.type = :messageType ");
if (!StringUtils.isEmpty(model.getPartNo())) { 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())) { 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())) { 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" + woQueryHql.append(" GROUP BY " +
"\t\t\tb.work_center_code,\n" + " b.work_center_code, " +
"\t\t\tb.part_no,\n" + " b.part_no, " +
"\t\t\tb.shift_code \n" + " b.shift_code " +
"\t\tORDER BY\n" + " ORDER BY " +
"\t\t\tb.modify_date_time DESC \n"); " b.modify_date_time DESC ");
} }
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
woCommonQueryHql.append("\t) \n" + endHql.append(" )) AS o ");
"\t) AS o \n"); } else {
endHql.append(" ) AS o ");
} }
limitHql.append(" LIMIT :startRow , :pageSize ");
if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) { if (!CollectionUtils.isEmpty(reportStatusList) && model.getIsQueryWo()) {
queryHql.append(unionQueryHql).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(prCommonQueryHql).append(woQueryHql).append(woCommonQueryHql); countHql.append(countQueryHql).append(prQueryHql).append(woQueryHql).append(endHql);
} else { } else {
if (!CollectionUtils.isEmpty(reportStatusList)) { if (!CollectionUtils.isEmpty(reportStatusList)) {
queryHql.append(prQueryHql).append(prCommonQueryHql); queryHql.append(prQueryHql).append(limitHql);
countHql.append(countQueryHql).append(prCommonQueryHql); countHql.append(countQueryHql).append(prQueryHql).append(endHql);
} else { } else {
queryHql.append(woQueryHql).append(woCommonQueryHql); queryHql.append(woQueryHql).append(limitHql);
countHql.append(countQueryHql).append(woCommonQueryHql); countHql.append(countQueryHql).append(woQueryHql).append(endHql);
} }
} }
// log.info("queryHql: --- {}", queryHql.toString());
// log.info("countHql: --- {}", countHql.toString());
Query dataQuery = entityManager.createNativeQuery(queryHql.toString()); Query dataQuery = entityManager.createNativeQuery(queryHql.toString());
setQueryParams(dataQuery, model, reportStatusList); setQueryParams(dataQuery, model, reportStatusList, pager);
Query countQuery = entityManager.createNativeQuery(countHql.toString()); 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()); int count = Integer.parseInt(o.toString());
if (pager.getCurrentPage() == 0) {
pager.setCurrentPage(1);
}
dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize());
List list = dataQuery.getResultList(); List list = dataQuery.getResultList();
if (!CollectionUtils.isEmpty(list)) {
for (Object object : list) { for (Object object : list) {
if (null == object) continue; if (null == object) continue;
@ -217,12 +224,14 @@ public class MesProductionRecordReportExtDao implements IMesProductionRecordRepo
resultList.add(result); resultList.add(result);
} }
}
pager = PagerHelper.getPager(pager, count);
return new ListPager(resultList, pager); return new ListPager(resultList, pager);
} }
private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List<Integer> reportStatusList) { private void setQueryParams(Query query, MesProductionRecordReportExtModel model, List<Integer> reportStatusList, Pager pager) {
query.setParameter(MesExtConstWords.ORGANIZE_CODE, model.getOrganizeCode()); query.setParameter(MesExtConstWords.ORGANIZE_CODE, model.getOrganizeCode());
query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
query.setParameter(MesExtConstWords.IS_VALID, CommonEnumUtil.IS_VAILD.VAILD.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())) { if (!StringUtils.isEmpty(model.getEquipmentCode())) {
query.setParameter(MesExtConstWords.EQUIPMENT_CODE, 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());
}
} }
} }

@ -54,8 +54,6 @@ public class MesProductionRecordReportExtService implements IMesProductionRecord
if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode()) && if (StringUtils.isEmpty(model.getWorkCellCode()) && StringUtils.isEmpty(model.getEquipmentCode()) &&
reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) model.setIsQueryWo(true); reportStatusList.contains(MesExtEnumUtil.PRODUCTION_RECORD_QUREY_REPORT_STATUS.REPORT_STATUS_30.getValue())) model.setIsQueryWo(true);
Integer startRow = (pager.getCurrentPage() - 1) * pager.getPageSize();
ListPager<MesProductionRecordReportExtModel> listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr); ListPager<MesProductionRecordReportExtModel> listPager = productionRecordReportExtDao.queryProductionRecordUnionWorkOrderLogReport(model, pager, reportStatusList2Pr);
return listPager; return listPager;

Loading…
Cancel
Save