wangzhe преди 10 месеца
родител
ревизия
6a4205da67
променени са 32 файла, в които са добавени 1233 реда и са изтрити 20 реда
  1. 27 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/timer/BigscreenAutoQueryYesterdayData.java
  2. 0 20
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/timer/Test.java
  3. 79 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZdszBigscreenController.java
  4. 6 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZArea.java
  5. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringGY.java
  6. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringIndustry.java
  7. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringInfrastructure.java
  8. 6 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringPipeJacking.java
  9. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZTouchOperationEngineering.java
  10. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZAreaBo.java
  11. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryBo.java
  12. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryGYBo.java
  13. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringInfrastructureBo.java
  14. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringPipeJackingBo.java
  15. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZTouchOperationEngineeringBo.java
  16. 38 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZdszBigscreenBo.java
  17. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZAreaVo.java
  18. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringGYVo.java
  19. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringIndustryVo.java
  20. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringInfrastructureVo.java
  21. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringPipeJackingVo.java
  22. 5 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZTouchOperationEngineeringVo.java
  23. 68 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZdszBigscreenMapper.java
  24. 48 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZdszBigscreenService.java
  25. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZAreaServiceImpl.java
  26. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringGYServiceImpl.java
  27. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringIndustryServiceImpl.java
  28. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfrastructureServiceImpl.java
  29. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringPipeJackingServiceImpl.java
  30. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZTouchOperationEngineeringServiceImpl.java
  31. 557 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZdszBigscreenServiceImpl.java
  32. 318 0
      ruoyi-zdsz/src/main/resources/mapper/zdsz/ZdszBigscreenMapper.xml

+ 27 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/timer/BigscreenAutoQueryYesterdayData.java

@@ -0,0 +1,27 @@
+package com.ruoyi.web.controller.timer;
+
+import com.ruoyi.zdsz.service.IZdszBigscreenService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class BigscreenAutoQueryYesterdayData extends BaseTask {
+    private static final String CRON = "0/20 * * * * ?"; // 每20秒输出一次
+//    private static final String CRON = "0 10 0 * * ?"; // 每日十二点十分查询昨日数据
+
+    @Resource
+    private IZdszBigscreenService iZdszBigscreenService;
+
+    @Override
+    protected void run() {
+//        System.out.println("【系统启动】开始(每20秒输出一次)...");
+        iZdszBigscreenService.bigscreenAutoQueryYesterdayData();
+        System.out.println("【系统提示】 查询大屏昨日数据已完成!");
+    }
+
+    @Override
+    protected String getPattern() {
+        return CRON;
+    }
+}

+ 0 - 20
ruoyi-admin/src/main/java/com/ruoyi/web/controller/timer/Test.java

@@ -1,20 +0,0 @@
-package com.ruoyi.web.controller.timer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-@Service
-public class Test extends BaseTask {
-    private static final String CRON = "0/20 * * * * ?";
-
-    @Override
-    protected void run() {
-        System.out.println("【系统启动】开始(每20秒输出一次)...");
-    }
-
-    @Override
-    protected String getPattern() {
-        return CRON;
-    }
-}

+ 79 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZdszBigscreenController.java

@@ -0,0 +1,79 @@
+package com.ruoyi.web.controller.zdsz;
+
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.zdsz.domain.bo.ZdszBigscreenBo;
+import com.ruoyi.zdsz.service.IZdszBigscreenService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * 大屏首页
+ *
+ * @author ruoyi
+ * @date 2024-08-05
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/zdsz/bigscreen")
+public class ZdszBigscreenController extends BaseController {
+
+    @Resource
+    private final IZdszBigscreenService iZdszBigscreenService;
+
+    /**
+     * 施工进度统计
+     */
+    @GetMapping("/getConstructionProgress")
+    public R<Map> getConstructionProgress(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getConstructionProgress(zdszBigscreenBo));
+    }
+
+    /**
+     * 工程状态统计
+     */
+    @GetMapping("/getProjectStatus")
+    public R<Map> getProjectStatus(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getProjectStatus(zdszBigscreenBo));
+    }
+    /**
+     * 今日施工数
+     */
+    @GetMapping("/getCountEngineering")
+    public R<Map> getCountEngineering(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getCountEngineering(zdszBigscreenBo));
+    }
+    /**
+     * 今日使用人数
+     */
+    @GetMapping("/getCountPerson")
+    public R<Map> getCountPerson(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getCountPerson(zdszBigscreenBo));
+    }
+    /**
+     * 地图施工数据分布
+     */
+    @GetMapping("/getConstructionMap")
+    public R<Map> getConstructionMap(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getConstructionMap(zdszBigscreenBo));
+    }
+    /**
+     * 各个区今日施工数
+     */
+    @GetMapping("/getConstructionNew")
+    public R<Map> getConstructionNew(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getConstructionNew(zdszBigscreenBo));
+    }
+    /**
+     * 各个区今日旧改施工数
+     */
+    @GetMapping("/getConstructionOld")
+    public R<Map> getConstructionOld(ZdszBigscreenBo zdszBigscreenBo) {
+        return R.ok(iZdszBigscreenService.getConstructionOld(zdszBigscreenBo));
+    }
+}

+ 6 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZArea.java

@@ -27,6 +27,12 @@ public class ZArea extends BaseEntity {
      */
     @TableId(value = "id")
     private String id;
+
+    /**
+     * 是否完工
+     */
+    private String isDone;
+
     /**
      * 小区名称
      */

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringGY.java

@@ -28,6 +28,11 @@ public class ZEngineeringGY extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringIndustry.java

@@ -32,6 +32,11 @@ public class ZEngineeringIndustry extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringInfrastructure.java

@@ -31,6 +31,11 @@ public class ZEngineeringInfrastructure extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 6 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringPipeJacking.java

@@ -27,6 +27,12 @@ public class ZEngineeringPipeJacking extends BaseEntity {
      */
     @TableId(value = "id")
     private String id;
+
+    /**
+     * 是否完工
+     */
+    private String isDone;
+
     /**
      * 工程id
      */

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZTouchOperationEngineering.java

@@ -31,6 +31,11 @@ public class ZTouchOperationEngineering extends BaseEntity {
     private Long id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZAreaBo.java

@@ -32,6 +32,11 @@ public class ZAreaBo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 小区名称
      */
     @NotBlank(message = "小区名称不能为空", groups = { AddGroup.class, EditGroup.class })

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryBo.java

@@ -26,6 +26,11 @@ public class ZEngineeringIndustryBo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryGYBo.java

@@ -23,6 +23,11 @@ public class ZEngineeringIndustryGYBo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringInfrastructureBo.java

@@ -35,6 +35,11 @@ public class ZEngineeringInfrastructureBo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringPipeJackingBo.java

@@ -39,6 +39,11 @@ public class ZEngineeringPipeJackingBo extends BaseEntity {
     private String enginId;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZTouchOperationEngineeringBo.java

@@ -32,6 +32,11 @@ public class ZTouchOperationEngineeringBo extends BaseEntity {
     private Long id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 38 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZdszBigscreenBo.java

@@ -0,0 +1,38 @@
+package com.ruoyi.zdsz.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 大屏首页业务对象
+ *
+ * @author ruoyi
+ * @date 2024-08-05
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ZdszBigscreenBo extends BaseEntity {
+
+    /**
+     * 开始时间
+     */
+    private String beginTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    /**
+     * 当日时间
+     */
+    private String time;
+    /**
+     * tableName
+     */
+    private String info;
+    private String node;
+    private String material;
+}

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZAreaVo.java

@@ -27,6 +27,11 @@ public class ZAreaVo implements Serializable {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 小区名称
      */
     @ExcelProperty(value = "小区名称")

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringGYVo.java

@@ -31,6 +31,11 @@ public class ZEngineeringGYVo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringIndustryVo.java

@@ -35,6 +35,11 @@ public class ZEngineeringIndustryVo extends BaseEntity {
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringInfrastructureVo.java

@@ -44,6 +44,11 @@ public class ZEngineeringInfrastructureVo extends BaseEntity implements Serializ
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringPipeJackingVo.java

@@ -32,6 +32,11 @@ public class ZEngineeringPipeJackingVo extends BaseEntity implements Serializabl
     private String id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 工程id
      */
 //    @ExcelProperty(value = "工程id")

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZTouchOperationEngineeringVo.java

@@ -33,6 +33,11 @@ public class ZTouchOperationEngineeringVo extends BaseEntity implements Serializ
     private Long id;
 
     /**
+     * 是否完工
+     */
+    private String isDone;
+
+    /**
      * 行政区
      */
     private String district;

+ 68 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZdszBigscreenMapper.java

@@ -0,0 +1,68 @@
+package com.ruoyi.zdsz.mapper;
+
+import com.ruoyi.zdsz.domain.bo.ZdszBigscreenBo;
+import org.apache.ibatis.annotations.MapKey;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 大屏首页Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-05
+ */
+public interface ZdszBigscreenMapper {
+
+    int setConstructionProgress(Map map);
+    List<Double> pipeNum(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getConstructionProgress(ZdszBigscreenBo zdszBigscreenBo);
+    int setProjectStatus(Map map);
+    Long todoNum(ZdszBigscreenBo zdszBigscreenBo);
+    Long doingNum(ZdszBigscreenBo zdszBigscreenBo);
+    Long doneNum(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getProjectStatus(ZdszBigscreenBo zdszBigscreenBo);
+    int setCountEngineering(Map map);
+    Long civiNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    Long gyNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    Long industryNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    Long touchNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    Long infrastructureNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    Long pipeNumEng(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getCountEngineering(ZdszBigscreenBo zdszBigscreenBo);
+    int setCountPerson(Map map);
+    Long civiNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    Long gyNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    Long industryNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    Long touchNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    Long infrastructureNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    Long pipeNumPer(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getCountPerson(ZdszBigscreenBo zdszBigscreenBo);
+    int setConstructionMap(Map map);
+    @MapKey("")
+    List<Map> getConstructionMap(ZdszBigscreenBo zdszBigscreenBo);
+    int setConstructionNew(Map map);
+    @MapKey("")
+    List<Map> civiNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> gyNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> industryNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> touchNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> infrastructureNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> pipeNumNew(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getConstructionNew(ZdszBigscreenBo zdszBigscreenBo);
+    int setConstructionOld(Map map);
+    @MapKey("")
+    List<Map> civiNumOld(ZdszBigscreenBo zdszBigscreenBo);
+    @MapKey("")
+    List<Map> getConstructionOld(ZdszBigscreenBo zdszBigscreenBo);
+}

+ 48 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZdszBigscreenService.java

@@ -0,0 +1,48 @@
+package com.ruoyi.zdsz.service;
+
+import com.ruoyi.zdsz.domain.bo.ZdszBigscreenBo;
+
+import java.util.Map;
+
+/**
+ * 大屏首页Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-05
+ */
+public interface IZdszBigscreenService {
+
+    /**
+     * 施工进度统计
+     */
+    public Map getConstructionProgress(ZdszBigscreenBo zdszBigscreenBo);
+
+    /**
+     * 工程状态统计
+     */
+    public Map getProjectStatus(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 今日施工数
+     */
+    public Map getCountEngineering(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 今日使用人数
+     */
+    public Map getCountPerson(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 地图施工数据分布
+     */
+    public Map getConstructionMap(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 各个区今日施工数
+     */
+    public Map getConstructionNew(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 各个区今日旧改施工数
+     */
+    public Map getConstructionOld(ZdszBigscreenBo zdszBigscreenBo);
+    /**
+     * 查询大屏昨日数据
+     */
+    public void bigscreenAutoQueryYesterdayData();
+}

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

@@ -345,6 +345,7 @@ public class ZAreaServiceImpl implements IZAreaService {
         LambdaQueryWrapper<ZArea> lqw = Wrappers.lambdaQuery();
         lqw.orderByAsc(ZArea::getName);
         lqw.like(StringUtils.isNotBlank(bo.getName()), ZArea::getName, bo.getName());
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZArea::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getScale()), ZArea::getScale, bo.getScale());
         lqw.eq(bo.getReleaseIs() != null, ZArea::getReleaseIs, bo.getReleaseIs());
         lqw.eq(StringUtils.isNotBlank(bo.getReleaseBy()), ZArea::getReleaseBy, bo.getReleaseBy());

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

@@ -225,6 +225,7 @@ public class ZEngineeringGYServiceImpl implements IZEngineeringGYService {
     private LambdaQueryWrapper<ZEngineeringGY> buildQueryWrapper(ZEngineeringIndustryGYBo bo) {
         LambdaQueryWrapper<ZEngineeringGY> lqw = Wrappers.lambdaQuery();
         lqw.orderByDesc(ZEngineeringGY::getCreateTime);
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZEngineeringGY::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZEngineeringGY::getDistrict, bo.getDistrict());
         lqw.eq(StringUtils.isNotBlank(bo.getEnginType()), ZEngineeringGY::getEnginType, bo.getEnginType());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringGY::getEnginName, bo.getEnginName());

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

@@ -465,6 +465,7 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
     private LambdaQueryWrapper<ZEngineeringIndustry> buildQueryWrapper(ZEngineeringIndustryBo bo) {
         LambdaQueryWrapper<ZEngineeringIndustry> lqw = Wrappers.lambdaQuery();
         lqw.orderByDesc(ZEngineeringIndustry::getCreateTime);
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZEngineeringIndustry::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZEngineeringIndustry::getDistrict, bo.getDistrict());
         lqw.eq(StringUtils.isNotBlank(bo.getEnginType()), ZEngineeringIndustry::getEnginType, bo.getEnginType());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringIndustry::getEnginName, bo.getEnginName());

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

@@ -124,6 +124,7 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<ZEngineeringInfrastructure> lqw = Wrappers.lambdaQuery();
         lqw.orderByDesc(ZEngineeringInfrastructure::getCreateTime);
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZEngineeringInfrastructure::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZEngineeringInfrastructure::getDistrict, bo.getDistrict());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringInfrastructure::getEnginName, bo.getEnginName());
         lqw.eq(StringUtils.isNotBlank(bo.getEnginAddre()), ZEngineeringInfrastructure::getEnginAddre, bo.getEnginAddre());

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

@@ -172,6 +172,7 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<ZEngineeringPipeJacking> lqw = Wrappers.lambdaQuery();
         lqw.orderByDesc(ZEngineeringPipeJacking::getCreateTime);
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZEngineeringPipeJacking::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZEngineeringPipeJacking::getDistrict, bo.getDistrict());
         lqw.like(StringUtils.isNotBlank(bo.getEnginId()), ZEngineeringPipeJacking::getEnginId, bo.getEnginId());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringPipeJacking::getEnginName, bo.getEnginName());

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

@@ -147,6 +147,7 @@ public class ZTouchOperationEngineeringServiceImpl implements IZTouchOperationEn
     private LambdaQueryWrapper<ZTouchOperationEngineering> buildQueryWrapper(ZTouchOperationEngineeringBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<ZTouchOperationEngineering> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getIsDone()), ZTouchOperationEngineering::getIsDone, bo.getIsDone());
         lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), ZTouchOperationEngineering::getDistrict, bo.getDistrict());
         lqw.eq(StringUtils.isNotBlank(bo.getModeOperation()), ZTouchOperationEngineering::getModeOperation, bo.getModeOperation());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZTouchOperationEngineering::getEnginName, bo.getEnginName());

+ 557 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZdszBigscreenServiceImpl.java

@@ -0,0 +1,557 @@
+package com.ruoyi.zdsz.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.Json;
+import com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.JsonObject;
+import com.github.therapi.runtimejavadoc.repack.com.eclipsesource.json.JsonValue;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.zdsz.domain.ZEngineeringIndustry;
+import com.ruoyi.zdsz.domain.bo.ZdszBigscreenBo;
+import com.ruoyi.zdsz.mapper.*;
+import com.ruoyi.zdsz.service.IZdszBigscreenService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 大屏首页Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-05
+ */
+@RequiredArgsConstructor
+@Service
+public class ZdszBigscreenServiceImpl implements IZdszBigscreenService {
+    @Resource
+    private ZEnginSpecificationsMapper specificationsMapper;
+    @Resource
+    private ZEnginMaterialQualityMapper materialQualityMapper;
+    @Resource
+    private ZdszBigscreenMapper bigscreenMapper;
+    @Resource
+    private ZEngineeringGYMapper zEngineeringGYMapper;
+    @Resource
+    private ZEngineeringIndustryMapper zEngineeringIndustryMapper;
+    @Resource
+    private ZEngineeringInfrastructureMapper zEngineeringInfrastructureMapper;
+    @Resource
+    private ZEngineeringCivilMapper zEngineeringCivilMapper;
+    @Resource
+    private ZTouchOperationEngineeringMapper zTouchOperationEngineeringMapper;
+    @Resource
+    private ZEngineeringPipeJackingMapper zEngineeringPipeJackingMapper;
+
+    /**
+     * 施工进度统计
+     */
+    public void setConstructionProgress(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        time = "2024-05-21";
+        zdszBigscreenBo.setTime(time);
+        String[] times = time.split("-");
+        zdszBigscreenBo.setMaterial("z_engineering_material_" + times[0] + "_" + times[1]); // z_engineering_material_2024_08
+        List<Double> numbers = bigscreenMapper.pipeNum(zdszBigscreenBo);
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        map.put("iron", numbers.get(0)); // 钢管总数
+        map.put("pe", numbers.get(1)); // PE总数
+        map.put("stainless_steel_bellow", numbers.get(2)); // 不锈钢波纹管
+        map.put("spiral_welded_pipe", numbers.get(3)); // 螺旋焊管
+        map.put("seamless_steel_tube", numbers.get(4)); // 无缝钢管
+        map.put("galvanized_steel_pipe", numbers.get(5)); // 镀锌钢管
+        map.put("polyethylene_pipe", numbers.get(6)); // 燃气用埋地聚乙烯管
+        bigscreenMapper.setConstructionProgress(map);
+    }
+
+    @Override
+    public Map getConstructionProgress(ZdszBigscreenBo zdszBigscreenBo){
+        setConstructionProgress();
+        clearTime(zdszBigscreenBo);
+        List<Map> list = bigscreenMapper.getConstructionProgress(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                Map map = new LinkedHashMap();
+                map.put("iron", 0); // 钢管总数
+                map.put("pe", 0); // PE总数
+                map.put("stainless_steel_bellow", 0); // 不锈钢波纹管
+                map.put("spiral_welded_pipe", 0); // 螺旋焊管
+                map.put("seamless_steel_tube", 0); // 无缝钢管
+                map.put("galvanized_steel_pipe", 0); // 镀锌钢管
+                map.put("polyethylene_pipe", 0); // 燃气用埋地聚乙烯管
+                return map;
+            }
+            case 1:{
+                return list.get(0);
+            }
+            default:{
+                Map map = new LinkedHashMap();
+                map.put("iron", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("iron")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 钢管总数
+                map.put("pe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("pe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // PE总数
+                map.put("stainless_steel_bellow", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("stainless_steel_bellow")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 不锈钢波纹管
+                map.put("spiral_welded_pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("spiral_welded_pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 螺旋焊管
+                map.put("seamless_steel_tube", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("seamless_steel_tube")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 无缝钢管
+                map.put("galvanized_steel_pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("galvanized_steel_pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 镀锌钢管
+                map.put("polyethylene_pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("polyethylene_pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 燃气用埋地聚乙烯管
+                return map;
+            }
+        }
+    }
+
+    /**
+     * 工程状态统计
+     */
+    public void setProjectStatus(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        zdszBigscreenBo.setTime(time);
+
+//        LambdaQueryWrapper<ZEngineeringIndustry> zEngineeringIndustryBoLambdaQueryWrapper = new LambdaQueryWrapper<ZEngineeringIndustry>();
+//        List<ZEngineeringIndustry> zEngineeringIndustryVos = baseMapper.selectList(zEngineeringIndustryBoLambdaQueryWrapper);
+//        LambdaQueryWrapper lqw = new
+//        zEngineeringGYMapper.selectList()
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        map.put("todo", bigscreenMapper.todoNum(zdszBigscreenBo)); // 开工
+        map.put("doing", bigscreenMapper.doingNum(zdszBigscreenBo)); // 在建
+        map.put("done", bigscreenMapper.doneNum(zdszBigscreenBo)); // 完工
+        bigscreenMapper.setProjectStatus(map);
+    }
+
+    @Override
+    public Map getProjectStatus(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setProjectStatus();
+        List<Map> list = bigscreenMapper.getProjectStatus(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                Map map = new LinkedHashMap();
+                map.put("todo", 0); // 开工
+                map.put("doing", 0); // 在建
+                map.put("done", 0); // 完工
+                return map;
+            }
+            case 1:{
+                return list.get(0);
+            }
+            default:{
+                Map map = new LinkedHashMap();
+                map.put("todo", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("todo")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 开工
+                map.put("doing", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("doing")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 在建
+                map.put("done", list.get(list.size()-1).get("done")); // 完工
+                return map;
+            }
+        }
+    }
+
+    /**
+     * 今日施工数
+     */
+    public void setCountEngineering(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        String[] times = time.split("-");
+        zdszBigscreenBo.setTime(time);
+        zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
+        zdszBigscreenBo.setNode("z_engineering_node_" + times[0] + "_" + times[1]); // z_engineering_node_2024_03
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        map.put("civi", bigscreenMapper.civiNumEng(zdszBigscreenBo)); // 民用工程
+        map.put("gy", bigscreenMapper.gyNumEng(zdszBigscreenBo)); // 工业工程
+        map.put("industry", bigscreenMapper.industryNumEng(zdszBigscreenBo)); // 市政工程
+        map.put("touch", bigscreenMapper.touchNumEng(zdszBigscreenBo)); // 碰口工程
+        map.put("infrastructure", bigscreenMapper.infrastructureNumEng(zdszBigscreenBo)); // 基建工程
+        map.put("pipe", bigscreenMapper.pipeNumEng(zdszBigscreenBo)); // 顶管工程
+        bigscreenMapper.setCountEngineering(map);
+    }
+    @Override
+    public Map getCountEngineering(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setCountEngineering();
+        List<Map> list = bigscreenMapper.getCountEngineering(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                Map map = new LinkedHashMap();
+                map.put("civi", 0); // 民用工程
+                map.put("gy", 0); // 工业工程
+                map.put("industry", 0); // 市政工程
+                map.put("touch", 0); // 碰口工程
+                map.put("infrastructure", 0); // 基建工程
+                map.put("pipe", 0); // 顶管工程
+                return map;
+            }
+            case 1:{
+                return list.get(0);
+            }
+            default:{
+                Map map = new LinkedHashMap();
+                map.put("civi", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("civi")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 民用工程
+                map.put("gy", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("gy")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 工业工程
+                map.put("industry", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("industry")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 市政工程
+                map.put("touch", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("touch")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 碰口工程
+                map.put("infrastructure", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("infrastructure")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 基建工程
+                map.put("pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 顶管工程
+                return map;
+            }
+        }
+    }
+
+    /**
+     * 今日使用人数
+     */
+    public void setCountPerson(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        zdszBigscreenBo.setTime(time);
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        map.put("civi", bigscreenMapper.civiNumPer(zdszBigscreenBo)); // 民用工程
+        map.put("gy", bigscreenMapper.gyNumPer(zdszBigscreenBo)); // 工业工程
+        map.put("industry", bigscreenMapper.industryNumPer(zdszBigscreenBo)); // 市政工程
+        map.put("touch", bigscreenMapper.touchNumPer(zdszBigscreenBo)); // 碰口工程
+        map.put("infrastructure", bigscreenMapper.infrastructureNumPer(zdszBigscreenBo)); // 基建工程
+        map.put("pipe", bigscreenMapper.pipeNumPer(zdszBigscreenBo)); // 顶管工程
+        bigscreenMapper.setCountPerson(map);
+    }
+    @Override
+    public Map getCountPerson(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setCountPerson();
+        List<Map> list = bigscreenMapper.getCountPerson(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                Map map = new LinkedHashMap();
+                map.put("civi", 0); // 民用工程
+                map.put("gy", 0); // 工业工程
+                map.put("industry", 0); // 市政工程
+                map.put("touch", 0); // 碰口工程
+                map.put("infrastructure", 0); // 基建工程
+                map.put("pipe", 0); // 顶管工程
+                return map;
+            }
+            case 1:{
+                return list.get(0);
+            }
+            default:{
+                Map map = new LinkedHashMap();
+                map.put("civi", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("civi")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 民用工程
+                map.put("gy", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("gy")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 工业工程
+                map.put("industry", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("industry")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 市政工程
+                map.put("touch", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("touch")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 碰口工程
+                map.put("infrastructure", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("infrastructure")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 基建工程
+                map.put("pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 顶管工程
+                return map;
+            }
+        }
+    }
+
+    /**
+     * 地图施工数据分布
+     */
+    public void setConstructionMap(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+//        time = "2024-03-10";
+        zdszBigscreenBo.setTime(time);
+        String[] times = time.split("-");
+        zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
+        zdszBigscreenBo.setNode("z_engineering_node_" + times[0] + "_" + times[1]); // z_engineering_node_2024_03
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        List<Map> civiMaps = bigscreenMapper.civiNumNew(zdszBigscreenBo); // 民用工程
+        List<Map> gyMaps = bigscreenMapper.gyNumNew(zdszBigscreenBo); // 工业工程
+        List<Map> industryMaps = bigscreenMapper.industryNumNew(zdszBigscreenBo); // 市政工程
+        List<Map> touchMaps = bigscreenMapper.touchNumNew(zdszBigscreenBo); // 碰口工程
+        List<Map> infrastructureMaps = bigscreenMapper.infrastructureNumNew(zdszBigscreenBo); // 基建工程
+        List<Map> pipeMaps = bigscreenMapper.pipeNumNew(zdszBigscreenBo); // 顶管工程
+        civiMaps = mapMergeMap(civiMaps, gyMaps);
+        civiMaps = mapMergeMap(civiMaps, industryMaps);
+        civiMaps = mapMergeMap(civiMaps, touchMaps);
+        civiMaps = mapMergeMap(civiMaps, infrastructureMaps);
+        civiMaps = mapMergeMap(civiMaps, pipeMaps);
+        map.put("json", mapToJson(civiMaps)); // JSON数据
+        bigscreenMapper.setConstructionNew(map);
+    }
+    @Override
+    public Map getConstructionMap(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setProjectStatus();
+        List<Map> list = bigscreenMapper.getConstructionMap(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                Map map = new LinkedHashMap();
+                map.put("civi", 0); // 民用工程
+                map.put("gy", 0); // 工业工程
+                map.put("industry", 0); // 市政工程
+                map.put("touch", 0); // 碰口工程
+                map.put("infrastructure", 0); // 基建工程
+                map.put("pipe", 0); // 顶管工程
+                return map;
+            }
+            case 1:{
+                return list.get(0);
+            }
+            default:{
+                Map map = new LinkedHashMap();
+                map.put("civi", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("civi")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 民用工程
+                map.put("gy", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("gy")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 工业工程
+                map.put("industry", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("industry")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 市政工程
+                map.put("touch", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("touch")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 碰口工程
+                map.put("infrastructure", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("infrastructure")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 基建工程
+                map.put("pipe", list.stream().map(x -> new BigDecimal(String.valueOf(x.get("pipe")))).reduce(BigDecimal.ZERO, BigDecimal::add)); // 顶管工程
+                return map;
+            }
+        }
+    }
+
+    /**
+     * 各个区今日施工数
+     */
+    public void setConstructionNew(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        time = "2024-03-10";
+        zdszBigscreenBo.setTime(time);
+        String[] times = time.split("-");
+        zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
+        zdszBigscreenBo.setNode("z_engineering_node_" + times[0] + "_" + times[1]); // z_engineering_node_2024_03
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+        List<Map> civiMaps = bigscreenMapper.civiNumNew(zdszBigscreenBo); // 民用工程
+        List<Map> gyMaps = bigscreenMapper.gyNumNew(zdszBigscreenBo); // 工业工程
+        List<Map> industryMaps = bigscreenMapper.industryNumNew(zdszBigscreenBo); // 市政工程
+        List<Map> touchMaps = bigscreenMapper.touchNumNew(zdszBigscreenBo); // 碰口工程
+        List<Map> infrastructureMaps = bigscreenMapper.infrastructureNumNew(zdszBigscreenBo); // 基建工程
+        List<Map> pipeMaps = bigscreenMapper.pipeNumNew(zdszBigscreenBo); // 顶管工程
+        civiMaps = mapMergeMap(civiMaps, gyMaps);
+        civiMaps = mapMergeMap(civiMaps, industryMaps);
+        civiMaps = mapMergeMap(civiMaps, touchMaps);
+        civiMaps = mapMergeMap(civiMaps, infrastructureMaps);
+        civiMaps = mapMergeMap(civiMaps, pipeMaps);
+        map.put("json", mapToJson(civiMaps)); // JSON数据
+        bigscreenMapper.setConstructionNew(map);
+    }
+    @Override
+    public Map getConstructionNew(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setConstructionNew();
+        Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
+        List<SysDictData> dictDataList = sysDictMap.get("district");
+        List<Map> list = bigscreenMapper.getConstructionNew(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    values.add(0);
+                }
+                Map map = new LinkedHashMap();
+                map.put("name", names); // 名称
+                map.put("value", values); // 数量
+                return map;
+            }
+            case 1:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                Map map = list.get(0);
+                String jsonStr = map.get("json").toString();
+                JsonValue jsonValue = Json.parse(jsonStr);
+                JsonObject jsonObject = jsonValue.asObject();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    Object value = jsonObject.get(dictData.getDictValue());
+                    values.add(value == null ? 0 : value);
+                }
+                Map linkedHashMap = new LinkedHashMap();
+                linkedHashMap.put("name", names); // 名称
+                linkedHashMap.put("value", values); // 数量
+                return linkedHashMap;
+            }
+            default:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    Long longValue = 0L;
+                    for (int i = 0; i < list.size(); i++) {
+                        Map map = list.get(i);
+                        String jsonStr = map.get("json").toString();
+                        JsonValue jsonValue = Json.parse(jsonStr);
+                        JsonObject jsonObject = jsonValue.asObject();
+                        Object valueObj = jsonObject.get(dictData.getDictValue());
+                        Long value = valueObj == null ? 0L : Long.valueOf(valueObj.toString());
+                        longValue += value;
+                    }
+                    values.add(longValue);
+                }
+                Map linkedHashMap = new LinkedHashMap();
+                linkedHashMap.put("name", names); // 名称
+                linkedHashMap.put("value", values); // 数量
+                return linkedHashMap;
+            }
+        }
+    }
+
+    /**
+     * 各个区今日旧改施工数
+     */
+    public void setConstructionOld(){
+        ZdszBigscreenBo zdszBigscreenBo = new ZdszBigscreenBo();
+        String time = getPreviousDay();
+        String[] times = time.split("-");
+        zdszBigscreenBo.setTime(time);
+//        zdszBigscreenBo.setTime("2024-08-05");
+        zdszBigscreenBo.setInfo("z_engineering_info_" + times[0] + "_" + times[1]); // z_engineering_info_2024_03
+        zdszBigscreenBo.setNode("z_engineering_node_" + times[0] + "_" + times[1]); // z_engineering_node_2024_03
+        Map map = new HashMap();
+        map.put("time", time); // 创建时间
+//        Json json = Json.
+        List<Map> maps = bigscreenMapper.civiNumOld(zdszBigscreenBo);
+//        map.put("json", aaa); // 民用工程
+//        map.put("gy", bigscreenMapper.gyNumEng(zdszBigscreenBo)); // 工业工程
+//        map.put("industry", bigscreenMapper.industryNumEng(zdszBigscreenBo)); // 市政工程
+//        map.put("touch", bigscreenMapper.touchNumEng(zdszBigscreenBo)); // 碰口工程
+//        map.put("infrastructure", bigscreenMapper.infrastructureNumEng(zdszBigscreenBo)); // 基建工程
+//        map.put("pipe", bigscreenMapper.pipeNumEng(zdszBigscreenBo)); // 顶管工程
+        map.put("json", mapToJson(maps)); // JSON数据
+        bigscreenMapper.setConstructionOld(map);
+    }
+    @Override
+    public Map getConstructionOld(ZdszBigscreenBo zdszBigscreenBo){
+        clearTime(zdszBigscreenBo);
+        setConstructionOld();
+        Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
+        List<SysDictData> dictDataList = sysDictMap.get("district");
+        List<Map> list = bigscreenMapper.getConstructionOld(zdszBigscreenBo);
+        int size = list.size();
+        switch (size){
+            case 0:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    values.add(0);
+                }
+                Map map = new LinkedHashMap();
+                map.put("name", names); // 名称
+                map.put("value", values); // 数量
+                return map;
+            }
+            case 1:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                Map map = list.get(0);
+                String jsonStr = map.get("json").toString();
+                JsonValue jsonValue = Json.parse(jsonStr);
+                JsonObject jsonObject = jsonValue.asObject();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    Object value = jsonObject.get(dictData.getDictValue());
+                    values.add(value == null ? 0 : value);
+                }
+                Map linkedHashMap = new LinkedHashMap();
+                linkedHashMap.put("name", names); // 名称
+                linkedHashMap.put("value", values); // 数量
+                return linkedHashMap;
+            }
+            default:{
+                List names = new ArrayList();
+                List values = new ArrayList();
+                for (SysDictData dictData: dictDataList) {
+                    names.add(dictData.getDictLabel());
+                    Long longValue = 0L;
+                    for (int i = 0; i < list.size(); i++) {
+                        Map map = list.get(i);
+                        String jsonStr = map.get("json").toString();
+                        JsonValue jsonValue = Json.parse(jsonStr);
+                        JsonObject jsonObject = jsonValue.asObject();
+                        Object valueObj = jsonObject.get(dictData.getDictValue());
+                        Long value = valueObj == null ? 0L : Long.valueOf(valueObj.toString());
+                        longValue += value;
+                    }
+                    values.add(longValue);
+                }
+                Map linkedHashMap = new LinkedHashMap();
+                linkedHashMap.put("name", names); // 名称
+                linkedHashMap.put("value", values); // 数量
+                return linkedHashMap;
+            }
+        }
+    }
+
+    String getPreviousDay(){
+        // 获取当前日期
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        // 将日期减一天
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        // 获取前一天的日期
+        Date previousDay = calendar.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(previousDay);
+    }
+    void clearTime(ZdszBigscreenBo zdszBigscreenBo){
+        String beginTime = zdszBigscreenBo.getBeginTime();
+        String endTime = zdszBigscreenBo.getEndTime();
+        if((beginTime != null && !beginTime.equals("")) || (endTime != null && !endTime.equals(""))){
+            zdszBigscreenBo.setTime(null);
+        }
+    }
+    String mapToJson(List<Map> maps){
+        String start = "{";
+        for (int i = 0; i < maps.size(); i++) {
+            Map data = maps.get(i);
+            String key = data.get("key").toString();
+            Long value = Long.valueOf(data.get("value").toString());
+            start = start + "\"" + key + "\":"+value+",";
+        }
+        if(maps.size() > 0){
+            start = start.substring(0, start.length() - 1);
+        }
+        String end= "}";
+        String json= start + end;
+        return json;
+    }
+    List<Map> mapMergeMap(List<Map> destinations, List<Map> maps){
+        for (int i = 0; i < maps.size(); i++) {
+            boolean isExist = false;
+            for (int j = 0; j < destinations.size(); j++) {
+                Map destination = destinations.get(i);
+                Map map = maps.get(i);
+                if(map.get("key").equals(destination.get("key"))){
+                    isExist = true;
+                    Long value = Long.valueOf(destination.get("value").toString()) + Long.valueOf(map.get("value").toString());
+                    destination.put("value", value);
+                    break;
+                }
+            }
+            if(!isExist){
+                destinations.add(maps.get(i));
+            }
+        }
+        return destinations;
+    }
+
+    @Override
+    public void bigscreenAutoQueryYesterdayData(){
+        setConstructionProgress(); // 施工进度统计
+        setProjectStatus(); // 工程状态统计
+        setCountEngineering(); // 今日施工数
+        setCountPerson(); // 今日使用人数
+        setConstructionMap(); // 地图施工数据分布
+        setConstructionOld(); // 各个区今日旧改施工数
+        setConstructionNew(); // 各个区今日施工数
+    }
+
+}

+ 318 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZdszBigscreenMapper.xml

@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.zdsz.mapper.ZdszBigscreenMapper">
+    <insert id="setConstructionProgress">
+        delete from z_bigscreen_constructionProgress where time = #{time};
+        insert into z_bigscreen_constructionProgress (time, iron, pe, stainless_steel_bellow, spiral_welded_pipe, seamless_steel_tube, galvanized_steel_pipe, polyethylene_pipe)
+        values (#{time}, #{iron}, #{pe}, #{stainless_steel_bellow}, #{spiral_welded_pipe}, #{seamless_steel_tube}, #{galvanized_steel_pipe}, #{polyethylene_pipe})
+    </insert>
+    <select id="pipeNum" resultType="java.lang.Double">
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.material_type = '1'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.material_type = '0'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.name = '不锈钢波纹管(全类别)'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.name = '螺旋焊管(3PE加强级)(全类别)'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.name = '无缝钢管(全类别)'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.name = '镀锌钢管(全类别)'
+        union all
+        select ifnull(sum(ifnull(material.number, 0)), 0) number from z_engin_material_quality quality left join ${material} material on quality.id = material.material_quality
+        where material.del_flag = 0 and date_format(material.update_time, '%Y-%m-%d') = #{time} and quality.name = '燃气用埋地聚乙烯管(全类别)'
+    </select>
+    <select id="getConstructionProgress" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_constructionProgress where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_constructionProgress
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setProjectStatus">
+        delete from z_bigscreen_projectStatus where time = #{time};
+        insert into z_bigscreen_projectStatus (time, todo, doing, done)
+        values (#{time}, #{todo}, #{doing}, #{done})
+    </insert>
+    <select id="todoNum" resultType="java.lang.Long">
+        select sum(a.num) from (select count(id) num from z_engineering_gy where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time} union all
+        select count(id) num from z_engineering_industry where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time} union all
+        select count(id) num from z_engineering_infrastructure where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time} union all
+        select count(total) num from (select count(id) total from z_engineering_civil where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time} group by area_id) nums  union all
+        select count(id) num from z_touch_operation_engineering where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time} union all
+        select count(id) num from z_engineering_pipe_jacking where del_flag = 0 and date_format(create_time, '%Y-%m-%d') = #{time}) a
+    </select>
+    <select id="doingNum" resultType="java.lang.Long">
+        select sum(a.num) from (select count(id) num from z_engineering_gy where del_flag = 0 and is_done = 'N' and #{time} > date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_industry where del_flag = 0 and is_done = 'N' and #{time} > date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_infrastructure where del_flag = 0 and is_done = 'N' and #{time} > date_format(create_time, '%Y-%m-%d') union all
+        select count(total) num from (select count(id) total from (select area_id from z_engineering_civil where del_flag = 0 and #{time} > date_format(create_time, '%Y-%m-%d')) civi left join z_area area on civi.area_id = area.id where is_done = 'N' group by area.id) nums  union all
+        select count(id) num from z_touch_operation_engineering where del_flag = 0 and is_done = 'N' and #{time} > date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_pipe_jacking where del_flag = 0 and is_done = 'N' and #{time} > date_format(create_time, '%Y-%m-%d')) a
+    </select>
+    <select id="doneNum" resultType="java.lang.Long">
+        select sum(a.num) from (select count(id) num from z_engineering_gy where del_flag = 0 and is_done = 'Y' and #{time} >= date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_industry where del_flag = 0 and is_done = 'Y' and #{time} >= date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_infrastructure where del_flag = 0 and is_done = 'Y' and #{time} >= date_format(create_time, '%Y-%m-%d') union all
+        select count(total) num from (select count(id) total from (select area_id from z_engineering_civil where del_flag = 0 and #{time} >= date_format(create_time, '%Y-%m-%d')) civi left join z_area area on civi.area_id = area.id where is_done = 'Y' group by area.id) nums  union all
+        select count(id) num from z_touch_operation_engineering where del_flag = 0 and is_done = 'Y' and #{time} >= date_format(create_time, '%Y-%m-%d') union all
+        select count(id) num from z_engineering_pipe_jacking where del_flag = 0 and is_done = 'Y' and #{time} >= date_format(create_time, '%Y-%m-%d')) a
+    </select>
+    <select id="getProjectStatus" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_projectStatus where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_projectStatus
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setCountEngineering">
+        delete from z_bigscreen_count_engineering where time = #{time};
+        insert into z_bigscreen_count_engineering (time, civi, gy, industry, touch, infrastructure, pipe)
+        values (#{time}, #{civi}, #{gy}, #{industry}, #{touch}, #{infrastructure}, #{pipe})
+    </insert>
+    <select id="civiNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_civil eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="gyNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_gy eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="industryNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_industry eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="touchNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_touch_operation_engineering eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="infrastructureNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_infrastructure eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="pipeNumEng" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_pipe_jacking eng on eng.id = node.civli_id where info.del_flag = 0 and date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="getCountEngineering" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_count_engineering where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_count_engineering
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setCountPerson">
+        delete from z_bigscreen_count_person where time = #{time};
+        insert into z_bigscreen_count_person (time, civi, gy, industry, touch, infrastructure, pipe)
+        values (#{time}, #{civi}, #{gy}, #{industry}, #{touch}, #{infrastructure}, #{pipe})
+    </insert>
+    <select id="civiNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 2
+    </select>
+    <select id="gyNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 1789820274650685442
+    </select>
+    <select id="industryNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 1789820008241078273
+    </select>
+    <select id="touchNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 1789820484432994306
+    </select>
+    <select id="infrastructureNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 1789820574853799937
+    </select>
+    <select id="pipeNumPer" resultType="java.lang.Long">
+        select count(role_id) from (select user_id from sys_user where date_format(login_date, '%Y-%m-%d') = #{time}) user left join sys_user_role role on user.user_id = role.user_id
+        where role.role_id = 1789820391520772097
+    </select>
+    <select id="getCountPerson" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_count_person where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_count_person
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setConstructionMap">
+        delete from z_bigscreen_construction_map where time = #{time};
+        insert into z_bigscreen_construction_map (time, civi, gy, industry, touch, infrastructure, pipe)
+        values (#{time}, #{civi}, #{gy}, #{industry}, #{touch}, #{infrastructure}, #{pipe})
+    </insert>
+    <select id="getConstructionMap" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_construction_map where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_construction_map
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setConstructionNew">
+        delete from z_bigscreen_construction_new where time = #{time};
+        insert into z_bigscreen_construction_new (time, json)
+        values (#{time}, #{json})
+    </insert>
+    <select id="civiNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+         left join z_engineering_civil civi on dict.dict_value = civi.district
+         left join ${node} node on node.civli_id = civi.id
+         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="gyNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+         left join z_engineering_civil civi on dict.dict_value = civi.district
+         left join ${node} node on node.civli_id = civi.id
+         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="industryNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+                                                                         left join z_engineering_civil civi on dict.dict_value = civi.district
+                                                                         left join ${node} node on node.civli_id = civi.id
+                                                                         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="touchNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+                                                                         left join z_engineering_civil civi on dict.dict_value = civi.district
+                                                                         left join ${node} node on node.civli_id = civi.id
+                                                                         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="infrastructureNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+                                                                         left join z_engineering_civil civi on dict.dict_value = civi.district
+                                                                         left join ${node} node on node.civli_id = civi.id
+                                                                         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="pipeNumNew" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+                                                                         left join z_engineering_civil civi on dict.dict_value = civi.district
+                                                                         left join ${node} node on node.civli_id = civi.id
+                                                                         left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'new_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="getConstructionNew" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_construction_new where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_construction_new
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+
+    <insert id="setConstructionOld">
+        delete from z_bigscreen_construction_old where time = #{time};
+        insert into z_bigscreen_construction_old (time, json)
+        values (#{time}, #{json})
+    </insert>
+    <select id="civiNumOld" resultType="java.util.Map">
+        select dict_value `key`, count(dict.dict_value) `value` from sys_dict_data dict
+          left join z_engineering_civil civi on dict.dict_value = civi.district
+          left join ${node} node on node.civli_id = civi.id
+          left join  ${info} info on info.eng_info_id = node.id
+        where dict_type = 'district' and info.del_flag = 0 and civi.engin_type = 'old_renovation' and date_format(info.create_time, '%Y-%m-%d') = #{time}
+        group by dict.dict_value
+    </select>
+    <select id="gyNumOld" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_gy eng on eng.id = node.civli_id where date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="industryNumOld" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_industry eng on eng.id = node.civli_id where date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="touchNumOld" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_touch_operation_engineering eng on eng.id = node.civli_id where date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="infrastructureNumOld" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_infrastructure eng on eng.id = node.civli_id where date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="pipeNumOld" resultType="java.lang.Long">
+        select count(eng.id) from ${info} info left join ${node} node on info.eng_info_id = node.id left join z_engineering_pipe_jacking eng on eng.id = node.civli_id where date_format(info.create_time, '%Y-%m-%d') = #{time}
+    </select>
+    <select id="getConstructionOld" resultType="java.util.LinkedHashMap">
+        <if test="time != null and time != ''">
+            select * from z_bigscreen_construction_old where time = #{time}
+        </if>
+        <if test="time == null or time == ''">
+            select * from z_bigscreen_construction_old
+            <where>
+                <if test="beginTime == null or beginTime == ''">
+                    time >= #{beginTime}
+                </if>
+                <if test="endTime == null or endTime == ''">
+                    #{endTime} >= time
+                </if>
+            </where>
+        </if>
+    </select>
+</mapper>