diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java index 715cc85..b444815 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesProductionRecordService.java @@ -34,5 +34,5 @@ public interface IMesProductionRecordService extends IBaseMesService queryProductAccount(MesProductAccountModel productAccountModel); @ApiOperation(value = "线边库存报表") - List transferAccount(List list,MesProductAccountModel productAccountModel); + List transferAccount(List list,MesProductAccountModel productAccountModel, Pager pager); } 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 4e1857d..12447b2 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 @@ -103,9 +103,9 @@ public class MesBusiReportController extends MesBaseController { @ApiOperation(value = "对账报表", notes = "对账报表") @GetMapping("/product/account/query") public ResultBean queryProductAccount(MesProductAccountModel productAccountModel, Pager pager) { - try { + try {/* ValidatorBean.beginValid(productAccountModel) - .notNull("equipmentCode", productAccountModel.getEquipmentCode()); + .notNull("equipmentCode", productAccountModel.getEquipmentCode());*/ /*productAccountModel.setStartTime("2024-09-12 08:00:00"); productAccountModel.setEndTime("2024-09-13 08:00:00"); productAccountModel.setEquipmentCode("760BFoaming"); @@ -113,12 +113,13 @@ public class MesBusiReportController extends MesBaseController { List mesProductAccountResModels = mesProductionRecordService.queryProductAccount(productAccountModel); - List mesProductAccountResModelsRes = mesProductionRecordService.transferAccount(mesProductAccountResModels,productAccountModel); + List mesProductAccountResModelsRes = mesProductionRecordService.transferAccount(mesProductAccountResModels,productAccountModel, pager); - return ResultBean.success("查询成功").setResultList(mesProductAccountResModelsRes); + return ResultBean.success("查询成功").setResultList(mesProductAccountResModelsRes).setPager(pager); } catch (ImppBusiException e) { return ResultBean.fail(e); } catch (Exception e) { + e.printStackTrace(); return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java index 0b014c8..8e9f005 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesProductionRecordServiceImpl.java @@ -25,6 +25,7 @@ import cn.estsh.i3plus.pojo.mes.repository.MesProduceSnRepository; import cn.estsh.i3plus.pojo.mes.repository.MesProductRecordLogRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import com.google.common.base.Objects; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.hibernate.SQLQuery; import org.hibernate.query.internal.NativeQueryImpl; @@ -340,10 +341,11 @@ public class MesProductionRecordServiceImpl extends BaseMesService transferAccount(List mesProductAccountResModels, MesProductAccountModel productAccountModel) { + public List transferAccount(List mesProductAccountResModels, MesProductAccountModel productAccountModel, Pager pager) { /** * 760B_A58_ReMaoHan 只有finish信号 * 760BFoaming @@ -535,45 +537,46 @@ public class MesProductionRecordServiceImpl extends BaseMesService equimentList = Stream.of("760B_A58_ReMaoHan","760BFoaming","760B_LaserCutting","ZhenKong").collect(Collectors.toList()); - - if (!CollectionUtils.isEmpty(mesProductAccountResModels)) { - mesProductAccountResModels = mesProductAccountResModels.stream().filter(mesProductAccountResModel ->{ - int size = mesProductAccountResModel.getPartNo().split(",").length; - int productCount = Integer.valueOf(mesProductAccountResModel.getProductCount()); - int detailCount = Integer.valueOf(mesProductAccountResModel.getDetailCount()); - if (detailCount * size > productCount) { - return true; - } - return false; - } ) .collect(Collectors.toList()); - } - if (!CollectionUtils.isEmpty(mesProductAccountResModels)) { - for (MesProductAccountResModel mesProductAccountResModel : mesProductAccountResModels) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean("CK01"); - DdlPreparedPack.getStringEqualPack(mesProductAccountResModel.getEquipmentCode(), "equipmentCode", packBean); - - DdlPreparedPack.getStringSmallerNotEqualPack(productAccountModel.getEndTime(), "createDatetime", packBean); - DdlPreparedPack.getStringBiggerPack(productAccountModel.getStartTime(), "createDatetime", packBean); - DdlPreparedPack.getStringEqualPack(mesProductAccountResModel.getPartNo(), "partNo", packBean); - - DdlPreparedPack.getOrderBy("createDatetime", CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean); - List recordLogs = mesProductRecordLogRepository.findByHqlWhere(packBean); - if (mesProductAccountResModel.getEquipmentCode().contains("HT")) { - // 1 判断2个 shotcount之间有没有加工记录,如果没有,就需要看 设备是不是192,然后看是否是网络原因 - - String reason = handleHT(recordLogs); - mesProductAccountResModel.setErrorReason(reason); - } else if (equimentList.contains(mesProductAccountResModel.getEquipmentCode())) { - // 1 判断2个 shotcount之间有没有加工记录,如果没有,就需要看 设备是不是192,然后看是否是网络原因 - String reason =handleNotHT(recordLogs); - mesProductAccountResModel.setErrorReason(reason); - } else { - String reason =handleNotHTAndHasRelease(recordLogs); - mesProductAccountResModel.setErrorReason(reason); - } + if (CollectionUtils.isEmpty(mesProductAccountResModels)) { + return null; + } + List partitionList = partition(mesProductAccountResModels, pager.getPageSize(), pager.getCurrentPage()); + for (MesProductAccountResModel mesProductAccountResModel : partitionList) { + boolean isErrorCount = false; + int size = mesProductAccountResModel.getPartNo().split(",").length; + int productCount = Integer.valueOf(mesProductAccountResModel.getProductCount()); + int detailCount = Integer.valueOf(mesProductAccountResModel.getDetailCount()); + if (detailCount * size > productCount) { + isErrorCount = true; + } + if (!isErrorCount) { + continue; + } + DdlPackBean packBean = DdlPackBean.getDdlPackBean("CK01"); + DdlPreparedPack.getStringEqualPack(mesProductAccountResModel.getEquipmentCode(), "equipmentCode", packBean); + + DdlPreparedPack.getStringSmallerNotEqualPack(productAccountModel.getEndTime(), "createDatetime", packBean); + DdlPreparedPack.getStringBiggerPack(productAccountModel.getStartTime(), "createDatetime", packBean); + DdlPreparedPack.getStringEqualPack(mesProductAccountResModel.getPartNo(), "partNo", packBean); + + DdlPreparedPack.getOrderBy("createDatetime", CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean); + List recordLogs = mesProductRecordLogRepository.findByHqlWhere(packBean); + if (mesProductAccountResModel.getEquipmentCode().contains("HT")) { + // 1 判断2个 shotcount之间有没有加工记录,如果没有,就需要看 设备是不是192,然后看是否是网络原因 + + String reason = handleHT(recordLogs); + mesProductAccountResModel.setErrorReason(reason); + } else if (equimentList.contains(mesProductAccountResModel.getEquipmentCode())) { + // 1 判断2个 shotcount之间有没有加工记录,如果没有,就需要看 设备是不是192,然后看是否是网络原因 + String reason =handleNotHT(recordLogs); + mesProductAccountResModel.setErrorReason(reason); + } else { + String reason =handleNotHTAndHasRelease(recordLogs); + mesProductAccountResModel.setErrorReason(reason); } } - return mesProductAccountResModels; + + return partitionList; } private String handleNotHT(List recordLogs) { @@ -587,7 +590,7 @@ public class MesProductionRecordServiceImpl extends BaseMesService finishList = Stream.of("Product_finish","PART_OK","Part_Finish","Product_OK").collect(Collectors.toList()); + List finishList = Stream.of("Product_finish","Part_Finish").collect(Collectors.toList()); for (MesProductRecordLog recordLog : recordLogs) { if (Objects.equal(recordLog.getCategoryLevelTwo(), "BYPASS")) { @@ -649,14 +652,15 @@ public class MesProductionRecordServiceImpl extends BaseMesService finishList = Stream.of("Product_finish","PART_OK","Part_Finish","Product_OK").collect(Collectors.toList()); + //List finishList = Stream.of("Product_finish","PART_OK","Part_Finish","Product_OK").collect(Collectors.toList()); + List finishList = Stream.of("Product_finish","Part_Finish").collect(Collectors.toList()); for (MesProductRecordLog recordLog : recordLogs) { if (Objects.equal(recordLog.getCategoryLevelTwo(), "BYPASS") && Objects.equal(recordLog.getEquipVariableValue(), "True")) { @@ -676,12 +680,20 @@ public class MesProductionRecordServiceImpl extends BaseMesService partition(List list, int pageSize, int pageNum) { + // 将 List 按照 PageSzie 拆分成多个List + List> partition = Lists.partition(list, pageSize); + // 总页数 + int pages = partition.size(); + pageNum = pageNum <= 0 ? 0 : (pageNum <= (pages - 1) ? pageNum : (pages - 1)); + return partition.get(pageNum); + } }