| | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.sxkj.system.cache.SysCache; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | |
| | | |
| | | @Override |
| | | public IPage<FwDefenseSceneVO> selectFwDefenseScenePage(IPage<FwDefenseSceneVO> page, FwDefenseSceneVO fwDefenseScene) { |
| | | List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())); |
| | | fwDefenseScene.setDeptList(deptList); |
| | | IPage<FwDefenseSceneVO> result = page.setRecords(baseMapper.selectFwDefenseScenePage(page, fwDefenseScene)); |
| | | List<FwDefenseSceneVO> records = result.getRecords(); |
| | | if (records == null || records.isEmpty()) { |
| | |
| | | if (area == null || area.getId() == null) { |
| | | continue; |
| | | } |
| | | areaSizeMap.put(area.getId(), area.getAreaSize()); |
| | | // areaSizeMap.put(area.getId(), area.getAreaSize()); |
| | | List<Long> areaDeviceIds = parseIdList(area.getDeviceIds()); |
| | | areaDeviceMap.put(area.getId(), areaDeviceIds); |
| | | deviceIdSet.addAll(areaDeviceIds); |
| | |
| | | for (FwDefenseSceneVO record : records) { |
| | | List<Long> areaIds = parseIdList(record.getAreaDivideIds()); |
| | | record.setAreaCount(areaIds.size()); |
| | | record.setDefenseArea(sumDefenseArea(areaIds, areaSizeMap)); |
| | | |
| | | Set<Long> deviceIds = new HashSet<>(); |
| | | for (Long areaId : areaIds) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long areaId) { |
| | | return baseMapper.selectFwDefenseSceneList(filterSelected, areaId); |
| | | public List<FwDefenseSceneVO> selectFwDefenseSceneList(Integer filterSelected, Long zoneId, Long areaId) { |
| | | return baseMapper.selectFwDefenseSceneList(filterSelected, zoneId, areaId); |
| | | } |
| | | |
| | | private List<Long> parseIdList(String ids) { |
| | |
| | | } |
| | | return idList; |
| | | } |
| | | |
| | | private Integer sumDefenseArea(List<Long> areaIds, Map<Long, BigDecimal> areaSizeMap) { |
| | | if (areaIds == null || areaIds.isEmpty()) { |
| | | return 0; |
| | | } |
| | | BigDecimal total = BigDecimal.ZERO; |
| | | for (Long areaId : areaIds) { |
| | | BigDecimal areaSize = areaSizeMap.get(areaId); |
| | | if (areaSize != null) { |
| | | total = total.add(areaSize); |
| | | } |
| | | } |
| | | if (BigDecimal.ZERO.compareTo(total) == 0) { |
| | | return 0; |
| | | } |
| | | BigDecimal totalArea = total.multiply(AREA_SIZE_FACTOR); |
| | | return totalArea.setScale(0, RoundingMode.HALF_UP).intValue(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<FwDefenseSceneExcel> exportFwDefenseScene(Wrapper<FwDefenseSceneEntity> queryWrapper) { |