| | |
| | | /** |
| | | * 保存钣金统计数据 |
| | | */ |
| | | @Transactional |
| | | @Override |
| | | public void savePlateProcessStat() { |
| | | public List<ApsPlateProcessStat> computePlateProcessStat() { |
| | | String batchNum = IdUtils.fastSimpleUUID(); |
| | | List<ApsPlateProcessStat> tempList = apsPlateProcessStatMapper.queryTempStat(); |
| | | ApsPlateProcessStat apsPlateProcessStat = tempList.stream().filter(x -> x.getWorkOrderNo().equals("MO-250409003498")).findFirst().get(); |
| | | Map<String, List<ApsPlateProcessStat>> groupByOrderNo = tempList.stream().collect(groupingBy(ApsPlateProcessStat::getWorkOrderNo)); |
| | | Boolean hasBefore = false; |
| | | |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | List<ApsPlateProcessStat> totalList=new ArrayList<>(); |
| | | for (Map.Entry<String, List<ApsPlateProcessStat>> entry : groupByOrderNo.entrySet()) { |
| | | List<ApsPlateProcessStat> statPerOrder = entry.getValue(); |
| | | ArrayList<Map.Entry<String, List<ApsPlateProcessStat>>> orderProcessRoutes = new ArrayList<>(groupByOrderNo.entrySet()); |
| | | orderProcessRoutes.stream().parallel().forEach(x->{ |
| | | boolean hasBefore = false; |
| | | List<ApsPlateProcessStat> statPerOrder = x.getValue(); |
| | | /*num 为根据完工时间排序出的序号,按此排序,可保证是按完工时间倒叙排列*/ |
| | | statPerOrder.sort((a, b)->a.getNum().compareTo(b.getNum())); |
| | | ApsPlateProcessStat last=null; |
| | |
| | | } |
| | | last = stat; |
| | | totalList.add(stat); |
| | | //apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); |
| | | } |
| | | hasBefore=false; |
| | | } |
| | | apsPlateProcessStatMapper.removeOtherStat(batchNum); |
| | | if(!totalList.isEmpty()){ |
| | | int batchSize = 1000; |
| | | totalList.forEach(x->x.setId(String.valueOf(IdUtil.getSnowflakeNextId()))); |
| | | for (int i = 0; i < totalList.size(); i += batchSize) { |
| | | int end = Math.min(i + batchSize, totalList.size()); |
| | | List<ApsPlateProcessStat> batch = totalList.subList(i, end); |
| | | apsPlateProcessStatMapper.batchInsertPlateStat(batch); |
| | | } |
| | | } |
| | | }); |
| | | return totalList; |
| | | } |
| | | |
| | | |