|
@@ -1,11 +1,34 @@
|
|
|
package com.usky.iot.service.impl;
|
|
|
|
|
|
-import com.usky.iot.domain.BaseBuildFacility;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.usky.common.core.bean.CommonPage;
|
|
|
+import com.usky.common.core.exception.BusinessException;
|
|
|
+import com.usky.common.security.utils.SecurityUtils;
|
|
|
+import com.usky.iot.domain.*;
|
|
|
import com.usky.iot.mapper.BaseBuildFacilityMapper;
|
|
|
-import com.usky.iot.service.BaseBuildFacilityService;
|
|
|
+import com.usky.iot.service.*;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import com.usky.iot.service.vo.BaseBuildFacilityRequestVO;
|
|
|
+import com.usky.iot.service.vo.BuildFacilityRequestVO;
|
|
|
+import com.usky.iot.service.vo.BuildFacilityResponeVO;
|
|
|
+import com.usky.iot.service.vo.FacilityDeviceStatusVO;
|
|
|
+import jdk.management.resource.internal.WrapInstrumentation;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 建筑设施 服务实现类
|
|
@@ -16,5 +39,180 @@ import org.springframework.stereotype.Service;
|
|
|
*/
|
|
|
@Service
|
|
|
public class BaseBuildFacilityServiceImpl extends AbstractCrudService<BaseBuildFacilityMapper, BaseBuildFacility> implements BaseBuildFacilityService {
|
|
|
+ @Autowired
|
|
|
+ private BaseBuildFacilityRelateService baseBuildFacilityRelateService;
|
|
|
+//
|
|
|
+// @Autowired
|
|
|
+// private BaseBuildService baseBuildService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DmpDeviceInfoService dmpDeviceInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DmpDeviceTypeService dmpDeviceTypeService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void add(BaseBuildFacility baseBuildFacility){
|
|
|
+ baseBuildFacility.setFacilityNum("jzss-"+new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime()));
|
|
|
+ baseBuildFacility.setTenantId(SecurityUtils.getTenantId());
|
|
|
+ baseBuildFacility.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ baseBuildFacility.setCreateTime(LocalDateTime.now());
|
|
|
+ this.save(baseBuildFacility);
|
|
|
+
|
|
|
+ Integer id = baseBuildFacility.getId();
|
|
|
+ BaseBuildFacilityRelate relate = new BaseBuildFacilityRelate();
|
|
|
+ relate.setBuildId(baseBuildFacility.getBuildId());
|
|
|
+ relate.setFacilityId(id);
|
|
|
+ relate.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ relate.setCreateTime(LocalDateTime.now());
|
|
|
+ baseBuildFacilityRelateService.save(relate);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void update(BaseBuildFacility baseBuildFacility){
|
|
|
+ baseBuildFacility.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ baseBuildFacility.setUpdateTime(LocalDateTime.now());
|
|
|
+ this.updateById(baseBuildFacility);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void remove(Integer id){
|
|
|
+ BaseBuildFacility one = this.getById(id);
|
|
|
+ Optional.ofNullable(one).orElseThrow(() -> new BusinessException("无记录"));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(BaseBuildFacilityRelate::getFacilityId,id);
|
|
|
+ BaseBuildFacilityRelate one1 = baseBuildFacilityRelateService.getOne(queryWrapper);
|
|
|
+ if(one1 != null){
|
|
|
+ baseBuildFacilityRelateService.removeById(one1.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ one.setDeleteFlag(1);
|
|
|
+ this.updateById(one);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<BaseBuildFacility> page(BaseBuildFacilityRequestVO requestVO){
|
|
|
+ List<BaseBuildFacility> list = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(requestVO.getFacilityNum()),BaseBuildFacility::getFacilityNum,requestVO.getFacilityNum())
|
|
|
+ .like(StringUtils.isNotBlank(requestVO.getFacilityName()),BaseBuildFacility::getFacilityName,requestVO.getFacilityName())
|
|
|
+ .eq(StringUtils.isNotBlank(requestVO.getFacilityType()),BaseBuildFacility::getFacilityType,requestVO.getFacilityType())
|
|
|
+ .eq(BaseBuildFacility::getDeleteFlag,0)
|
|
|
+ .orderByDesc(BaseBuildFacility::getId);
|
|
|
+ List<BaseBuildFacility> list1 = this.list(queryWrapper);
|
|
|
+ if(CollectionUtils.isNotEmpty(list1)){
|
|
|
+ for(int i=0;i<list1.size();i++){
|
|
|
+ LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper1.eq(BaseBuildFacilityRelate::getFacilityId,list1.get(i).getId());
|
|
|
+ BaseBuildFacilityRelate one = baseBuildFacilityRelateService.getOne(queryWrapper1);
|
|
|
+ if(one != null){
|
|
|
+ BaseBuild one1 = baseMapper.getBuildName(one.getBuildId());
|
|
|
+ if(one1 != null){
|
|
|
+ list1.get(i).setBuildId(one1.getId());
|
|
|
+ list1.get(i).setBuildName(one1.getBuildName());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ BaseBuildFacilityType typeOne = baseMapper.baseBuildFacilityTypeList(list1.get(i).getFacilityType());
|
|
|
+ list1.get(i).setTypeName(typeOne.getTypeName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(requestVO.getBuildName())){
|
|
|
+ list = list1.stream().filter(m-> m.getBuildName().contains(requestVO.getBuildName())).collect(Collectors.toList());
|
|
|
+ }else{
|
|
|
+ if(list1.size() > 0){
|
|
|
+ for(int j=0;j<list1.size();j++){
|
|
|
+ list.add(list1.get(j));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer total = 0;
|
|
|
+ if(list.size() > 0){
|
|
|
+ total = list.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ Integer pageCurrent = requestVO.getCurrent();
|
|
|
+ Integer pageSize = requestVO.getSize();
|
|
|
+ Integer current = 0;
|
|
|
+ if(pageCurrent!=null && pageSize>0){
|
|
|
+ current = (pageCurrent-1)*pageSize;
|
|
|
+ }
|
|
|
+ List<BaseBuildFacility> records = list.stream().skip(current).limit(pageSize).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return new CommonPage<>(records,total,pageSize,pageCurrent);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<BuildFacilityResponeVO> deviceList(BuildFacilityRequestVO requestVO){
|
|
|
+ List<BuildFacilityResponeVO> list = new ArrayList<>();
|
|
|
+
|
|
|
+ IPage<DmpDeviceInfo> page = new Page<>(requestVO.getCurrent(),requestVO.getSize());
|
|
|
+ LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(requestVO.getDeviceId()),DmpDeviceInfo::getDeviceId,requestVO.getDeviceId())
|
|
|
+ .eq(requestVO.getDeviceType() != null,DmpDeviceInfo::getDeviceType,requestVO.getDeviceType())
|
|
|
+ .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId())
|
|
|
+ .eq(DmpDeviceInfo::getDeleteFlag,0);
|
|
|
+ page = dmpDeviceInfoService.page(page,queryWrapper);
|
|
|
+ if(CollectionUtils.isNotEmpty(page.getRecords())){
|
|
|
+ for(int i=0;i<page.getRecords().size();i++){
|
|
|
+ BuildFacilityResponeVO responeVO = new BuildFacilityResponeVO();
|
|
|
+ responeVO.setBaseBuildFacilityId(requestVO.getBaseBuildFacilityId());
|
|
|
+
|
|
|
+ responeVO.setDeviceId(page.getRecords().get(i).getDeviceId());
|
|
|
+ responeVO.setDeviceName(page.getRecords().get(i).getDeviceName());
|
|
|
+
|
|
|
+ LambdaQueryWrapper<DmpDeviceType> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper1.eq(DmpDeviceType::getTypeCode,page.getRecords().get(i).getDeviceType().toString());
|
|
|
+ DmpDeviceType one = dmpDeviceTypeService.getOne(queryWrapper1);
|
|
|
+ if(one != null){
|
|
|
+ responeVO.setDeviceTypeName(one.getTypeName());
|
|
|
+ }
|
|
|
+
|
|
|
+ responeVO.setInstallAddress(page.getRecords().get(i).getInstallAddress());
|
|
|
+
|
|
|
+ if(page.getRecords().get(i).getDeviceId().equals(requestVO.getRelateDeviceId())){
|
|
|
+ responeVO.setStatus(1);
|
|
|
+ }else{
|
|
|
+ responeVO.setStatus(0);
|
|
|
+ }
|
|
|
+ list.add(responeVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new CommonPage<>(list,page.getTotal(),page.getSize(),page.getCurrent());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setStatus(FacilityDeviceStatusVO statusVO){
|
|
|
+ BaseBuildFacility baseBuildFacility = new BaseBuildFacility();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(BaseBuildFacility::getDeleteFlag,0)
|
|
|
+ .eq(BaseBuildFacility::getTenantId,SecurityUtils.getTenantId())
|
|
|
+ .eq(BaseBuildFacility::getId,statusVO.getBaseBuildFacilityId());
|
|
|
+ BaseBuildFacility one = this.getOne(queryWrapper);
|
|
|
+ if(statusVO.getStatus() == 1){
|
|
|
+ if(one.getDeviceId() != null && (""+one.getDeviceId()).length() > 1){
|
|
|
+ throw new BusinessException("绑定失败,该建筑设施已绑定设备");
|
|
|
+ }
|
|
|
+ baseBuildFacility.setId(one.getId());
|
|
|
+ baseBuildFacility.setDeviceId(statusVO.getDeviceId());
|
|
|
+ }else{
|
|
|
+ if(one == null){
|
|
|
+ throw new BusinessException("无记录");
|
|
|
+ }
|
|
|
+ baseBuildFacility.setId(one.getId());
|
|
|
+ baseBuildFacility.setDeviceId("0");
|
|
|
+ }
|
|
|
+ baseBuildFacility.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ baseBuildFacility.setUpdateTime(LocalDateTime.now());
|
|
|
+ this.updateById(baseBuildFacility);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|