Fancy
2024-08-15 e39d9bfeee0b62a60dc08e2dc93e0a05f3d6b503
add report
3个文件已修改
2个文件已添加
201 ■■■■■ 已修改文件
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaDeviceProductionLogMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportCtrl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaDeviceProductionLogMapper.java
@@ -3,6 +3,7 @@
import com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog;
import org.apache.ibatis.annotations.Mapper;
import java.util.Date;
import java.util.List;
/**
@@ -24,6 +25,8 @@
    List<StaDeviceProductionLog> selectByDeviceNo(String deviceNo);
    List<StaDeviceProductionLog> selectProductLog(String deviceNo, Date startTime, Date endTime);
    int updateByPrimaryKeySelective(StaDeviceProductionLog record);
    int updateByPrimaryKey(StaDeviceProductionLog record);
pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
@@ -198,10 +198,10 @@
            <if test="lineName != null and lineName != '' ">
                and ll.name like concat('%', #{lineName}, '%')
            </if>
            <if test="startTime != null and startTime !=''">
            <if test="startTime != null">
                and l.start_time <![CDATA[ > ]]> #{startTime}
            </if>
            <if test="endTime != null and endTime !=''">
            <if test="endTime != null">
                and l.start_time <![CDATA[ < ]]> #{endTime}
            </if>
            <if test="userId != null and userId !=''">
@@ -265,10 +265,10 @@
            <if test="lineName != null and lineName != '' ">
                and ll.name like concat('%', #{lineName}, '%')
            </if>
            <if test="startTime != null and startTime !=''">
            <if test="startTime != null">
                and l.start_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null and endTime !=''">
            <if test="endTime != null">
                and l.start_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
            <if test="userId != null and userId !=''">
pms-parent/pms-global/src/main/resources/mapper/StaDeviceProductionLogMapper.xml
@@ -62,6 +62,43 @@
        ORDER BY t.id DESC
    </select>
    <select id="selectProductLog"  resultMap="joinResultMap">
        select
        t.* ,p.`name` plan_name,s.`name` station_name,u.`name` update_user_name
        FROM
        (
        select <include refid="Base_Column_List" /> from sta_device_production_log_past
        <where>
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
        union
        select <include refid="Base_Column_List" /> from sta_device_production_log
        <where>
            <if test="deviceNo != null and deviceNo !=''">
                and device_no = #{deviceNo,jdbcType=VARCHAR}
            </if>
            <if test="startTime != null">
                and out_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
            </if>
            <if test="endTime != null">
                and out_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
            </if>
        </where>
        ) t
        left join pr_assembly_plan p on t.plan_id=p.id
        left join plt_station s on s.id = t.station_id
        left JOIN ba_user u on u.id=t.updated_by
        ORDER BY t.id DESC
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        delete from sta_device_production_log
        where  id = #{id,jdbcType=BIGINT} 
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportCtrl.java
New file
@@ -0,0 +1,50 @@
package com.dy.pmsOther.screen;
import com.dy.common.aop.SsoPowerAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pmsGlobal.aop.Log;
import com.dy.pmsGlobal.pojoPr.PrProductionProcess;
import com.dy.pmsGlobal.pojoSta.StaDeviceProductionLog;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
 * 大屏看板
 */
@Slf4j
@RestController
@RequestMapping(path="screen")
public class ScreenReportCtrl {
    private ScreenReportSv sv;
    @Autowired
    public void setSv(ScreenReportSv screenSv){
        this.sv = screenSv;
    }
    @GetMapping(path = "getDeviceInfo")
    public BaseResponse<Map<String, Object>> getDeviceInfo(String deviceNo) {
        log.info("DeviceReportCtl.getDeviceInfo():{}",deviceNo);
        Map<String, Object> result = sv.getDeviceInfo(deviceNo);
        return BaseResponseUtils.buildSuccess(null);
    }
    /**
     * 根据时间区间查询 所有过站记录
     * @return
     */
    @GetMapping(path="queryDeviceLog")
    @Log("查询生产记录")
    public BaseResponse<List<Map<String,String>>> queryDeviceLog(String startTime, String endTime){
        List<StaDeviceProductionLog> log = sv.queryDeviceLog(startTime,endTime);
        return BaseResponseUtils.buildSuccess(log);
    }
}
pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java
New file
@@ -0,0 +1,103 @@
package com.dy.pmsOther.screen;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.dy.pmsGlobal.daoSta.*;
import com.dy.pmsGlobal.pojoSta.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class ScreenReportSv {
    private StaDeviceLastMapper deviceLastDao;
    private StaDeviceLifeMapper deviceLifeDao;
    private StaWipSnExMapper wipSnExDao;
    private StaDeviceProductionLogMapper deviceProductionLogDao;
    private StaRepairInfoMapper repairInfoDao;
    @Autowired
    public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
        this.deviceLastDao = deviceLastDao;
    }
    @Autowired
    public void setDeviceLifeDao(StaDeviceLifeMapper deviceLifeDao) {
        this.deviceLifeDao = deviceLifeDao;
    }
    @Autowired
    public void setWipSnExDao(StaWipSnExMapper wipSnExDao) {
        this.wipSnExDao = wipSnExDao;
    }
    @Autowired
    public void setDeviceProductionLogDao(StaDeviceProductionLogMapper deviceProductionLogDao) {
        this.deviceProductionLogDao = deviceProductionLogDao;
    }
    @Autowired
    public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) {
        this.repairInfoDao = repairInfoDao;
    }
    public Map<String, Object> getDeviceInfo(String deviceNo) {
        if (StringUtils.isBlank(deviceNo)) {
            return null;
        }
        // 查询设备信息
        StaDeviceLast deviceLast = deviceLastDao.selectByDeviceNo(deviceNo);
        if (deviceLast == null) {
            return null;
        }
        Map<String, Object> deviceInfo =new HashMap<>();
        deviceInfo.put("deviceInfo", deviceLast);
        //查询设备日志
        List<StaDeviceProductionLog> log = deviceProductionLogDao.selectByDeviceNo(deviceNo);
        deviceInfo.put("deviceLog", log);
        // 查询设备生命周期
        List<StaDeviceLife> deviceLife = deviceLifeDao.selectByDeviceNo(deviceNo);
        deviceInfo.put("deviceLife", deviceLife);
        // 查询设备维修信息
        List<StaRepairInfo> repairInfo = repairInfoDao.selectByDeviceNo(deviceNo);
        deviceInfo.put("deviceRepair", repairInfo);
        // 查询设备附件信息
        List<StaWipSnEx> wipSnEx = wipSnExDao.selectByDeviceNo(deviceNo);
        deviceInfo.put("deviceAttach", wipSnEx);
        return deviceInfo;
    }
    public List<StaDeviceProductionLog> queryDeviceLog(String startTime, String endTime) {
        Date startDt = parseToDate(startTime,0);
        Date endDt = parseToDate(endTime,1);
        //查询设备日志
        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点
        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));
        }
        Date date = Date.from(dt.atZone(ZoneId.systemDefault()).toInstant());
        return date;
    }
}