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