Browse Source

优惠车牌历史记录

xlq 2 weeks ago
parent
commit
876af1f1ca

+ 5 - 0
src/main/java/com/qmrb/system/pojo/vo/ContractPlaceNumberRelVO.java

@@ -44,6 +44,11 @@ public class ContractPlaceNumberRelVO {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
     /**
+     * 覆盖时间
+     */
+    @Schema(description = "覆盖时间",type="String")
+    private String coverTime;
+    /**
      * 到期日期
      */
 	@Schema(description = "到期日期",type="Date")

+ 31 - 9
src/main/java/com/qmrb/system/service/impl/ContractPlaceNumberRelServiceImpl.java

@@ -27,6 +27,11 @@ import cn.hutool.core.lang.Assert;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Date;
+
 /**
  * <p>
  * 协议(客商)车牌关系 服务实现类
@@ -63,7 +68,7 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
                 new Page<>(pageNum, pageSize),
                 new LambdaQueryWrapper<ContractPlaceNumberRel>()
                         .eq(sysUser != null, ContractPlaceNumberRel::getContractId, sysUser.getContractId())
-						.orderByDesc(ContractPlaceNumberRel::getStartTime)
+                        .orderByDesc(ContractPlaceNumberRel::getStartTime)
 
                 //.like(StrUtil.isNotBlank(keywords), ContractPlaceNumberRel::getCategoryName, keywords)
         );
@@ -130,19 +135,36 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace
         int pageNum = queryParams.getPageNum();
         int pageSize = queryParams.getPageSize();
         // 查询数据
-		LambdaQueryWrapper<ContractPlaceNumberRel> queryWrapper = new LambdaQueryWrapper<>();
-		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getStartTimeBegin()), ContractPlaceNumberRel::getStartTime, queryParams.getStartTimeBegin()).le(StrUtil.isNotBlank(queryParams.getStartTimeEnd()), ContractPlaceNumberRel::getStartTime, queryParams.getStartTimeEnd());
-		queryWrapper.ge(StrUtil.isNotBlank(queryParams.getEndTimeBegin()), ContractPlaceNumberRel::getEndTime, queryParams.getEndTimeBegin()).le(StrUtil.isNotBlank(queryParams.getEndTimeEnd()), ContractPlaceNumberRel::getEndTime, queryParams.getEndTimeEnd());
-		queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPhone()),ContractPlaceNumberRel::getPhone, queryParams.getPhone());
-		queryWrapper.orderByDesc(ContractPlaceNumberRel::getStartTime);
-		
+        LambdaQueryWrapper<ContractPlaceNumberRel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.ge(StrUtil.isNotBlank(queryParams.getStartTimeBegin()), ContractPlaceNumberRel::getStartTime, queryParams.getStartTimeBegin()).le(StrUtil.isNotBlank(queryParams.getStartTimeEnd()), ContractPlaceNumberRel::getStartTime, queryParams.getStartTimeEnd());
+        queryWrapper.ge(StrUtil.isNotBlank(queryParams.getEndTimeBegin()), ContractPlaceNumberRel::getEndTime, queryParams.getEndTimeBegin()).le(StrUtil.isNotBlank(queryParams.getEndTimeEnd()), ContractPlaceNumberRel::getEndTime, queryParams.getEndTimeEnd());
+        queryWrapper.eq(StrUtil.isNotBlank(queryParams.getPhone()), ContractPlaceNumberRel::getPhone, queryParams.getPhone());
+        queryWrapper.orderByDesc(ContractPlaceNumberRel::getStartTime);
+
         Page<ContractPlaceNumberRel> dictItemPage = this.page(
                 new Page<>(pageNum, pageSize),
-				queryWrapper
-		);
+                queryWrapper
+        );
 
         // 实体转换
         Page<ContractPlaceNumberRelVO> pageResult = converter.entity2Page(dictItemPage);
+        for (ContractPlaceNumberRelVO record : pageResult.getRecords()) {
+            Date startTime = record.getStartTime();
+            Date endTime = record.getEndTime();
+            // 将 Date 转换为 LocalDateTime
+            LocalDateTime startLocalDateTime = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+            LocalDateTime endLocalDateTime = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+
+            // 计算时间差
+            Duration duration = Duration.between(startLocalDateTime, endLocalDateTime);
+
+            // 获取天、小时、分钟和秒
+            long days = duration.toDays();
+            long hours = duration.toHours() % 24;
+            long minutes = duration.toMinutes() % 60;
+            long seconds = duration.getSeconds() % 60;
+            record.setCoverTime(days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒");
+        }
         return pageResult;
     }