From 03d482e4aeb7feebe8eff91f8fb40b40b2548f3a Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Wed, 17 Apr 2024 08:53:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=BD=92=E6=A1=A3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coal/device/dto/CreateDeviceDto.java | 9 ---- .../coal/device/dto/UpdateDeviceDto.java | 9 ---- .../controller/MeterLogController.java | 12 +++++ .../coal/meterLog/dto/MeterLogDto.java | 7 +++ .../coal/meterLog/entity/MeterLogEntity.java | 16 ++++++ .../meterLog/service/MeterLogService.java | 50 +++++++++++++++++++ 6 files changed, 85 insertions(+), 18 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/device/dto/CreateDeviceDto.java b/src/main/java/cn/lihongjie/coal/device/dto/CreateDeviceDto.java index 6e169a0e..7613ee56 100644 --- a/src/main/java/cn/lihongjie/coal/device/dto/CreateDeviceDto.java +++ b/src/main/java/cn/lihongjie/coal/device/dto/CreateDeviceDto.java @@ -1,11 +1,6 @@ package cn.lihongjie.coal.device.dto; import cn.lihongjie.coal.base.dto.OrgCommonDto; -import cn.lihongjie.coal.device.entity.DeviceEntity; -import cn.lihongjie.coal.errorMsg.ErrorMsgCode; -import cn.lihongjie.coal.validator.OrgUniq; -import cn.lihongjie.coal.validator.RequireCode; -import cn.lihongjie.coal.validator.RequireName; import jakarta.persistence.ManyToOne; @@ -14,10 +9,6 @@ import lombok.Data; import org.hibernate.annotations.Comment; @Data -@RequireName -@RequireCode -@OrgUniq(fields = {"code"}, message = ErrorMsgCode.UNIQ_CODE, entityClass = DeviceEntity.class) -@OrgUniq(fields = {"name"}, message = ErrorMsgCode.UNIQ_NAME, entityClass = DeviceEntity.class) public class CreateDeviceDto extends OrgCommonDto { diff --git a/src/main/java/cn/lihongjie/coal/device/dto/UpdateDeviceDto.java b/src/main/java/cn/lihongjie/coal/device/dto/UpdateDeviceDto.java index 067235fb..491d3c39 100644 --- a/src/main/java/cn/lihongjie/coal/device/dto/UpdateDeviceDto.java +++ b/src/main/java/cn/lihongjie/coal/device/dto/UpdateDeviceDto.java @@ -1,11 +1,6 @@ package cn.lihongjie.coal.device.dto; import cn.lihongjie.coal.base.dto.OrgCommonDto; -import cn.lihongjie.coal.device.entity.DeviceEntity; -import cn.lihongjie.coal.errorMsg.ErrorMsgCode; -import cn.lihongjie.coal.validator.OrgUniq; -import cn.lihongjie.coal.validator.RequireCode; -import cn.lihongjie.coal.validator.RequireName; import jakarta.persistence.ManyToOne; @@ -14,10 +9,6 @@ import lombok.Data; import org.hibernate.annotations.Comment; @Data -@RequireName -@RequireCode -@OrgUniq(fields = {"code"}, message = ErrorMsgCode.UNIQ_CODE, entityClass = DeviceEntity.class) -@OrgUniq(fields = {"name"}, message = ErrorMsgCode.UNIQ_NAME, entityClass = DeviceEntity.class) public class UpdateDeviceDto extends OrgCommonDto { @Comment("设备型号") private String model; diff --git a/src/main/java/cn/lihongjie/coal/meterLog/controller/MeterLogController.java b/src/main/java/cn/lihongjie/coal/meterLog/controller/MeterLogController.java index 4c02adc3..f82e8a98 100644 --- a/src/main/java/cn/lihongjie/coal/meterLog/controller/MeterLogController.java +++ b/src/main/java/cn/lihongjie/coal/meterLog/controller/MeterLogController.java @@ -52,4 +52,16 @@ public class MeterLogController { return this.service.list(request); } + @PostMapping("/archive") + public Object archive(@RequestBody IdRequest request) { + this.service.archive(request); + return true; + } + + @PostMapping("/unarchive") + public Object unarchive(@RequestBody IdRequest request) { + this.service.unarchive(request); + return true; + } + } diff --git a/src/main/java/cn/lihongjie/coal/meterLog/dto/MeterLogDto.java b/src/main/java/cn/lihongjie/coal/meterLog/dto/MeterLogDto.java index 954f2148..696b3d05 100644 --- a/src/main/java/cn/lihongjie/coal/meterLog/dto/MeterLogDto.java +++ b/src/main/java/cn/lihongjie/coal/meterLog/dto/MeterLogDto.java @@ -24,4 +24,11 @@ public class MeterLogDto extends OrgCommonDto { @Comment("使用量") private java.lang.Double usage; + + + @Comment("归档状态") + private String archiveStatus = "0"; + + + private String archiveStatusName; } diff --git a/src/main/java/cn/lihongjie/coal/meterLog/entity/MeterLogEntity.java b/src/main/java/cn/lihongjie/coal/meterLog/entity/MeterLogEntity.java index f79be506..251da038 100644 --- a/src/main/java/cn/lihongjie/coal/meterLog/entity/MeterLogEntity.java +++ b/src/main/java/cn/lihongjie/coal/meterLog/entity/MeterLogEntity.java @@ -7,6 +7,7 @@ import jakarta.persistence.ManyToOne; import lombok.Data; +import org.hibernate.annotations.ColumnDefault; import org.hibernate.annotations.Comment; import org.hibernate.annotations.Formula; @@ -22,6 +23,21 @@ public class MeterLogEntity extends OrgCommonEntity { @Comment("抄表值") private java.lang.Double value; + + @Comment("归档状态") + @ColumnDefault("'0'") + private String archiveStatus = "0"; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'archiveStatus'\n" + + " and i.code = archive_status)") + private String archiveStatusName; + + @Formula("( lag(value, 1, (select tm.init_value from t_meter tm where tm.id = meter_id)) over (partition by meter_id order by time asc ) )") private java.lang.Double previousValue; @Formula(" ( value - ( lag(value, 1, (select tm.init_value from t_meter tm where tm.id = meter_id)) over (partition by meter_id order by time asc ) ) )") diff --git a/src/main/java/cn/lihongjie/coal/meterLog/service/MeterLogService.java b/src/main/java/cn/lihongjie/coal/meterLog/service/MeterLogService.java index 1b0305fd..8a3ece14 100644 --- a/src/main/java/cn/lihongjie/coal/meterLog/service/MeterLogService.java +++ b/src/main/java/cn/lihongjie/coal/meterLog/service/MeterLogService.java @@ -3,6 +3,8 @@ package cn.lihongjie.coal.meterLog.service; import cn.lihongjie.coal.base.dto.CommonQuery; import cn.lihongjie.coal.base.dto.IdRequest; import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.common.ArchiveUtils; +import cn.lihongjie.coal.exception.BizException; import cn.lihongjie.coal.meterDayLog.service.MeterDayLogService; import cn.lihongjie.coal.meterLog.dto.CreateMeterLogDto; import cn.lihongjie.coal.meterLog.dto.MeterLogDto; @@ -46,6 +48,15 @@ public class MeterLogService extends BaseService "0", + (e, actual, expected) -> { + throw new BizException("数据 " + "已归档,无法编辑"); + }); + this.mapper.updateEntity(entity, request); this.repository.save(entity); @@ -55,6 +66,15 @@ public class MeterLogService extends BaseService "0", + (e, actual, expected) -> { + throw new BizException("数据 " + "已归档,无法删除"); + }); + this.repository.deleteAllById(request.getIds()); @@ -78,6 +98,36 @@ public class MeterLogService extends BaseService + ArchiveUtils.checkArchiveStatus( + x, + MeterLogEntity::getArchiveStatus, + y -> "0", + (e, actual, expected) -> { + throw new BizException("数据 " + "已归档,无法再次归档"); + })) + .peek(x -> x.setArchiveStatus("1")) + .forEach(this.repository::save); + } + + public void unarchive(IdRequest dto) { + this.repository.findAllById(dto.getIds()).stream() + .peek( + x -> + ArchiveUtils.checkArchiveStatus( + x, + MeterLogEntity::getArchiveStatus, + y -> "1", + (e, actual, expected) -> { + throw new BizException("数据" + "未归档,无法取消归档"); + })) + .peek(x -> x.setArchiveStatus("0")) + .forEach(this.repository::save); + } + @Autowired MeterMonthLogService meterMonthLogService;