Fancy
2024-10-12 6791263bef9e25fce3521ac7632622294b6fb56e
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java
@@ -4,6 +4,8 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.dy.common.springUtil.SpringContextUtil;
import com.dy.pmsGlobal.daoOth.OthStatisticWorkloadMapper;
import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
import com.dy.pmsGlobal.daoSta.*;
import com.dy.pmsGlobal.pojoSta.*;
@@ -16,6 +18,7 @@
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
import java.util.Date;
import java.util.HashMap;
@@ -33,6 +36,8 @@
    private StaDeviceProductionLogMapper deviceProductionLogDao;
    private StaRepairInfoMapper repairInfoDao;
    private PrAssemblyPlanMapper assemblyPlanDao;
    private OthStatisticWorkloadMapper workloadDao;
    @Autowired
    public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
        this.deviceLastDao = deviceLastDao;
@@ -61,6 +66,11 @@
    @Autowired
    public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) {
        this.repairInfoDao = repairInfoDao;
    }
    @Autowired
    public void setWorkloadDao(OthStatisticWorkloadMapper workloadDao) {
        this.workloadDao = workloadDao;
    }
    public Map<String, Object> getDeviceInfo(String deviceNo) {
@@ -134,8 +144,31 @@
        return map.values().stream().collect(Collectors.toList());
    }
    public void test() {
        //OthStatisticWorkloadMapper workloadMapper = SpringContextUtil.getBean(OthStatisticWorkloadMapper.class);
        //找到最大一条日期记录
        Date maxDate = workloadDao.selectMaxDate();
        //往后循环天数汇总
        if (maxDate != null) {
            //循环统计
            LocalDate firstDay = maxDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            LocalDate today = LocalDate.now();
            LocalDate nextDate = firstDay.plusDays(1);
            //today 要统计  firstday不统计
            long daysBetween = ChronoUnit.DAYS.between(firstDay, today);
            if (daysBetween > 30) {
                daysBetween = 30;
                nextDate = firstDay.plusDays(daysBetween);
            }
            for (int i = 1; i <= daysBetween; i++) {
                Date startDt = Date.from(LocalDateTime.of(nextDate, LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant());
                Date endDt = Date.from(LocalDateTime.of(nextDate, LocalTime.of(23, 59, 59)).atZone(ZoneId.systemDefault()).toInstant());
                workloadDao.insertBatch(startDt, endDt);
                nextDate = firstDay.plusDays(i);
            }
        }
    }
}