From f8ad853042ef31067711ff29a9b36e7ffababa21 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 14 一月 2026 16:03:28 +0800
Subject: [PATCH] 功能优化
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java | 32 +++++++++++++++++---------------
1 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
index 4f627d6..ef75bb3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -35,6 +35,7 @@
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -519,6 +520,8 @@
JkCabinetLog lastOutLog = jkCabinetLogMapper.selectOne(new QueryWrapper<JkCabinetLog>().lambda()
.eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
.eq(JkCabinetLog::getType,Constants.ZERO)
+ .isNull(JkCabinetLog::getKeyStatus)
+ .isNotNull(JkCabinetLog::getOpenWay)
.orderByDesc(JkCabinetLog::getId)
.last( "limit 1 "));
if(Objects.nonNull(lastOutLog)){
@@ -610,27 +613,22 @@
|| Objects.isNull(dto.getType())){
return jkCabinetGridList;
}else{
- JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
+ JkCabinet jkCabinet = jkCabinetMapper.selectJoinOne(JkCabinet.class,new MPJLambdaWrapper<JkCabinet>()
+ .selectAll(JkCabinet.class)
+ .select("now()",JkCabinet::getNow)
+ .eq(JkCabinet::getId,dto.getCabinetId()));
if(Objects.isNull(jkCabinet)){
return jkCabinetGridList;
}
- if(Constants.equalsInteger(jkCabinet.getDoubleAuth(),Constants.ONE)){
- if(StringUtils.isBlank(jkCabinet.getAuthMemberId())){
+ if(Constants.equalsInteger(jkCabinet.getDoubleAuth(),Constants.ONE)&&Constants.equalsInteger(dto.getType(),Constants.ZERO)){
+ if(StringUtils.isBlank(jkCabinet.getAuthMemberId())||Objects.isNull(dto.getAutoMemberId())){
return jkCabinetGridList;
}
List<String> authMemberList = Arrays.asList(jkCabinet.getAuthMemberId().split(","));
- Boolean flag = true;
- for (String id:authMemberList) {
- if(Arrays.asList(jkCabinet.getAuthMemberId().split(",")).contains(id)){
- flag = false;
- break;
- }
- }
- if(flag){
+ if(!authMemberList.contains(dto.getAutoMemberId().toString())){
return jkCabinetGridList;
}
}
-
//濡傛灉鏄繕閽ュ寵 鍒欑洿鎺ユ煡璇㈠凡鍊熷嚭鐨勯挜鍖欑殑鏁版嵁
if(Constants.equalsInteger(dto.getType(),Constants.ONE)){
jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
@@ -667,7 +665,7 @@
//鍒ゆ柇褰撳墠鏃堕棿鏄惁澶勪簬淇濇磥鏃舵鍐�
String cleanConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CLEAN_TIME).getCode();
String earlyConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
- Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig);
+ Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig,jkCabinet.getNow());
List<Integer> girdIdList = new ArrayList<>();
//鏌ヨ鏍规嵁浠诲姟鍙互棰嗗彇鐨勬暟鎹�
jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
@@ -688,7 +686,11 @@
.eq(JkKeys::getRoleType,Constants.ONE)
// .eq(Cars::getMemberId,dto.getMemberId())
.isNotNull(JkCabinetGrid::getKeyId)
- .apply(" t2.code in ( select c.car_code from car_use_book c where c.isdeleted = 0 and NOW() > DATE_SUB(c.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < c.end_time and c.DRIVER_ID = "+dto.getMemberId()+" ) ")
+ .apply(" ( t2.code in ( select c.car_code from car_use_book c where c.isdeleted = 0 and NOW() > DATE_SUB(c.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < c.end_time " +
+ " and c.DRIVER_ID = "+dto.getMemberId()+" )" +
+ " or t2.code in ( select c.car_code from car_use_book c inner join cars c1 on c.CAR_ID = c1.ID where c1.MEMBER_ID = "+dto.getMemberId()+" AND NOW() > DATE_SUB( c.START_TIME, INTERVAL 30 MINUTE ) AND now() < c.end_time )" +
+ " )" +
+ " ")
);
for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
@@ -1220,7 +1222,7 @@
List<SyncGridDTO> gridSyncList = gridDTOList.stream().filter(i->StringUtils.isNotBlank(i.getBoardCode())&&
StringUtils.isNotBlank(i.getChannelCode())&&StringUtils.isNotBlank(i.getActualLable())&&i.getBoardCode().equals(jkCabinetGrid.getBoardCode())
&& i.getChannelCode().equals(jkCabinetGrid.getChannelCode())).collect(Collectors.toList());
- if(CollectionUtils.isEmpty(gridDTOList)){
+ if(CollectionUtils.isEmpty(gridSyncList)){
continue;
}
SyncGridDTO syncGridDTO = gridSyncList.get(Constants.ZERO);
--
Gitblit v1.9.3