Kaynağa Gözat

可视化统计排序问题

wang_xy 1 yıl önce
ebeveyn
işleme
f783676eae

+ 4 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/roomStatusVo.java

@@ -37,4 +37,8 @@ public class roomStatusVo extends BaseEntity {
      * 单元名称
      */
     private  String enginCycle;
+    /**
+     * 统计排序字段
+     */
+    private  Integer unitOrder;
 }

+ 12 - 3
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringCivilServiceImpl.java

@@ -468,14 +468,23 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
     @Override
     public List getObtainRoomcCompletionInformationList(ZEngineeringCivilBo bo) {
         List<roomStatusVo> roomStatusList = baseMapper.getObtainRoomcCompletionInformationList(bo);
-        Map<String, List<roomStatusVo>> map = new HashMap<>();
-        map = roomStatusList.stream().collect(Collectors.groupingBy(item -> item.getUnitName()));
+        LinkedHashMap<String, List<roomStatusVo>> map = new LinkedHashMap<>();
+        List<roomStatusVo> mapvalue = new ArrayList<>();
+        for (int i=0;i<roomStatusList.size();i++) {
+            if(i > 0 && roomStatusList.get(i).getUnitOrder().equals(roomStatusList.get(i-1).getUnitOrder())){
+                mapvalue.add(roomStatusList.get(i));
+            }else{
+                mapvalue = new ArrayList<>();
+                mapvalue.add(roomStatusList.get(i));
+            }
+            map.put(roomStatusList.get(i).getUnitName(),mapvalue);
+        }
+//        map = roomStatusList.stream().collect(Collectors.groupingBy(item -> item.getUnitName()));
         List areaList = new ArrayList();
         map.forEach((key, value) -> {
             BulidingStatusVo bulidingStatusVo = new BulidingStatusVo();
             bulidingStatusVo.setUnitName(key);
             bulidingStatusVo.setUnitId(value.get(0).getUnitId());
-            //bulidingStatusVo.setRoomStatusVoList(value);
             Map<String, List<roomStatusVo>> roomMap = value.stream().collect(Collectors.groupingBy(item -> (
                 item.getRoomName().replaceAll("[^0-9]","").length() > 3 ? item.getRoomName().substring(0,2):item.getRoomName().substring(0,1))
                 ));

+ 3 - 2
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringCivilMapper.xml

@@ -142,7 +142,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     a.id AS roomId,
     b.engin_type AS enginCycle,
     IFNULL( b.completion_status, '未施工' ) AS roomStatus,
-    b.create_time
+    b.create_time,
+    CAST(CONCAT( REPLACE ( bd.NAME, '栋', '' ),REPLACE ( c.NAME, '单元', '' )) AS SIGNED) AS unitOrder
     FROM
     z_house a
     LEFT JOIN z_engineering_civil b ON a.id = b.house_id AND b.engin_cycle=#{enginCycle}
@@ -163,7 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and a.unit_id = #{unitId}
     </if>
     order by
-    REPLACE(REPLACE(unitName,'单元',''),'栋',''),
+    unitOrder,
     REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(a.`name`,')',''),'(',''),')',''),'(',''),'号','') ASC
 </select>
     <select id="getAreaCompletionInformationList"  resultType="com.ruoyi.zdsz.domain.vo.areaWillDoneVo">