Parcourir la source

庭院到小区 不返回单元数据 架空和底腿是查询条件 小区和楼栋

wangzhe il y a 10 mois
Parent
commit
04cf2a4235

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringCivilController.java

@@ -271,4 +271,17 @@ public class ZEngineeringCivilController extends BaseController {
     public R batchNode(@RequestBody ZEngineeringCivilBo bo) {
         return R.ok(iZEngineeringCivilService.batchNode(bo));
     }
+
+    @Log(title = "App领导页面", businessType = BusinessType.OTHER)
+//    @GetMapping("/GetPicsforApp")
+    public R<List<ZEngineeringCivil>> GetPicsforApp(ZEngineeringCivilBo bo) {
+        return R.ok(iZEngineeringCivilService.GetPicsforApp(bo));
+    }
+
+    // @SaCheckPermission("zdsz:engineeringCivil:remove")
+    @Log(title = "民用工程App领导页面", businessType = BusinessType.OTHER)
+    @PostMapping("/getObtainUnitCompletionInformationList")
+    public R getObtainUnitCompletionInformationList(@RequestBody ZEngineeringCivilBo zEngineeringCivilBo) {
+        return R.ok(iZEngineeringCivilService.getObtainUnitCompletionInformationList(zEngineeringCivilBo));
+    }
 }

+ 38 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/BuildingStatusVo.java

@@ -0,0 +1,38 @@
+package com.ruoyi.zdsz.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BuildingStatusVo {
+    /**
+     * 小区id
+     */
+    private String areaId;
+    /**
+     * 小区名称
+     */
+    private String areaName;
+    /**
+     * 楼栋id
+     */
+    private String buildingId;
+    /**
+     * 楼栋名称
+     */
+    private String buildingName;
+    /**
+     * 楼栋开工状态
+     */
+    private String buildingStatus;
+    /**
+     * 单元名称
+     */
+    private String enginCycle;
+    /**
+     * 统计排序字段
+     */
+    private Integer areaOrder;
+}

+ 40 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/UnitStatusVo.java

@@ -0,0 +1,40 @@
+package com.ruoyi.zdsz.domain.vo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class UnitStatusVo extends BaseEntity {
+    /**
+     * 单元名称
+     */
+    private  String unitName;
+    /**
+     * 单元id
+     */
+    private  String unitId;
+    /**
+     * 单元开工状态
+     */
+    private  String unitStatus;
+    /**
+     * 小区id
+     */
+    private  String  areaId;
+    /**
+     * 楼栋id
+     */
+    private  String  buildingId ;
+    /**
+     * 楼栋名称
+     */
+    private  String buildingName;
+    /**
+     * 单元名称
+     */
+    private  String enginCycle;
+    /**
+     * 统计排序字段
+     */
+    private  Integer buildingOrder;
+}

+ 3 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringCivilMapper.java

@@ -25,6 +25,9 @@ public interface ZEngineeringCivilMapper extends BaseMapperPlus<ZEngineeringCivi
     Page<ZEngineeringCivilVo> queryPageIdList(@Param("idList") List idList, @Param("total") Long total, @Param("pa")Page<?> page,@Param("page") Integer pages,@Param("size") Integer size);
 
     List<roomStatusVo> getObtainRoomcCompletionInformationList(ZEngineeringCivilBo bo);
+
+    List<UnitStatusVo> getObtainUnitCompletionInformationList_overleg(ZEngineeringCivilBo bo);
+    List<BuildingStatusVo> getObtainUnitCompletionInformationList_courtyard(ZEngineeringCivilBo bo);
     List<areaWillDoneVo> getAreaCompletionInformationList(@Param("idList") List idList,@Param("enginCycle")String enginCycle,@Param("enginType")String enginType);
     List<areaWillDoneVo> getAreaCompletionInformationList2(@Param("enginCycle")String enginCycle,@Param("enginType")String enginType);
     Map<String,Number> getsumStatus(String district);

+ 2 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringCivilService.java

@@ -64,6 +64,7 @@ public interface IZEngineeringCivilService {
 
     int getCivilByhouseId(Collection<String> list);
     List getObtainRoomcCompletionInformationList(ZEngineeringCivilBo bo);
+    List getObtainUnitCompletionInformationList(ZEngineeringCivilBo bo);
 
     TableDataInfo<areaStatusVo> getAreaCompletionInformationList(ZEngineeringCivilBo bo,PageQuery po);
     List<areaStatusVo> getAreaCompletionInformationList2(ZEngineeringCivilBo bo);
@@ -84,5 +85,6 @@ public interface IZEngineeringCivilService {
      */
     List<ZEngineeringNodeBo> getRivewStatus(String Id);
     Boolean  batchNode(ZEngineeringCivilBo bo);
+    List<ZEngineeringCivil>  GetPicsforApp(ZEngineeringCivilBo bo);
 
 }

+ 120 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringCivilServiceImpl.java

@@ -977,6 +977,111 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
         });
         return areaList;
     }
+    @Override
+    public List getObtainUnitCompletionInformationList(ZEngineeringCivilBo bo) { // 庭院courtyard 架空overhead 底腿bottom_leg
+        switch (bo.getEnginClassification()){
+            case "overhead": // 架空
+            case "bottom_leg": { // 底腿
+                return getObtainUnitCompletionInformationList_overleg(bo); // 查询条件 小区和楼栋 返回单元
+            }
+            case "courtyard":{ // 庭院 查询条件小区
+                return getObtainUnitCompletionInformationList_courtyard(bo); // 返回楼栋 不返回单元数据
+            }
+            default:{
+                return null;
+            }
+        }
+    }
+    public List getObtainUnitCompletionInformationList_overleg(ZEngineeringCivilBo bo) { // 架空、底腿
+        List<UnitStatusVo> unitStatusList = baseMapper.getObtainUnitCompletionInformationList_overleg(bo);
+        LinkedHashMap<String, List<UnitStatusVo>> map = new LinkedHashMap<>();
+        List<UnitStatusVo> mapvalue = new ArrayList<>();
+        for (int i = 0; i < unitStatusList.size(); i++) {
+            if (i > 0 && unitStatusList.get(i).getBuildingOrder().equals(unitStatusList.get(i - 1).getBuildingOrder())) {
+                mapvalue.add(unitStatusList.get(i));
+            } else {
+                mapvalue = new ArrayList<>();
+                mapvalue.add(unitStatusList.get(i));
+            }
+            map.put(unitStatusList.get(i).getBuildingName(), mapvalue);
+        }
+        List areaList = new ArrayList();
+        map.forEach((key, value) -> {
+//            BulidingStatusVo bulidingStatusVo = new BulidingStatusVo();
+            Map buildingStatusVo = new HashMap();
+//            bulidingStatusVo.setUnitName(key);
+            buildingStatusVo.put("buildingName", key);
+//            bulidingStatusVo.setUnitId(value.get(0).getUnitId());
+            buildingStatusVo.put("buildingId", value.get(0).getBuildingId());
+            Map<String, List<UnitStatusVo>> unitMap = value.stream().collect(Collectors.groupingBy(item -> (item.getBuildingName().replaceAll("[^0-9]", "").length() > 3 ? item.getBuildingName().substring(0, 2) : item.getBuildingName().substring(0, 1))));
+            List willDone = value.stream().filter(item -> item.getUnitStatus().equals("未施工")).collect(Collectors.toList());
+            List notstart = value.stream().filter(item -> item.getUnitStatus().equals("施工中")).collect(Collectors.toList());
+            List done = value.stream().filter(item -> item.getUnitStatus().equals("竣工")).collect(Collectors.toList());
+            List notInstall = value.stream().filter(item -> item.getUnitStatus().equals("未安装")).collect(Collectors.toList());
+            List<List<UnitStatusVo>> unitStatusVoList = new ArrayList<>();
+            Map<String, List<UnitStatusVo>> sortMap = unitMap.entrySet().stream().sorted(Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey()))).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldVal, newVal) -> oldVal, LinkedHashMap::new));
+            sortMap.forEach((key1, value1) -> {
+                unitStatusVoList.add(value1);
+            });
+//            bulidingStatusVo.setUnitStatusVoList(unitStatusVoList);
+            buildingStatusVo.put("unitStatusVoList", unitStatusVoList);
+//            bulidingStatusVo.setDone(String.valueOf(notInstall.size()));
+//            bulidingStatusVo.put("done", String.valueOf(notInstall.size()));
+//            bulidingStatusVo.setDone(String.valueOf(done.size()));
+            buildingStatusVo.put("done", String.valueOf(done.size()));
+//            bulidingStatusVo.setWillDone(String.valueOf(willDone.size()));
+            buildingStatusVo.put("willDone", String.valueOf(willDone.size()));
+//            bulidingStatusVo.setNotstart(String.valueOf(notstart.size()));
+            buildingStatusVo.put("notstart", String.valueOf(notstart.size()));
+            areaList.add(buildingStatusVo);
+        });
+        return areaList;
+    }
+    public List getObtainUnitCompletionInformationList_courtyard(ZEngineeringCivilBo bo) { // 庭院
+        List<BuildingStatusVo> buildingStatusList = baseMapper.getObtainUnitCompletionInformationList_courtyard(bo);
+        LinkedHashMap<String, List<BuildingStatusVo>> map = new LinkedHashMap<>();
+        List<BuildingStatusVo> mapvalue = new ArrayList<>();
+        for (int i = 0; i < buildingStatusList.size(); i++) {
+            if (i > 0 && buildingStatusList.get(i).getAreaOrder().equals(buildingStatusList.get(i - 1).getAreaOrder())) {
+                mapvalue.add(buildingStatusList.get(i));
+            } else {
+                mapvalue = new ArrayList<>();
+                mapvalue.add(buildingStatusList.get(i));
+            }
+            map.put(buildingStatusList.get(i).getAreaName(), mapvalue);
+        }
+        List areaList = new ArrayList();
+        map.forEach((key, value) -> {
+//            BulidingStatusVo bulidingStatusVo = new BulidingStatusVo();
+            Map bulidingStatusVo = new HashMap();
+//            bulidingStatusVo.setUnitName(key);
+            bulidingStatusVo.put("areaName", key);
+//            bulidingStatusVo.setUnitId(value.get(0).getUnitId());
+            bulidingStatusVo.put("areaId", value.get(0).getAreaId());
+            Map<String, List<BuildingStatusVo>> buildingMap = value.stream().collect(Collectors.groupingBy(item -> (item.getAreaName().replaceAll("[^0-9]", "").length() > 3 ? item.getAreaName().substring(0, 2) : item.getAreaName().substring(0, 1))));
+            List willDone = value.stream().filter(item -> item.getBuildingStatus().equals("未施工")).collect(Collectors.toList());
+            List notstart = value.stream().filter(item -> item.getBuildingStatus().equals("施工中")).collect(Collectors.toList());
+            List done = value.stream().filter(item -> item.getBuildingStatus().equals("竣工")).collect(Collectors.toList());
+            List notInstall = value.stream().filter(item -> item.getBuildingStatus().equals("未安装")).collect(Collectors.toList());
+            List<List<BuildingStatusVo>> buildingStatusVoList = new ArrayList<>();
+            Map<String, List<BuildingStatusVo>> sortMap = buildingMap.entrySet().stream().sorted(Comparator.comparingInt(entry -> Integer.parseInt(entry.getKey()))).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldVal, newVal) -> oldVal, LinkedHashMap::new));
+            sortMap.forEach((key1, value1) -> {
+                buildingStatusVoList.add(value1);
+            });
+//            bulidingStatusVo.setUnitStatusVoList(unitStatusVoList);
+            bulidingStatusVo.put("buildingStatusVoList", buildingStatusVoList);
+//            bulidingStatusVo.setDone(String.valueOf(notInstall.size()));
+//            bulidingStatusVo.put("done", String.valueOf(notInstall.size()));
+//            bulidingStatusVo.setDone(String.valueOf(done.size()));
+            bulidingStatusVo.put("done", String.valueOf(done.size()));
+//            bulidingStatusVo.setWillDone(String.valueOf(willDone.size()));
+            bulidingStatusVo.put("willDone", String.valueOf(willDone.size()));
+//            bulidingStatusVo.setNotstart(String.valueOf(notstart.size()));
+            bulidingStatusVo.put("notstart", String.valueOf(notstart.size()));
+            areaList.add(bulidingStatusVo);
+        });
+        return areaList;
+    }
 
     @Override
     public TableDataInfo<areaStatusVo> getAreaCompletionInformationList(ZEngineeringCivilBo bo, PageQuery po) {
@@ -1218,6 +1323,21 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
         return true;
 
     }
+
+    @Override
+    public List<ZEngineeringCivil> GetPicsforApp(ZEngineeringCivilBo bo) {
+        LambdaQueryWrapper<ZEngineeringCivil> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getEnginType()), ZEngineeringCivil::getEnginType, bo.getEnginType());
+        lqw.eq(StringUtils.isNotBlank(bo.getEnginClassification()), ZEngineeringCivil::getEnginClassification, bo.getEnginClassification());
+        lqw.eq(StringUtils.isNotBlank(bo.getEnginCycle()), ZEngineeringCivil::getEnginCycle, bo.getEnginCycle());
+        lqw.eq(StringUtils.isNotBlank(bo.getAreaId()), ZEngineeringCivil::getAreaId, bo.getAreaId());
+        lqw.eq(StringUtils.isNotBlank(bo.getBuildingId()), ZEngineeringCivil::getBuildingId, bo.getBuildingId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUnitId()), ZEngineeringCivil::getUnitId, bo.getUnitId());
+        lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZEngineeringCivil::getDistrict, bo.getDistrict());
+        lqw.eq(StringUtils.isNotBlank(bo.getHouseId()), ZEngineeringCivil::getHouseId, bo.getHouseId());
+        List<ZEngineeringCivil> list = baseMapper.selectList(lqw); // 主表列表
+        return list;
+    }
 }
 
 

+ 83 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringCivilMapper.xml

@@ -227,6 +227,89 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     unitOrder,
     REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.`name`,')',''),'(',''),')',''),'(',''),'号','') ASC
 </select>
+
+    <select id="getObtainUnitCompletionInformationList_overleg" resultType="com.ruoyi.zdsz.domain.vo.UnitStatusVo">
+    select
+    a.area_id,
+    a.building_id,
+    CONCAT(area.name,'-',bd.name) AS buildingName,
+    a.NAME AS unitName,
+    a.id AS unitId,
+    b.engin_type AS enginCycle,
+    IFNULL( b.completion_status,
+    IFNULL((select '未安装' from z_engin_not_installed ni
+    where ni.building_id = bd.id
+    <if test="enginType != null and enginType != ''">
+        and ni.engin_type=#{enginType}
+    </if>
+    LIMIT 1),'未施工')) AS unitStatus,
+    b.create_time,
+    CAST(CONCAT( REPLACE ( area.NAME, '小区', '' ),REPLACE ( bd.NAME, '栋', '' )) AS SIGNED) AS buildingOrder
+    FROM
+    z_unit a
+    LEFT JOIN z_engineering_civil b ON a.id = b.unit_id
+    and b.del_flag = '0'
+    and b.engin_classification=#{enginClassification}
+    AND b.engin_cycle=#{enginCycle}
+    <if test="enginType != null and enginType != ''">
+        and b.engin_type=#{enginType}
+    </if>
+    LEFT JOIN z_building bd ON bd.id=a.building_id
+    LEFT JOIN z_area area ON area.id=bd.area_id
+    WHERE
+         a.del_flag=0
+    <if test="areaId != null and areaId != ''">
+        and a.area_id = #{areaId}
+    </if>
+    <if test="buildingId != null and buildingId != ''">
+        and a.building_id = #{buildingId}
+    </if>
+    <if test="unitId != null and unitId != ''">
+        and a.id = #{unitId}
+    </if>
+    order by
+    buildingOrder,
+    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.`name`,')',''),'(',''),')',''),'(',''),'单元','') ASC
+    </select>
+    <select id="getObtainUnitCompletionInformationList_courtyard" resultType="com.ruoyi.zdsz.domain.vo.BuildingStatusVo">
+        select
+        a.area_id,
+        a.id building_id,
+        a.name building_name,
+        area.name AS areaName,
+        b.engin_type AS enginCycle,
+        IFNULL( b.completion_status,
+        IFNULL((select '未安装' from z_engin_not_installed ni
+        where ni.area_id = area.id
+        <if test="enginType != null and enginType != ''">
+            and ni.engin_type=#{enginType}
+        </if>
+        LIMIT 1),'未施工')) AS buildingStatus,
+        b.create_time,
+        CAST(CONCAT( REPLACE ( area.NAME, '小区', '' ),REPLACE ( a.NAME, '栋', '' )) AS SIGNED) AS areaOrder
+        FROM
+        z_building a
+        LEFT JOIN z_engineering_civil b ON a.id = b.building_id
+        and b.del_flag = '0'
+        and b.engin_classification=#{enginClassification}
+        AND b.engin_cycle=#{enginCycle}
+        <if test="enginType != null and enginType != ''">
+            and b.engin_type=#{enginType}
+        </if>
+        LEFT JOIN z_area area ON area.id=a.area_id
+        WHERE
+        a.del_flag=0
+        <if test="areaId != null and areaId != ''">
+            and a.area_id = #{areaId}
+        </if>
+        <if test="buildingId != null and buildingId != ''">
+            and a.id = #{buildingId}
+        </if>
+        order by
+        areaOrder,
+        REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.`name`,')',''),'(',''),')',''),'(',''),'单元','') ASC
+    </select>
+
     <select id="getAreaCompletionInformationList"  resultType="com.ruoyi.zdsz.domain.vo.areaWillDoneVo">
         SELECT
         za.id as areaId,