| | |
| | | import org.apache.poi.xssf.streaming.SXSSFRow; |
| | | import org.apache.poi.xssf.streaming.SXSSFSheet; |
| | | import org.apache.poi.xssf.streaming.SXSSFWorkbook; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.YearMonth; |
| | | import java.time.ZoneId; |
| | | import java.time.*; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | import static java.util.stream.Collectors.groupingBy; |
| | | |
| | | /** |
| | | * 气体管路产能负载统计Service业务层处理 |
| | |
| | | //工序名称 |
| | | apsGasPipingRouteStat.setProcessName(apsProcessRoute.getProcessName()); |
| | | //工序号 |
| | | apsGasPipingRouteStat.setRoadProcessNumber(apsProcessRoute.getProcessNumber()); |
| | | apsGasPipingRouteStat.setRoadProcessNumber( new BigDecimal(apsProcessRoute.getProcessNumber()) ); |
| | | //标准工时 |
| | | apsGasPipingRouteStat.setStandardTime(apsProcessRoute.getStandardTime()); |
| | | //专业 |
| | |
| | | formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | simpleDateFormat = new SimpleDateFormat("yyyy-MM"); |
| | | } |
| | | apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(apsGasPipingRouteStat); |
| | | ApsGasPipingRouteStat queryStatParam = new ApsGasPipingRouteStat(); |
| | | BeanUtils.copyProperties(apsGasPipingRouteStat,queryStatParam); |
| | | queryStatParam.setMajor(""); |
| | | apsGasPipingRouteStats = apsGasPipingRouteStatMapper.selectApsGasPipingRouteStatList(queryStatParam); |
| | | //根据开工日进行升序排序 |
| | | apsGasPipingRouteStats.sort((a, b)->a.getProcessPlanStartDay().compareTo(b.getProcessPlanStartDay())); |
| | | //工序开工日期 |
| | |
| | | } |
| | | // 批量插入以提高性能 |
| | | if (!cptStateList.isEmpty()) { |
| | | int batchSize = 500; |
| | | int batchSize = 1000; |
| | | int size = cptStateList.size(); |
| | | for (int i = 0; i < size; i += batchSize) { |
| | | int end = Math.min(i + batchSize, size); |