StationService.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.care.bms.service;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.care.common.entity.CareDevice;
  9. import com.care.common.entity.CareOrganization;
  10. import com.care.common.entity.CareStation;
  11. import com.care.common.enums.DeviceActiveStatusEnum;
  12. import com.care.common.exception.BDException;
  13. import com.care.common.service.CareDeviceService;
  14. import com.care.common.service.CareOrganizationService;
  15. import com.care.common.service.CareStationService;
  16. import com.care.common.util.RandomCodeUtil;
  17. import com.care.common.vo.PageReqVO;
  18. import com.care.common.vo.UserLogindConvertVO;
  19. import com.care.common.vo.device.DeviceVO;
  20. import com.care.common.vo.station.StationVO;
  21. import org.apache.commons.compress.utils.Lists;
  22. import org.springframework.beans.BeanUtils;
  23. import org.springframework.stereotype.Service;
  24. import javax.annotation.Resource;
  25. import java.util.ArrayList;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * @Author: lilt
  30. * @Date: 2021/7/14
  31. * @Desc:
  32. */
  33. @Service
  34. public class StationService {
  35. @Resource
  36. private CareStationService careStationService;
  37. @Resource
  38. private CareDeviceService careDeviceService;
  39. @Resource
  40. private CareOrganizationService careOrganizationService;
  41. /**
  42. * 查询服务站列表
  43. * @return
  44. */
  45. public IPage<StationVO> listStation(String name, Long orgId, UserLogindConvertVO loginUser, PageReqVO pageReqVo) {
  46. IPage<CareStation> page = new Page<>(pageReqVo.getCurrent(), pageReqVo.getPageSize());
  47. QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
  48. queryWrapper.lambda().like(StrUtil.isNotEmpty(name),CareStation::getName,name)
  49. .eq(orgId != null,CareStation::getOrgId,orgId)
  50. .eq(loginUser.getOrgId() != null,CareStation::getOrgId,loginUser.getOrgId())
  51. .orderByAsc(CareStation::getName);
  52. IPage<CareStation> pageRes = this.careStationService.page(page, queryWrapper);
  53. IPage<StationVO> results = new Page<>(pageRes.getCurrent(),pageRes.getSize(),pageRes.getTotal());
  54. if(CollUtil.isNotEmpty(pageRes.getRecords())){
  55. List<StationVO> list = new ArrayList<>();
  56. pageRes.getRecords().forEach(item -> {
  57. StationVO resVO = new StationVO();
  58. BeanUtils.copyProperties(item,resVO);
  59. //服务设备数量
  60. QueryWrapper<CareDevice> queryWrapper1 = new QueryWrapper<>();
  61. queryWrapper1.lambda().eq(CareDevice::getStationId,resVO.getId());
  62. resVO.setDevCount(this.careDeviceService.count(queryWrapper1));
  63. CareOrganization org = this.careOrganizationService.getById(resVO.getOrgId());
  64. resVO.setOrgName(org != null? org.getName() : "");
  65. list.add(resVO);
  66. });
  67. results.setRecords(list);
  68. }
  69. return results;
  70. }
  71. public StationVO getStationInfo(Long stationId) {
  72. CareStation stationInfo = this.careStationService.getById(stationId);
  73. if(stationInfo == null){
  74. return null;
  75. }
  76. StationVO vo = new StationVO();
  77. BeanUtil.copyProperties(stationInfo,vo);
  78. QueryWrapper<CareDevice> queryWrapper = new QueryWrapper<>();
  79. queryWrapper.lambda().eq(CareDevice::getStationId,stationId);
  80. List<CareDevice> deviceList = this.careDeviceService.list(queryWrapper);
  81. if(CollUtil.isNotEmpty(deviceList)){
  82. List<DeviceVO> deviceVOList = Lists.newArrayList();
  83. deviceList.forEach(item -> {
  84. DeviceVO deviceVO = new DeviceVO();
  85. BeanUtil.copyProperties(item,deviceVO);
  86. deviceVO.setActiveStatusName(DeviceActiveStatusEnum.getCodeToName(deviceVO.getActiveStatus()));
  87. deviceVOList.add(deviceVO);
  88. });
  89. vo.setDeviceVOList(deviceVOList);
  90. vo.setDevCount(deviceVOList.size());
  91. }
  92. CareOrganization careOrganization = this.careOrganizationService.getById(vo.getOrgId());
  93. if(careOrganization != null){
  94. vo.setOrgName(careOrganization.getName());
  95. }
  96. return vo;
  97. }
  98. /**
  99. * 查询登陆人,所能看到的 服务站列表
  100. * @param loginUser
  101. * @return
  102. */
  103. public List<StationVO> queryStationsForSelect(UserLogindConvertVO loginUser){
  104. List<StationVO> datas = Lists.newArrayList();
  105. if (loginUser == null){
  106. return datas;
  107. }
  108. QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
  109. queryWrapper.lambda().eq(loginUser.getOrgId()!=null,CareStation::getOrgId,loginUser.getOrgId());
  110. queryWrapper.lambda().eq(loginUser.getStationId()!=null,CareStation::getId,loginUser.getStationId());
  111. List<CareStation> stations = this.careStationService.list(queryWrapper);
  112. if (CollUtil.isNotEmpty(stations)){
  113. stations.forEach(item -> {
  114. StationVO vo = new StationVO();
  115. BeanUtil.copyProperties(item,vo);
  116. datas.add(vo);
  117. });
  118. }
  119. return datas;
  120. }
  121. public Long addStation(StationVO vo) throws BDException {
  122. QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
  123. queryWrapper.lambda().eq(CareStation::getName,vo.getName());
  124. int count = this.careStationService.count(queryWrapper);
  125. if(count > 0){
  126. throw new BDException("服务站名称已经存在!");
  127. }
  128. CareStation careStation = new CareStation();
  129. BeanUtil.copyProperties(vo,careStation);
  130. careStation.setCode(getCode());
  131. careStation.setCreateTime(new Date());
  132. boolean flag = this.careStationService.save(careStation);
  133. if (!flag) {
  134. throw new BDException("新增服务站失败!");
  135. }
  136. return careStation.getId();
  137. }
  138. private String getCode(){
  139. String code = RandomCodeUtil.radomNumberCode(10);
  140. QueryWrapper<CareStation> queryWrapper = new QueryWrapper<>();
  141. queryWrapper.lambda().eq(CareStation::getCode,code);
  142. CareStation careStationDb1 = this.careStationService.getOne(queryWrapper);
  143. if(careStationDb1 == null) {
  144. return code;
  145. } else {
  146. return getCode();
  147. }
  148. }
  149. }