From 731088b65667ec3d00ae7d14b851d53831552ac3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 06 三月 2024 15:01:01 +0800
Subject: [PATCH] 违约审核完善
---
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java | 13 ++
ycl-common/src/main/java/utils/DateUtils.java | 41 +++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java | 38 +++++--
ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java | 27 +++++
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java | 46 +++++++++
ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java | 6 +
pom.xml | 8 +
ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java | 25 +++++
ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java | 8 +
ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java | 11 +
ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml | 34 ++++++
11 files changed, 238 insertions(+), 19 deletions(-)
diff --git a/pom.xml b/pom.xml
index c6df984..99a7e90 100644
--- a/pom.xml
+++ b/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>
\ No newline at end of file
+</project>
diff --git a/ycl-common/src/main/java/utils/DateUtils.java b/ycl-common/src/main/java/utils/DateUtils.java
index 131b9ce..77b3e6c 100644
--- a/ycl-common/src/main/java/utils/DateUtils.java
+++ b/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 @@
/**
* 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-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);
+ }
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java
new file mode 100644
index 0000000..030c5a6
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/DefaultAuditForm.java
@@ -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锛歺p
+ * @date锛�2024/3/6 8:59
+ */
+@Data
+public class DefaultAuditForm extends AbsForm {
+
+ /**
+ * 瀹℃牳缁撴灉
+ */
+ @NotBlank(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+ private String auditingResult;
+
+ /**
+ * 瀹℃牳璇存槑
+ */
+ private String remark;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
index 85b4f21..96576ba 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DefaultAuditingQuery.java
+++ b/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);
+ }
+ }
+
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
index 3a5fde8..da99993 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DefaultAuditingVO.java
+++ b/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) {
diff --git a/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java b/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..aa79139
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/config/MybatisPlusConfig.java
@@ -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;
+ }
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java b/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
index cb99f29..1f3003b 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/DefaultAuditingController.java
+++ b/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);
+ }
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
index 3877306..2b76016 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/DefaultAuditingMapper.java
+++ b/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);
}
+
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java b/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
index 16f1a18..39906f9 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/DefaultAuditingService.java
+++ b/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);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
index 0e4dda4..000eadd 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DefaultAuditingServiceImpl.java
+++ b/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("鎿嶄綔鎴愬姛");
+ }
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
index bf1ba09..49132a1 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/DefaultAuditingMapper.xml
+++ b/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>
--
Gitblit v1.8.0