From f34a1c37eefdb603ac67abd274c901c97009f93f Mon Sep 17 00:00:00 2001 From: huangjiayang <5265313@qq.com> Date: 星期三, 23 四月 2025 13:05:38 +0800 Subject: [PATCH] 【UPDATE】工序数据查询开启分页查询 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java | 33 +++++++++++++++++++++++++++------ 1 files changed, 27 insertions(+), 6 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java index bca5e70..eb24cf0 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java @@ -3,6 +3,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; @@ -13,12 +14,17 @@ import com.aps.common.core.web.domain.AjaxResult; import com.aps.core.domain.ApsPartPlan; import com.aps.core.domain.ApsResourceDateStat; +import com.aps.core.domain.ApsResourceGroup; +import com.aps.core.mapper.ApsAbnormalProcessAnalysisMapper; import com.aps.core.mapper.ApsResourceGroupMapper; +import com.aps.core.service.IApsAbnormalProcessAnalysisService; +import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.IOUtils; +import org.apache.poi.util.Removal; import org.apache.poi.xssf.streaming.SXSSFCell; import org.apache.poi.xssf.streaming.SXSSFRow; import org.apache.poi.xssf.streaming.SXSSFSheet; @@ -28,6 +34,7 @@ import com.aps.core.mapper.ApsPartRouteStatMapper; import com.aps.core.domain.ApsPartRouteStat; import com.aps.core.service.IApsPartRouteStatService; +import org.springframework.transaction.annotation.Transactional; import static java.util.stream.Collectors.groupingBy; @@ -46,6 +53,11 @@ private ApsPartRouteStatMapper apsPartRouteStatMapper; @Autowired private ApsResourceGroupMapper resourceGroupMapper; + @Autowired + private ApsResourceGroupMapper apsResourceGroupMapper; + + @Resource + private IApsAbnormalProcessAnalysisService analysisService; /** * 鏌ヨ闆朵欢缁熻琛� @@ -125,6 +137,7 @@ /** * 鏌ヨ闆朵欢宸ュ簭骞舵洿鏂拌鍒掑紑宸ユ棩鏈� * */ + @Transactional @Override public void updatePartRoutPlanDate() { List<ApsPartRouteStat> tempList = apsPartRouteStatMapper.selectPartRoutStat(); @@ -144,14 +157,18 @@ /*鍒ゆ柇褰撳墠宸ュ簭 褰撳墠宸ュ簭鍙湁涓�鏉�*/ if (stat.getCurrentProcessNumber().equals(stat.getRoadProcessNumber())) { /* 瀵� stat.getProcessPlanStartDay() 鍜屽綋鍓嶆棩鏈� 杩涜瀵规瘮锛屽彧瀵规瘮鍒版棩锛屼笉鐢ㄧ鍗佸垎绉�*/ - if (stat.getProcessPlanStartDay().toLocalDate().isBefore(LocalDateTime.now().toLocalDate())) { - stat.setProcessPlanStartDay(LocalDateTime.now()); + LocalDate startLocalDate = LocalDate.ofInstant(stat.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault()); + LocalDate nowLocalDate = LocalDate.now(); + if (startLocalDate.isBefore(nowLocalDate)) { + stat.setProcessPlanStartDay(new Date()); } } /*鏈紑宸ュ伐搴忕殑璁″垝寮�宸ユ棩=涓婁竴閬撳伐搴忕殑璁″垝寮�宸ユ棩+涓婁竴閬撳伐搴忕殑宸ュ簭鎬诲伐鏃躲��*/ if (stat.getCurrentProcessNumber().compareTo(stat.getRoadProcessNumber()) < 0) { if (last != null) { - stat.setProcessPlanStartDay(last.getProcessPlanStartDay().plusHours(last.getProcessTotalTime())); + LocalDateTime lastStartDate = LocalDateTime.ofInstant(last.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault()); + lastStartDate.plusHours(last.getProcessTotalTime().longValue()); + stat.setProcessPlanStartDay(Date.from(lastStartDate.atZone(ZoneId.systemDefault()).toInstant())); } } /*淇濆瓨涓婁竴姝ヨ绠楃殑 寮�宸ユ棩*/ @@ -162,6 +179,8 @@ } } apsPartRouteStatMapper.deleteLastBatch(batchNum); + /*璁$畻骞朵繚瀛� 宸ュ簭寮傚父淇℃伅*/ + analysisService.batchSaveAbnormalInfo(); } /** 鏌ヨ璧勬簮鏃ュ巻琛� */ @@ -170,6 +189,7 @@ /*鏌ュ嚭鎵�鏈夌粺璁$殑鏁版嵁*/ AjaxResult result = new AjaxResult(200, "鐢熸垚鎴愬姛"); List<ApsResourceDateStat> list = apsPartRouteStatMapper.selectResourceDateStat(); + List<ApsResourceGroup> resourceGroupList = apsResourceGroupMapper.selectApsResourceGroupList(new ApsResourceGroup()); if (!list.isEmpty()) { /*姹傚嚭璁″垝鐨勬渶澶ф椂闂达紝娌℃湁 璁剧疆涓哄綋鍓嶆椂闂�+15澶�*/ ApsResourceDateStat apsResourceDateStat = list.stream().max(Comparator.comparing(ApsResourceDateStat::getPlanDay)).orElse(null); @@ -186,10 +206,11 @@ startDay = startDay.plus(1, ChronoUnit.DAYS); } /*缁勭粐鍑哄垪澶存暟鎹�*/ - List<String> resourceNames =list.stream().map(ApsResourceDateStat::getResourceName).distinct().toList(); + /*鍑嗗璧勬簮缁勪俊鎭�*/ List<Map<String, List<ApsResourceDateStat>>> targetList = new ArrayList<>(); - resourceNames.forEach(resourceName -> { + resourceGroupList.forEach(resourceGroup -> { + String resourceName=resourceGroup.getResourceGroupName(); /*鏍规嵁鏃ユ湡琛ㄥご鐨勯『搴忥紝缁勭粐鍑烘瘡涓棩鏈熶笅鐨勭粺璁¢」鐩�*/ Map<String, List<ApsResourceDateStat>> maps = new HashMap<>(Map.of()); List<ApsResourceDateStat> currentDaysResouces=new ArrayList<>(); @@ -206,7 +227,7 @@ else { ApsResourceDateStat empty = new ApsResourceDateStat(); empty.setPlanDay(LocalDate.parse(planDay, formatter)); - empty.setDesignTimes(0); + empty.setDesignTimes(resourceGroup.getDevicesQuantity().intValue()*resourceGroup.getTheoryHours().intValue()); empty.setRequireTimes(0); empty.setResourceName(resourceName); empty.setResourceGroupName(resourceName); -- Gitblit v1.9.3