zhongrj
2023-12-22 c5dc6db7a22b375f2f9302260fd084953edd9068
src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -18,26 +18,36 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.utils.IdUtils;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.grid.vo.GridVO;
import org.springblade.modules.house.entity.HouseEntity;
import org.springblade.modules.house.entity.HouseholdEntity;
import org.springblade.modules.house.entity.UserHouseLabelEntity;
import org.springblade.modules.house.excel.HouseAndHoldExcel;
import org.springblade.modules.house.excel.HouseExcel;
import org.springblade.modules.house.mapper.HouseMapper;
import org.springblade.modules.house.service.IHouseService;
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.house.service.IUserHouseLabelService;
import org.springblade.modules.house.vo.HouseParam;
import org.springblade.modules.house.vo.HouseTree;
import org.springblade.modules.house.vo.HouseVO;
import org.springblade.modules.label.entity.LabelEntity;
import org.springblade.modules.label.service.ILabelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
@@ -58,7 +68,16 @@
   @Override
   public IPage<HouseVO> selectHousePage(IPage<HouseVO> page, HouseVO house) {
      return page.setRecords(baseMapper.selectHousePage(page, house));
      List<HouseVO> houseVOS = baseMapper.selectHousePage(page, house);
      // 遍历查询网格
      for (HouseVO houseVO : houseVOS) {
         // 设置对应的网格名称
         GridVO gridVO = gridService.getGridDetailByHouseCode(houseVO.getHouseCode());
         if (null!= gridVO){
            houseVO.setGridName(gridVO.getGridName());
         }
      }
      return page.setRecords(houseVOS);
   }
   /**
@@ -148,7 +167,8 @@
   @Transactional(rollbackFor = Exception.class)
   public void importHouseAndHold(List<HouseAndHoldExcel> data, Boolean isCovered) {
      for (HouseAndHoldExcel houseAndHoldExcel : data) {
//         System.out.println("houseAndHoldExcel = " + houseAndHoldExcel);
         // System.out.println(houseAndHoldExcel);
         System.out.println("houseAndHoldExcel = " + houseAndHoldExcel);
         // 保存房屋数据--一个一个插入,防止一个表格中存在多个地址编号相同的数据
         saveHouseData(houseAndHoldExcel);
         // 保存住户数据(包含标签)--一个一个插入,防止一个表格中存在多个地址编号相同的数据
@@ -162,7 +182,7 @@
    * @param houseAndHoldExcel
    */
   @Transactional(rollbackFor = Exception.class)
   public void saveHouseholdData(HouseAndHoldExcel houseAndHoldExcel) {
   public void saveHouseData(HouseAndHoldExcel houseAndHoldExcel) {
      // 查询库中是否已存在
      QueryWrapper<HouseEntity> wrapper = new QueryWrapper<>();
      wrapper.eq("house_code",houseAndHoldExcel.getHouseCode())
@@ -188,6 +208,12 @@
         houseEntity.setCreateUser(AuthUtil.getUserId().toString());
         houseEntity.setUpdateTime(new Date());
         houseEntity.setUpdateUser(AuthUtil.getUserId().toString());
         if (!Strings.isBlank(houseAndHoldExcel.getHouseCode())) {
            houseEntity.setSource(1);
         }else {
            houseEntity.setHouseCode(IdUtils.getIdBy36());
            houseEntity.setSource(2);
         }
         // 新增
         save(houseEntity);
      }
@@ -198,12 +224,12 @@
    * @param houseAndHoldExcel
    */
   @Transactional(rollbackFor = Exception.class)
   public void saveHouseData(HouseAndHoldExcel houseAndHoldExcel) {
   public void saveHouseholdData(HouseAndHoldExcel houseAndHoldExcel) {
      // 查询库中是否已存在
      QueryWrapper<HouseholdEntity> wrapper = new QueryWrapper<>();
      wrapper.eq("house_code",houseAndHoldExcel.getHouseCode())
         .eq("is_deleted",0)
         .eq("phone_number",houseAndHoldExcel.getPhoneNumber());
         .eq("name",houseAndHoldExcel.getName());
      HouseholdEntity one = householdService.getOne(wrapper);
      // 不存在则插入,存在则不操作
      if (null == one){
@@ -258,28 +284,50 @@
         householdEntity.setUpdateTime(new Date());
         householdEntity.setUpdateUser(AuthUtil.getUserId());
         // 新增
         householdService.save(householdEntity);
         boolean save = householdService.save(householdEntity);
         if (save) {
            String labelId = houseAndHoldExcel.getLabelId();
            if (StringUtils.isBlank(labelId)) {
               return;
            }
            String[] split = labelId.split(",");
            IUserHouseLabelService bean = SpringUtils.getBean(IUserHouseLabelService.class);
            ILabelService bean1 = SpringUtils.getBean(ILabelService.class);
            for (String s : split) {
               LabelEntity one1 = bean1.getOne(Wrappers.<LabelEntity>lambdaQuery().eq(LabelEntity::getLabelName, s));
               if (one1 != null) {
                  UserHouseLabelEntity userHouseLabelEntity = new UserHouseLabelEntity();
                  userHouseLabelEntity.setLabelId(BigDecimal.valueOf(one1.getId()).longValue());
                  userHouseLabelEntity.setHouseholdId(householdEntity.getId());
                  userHouseLabelEntity.setLableType(1);
                  userHouseLabelEntity.setLabelName(s);
                  userHouseLabelEntity.setHouseCode(houseAndHoldExcel.getHouseCode());
                  bean.save(userHouseLabelEntity);
               }
            }
         }
      }
   }
   @Override
   public Map<String, Object> getHouseStatistics(String code, String roleType) {
   public Map<String, Object> getHouseStatistics(String code, String roleType,String aoiCode,String buildingCode,String unitCode) {
      Map<String, Object> objectObjectHashMap = new HashMap<>();
      if (roleType.equals("1")) {
      //    result1 查询楼栋数  result2 查询房屋套数 result3 查询住户数  result4 查询单元数
         Integer result1 = baseMapper.getHouseStatisticsOne(code, AuthUtil.getUserId());
         Integer result2 = baseMapper.getHouseStatisticsTwo(code, AuthUtil.getUserId());
         Integer result3 = baseMapper.getHouseStatisticsThree(code, AuthUtil.getUserId());
         Integer result4 = baseMapper.getHouseStatisticsFour(code, AuthUtil.getUserId());
         Integer result1 = baseMapper.getHouseStatisticsOne(code, AuthUtil.getUserId(),aoiCode,buildingCode,unitCode);
         Integer result2 = baseMapper.getHouseStatisticsTwo(code, AuthUtil.getUserId(),aoiCode,buildingCode,unitCode);
         Integer result3 = baseMapper.getHouseStatisticsThree(code, AuthUtil.getUserId(),aoiCode,buildingCode,unitCode);
         Integer result4 = baseMapper.getHouseStatisticsFour(code, AuthUtil.getUserId(),aoiCode,buildingCode,unitCode);
         objectObjectHashMap.put("result1", result1);
         objectObjectHashMap.put("result2", result2);
         objectObjectHashMap.put("result3", result3);
         objectObjectHashMap.put("result4", result4);
      } else {
         Integer result1 = baseMapper.getHouseStatisticsOne(code, null);
         Integer result2 = baseMapper.getHouseStatisticsTwo(code, null);
         Integer result3 = baseMapper.getHouseStatisticsThree(code, null);
         Integer result4 = baseMapper.getHouseStatisticsFour(code, null);
         Integer result1 = baseMapper.getHouseStatisticsOne(code, null,aoiCode,buildingCode,unitCode);
         Integer result2 = baseMapper.getHouseStatisticsTwo(code, null,aoiCode,buildingCode,unitCode);
         Integer result3 = baseMapper.getHouseStatisticsThree(code, null,aoiCode,buildingCode,unitCode);
         Integer result4 = baseMapper.getHouseStatisticsFour(code, null,aoiCode,buildingCode,unitCode);
         objectObjectHashMap.put("result1", result1);
         objectObjectHashMap.put("result2", result2);
         objectObjectHashMap.put("result3", result3);