Fancy
2024-12-19 3c61c5f4bc92f75b4fe60653eaa676a21cde4325
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java
@@ -1,7 +1,12 @@
package com.dy.pmsOther.screen;
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.*;
import lombok.extern.slf4j.Slf4j;
@@ -13,11 +18,14 @@
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;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Slf4j
@Service
@@ -27,6 +35,9 @@
    private StaWipSnExMapper wipSnExDao;
    private StaDeviceProductionLogMapper deviceProductionLogDao;
    private StaRepairInfoMapper repairInfoDao;
    private PrAssemblyPlanMapper assemblyPlanDao;
    private OthStatisticWorkloadMapper workloadDao;
    @Autowired
    public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
        this.deviceLastDao = deviceLastDao;
@@ -48,8 +59,18 @@
    }
    @Autowired
    public void setAssemblyPlanDao(PrAssemblyPlanMapper assemblyPlanDao) {
        this.assemblyPlanDao = assemblyPlanDao;
    }
    @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) {
@@ -61,7 +82,7 @@
        if (deviceLast == null) {
            return null;
        }
        Map<String, Object> deviceInfo =new HashMap<>();
        Map<String, Object> deviceInfo = new HashMap<>();
        deviceInfo.put("deviceInfo", deviceLast);
        //查询设备日志
        List<StaDeviceProductionLog> log = deviceProductionLogDao.selectByDeviceNo(deviceNo);
@@ -79,23 +100,48 @@
    }
    public List<StaDeviceProductionLog> queryDeviceLog(String startTime, String endTime) {
        Date startDt = parseToDate(startTime,0);
        Date endDt = parseToDate(endTime,1);
        Date startDt = parseToDate(startTime, 0);
        Date endDt = parseToDate(endTime, 1);
        //查询设备日志
        List<StaDeviceProductionLog> log = deviceProductionLogDao.selectProductLog("",startDt,endDt);
        List<StaDeviceProductionLog> log = deviceProductionLogDao.selectProductLog("", startDt, endDt);
        return log;
    }
    private Date parseToDate(String strDt,long offDays) {
        LocalDateTime dt = LocalDateTime.of(LocalDate.now().plusDays(offDays), LocalTime.of(0,0,0)); // 今天24点
    private Date parseToDate(String strDt, long offDays) {
        LocalDateTime dt = LocalDateTime.of(LocalDate.now().plusDays(offDays), LocalTime.of(0, 0, 0)); // 今天24点
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        if (strDt.matches("\\d{4}(-\\d{2}){2} \\d{2}(:\\d{2}){2}")) {//2024-08-15 00:00:00
            dt = LocalDateTime.parse(strDt,dtf);
        }else if (strDt.matches("\\d{4}(-\\d{2}){2}")){
            dt = LocalDateTime.of(LocalDate.parse(strDt,dtf1), LocalTime.of(0,0,0));
            dt = LocalDateTime.parse(strDt, dtf);
        } else if (strDt.matches("\\d{4}(-\\d{2}){2}")) {
            dt = LocalDateTime.of(LocalDate.parse(strDt, dtf1), LocalTime.of(0, 0, 0));
        }
        Date date = Date.from(dt.atZone(ZoneId.systemDefault()).toInstant());
        return date;
    }
    public List<JSONObject> queryPlanList() {
        List<JSONObject> list = assemblyPlanDao.queryPlanList();
        /*Map<String, JSONObject> map = new ConcurrentHashMap<>(); // 使用并发安全的Map
        for (JSONObject item : list) {
            String planId = String.valueOf(item.getObj("planId"));
            JSONObject innerObject = new JSONObject()
                    .set("nodeId", String.valueOf(item.getObj("nodeId")))
                    .set("content", item.getObj("content"));
            if (map.containsKey(planId)) {
                JSONArray array = (JSONArray) map.get(planId).get("nodes");
                array.add(innerObject);
            } else {
                JSONArray array = new JSONArray();
                array.add(innerObject);
                JSONObject outObject = new JSONObject()
                        .set("planId", planId)
                        .set("planName", item.getObj("planName"))
                        .set("nodes", array);
                map.put(planId, outObject);
            }
        }
        return map.values().stream().collect(Collectors.toList());*/
        return list;
    }
}