| 
					
				 | 
			
			
				@@ -27,6 +27,7 @@ import com.qmrb.system.service.IContractPlaceNumberRelService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.qmrb.system.service.IContractService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.qmrb.system.service.SysUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -55,6 +56,7 @@ import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @author xue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @since 2025-03-11 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Slf4j 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @RequiredArgsConstructor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlaceNumberRelMapper, ContractPlaceNumberRel> implements IContractPlaceNumberRelService { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,17 +270,23 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime inDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LambdaQueryWrapper<ContractPlaceNumberRel> queryWrapper = new LambdaQueryWrapper<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryWrapper.eq(ContractPlaceNumberRel::getPlateNumber, barnRecord.getPlaceNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.eq(ContractPlaceNumberRel::getPlateNumber, barnRecord.getCarNumber()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         queryWrapper.eq(ContractPlaceNumberRel::getStatus, "1");// 0停用1启用 2到期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 当前时间应大于包租协议开始日,小于结束日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         LocalDateTime now = LocalDateTime.now(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryWrapper.lt(ContractPlaceNumberRel::getEndTime, inDateTime);// 0停用1启用 2到期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        queryWrapper.gt(ContractPlaceNumberRel::getStartTime, now);// 0停用1启用 2到期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.gt(ContractPlaceNumberRel::getEndTime, inDateTime);// 0停用1启用 2到期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryWrapper.lt(ContractPlaceNumberRel::getStartTime, now);// 0停用1启用 2到期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<ContractPlaceNumberRel> list = this.list(queryWrapper); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtil.isNotEmpty(list)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ContractPlaceNumberRel contractPlaceNumberRel = list.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            long between = DateUtil.between(contractPlaceNumberRel.getStartTime(), new Date(), DateUnit.MINUTE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            long between = 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(contractPlaceNumberRel.getStartTime().before(barnRecord.getInTime())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                between = DateUtil.between(barnRecord.getInTime(), new Date(), DateUnit.MINUTE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                between = DateUtil.between(contractPlaceNumberRel.getStartTime(), new Date(), DateUnit.MINUTE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             HashMap<String, Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 将 Date 转换为 Instant 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -288,6 +296,7 @@ public class ContractPlaceNumberRelServiceImpl extends ServiceImpl<ContractPlace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LocalDateTime endTime = endTimeinstant.atZone(ZoneId.systemDefault()).toLocalDateTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             map.put("denomination", Double.valueOf(between)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             map.put("expireTime", endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.info("包租协议抵扣时长:",between,endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return null; 
			 |