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>