From 95f0a8b4d82a859f2018c9d77e1a8a3a38b2d523 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 23 七月 2024 17:06:50 +0800 Subject: [PATCH] 报备记录、编号工具方法 --- ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java | 12 +--- ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java | 6 +- ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java | 9 ++- ycl-server/src/main/java/com/ycl/platform/service/ReportService.java | 3 ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java | 9 +++ ycl-server/src/main/java/com/ycl/platform/controller/ReportController.java | 6 +- ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml | 29 ++++++++- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 3 ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java | 38 +++++++++++- ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java | 4 + ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java | 35 ++++++++--- 11 files changed, 116 insertions(+), 38 deletions(-) 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 f0e710f..07f8c7e 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,7 +71,7 @@ @TableField("end_create_time") private Date endCreateTime; - /** 鐗堟湰鍙凤細鍙敤浜庢煡璇㈠巻鍙插鏍歌褰� */ - @TableField("version") - private Integer version; + /** 鏍囪瘑鍙凤細鍙敤浜庢煡璇㈠巻鍙插鏍歌褰� */ + @TableField("identify") + private String identify; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java index 10bf0ff..461f9a2 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java @@ -1,5 +1,6 @@ package com.ycl.platform.domain.form; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.system.domain.group.Update; import com.ycl.system.domain.group.Add; import com.ycl.platform.base.AbsForm; @@ -35,13 +36,12 @@ @ApiModelProperty("鐐逛綅") private Integer pointId; - @ApiModelProperty("瀹℃牳鏃堕棿") - private Date auditingTime; - @ApiModelProperty("鐢熸晥鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") private Date beginCreateTime; @ApiModelProperty("澶辨晥鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") private Date endCreateTime; @ApiModelProperty("瀹℃牳绫诲瀷") @@ -57,12 +57,6 @@ @ApiModelProperty("鏁呴殰绫诲瀷") private String errorType; - - @ApiModelProperty("瀹℃牳鎰忚") - private String auditOpinion; - - @ApiModelProperty("鐘舵��") - private Integer status; public static Report getEntityByForm(@NonNull ReportForm form, Report entity) { if(entity == null) { diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java index 4e63f3b..2e69882 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java @@ -24,9 +24,9 @@ private String reportType; - private Date beginCreateTime; - - private Date endCreateTime; +// private Date beginCreateTime; +// +// private Date endCreateTime; private String pointId; @@ -36,5 +36,8 @@ private List<Integer> peopleIdList; + @ApiModelProperty("鐘舵��") + private Integer 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 aafc0aa..13f523d 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 @@ -1,6 +1,7 @@ package com.ycl.platform.domain.vo; import annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.Report; @@ -56,17 +57,20 @@ private String errorType; /** 瀹℃牳鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") private Date auditingTime; /** * 鐢熸晥鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date beginCreateTime; /** * 澶辨晥鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date endCreateTime; /** 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 2f07121..4f85e46 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 @@ -88,11 +88,11 @@ return reportService.all(); } - @GetMapping("/examine/record") + @GetMapping("/auditing/record/{id}") @ApiOperation(value = "瀹℃牳璁板綍", notes = "瀹℃牳璁板綍") @PreAuthorize("@ss.hasPermi('system:report:record')") - public Result examineRecord() { - return reportService.examineRecord(); + public Result auditingRecord(@PathVariable("id") Integer id) { + return reportService.auditingRecord(id); } @PostMapping("/auditing") diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java index bb38f57..aff5d13 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java @@ -9,6 +9,7 @@ import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.PathVariable; /** * 鎶ュ Mapper 鎺ュ彛 @@ -20,4 +21,12 @@ public interface ReportMapper extends BaseMapper<Report> { IPage<ReportVO> page(IPage page, @Param("query") ReportQuery query); + + /** + * 瀹℃牳璁板綍 + * + * @param id + * @return + */ + List<ReportVO> examineRecord(@Param("id") Integer 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 752cfee..c8f3bba 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 @@ -75,8 +75,9 @@ * 鑾峰彇瀹℃牳璁板綍 * * @return + * @param id */ - Result examineRecord(); + Result auditingRecord(Integer id); /** * 瀹℃牳鎶ュ 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 d284f95..3230e09 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 @@ -12,7 +12,6 @@ import com.ycl.platform.domain.form.ReportForm; import com.ycl.platform.domain.query.ReportQuery; import com.ycl.platform.domain.vo.ReportVO; -import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.mapper.ReportMapper; import com.ycl.platform.mapper.YwPeopleMapper; import com.ycl.platform.mapper.YwPointMapper; @@ -21,9 +20,11 @@ import com.ycl.system.Result; import com.ycl.system.page.PageUtil; import com.ycl.utils.SecurityUtils; +import com.ycl.utils.uuid.IdUtils; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; @@ -61,6 +62,7 @@ form.setUnitId(people.getBelongUnit()); Report entity = ReportForm.getEntityByForm(form, null); entity.setStatus(0); + entity.setIdentify(IdUtils.timeAddRandomNO(3)); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -76,14 +78,25 @@ public Result update(ReportForm form) { Report entity = baseMapper.selectById(form.getId()); - // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); - BeanUtils.copyProperties(form, entity); - if (baseMapper.updateById(entity) > 0) { - return Result.ok("淇敼鎴愬姛"); + + if (0 == entity.getStatus()) { + // 寰呭鏍哥殑鐩存帴鏀� + BeanUtils.copyProperties(form, entity); + baseMapper.updateById(entity); + } else if (2 == entity.getStatus()) { + // 濡傛灉鏄湭瀹℃牳閫氳繃锛岃繘琛屼慨鏀癸紝閭d箞鐩存帴鏂板锛堜负浜嗕繚瀛樺鏍歌褰曪級 + Report report = new Report(); + BeanUtils.copyProperties(entity, report); + BeanUtils.copyProperties(form, report); + report.setId(null); + report.setStatus(0); + report.setAuditingTime(null); + report.setAuditOpinion(null); + baseMapper.insert(report); } - return Result.error("淇敼澶辫触"); + return Result.ok("淇敼鎴愬姛"); } /** @@ -174,8 +187,8 @@ IPage<Report> page = new LambdaQueryChainWrapper<>(baseMapper) .eq(StringUtils.isNotBlank(query.getReportType()), Report::getReportType, query.getReportType()) - .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime()) - .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime()) +// .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime()) +// .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime()) .in(!CollectionUtils.isEmpty(query.getPointIdList()), Report::getPointId, query.getPointIdList()) .in(!CollectionUtils.isEmpty(query.getPeopleIdList()), Report::getPeopleId, query.getPeopleIdList()) .orderByDesc(Report::getCreateTime) @@ -200,9 +213,9 @@ @Override - public Result examineRecord() { - - return null; + public Result auditingRecord(Integer id) { + List<ReportVO> reportList = baseMapper.examineRecord(id); + return Result.ok().data(reportList); } @Override diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java index 03e14a0..7e75841 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -23,6 +23,7 @@ import com.ycl.utils.DateUtils; import com.ycl.utils.SecurityUtils; import com.ycl.utils.redis.RedisCache; +import com.ycl.utils.uuid.IdUtils; import enumeration.general.*; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ArrayUtils; @@ -74,7 +75,7 @@ @Override public Result add(WorkOrderForm form) { WorkOrder entity = WorkOrderForm.getEntityByForm(form, null); - entity.setWorkOrderNo(DateUtils.dateTimeNow()); + entity.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); entity.setCreateTime(DateUtils.getNowDate()); entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE); if(baseMapper.insert(entity) > 0) { diff --git a/ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java b/ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java index c95c6e3..eaf4e6b 100644 --- a/ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java +++ b/ycl-server/src/main/java/com/ycl/utils/uuid/IdUtils.java @@ -1,15 +1,22 @@ package com.ycl.utils.uuid; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Random; + /** * ID鐢熸垚鍣ㄥ伐鍏风被 - * + * * @author ruoyi */ public class IdUtils { + + private final static SimpleDateFormat FORMAT = new SimpleDateFormat("yyyyMMddHHmmss"); + /** * 鑾峰彇闅忔満UUID - * + * * @return 闅忔満UUID */ public static String randomUUID() @@ -39,11 +46,36 @@ /** * 绠�鍖栫殑UUID锛屽幓鎺変簡妯嚎锛屼娇鐢ㄦ�ц兘鏇村ソ鐨凾hreadLocalRandom鐢熸垚UUID - * + * * @return 绠�鍖栫殑UUID锛屽幓鎺変簡妯嚎 */ public static String fastSimpleUUID() { return UUID.fastUUID().toString(true); } + + /** + * 鑾峰彇褰撳墠鏃堕棿+闅忔満鏁扮殑缂栧彿 + * + * @param numberNum 鏃堕棿鍚庣敓鎴愬嚑浣嶆暟瀛楋紝榛樿5 + * @return 缂栧彿 + */ + public static String timeAddRandomNO(Integer numberNum) + { + if (numberNum == null || numberNum == 0 || numberNum < 3) { + numberNum = 5; + } + + Date now = new Date(); + String timeString = FORMAT.format(now); + + Random random = new Random(); + StringBuilder builder = new StringBuilder(); + builder.append(timeString); + for (int i = 0; i < numberNum; i++) { + // 鐢熸垚涓�涓�0鍒�9涔嬮棿鐨勯殢鏈烘暟锛堝寘鎷�0鍜�9锛� + builder.append(random.nextInt(10)); + } + return builder.toString(); + } } diff --git a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml index a6bac16..382f7b4 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml @@ -24,13 +24,19 @@ LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0 LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0 LEFT JOIN t_yw_point pt ON r.point_id = pt.id and pt.deleted = 0 - where + INNER JOIN ( + SELECT identify,MAX(create_time) AS create_time + FROM t_report + WHERE deleted = 0 + GROUP BY identify + ) as rr ON r.create_time = rr.create_time + WHERE r.deleted = 0 <if test="query.reportType != null and query.reportType != ''"> AND r.report_type = #{query.reportType} </if> - <if test="query.beginCreateTime != null"> - AND r.create_time between #{query.beginCreateTime} and #{query.endCreateTime} + <if test="query.status != null"> + AND r.status = #{query.status} </if> <if test="query.pointId != null and query.pointId != ''"> AND pt.point_name like concat('%', #{query.pointId}, '%') @@ -38,7 +44,22 @@ <if test="query.peopleId != null and query.peopleId != ''"> AND p.yw_person_name like concat('%', #{query.peopleId}, '%') </if> - ORDER BY r.create_time DESC + ORDER BY r.update_time DESC + </select> + + <select id="examineRecord" resultMap="BaseResultMap"> + SELECT + r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name + FROM + t_report r + LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0 + LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0 + LEFT JOIN t_yw_point pt ON r.point_id = pt.id and pt.deleted = 0 + INNER JOIN ( + SELECT identify, create_time + FROM t_report + WHERE id = #{id} AND deleted = 0 + ) as rr ON r.identify = rr.identify AND r.create_time <= rr.create_time </select> </mapper> -- Gitblit v1.8.0