From 8d2f5011aee911f31cba0e65a37dd700d6d39e0d Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期五, 10 十月 2025 18:21:03 +0800 Subject: [PATCH] 钥匙柜开发 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java | 348 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 251 insertions(+), 97 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 ace6b04..6f1c80b 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,17 @@ package com.doumee.service.business.impl; +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.JkCabinetGridMapper; +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.CabinetConfigDataVO; +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; @@ -10,11 +22,15 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** * 閽ュ寵鏌滃熀鏈俊鎭〃Service瀹炵幇 @@ -27,15 +43,121 @@ @Autowired private JkCabinetMapper jkCabinetMapper; + @Autowired + private JkCabinetGridMapper jkCabinetGridMapper; + + @Autowired + private JkKeysMapper jkKeysMapper; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @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.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()) || StringUtils.isBlank(jkCabinet.getNoPrefix()) ) + ) + ){ + 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); + 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(jkCabinet.getNoPrefix() + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0")); + } + + jkCabinetGridList.add(grid); + startNo = startNo + 1; + } + jkCabinetGridMapper.insert(jkCabinetGridList); } @Override public void deleteById(Integer id) { - jkCabinetMapper.deleteById(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 @@ -54,8 +176,59 @@ @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()) + ){ + 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); } + + @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) { @@ -72,6 +245,18 @@ 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()); + return jkCabinet; + } + @Override public JkCabinet findOne(JkCabinet jkCabinet) { QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet); @@ -80,6 +265,8 @@ @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); } @@ -87,103 +274,20 @@ @Override public PageData<JkCabinet> findPage(PageWrap<JkCabinet> pageWrap) { IPage<JkCabinet> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<JkCabinet> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); - if (pageWrap.getModel().getId() != null) { - queryWrapper.lambda().eq(JkCabinet::getId, pageWrap.getModel().getId()); + 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()); } - if (pageWrap.getModel().getCreator() != null) { - queryWrapper.lambda().eq(JkCabinet::getCreator, pageWrap.getModel().getCreator()); - } - if (pageWrap.getModel().getCreateDate() != null) { - queryWrapper.lambda().ge(JkCabinet::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); - queryWrapper.lambda().le(JkCabinet::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); - } - if (pageWrap.getModel().getEditor() != null) { - queryWrapper.lambda().eq(JkCabinet::getEditor, pageWrap.getModel().getEditor()); - } - if (pageWrap.getModel().getEditDate() != null) { - queryWrapper.lambda().ge(JkCabinet::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); - queryWrapper.lambda().le(JkCabinet::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); - } - if (pageWrap.getModel().getIsdeleted() != null) { - queryWrapper.lambda().eq(JkCabinet::getIsdeleted, pageWrap.getModel().getIsdeleted()); - } - if (pageWrap.getModel().getInfo() != null) { - queryWrapper.lambda().eq(JkCabinet::getInfo, pageWrap.getModel().getInfo()); - } - if (pageWrap.getModel().getCode() != null) { - queryWrapper.lambda().eq(JkCabinet::getCode, pageWrap.getModel().getCode()); - } - if (pageWrap.getModel().getName() != null) { - queryWrapper.lambda().eq(JkCabinet::getName, pageWrap.getModel().getName()); - } - if (pageWrap.getModel().getDevId() != null) { - queryWrapper.lambda().eq(JkCabinet::getDevId, pageWrap.getModel().getDevId()); - } - if (pageWrap.getModel().getSerialNo() != null) { - queryWrapper.lambda().eq(JkCabinet::getSerialNo, pageWrap.getModel().getSerialNo()); - } - if (pageWrap.getModel().getLinkAddr() != null) { - queryWrapper.lambda().eq(JkCabinet::getLinkAddr, pageWrap.getModel().getLinkAddr()); - } - if (pageWrap.getModel().getStatus() != null) { - queryWrapper.lambda().eq(JkCabinet::getStatus, pageWrap.getModel().getStatus()); - } - if (pageWrap.getModel().getPort() != null) { - queryWrapper.lambda().eq(JkCabinet::getPort, pageWrap.getModel().getPort()); - } - if (pageWrap.getModel().getManagerId() != null) { - queryWrapper.lambda().eq(JkCabinet::getManagerId, pageWrap.getModel().getManagerId()); - } - if (pageWrap.getModel().getUseTime() != null) { - queryWrapper.lambda().eq(JkCabinet::getUseTime, pageWrap.getModel().getUseTime()); - } - if (pageWrap.getModel().getDoubleAuth() != null) { - queryWrapper.lambda().eq(JkCabinet::getDoubleAuth, pageWrap.getModel().getDoubleAuth()); - } - if (pageWrap.getModel().getAuthMemberId() != null) { - queryWrapper.lambda().eq(JkCabinet::getAuthMemberId, pageWrap.getModel().getAuthMemberId()); - } - if (pageWrap.getModel().getRowNum() != null) { - queryWrapper.lambda().eq(JkCabinet::getRowNum, pageWrap.getModel().getRowNum()); - } - if (pageWrap.getModel().getColumnNum() != null) { - queryWrapper.lambda().eq(JkCabinet::getColumnNum, pageWrap.getModel().getColumnNum()); - } - if (pageWrap.getModel().getHaertTime() != null) { - queryWrapper.lambda().ge(JkCabinet::getHaertTime, Utils.Date.getStart(pageWrap.getModel().getHaertTime())); - queryWrapper.lambda().le(JkCabinet::getHaertTime, Utils.Date.getEnd(pageWrap.getModel().getHaertTime())); - } - if (pageWrap.getModel().getLacation() != null) { - queryWrapper.lambda().eq(JkCabinet::getLacation, pageWrap.getModel().getLacation()); - } - if (pageWrap.getModel().getLongitude() != null) { - queryWrapper.lambda().eq(JkCabinet::getLongitude, pageWrap.getModel().getLongitude()); - } - if (pageWrap.getModel().getLatitude() != null) { - queryWrapper.lambda().eq(JkCabinet::getLatitude, pageWrap.getModel().getLatitude()); - } - if (pageWrap.getModel().getNoType() != null) { - queryWrapper.lambda().eq(JkCabinet::getNoType, pageWrap.getModel().getNoType()); - } - if (pageWrap.getModel().getNoPrefix() != null) { - queryWrapper.lambda().eq(JkCabinet::getNoPrefix, pageWrap.getModel().getNoPrefix()); - } - if (pageWrap.getModel().getNoLength() != null) { - queryWrapper.lambda().eq(JkCabinet::getNoLength, pageWrap.getModel().getNoLength()); - } - if (pageWrap.getModel().getNoIndex() != null) { - queryWrapper.lambda().eq(JkCabinet::getNoIndex, pageWrap.getModel().getNoIndex()); - } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } - } - return PageData.from(jkCabinetMapper.selectPage(page, queryWrapper)); + return PageData.from(iPage); } @Override @@ -191,4 +295,54 @@ 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); + } + + + } + + } -- Gitblit v1.9.3