xiangpei
2024-03-06 731088b65667ec3d00ae7d14b851d53831552ac3
违约审核完善
9个文件已修改
2个文件已添加
257 ■■■■■ 已修改文件
pom.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/utils/DateUtils.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -176,6 +176,12 @@
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>${pagehelper.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>jsqlparser</artifactId>
                    <groupId>com.github.jsqlparser</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
@@ -289,4 +295,4 @@
            </plugin>
        </plugins>
    </build>
</project>
</project>
ycl-common/src/main/java/utils/DateUtils.java
@@ -2,15 +2,18 @@
import org.apache.commons.lang3.time.DateFormatUtils;
import javax.annotation.Nullable;
import java.lang.management.ManagementFactory;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.util.Date;
import java.util.Objects;
/**
 * 时间工具类
 *
 *
 * @author ruoyi
 */
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
@@ -26,13 +29,13 @@
    public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    private static String[] parsePatterns = {
            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
    /**
     * 获取当前Date型日期
     *
     *
     * @return Date() 当前日期
     */
    public static Date getNowDate()
@@ -42,7 +45,7 @@
    /**
     * 获取当前日期, 默认格式为yyyy-MM-dd
     *
     *
     * @return String
     */
    public static String getDate()
@@ -185,4 +188,34 @@
        ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
        return Date.from(zdt.toInstant());
    }
    /**
     * 获取某天的开始时间
     *
     * @param date
     * @return 2023-01-01 00:00:00
     */
    public static Date getDayStart(@Nullable Date date) {
        if (Objects.isNull(date)) {
            date = new Date();
        }
        LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("GMT+8"));
        LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 0, 0, 0);
        return Timestamp.valueOf(of);
    }
    /**
     * 获取某天的结束时间
     *
     * @param date
     * @return 2023-01-01 23:59:59
     */
    public static Date getDayEnd(@Nullable Date date) {
        if (Objects.isNull(date)) {
            date = new Date();
        }
        LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
        LocalDateTime of = LocalDateTime.of(localDateTime.getYear(), localDateTime.getMonth(), localDateTime.getDayOfMonth(), 23, 59, 59);
        return Timestamp.valueOf(of);
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java
New file
@@ -0,0 +1,27 @@
package com.ycl.platform.domain.form;
import com.ycl.platform.base.AbsForm;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
 * 违约审核表单
 *
 * @author:xp
 * @date:2024/3/6 8:59
 */
@Data
public class DefaultAuditForm extends AbsForm {
    /**
     * 审核结果
     */
    @NotBlank(message = "审核结果不能为空")
    private String auditingResult;
    /**
     * 审核说明
     */
    private String remark;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
@@ -1,13 +1,19 @@
package com.ycl.platform.domain.query;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsQuery;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import org.springframework.lang.NonNull;
import jakarta.validation.constraints.NotBlank;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import utils.DateUtils;
/**
 * 违规审核查询
@@ -19,5 +25,45 @@
@Accessors(chain = true)
@ApiModel(value = "DefaultAuditing查询", description = "违规审核查询")
public class DefaultAuditingQuery extends AbsQuery {
    /**
     * 违规单位
     */
    private Integer unitId;
    /**
     * 审核时间范围
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditingStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditingEndTime;
    /**
     * 创建时间范围
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createEndTime;
    /**
     * 设置时间,使其包含今天
     */
    public void setTime() {
        if (Objects.nonNull(auditingStartTime)) {
            auditingStartTime = DateUtils.getDayStart(auditingStartTime);
        }
        if (Objects.nonNull(auditingEndTime)) {
            auditingEndTime = DateUtils.getDayEnd(auditingEndTime);
        }
        if (Objects.nonNull(createStartTime)) {
            createStartTime = DateUtils.getDayStart(createStartTime);
        }
        if (Objects.nonNull(createEndTime)) {
            createEndTime = DateUtils.getDayEnd(createEndTime);
        }
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
@@ -1,5 +1,6 @@
package com.ycl.platform.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.base.AbsVo;
import com.ycl.platform.domain.entity.DefaultAuditing;
import java.util.List;
@@ -24,6 +25,16 @@
    /** 违规 */
    private Integer defaultId;
    /**
     * 违约规则名
     */
    private String defaultRuleName;
    /**
     * 违约运维单位
     */
    private String unitName;
    /** 审核状态 */
    private String auditingStatus;
@@ -31,10 +42,12 @@
    private String remark;
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditingTime;
    /** 审核人 */
    private Integer auditingUser;
    private String auditingUserName;
    public static DefaultAuditingVO getVoByEntity(@NonNull DefaultAuditing entity, DefaultAuditingVO vo) {
        if(vo == null) {
ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java
New file
@@ -0,0 +1,25 @@
package com.ycl.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @author xp
 * @date 2024/3/6
 */
@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 配置分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}
ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
@@ -1,5 +1,6 @@
package com.ycl.platform.controller;
import com.ycl.platform.domain.form.DefaultAuditForm;
import com.ycl.system.domain.group.Update;
import com.ycl.system.domain.group.Add;
import org.springframework.validation.annotation.Validated;
@@ -55,9 +56,9 @@
        return defaultAuditingService.remove(ids);
    }
    @GetMapping("/page")
    @PostMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    public Result page(DefaultAuditingQuery query) {
    public Result page(@RequestBody DefaultAuditingQuery query) {
        return defaultAuditingService.page(query);
    }
@@ -72,4 +73,10 @@
    public Result list() {
        return defaultAuditingService.all();
    }
    @PostMapping("/auditing")
    @ApiOperation(value = "审核", notes = "审核")
    public Result auditing(@RequestBody @Validated DefaultAuditForm form) {
        return defaultAuditingService.auditing(form);
    }
}
ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
@@ -1,11 +1,15 @@
package com.ycl.platform.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.platform.domain.entity.DefaultAuditing;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.platform.domain.query.DefaultAuditingQuery;
import com.ycl.platform.domain.vo.DefaultAuditingVO;
import com.ycl.platform.domain.form.DefaultAuditingForm;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * 违规审核 Mapper 接口
@@ -16,4 +20,6 @@
@Mapper
public interface DefaultAuditingMapper extends BaseMapper<DefaultAuditing> {
    Page page(IPage page, @Param("query") DefaultAuditingQuery query);
}
ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
@@ -2,6 +2,7 @@
import com.ycl.platform.domain.entity.DefaultAuditing;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.form.DefaultAuditForm;
import com.ycl.system.Result;
import com.ycl.platform.domain.form.DefaultAuditingForm;
import com.ycl.platform.domain.query.DefaultAuditingQuery;
@@ -62,4 +63,11 @@
     * @return
     */
    Result all();
    /**
     * 审核
     * @param form
     * @return
     */
    Result auditing(DefaultAuditForm form);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
@@ -1,6 +1,8 @@
package com.ycl.platform.service.impl;
import com.ycl.exception.ServiceException;
import com.ycl.platform.domain.entity.DefaultAuditing;
import com.ycl.platform.domain.form.DefaultAuditForm;
import com.ycl.platform.mapper.DefaultAuditingMapper;
import com.ycl.platform.service.DefaultAuditingService;
import com.ycl.system.Result;
@@ -8,6 +10,9 @@
import com.ycl.platform.domain.form.DefaultAuditingForm;
import com.ycl.platform.domain.vo.DefaultAuditingVO;
import com.ycl.platform.domain.query.DefaultAuditingQuery;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,6 +23,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.Objects;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
@@ -101,17 +107,10 @@
     */
    @Override
    public Result page(DefaultAuditingQuery query) {
        IPage<DefaultAuditing> page = new LambdaQueryChainWrapper<>(baseMapper)
                .orderByDesc(DefaultAuditing::getCreateTime)
                .page(PageUtil.getPage(query, DefaultAuditing.class));
        List<DefaultAuditingVO> vos = page.getRecords().stream()
                .map(
                        entity -> DefaultAuditingVO.getVoByEntity(entity, null)
                )
                .collect(Collectors.toList());
        return Result.ok().data(vos).total(page.getTotal());
        query.setTime();
        IPage page = PageUtil.getPage(query, DefaultAuditing.class);
        baseMapper.page(page, query);
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
    /**
@@ -142,4 +141,21 @@
                .collect(Collectors.toList());
        return Result.ok().data(vos);
    }
    @Override
    public Result auditing(DefaultAuditForm form) {
        DefaultAuditing defaultAuditing = baseMapper.selectById(form.getId());
        if (Objects.isNull(defaultAuditing)) {
            throw new ServiceException("该违约不存在");
        }
        if ("pass".equals(form.getAuditingResult())) {
            defaultAuditing.setAuditingStatus("审核通过");
        } else {
            defaultAuditing.setAuditingStatus("审核未通过");
        }
        BeanUtils.copyProperties(form, defaultAuditing);
        defaultAuditing.setAuditingTime(LocalDateTime.now());
        baseMapper.updateById(defaultAuditing);
        return Result.ok("操作成功");
    }
}
ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
@@ -10,7 +10,39 @@
        <result column="auditing_status" property="auditingStatus" />
        <result column="remark" property="remark" />
        <result column="auditing_time" property="auditingTime" />
        <result column="auditing_user" property="auditingUser" />
        <result column="nick_name" property="auditingUserName" />
        <result column="rule_name" property="defaultRuleName" />
        <result column="unit_name" property="unitName" />
    </resultMap>
    <select id="page" resultMap="BaseResultMap">
        SELECT
               tda.id,
               tda.create_time,
               tda.default_id,
               tda.auditing_status,
               tda.remark,
               tda.auditing_time,
               tda.auditing_user,
               su.nick_name,
               (SELECT unit_name FROM t_yw_unit WHERE id = tdr.unit_id AND deleted = 0) as unit_name,
               (SELECT rule_name FROM t_default_rule WHERE id = tdr.default_rule_id AND deleted = 0) as rule_name
        FROM
             t_default_auditing tda
              INNER JOIN t_default_record tdr ON tda.default_id = tdr.id AND tda.deleted = 0 AND tdr.deleted = 0
              LEFT JOIN sys_user su ON tda.auditing_user = su.user_id
        <where>
            <if test="query.unitId != null and query.unitId != ''">
                AND tdr.unit_id = #{query.unitId}
            </if>
            <if test="query.auditingStartTime != null and query.auditingEndTime != null">
                AND tda.auditing_time BETWEEN #{query.auditingStartTime} AND #{query.auditingEndTime}
            </if>
            <if test="query.createStartTime != null and query.createEndTime != null">
                AND tda.create_time BETWEEN #{query.createStartTime} AND #{query.createEndTime}
            </if>
        </where>
    </select>
</mapper>