|
@@ -8,6 +8,7 @@ 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.core.util.Arith;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.fire.domain.DemMicroStation;
|
|
|
import com.usky.fire.domain.DemWaterSource;
|
|
@@ -15,14 +16,13 @@ import com.usky.fire.mapper.DemMicroStationMapper;
|
|
|
import com.usky.fire.mapper.DemWaterSourceMapper;
|
|
|
import com.usky.fire.service.DemWaterSourceMaintainService;
|
|
|
import com.usky.fire.service.DemWaterSourceService;
|
|
|
+import com.usky.fire.service.po.FireWaterPO;
|
|
|
import com.usky.fire.service.util.OnlineMethod;
|
|
|
+import com.usky.fire.service.vo.FireWaterStatisticsVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -221,4 +221,82 @@ public class DemWaterSourceServiceImpl extends AbstractCrudService<DemWaterSourc
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public int waterSourceCount(String waterType, String waterNature, String waterForm, String startTime, String endTime, String availableStatus) {
|
|
|
+ LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(DemWaterSource::getDeleteFlag, 0)
|
|
|
+ .eq(StringUtils.isNotBlank(waterType), DemWaterSource::getWaterType, waterType)
|
|
|
+ .eq(StringUtils.isNotBlank(waterNature), DemWaterSource::getWaterNature, waterNature)
|
|
|
+ .eq(StringUtils.isNotBlank(waterForm), DemWaterSource::getWaterForm, waterForm)
|
|
|
+ .eq(StringUtils.isNotBlank(availableStatus), DemWaterSource::getAvailableStatus, availableStatus)
|
|
|
+ .between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemWaterSource::getBdpAudit, startTime, endTime);
|
|
|
+ int count = this.count(queryWrapper);
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public FireWaterStatisticsVO getFireWaterStatistics(String startTime, String endTime) {
|
|
|
+ FireWaterStatisticsVO fireWaterStatisticsVO = new FireWaterStatisticsVO();
|
|
|
+ fireWaterStatisticsVO.setMunicipalFireCode(
|
|
|
+ this.waterSourceCount("消火栓", "市政", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setCommunityFireCode(
|
|
|
+ this.waterSourceCount("消火栓", "居民", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setUnitFireCode(
|
|
|
+ this.waterSourceCount("消火栓", "单位", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setNaturalWater(
|
|
|
+ this.waterSourceCount("天然水源", null, null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setMunicipalWater(
|
|
|
+ this.waterSourceCount(null, "市政", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setResidentWater(
|
|
|
+ this.waterSourceCount(null, "居民", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setUnitWater(
|
|
|
+ this.waterSourceCount(null, "单位", null, startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setMunicipalGetWater(
|
|
|
+ this.waterSourceCount(null, null, "市政", startTime, endTime, null));
|
|
|
+ fireWaterStatisticsVO.setLandGetWater(
|
|
|
+ this.waterSourceCount(null, null, "地上", startTime, endTime, null));
|
|
|
+ Integer total = this.waterSourceCount(null, null, null, startTime, endTime, null);
|
|
|
+ fireWaterStatisticsVO.setMunicipalGetWaterRadio(Arith.div(fireWaterStatisticsVO.getMunicipalGetWater(), total));
|
|
|
+ fireWaterStatisticsVO.setLandGetWaterRadio(Arith.div(fireWaterStatisticsVO.getLandGetWater(), total));
|
|
|
+ Integer waterIntact = this.waterSourceCount(null, null, null, startTime, endTime, "1");
|
|
|
+ fireWaterStatisticsVO.setWaterIntact(Arith.div(waterIntact, total));
|
|
|
+ return fireWaterStatisticsVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonPage<FireWaterPO> page(Integer current, Integer size, String startTime, String endTime) {
|
|
|
+ List<FireWaterPO> list = new ArrayList<>();
|
|
|
+ Page<DemWaterSource> page = new Page<>(current, size);
|
|
|
+ LambdaQueryWrapper<DemWaterSource> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.between(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime), DemWaterSource::getBdpAudit, startTime, endTime);
|
|
|
+ page = this.page(page, queryWrapper);
|
|
|
+ page.getRecords().forEach(stringObjectMap -> list.add(enhanceFireWaterPo(stringObjectMap)));
|
|
|
+ return new CommonPage<>(list, page.getTotal(), page.getSize(), page.getCurrent());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * map转换为unitpo
|
|
|
+ *
|
|
|
+ * @param fireWaterMap
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public FireWaterPO enhanceFireWaterPo(DemWaterSource fireWaterMap) {
|
|
|
+ FireWaterPO fireWaterPo = new FireWaterPO();
|
|
|
+ fireWaterPo.setAddress(fireWaterMap.getWaterAddress());
|
|
|
+ fireWaterPo.setPhone(Optional.ofNullable(fireWaterMap.getContactMode()).orElse(""));
|
|
|
+ fireWaterPo.setType(fireWaterMap.getWaterType());
|
|
|
+ fireWaterPo.setJurisdictionalAgency(fireWaterMap.getOrganizateName());
|
|
|
+ fireWaterPo.setDetachmentName(fireWaterMap.getBranchName());
|
|
|
+ fireWaterPo.setGetWaterType(fireWaterMap.getWaterForm());
|
|
|
+ fireWaterPo.setWaterAdministrative(Optional.ofNullable(fireWaterMap.getWaterNature()).orElse(""));
|
|
|
+ fireWaterPo.setStatus(fireWaterMap.getAvailableStatus() + "");
|
|
|
+ fireWaterPo.setWaterUnit(fireWaterMap.getWaterCompany());
|
|
|
+ fireWaterPo.setWaterGage(fireWaterMap.getPipePressure());
|
|
|
+ fireWaterPo.setGisX(fireWaterMap.getGisX());
|
|
|
+ fireWaterPo.setGisY(fireWaterMap.getGisY());
|
|
|
+ fireWaterPo.setGisBaiDuX(fireWaterMap.getGisXBaidu());
|
|
|
+ fireWaterPo.setGisBaiDuY(fireWaterMap.getGisYBaidu());
|
|
|
+ return fireWaterPo;
|
|
|
+ }
|
|
|
+
|
|
|
}
|