Pārlūkot izejas kodu

百分比精度调整
碰口作业导出

wangzhe 10 mēneši atpakaļ
vecāks
revīzija
fddd695bcd

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

@@ -32,6 +32,9 @@ public class ZTouchOperationEngineeringVo extends BaseEntity implements Serializ
 //    @ExcelProperty(value = "")
     private Long id;
 
+    @ExcelProperty(value = "序号")
+    private int rowNumber;
+
     /**
      * 工程名称
      */
@@ -51,6 +54,20 @@ public class ZTouchOperationEngineeringVo extends BaseEntity implements Serializ
     @ExcelDictFormat(dictType = "tapping_operation")
     private String modeOperation;
 
+    //    @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; // 完工百分比
+
     /**
      * 备注
      */

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

@@ -35,6 +35,7 @@ import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -208,7 +209,7 @@ public class ZEngineeringGYServiceImpl implements IZEngineeringGYService {
             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);
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2, RoundingMode.HALF_UP);
             vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
         }
         return list;

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

@@ -38,6 +38,7 @@ import javax.annotation.Resource;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -457,7 +458,7 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
             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);
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2, RoundingMode.HALF_UP);
             vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
         }
         return list;

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

@@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -161,7 +162,7 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
             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);
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2, RoundingMode.HALF_UP);
             vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
         }
         return list;

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

@@ -88,7 +88,7 @@ public class ZEngineeringWasteMaterialServiceImpl implements IZEngineeringWasteM
             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);
+            BigDecimal percentage = new BigDecimal(donePercent).setScale(2, RoundingMode.HALF_UP);
             zEngineeringGYVo.setDonePercent(percentage + "%");// 完工百分比 donePercent
             map.put("enginClassification", zEngineeringGYVo.getEnginClassification());
             map.put("percentage", zEngineeringGYVo.getDonePercent());

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

@@ -12,6 +12,7 @@ import com.ruoyi.zdsz.domain.bo.ZEngineeringIndustryBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringCivilVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringIndustryVo;
+import com.ruoyi.zdsz.domain.vo.ZEngineeringPipeJackingVo;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,9 @@ import com.ruoyi.zdsz.mapper.ZTouchOperationEngineeringMapper;
 import com.ruoyi.zdsz.service.IZTouchOperationEngineeringService;
 import org.springframework.util.ObjectUtils;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -39,6 +43,8 @@ import java.util.stream.Collectors;
 @Service
 public class ZTouchOperationEngineeringServiceImpl implements IZTouchOperationEngineeringService {
 
+    @Autowired
+    private IZEngineeringNodeService nodeService;
     private final ZTouchOperationEngineeringMapper baseMapper;
 
     @Override
@@ -83,7 +89,59 @@ public class ZTouchOperationEngineeringServiceImpl implements IZTouchOperationEn
     @Override
     public List<ZTouchOperationEngineeringVo> queryList(ZTouchOperationEngineeringBo bo) {
         LambdaQueryWrapper<ZTouchOperationEngineering> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        return doList(baseMapper.selectVoList(lqw));
+    }
+
+    private List<ZTouchOperationEngineeringVo> doList(List<ZTouchOperationEngineeringVo> list) {
+        Map<Long, Object> reviewList = nodeService.ReViewPKList(list);
+        for (int i = 0; i < list.size(); i++) {
+            ZTouchOperationEngineeringVo 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, RoundingMode.HALF_UP);
+            vo.setDonePercent(percentage + "%");// 完工百分比 donePercent
+        }
+        return list;
     }
 
     private LambdaQueryWrapper<ZTouchOperationEngineering> buildQueryWrapper(ZTouchOperationEngineeringBo bo) {