Browse Source

巡检到位调整

pra 3 years ago
parent
commit
6528187755

+ 12 - 12
dyrqSchedule/src/main/java/com/tofly/dyrqSchedule/handler/PlanPointHandle.java

@@ -84,18 +84,18 @@ public class PlanPointHandle {
                 List<PlanPointTemp> stateList = planPointTempService.list(Wrappers.<PlanPointTemp>lambdaQuery().eq(PlanPointTemp::getChildPlanId,childPlanId)
                         .eq(PlanPointTemp::getState,"0"));
                 List<PlanPointTemp> pointTemps = new ArrayList<>();
-                List<PlanPathTemp> planPathTemps = new ArrayList<>();
-                for (PlanPointTemp pointTemp:stateList){
-                    Long pointTempId =  pointTemp.getId();
-                    int isOverNum = planPathTempService.count(Wrappers.<PlanPathTemp>lambdaQuery().eq(PlanPathTemp::getTempId,pointTempId).eq(PlanPathTemp::getIsover,"1"));
-                    int allNum = planPathTempService.count(Wrappers.<PlanPathTemp>lambdaQuery().eq(PlanPathTemp::getTempId,pointTempId));
-                    double pathOver = allNum == 0 ? 0 : new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
-                    PlanPointTemp one = new PlanPointTemp();
-                    one.setId(pointTempId);
-                    one.setPathIsover(new BigDecimal(pathOver));
-                    pointTemps.add(one);
-//                    planPointTempService.updateById(one);
-                }
+//                List<PlanPathTemp> planPathTemps = new ArrayList<>();
+//                for (PlanPointTemp pointTemp:stateList){
+//                    Long pointTempId =  pointTemp.getId();
+//                    int isOverNum = planPathTempService.count(Wrappers.<PlanPathTemp>lambdaQuery().eq(PlanPathTemp::getTempId,pointTempId).eq(PlanPathTemp::getIsover,"1"));
+//                    int allNum = planPathTempService.count(Wrappers.<PlanPathTemp>lambdaQuery().eq(PlanPathTemp::getTempId,pointTempId));
+//                    double pathOver = allNum == 0 ? 0 : new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+//                    PlanPointTemp one = new PlanPointTemp();
+//                    one.setId(pointTempId);
+//                    one.setPathIsover(new BigDecimal(pathOver));
+//                    pointTemps.add(one);
+////                    planPointTempService.updateById(one);
+//                }
                 planPointTempService.updateBatchById(pointTemps);
 
                 //更新录入状态

+ 1 - 1
src/main/java/com/tofly/dyrq/custom/service/impl/CustomMaintenanceServiceImpl.java

@@ -345,7 +345,7 @@ public class CustomMaintenanceServiceImpl implements CustomMaintenanceService {
             gisUrl = records.get(0).get("cval").toString() + "/" + layerId + "/query";
         }
 
-        //gis查询
+        //Gis查询
         ExcelParam excelParam = new ExcelParam();
         excelParam.setGeometry("1");
         excelParam.setObjectids(pointId.toString());

+ 88 - 14
src/main/java/com/tofly/dyrq/custom/service/impl/CustomPointServiceImpl.java

@@ -68,7 +68,16 @@ public class CustomPointServiceImpl implements CustomPointService {
                             .set(TfPlanPathTemp::getIsover, "1")
                             .set(TfPlanPathTemp::getOverDate, u.getCheckTime())
                             .set(TfPlanPathTemp::getGpsSpeed, u.getGpsSpeed())
-                            .eq(TfPlanPathTemp::getId, u.getTempId()));     
+                            .eq(TfPlanPathTemp::getId, u.getTempId()));
+                    //更新完成点所属线的完成率
+                    Long pointTempId =planPathTempService.getById(u.getTempId()).getTempId();
+                    int isOverNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId).eq(TfPlanPathTemp::getIsover, "1"));
+                    int allNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId));
+                    double pathOver = new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+                    PlanPointTemp one = new PlanPointTemp();
+                    one.setId(pointTempId);
+                    one.setPathIsover(new BigDecimal(pathOver));
+                    planPointTempService.updateById(one);
                 }
             }
             childIds.add(u.getPlanChildId());
@@ -145,20 +154,20 @@ public class CustomPointServiceImpl implements CustomPointService {
                 planChildService.updateById(planChild);
 
                 //更新线到位比例
-                List<PlanPointTemp> stateList = planPointTempService.list(Wrappers.<PlanPointTemp>lambdaQuery().eq(PlanPointTemp::getChildPlanId, childPlanId)
-                        .eq(PlanPointTemp::getState, "0"));
+//                List<PlanPointTemp> stateList = planPointTempService.list(Wrappers.<PlanPointTemp>lambdaQuery().eq(PlanPointTemp::getChildPlanId, childPlanId)
+//                        .eq(PlanPointTemp::getState, "0"));
                 List<PlanPointTemp> pointTemps = new ArrayList<>();
-                List<TfPlanPathTemp> pathTemps = new ArrayList<>();
-                for (PlanPointTemp pointTemp : stateList) {
-                    Long pointTempId = pointTemp.getId();
-                    int isOverNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId).eq(TfPlanPathTemp::getIsover, "1"));
-                    int allNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId));
-                    double pathOver = new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
-                    PlanPointTemp one = new PlanPointTemp();
-                    one.setId(pointTempId);
-                    one.setPathIsover(new BigDecimal(pathOver));
-                    planPointTempService.updateById(one);
-                }
+                //点所属的线信息更新也转移到到位接口
+//                for (PlanPointTemp pointTemp : stateList) {
+//                    Long pointTempId = pointTemp.getId();
+//                    int isOverNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId).eq(TfPlanPathTemp::getIsover, "1"));
+//                    int allNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId));
+//                    double pathOver = new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+//                    PlanPointTemp one = new PlanPointTemp();
+//                    one.setId(pointTempId);
+//                    one.setPathIsover(new BigDecimal(pathOver));
+//                    planPointTempService.updateById(one);
+//                }
 
                 //更新录入状态
                 List<Map> pathMax = customPlanMapper.getPathMaxSpeed(childPlanId);
@@ -197,4 +206,69 @@ public class CustomPointServiceImpl implements CustomPointService {
         }
     }
 
+
+    /**
+     * 更新到位点信息
+     * @param childPlanId
+     * @param temptIds
+     */
+    public void pointPlanUpdate(Long childPlanId,List<Long> temptIds) {
+        int pointTotal = 0;
+        int pointIsoverTotal = 0;
+        int isOver = 0;  //---------巡检点,巡检线isover个数,其他设备check个数
+        int total = 0; //point_temp个数
+        double percent = 0;
+        double percent1 = 0;
+        Map plan = customPlanMapper.getTodayPlan(childPlanId).get(0);
+        PlanChild planChild= planChildService.getById(childPlanId);
+
+        //查询包含巡检检查内容的类型
+        List<SysDeviceType> devices = sysDeviceTypeService.list(Wrappers.<SysDeviceType>lambdaQuery().isNotNull(SysDeviceType::getCheckContent));
+        Set<Long> checkTypes = new HashSet<>();
+        devices.stream().filter(n -> !checkTypes.add(n.getPointTypeId()))
+                .collect(Collectors.toSet());
+
+        //更新巡检线录入状态
+        if ("1".equals(plan.get("type"))) {
+            List<Map> pathTotal = customPlanMapper.getPathTotalInfo(childPlanId);
+            total = Integer.valueOf(pathTotal.get(0).get("total").toString());
+            isOver = checkTypes.contains(plan.get("deviceTypeId")) ? Integer.valueOf(pathTotal.get(0).get("checkTotal").toString()) : Integer.valueOf(pathTotal.get(0).get("isovertotal").toString());
+            pointTotal = Integer.valueOf(pathTotal.get(0).get("pointTotal").toString());
+            pointIsoverTotal = Integer.valueOf(pathTotal.get(0).get("pointIsoverTotal").toString());
+//                percent1 = pointTotal == 0 ? 0 : new BigDecimal((float) pointIsoverTotal / pointTotal).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+//                percent = pointTotal == 0 ? 0 : new BigDecimal((float) isOver / total).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+            //修改percent1 为point_temp到位情况
+            percent = pointTotal == 0 ? 0 : new BigDecimal((float) isOver / total).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+            percent1 = pointTotal == 0 ? 0 : new BigDecimal ((float) pointIsoverTotal / pointTotal).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+
+            //更新到位条数
+            PlanChild planChildUpdate = new PlanChild();
+            planChildUpdate.setId(childPlanId);
+            planChildUpdate.setPercent(percent);
+            planChildUpdate.setPercent1(percent1);
+            planChildUpdate.setTotal1(new BigDecimal(pointTotal));
+            planChildUpdate.setIsovertototal(percent * total);
+            planChildUpdate.setIsovertototal1(new BigDecimal(pointIsoverTotal));
+            planChildUpdate.setIsovertototal0(new BigDecimal(isOver));
+            planChildService.updateById(planChildUpdate);
+
+            //更新线到位比例
+            List<PlanPointTemp> stateList = planPointTempService.list(Wrappers.<PlanPointTemp>lambdaQuery().eq(PlanPointTemp::getChildPlanId, childPlanId)
+                    .eq(PlanPointTemp::getState, "0"));
+            List<PlanPointTemp> pointTemps = new ArrayList<>();
+            List<TfPlanPathTemp> pathTemps = new ArrayList<>();
+            for (PlanPointTemp pointTemp : stateList) {
+                Long pointTempId = pointTemp.getId();
+                int isOverNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId).eq(TfPlanPathTemp::getIsover, "1"));
+                int allNum = planPathTempService.count(Wrappers.<TfPlanPathTemp>lambdaQuery().eq(TfPlanPathTemp::getTempId, pointTempId));
+                double pathOver = new BigDecimal((float) isOverNum / allNum).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+                PlanPointTemp one = new PlanPointTemp();
+                one.setId(pointTempId);
+                one.setPathIsover(new BigDecimal(pathOver));
+                planPointTempService.updateById(one);
+            }
+        }
+    }
+
+
 }