From d8aecb329d3e1410346261be68caf2c44107a869 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 23 七月 2024 11:56:17 +0800
Subject: [PATCH] 合同分页重构、报备审核不使用修改接口
---
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 24 ++++
ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportAuditingForm.java | 47 +++++++++
ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java | 10 +
ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java | 10 +
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractVO.java | 54 ++++++++++
ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java | 25 +++++
ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml | 24 ++++
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java | 3
ycl-pojo/src/main/java/com/ycl/platform/domain/query/ContractQuery.java | 24 ++++
ycl-server/src/main/java/com/ycl/platform/service/ReportService.java | 15 +++
ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java | 2
ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java | 15 +++
ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java | 5
ycl-common/src/main/java/enumeration/ContractStatus.java | 18 +++
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java | 2
15 files changed, 269 insertions(+), 9 deletions(-)
diff --git a/ycl-common/src/main/java/enumeration/ContractStatus.java b/ycl-common/src/main/java/enumeration/ContractStatus.java
new file mode 100644
index 0000000..e7701a8
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/ContractStatus.java
@@ -0,0 +1,18 @@
+package enumeration;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/7/23 9:44
+ */
+public enum ContractStatus {
+
+ /** 鏈夋晥 */
+ ACTIVE,
+
+ /** 鏃犳晥 */
+ NOT_START,
+
+ /** 宸插け鏁� */
+ FINISHED
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
index 8824fd9..4bba239 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsVo.java
@@ -1,6 +1,7 @@
package com.ycl.platform.base;
import com.fasterxml.jackson.annotation.JsonFormat;
+import enumeration.ContractStatus;
import lombok.Data;
import java.util.Date;
@@ -23,4 +24,5 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
+
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java
index 599437a..f0e710f 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java
@@ -71,4 +71,7 @@
@TableField("end_create_time")
private Date endCreateTime;
+ /** 鐗堟湰鍙凤細鍙敤浜庢煡璇㈠巻鍙插鏍歌褰� */
+ @TableField("version")
+ private Integer version;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportAuditingForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportAuditingForm.java
new file mode 100644
index 0000000..737d75e
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportAuditingForm.java
@@ -0,0 +1,47 @@
+package com.ycl.platform.domain.form;
+
+import com.ycl.platform.base.AbsForm;
+import com.ycl.platform.domain.entity.Report;
+import com.ycl.system.domain.group.Add;
+import com.ycl.system.domain.group.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+import java.util.Date;
+
+/**
+ * 鎶ュ琛ㄥ崟
+ *
+ * @author xp
+ * @since 2024-03-19
+ */
+@Data
+@Accessors(chain = true)
+@ApiModel(value = "Report瀹℃牳琛ㄥ崟", description = "鎶ュ瀹℃牳琛ㄥ崟")
+public class ReportAuditingForm {
+
+ @NotNull(message = "璇烽�夋嫨瑕佸鏍哥殑鎶ュ")
+ private Integer id;
+
+ @ApiModelProperty("瀹℃牳鎰忚")
+ private String auditOpinion;
+
+ @NotNull(message = "璇风粰鍑哄鏍哥粨鏋�")
+ @ApiModelProperty("瀹℃牳缁撴灉")
+ private Boolean auditingResult;
+
+ public static Report getEntityByForm(@NonNull ReportAuditingForm form, Report entity) {
+ if(entity == null) {
+ entity = new Report();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ContractQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ContractQuery.java
new file mode 100644
index 0000000..09eea5f
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ContractQuery.java
@@ -0,0 +1,24 @@
+package com.ycl.platform.domain.query;
+
+import com.ycl.platform.base.AbsQuery;
+import enumeration.ContractStatus;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/7/23 9:40
+ */
+@Data
+public class ContractQuery extends AbsQuery {
+
+ @ApiModelProperty("鍚堝悓鍚嶇О")
+ private String name;
+
+ /**
+ * @see ContractStatus
+ */
+ @ApiModelProperty("鐘舵��")
+ private String status;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractVO.java
new file mode 100644
index 0000000..7bc9c22
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractVO.java
@@ -0,0 +1,54 @@
+package com.ycl.platform.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ycl.platform.base.AbsVo;
+import enumeration.ContractStatus;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Date;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/7/23 9:59
+ */
+@Data
+public class ContractVO extends AbsVo {
+
+ private Long unitId;
+
+ private String unitName;
+
+ /**
+ * 鍚堝悓鍚嶇О
+ */
+ private String name;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date endTime;
+
+ /**
+ * 鍚堝悓闄勪欢
+ */
+ private String attachment;
+
+ private Date createTime;
+
+ private Date updateTime;
+
+ private String ruleList;
+
+ private MultipartFile file;
+
+ private ContractStatus status;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
index b4e0715..aafc0aa 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
@@ -70,7 +70,7 @@
private Date endCreateTime;
/**
- * 瑁呭~
+ * 鐘舵��
*/
private Integer status;
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java b/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
index f3559f7..2f07121 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java
@@ -2,6 +2,7 @@
import com.ycl.platform.domain.entity.Report;
import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.form.ReportAuditingForm;
import com.ycl.platform.domain.vo.ReportVO;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.system.domain.group.Update;
@@ -87,6 +88,20 @@
return reportService.all();
}
+ @GetMapping("/examine/record")
+ @ApiOperation(value = "瀹℃牳璁板綍", notes = "瀹℃牳璁板綍")
+ @PreAuthorize("@ss.hasPermi('system:report:record')")
+ public Result examineRecord() {
+ return reportService.examineRecord();
+ }
+
+ @PostMapping("/auditing")
+ @ApiOperation(value = "瀹℃牳", notes = "瀹℃牳")
+ @PreAuthorize("@ss.hasPermi('system:report:auditing')")
+ public Result auditing(@RequestBody @Validated ReportAuditingForm form) {
+ return reportService.auditing(form);
+ }
+
@PostMapping("/export")
@ApiOperation(value = "瀵煎嚭", notes = "瀵煎嚭")
@PreAuthorize("@ss.hasPermi('system:report:export')")
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java b/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
index 3ad75a8..824b018 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
@@ -5,6 +5,7 @@
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.query.ContractQuery;
import com.ycl.platform.domain.query.YwUnitQuery;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.service.ITContractService;
@@ -37,8 +38,8 @@
@PreAuthorize("@ss.hasPermi('system:contract:list')")
@GetMapping("/list")
- public List<TContract> list() {
- return tContractService.selectAll();
+ public Result page(ContractQuery query) {
+ return tContractService.selectAll(query);
}
@PreAuthorize("@ss.hasPermi('system:contract:query')")
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
index 919f81e..5d73761 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TContractMapper.java
@@ -1,7 +1,12 @@
package com.ycl.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.platform.domain.entity.TContract;
+import com.ycl.platform.domain.query.ContractQuery;
+import com.ycl.platform.domain.vo.ContractVO;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -12,5 +17,8 @@
* @date 2024-03-12
*/
public interface TContractMapper extends BaseMapper<TContract> {
- List<TContract> selectAll();
+
+ IPage<ContractVO> getPage(IPage page, @Param("query") ContractQuery query);
+
+
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
index 15d8e8c..aaf5b80 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.TContract;
+import com.ycl.platform.domain.query.ContractQuery;
import com.ycl.system.AjaxResult;
+import com.ycl.system.Result;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
@@ -31,7 +33,13 @@
*/
AjaxResult importData(MultipartFile file, TContract tContract);
- List<TContract> selectAll();
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param query
+ * @return
+ */
+ Result selectAll(ContractQuery query);
/**
* 鏍规嵁鍚堝悓id鏌ヨ閽辨牳绠楄鍒�
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java b/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
index bf4e0fc..752cfee 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ReportService.java
@@ -2,6 +2,7 @@
import com.ycl.platform.domain.entity.Report;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.platform.domain.form.ReportAuditingForm;
import com.ycl.platform.domain.vo.ReportVO;
import com.ycl.system.Result;
import com.ycl.platform.domain.form.ReportForm;
@@ -69,4 +70,18 @@
* @return
*/
List<ReportVO> export(ReportQuery query);
+
+ /**
+ * 鑾峰彇瀹℃牳璁板綍
+ *
+ * @return
+ */
+ Result examineRecord();
+
+ /**
+ * 瀹℃牳鎶ュ
+ * @param form
+ * @return
+ */
+ Result auditing(ReportAuditingForm form);
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
index 531a019..d284f95 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -8,6 +8,7 @@
import com.ycl.platform.domain.entity.YwPeople;
import com.ycl.platform.domain.entity.YwPoint;
import com.ycl.platform.domain.entity.YwUnit;
+import com.ycl.platform.domain.form.ReportAuditingForm;
import com.ycl.platform.domain.form.ReportForm;
import com.ycl.platform.domain.query.ReportQuery;
import com.ycl.platform.domain.vo.ReportVO;
@@ -28,6 +29,7 @@
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -196,4 +198,27 @@
return vos;
}
+
+ @Override
+ public Result examineRecord() {
+
+ return null;
+ }
+
+ @Override
+ public Result auditing(ReportAuditingForm form) {
+ Report report = baseMapper.selectById(form.getId());
+ if (Objects.isNull(report)) {
+ throw new RuntimeException("瀹℃牳鐨勬姤澶囦笉瀛樺湪");
+ }
+ if (form.getAuditingResult()) {
+ report.setStatus(1);
+ } else {
+ report.setStatus(2);
+ }
+ report.setAuditOpinion(form.getAuditOpinion());
+ report.setAuditingTime(new Date());
+ baseMapper.updateById(report);
+ return Result.ok("鎿嶄綔鎴愬姛");
+ }
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index 9182297..855a8a2 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -4,7 +4,7 @@
import com.alibaba.excel.write.merge.LoopMergeStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson2.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.handler.CommentWriteHandler;
@@ -12,18 +12,22 @@
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.entity.TContract;
+import com.ycl.platform.domain.query.ContractQuery;
+import com.ycl.platform.domain.vo.ContractVO;
import com.ycl.platform.mapper.TContractMapper;
import com.ycl.platform.service.ICalculateRuleService;
import com.ycl.platform.service.ITContractService;
import com.ycl.system.AjaxResult;
+import com.ycl.system.Result;
+import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.StringUtils;
+import enumeration.ContractStatus;
import enumeration.general.RuleDeductCategoryEnum;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
@@ -196,8 +200,20 @@
}
@Override
- public List<TContract> selectAll() {
- return baseMapper.selectAll();
+ public Result selectAll(ContractQuery query) {
+ IPage<ContractVO> page = PageUtil.getPage(query, ContractVO.class);
+ baseMapper.getPage(page, query);
+ page.getRecords().stream().forEach(contract -> {
+ Date now = new Date();
+ if (now.before(contract.getStartTime())) {
+ contract.setStatus(ContractStatus.NOT_START);
+ } else if (now.after(contract.getEndTime())) {
+ contract.setStatus(ContractStatus.FINISHED);
+ } else {
+ contract.setStatus(ContractStatus.ACTIVE);
+ }
+ });
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
}
@Override
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
index f0fd939..eec44b2 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TContractMapper.xml
@@ -12,4 +12,28 @@
order by create_time desc
</select>
+ <select id="getPage" resultType="com.ycl.platform.domain.vo.ContractVO">
+ select a.*, b.unit_name
+ from t_contract a
+ left join t_yw_unit b on a.unit_id = b.id and b.deleted = 0
+ where a.deleted = 0
+ <if test="query.name != null and query.name != ''">
+ and a.name like concat('%', #{query.name}, '%')
+ </if>
+ <if test="query.status != null and query.status != ''">
+ <choose>
+ <when test="query.status == 'ACTIVE'">
+ and a.start_time < sysdate() and a.end_time > sysdate()
+ </when>
+ <when test="query.status == 'NOT_START'">
+ and a.start_time > sysdate()
+ </when>
+ <when test="query.status == 'FINISHED'">
+ and a.end_time < sysdate()
+ </when>
+ </choose>
+ </if>
+ order by create_time desc
+ </select>
+
</mapper>
--
Gitblit v1.8.0