From 1fb6ce7f165e85cb9458d6e8d1b6bf7debc1e665 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 03 十二月 2025 14:26:37 +0800
Subject: [PATCH] 功能开发
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 145 insertions(+), 15 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
index cd2a697..7cc8814 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -6,18 +6,17 @@
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.CategoryMapper;
-import com.doumee.dao.business.JkCabinetGridMapper;
-import com.doumee.dao.business.JkKeysMapper;
+import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.*;
+import com.doumee.dao.system.MultifileMapper;
+import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.JkCabinetMapper;
import com.doumee.service.business.JkCabinetService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -62,6 +61,12 @@
@Autowired
private MemberMapper memberMapper;
+ @Autowired
+ private MultifileMapper multifileMapper;
+
+ @Autowired
+ private CarUseBookMapper carUseBookMapper;
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public Integer create(JkCabinet jkCabinet) {
@@ -76,6 +81,7 @@
|| CollectionUtils.isEmpty(jkCabinet.getManagerIdList())
|| CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
|| Objects.isNull(jkCabinet.getDoubleAuth())
+ || Objects.isNull(jkCabinet.getAlcoholStatus())
|| Objects.isNull(jkCabinet.getRowNum())
|| jkCabinet.getRowNum() <= Constants.ZERO
@@ -85,7 +91,7 @@
|| Objects.isNull(jkCabinet.getSortType())
|| (
Constants.equalsInteger(jkCabinet.getNoType(),Constants.ONE)
- && ( Objects.isNull(jkCabinet.getNoIndex()) || Objects.isNull(jkCabinet.getNoLength()) || StringUtils.isBlank(jkCabinet.getNoPrefix()) )
+ && ( Objects.isNull(jkCabinet.getNoIndex()) || Objects.isNull(jkCabinet.getNoLength()) )
)
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -113,6 +119,17 @@
jkCabinet.setAuthMemberId(String.join(",",jkCabinet.getAuthMemberIdList()));
jkCabinetMapper.insert(jkCabinet);
this.createGrid(jkCabinet);
+
+ if(Objects.nonNull(jkCabinet.getActivateFile())){
+ Multifile multifile = jkCabinet.getActivateFile();
+ multifile.setCreateDate(new Date());
+ multifile.setEditDate(multifile.getCreateDate());
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setObjId(jkCabinet.getId());
+ multifile.setObjType(Constants.FIVE);
+ multifileMapper.insert(multifile);
+ }
+
return jkCabinet.getId();
}
@@ -134,7 +151,7 @@
if(Constants.equalsInteger(jkCabinet.getNoType(),Constants.ZERO)){
grid.setCode(StringUtils.leftPad(startNo.toString(),maxNum.toString().length()+1,"0"));
}else{
- grid.setCode(jkCabinet.getNoPrefix() + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0"));
+ grid.setCode(StringUtils.isNotBlank(jkCabinet.getNoPrefix())?jkCabinet.getNoPrefix():"" + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0"));
}
jkCabinetGridList.add(grid);
@@ -197,6 +214,7 @@
|| CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
|| Objects.isNull(jkCabinet.getPort())
|| Objects.isNull(jkCabinet.getDoubleAuth())
+ || Objects.isNull(jkCabinet.getAlcoholStatus())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -224,6 +242,23 @@
jkCabinet.setManagerId(String.join(",",jkCabinet.getManagerIdList()));
jkCabinet.setAuthMemberId(String.join(",",jkCabinet.getAuthMemberIdList()));
jkCabinetMapper.updateById(jkCabinet);
+
+ multifileMapper.update(new UpdateWrapper<Multifile>().lambda()
+ .set(Multifile::getIsdeleted,Constants.ONE)
+ .eq(Multifile::getObjType,Constants.FIVE)
+ .eq(Multifile::getObjId,jkCabinet.getId())
+ );
+ if(Objects.nonNull(jkCabinet.getActivateFile())){
+ Multifile multifile = jkCabinet.getActivateFile();
+ multifile.setId(null);
+ multifile.setCreateDate(new Date());
+ multifile.setEditDate(multifile.getCreateDate());
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setObjId(jkCabinet.getId());
+ multifile.setObjType(Constants.FIVE);
+ multifileMapper.insert(multifile);
+ }
+
}
@Override
@@ -274,6 +309,19 @@
jkCabinet.getAuthMemberId().split(",")
));
}
+ Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>()
+ .lambda()
+ .eq(Multifile::getObjType,Constants.FIVE)
+ .eq(Multifile::getObjId,jkCabinet.getId())
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .last(" limit 1 "));
+ if(Objects.nonNull(multifile)){
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.ACTIVATE).getCode();
+ multifile.setFileurlFull(prefixUrl + multifile.getFileurl());
+ jkCabinet.setActivateFile(multifile);
+ }
+
return jkCabinet;
}
@@ -371,7 +419,7 @@
List<JkCabinet> jkCabinetList = jkCabinetMapper.selectList(new QueryWrapper<JkCabinet>()
.lambda()
.eq(JkCabinet::getIsdeleted,Constants.ZERO)
- .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
+ .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
.orderByAsc(JkCabinet::getCreateDate)
);
if(CollectionUtils.isNotEmpty(jkCabinetList)){
@@ -391,7 +439,7 @@
JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
.lambda()
.eq(JkCabinet::getIsdeleted,Constants.ZERO)
- .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
+ .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
.eq(JkCabinet::getId,cabinetId)
.last(" limit 1")
);
@@ -405,17 +453,19 @@
cabinetDetailVO.setServiceKeyNum(Constants.ZERO);
cabinetDetailVO.setOutKeyNum(Constants.ZERO);
cabinetDetailVO.setUnBindGridNum(Constants.ZERO);
+ cabinetDetailVO.setMemberId(loginUserInfo.getMemberId());
//鎵�鏈夋煖鏍间俊鎭�
List<JkCabinetGrid> jkCabinetGridList =
jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
.selectAll(JkCabinetGrid.class)
.selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
.selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
.leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
.eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
.eq(JkCabinetGrid::getCabinetId,cabinet.getId())
- .orderByDesc(JkCabinetGrid::getCode)
+ .orderByAsc(JkCabinetGrid::getCode)
);
List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
@@ -425,8 +475,10 @@
CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
BeanUtil.copyProperties(jkCabinetGrid,cabinetGridInfoVO);
cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+ cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
cabinetGridInfoVOList.add(cabinetGridInfoVO);
}
+ cabinetDetailVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
cabinetDetailVO.setErrGridNum(
cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getWorkingStatus(),Constants.ONE)).collect(Collectors.toList()).size()
);
@@ -472,20 +524,44 @@
.isNotNull(JkKeys::getCarId)
.eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
);
+ List<Member> driverList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
List<Integer> carIdList = jkCabinetGridList.stream().map(i->i.getKeyId()).collect(Collectors.toList());
//鏌ヨ杞﹁締鎵�鏈変汉鍛樹俊鎭�
- List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+ driverList.addAll(memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
.selectAll(Member.class)
- .leftJoin(CarDriver.class,CarDriver::getMemberId,Member::getId)
+ .leftJoin(Cars.class,Cars::getMemberId,Member::getId)
+ .leftJoin(JkKeys.class,JkKeys::getCarId,Cars::getId)
.eq(Member::getIsdeleted,Constants.ZERO)
.eq(CarDriver::getIsdeleted,Constants.ZERO)
.eq(CarDriver::getStatus,Constants.ZERO)
.isNotNull(Member::getFaceImg)
- .in(CarDriver::getCarId,carIdList)
+ .in(JkKeys::getId,carIdList))
);
- if(CollectionUtils.isNotEmpty(memberList)){
- Set<Member> memberSet = new HashSet<>(memberList);
+ }
+ //娲捐溅鍗曞徃鏈轰俊鎭�
+ String earlyConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
+ List<CarUseBook> carUseBookList = carUseBookMapper.selectList(new QueryWrapper<CarUseBook>().lambda()
+ .eq(CarUseBook::getIsdeleted,Constants.ZERO)
+ .isNotNull(CarUseBook::getDriverId)
+ .apply(" car_id in ( SELECT k.CAR_ID FROM jk_cabinet_grid j inner join jk_keys k on j.KEY_ID = k.ID where j.isdeleted = 0 and k.isdeleted = 0 ) ")
+ .apply(" (" +
+ "( NOW() > DATE_SUB(START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < end_time and KEY_STATUS = 0 ) " +
+ "or" +
+ " KEY_STATUS = 1 " +
+ ") ")
+ );
+ if(CollectionUtils.isNotEmpty(carUseBookList)){
+ driverList.addAll(memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .isNotNull(Member::getFaceImg)
+ .in(Member::getId,carUseBookList.stream().map(i->i.getDriverId()).collect(Collectors.toList()))
+ ));
+ }
+
+ if(CollectionUtils.isNotEmpty(driverList)){
+ if(CollectionUtils.isNotEmpty(driverList)){
+ Set<Member> memberSet = new HashSet<>(driverList);
for (Member member:memberSet) {
CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
cabinetFaceInfoVO.setMemberId(member.getId());
@@ -499,7 +575,7 @@
List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
.eq(Member::getIsdeleted,Constants.ZERO)
.isNotNull(Member::getFaceImg)
- .apply(" FIND_IN_SET( id ,'"+jkCabinet.getManagerId()+"') ")
+ .apply(" FIND_IN_SET( id ,'"+jkCabinet.getAuthMemberId()+"') ")
);
if(CollectionUtils.isNotEmpty(memberList)){
for (Member member:memberList) {
@@ -530,7 +606,40 @@
CabinetInfoVO cabinetInfoVO = new CabinetInfoVO();
if(Objects.nonNull(jkCabinet)){
BeanUtil.copyProperties(jkCabinet,cabinetInfoVO);
+ //鎵�鏈夋煖鏍间俊鎭�
+ List<JkCabinetGrid> jkCabinetGridList =
+ jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
+ .selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+ .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+ .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+ .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
+ .orderByAsc(JkCabinetGrid::getCode)
+ );
+
+ List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
+ if(CollectionUtils.isNotEmpty(jkCabinetGridList)) {
+ for (JkCabinetGrid jkCabinetGrid : jkCabinetGridList) {
+ CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
+ BeanUtil.copyProperties(jkCabinetGrid, cabinetGridInfoVO);
+ cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId()) ? Constants.ZERO : Constants.ONE);
+ cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
+ cabinetGridInfoVOList.add(cabinetGridInfoVO);
+ }
+ cabinetInfoVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
+ }
+
+ CabinetConfigDataVO cabinetConfigDataVO = new CabinetConfigDataVO();
+ cabinetConfigDataVO.setConcentration(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CONCENTRATION).getCode());
+ cabinetConfigDataVO.setPressure(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.PRESSURE).getCode());
+ cabinetConfigDataVO.setBlowTime(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.BLOW_TIME).getCode());
+ cabinetConfigDataVO.setThreshold(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.THRESHOLD).getCode());
+ cabinetInfoVO.setCabinetConfigDataVO(cabinetConfigDataVO);
+
}
+ cabinetInfoVO.setLinkPhone(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.LINK_PHONE).getCode());
List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
.eq(Category::getIsdeleted,Constants.ZERO)
.eq(Category::getStatus,Constants.ZERO)
@@ -547,6 +656,19 @@
categoryList.stream().map(i->i.getImgurlFull()).collect(Collectors.toList())
);
}
+
+
+ Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>()
+ .lambda()
+ .eq(Multifile::getObjType,Constants.FIVE)
+ .eq(Multifile::getObjId,jkCabinet.getId())
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
+ .last(" limit 1 "));
+ if(Objects.nonNull(multifile)&&StringUtils.isNotBlank(multifile.getFileurl())){
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.ACTIVATE).getCode();
+ cabinetInfoVO.setActivateFileUrl(prefixUrl + multifile.getFileurl());
+ }
return cabinetInfoVO;
}
@@ -562,4 +684,12 @@
}
+ @Override
+ public void updHeartbeat(String code){
+ jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
+ .lambda()
+ .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime())
+ .eq(JkCabinet::getCode,code));
+ }
+
}
--
Gitblit v1.9.3