From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001 From: sfd <sun.sunshine@163.com> Date: 星期一, 26 五月 2025 15:04:45 +0800 Subject: [PATCH] 修改json类型转换错误 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java | 42 +++++++++++++++++++++++++++++++++--------- 1 files changed, 33 insertions(+), 9 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..c7bf07f 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,24 +157,32 @@ /*鍒ゆ柇褰撳墠宸ュ簭 褰撳墠宸ュ簭鍙湁涓�鏉�*/ 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()); + long seconds = last.getProcessTotalTime().multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); + LocalDateTime currentStartDate = lastStartDate.plusSeconds(seconds); + stat.setProcessPlanStartDay(Date.from(currentStartDate.atZone(ZoneId.systemDefault()).toInstant())); } } /*淇濆瓨涓婁竴姝ヨ绠楃殑 寮�宸ユ棩*/ last = stat; stat.setId(IdUtils.fastUUID().toString()); stat.setBatchNumber(batchNum); + stat.setDelFlag("0"); apsPartRouteStatMapper.insertApsPartRouteStat(stat); } } apsPartRouteStatMapper.deleteLastBatch(batchNum); + /*璁$畻骞朵繚瀛� 宸ュ簭寮傚父淇℃伅*/ + analysisService.batchSaveAbnormalInfo(); } /** 鏌ヨ璧勬簮鏃ュ巻琛� */ @@ -170,6 +191,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 +208,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,8 +229,9 @@ else { ApsResourceDateStat empty = new ApsResourceDateStat(); empty.setPlanDay(LocalDate.parse(planDay, formatter)); - empty.setDesignTimes(0); - empty.setRequireTimes(0); + // empty.setDesignTimes(resourceGroup.getDevicesQuantity().intValue()*resourceGroup.getTheoryHours().intValue()); + empty.setDesignTimes(resourceGroup.getTheoryHours().multiply(BigDecimal.valueOf( resourceGroup.getDevicesQuantity()))); + empty.setRequireTimes(BigDecimal.ZERO); empty.setResourceName(resourceName); empty.setResourceGroupName(resourceName); empty.setCapacityLoad(BigDecimal.ZERO); @@ -279,8 +303,8 @@ dataRow.createCell(0).setCellValue(resourceName); for (int j = 0; j < resourceDateStats.size(); j++) { ApsResourceDateStat apsResourceDateStat = resourceDateStats.get(j); - dataRow.createCell(j*3+1).setCellValue(apsResourceDateStat.getDesignTimes()); - dataRow.createCell(j*3+2).setCellValue(apsResourceDateStat.getRequireTimes()); + dataRow.createCell(j*3+1).setCellValue(apsResourceDateStat.getDesignTimes().doubleValue()); + dataRow.createCell(j*3+2).setCellValue(apsResourceDateStat.getRequireTimes().doubleValue()); dataRow.createCell(j*3+3).setCellValue(apsResourceDateStat.getCapacityLoad().doubleValue()+"%"); } } -- Gitblit v1.9.3