Переглянути джерело

市政工程导出时间百分比
顶管工程导出百分比
App工业工程统计

wangzhe 10 місяців тому
батько
коміт
5a5639fd73

+ 2 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringWasteMaterialController.java

@@ -38,7 +38,8 @@ public class ZEngineeringWasteMaterialController extends BaseController {
     public R<ZEngineeringWasteMaterialVo> querys(@NotNull(message = "主键不能为空") @PathVariable String id, @NotNull(message = "类型不能为空") @PathVariable String type) {
         switch (type){
             case "engineeringIndustry":{ // 工业工程
-                return R.ok(izEngineeringWasteMaterialService.queryEngineeringIndustry(id));
+//                return R.ok(izEngineeringWasteMaterialService.queryEngineeringIndustry(id));
+                return R.ok(izEngineeringWasteMaterialService.queryEngineeringIndustryByName(id));
             }
             case "engineeringMunicipal":{ // 市政工程
                 return R.ok(izEngineeringWasteMaterialService.queryEngineeringMunicipal(id));

+ 27 - 10
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringIndustryVo.java

@@ -13,6 +13,7 @@ import org.jetbrains.annotations.Contract;
 
 import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -37,6 +38,9 @@ public class ZEngineeringIndustryVo extends BaseEntity {
      */
     private String remark;
 
+    @ExcelProperty(value = "序号")
+    private int rowNumber;
+
     /**
      * 工程名称
      */
@@ -46,13 +50,13 @@ public class ZEngineeringIndustryVo extends BaseEntity {
     /**
      * 工程分类
      */
-    @ExcelProperty(value = "工程分类")
+//    @ExcelProperty(value = "工程分类")
     private String enginClassification;
 
     /**
      * 工程类型
      */
-    @ExcelProperty(value = "工程类型")
+//    @ExcelProperty(value = "工程类型")
     private String enginType;
 
     /**
@@ -64,49 +68,49 @@ public class ZEngineeringIndustryVo extends BaseEntity {
     /**
      * 项目负责人
      */
-    @ExcelProperty(value = "项目负责人")
+//    @ExcelProperty(value = "项目负责人")
     private String projectHead;
 
     /**
      * 现场负责人
      */
-    @ExcelProperty(value = "现场负责人")
+//    @ExcelProperty(value = "现场负责人")
     private String sceneHead;
 
     /**
      * 设计单位
      */
-    @ExcelProperty(value = "设计单位")
+//    @ExcelProperty(value = "设计单位")
     private String designUnit;
 
     /**
      * 设计负责人
      */
-    @ExcelProperty(value = "设计负责人")
+//    @ExcelProperty(value = "设计负责人")
     private String designHead;
 
     /**
      * 设计联系电话
      */
-    @ExcelProperty(value = "设计联系电话")
+//    @ExcelProperty(value = "设计联系电话")
     private String designPhone;
 
     /**
      * 监理单位
      */
-    @ExcelProperty(value = "监理单位")
+//    @ExcelProperty(value = "监理单位")
     private String supervisionUnit;
 
     /**
      * 监理负责人
      */
-    @ExcelProperty(value = "监理负责人")
+//    @ExcelProperty(value = "监理负责人")
     private String supervisionHead;
 
     /**
      * 监理联系电话
      */
-    @ExcelProperty(value = "监理联系电话")
+//    @ExcelProperty(value = "监理联系电话")
     private String supervisionPhone;
 
     /**
@@ -143,4 +147,17 @@ public class ZEngineeringIndustryVo extends BaseEntity {
     private Double gcPreset;
     private Double pesj=0.0;
     private Double gsj=0.0;
+    @ExcelProperty(value = "派发时间")
+    private String createTimeStr; // 创建时间 派发时间
+    @ExcelProperty(value = "进场时间")
+    private String startTimeStr; // 开工时间 进场时间
+    private Date startTime;
+    @ExcelProperty(value = "竣工时间")
+    private String beCompletedTimeStr; // 竣工时间
+    private Date beCompletedTime; // 竣工时间
+    @ExcelProperty(value = "通气时间")
+    private String airTimeStr; // 通气时间
+    //    private Date airTime; // 通气时间
+    @ExcelProperty(value = "完工百分比")
+    private String donePercent; // 完工百分比
 }

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

@@ -37,6 +37,9 @@ public class ZEngineeringPipeJackingVo extends BaseEntity implements Serializabl
 //    @ExcelProperty(value = "工程id")
     private String enginId;
 
+    @ExcelProperty(value = "序号")
+    private int rowNumber;
+
     @ExcelProperty(value = "工程名称")
     private String enginName;
 
@@ -86,6 +89,19 @@ public class ZEngineeringPipeJackingVo extends BaseEntity implements Serializabl
     private Double gcPreset;
     private Double pesj=0.0;
     private Double gsj=0.0;
+//    @ExcelProperty(value = "派发时间")
+//    private String createTimeStr; // 创建时间 派发时间
+//    @ExcelProperty(value = "进场时间")
+//    private String startTimeStr; // 开工时间 进场时间
+//    private Date startTime;
+//    @ExcelProperty(value = "竣工时间")
+//    private String beCompletedTimeStr; // 竣工时间
+//    private Date beCompletedTime; // 竣工时间
+//    @ExcelProperty(value = "通气时间")
+//    private String airTimeStr; // 通气时间
+//    //    private Date airTime; // 通气时间
+    @ExcelProperty(value = "完工百分比")
+    private String donePercent; // 完工百分比
 
     @JsonProperty("zEngineeringNodeBoList")
     private List<ZEngineeringNodeBo> zEngineeringNodeBoList;

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

@@ -14,6 +14,7 @@ import java.util.List;
  */
 public interface IZEngineeringWasteMaterialService {
 
+    ZEngineeringWasteMaterialVo queryEngineeringIndustryByName(String name);
     ZEngineeringWasteMaterialVo queryEngineeringIndustry(String id);
     ZEngineeringWasteMaterialVo queryEngineeringMunicipal(String id);
     ZEngineeringWasteMaterialVo queryEngineeringPipeJacking(String id);

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

@@ -165,7 +165,7 @@ public class ZEngineeringGYServiceImpl implements IZEngineeringGYService {
         LambdaQueryWrapper<ZEngineeringGY> lqw = buildQueryWrapper(bo);
         return doList(baseMapper.selectVoList(lqw));
     }
-    public List<ZEngineeringGYVo> doList(List<ZEngineeringGYVo> list) {
+    private List<ZEngineeringGYVo> doList(List<ZEngineeringGYVo> list) {
         Map<String, Object> reviewList = nodeService.ReViewGYList(list);
         for (int i = 0; i < list.size(); i++) {
             ZEngineeringGYVo vo = list.get(i);

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

@@ -37,6 +37,7 @@ import org.springframework.util.ObjectUtils;
 import javax.annotation.Resource;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -407,7 +408,59 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
     @Override
     public List<ZEngineeringIndustryVo> queryList(ZEngineeringIndustryBo bo) {
         LambdaQueryWrapper<ZEngineeringIndustry> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        return doList(baseMapper.selectVoList(lqw));
+    }
+
+    private List<ZEngineeringIndustryVo> doList(List<ZEngineeringIndustryVo> list) {
+        Map<String, Object> reviewList = nodeService.ReViewSZList(list);
+        for (int i = 0; i < list.size(); i++) {
+            ZEngineeringIndustryVo vo = list.get(i);
+//            vo.setEnginName(vo.getEnginName() + "-" + vo.getEnginClassification());
+            vo.setEnginName(vo.getEnginName() + "-" + vo.getEnginType());
+            vo.setNodeReViewStateList(reviewList.get(vo.getId()));
+            vo.setRowNumber(i+1); // 序号 rowNumber
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");
+            vo.setCreateTimeStr(simpleDateFormat.format(vo.getCreateTime())); // 派发时间 createtime
+//            String state = "";
+//            String end = "";
+//            if("室内管线".equals(vo.getEnginClassification())){
+//                state = "进场";
+//                end = "通气";
+//            } else if ("庭院".equals(vo.getEnginClassification())) {
+//                state = "进场";
+//                end = "通气";
+//            } else if ("架空管线".equals(vo.getEnginClassification())) {
+//                state = "除锈刷油";
+//                end = "全貌照片";
+////            } else if ("".equals(item.getEnginClassification())) {
+////                state = "";
+////                end = "";
+//            }
+            String start = "";
+            String end = "";
+            ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+            zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
+            zEngineeringNodeBo.setCivliId(vo.getId());
+            zEngineeringNodeBo.setType(start);
+            List<ZEngineeringNodeBo> zEngineeringNodeBos = nodeService.queryListDetails(zEngineeringNodeBo);
+            vo.setStartTime(zEngineeringNodeBos!=null && zEngineeringNodeBos.size()>0 ? zEngineeringNodeBos.get(0).getUpdateTime():null);
+            vo.setStartTimeStr(vo.getStartTime() == null ? null : simpleDateFormat.format(vo.getStartTime())); // 进场时间 startTime
+            ZEngineeringNodeBo zEngineeringNodeBoEnd = new ZEngineeringNodeBo();
+            zEngineeringNodeBoEnd.setCreateTime(vo.getCreateTime());
+            zEngineeringNodeBoEnd.setCivliId(vo.getId());
+            zEngineeringNodeBoEnd.setType(end);
+            List<ZEngineeringNodeBo> zEngineeringNodeBosEnd = nodeService.queryListDetails(zEngineeringNodeBoEnd);
+            vo.setBeCompletedTime(zEngineeringNodeBosEnd!=null && zEngineeringNodeBosEnd.size()>0 ? zEngineeringNodeBosEnd.get(0).getUpdateTime():null);
+            vo.setBeCompletedTimeStr(vo.getBeCompletedTime() == null ? null : simpleDateFormat.format(vo.getBeCompletedTime())); // 竣工时间 beCompletedTime
+            vo.setAirTimeStr(vo.getBeCompletedTimeStr()); // 通气时间 airTime
+            List<Map> nodeReViewStateList = (List)vo.getNodeReViewStateList();
+            int size = nodeReViewStateList.size();
+            long done = nodeReViewStateList.stream().filter(item -> item.get("state").equals("1")).count();
+            Double donePercent = done * 100.0 / size;
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2);
+            vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
+        }
+        return list;
     }
 
     private LambdaQueryWrapper<ZEngineeringIndustry> buildQueryWrapper(ZEngineeringIndustryBo bo) {

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

@@ -26,6 +26,8 @@ import com.ruoyi.zdsz.service.IZEngineeringPipeJackingService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -110,7 +112,59 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
     @Override
     public List<ZEngineeringPipeJackingVo> queryList(ZEngineeringPipeJackingBo bo) {
         LambdaQueryWrapper<ZEngineeringPipeJacking> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        return doList(baseMapper.selectVoList(lqw));
+    }
+
+    private List<ZEngineeringPipeJackingVo> doList(List<ZEngineeringPipeJackingVo> list) {
+        Map<String, Object> reviewList = nodeService.ReViewPipeJackingList(list);
+        for (int i = 0; i < list.size(); i++) {
+            ZEngineeringPipeJackingVo vo = list.get(i);
+//            vo.setEnginName(vo.getEnginName() + "-" + vo.getEnginClassification());
+//            vo.setEnginName(vo.getEnginName() + "-" + vo.getEnginType());
+            vo.setNodeReViewStateList(reviewList.get(vo.getId()));
+            vo.setRowNumber(i+1); // 序号 rowNumber
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");
+//            vo.setCreateTimeStr(simpleDateFormat.format(vo.getCreateTime())); // 派发时间 createtime
+//            String state = "";
+//            String end = "";
+//            if("室内管线".equals(vo.getEnginClassification())){
+//                state = "进场";
+//                end = "通气";
+//            } else if ("庭院".equals(vo.getEnginClassification())) {
+//                state = "进场";
+//                end = "通气";
+//            } else if ("架空管线".equals(vo.getEnginClassification())) {
+//                state = "除锈刷油";
+//                end = "全貌照片";
+////            } else if ("".equals(item.getEnginClassification())) {
+////                state = "";
+////                end = "";
+//            }
+//            String start = "";
+//            String end = "";
+//            ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+//            zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
+//            zEngineeringNodeBo.setCivliId(vo.getId());
+//            zEngineeringNodeBo.setType(start);
+//            List<ZEngineeringNodeBo> zEngineeringNodeBos = nodeService.queryListDetails(zEngineeringNodeBo);
+////            vo.setStartTime(zEngineeringNodeBos!=null && zEngineeringNodeBos.size()>0 ? zEngineeringNodeBos.get(0).getUpdateTime():null);
+////            vo.setStartTimeStr(vo.getStartTime() == null ? null : simpleDateFormat.format(vo.getStartTime())); // 进场时间 startTime
+//            ZEngineeringNodeBo zEngineeringNodeBoEnd = new ZEngineeringNodeBo();
+//            zEngineeringNodeBoEnd.setCreateTime(vo.getCreateTime());
+//            zEngineeringNodeBoEnd.setCivliId(vo.getId());
+//            zEngineeringNodeBoEnd.setType(end);
+//            List<ZEngineeringNodeBo> zEngineeringNodeBosEnd = nodeService.queryListDetails(zEngineeringNodeBoEnd);
+//            vo.setBeCompletedTime(zEngineeringNodeBosEnd!=null && zEngineeringNodeBosEnd.size()>0 ? zEngineeringNodeBosEnd.get(0).getUpdateTime():null);
+//            vo.setBeCompletedTimeStr(vo.getBeCompletedTime() == null ? null : simpleDateFormat.format(vo.getBeCompletedTime())); // 竣工时间 beCompletedTime
+//            vo.setAirTimeStr(vo.getBeCompletedTimeStr()); // 通气时间 airTime
+            List<Map> nodeReViewStateList = (List)vo.getNodeReViewStateList();
+            int size = nodeReViewStateList.size();
+            long done = nodeReViewStateList.stream().filter(item -> item.get("state").equals("1")).count();
+            Double donePercent = done * 100.0 / size;
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2);
+            vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
+        }
+        return list;
     }
 
     private LambdaQueryWrapper<ZEngineeringPipeJacking> buildQueryWrapper(ZEngineeringPipeJackingBo bo) {

+ 27 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringWasteMaterialServiceImpl.java

@@ -42,6 +42,8 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
     @Resource
     private final ZEngineeringGYMapper gyMapper;
     @Resource
+    private IZEngineeringNodeService nodeService;
+    @Resource
     private final ZEngineeringIndustryMapper baseMapper;
     @Resource
     private final ZEngineeringPipeJackingMapper pipeJackingMapper;
@@ -71,6 +73,31 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
         return new ZEngineeringWasteMaterialVo();
     }
     @Override
+    public ZEngineeringWasteMaterialVo queryEngineeringIndustryByName(String name) {
+        ZEngineeringWasteMaterialVo zEngineeringWasteMaterialVo = new ZEngineeringWasteMaterialVo();
+        LambdaQueryWrapper<ZEngineeringGY> lqw = Wrappers.lambdaQuery();
+        lqw.orderByDesc(ZEngineeringGY::getCreateTime);
+        lqw.eq(StringUtils.isNotBlank(name), ZEngineeringGY::getEnginName, name);
+        List<ZEngineeringGYVo> zEngineeringGYVoList = gyMapper.selectVoList(lqw);
+        Map<String, Object> reviewList = nodeService.ReViewGYList(zEngineeringGYVoList);
+        List nodeCheckList = new ArrayList();
+        for (ZEngineeringGYVo zEngineeringGYVo : zEngineeringGYVoList) {
+            zEngineeringGYVo.setNodeReViewStateList(reviewList.get(zEngineeringGYVo.getId()));
+            Map map = new HashMap();
+            List<Map> nodeReViewStateList = (List)zEngineeringGYVo.getNodeReViewStateList();
+            int size = nodeReViewStateList.size();
+            long done = nodeReViewStateList.stream().filter(item -> item.get("state").equals("1")).count();
+            Double donePercent = done * 100.0 / size;
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2);
+            zEngineeringGYVo.setDonePercent(percentage + "%");// 完工百分比 donePercent
+            map.put("enginClassification", zEngineeringGYVo.getEnginClassification());
+            map.put("percentage", zEngineeringGYVo.getDonePercent());
+            nodeCheckList.add(map);
+        }
+        zEngineeringWasteMaterialVo.setNodeCheck(nodeCheckList);
+        return zEngineeringWasteMaterialVo;
+    }
+    @Override
     public ZEngineeringWasteMaterialVo queryEngineeringIndustry(String id) {
         ZEngineeringGYVo zEngineeringGYVo = gyMapper.selectVoById(id);
         ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();