diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java index 8888d56..189d5e9 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java @@ -7,7 +7,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.mes.bean.MesCokpitKanbanData; 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.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportModel; @@ -50,7 +50,7 @@ public interface IMesYfReportService { ListPager queryMesProduceSn(MesProduceSn mesProduceSn, Pager pager); @ApiOperation("产品加工记录") - ListPager queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager); + ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager); @ApiOperation("看板数据") ListPager queryMesCokpitKanbanData(MesCokpitKanbanData kanbanData, Pager pager); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java index 440c4d6..c9d1c32 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java @@ -11,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; 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.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.common.ExportDataModel; import cn.estsh.impp.framework.base.controller.MesBaseController; @@ -126,9 +127,9 @@ public class BaseExtDataController extends MesBaseController { //查询数据 listPager = mesYfReportService.queryMesProduceSn(JSON.parseObject(exportDataModel.getSelectWhere(), MesProduceSn.class),null);break; case MES_PRODUCTION_RECORD_DATA_EXPORT: - mesClass = MesProductionRecord.class; + mesClass = MesProductionRecordModel.class; //查询数据 - listPager = mesYfReportService.queryMesProductionRecord(JSON.parseObject(exportDataModel.getSelectWhere(), MesProductionRecord.class),null);break; + listPager = mesYfReportService.queryMesProductionRecord(JSON.parseObject(exportDataModel.getSelectWhere(), MesProductionRecordModel.class),null);break; case MES_SHIPPING_DETAIL_DATA_EXPORT: mesClass = MesShippingOrderManagementDetailModel.class; //查询数据 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 1d74350..a4def21 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 @@ -80,9 +80,9 @@ public class MesBusiReportController extends MesBaseController { @ApiOperation(value = "产品加工记录", notes = "产品加工记录") @GetMapping("/mesProductionRecord/query") - public ResultBean queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager) { + public ResultBean queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager) { try { - return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesProductionRecord(mesProductionRecord,pager)); + return ResultBean.success("查询成功").setListPager(mesYfReportService.queryMesProductionRecord(mesProductionRecordModel,pager)); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java index 98dda94..ffa6d43 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditi import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import io.swagger.annotations.ApiOperation; @@ -33,4 +34,7 @@ public interface IMesYfReportDao { @ApiOperation("通用发运报表查询") ListPager queryGeneralShipping(MesGeneralShippingReportModel model, Pager pager, List shippingGroupList); + @ApiOperation("产品加工记录") + ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager); + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java index 806652d..4aaf92c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java @@ -3,10 +3,12 @@ package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report; import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; 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.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -158,6 +160,27 @@ public class MesYfReportDaoImpl implements IMesYfReportDao { return new ListPager<>(dataQuery.getResultList(), pager); } + @Override + public ListPager queryMesProductionRecord(MesProductionRecordModel model, Pager pager) { + StringBuilder dataHql = new StringBuilder(); + dataHql.append(" select new ").append(MesProductionRecordModel.class.getName()).append("(record,wo.workOrderStatus)"); + //共用HQL + String commonHql = getMesProductionRecordCommonHql(model); + //行数 + Query countQuery = entityManager.createQuery("select count(1) " + commonHql); + setMesProductionRecordParameter(model, countQuery); + //数据 + Query dataQuery = entityManager.createQuery(dataHql.append(commonHql).append(getMesProductionRecordOrderBy(model)).toString(), MesProductionRecordModel.class); + setMesProductionRecordParameter(model, dataQuery); + if (Objects.isNull(pager)) return new ListPager<>(dataQuery.getResultList(), pager); + + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + if (count <= 0) return new ListPager<>(new ArrayList<>(), pager); + pager = PagerHelper.getPager(pager, count); + dataQuery.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()); + return new ListPager<>(dataQuery.getResultList(), pager); + } + private void setGeneralExportParameter(MesGeneralExportReportModel model, Query query) { query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); @@ -246,4 +269,51 @@ public class MesYfReportDaoImpl implements IMesYfReportDao { return commonHql.toString(); } + private String getMesProductionRecordCommonHql(MesProductionRecordModel model) { + StringBuilder commonHql = new StringBuilder(); + commonHql.append(" from MesProductionRecord record left join MesWorkOrder wo on wo.workOrderNo = record.workOrderNo "); + commonHql.append(" where record.organizeCode = :organizeCode and record.isDeleted=:isDeleted and record.isValid=:isValid "); + if (!StringUtils.isEmpty(model.getProductSn())) commonHql.append(" and record.productSn like '%").append(model.getProductSn()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkOrderNo())) commonHql.append(" and record.workOrderNo like '%").append(model.getWorkOrderNo()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkCenterCode())) commonHql.append(" and record.workCenterCode like '%").append(model.getWorkCenterCode()).append("%' "); + if (!StringUtils.isEmpty(model.getWorkCellCode())) commonHql.append(" and record.workCellCode like '%").append(model.getWorkCellCode()).append("%' "); + if (!StringUtils.isEmpty(model.getCompleteDateTimeStart())) commonHql.append(" and record.completeDateTime >= :completeDateTimeStart "); + if (!StringUtils.isEmpty(model.getCompleteDateTimeEnd())) commonHql.append(" and record.completeDateTime <= :completeDateTimeEnd "); + if (!StringUtils.isEmpty(model.getEquipmentCode())) commonHql.append(" and record.equipmentCode like '%").append(model.getEquipmentCode()).append("%' "); + if (!StringUtils.isEmpty(model.getEquipmentName())) commonHql.append(" and record.equipmentName like '%").append(model.getEquipmentName()).append("%' "); + if (!StringUtils.isEmpty(model.getMouldNo())) commonHql.append(" and record.mouldNo like '%").append(model.getMouldNo()).append("%' "); + if (!StringUtils.isEmpty(model.getShiftGroup())) commonHql.append(" and record.shiftGroup like '%").append(model.getShiftGroup()).append("%' "); + if (!StringUtils.isEmpty(model.getShiftCode())) commonHql.append(" and record.shiftCode like '%").append(model.getShiftCode()).append("%' "); + if (!StringUtils.isEmpty(model.getReportStatus()) && model.getReportStatus() > MesExtConstWords.ZERO) commonHql.append(" and record.reportStatus = :reportStatus "); + if (!StringUtils.isEmpty(model.getReportType()) && model.getReportType() > MesExtConstWords.ZERO) commonHql.append(" and record.reportType = :reportType "); + if (!StringUtils.isEmpty(model.getIsComplete()) && model.getIsComplete() > MesExtConstWords.ZERO) commonHql.append(" and record.isComplete = :isComplete "); + if (!StringUtils.isEmpty(model.getWorkOrderStatus()) && model.getWorkOrderStatus() > MesExtConstWords.ZERO) commonHql.append(" and wo.workOrderStatus = :workOrderStatus "); + if (!StringUtils.isEmpty(model.getIsTest())) commonHql.append(" and record.isTest like '%").append(model.getIsTest()).append("%' "); + if (!StringUtils.isEmpty(model.getPartNo())) commonHql.append(" and record.partNo like '%").append(model.getPartNo()).append("%' "); + if (!StringUtils.isEmpty(model.getPartName())) commonHql.append(" and record.partName like '%").append(model.getPartName()).append("%' "); + + return commonHql.toString(); + } + + private void setMesProductionRecordParameter(MesProductionRecordModel model, Query query) { + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("organizeCode", model.getOrganizeCode()); + if(!StringUtils.isEmpty(model.getCompleteDateTimeStart())) query.setParameter("completeDateTimeStart", model.getCompleteDateTimeStart()); + if (!StringUtils.isEmpty(model.getCompleteDateTimeEnd())) query.setParameter("completeDateTimeEnd", model.getCompleteDateTimeEnd()); + if (!StringUtils.isEmpty(model.getReportStatus()) && model.getReportStatus() > MesExtConstWords.ZERO) query.setParameter("reportStatus", model.getReportStatus()); + if (!StringUtils.isEmpty(model.getReportType()) && model.getReportType() > MesExtConstWords.ZERO) query.setParameter("reportType", model.getReportType()); + if (!StringUtils.isEmpty(model.getIsComplete()) && model.getIsComplete() > MesExtConstWords.ZERO) query.setParameter("isComplete", model.getIsComplete()); + if (!StringUtils.isEmpty(model.getWorkOrderStatus()) && model.getWorkOrderStatus() > MesExtConstWords.ZERO) query.setParameter("workOrderStatus", model.getWorkOrderStatus()); + } + + private String getMesProductionRecordOrderBy(MesProductionRecordModel model) { + StringBuilder orderBy = new StringBuilder(); + if (StringUtils.isEmpty(model.getOrderByParam()) || StringUtils.isEmpty(model.getAscOrDesc())) { + model.setOrderByParam("createDatetime"); + model.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + } + return orderBy.append(" order by record.").append(model.getOrderByParam()).append(" ").append(CommonEnumUtil.ASC_OR_DESC.DESC.getValue() == model.getAscOrDesc() ? "desc" : "asc").toString(); + } + } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java index 228447d..85badea 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -23,6 +23,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.*; +import cn.estsh.i3plus.pojo.mes.model.MesProductionRecordModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralExportReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesGeneralShippingReportModel; import cn.estsh.i3plus.pojo.mes.model.report.MesTraceabilityReportDataModel; @@ -246,15 +247,8 @@ public class MesYfReportServiceImpl implements IMesYfReportService { } @Override - public ListPager queryMesProductionRecord(MesProductionRecord mesProductionRecord, Pager pager) { - DdlPackBean packBean = getDdlPackBeanMesProductionRecord(mesProductionRecord); - if(Objects.isNull(pager)){ - DdlPreparedPack.getOrderBy(mesProductionRecord.getOrderByParam(),mesProductionRecord.getAscOrDesc(),packBean); - return new ListPager<>(mesProductionRecordRepository.findByHqlWhere(packBean), pager); - } - pager = PagerHelper.getPager(pager, mesProductionRecordRepository.findByHqlWhereCount(packBean)); - DdlPreparedPack.getOrderBy(mesProductionRecord.getOrderByParam(),mesProductionRecord.getAscOrDesc(),packBean); - return new ListPager<>(mesProductionRecordRepository.findByHqlWherePage(packBean, pager), pager); + public ListPager queryMesProductionRecord(MesProductionRecordModel mesProductionRecordModel, Pager pager) { + return mesYfReportDao.queryMesProductionRecord(mesProductionRecordModel, pager); } @Override