zhanghl
2025-05-23 dec8951aae400e54f6ee83a8f95867dba9da8af1
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java
@@ -15,12 +15,16 @@
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;
@@ -51,6 +55,9 @@
    private ApsResourceGroupMapper resourceGroupMapper;
    @Autowired
    private ApsResourceGroupMapper apsResourceGroupMapper;
    @Resource
    private IApsAbnormalProcessAnalysisService analysisService;
    /**
     * 查询零件统计表
@@ -160,18 +167,22 @@
                if (stat.getCurrentProcessNumber().compareTo(stat.getRoadProcessNumber()) < 0) {
                    if (last != null) {
                        LocalDateTime lastStartDate = LocalDateTime.ofInstant(last.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault());
                        lastStartDate.plusHours(last.getProcessTotalTime());
                        stat.setProcessPlanStartDay(Date.from(lastStartDate.atZone(ZoneId.systemDefault()).toInstant()));
                        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();
    }
    /** 查询资源日历表
     */
@@ -218,8 +229,9 @@
                    else {
                        ApsResourceDateStat empty = new ApsResourceDateStat();
                        empty.setPlanDay(LocalDate.parse(planDay, formatter));
                        empty.setDesignTimes(resourceGroup.getDevicesQuantity().intValue()*resourceGroup.getTheoryHours().intValue());
                        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);
@@ -291,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()+"%");
                    }
                }