wangtong hai 1 ano
pai
achega
dbd845a62b

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

@@ -135,4 +135,10 @@ public class ZEngineeringCivilController extends BaseController {
     public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
         return toAjax(iZEngineeringCivilService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+    @SaCheckPermission("zdsz:engineeringCivil:remove")
+    @Log(title = "民用工程", businessType = BusinessType.DELETE)
+    @PostMapping("/getObtainRoomcCompletionInformationList")
+    public R getObtainRoomcCompletionInformationList(@RequestBody ZEngineeringCivilBo zEngineeringCivilBo) {
+        return R.ok(iZEngineeringCivilService.getObtainRoomcCompletionInformationList(zEngineeringCivilBo));
+    }
 }

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZHouseController.java

@@ -123,4 +123,5 @@ public class ZHouseController extends BaseController {
         }
         return toAjax(iZHouseService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+
 }

+ 9 - 8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZMaterialStatisticsController.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.zdsz.domain.vo.MaterialStatisticsListVo;
 import lombok.RequiredArgsConstructor;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
@@ -44,20 +45,20 @@ public class ZMaterialStatisticsController extends BaseController {
      */
     //@SaCheckPermission("zdsz:materialStatistics:list")
     @GetMapping("/list")
-    public R list(ZMaterialStatisticsBo bo) {
+    public R list(@RequestBody ZMaterialStatisticsBo bo) {
         return R.ok(iZMaterialStatisticsService.queryList(bo));
     }
 
     /**
      * 导出用料统计列表
      */
-    @SaCheckPermission("zdsz:materialStatistics:export")
-    @Log(title = "用料统计", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(ZMaterialStatisticsBo bo, HttpServletResponse response) {
-        List<ZMaterialStatisticsVo> list = iZMaterialStatisticsService.queryList(bo);
-        ExcelUtil.exportExcel(list, "用料统计", ZMaterialStatisticsVo.class, response);
-    }
+//    @SaCheckPermission("zdsz:materialStatistics:export")
+//    @Log(title = "用料统计", businessType = BusinessType.EXPORT)
+//    @PostMapping("/export")
+//    public void export(ZMaterialStatisticsBo bo, HttpServletResponse response) {
+//        List<MaterialStatisticsListVo> list = iZMaterialStatisticsService.queryList(bo);
+//        ExcelUtil.exportExcel(list, "用料统计", ZMaterialStatisticsVo.class, response);
+//    }
 
     /**
      * 获取用料统计详细信息

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

@@ -7,8 +7,11 @@ import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.vo.ZBuildingVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringCivilVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import com.ruoyi.zdsz.domain.vo.roomStatusVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 民用工程Mapper接口
  *
@@ -20,5 +23,7 @@ public interface ZEngineeringCivilMapper extends BaseMapperPlus<ZEngineeringCivi
 
     Page<ZEngineeringCivilVo> queryPageList(@Param("p") ZEngineeringCivilBo bo, Page<?> page);
 
+    List<roomStatusVo> getObtainRoomcCompletionInformationList(ZEngineeringCivilBo bo);
+
 
 }

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZMaterialStatisticsMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.zdsz.mapper;
 
 import com.ruoyi.zdsz.domain.ZMaterialStatistics;
 import com.ruoyi.zdsz.domain.bo.ZMaterialStatisticsBo;
+import com.ruoyi.zdsz.domain.vo.MaterialStatisticsListVo;
 import com.ruoyi.zdsz.domain.vo.ZMaterialStatisticsVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import org.apache.ibatis.annotations.Param;
@@ -20,4 +21,8 @@ public interface ZMaterialStatisticsMapper extends BaseMapperPlus<ZMaterialStati
 
     List<ZMaterialStatisticsVo>  getZMaterialStatisticsList(@Param("p")ZMaterialStatisticsBo zMaterialStatistics);
 
+    List<MaterialStatisticsListVo>  getZMaterialStatistics(ZMaterialStatisticsBo zMaterialStatistics);
+
+
+
 }

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

@@ -5,9 +5,11 @@ import com.ruoyi.zdsz.domain.vo.ZEngineeringCivilVo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.zdsz.domain.vo.roomStatusVo;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 民用工程Service接口
@@ -52,4 +54,5 @@ public interface IZEngineeringCivilService {
     int getCivilByAreaId(Collection<String> list);
 
     int getCivilByhouseId(Collection<String> list);
+    List getObtainRoomcCompletionInformationList(ZEngineeringCivilBo bo);
 }

+ 2 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZMaterialStatisticsService.java

@@ -3,6 +3,7 @@ package com.ruoyi.zdsz.service;
 import com.ruoyi.zdsz.domain.ZMaterialStatistics;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.vo.MaterialStatisticsListVo;
 import com.ruoyi.zdsz.domain.vo.ZMaterialStatisticsVo;
 import com.ruoyi.zdsz.domain.bo.ZMaterialStatisticsBo;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -32,7 +33,7 @@ public interface IZMaterialStatisticsService {
     /**
      * 查询用料统计列表
      */
-    List<ZMaterialStatisticsVo> queryList(ZMaterialStatisticsBo bo);
+    List<MaterialStatisticsListVo> queryList(ZMaterialStatisticsBo bo);
 
     /**
      * 新增用料统计

+ 34 - 11
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringCivilServiceImpl.java

@@ -1,23 +1,20 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.ruoyi.common.annotation.Translation;
-import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.zdsz.domain.ZBuilding;
 import com.ruoyi.zdsz.domain.bo.ZBuildingBo;
-import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
-import com.ruoyi.zdsz.service.IZEngineeringInfoService;
+import com.ruoyi.zdsz.domain.vo.BulidingStatusVo;
+import com.ruoyi.zdsz.domain.vo.roomStatusVo;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import com.ruoyi.zdsz.service.IZMaterialStatisticsService;
 import lombok.RequiredArgsConstructor;
+import lombok.Value;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
@@ -29,10 +26,8 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 民用工程Service业务层处理
@@ -144,7 +139,7 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
         lqw.eq(StringUtils.isNotBlank(bo.getEnginCycle()), ZEngineeringCivil::getEnginCycle, bo.getEnginCycle());
         lqw.eq(StringUtils.isNotBlank(bo.getEnginClassification()), ZEngineeringCivil::getEnginClassification, bo.getEnginClassification());
         ZEngineeringCivilVo zEngineeringCivilVo = baseMapper.selectVoOne(lqw);
-        if (bo.getEnginType().equals("室内工程")) {
+        if ("indoor_engin".equals(bo.getEnginClassification())) {
             izMaterialStatisticsService.insert(bo);
         }
         if (ObjectUtils.isEmpty(zEngineeringCivilVo)) {
@@ -247,4 +242,32 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
         lqw.in(!ids.isEmpty(), ZEngineeringCivil::getHouseId, ids);
         return baseMapper.selectVoList(lqw).size();
     }
+
+    @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()));
+        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-> String.valueOf(item.getRoomName().length()>3?item.getRoomName().charAt(1):item.getRoomName().charAt(0))));;
+            List willDone = value.stream().filter(item->item.getRoomStatus().equals("未完工")).collect(Collectors.toList());
+            List notstart =value.stream().filter(item->item.getRoomStatus().equals("未开工")).collect(Collectors.toList());
+            List done =value.stream().filter(item->item.getRoomStatus().equals("完工")).collect(Collectors.toList());
+            List<List<roomStatusVo>> roomStatusVoList=new ArrayList<>();
+            roomMap.forEach((key1,value1)->{
+                roomStatusVoList.add(value1);
+            });
+            bulidingStatusVo.setRoomStatusVoList(roomStatusVoList);
+            bulidingStatusVo.setDone(String.valueOf(done.size()));
+            bulidingStatusVo.setWillDone(String.valueOf(willDone.size()));
+            bulidingStatusVo.setNotstart(String.valueOf(notstart.size()));
+            areaList.add(bulidingStatusVo);
+        });
+        return areaList ;
+    }
 }

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringMaterialServiceImpl.java

@@ -58,7 +58,7 @@ public class ZEngineeringMaterialServiceImpl implements IZEngineeringMaterialSer
 //    @Async("threadPoolTaskExecutor")
     public List<ZEngineeringMaterialBo> query(ZEngineeringInfoBo bo) {
         LambdaQueryWrapper<ZEngineeringMaterial> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringMaterial::getDetailsId, bo.getId());
+        lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringMaterial::getDetailsId, bo.getId()).orderByAsc(ZEngineeringMaterial::getUpdateTime);
         List<ZEngineeringMaterial> zEngineeringMaterialVo = baseMapper.selectList(lqw);
         List<ZEngineeringMaterialBo> zEngineeringMaterialBoList = new ArrayList<>();
         zEngineeringMaterialVo.stream().forEach(item -> {

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

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.zdsz.domain.ZEngineeringCivil;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.vo.MaterialStatisticsListVo;
 import com.ruoyi.zdsz.service.IZEngineeringInfoService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
@@ -64,10 +65,9 @@ public class ZMaterialStatisticsServiceImpl implements IZMaterialStatisticsServi
      * 查询用料统计列表
      */
     @Override
-    public List<ZMaterialStatisticsVo> queryList(ZMaterialStatisticsBo bo) {
+    public List<MaterialStatisticsListVo> queryList(ZMaterialStatisticsBo bo) {
         LambdaQueryWrapper<ZMaterialStatistics> lqw = buildQueryWrapper(bo);
-
-        return baseMapper.getZMaterialStatisticsList(bo);
+        return baseMapper.getZMaterialStatistics(bo);
     }
 
     private LambdaQueryWrapper<ZMaterialStatistics> buildQueryWrapper(ZMaterialStatisticsBo bo) {

+ 27 - 1
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringCivilMapper.xml

@@ -51,5 +51,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and a.unit_id = #{p.unitId}
         </if>
     </select>
-
+<select id="getObtainRoomcCompletionInformationList" resultType="com.ruoyi.zdsz.domain.vo.roomStatusVo">
+    select
+    a.area_id,
+    a.building_id,
+    a.unit_id ,
+    c.name AS unitName,
+    a.NAME AS roomName,
+    a.id AS roomId,
+    IFNULL( b.completion_status, '未开工' ) AS roomStatus,
+    b.create_time
+    FROM
+    z_house a
+    LEFT JOIN z_engineering_civil b ON a.id = b.house_id
+    LEFT JOIN z_unit c ON c.id=a.unit_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.unit_id = #{unitId}
+    </if>
+    ORDER BY  unitName,a.`name` ASC
+</select>
 </mapper>

+ 31 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZMaterialStatisticsMapper.xml

@@ -46,5 +46,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     reality_quality,
     reality_specifications
 </select>
+    <select id="getZMaterialStatistics" resultType="com.ruoyi.zdsz.domain.vo.MaterialStatisticsListVo" >
+        SELECT
+        a.area_id,
+        c.name AS reality_specifications,
+        d.name AS  reality_quality,
+        a.reality_size,
+        a.engin_cycle,
+        d.name AS material_quality,
+        c.name as estimated_specifications,
+        b.estimated_size
+        FROM
+        z_material_statistics a
+        LEFT JOIN z_engineering_materials_resets b ON a.reality_specifications = b.estimated_specifications
+        AND b.area_id LIKE CONCAT( "%", a.area_id, "%" )
+        AND a.engin_cycle = b.engin_cycle
+        AND a.del_flag = b.del_flag
+        LEFT JOIN z_engin_specifications c ON b.estimated_specifications=c.id
+        LEFT JOIN z_engin_material_quality d ON d.id= b.material_quality
+        WHERE
+        1=1
+        <if test="areaId != null  and areaId != ''">
+            and a.area_id = #{areaId}
+        </if>
+        <if test="realityQuality != null  and realityQuality != ''">
+            and b.material_quality = #{realityQuality}
+        </if>
+        <if test="realitySpecifications != null  and realitySpecifications != ''">
+            and b.reality_specifications = #{realitySpecifications}
+        </if>
+
+    </select>
 
 </mapper>