From d5397923196daf2c54f00e927492261d66e1feb2 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期六, 11 十月 2025 18:19:34 +0800
Subject: [PATCH] 钥匙柜开发

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 138 insertions(+), 1 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 36b38ff..161d43f 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
@@ -1,5 +1,7 @@
 package com.doumee.service.business.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
@@ -8,6 +10,11 @@
 import com.doumee.dao.business.JkKeysMapper;
 import com.doumee.dao.business.model.JkCabinetGrid;
 import com.doumee.dao.business.model.JkKeys;
+import com.doumee.dao.business.vo.AdminCabinetVO;
+import com.doumee.dao.business.vo.CabinetConfigDataVO;
+import com.doumee.dao.business.vo.CabinetDetailVO;
+import com.doumee.dao.business.vo.CabinetGridInfoVO;
+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;
@@ -19,11 +26,14 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.java.Log;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -45,6 +55,9 @@
 
     @Autowired
     private JkKeysMapper jkKeysMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -292,8 +305,132 @@
 
 
 
+    @Override
+    public CabinetConfigDataVO getCabinetConfigDataVO(){
+        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());
+        return cabinetConfigDataVO;
+
+    }
 
 
+    @Override
+    public void updCabinetConfig(CabinetConfigDataVO cabinetConfigDataVO){
+        if(Objects.isNull(cabinetConfigDataVO)
+        || (StringUtils.isBlank(cabinetConfigDataVO.getBlowTime())
+        && StringUtils.isBlank(cabinetConfigDataVO.getConcentration())
+                && StringUtils.isBlank(cabinetConfigDataVO.getPressure())
+                && StringUtils.isBlank(cabinetConfigDataVO.getThreshold())
+        )){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(StringUtils.isNotBlank(cabinetConfigDataVO.getConcentration())){
+            SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CONCENTRATION);
+            systemDictData.setCode(cabinetConfigDataVO.getConcentration());
+            systemDictDataBiz.updateByIdNew(systemDictData);
+        }
+        if(StringUtils.isNotBlank(cabinetConfigDataVO.getPressure())){
+            SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.PRESSURE);
+            systemDictData.setCode(cabinetConfigDataVO.getPressure());
+            systemDictDataBiz.updateByIdNew(systemDictData);
+        }
+        if(StringUtils.isNotBlank(cabinetConfigDataVO.getBlowTime())){
+            SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.BLOW_TIME);
+            systemDictData.setCode(cabinetConfigDataVO.getBlowTime());
+            systemDictDataBiz.updateByIdNew(systemDictData);
+        }
+        if(StringUtils.isNotBlank(cabinetConfigDataVO.getThreshold())){
+            SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.THRESHOLD);
+            systemDictData.setCode(cabinetConfigDataVO.getThreshold());
+            systemDictDataBiz.updateByIdNew(systemDictData);
+        }
+    }
+
+
+
+
+    @Override
+    public List<AdminCabinetVO> getAdminCabinetInfo(LoginUserInfo loginUserInfo){
+        List<AdminCabinetVO> adminCabinetVOList = new ArrayList<>();
+        List<JkCabinet> jkCabinetList = jkCabinetMapper.selectList(new QueryWrapper<JkCabinet>()
+                .lambda()
+                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
+                .orderByAsc(JkCabinet::getCreateDate)
+        );
+        if(CollectionUtils.isNotEmpty(jkCabinetList)){
+            for (JkCabinet jkCabinet:jkCabinetList) {
+                AdminCabinetVO adminCabinetVO = new AdminCabinetVO();
+                BeanUtil.copyProperties(jkCabinet,adminCabinetVO);
+                adminCabinetVOList.add(adminCabinetVO);
+            }
+        }
+        return adminCabinetVOList;
+    }
+
+
+    @Override
+    public CabinetDetailVO getCabinetDetail(Integer cabinetId){
+        CabinetDetailVO cabinetDetailVO = new CabinetDetailVO();
+        JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
+                .lambda()
+                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+                .eq(JkCabinet::getId,cabinetId)
+                .last(" limit 1")
+        );
+        if(Objects.isNull(cabinet)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌閽ュ寵鏌滀俊鎭�");
+        }
+        BeanUtil.copyProperties(cabinet,cabinetDetailVO);
+        cabinetDetailVO.setGridNum(Constants.ZERO);
+        cabinetDetailVO.setErrGridNum(Constants.ZERO);
+        cabinetDetailVO.setOnlineKeyNum(Constants.ZERO);
+        cabinetDetailVO.setServiceKeyNum(Constants.ZERO);
+        cabinetDetailVO.setOutKeyNum(Constants.ZERO);
+        cabinetDetailVO.setUnBindGridNum(Constants.ZERO);
+
+        //鎵�鏈夋煖鏍间俊鎭�
+        List<JkCabinetGrid> jkCabinetGridList =
+                jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
+                .selectAll(JkCabinetGrid.class)
+                .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                .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)
+        );
+
+        List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
+        if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+            cabinetDetailVO.setGridNum(jkCabinetGridList.size());
+            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
+                BeanUtil.copyProperties(jkCabinetGrid,cabinetGridInfoVO);
+                cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+                cabinetGridInfoVOList.add(cabinetGridInfoVO);
+            }
+            cabinetDetailVO.setErrGridNum(
+                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getWorkingStatus(),Constants.ONE)).collect(Collectors.toList()).size()
+            );
+            cabinetDetailVO.setOnlineKeyNum(
+                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.ONE)).collect(Collectors.toList()).size()
+            );
+            cabinetDetailVO.setOutKeyNum(
+                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.TWO)).collect(Collectors.toList()).size()
+            );
+            cabinetDetailVO.setServiceKeyNum(
+                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getKeyStatus(),Constants.THREE)).collect(Collectors.toList()).size()
+            );
+            cabinetDetailVO.setUnBindGridNum(
+                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getBindStatus(),Constants.ZERO)).collect(Collectors.toList()).size()
+            );
+        }
+        return cabinetDetailVO;
+    }
 
 
 }

--
Gitblit v1.9.3