123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package com.care.bms.service;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.care.common.entity.CareDevice;
- import com.care.common.entity.CareOrganization;
- import com.care.common.entity.CareStation;
- import com.care.common.enums.DeviceActiveStatusEnum;
- import com.care.common.exception.BDException;
- import com.care.common.service.CareDeviceService;
- import com.care.common.service.CareOrganizationService;
- import com.care.common.service.CareStationService;
- import com.care.common.util.RandomCodeUtil;
- import com.care.common.vo.PageReqVO;
- import com.care.common.vo.UserLogindConvertVO;
- import com.care.common.vo.device.DeviceVO;
- import com.care.common.vo.station.StationVO;
- import org.apache.commons.compress.utils.Lists;
- import org.springframework.beans.BeanUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * @Author: lilt
- * @Date: 2021/7/14
- * @Desc:
- */
- @Service
- public class StationService {
- @Resource
- private CareStationService careStationService;
- @Resource
- private CareDeviceService careDeviceService;
- @Resource
- private CareOrganizationService careOrganizationService;
- /**
- * 查询服务站列表
- * @return
- */
- public IPage<StationVO> listStation(String name, Long orgId, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
- IPage<CareStation> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
- QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().like(StrUtil.isNotEmpty(name),CareStation::getName,name)
- .eq(orgId != null,CareStation::getOrgId,orgId)
- .eq(loginUser.getOrgId() != null,CareStation::getOrgId,loginUser.getOrgId())
- .orderByAsc(CareStation::getName);
- IPage<CareStation> pageRes = this.careStationService.page(page, queryWrapper);
- IPage<StationVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
- if(CollUtil.isNotEmpty(pageRes.getRecords())){
- List<StationVO> list = new ArrayList<>();
- pageRes.getRecords().forEach(item -> {
- StationVO resVO = new StationVO();
- BeanUtils.copyProperties(item,resVO);
- //服务设备数量
- QueryWrapper<CareDevice> queryWrapper1 = new QueryWrapper<>();
- queryWrapper1.lambda().eq(CareDevice::getStationId,resVO.getId());
- resVO.setDevCount(this.careDeviceService.count(queryWrapper1));
- CareOrganization org = this.careOrganizationService.getById(resVO.getOrgId());
- resVO.setOrgName(org != null? org.getName() : "");
- list.add(resVO);
- });
- results.setRecords(list);
- }
- return results;
- }
- public StationVO getStationInfo(Long stationId) {
- CareStation stationInfo = this.careStationService.getById(stationId);
- if(stationInfo == null){
- return null;
- }
- StationVO vo = new StationVO();
- BeanUtil.copyProperties(stationInfo,vo);
- QueryWrapper<CareDevice> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CareDevice::getStationId,stationId);
- List<CareDevice> deviceList = this.careDeviceService.list(queryWrapper);
- if(CollUtil.isNotEmpty(deviceList)){
- List<DeviceVO> deviceVOList = Lists.newArrayList();
- deviceList.forEach(item -> {
- DeviceVO deviceVO = new DeviceVO();
- BeanUtil.copyProperties(item,deviceVO);
- deviceVO.setActiveStatusName(DeviceActiveStatusEnum.getCodeToName(deviceVO.getActiveStatus()));
- deviceVOList.add(deviceVO);
- });
- vo.setDeviceVOList(deviceVOList);
- vo.setDevCount(deviceVOList.size());
- }
- CareOrganization careOrganization = this.careOrganizationService.getById(vo.getOrgId());
- if(careOrganization != null){
- vo.setOrgName(careOrganization.getName());
- }
- return vo;
- }
- /**
- * 查询登陆人,所能看到的 服务站列表
- * @param loginUser
- * @return
- */
- public List<StationVO> queryStationsForSelect(UserLogindConvertVO loginUser){
- List<StationVO> datas = Lists.newArrayList();
- if (loginUser == null){
- return datas;
- }
- QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(loginUser.getOrgId()!=null,CareStation::getOrgId,loginUser.getOrgId());
- queryWrapper.lambda().eq(loginUser.getStationId()!=null,CareStation::getId,loginUser.getStationId());
- List<CareStation> stations = this.careStationService.list(queryWrapper);
- if (CollUtil.isNotEmpty(stations)){
- stations.forEach(item -> {
- StationVO vo = new StationVO();
- BeanUtil.copyProperties(item,vo);
- datas.add(vo);
- });
- }
- return datas;
- }
- public Long addStation(StationVO vo) throws BDException {
- QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CareStation::getName,vo.getName());
- int count = this.careStationService.count(queryWrapper);
- if(count > 0){
- throw new BDException("服务站名称已经存在!");
- }
- CareStation careStation = new CareStation();
- BeanUtil.copyProperties(vo,careStation);
- careStation.setCode(getCode());
- careStation.setCreateTime(new Date());
- boolean flag = this.careStationService.save(careStation);
- if (!flag) {
- throw new BDException("新增服务站失败!");
- }
- return careStation.getId();
- }
- private String getCode(){
- String code = RandomCodeUtil.radomNumberCode(10);
- QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
- queryWrapper.lambda().eq(CareStation::getCode,code);
- CareStation careStationDb1 = this.careStationService.getOne(queryWrapper);
- if(careStationDb1 == null) {
- return code;
- } else {
- return getCode();
- }
- }
- }
|