Lius
2025-02-18 3423bb9ee5b25d270a00763b69ed73970d790f63
update
已添加8个文件
已修改16个文件
907 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDownTimeController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMttrInfoController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcRepairInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDownTime.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMttrInfo.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcRepairInfo.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDownTimeMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMttrInfoMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcRepairInfoMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDownTimeMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMttrInfoMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcRepairInfoMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMttrInfoService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/LogTableServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDownTimeServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMttrInfoServiceImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcRepairInfoServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/FileUtils.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/SqlExecutor.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcMttrInfoVo.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/util/FileUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDownTimeController.java
@@ -170,7 +170,7 @@
    @AutoLog(value = "设备故障停机时长表-计算MTBF")
    @ApiOperation(value = "设备故障停机时长表-计算MTBF", notes = "设备故障停机时长表-计算MTBF")
    @PostMapping(value = "/computeMtbf")
    public Result<?> computeMtbf(@RequestBody String month) {
    public Result<?> computeMtbf(@RequestParam(name = "month", required = true) String month) {
        mdcDownTimeService.computeMtbf(month);
        return Result.OK("计算成功!");
    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcMttrInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
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.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.entity.MdcOeeInfo;
import org.jeecg.modules.mdc.service.IMdcMttrInfoService;
import org.jeecg.modules.mdc.vo.MdcMttrInfoVo;
import org.jeecg.modules.mdc.vo.MdcOeeInfoVo;
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: 2025-02-18
 */
@Slf4j
@Api(tags = "设备故障维修表")
@RestController
@RequestMapping("/mdc/mdcMttrInfo")
public class MdcMttrInfoController extends JeecgController<MdcMttrInfo, IMdcMttrInfoService> {
    @Resource
    private IMdcMttrInfoService mdcMttrInfoService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param mdcMttrInfoVo
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @AutoLog(value = "设备故障维修表-分页列表查询")
    @ApiOperation(value = "设备故障维修表-分页列表查询", notes = "设备故障维修表-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(MdcMttrInfoVo mdcMttrInfoVo,
                                   @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<MdcMttrInfo> page = new Page<MdcMttrInfo>(pageNo, pageSize);
        IPage<MdcMttrInfo> pageList = mdcMttrInfoService.pageList(userId, page, mdcMttrInfoVo, req);
        return Result.OK(pageList);
    }
    /**
     * å¯¼å‡ºexcel
     *
     * @param request
     * @param mdcMttrInfoVo
     */
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, MdcMttrInfoVo mdcMttrInfoVo) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        return mdcMttrInfoService.exportXls(userId, mdcMttrInfoVo);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcRepairInfoController.java
@@ -170,7 +170,7 @@
    @AutoLog(value = "设备维修时长表-计算MTTR")
    @ApiOperation(value = "设备维修时长表-计算MTTR", notes = "设备维修时长表-计算MTTR")
    @PostMapping(value = "/computeMttr")
    public Result<?> computeMttr(@RequestBody String month) {
    public Result<?> computeMttr(@RequestParam(name = "month", required = true) String month) {
        mdcRepairInfoService.computeMttr(month);
        return Result.OK("计算成功!");
    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDownTime.java
@@ -10,6 +10,7 @@
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * @Description: è®¾å¤‡æ•…障停机时长表
@@ -38,10 +39,10 @@
    @ApiModelProperty(value = "日期")
    private String theDate;
    /**
     * æ•…障停机时长(min)
     * æ•…障停机时长(hour)
     */
    @Excel(name = "故障停机时长(min)", width = 15)
    @ApiModelProperty(value = "故障停机时长(min)")
    private Integer downLong;
    @Excel(name = "故障停机时长(hour)", width = 15)
    @ApiModelProperty(value = "故障停机时长(hour)")
    private BigDecimal downLong;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcMttrInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package org.jeecg.modules.mdc.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * @author Lius
 * @date 2025/2/7 9:31
 */
@Data
@TableName("mdc_mttr_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "mdc_mttr_info对象", description = "设备故障维修表")
public class MdcMttrInfo extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = -4164370727294921773L;
    /**
     * è®¾å¤‡ç¼–号
     */
    @Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
    private String equipmentId;
    /**
     * æ—¥æœŸ
     */
    @Excel(name = "日期", width = 15)
    @ApiModelProperty(value = "日期")
    private String theDate;
    /**
     * æ—¥åŽ†æ—¶é—´
     */
    @Excel(name = "日历时间", width = 15)
    @ApiModelProperty(value = "日历时间(hour)")
    private BigDecimal calendarLong = BigDecimal.ZERO;
    /**
     * æ€»æ•…障停机时间
     */
    @Excel(name = "总故障停机时间", width = 15)
    @ApiModelProperty(value = "总故障停机时间(hour)")
    private BigDecimal totalDownLong = BigDecimal.ZERO;
    /**
     * æ€»æ•…障次数
     */
    @Excel(name = "总故障次数", width = 15)
    @ApiModelProperty(value = "总故障次数")
    private Integer totalDownCount = 0;
    /**
     * MTBF
     */
    @Excel(name = "MTBF", width = 15)
    @ApiModelProperty(value = "MTBF(hour)")
    private BigDecimal mtbf = BigDecimal.ZERO;
    /**
     * æ€»ç»´ä¿®æ—¶é—´
     */
    @Excel(name = "总维修时间", width = 15)
    @ApiModelProperty(value = "总维修时间(hour)")
    private BigDecimal totalRepairLong = BigDecimal.ZERO;
    /**
     * æ€»ç»´ä¿®æ¬¡æ•°
     */
    @Excel(name = "总维修次数", width = 15)
    @ApiModelProperty(value = "总维修次数")
    private Integer totalRepairCount = 0;
    /**
     * MTTR
     */
    @Excel(name = "MTTR", width = 15)
    @ApiModelProperty(value = "MTTR(hour)")
    private BigDecimal mttr = BigDecimal.ZERO;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcOeeInfo.java
@@ -24,6 +24,8 @@
@ApiModel(value = "mdc_oee_info对象", description = "OEE表")
public class MdcOeeInfo extends JeecgEntity implements Serializable {
    private static final long serialVersionUID = -1029070983514140912L;
    /**
     * è®¾å¤‡ç¼–号
     */
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcRepairInfo.java
@@ -10,6 +10,7 @@
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * @Description: è®¾å¤‡ç»´ä¿®æ—¶é•¿è¡¨
@@ -30,18 +31,18 @@
     */
    @Excel(name = "设备编号", width = 15)
    @ApiModelProperty(value = "设备编号")
    private java.lang.String equipmentId;
    private String equipmentId;
    /**
     * æ—¥æœŸ
     */
    @Excel(name = "日期", width = 15)
    @ApiModelProperty(value = "日期")
    private java.lang.String theDate;
    private String theDate;
    /**
     * ç»´ä¿®æ—¶é•¿(min)
     * ç»´ä¿®æ—¶é•¿(hour)
     */
    @Excel(name = "维修时长(min)", width = 15)
    @ApiModelProperty(value = "维修时长(min)")
    private java.lang.Integer repairLong;
    @Excel(name = "维修时长(hour)", width = 15)
    @ApiModelProperty(value = "维修时长(hour)")
    private BigDecimal repairLong;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDownTimeMapper.java
@@ -7,6 +7,8 @@
import org.jeecg.modules.mdc.entity.MdcDownTime;
import org.jeecg.modules.mdc.vo.MdcDownTimeVo;
import java.math.BigDecimal;
/**
 * @Description: è®¾å¤‡æ•…障停机时长表
 * @Author: Lius
@@ -23,4 +25,19 @@
     */
    IPage<MdcDownTime> pageList(Page<MdcDownTime> page, @Param("mdcDownTimeVo") MdcDownTimeVo mdcDownTimeVo);
    /**
     * æŸ¥è¯¢å½“月总故障停机时间
     *
     * @param month
     * @return
     */
    BigDecimal findTotalDownLong(@Param("month") String month);
    /**
     * æŸ¥è¯¢å½“月总故障停机次数
     *
     * @param month
     * @return
     */
    Integer findTotalDownCount(@Param("month") String month);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcMttrInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
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.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.vo.MdcMttrInfoVo;
/**
 * @author Lius
 * @date 2025/2/18 13:53
 */
public interface MdcMttrInfoMapper extends BaseMapper<MdcMttrInfo> {
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param page
     * @param mdcMttrInfoVo
     * @return
     */
    IPage<MdcMttrInfo> pageList(Page<MdcMttrInfo> page, @Param("mdcMttrInfoVo") MdcMttrInfoVo mdcMttrInfoVo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcRepairInfoMapper.java
@@ -7,6 +7,8 @@
import org.jeecg.modules.mdc.entity.MdcRepairInfo;
import org.jeecg.modules.mdc.vo.MdcRepairInfoVo;
import java.math.BigDecimal;
/**
 * @Description: è®¾å¤‡ç»´ä¿®æ—¶é•¿è¡¨
 * @Author: Lius
@@ -22,4 +24,20 @@
     * @return
     */
    IPage<MdcRepairInfo> pageList(Page<MdcRepairInfo> page, @Param("mdcRepairInfoVo") MdcRepairInfoVo mdcRepairInfoVo);
    /**
     * æŸ¥è¯¢å½“月总维修时间
     *
     * @param month
     * @return
     */
    BigDecimal findTotalRepairLong(@Param("month") String month);
    /**
     * æŸ¥è¯¢å½“月总维修次数
     *
     * @param month
     * @return
     */
    Integer findTotalRepairCount(@Param("month") String month);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDownTimeMapper.xml
@@ -27,4 +27,24 @@
        </where>
        ORDER BY the_date DESC, equipment_id ASC
    </select>
    <!--查询当月总故障停机时间-->
    <select id="findTotalDownLong" resultType="java.math.BigDecimal">
        SELECT
            SUM(down_long)
        FROM
            mdc_down_time
        WHERE
            the_date LIKE CONCAT(#{month}, '%')
    </select>
    <!--查询当月总故障停机次数-->
    <select id="findTotalDownCount" resultType="java.lang.Integer">
        SELECT
            COUNT(down_long)
        FROM
            mdc_down_time
        WHERE
            the_date LIKE CONCAT(#{month}, '%')
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcMttrInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<?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.MdcMttrInfoMapper">
    <!--分页列表-->
    <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcMttrInfo">
        SELECT
            *
        FROM
            mdc_mttr_info
        <where>
            <if test="MdcMttrInfoVo.equipmentId != null and MdcMttrInfoVo.equipmentId != ''">
                AND equipment_id = #{ MdcMttrInfoVo.equipmentId }
            </if>
            <if test="MdcMttrInfoVo.startTime != null and MdcMttrInfoVo.startTime != ''">
                AND the_date &gt;= #{ MdcMttrInfoVo.startTime }
            </if>
            <if test="MdcMttrInfoVo.endTime != null and MdcMttrInfoVo.endTime != ''">
                AND the_date &lt;= #{MdcMttrInfoVo.endTime }
            </if>
            <if test="MdcMttrInfoVo.equipmentIdList != null and MdcMttrInfoVo.equipmentIdList.size() > 0 ">
                AND equipment_id IN
                <foreach collection="MdcMttrInfoVo.equipmentIdList" item="id" index="index" open="(" close=")" separator=",">
                    #{ id }
                </foreach>
            </if>
        </where>
        ORDER BY the_date DESC, equipment_id ASC
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcRepairInfoMapper.xml
@@ -27,4 +27,24 @@
        </where>
        ORDER BY the_date DESC, equipment_id ASC
    </select>
    <!--查询当月总维修时间-->
    <select id="findTotalRepairLong" resultType="java.math.BigDecimal">
        SELECT
            SUM(repair_long)
        FROM
            mdc_repair_info
        WHERE
            the_date LIKE CONCAT(#{month}, '%')
    </select>
    <!--查询当月总维修次数-->
    <select id="findTotalRepairCount" resultType="java.lang.Integer">
        SELECT
            COUNT(repair_long)
        FROM
            mdc_repair_info
        WHERE
            the_date LIKE CONCAT(#{month}, '%')
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcMttrInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
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.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.vo.MdcMttrInfoVo;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
/**
 * @author Lius
 * @date 2025/2/18 13:48
 */
public interface IMdcMttrInfoService extends IService<MdcMttrInfo> {
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param userId
     * @param page
     * @param mdcMttrInfoVo
     * @param req
     * @return
     */
    IPage<MdcMttrInfo> pageList(String userId, Page<MdcMttrInfo> page, MdcMttrInfoVo mdcMttrInfoVo, HttpServletRequest req);
    /**
     * å¯¼å‡º
     *
     * @param userId
     * @param mdcMttrInfoVo
     * @return
     */
    ModelAndView exportXls(String userId, MdcMttrInfoVo mdcMttrInfoVo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/LogTableServiceImpl.java
@@ -29,10 +29,14 @@
import javax.annotation.Resource;
import java.io.File;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * @author Lius
@@ -77,7 +81,7 @@
    @Resource
    private IMdcPassLogService mdcPassLogService;
    private static final String TYPE = "01";
    private static final String TYPE = "18";
    @Resource
    private SqlExecutor sqlExecutor;
@@ -107,16 +111,22 @@
            // æ–‡ä»¶è·¯å¾„
            String locFilePath = localFilePath + TYPE + today + String.format("%06d", sequenceNumber) + ".xml";
            FileWriter writer = new FileWriter(locFilePath);
            writer.writeLines(sqlList);
//            FileWriter writer = new FileWriter(locFilePath);
//            writer.writeLines(sqlList);
            String listSql = String.join("\n", sqlList);
            try {
                FileUtils.fileWriterSql(locFilePath, listSql);
            } catch (Exception e) {
                throw new JeecgBootException("数据写入文件失败!");
            }
            // step.4 æŽ¨é€ç½‘é—¸
            // step.4.1 æµ‹è¯•服务器连通性
            boolean ping = NetUtil.ping(host + ":" + port);
          /*  boolean ping = NetUtil.ping(host + ":" + port);
            if (!ping) {
                FileUtil.del(locFilePath);
                throw new JeecgBootException("服务器连接: " + host + ":" + port + " å¼‚常!");
            }
            }*/
            // step.4.2 èŽ·å–token
            String token = "";
@@ -167,12 +177,19 @@
                            objectName.setDestination(host);
                            objectName.setResult("失败");
                            // æœ¬åœ°æ–‡ä»¶è·¯å¾„
                            String loFilePath = localFilePath + "\\" + file.getName();
                            String loFilePath = localFilePath + file.getName();
                            // ç›®æ ‡æ–‡ä»¶è·¯å¾„
                            String servicePathName = servicePath + "\\" + file.getName();
                            String servicePathName = servicePath + file.getName();
                            String result = FileClient.uploadFile(host, port, token, file.getName(), servicePathName, loFilePath, addressUploadFile);
                            if ("成功".equals(result)) {
                                FileUtil.del(loFilePath);
                                if (sequenceNumber == 1) {
                                    // åˆ é™¤æ˜¨æ—¥å¤‡ä»½æ–‡ä»¶å¤¹ä¸­åŽ†å²æ–‡ä»¶
                                    FileUtil.clean(newFilePath);
                                }
                                // æˆåŠŸä¹‹åŽå°†æ–‡ä»¶å¤‡ä»½èµ°
                                FileUtil.move(new File(locFilePath), new File(newFilePath + fileName), true);
//                                FileUtil.copy(locFilePath, newFilePath + fileName, true);
//                                FileUtil.del(loFilePath);
                                objectName.setResult("成功");
                                SyslogClient.sendClient(logIp, Integer.valueOf(logPort), objectName.toString());
                            } else {
@@ -203,7 +220,7 @@
        File[] files = FileUtil.ls(localFilePath);
        for (File file : files) {
            if (file.isFile()) {
                String loFilePath = localFilePath + "\\" + file.getName();
                String loFilePath = localFilePath + file.getName();
                FileReader fileReader = new FileReader(loFilePath);
                String sqlList = fileReader.readString();
                try {
@@ -211,8 +228,13 @@
                } catch (Exception e) {
                    throw new JeecgBootException("执行sql失败!");
                }
                if (Integer.parseInt(file.getName().substring(file.getName().length() - 10, file.getName().length() - 4)) == 1) {
                    // åˆ é™¤åŽ†å²æ–‡ä»¶
                    FileUtil.clean(newFilePath);
                }
                // å¤‡ä»½
                FileUtil.move(new File(loFilePath), new File(newFilePath + "\\" + file.getName()), true);
                FileUtil.move(new File(loFilePath), new File(newFilePath + file.getName()), true);
            }
        }
    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDownTimeServiceImpl.java
@@ -8,10 +8,14 @@
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.entity.MdcDownTime;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.entity.MdcOeeInfo;
import org.jeecg.modules.mdc.mapper.MdcDownTimeMapper;
import org.jeecg.modules.mdc.service.IMdcDownTimeService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.IMdcMttrInfoService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.vo.MdcDownTimeVo;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -22,6 +26,10 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -36,6 +44,9 @@
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    private IMdcMttrInfoService mdcMttrInfoService;
    @Override
    public IPage<MdcDownTime> pageList(String userId, Page<MdcDownTime> page, MdcDownTimeVo mdcDownTimeVo, HttpServletRequest req) {
@@ -160,6 +171,65 @@
     */
    @Override
    public void computeMtbf(String month) {
        /*
        è®¾å¤‡å¹³å‡æ•…障间隔期(MTBF) = (日历时间 - æ€»æ•…障停机时间) / æ€»æ•…障次数
         */
        // step.1
        List<MdcMttrInfo> mdcMttrInfos = mdcMttrInfoService.list(new LambdaQueryWrapper<MdcMttrInfo>().eq(MdcMttrInfo::getTheDate, month));
        DateTimeFormatter df = DateTimeFormatter.ofPattern(DateUtils.STR_DATE);
        LocalDate parse = LocalDate.parse(month + "-01", df);
        int calendarLong = parse.lengthOfMonth() * 24;
        if (mdcMttrInfos != null && !mdcMttrInfos.isEmpty()) {
            for (MdcMttrInfo mdcMttrInfo : mdcMttrInfos) {
                // æ—¥åŽ†æ—¶é—´
                mdcMttrInfo.setCalendarLong(new BigDecimal(calendarLong));
                // æ€»æ•…障停机时间
                BigDecimal totalDownLong = this.baseMapper.findTotalDownLong(month);
                if (totalDownLong != null) {
                    mdcMttrInfo.setTotalDownLong(totalDownLong);
                }
                // æ€»æ•…障次数
                Integer totalDownCount = this.baseMapper.findTotalDownCount(month);
                if (totalDownLong != null) {
                    mdcMttrInfo.setTotalDownCount(totalDownCount);
                }
                // MTBF
                if (mdcMttrInfo.getTotalDownCount() != 0) {
                    BigDecimal mtbf = (mdcMttrInfo.getCalendarLong().subtract(mdcMttrInfo.getTotalDownLong())).divide(new BigDecimal(mdcMttrInfo.getTotalDownCount()), 4, RoundingMode.HALF_UP);
                    mdcMttrInfo.setMtbf(mtbf);
                }
            }
            mdcMttrInfoService.updateBatchById(mdcMttrInfos);
        } else {
            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
            if (equipmentList != null && !equipmentList.isEmpty()) {
                List<MdcMttrInfo> mmi = new ArrayList<>();
                for (MdcEquipment mdcEquipment : equipmentList) {
                    MdcMttrInfo mdcMttrInfo = new MdcMttrInfo();
                    mdcMttrInfo.setEquipmentId(mdcEquipment.getEquipmentId());
                    mdcMttrInfo.setTheDate(month);
                    // æ—¥åŽ†æ—¶é—´
                    mdcMttrInfo.setCalendarLong(new BigDecimal(calendarLong));
                    // æ€»æ•…障停机时间
                    BigDecimal totalDownLong = this.baseMapper.findTotalDownLong(month);
                    if (totalDownLong != null) {
                        mdcMttrInfo.setTotalDownLong(totalDownLong);
                    }
                    // æ€»æ•…障次数
                    Integer totalDownCount = this.baseMapper.findTotalDownCount(month);
                    if (totalDownLong != null) {
                        mdcMttrInfo.setTotalDownCount(totalDownCount);
                    }
                    // MTBF
                    if (mdcMttrInfo.getTotalDownCount() != 0) {
                        BigDecimal mtbf = (mdcMttrInfo.getCalendarLong().subtract(mdcMttrInfo.getTotalDownLong())).divide(new BigDecimal(mdcMttrInfo.getTotalDownCount()), 4, RoundingMode.HALF_UP);
                        mdcMttrInfo.setMtbf(mtbf);
                    }
                    mmi.add(mdcMttrInfo);
                }
                mdcMttrInfoService.saveBatch(mmi);
            }
        }
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcMttrInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,142 @@
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.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.entity.MdcOeeInfo;
import org.jeecg.modules.mdc.mapper.MdcMttrInfoMapper;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.IMdcMttrInfoService;
import org.jeecg.modules.mdc.vo.MdcMttrInfoVo;
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.List;
/**
 * @author Lius
 * @date 2025/2/18 13:52
 */
@Service
public class MdcMttrInfoServiceImpl extends ServiceImpl<MdcMttrInfoMapper, MdcMttrInfo> implements IMdcMttrInfoService {
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    /**
     * åˆ†é¡µåˆ—表
     *
     * @param userId
     * @param page
     * @param mdcMttrInfoVo
     * @param req
     * @return
     */
    @Override
    public IPage<MdcMttrInfo> pageList(String userId, Page<MdcMttrInfo> page, MdcMttrInfoVo mdcMttrInfoVo, HttpServletRequest req) {
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(mdcMttrInfoVo.getParentId()) && StringUtils.isEmpty(mdcMttrInfoVo.getEquipmentId())) {
            if ("2".equals(mdcMttrInfoVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcMttrInfoVo.getParentId());
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcMttrInfoVo.getParentId());
            }
        } else if (StringUtils.isNotEmpty(mdcMttrInfoVo.getEquipmentId())) {
            //单台设备信息
            mdcMttrInfoVo.setEquipmentIdList(Collections.singletonList(mdcMttrInfoVo.getEquipmentId()));
        } else {
            //查询用户拥有的所有设备信息
            if ("2".equals(mdcMttrInfoVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (mdcMttrInfoVo.getEquipmentIdList() == null || mdcMttrInfoVo.getEquipmentIdList().isEmpty()) {
            mdcMttrInfoVo.setEquipmentIdList(equipmentIds);
        }
        if (mdcMttrInfoVo.getEquipmentIdList() == null || mdcMttrInfoVo.getEquipmentIdList().isEmpty()) {
            return null;
        }
        return this.baseMapper.pageList(page, mdcMttrInfoVo);
    }
    /**
     * å¯¼å‡º
     *
     * @param userId
     * @param mdcMttrInfoVo
     * @return
     */
    @Override
    public ModelAndView exportXls(String userId, MdcMttrInfoVo mdcMttrInfoVo) {
        LambdaQueryWrapper<MdcMttrInfo> queryWrapper = new LambdaQueryWrapper<>();
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(mdcMttrInfoVo.getParentId()) && StringUtils.isEmpty(mdcMttrInfoVo.getEquipmentId())) {
            if ("2".equals(mdcMttrInfoVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcMttrInfoVo.getParentId());
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcMttrInfoVo.getParentId());
            }
        } else if (StringUtils.isNotEmpty(mdcMttrInfoVo.getEquipmentId())) {
            //单台设备信息
            mdcMttrInfoVo.setEquipmentIdList(Collections.singletonList(mdcMttrInfoVo.getEquipmentId()));
        } else {
            //查询用户拥有的所有设备信息
            if ("2".equals(mdcMttrInfoVo.getTypeTree())) {
                //部门层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                //产线层级
                equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (mdcMttrInfoVo.getEquipmentIdList() == null || mdcMttrInfoVo.getEquipmentIdList().isEmpty()) {
            mdcMttrInfoVo.setEquipmentIdList(equipmentIds);
        }
        if (mdcMttrInfoVo.getEquipmentIdList() == null || mdcMttrInfoVo.getEquipmentIdList().isEmpty()) {
            return null;
        } else {
            queryWrapper.in(MdcMttrInfo::getEquipmentId, mdcMttrInfoVo.getEquipmentIdList());
        }
        if (StringUtils.isNotEmpty(mdcMttrInfoVo.getEquipmentId())) {
            queryWrapper.eq(MdcMttrInfo::getEquipmentId, mdcMttrInfoVo.getEquipmentId());
        }
        if (StringUtils.isNotEmpty(mdcMttrInfoVo.getStartTime()) && StringUtils.isNotEmpty(mdcMttrInfoVo.getEndTime())) {
            queryWrapper.between(MdcMttrInfo::getTheDate, mdcMttrInfoVo.getStartTime(), mdcMttrInfoVo.getEndTime());
        }
        queryWrapper.orderByDesc(MdcMttrInfo::getTheDate).orderByDesc(MdcMttrInfo::getEquipmentId);
        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        List<MdcMttrInfo> mdcMttrInfos = this.baseMapper.selectList(queryWrapper);
        // å¯¼å‡ºæ–‡ä»¶åç§°
        mv.addObject(NormalExcelConstants.FILE_NAME,  "设备MTTR表");
        mv.addObject(NormalExcelConstants.CLASS, MdcMttrInfo.class);
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备MTTR表数据", "导出人:" + user.getRealname(), "设备MTTR"));
        //update-end---author:wangshuai ---date:20211227  for:[JTC-116]导出人写死了------------
        mv.addObject(NormalExcelConstants.DATA_LIST, mdcMttrInfos);
        return mv;
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcRepairInfoServiceImpl.java
@@ -7,10 +7,12 @@
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.entity.MdcDownTime;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcMttrInfo;
import org.jeecg.modules.mdc.entity.MdcRepairInfo;
import org.jeecg.modules.mdc.mapper.MdcRepairInfoMapper;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.IMdcMttrInfoService;
import org.jeecg.modules.mdc.service.IMdcRepairInfoService;
import org.jeecg.modules.mdc.vo.MdcRepairInfoVo;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -22,6 +24,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -36,6 +40,9 @@
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    private IMdcMttrInfoService mdcMttrInfoService;
    /**
     * åˆ†é¡µåˆ—表
@@ -169,6 +176,48 @@
     */
    @Override
    public void computeMttr(String month) {
        /*
        è®¾å¤‡å¹³å‡ä¿®ç†æ—¶é—´(MTTR) = æ€»ç»´ä¿®æ—¶é—´ / æ€»ç»´ä¿®æ¬¡æ•°
         */
        List<MdcMttrInfo> mdcMttrInfos = mdcMttrInfoService.list(new LambdaQueryWrapper<MdcMttrInfo>().eq(MdcMttrInfo::getTheDate, month));
        if (mdcMttrInfos != null && !mdcMttrInfos.isEmpty()) {
            for (MdcMttrInfo mdcMttrInfo : mdcMttrInfos) {
                // æ€»ç»´ä¿®æ—¶é—´
                BigDecimal totalRepairLong = this.baseMapper.findTotalRepairLong(month);
                mdcMttrInfo.setTotalRepairLong(totalRepairLong);
                // æ€»ç»´ä¿®æ¬¡æ•°
                Integer totalRepairCount = this.baseMapper.findTotalRepairCount(month);
                mdcMttrInfo.setTotalRepairCount(totalRepairCount);
                // MTTR
                if (mdcMttrInfo.getTotalRepairCount() != 0) {
                    BigDecimal mttr = mdcMttrInfo.getTotalRepairLong().divide(new BigDecimal(mdcMttrInfo.getTotalDownCount()), 4, RoundingMode.HALF_UP);
                    mdcMttrInfo.setMttr(mttr);
                }
            }
            mdcMttrInfoService.updateBatchById(mdcMttrInfos);
        } else {
            List<MdcEquipment> equipmentList = mdcEquipmentService.list();
            if (equipmentList != null && !equipmentList.isEmpty()) {
                List<MdcMttrInfo> mmi = new ArrayList<>();
                for (MdcEquipment mdcEquipment : equipmentList) {
                    MdcMttrInfo mdcMttrInfo = new MdcMttrInfo();
                    mdcMttrInfo.setEquipmentId(mdcEquipment.getEquipmentId());
                    mdcMttrInfo.setTheDate(month);
                    // æ€»ç»´ä¿®æ—¶é—´
                    BigDecimal totalRepairLong = this.baseMapper.findTotalRepairLong(month);
                    mdcMttrInfo.setTotalRepairLong(totalRepairLong);
                    // æ€»ç»´ä¿®æ¬¡æ•°
                    Integer totalRepairCount = this.baseMapper.findTotalRepairCount(month);
                    mdcMttrInfo.setTotalRepairCount(totalRepairCount);
                    // MTTR
                    if (mdcMttrInfo.getTotalRepairCount() != 0) {
                        BigDecimal mttr = mdcMttrInfo.getTotalRepairLong().divide(new BigDecimal(mdcMttrInfo.getTotalDownCount()), 4, RoundingMode.HALF_UP);
                        mdcMttrInfo.setMttr(mttr);
                    }
                    mmi.add(mdcMttrInfo);
                }
                mdcMttrInfoService.saveBatch(mmi);
            }
        }
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/FileUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,189 @@
package org.jeecg.modules.mdc.util;
import cn.hutool.core.date.DateUtil;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by YangBin on 2017/9/15.
 */
public class FileUtils {
    private static final long MAX_FILE_SIZE = 10*1024*1024;
    /**
     * èŽ·å–æœåŠ¡å™¨ä¸´æ—¶è·¯å¾„
     *
     * @param request
     * @return     */
    public static String serverTempPath(HttpServletRequest request) {
        String fsep = System.getProperty("file.separator");
        String path = request.getSession().getServletContext().getRealPath("");
        if (path.lastIndexOf(fsep) == path.length() - 1) {
            path += "upload" + fsep +"voucher"+ fsep ;
        } else {
            path += fsep + "upload" + fsep +"voucher"+ fsep ;
        }
        return path;
    }
    public static String serverTempPathIntactReg(HttpServletRequest request) {
        String fsep = System.getProperty("file.separator");
        String path = request.getSession().getServletContext().getRealPath("");
        if (path.lastIndexOf(fsep) == path.length() - 1) {
            path += "upload" + fsep +"log"+ fsep +"error"+ fsep ;
        } else {
            path += fsep + "upload" + fsep +"log"+ fsep  +"error"+ fsep;
        }
        return path;
    }
    public static String serverTempPathProcess(HttpServletRequest request) {
        String fsep = System.getProperty("file.separator");
        String path = request.getSession().getServletContext().getRealPath("");
        if (path.lastIndexOf(fsep) == path.length() - 1) {
            path += "upload" + fsep +"process"+ fsep ;
        } else {
            path += fsep + "upload" + fsep +"process"+ fsep ;
        }
        return path;
    }
    public static String changeFileFormatKb(String flow) {
        BigDecimal flows = new BigDecimal(flow);
        if (flows.compareTo(new BigDecimal(0)) > 0 && flows.compareTo(new BigDecimal(1024)) < 0) {//小于1M
            return flows.toString() + "B";
        } else if(flows.compareTo(new BigDecimal(1024)) >= 0){
            BigDecimal result = flows.divide(new BigDecimal(1024),2,BigDecimal.ROUND_HALF_UP);
            return  result.toString() + "KB";
        } else {
            return "0";
        }
    }
    /**
     * å¾—到项目根目录下的绝对路径(磁盘的物理路径)
     * @param request
     * @param newPath
     * @return
     */
    public static String getFilePath(HttpServletRequest request, String newPath) {
        String fsep = System.getProperty("file.separator");
        String path = request.getSession().getServletContext().getRealPath("/upload");
        path += fsep + newPath;
        return path;
    }
    /**
     * å¾—到项目根目录下的相对路径 ï¼ˆç›¸å¯¹äºŽé¡¹ç›®ä¸ºæ ¹è·¯å¾„)
     * @param newPath
     * @return
     */
    public static String getRelativePath(String newPath) {
        return "/upload/" + newPath;
    }
    /**
     * æ–¹æ³•一:使用 FileWriter å†™æ–‡ä»¶
     * @param filepath æ–‡ä»¶ç›®å½•
     * @param content  å¾…写入内容
     * @throws IOException
     */
    public static void fileWriterSql(String filepath, String content) throws IOException {
        OutputStreamWriter outputStreamWriter = null;
        try {
            File file = new File(filepath);
            if (!file.exists()){
                file.createNewFile();
            }
            FileOutputStream outputStream = new FileOutputStream(file);
            if (outputStream != null){
                outputStreamWriter = new OutputStreamWriter(outputStream, "utf-8");
                outputStreamWriter.write(content);
                outputStreamWriter.flush();
            }
        }
        catch (IOException e) {
            e.getMessage();
        }
        finally {
            try {
                if (outputStreamWriter != null){
                    outputStreamWriter.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        /*
        File file=new File(filepath);
        Writer writer = new OutputStreamWriter(new FileOutputStream(file.getAbsoluteFile()), "UTF-8");
        writer.append(content);
         */
    }
    /**
     * æ–‡ä»¶å¤§å°æ™ºèƒ½è½¬æ¢
     * ä¼šå°†æ–‡ä»¶å¤§å°è½¬æ¢ä¸ºæœ€å¤§æ»¡è¶³å•位
     * @param size(文件大小,单位为B)
     * @return æ–‡ä»¶å¤§å°
     */
    public static String formatFileSize(Long size) {
        String sizeName = null;
        if(1024*1024 > size && size >= 1024 ) {
            sizeName = String.format("%.2f",size.doubleValue()/1024) + "KB";
        }else if(1024*1024*1024 > size && size >= 1024*1024 ) {
            sizeName = String.format("%.2f",size.doubleValue()/(1024*1024)) + "MB";
        }else if(size >= 1024*1024*1024 ) {
            sizeName = String.format("%.2f",size.doubleValue()/(1024*1024*1024)) + "GB";
        }else {
            sizeName = size.toString() + "B";
        }
        return sizeName;
    }
    /**
     * ä¸Šä¼ æ–‡ä»¶å·¥å…·ç±»
     * @param userPic
     * @param path
     * @param fileName
     * @return
     */
    public static boolean uploadFile(MultipartFile userPic, String path, String fileName) {
        Long fileSize = userPic.getSize();
        if(fileSize > MAX_FILE_SIZE) {
            return false;
        }
        File targetFile = new File(path, fileName);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        try {
            userPic.transferTo(targetFile);
            return true;
        } catch (Exception e) {
            return false;
        }
    }
//    /**
//     * é‡å‘½åæ–‡ä»¶å åŠ å…¥æ—¶é—´æˆ³
//     * @param fileName
//     * @return
//     */
//    public static String newFileName(String fileName) {
//        String suffix = fileName.substring(fileName.lastIndexOf('.'));
//        String dateStr = "_"+ DateUtil.format(new Date(), DateUtil.STR_DATE_TIME_FULL);
//        String nameFile = fileName.substring(0, fileName.indexOf("."));
//        //新文件名
//        return nameFile +  dateStr + suffix;
//    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/SqlExecutor.java
@@ -22,7 +22,7 @@
            SqlRunner runner = new SqlRunner(sqlSession.getConnection());
            runner.run(sql);
        } catch (Exception e) {
            e.printStackTrace();
//            e.printStackTrace();
            throw new RuntimeException("Error executing SQL: " + sql, e);
        }
    }
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcMttrInfoVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package org.jeecg.modules.mdc.vo;
import lombok.Data;
import org.jeecg.modules.mdc.entity.MdcMttrInfo;
import java.util.List;
/**
 * @author Lius
 * @date 2025/2/18 13:50
 */
@Data
public class MdcMttrInfoVo extends MdcMttrInfo {
    private String startTime;
    private String endTime;
    private String parentId;
    private String typeTree;
    private List<String> equipmentIdList;
    private String equipmentIds;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/api/controller/SystemApiController.java
@@ -867,16 +867,16 @@
                String token = JwTUtil.sign(appId, pwd);
                return new TokenResp("200", "认证成功", token);
            } else {
                return new TokenResp("", "密码错误", null);
                return new TokenResp("101", "密码错误", null);
            }
        } else {
            return new TokenResp("", "账号错误", null);
            return new TokenResp("101", "账号错误", null);
        }
    }
    @PostMapping(value = "/fileUpload")
    public RespData uploadFiles(HttpServletRequest request) {
        log.info("上传接口调用开始");
        FileDetail fileDetail = new FileDetail();
        try {
            request.setCharacterEncoding("UTF-8");
@@ -940,6 +940,7 @@
                e.printStackTrace();
            }
        }
        log.info("上传接口调用结束");
        return new RespData("200", "文件上传成功");
    }
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml
@@ -73,13 +73,13 @@
        and del_flag='0'
    </select>
    <select id="getDepartTreeByParentId" parameterType="String" resultType="org.jeecg.common.system.vo.SelectTreeModel">
        select
            id as "key",
            depart_name as "title",
            parent_id as parentId
        from sys_depart
        where parent_id = #{parentId}
          and del_flag='0'
    </select>
<!--    <select id="getDepartTreeByParentId" parameterType="String" resultType="org.jeecg.common.system.vo.SelectTreeModel">-->
<!--        select-->
<!--            id as "key",-->
<!--            depart_name as "title",-->
<!--            parent_id as parentId-->
<!--        from sys_depart-->
<!--        where parent_id = #{parentId}-->
<!--          and del_flag='0'-->
<!--    </select>-->
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/util/FileUtils.java
@@ -110,7 +110,7 @@
            }
            FileOutputStream outputStream = new FileOutputStream(file);
            if (outputStream != null) {
                outputStreamWriter = new OutputStreamWriter(outputStream, "utf-8");
                outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
                outputStreamWriter.write(content);
                outputStreamWriter.flush();
            }