diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index b86c872..8bc7b4a 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -95,22 +95,33 @@ public class MesSpotCheckOrderService implements IMesSpotCheckOrderService { DdlPackBean packBean = getDdlPackBean(spotCheckOrder); pager = PagerHelper.getPager(pager, spotCheckOrderRepository.findByHqlWhereCount(packBean)); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"status","createDatetime"}, packBean); List resultList = spotCheckOrderRepository.findByHqlWherePage(packBean, pager); - if (CollectionUtils.isEmpty(resultList)) { - return new ListPager<>(resultList, pager); + if (CollectionUtils.isEmpty(resultList)) return new ListPager<>(resultList, pager); + + List equipmentCodeList = (resultList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipCode()))) + .map(MesSpotCheckOrder::getEquipCode).collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(equipmentCodeList)) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(spotCheckOrder.getOrganizeCode()); + if (equipmentCodeList.size() == 1) DdlPreparedPack.getStringEqualPack(equipmentCodeList.get(0), MesPcnExtConstWords.EQUIPMENT_CODE, ddlPackBean); + else DdlPreparedPack.getInPackList(equipmentCodeList, MesPcnExtConstWords.EQUIPMENT_CODE, ddlPackBean); + List mesEquipments = mesEquipmentRepository.findByHqlWhere(ddlPackBean); + Map> equipMap = mesEquipments.stream().collect(Collectors.groupingBy(MesEquipment::getEquipmentCode)); + if (!CollectionUtils.isEmpty(equipMap)) { + resultList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getEquipCode()))) + .forEach(o -> o.setEquipId(equipMap.containsKey(o.getEquipCode()) ? equipMap.get(o.getEquipCode()).get(0).getEquipId() : null)); + } } - List equipmentlist = resultList.stream().map(MesSpotCheckOrder::getEquipCode).collect(Collectors.toList()); - DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(spotCheckOrder.getOrganizeCode()); - DdlPreparedPack.getInPackList(equipmentlist, "equipmentCode", ddlPackBean); - List mesEquipments = mesEquipmentRepository.findByHqlWhere(ddlPackBean); - Map> map = mesEquipments.stream().collect(Collectors.groupingBy(MesEquipment::getEquipmentCode)); + List resultList2Create = resultList.stream().filter(o -> (null != o && o.getStatus().compareTo(MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()) == 0)).collect(Collectors.toList()); + List resultList2Other = resultList.stream().filter(o -> (null != o && o.getStatus().compareTo(MesExtEnumUtil.SPOT_CHECK_ORDER_STATUS.CREATE.getValue()) != 0)).collect(Collectors.toList()); - resultList.forEach(mesSpotCheckOrder -> { - mesSpotCheckOrder.setEquipId(map.get(mesSpotCheckOrder.getEquipCode()).get(0).getEquipId()); - }); + if (!CollectionUtils.isEmpty(resultList2Create)) resultList2Create = resultList2Create.stream().filter(o -> null != o).sorted(Comparator.comparing(MesSpotCheckOrder::getCreateDatetime).reversed()).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(resultList2Other)) resultList2Other = resultList2Other.stream().filter(o -> null != o).sorted(Comparator.comparing(MesSpotCheckOrder::getModifyDatetime).reversed()).collect(Collectors.toList()); + + resultList.clear(); + if (!CollectionUtils.isEmpty(resultList2Create)) resultList.addAll(resultList2Create); + if (!CollectionUtils.isEmpty(resultList2Other)) resultList.addAll(resultList2Other); return new ListPager<>(resultList, pager);