From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java | 675 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 675 insertions(+), 0 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
new file mode 100644
index 0000000..bf05a2f
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -0,0 +1,675 @@
+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;
+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.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;
+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 com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 閽ュ寵鏌滃熀鏈俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/28 09:01
+ */
+@Service
+public class JkCabinetServiceImpl implements JkCabinetService {
+
+ @Autowired
+ private JkCabinetMapper jkCabinetMapper;
+
+ @Autowired
+ private MultifileMapper multifileMapper;
+
+ @Autowired
+ private CategoryMapper categoryMapper;
+
+ @Autowired
+ private JkCabinetGridMapper jkCabinetGridMapper;
+
+ @Autowired
+ private JkKeysMapper jkKeysMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private MemberMapper memberMapper;
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public Integer create(JkCabinet jkCabinet) {
+ if(Objects.isNull(jkCabinet)
+ || StringUtils.isBlank(jkCabinet.getCode())
+ || StringUtils.isBlank(jkCabinet.getName())
+ || StringUtils.isBlank(jkCabinet.getDevId())
+ || StringUtils.isBlank(jkCabinet.getLinkAddr())
+ || StringUtils.isBlank(jkCabinet.getCode())
+
+ || Objects.isNull(jkCabinet.getPort())
+ || CollectionUtils.isEmpty(jkCabinet.getManagerIdList())
+ || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
+ || Objects.isNull(jkCabinet.getDoubleAuth())
+ || Objects.isNull(jkCabinet.getAlcoholStatus())
+
+ || Objects.isNull(jkCabinet.getRowNum())
+ || jkCabinet.getRowNum() <= Constants.ZERO
+ || Objects.isNull(jkCabinet.getColumnNum())
+ || jkCabinet.getColumnNum() <= Constants.ZERO
+ || Objects.isNull(jkCabinet.getNoType())
+ || Objects.isNull(jkCabinet.getSortType())
+ || (
+ Constants.equalsInteger(jkCabinet.getNoType(),Constants.ONE)
+ && ( Objects.isNull(jkCabinet.getNoIndex()) || Objects.isNull(jkCabinet.getNoLength()) )
+ )
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ //鏌ヨ缂栧彿鏄惁閲嶅
+ if(jkCabinetMapper.selectCount(new QueryWrapper<JkCabinet>().lambda().eq(JkCabinet::getCode,jkCabinet.getCode()).eq(JkCabinet::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵鏌滆澶囩紪鍙峰凡瀛樺湪锛�");
+ }
+ if(jkCabinetMapper.selectCount(new QueryWrapper<JkCabinet>().lambda().eq(JkCabinet::getDevId,jkCabinet.getDevId()).eq(JkCabinet::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵鏌滆澶嘔D宸插瓨鍦紒");
+ }
+ LoginUserInfo loginUserInfo = jkCabinet.getLoginUserInfo();
+ jkCabinet.setCreateDate(new Date());
+ jkCabinet.setEditDate(jkCabinet.getCreateDate());
+ jkCabinet.setCreator(loginUserInfo.getId());
+ jkCabinet.setEditor(loginUserInfo.getId());
+ jkCabinet.setIsdeleted(Constants.ZERO);
+ jkCabinet.setStatus(Constants.ZERO);
+ jkCabinet.setRunStatus(Constants.ONE);
+ if(StringUtils.isNotBlank(jkCabinet.getJwd())&&jkCabinet.getJwd().split(",").length>Constants.ONE){
+ jkCabinet.setLongitude(new BigDecimal(jkCabinet.getJwd().split(",")[Constants.ZERO]));
+ jkCabinet.setLatitude(new BigDecimal(jkCabinet.getJwd().split(",")[Constants.ONE]));
+ }
+ jkCabinet.setManagerId(String.join(",",jkCabinet.getManagerIdList()));
+ jkCabinet.setAuthMemberId(String.join(",",jkCabinet.getAuthMemberIdList()));
+ jkCabinetMapper.insert(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);
+ }
+
+
+ this.createGrid(jkCabinet);
+ return jkCabinet.getId();
+ }
+
+
+ public void createGrid(JkCabinet jkCabinet){
+ LoginUserInfo loginUserInfo = jkCabinet.getLoginUserInfo();
+ Integer startNo = Constants.equalsInteger(jkCabinet.getNoType(),Constants.ZERO)?1:jkCabinet.getNoIndex() ;
+ List<JkCabinetGrid> jkCabinetGridList = new ArrayList<>();
+ Integer maxNum = jkCabinet.getRowNum() * jkCabinet.getColumnNum();
+ for (int i = 0; i < maxNum; i++) {
+ JkCabinetGrid grid = new JkCabinetGrid();
+ grid.setCreateDate(new Date());
+ grid.setEditDate(jkCabinet.getCreateDate());
+ grid.setCreator(loginUserInfo.getId());
+ grid.setEditor(loginUserInfo.getId());
+ grid.setIsdeleted(Constants.ZERO);
+ grid.setStatus(Constants.ZERO);
+ grid.setCabinetId(jkCabinet.getId());
+ if(Constants.equalsInteger(jkCabinet.getNoType(),Constants.ZERO)){
+ grid.setCode(StringUtils.leftPad(startNo.toString(),maxNum.toString().length()+1,"0"));
+ }else{
+ grid.setCode(StringUtils.isNotBlank(jkCabinet.getNoPrefix())?jkCabinet.getNoPrefix():"" + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0"));
+ }
+
+ jkCabinetGridList.add(grid);
+ startNo = startNo + 1;
+ }
+ jkCabinetGridMapper.insert(jkCabinetGridList);
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ JkCabinet jkCabinet = jkCabinetMapper.selectById(id);
+ if(Constants.equalsInteger(jkCabinet.getStatus(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐢ㄦ暟鎹紝鏃犳硶杩涜鍒犻櫎");
+ }
+ //鏌ヨ閽ュ寵鏌滀笅鐨勬煖鏍间俊鎭�
+ List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectList(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
+ );
+ if(Objects.nonNull(jkCabinetGridList)){
+ jkCabinetGridMapper.update(null,new UpdateWrapper<JkCabinetGrid>().lambda().set(JkCabinetGrid::getIsdeleted,Constants.ONE)
+ .in(JkCabinetGrid::getId,jkCabinetGridList.stream().map(i->i.getId()).collect(Collectors.toList()))
+ );
+ List<Integer> keyIdList = jkCabinetGridList.stream().filter(i->Objects.nonNull(i.getKeyId())).map(i->i.getKeyId()).collect(Collectors.toList());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(keyIdList)){
+ jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
+ .set(JkKeys::getStatus,Constants.ZERO)
+ .in(JkKeys::getId,keyIdList)
+ );
+ }
+ }
+ jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>().lambda()
+ .set(JkCabinet::getIsdeleted,Constants.ONE)
+ .eq(JkCabinet::getId,jkCabinet.getId()));
+ }
+
+ @Override
+ public void delete(JkCabinet jkCabinet) {
+ UpdateWrapper<JkCabinet> deleteWrapper = new UpdateWrapper<>(jkCabinet);
+ jkCabinetMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ jkCabinetMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(JkCabinet jkCabinet) {
+ if(Objects.isNull(jkCabinet)
+ || Objects.isNull(jkCabinet.getId())
+ || StringUtils.isBlank(jkCabinet.getCode())
+ || StringUtils.isBlank(jkCabinet.getName())
+ || StringUtils.isBlank(jkCabinet.getDevId())
+ || StringUtils.isBlank(jkCabinet.getLinkAddr())
+ || StringUtils.isBlank(jkCabinet.getCode())
+ || CollectionUtils.isEmpty(jkCabinet.getManagerIdList())
+ || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
+ || Objects.isNull(jkCabinet.getPort())
+ || Objects.isNull(jkCabinet.getDoubleAuth())
+ || Objects.isNull(jkCabinet.getAlcoholStatus())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ jkCabinet.setRowNum(null);
+ jkCabinet.setColumnNum(null);
+ jkCabinet.setSortType(null);
+ jkCabinet.setNoType(null);
+ jkCabinet.setNoIndex(null);
+ jkCabinet.setNoLength(null);
+ jkCabinet.setNoPrefix(null);
+ //鏌ヨ缂栧彿鏄惁閲嶅
+ if(jkCabinetMapper.selectCount(new QueryWrapper<JkCabinet>().lambda().ne(JkCabinet::getId,jkCabinet.getId()).eq(JkCabinet::getCode,jkCabinet.getCode()).eq(JkCabinet::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵鏌滆澶囩紪鍙峰凡瀛樺湪锛�");
+ }
+ if(jkCabinetMapper.selectCount(new QueryWrapper<JkCabinet>().lambda().ne(JkCabinet::getId,jkCabinet.getId()).eq(JkCabinet::getDevId,jkCabinet.getDevId()).eq(JkCabinet::getIsdeleted,Constants.ZERO))>Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽ュ寵鏌滆澶嘔D宸插瓨鍦紒");
+ }
+ LoginUserInfo loginUserInfo = jkCabinet.getLoginUserInfo();
+ jkCabinet.setEditDate(new Date());
+ jkCabinet.setEditor(loginUserInfo.getId());
+ if(StringUtils.isNotBlank(jkCabinet.getJwd())&&jkCabinet.getJwd().split(",").length>Constants.ONE){
+ jkCabinet.setLongitude(new BigDecimal(jkCabinet.getJwd().split(",")[Constants.ZERO]));
+ jkCabinet.setLatitude(new BigDecimal(jkCabinet.getJwd().split(",")[Constants.ONE]));
+ }
+ 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
+ public void updateStatusById(JkCabinet jkCabinet) {
+ if(Objects.isNull(jkCabinet)
+ || Objects.isNull(jkCabinet.getId())
+ || Objects.isNull(jkCabinet.getStatus())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
+ .lambda().set(JkCabinet::getStatus,jkCabinet.getStatus())
+ .set(JkCabinet::getEditDate, DateUtil.getCurrDateTime())
+ .eq(JkCabinet::getId,jkCabinet.getId()));
+ }
+
+
+ @Override
+ public void updateByIdInBatch(List<JkCabinet> jkCabinets) {
+ if (CollectionUtils.isEmpty(jkCabinets)) {
+ return;
+ }
+ for (JkCabinet jkCabinet: jkCabinets) {
+ this.updateById(jkCabinet);
+ }
+ }
+
+ @Override
+ public JkCabinet findById(Integer id) {
+ return jkCabinetMapper.selectById(id);
+ }
+
+
+ @Override
+ public JkCabinet getDetail(Integer id){
+ JkCabinet jkCabinet = jkCabinetMapper.selectById(id);
+ if(Objects.nonNull(jkCabinet.getLongitude())
+ && Objects.nonNull(jkCabinet.getLatitude())){
+ jkCabinet.setJwd(jkCabinet.getLongitude() + "," + jkCabinet.getLatitude());
+ }
+ jkCabinet.setGridNum(jkCabinet.getColumnNum()*jkCabinet.getRowNum());
+ if(StringUtils.isNotBlank(jkCabinet.getManagerId())){
+ jkCabinet.setManagerIdList(Arrays.asList(
+ jkCabinet.getManagerId().split(",")
+ ));
+ }
+ if(StringUtils.isNotBlank(jkCabinet.getAuthMemberId())){
+ jkCabinet.setAuthMemberIdList(Arrays.asList(
+ 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;
+ }
+
+ @Override
+ public JkCabinet findOne(JkCabinet jkCabinet) {
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<JkCabinet> findList(JkCabinet jkCabinet) {
+ jkCabinet.setIsdeleted(Constants.ZERO);
+ jkCabinet.setStatus(Constants.ZERO);
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<JkCabinet> findPage(PageWrap<JkCabinet> pageWrap) {
+ IPage<JkCabinet> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ Utils.MP.blankToNull(pageWrap.getModel());
+ JkCabinet model = pageWrap.getModel();
+ IPage<JkCabinet> iPage = jkCabinetMapper.selectPage(page, new QueryWrapper<JkCabinet>()
+ .lambda()
+ .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+ .like(StringUtils.isNotBlank(model.getName()),JkCabinet::getName, model.getName())
+ .like(StringUtils.isNotBlank(model.getCode()),JkCabinet::getCode, model.getCode())
+ .eq(Objects.nonNull(model.getStatus()),JkCabinet::getStatus, model.getStatus())
+ .eq(Objects.nonNull(model.getRunStatus()),JkCabinet::getRunStatus, model.getRunStatus())
+ );
+ for (JkCabinet jkCabinet:iPage.getRecords()) {
+ jkCabinet.setGridNum(jkCabinet.getColumnNum()*jkCabinet.getRowNum());
+ }
+ return PageData.from(iPage);
+ }
+
+ @Override
+ public long count(JkCabinet jkCabinet) {
+ QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
+ return jkCabinetMapper.selectCount(wrapper);
+ }
+
+
+
+ @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.getMemberId()+",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,LoginUserInfo loginUserInfo){
+ CabinetDetailVO cabinetDetailVO = new CabinetDetailVO();
+ JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
+ .lambda()
+ .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+ .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
+ .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);
+ cabinetDetailVO.setMemberId(loginUserInfo.getMemberId());
+
+
+ Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>()
+ .lambda()
+ .eq(Multifile::getObjType,Constants.FIVE)
+ .eq(Multifile::getObjId,cabinet.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();
+ cabinetDetailVO.setActivateFileUrl(prefixUrl + multifile.getFileurl());
+ }
+
+
+ //鎵�鏈夋煖鏍间俊鎭�
+ 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())
+ .orderByAsc(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);
+ 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()
+ );
+ 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;
+ }
+
+
+
+ @Override
+ public CabinetFaceVO getCabinetFaceVO(String code){
+ CabinetFaceVO cabinetFaceVO = new CabinetFaceVO();
+ List<CabinetFaceInfoVO> driverFaceList = new ArrayList<>();
+ List<CabinetFaceInfoVO> autoFaceList = new ArrayList<>();
+
+ JkCabinet jkCabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>().lambda()
+ .eq(JkCabinet::getCode,code)
+ .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+ .last("limit 1")
+ );
+ if(Objects.nonNull(jkCabinet)){
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ //鏌ヨ鍙告満淇℃伅
+ List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,new MPJLambdaWrapper<JkCabinetGrid>()
+ .selectAll(JkCabinetGrid.class)
+ .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+ .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+ .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+ .eq(JkKeys::getIsdeleted,Constants.ZERO)
+ .isNotNull(JkKeys::getCarId)
+ .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
+ );
+ 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>()
+ .selectAll(Member.class)
+ .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(JkKeys::getId,carIdList)
+ );
+ if(CollectionUtils.isNotEmpty(memberList)){
+ Set<Member> memberSet = new HashSet<>(memberList);
+ for (Member member:memberSet) {
+ CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
+ cabinetFaceInfoVO.setMemberId(member.getId());
+ cabinetFaceInfoVO.setMemberName(member.getName());
+ cabinetFaceInfoVO.setFaceImg(prefixUrl + member.getFaceImg());
+ driverFaceList.add(cabinetFaceInfoVO);
+ }
+ }
+ }
+ //鏌ヨ璁惧楠岃瘉浜哄憳
+ List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .isNotNull(Member::getFaceImg)
+ .apply(" FIND_IN_SET( id ,'"+jkCabinet.getAuthMemberId()+"') ")
+ );
+ if(CollectionUtils.isNotEmpty(memberList)){
+ for (Member member:memberList) {
+ CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
+ cabinetFaceInfoVO.setMemberId(member.getId());
+ cabinetFaceInfoVO.setMemberName(member.getName());
+ cabinetFaceInfoVO.setFaceImg(prefixUrl + member.getFaceImg());
+ autoFaceList.add(cabinetFaceInfoVO);
+ }
+ }
+
+ }
+ cabinetFaceVO.setAutoFaceList(autoFaceList);
+ cabinetFaceVO.setDriverFaceList(driverFaceList);
+ return cabinetFaceVO;
+ }
+
+
+ @Override
+ public CabinetInfoVO getCabinetInfoForDriver(String code){
+ JkCabinet jkCabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
+ .lambda()
+ .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+ .eq(JkCabinet::getCode,code)
+ .orderByAsc(JkCabinet::getCreateDate)
+ .last(" limit 1 ")
+ );
+ 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);
+
+ 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());
+ }
+
+ }
+ 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)
+ .eq(Category::getType,Constants.THREE)
+ .orderByAsc(Category::getSortnum)
+ );
+ if(CollectionUtils.isNotEmpty(categoryList)){
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.BANNER_IMG).getCode();
+ for (Category category:categoryList) {
+ category.setImgurlFull(prefixUrl + category.getImgurl());
+ }
+ cabinetInfoVO.setBannerList(
+ categoryList.stream().map(i->i.getImgurlFull()).collect(Collectors.toList())
+ );
+ }
+ return cabinetInfoVO;
+ }
+
+
+
+ @Override
+ public void updateRunStatusById(Integer id) {
+ jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
+ .lambda().set(JkCabinet::getRunStatus,Constants.ZERO)
+ .set(JkCabinet::getEditDate, DateUtil.getCurrDateTime())
+ .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime())
+ .eq(JkCabinet::getId,id));
+ }
+
+
+}
--
Gitblit v1.9.3