xiangpei
2024-07-23 95f0a8b4d82a859f2018c9d77e1a8a3a38b2d523
报备记录、编号工具方法
11个文件已修改
154 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/ReportService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java
@@ -71,7 +71,7 @@
    @TableField("end_create_time")
    private Date endCreateTime;
    /** 版本号:可用于查询历史审核记录 */
    @TableField("version")
    private Integer version;
    /** 标识号:可用于查询历史审核记录 */
    @TableField("identify")
    private String identify;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java
@@ -1,5 +1,6 @@
package com.ycl.platform.domain.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.system.domain.group.Update;
import com.ycl.system.domain.group.Add;
import com.ycl.platform.base.AbsForm;
@@ -35,13 +36,12 @@
    @ApiModelProperty("点位")
    private Integer pointId;
    @ApiModelProperty("审核时间")
    private Date auditingTime;
    @ApiModelProperty("生效时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginCreateTime;
    @ApiModelProperty("失效时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endCreateTime;
    @ApiModelProperty("审核类型")
@@ -57,12 +57,6 @@
    @ApiModelProperty("故障类型")
    private String errorType;
    @ApiModelProperty("审核意见")
    private String auditOpinion;
    @ApiModelProperty("状态")
    private Integer status;
    public static Report getEntityByForm(@NonNull ReportForm form, Report entity) {
        if(entity == null) {
ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java
@@ -24,9 +24,9 @@
    private String reportType;
    private Date beginCreateTime;
    private Date endCreateTime;
//    private Date beginCreateTime;
//
//    private Date endCreateTime;
    private String pointId;
@@ -36,5 +36,8 @@
    private List<Integer> peopleIdList;
    @ApiModelProperty("状态")
    private Integer status;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
@@ -1,6 +1,7 @@
package com.ycl.platform.domain.vo;
import annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsVo;
import com.ycl.platform.domain.entity.Report;
@@ -56,17 +57,20 @@
    private String errorType;
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditingTime;
    /**
     * 生效时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginCreateTime;
    /**
     * 失效时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endCreateTime;
    /**
ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
@@ -88,11 +88,11 @@
        return reportService.all();
    }
    @GetMapping("/examine/record")
    @GetMapping("/auditing/record/{id}")
    @ApiOperation(value = "审核记录", notes = "审核记录")
    @PreAuthorize("@ss.hasPermi('system:report:record')")
    public Result examineRecord() {
        return reportService.examineRecord();
    public Result auditingRecord(@PathVariable("id") Integer id) {
        return reportService.auditingRecord(id);
    }
    @PostMapping("/auditing")
ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java
@@ -9,6 +9,7 @@
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;
/**
 * 报备 Mapper 接口
@@ -20,4 +21,12 @@
public interface ReportMapper extends BaseMapper<Report> {
    IPage<ReportVO> page(IPage page, @Param("query") ReportQuery query);
    /**
     * 审核记录
     *
     * @param id
     * @return
     */
    List<ReportVO> examineRecord(@Param("id") Integer id);
}
ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
@@ -75,8 +75,9 @@
     * 获取审核记录
     *
     * @return
     * @param id
     */
    Result examineRecord();
    Result auditingRecord(Integer id);
    /**
     * 审核报备
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -12,7 +12,6 @@
import com.ycl.platform.domain.form.ReportForm;
import com.ycl.platform.domain.query.ReportQuery;
import com.ycl.platform.domain.vo.ReportVO;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.mapper.ReportMapper;
import com.ycl.platform.mapper.YwPeopleMapper;
import com.ycl.platform.mapper.YwPointMapper;
@@ -21,9 +20,11 @@
import com.ycl.system.Result;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.uuid.IdUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
@@ -61,6 +62,7 @@
        form.setUnitId(people.getBelongUnit());
        Report entity = ReportForm.getEntityByForm(form, null);
        entity.setStatus(0);
        entity.setIdentify(IdUtils.timeAddRandomNO(3));
        if(baseMapper.insert(entity) > 0) {
            return Result.ok("添加成功");
        }
@@ -76,14 +78,25 @@
    public Result update(ReportForm form) {
        Report entity = baseMapper.selectById(form.getId());
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        if (baseMapper.updateById(entity) > 0) {
            return Result.ok("修改成功");
        if (0 == entity.getStatus()) {
            // 待审核的直接改
            BeanUtils.copyProperties(form, entity);
            baseMapper.updateById(entity);
        } else if (2 == entity.getStatus()) {
            // 如果是未审核通过,进行修改,那么直接新增(为了保存审核记录)
            Report report = new Report();
            BeanUtils.copyProperties(entity, report);
            BeanUtils.copyProperties(form, report);
            report.setId(null);
            report.setStatus(0);
            report.setAuditingTime(null);
            report.setAuditOpinion(null);
            baseMapper.insert(report);
        }
        return Result.error("修改失败");
        return Result.ok("修改成功");
    }
    /**
@@ -174,8 +187,8 @@
        IPage<Report> page = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(StringUtils.isNotBlank(query.getReportType()), Report::getReportType, query.getReportType())
                .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime())
                .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime())
//                .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime())
//                .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime())
                .in(!CollectionUtils.isEmpty(query.getPointIdList()), Report::getPointId, query.getPointIdList())
                .in(!CollectionUtils.isEmpty(query.getPeopleIdList()), Report::getPeopleId, query.getPeopleIdList())
                .orderByDesc(Report::getCreateTime)
@@ -200,9 +213,9 @@
    @Override
    public Result examineRecord() {
        return null;
    public Result auditingRecord(Integer id) {
        List<ReportVO> reportList = baseMapper.examineRecord(id);
        return Result.ok().data(reportList);
    }
    @Override
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -23,6 +23,7 @@
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import com.ycl.utils.redis.RedisCache;
import com.ycl.utils.uuid.IdUtils;
import enumeration.general.*;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
@@ -74,7 +75,7 @@
    @Override
    public Result add(WorkOrderForm form) {
        WorkOrder entity = WorkOrderForm.getEntityByForm(form, null);
        entity.setWorkOrderNo(DateUtils.dateTimeNow());
        entity.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
        entity.setCreateTime(DateUtils.getNowDate());
        entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
        if(baseMapper.insert(entity) > 0) {
ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java
@@ -1,15 +1,22 @@
package com.ycl.utils.uuid;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
/**
 * ID生成器工具类
 *
 *
 * @author ruoyi
 */
public class IdUtils
{
    private final static SimpleDateFormat FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
    /**
     * 获取随机UUID
     *
     *
     * @return 随机UUID
     */
    public static String randomUUID()
@@ -39,11 +46,36 @@
    /**
     * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID
     *
     *
     * @return 简化的UUID,去掉了横线
     */
    public static String fastSimpleUUID()
    {
        return UUID.fastUUID().toString(true);
    }
    /**
     * 获取当前时间+随机数的编号
     *
     * @param numberNum 时间后生成几位数字,默认5
     * @return 编号
     */
    public static String timeAddRandomNO(Integer numberNum)
    {
        if (numberNum == null || numberNum == 0 || numberNum < 3) {
            numberNum = 5;
        }
        Date now = new Date();
        String timeString = FORMAT.format(now);
        Random random = new Random();
        StringBuilder builder = new StringBuilder();
        builder.append(timeString);
        for (int i = 0; i < numberNum; i++) {
            // 生成一个0到9之间的随机数(包括0和9)
            builder.append(random.nextInt(10));
        }
        return builder.toString();
    }
}
ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
@@ -24,13 +24,19 @@
        LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0
        LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0
        LEFT JOIN t_yw_point pt ON r.point_id = pt.id and pt.deleted = 0
        where
        INNER JOIN (
            SELECT identify,MAX(create_time) AS create_time
            FROM t_report
            WHERE deleted = 0
            GROUP BY identify
        ) as rr ON r.create_time = rr.create_time
        WHERE
        r.deleted = 0
        <if test="query.reportType != null and query.reportType != ''">
            AND r.report_type = #{query.reportType}
        </if>
        <if test="query.beginCreateTime != null">
            AND r.create_time between #{query.beginCreateTime} and #{query.endCreateTime}
        <if test="query.status != null">
            AND r.status = #{query.status}
        </if>
        <if test="query.pointId != null and query.pointId != ''">
            AND pt.point_name like concat('%', #{query.pointId}, '%')
@@ -38,7 +44,22 @@
        <if test="query.peopleId != null and query.peopleId != ''">
            AND p.yw_person_name like concat('%', #{query.peopleId}, '%')
        </if>
        ORDER BY r.create_time DESC
        ORDER BY r.update_time DESC
    </select>
    <select id="examineRecord" resultMap="BaseResultMap">
        SELECT
            r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name
        FROM
            t_report r
                LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0
                LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0
                LEFT JOIN t_yw_point pt ON r.point_id = pt.id and pt.deleted = 0
                INNER JOIN (
                    SELECT identify, create_time
                    FROM t_report
                    WHERE id = #{id} AND deleted = 0
            ) as rr ON r.identify = rr.identify AND r.create_time &lt;= rr.create_time
    </select>
</mapper>