Lius
2024-07-15 c19842a8cc158631c970a9d41f73489579eb67ee
设备报警报表
已添加4个文件
已修改3个文件
402 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentAlarmController.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentAlarmDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentAlarmMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentAlarmMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentAlarmService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentAlarmServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentAlarmVo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/EquipmentAlarmController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package org.jeecg.modules.mdc.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
import org.jeecg.modules.mdc.entity.EquipmentAlarm;
import org.jeecg.modules.mdc.entity.EquipmentBeilvAlarm;
import org.jeecg.modules.mdc.entity.MdcTorqueConfig;
import org.jeecg.modules.mdc.service.IEquipmentAlarmService;
import org.jeecg.modules.mdc.vo.EquipmentAlarmVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
/**
 * @Description: è®¾å¤‡æŠ¥è­¦
 * @Author: lius
 * @Date: 2024-07-15
 * @Version: V1.0
 */
@Slf4j
@Api(tags = "设备报警")
@RestController
@RequestMapping("/mdc/equipmentAlarm")
public class EquipmentAlarmController extends JeecgController<EquipmentAlarm, IEquipmentAlarmService> {
    @Resource
    private IEquipmentAlarmService equipmentAlarmService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param equipmentAlarmVo
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @AutoLog(value = "设备报警-分页列表查询")
    @ApiOperation(value = "设备报警-分页列表查询", notes = "设备报警-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EquipmentAlarmVo equipmentAlarmVo,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        Page<EquipmentAlarmDto> page = new Page<EquipmentAlarmDto>(pageNo, pageSize);
        IPage<EquipmentAlarmDto> pageList = equipmentAlarmService.pageList(userId, page, equipmentAlarmVo, req);
        return Result.OK(pageList);
    }
    /**
     * å¯¼å‡ºexcel
     *
     * @param request
     * @param equipmentAlarmVo
     * @return
     */
    @AutoLog(value = "设备报警-导出")
    @ApiOperation(value = "设备报警-导出", notes = "设备报警-导出")
    @RequestMapping("/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EquipmentAlarmVo equipmentAlarmVo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        return this.equipmentAlarmService.exportXls(userId, equipmentAlarmVo);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/dto/EquipmentAlarmDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package org.jeecg.modules.mdc.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * @author Lius
 * @date 2024/7/15 13:54
 */
@Data
public class EquipmentAlarmDto {
    @Excel(name = "设备编号", width = 15)
    private String equipmentId;
    @Excel(name = "设备名称", width = 20)
    private String equipmentName;
    @Excel(name = "日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date collecttime;
    @Excel(name = "报警编号", width = 30)
    private String alarmNo;
    @Excel(name = "报警描述", width = 50)
    private String alarmContent;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentAlarmMapper.java
@@ -1,11 +1,34 @@
package org.jeecg.modules.mdc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
import org.jeecg.modules.mdc.entity.EquipmentAlarm;
import org.jeecg.modules.mdc.vo.EquipmentAlarmVo;
import java.util.List;
/**
 * @author: LiuS
 * @create: 2023-04-12 16:39
 */
public interface EquipmentAlarmMapper extends BaseMapper<EquipmentAlarm> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param page
     * @param equipmentAlarmVo
     * @return
     */
    IPage<EquipmentAlarmDto> pageList(Page<EquipmentAlarmDto> page, @Param("equipmentAlarmVo") EquipmentAlarmVo equipmentAlarmVo);
    /**
     * å¯¼å‡ºåˆ—表
     *
     * @param equipmentAlarmVo
     * @return
     */
    List<EquipmentAlarmDto> list(@Param("equipmentAlarmVo") EquipmentAlarmVo equipmentAlarmVo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentAlarmMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mdc.mapper.EquipmentAlarmMapper">
    <!--分页查询-->
    <select id="pageList" resultType="org.jeecg.modules.mdc.dto.EquipmentAlarmDto">
        SELECT
            t1.EquipmentID,
            t2.equipment_name,
            t1.collectTime,
            t1.AlarmNo,
            t1.AlarmContent
        FROM
            EquipmentAlarm t1 LEFT JOIN mdc_equipment t2 ON t1.EquipmentID = t2.equipment_id
        <where>
            <if test="equipmentAlarmVo.equipmentId != null and equipmentAlarmVo.equipmentId != ''">
                AND t1.equipment_id  LIKE CONCAT(CONCAT('%',#{equipmentAlarmVo.equipmentId}),'%')
            </if>
            <if test="equipmentAlarmVo.equipmentName != null and equipmentAlarmVo.equipmentName != ''">
                AND t1.equipment_id  LIKE CONCAT(CONCAT('%',#{equipmentAlarmVo.equipmentName}),'%')
            </if>
            <if test="equipmentAlarmVo.startTime != null and equipmentAlarmVo.endTime != null">
                AND t1.collectTime BETWEEN #{equipmentAlarmVo.startTime} AND #{equipmentAlarmVo.endTime}
            </if>
            <if test="equipmentAlarmVo.equipmentIdList != null and equipmentAlarmVo.equipmentIdList.size() > 0">
                AND t1.EquipmentID IN
                <foreach collection="equipmentAlarmVo.equipmentIdList" index="index" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
            AND t1.AlarmNo &lt;&gt; ''
        </where>
        ORDER BY t1.collectTime DESC
        <if test="equipmentAlarmVo.sortFlag != null and equipmentAlarmVo.sortFlag != ''">
            , t1.EquipmentID DESC
        </if>
    </select>
    <select id="list" resultType="org.jeecg.modules.mdc.dto.EquipmentAlarmDto">
        SELECT
        t1.EquipmentID,
        t2.equipment_name,
        t1.collectTime,
        t1.AlarmNo,
        t1.AlarmContent
        FROM
        EquipmentAlarm t1 LEFT JOIN mdc_equipment t2 ON t1.EquipmentID = t2.equipment_id
        <where>
            <if test="equipmentAlarmVo.equipmentId != null and equipmentAlarmVo.equipmentId != ''">
                AND t1.equipment_id  LIKE CONCAT(CONCAT('%',#{equipmentAlarmVo.equipmentId}),'%')
            </if>
            <if test="equipmentAlarmVo.equipmentName != null and equipmentAlarmVo.equipmentName != ''">
                AND t1.equipment_id  LIKE CONCAT(CONCAT('%',#{equipmentAlarmVo.equipmentName}),'%')
            </if>
            <if test="equipmentAlarmVo.startTime != null and equipmentAlarmVo.endTime != null">
                AND t1.collectTime BETWEEN #{equipmentAlarmVo.startTime} AND #{equipmentAlarmVo.endTime}
            </if>
            <if test="equipmentAlarmVo.equipmentIdList != null and equipmentAlarmVo.equipmentIdList.size() > 0">
                AND t1.EquipmentID IN
                <foreach collection="equipmentAlarmVo.equipmentIdList" index="index" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
            AND t1.AlarmNo &lt;&gt; ''
        </where>
        ORDER BY t1.collectTime DESC
        <if test="equipmentAlarmVo.sortFlag != null and equipmentAlarmVo.sortFlag != ''">
            , t1.EquipmentID DESC
        </if>
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentAlarmService.java
@@ -1,8 +1,14 @@
package org.jeecg.modules.mdc.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
import org.jeecg.modules.mdc.entity.EquipmentAlarm;
import org.jeecg.modules.mdc.vo.EquipmentAlarmVo;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
@@ -12,4 +18,25 @@
 */
public interface IEquipmentAlarmService extends IService<EquipmentAlarm> {
    List<EquipmentAlarm> findEquipmentAlarmByDate(String equipmentId, Date startTime, Date endTime);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param userId
     * @param page
     * @param equipmentAlarmVo
     * @param req
     * @return
     */
    IPage<EquipmentAlarmDto> pageList(String userId, Page<EquipmentAlarmDto> page, EquipmentAlarmVo equipmentAlarmVo, HttpServletRequest req);
    /**
     * å¯¼å‡º
     *
     * @param userId
     * @param equipmentAlarmVo
     * @return
     */
    ModelAndView exportXls(String userId, EquipmentAlarmVo equipmentAlarmVo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentAlarmServiceImpl.java
@@ -1,12 +1,29 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.EquipmentAlarmDto;
import org.jeecg.modules.mdc.entity.EquipmentAlarm;
import org.jeecg.modules.mdc.entity.MdcEquipmentOvertime;
import org.jeecg.modules.mdc.mapper.EquipmentAlarmMapper;
import org.jeecg.modules.mdc.service.IEquipmentAlarmService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.vo.EquipmentAlarmVo;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -16,10 +33,105 @@
 */
@Service
public class EquipmentAlarmServiceImpl extends ServiceImpl<EquipmentAlarmMapper, EquipmentAlarm> implements IEquipmentAlarmService {
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Override
    public List<EquipmentAlarm> findEquipmentAlarmByDate(String equipmentId, Date startTime, Date endTime) {
        return this.list(new LambdaQueryWrapper<EquipmentAlarm>()
                .ge(EquipmentAlarm::getCollecttime, startTime).le(EquipmentAlarm::getCollecttime, endTime)
                .eq(EquipmentAlarm::getEquipmentid, equipmentId).orderByDesc(EquipmentAlarm::getCollecttime));
    }
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param userId
     * @param page
     * @param equipmentAlarmVo
     * @param req
     * @return
     */
    @Override
    public IPage<EquipmentAlarmDto> pageList(String userId, Page<EquipmentAlarmDto> page, EquipmentAlarmVo equipmentAlarmVo, HttpServletRequest req) {
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(equipmentAlarmVo.getParentId()) && StringUtils.isEmpty(equipmentAlarmVo.getEquipmentId())) {
            if ("2".equals(equipmentAlarmVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, equipmentAlarmVo.getParentId());
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, equipmentAlarmVo.getParentId());
            }
        } else if (StringUtils.isNotEmpty(equipmentAlarmVo.getEquipmentId())) {
            //单台设备信息
            equipmentAlarmVo.setEquipmentIdList(Collections.singletonList(equipmentAlarmVo.getEquipmentId()));
        } else {
            //查询用户拥有的所有设备信息
            if ("2".equals(equipmentAlarmVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (equipmentAlarmVo.getEquipmentIdList() == null || equipmentAlarmVo.getEquipmentIdList().isEmpty()) {
            equipmentAlarmVo.setEquipmentIdList(equipmentIds);
        }
        if (equipmentAlarmVo.getEquipmentIdList() == null || equipmentAlarmVo.getEquipmentIdList().isEmpty()) {
            return null;
        }
        return this.baseMapper.pageList(page, equipmentAlarmVo);
    }
    @Override
    public ModelAndView exportXls(String userId, EquipmentAlarmVo equipmentAlarmVo) {
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(equipmentAlarmVo.getParentId()) && StringUtils.isEmpty(equipmentAlarmVo.getEquipmentId())) {
            if ("2".equals(equipmentAlarmVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, equipmentAlarmVo.getParentId());
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, equipmentAlarmVo.getParentId());
            }
        } else if (StringUtils.isNotEmpty(equipmentAlarmVo.getEquipmentId())) {
            //单台设备信息
            equipmentAlarmVo.setEquipmentIdList(Collections.singletonList(equipmentAlarmVo.getEquipmentId()));
        } else {
            //查询用户拥有的所有设备信息
            if ("2".equals(equipmentAlarmVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (equipmentAlarmVo.getEquipmentIdList() == null || equipmentAlarmVo.getEquipmentIdList().isEmpty()) {
            equipmentAlarmVo.setEquipmentIdList(equipmentIds);
        }
        if (equipmentAlarmVo.getEquipmentIdList() == null || equipmentAlarmVo.getEquipmentIdList().isEmpty()) {
            return null;
        }
        // Step.2 AutoPoi å¯¼å‡ºExcel
        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        List<EquipmentAlarmDto> equipmentAlarmDtos = this.baseMapper.list(equipmentAlarmVo);
        // å¯¼å‡ºæ–‡ä»¶åç§°
        mv.addObject(NormalExcelConstants.FILE_NAME, "设备报警列表");
        mv.addObject(NormalExcelConstants.CLASS, EquipmentAlarmDto.class);
        //获取当前登录用户
        //update-begin---author:wangshuai ---date:20211227  for:[JTC-116]导出人写死了------------
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备报警列表数据", "导出人:" + user.getRealname(), "设备报警"));
        //update-end---author:wangshuai ---date:20211227  for:[JTC-116]导出人写死了------------
        mv.addObject(NormalExcelConstants.DATA_LIST, equipmentAlarmDtos);
        return mv;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentAlarmVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package org.jeecg.modules.mdc.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @author Lius
 * @date 2024/7/15 13:42
 */
@Data
public class EquipmentAlarmVo {
    /**
     * å¼€å§‹æ—¶é—´  ->  yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "开始时间(yyyy-MM-dd HH:mm:ss)")
    private String startTime;
    /**
     * ç»“束时间  ->  yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty(value = "结束时间(yyyy-MM-dd HH:mm:ss)")
    private String endTime;
    /**
     * æ ‘类型    ->  1:车间层级   2:部门层级
     */
    @ApiModelProperty(value = "树类型")
    private String typeTree;
    /**
     * å±‚级ID
     */
    @ApiModelProperty(value = "层级ID")
    private String parentId;
    /**
     * è®¾å¤‡Id
     */
    @ApiModelProperty(value = "设备Id")
    private String equipmentId;
    /**
     * è®¾å¤‡Id
     */
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;
    /**
     *  æŠ¥è­¦å·
     */
    @ApiModelProperty(value = "报警号")
    private String alarmNo;
    /**
     * æŽ’序标志
     */
    @ApiModelProperty(value = "排序标志")
    private String sortFlag;
    /**
     * è®¾å¤‡ids
     */
    @ApiModelProperty(value = "设备ids")
    private List<String> equipmentIdList;
}