Browse Source

首页,巡检调整

pra 3 years ago
parent
commit
a40750ee3e

+ 34 - 6
src/main/java/com/tofly/zmrq/custom/controller/CustomHomePageController.java

@@ -1,6 +1,7 @@
 package com.tofly.zmrq.custom.controller;
 
 import com.tofly.common.core.entity.ResultRespone;
+import com.tofly.common.oauth.exception.ToflyDeniedException;
 import com.tofly.common.oauth.util.SecurityUtils;
 import com.tofly.zmrq.custom.mapper.CustomHomePageMapper;
 import io.swagger.annotations.Api;
@@ -35,11 +36,8 @@ public class CustomHomePageController {
             @ApiImplicitParam(name = "typeId", value = "1:压力类型 2:管径3:材质 4:埋设方式 5.调压设备 6.阀门 7.燃气桩 8.监控点 9.阴极保护 10.场站", required = false, dataType = "Long")
     })
     public ResultRespone getNew(@RequestParam("companyId") Long companyId,@RequestParam("typeId") Long typeId){
-        if (companyId != null){
-            companyId = SecurityUtils.getCompanyId();
-        }
-        if (companyId != null & companyId == 0){
-            companyId =null;
+        if (companyId == null){
+            throw new ToflyDeniedException("公司ID不能为空");
         }
         return ResultRespone.success(customHomePageMapper.getByType(companyId,typeId));
     }
@@ -49,10 +47,40 @@ public class CustomHomePageController {
         return ResultRespone.success(customHomePageMapper.getTotal());
     }
 
-    @ApiOperation(value = "各公司设备数")
+    @ApiOperation(value = "各公司设备数")
     @GetMapping("/totaldevice")
     public ResultRespone getTotal2(){
         return ResultRespone.success(customHomePageMapper.getTotal2());
     }
 
+    @ApiOperation(value = "各公司各设备数")
+    @GetMapping("/devicebycompany")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyId", value = "公司ID,0为所有公司", required = false, dataType = "Long")
+    })
+    public ResultRespone getDeviceByCompany(@RequestParam("companyId") Long companyId){
+        if (companyId == null){
+            throw new ToflyDeniedException("公司ID不能为空");
+        }
+        if (companyId == 0){
+            companyId = null;
+        }
+        return ResultRespone.success(customHomePageMapper.getDeviceByCompany(companyId));
+    }
+
+    @ApiOperation(value = "各公司管径")
+    @GetMapping("/getDiameter")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyId", value = "公司ID,0为所有公司", required = false, dataType = "Long")
+    })
+    public ResultRespone getDiameter(@RequestParam("companyId") Long companyId){
+        if (companyId == null){
+            throw new ToflyDeniedException("公司ID不能为空");
+        }
+        if (companyId == 0){
+            companyId = null;
+        }
+        return ResultRespone.success(customHomePageMapper.getDiameter(companyId));
+    }
+
 }

+ 2 - 2
src/main/java/com/tofly/zmrq/custom/controller/CustomPlanController.java

@@ -80,8 +80,8 @@ public class CustomPlanController {
         if (customPlan.getPlanMode() == null) {
             throw new ToflyDeniedException("请添加PlanMode");
         }
-        if (customPlan.getUserId() == null) {
-            throw new ToflyDeniedException("请添加UserId");
+        if (customPlan.getUserIds() == null) {
+            throw new ToflyDeniedException("请添加UserIds");
         }
         if (customPlan.getDeviceTypeId() == null) {
             throw new ToflyDeniedException("请添加DeviceTypeId");

+ 2 - 0
src/main/java/com/tofly/zmrq/custom/mapper/CustomHomePageMapper.java

@@ -15,4 +15,6 @@ public interface CustomHomePageMapper {
     List<Map> getByType(@Param("companyId") Long companyId,@Param("type") Long type);
     List<Map> getTotal();
     List<Map> getTotal2();
+    List<Map> getDeviceByCompany(@Param("companyId") Long companyId);
+    List<Map> getDiameter(@Param("companyId") Long companyId);
 }

+ 123 - 104
src/main/java/com/tofly/zmrq/custom/service/impl/CustomMaintenanceServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.tofly.common.core.entity.ResultRespone;
 import com.tofly.common.core.util.Date8Util;
 import com.tofly.common.core.util.FtpUtil;
+import com.tofly.common.core.util.StringUtil;
 import com.tofly.common.mapper.ToflyCodeCommonMapper;
 import com.tofly.common.oauth.exception.ToflyDeniedException;
 import com.tofly.common.oauth.util.SecurityUtils;
@@ -31,6 +32,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
 
 @AllArgsConstructor
 @Service
@@ -47,6 +49,7 @@ public class CustomMaintenanceServiceImpl implements CustomMaintenanceService {
     private final ToflyCodeCommonMapper toflyCodeCommonMapper;
     private final BaseInfoService baseInfoService;
     private final PlanPointTempService planPointTempService;
+    private final PlanChildService planChildService;
     private final SysDeviceTypeService sysDeviceTypeService;
     private final GisAboutService gisAboutService;
     private final CustomPointService customPointService;
@@ -234,125 +237,141 @@ public class CustomMaintenanceServiceImpl implements CustomMaintenanceService {
         Long pointId = xjUpload.getPlanTempPointId();
 
         Date now = Date8Util.getCurrentDate();
-        //更新计划的点
-        planPointTempService.update(Wrappers.<PlanPointTemp>lambdaUpdate()
+        //主计划判断
+        PlanPointTemp pointTemp = planPointTempService.getOne(Wrappers.<PlanPointTemp>lambdaQuery()
                 .eq(PlanPointTemp::getChildPlanId, childPlanId)
-                .eq(PlanPointTemp::getPointId, pointId)
-                .set(PlanPointTemp::getIsover, "1")
-                .set(PlanPointTemp::getState, "1")
-                .set(PlanPointTemp::getOverDate, now)
-                .set(PlanPointTemp::getCheckState, '1')
-                .set(PlanPointTemp::getCheckType,xjUpload.getTypeId())
-                .set(PlanPointTemp::getCheckDate, now));
+                .eq(PlanPointTemp::getPointId, pointId));
+        Long planId = pointTemp.getPlanId();
+        Date startDate = planChildService.getById(childPlanId).getChildBeginDate();
 
-        //保存记录表
-        Long typeId = xjUpload.getTypeId();
-        Long recordId = null;
-        if (typeId == 1) {
-            XjLdtyx xjLdtyx = new XjLdtyx();
-            xjLdtyx.setAddress(xjUpload.getAddress());
-            xjLdtyx.setCheckDate(xjUpload.getCheckDate());
-            xjLdtyx.setChildPlanId(xjUpload.getChildPlanId());
-            xjLdtyx.setPlanTempPointId(xjUpload.getPlanTempPointId());
-            xjLdtyx.setDeviceId(xjUpload.getDeviceId());
-            xjLdtyx.setNote(xjUpload.getNote());
-            xjLdtyx.setCompanyId(xjUpload.getCompanyId());
-            xjLdtyx.setRunPressure(xjUpload.getRunPressure());
-            xjLdtyx.setTruncationPressure(xjUpload.getTruncationPressure());
-            xjLdtyx.setUserid(xjUpload.getUserid());
-            xjLdtyx.setX(xjUpload.getX());
-            xjLdtyx.setY(xjUpload.getY());
-            xjLdtyxService.save(xjLdtyx);
-            recordId = xjLdtyx.getId();
-        } else if (typeId == 2) {
-            XjTyg xjTyg = new XjTyg();
-            xjTyg.setAddress(xjUpload.getAddress());
-            xjTyg.setCheckDate(xjUpload.getCheckDate());
-            xjTyg.setChildPlanId(xjUpload.getChildPlanId());
-            xjTyg.setPlanTempPointId(xjUpload.getPlanTempPointId());
-            xjTyg.setDeviceId(xjUpload.getDeviceId());
-            xjTyg.setNote(xjUpload.getNote());
-            xjTyg.setCompanyId(xjUpload.getCompanyId());
-            xjTyg.setRunPressure(xjUpload.getRunPressure());
-            xjTyg.setDiffusePressure(xjUpload.getDiffusePressure());
-            xjTyg.setWorkPressure(xjUpload.getWorkPressure());
-            xjTyg.setUserid(xjUpload.getUserid());
-            xjTyg.setX(xjUpload.getX());
-            xjTyg.setY(xjUpload.getY());
-            xjTygService.save(xjTyg);
-            recordId = xjTyg.getId();
-        } else if (typeId == 3) {
-            XjFj xjFj = new XjFj();
-            xjFj.setAddress(xjUpload.getAddress());
-            xjFj.setCheckDate(xjUpload.getCheckDate());
-            xjFj.setChildPlanId(xjUpload.getChildPlanId());
-            xjFj.setPlanTempPointId(xjUpload.getPlanTempPointId());
-            xjFj.setDeviceId(xjUpload.getDeviceId());
-            xjFj.setNote(xjUpload.getNote());
-            xjFj.setCompanyId(xjUpload.getCompanyId());
-            xjFj.setUserid(xjUpload.getUserid());
-            xjFj.setX(xjUpload.getX());
-            xjFj.setY(xjUpload.getY());
-            xjFj.setMaterial(xjUpload.getMaterial());
-            xjFj.setSpecification(xjUpload.getSpecification());
-            xjFjService.save(xjFj);
-            recordId = xjFj.getId();
-        }
-        if (xjUpload.getContent() == null || xjUpload.getContent().size() == 0) {
-            throw new ToflyDeniedException("检查内容不能为空");
-        }
-        //保存记录关联的保养内容
-        Long finalRecordId = recordId;
-        xjUpload.getContent().stream().forEach(content -> {
-            XjCon xjCon = new XjCon();
-            xjCon.setRecordId(finalRecordId);
-            xjCon.setMenuId(content);
-            xjCon.setTypeId(typeId);
-            xjConService.save(xjCon);
-        });
+        List<Long> childIdList = planChildService.list(Wrappers.<PlanChild>lambdaQuery().eq(PlanChild::getMainPlanId,planId).eq(PlanChild::getChildBeginDate,startDate))
+                .stream().map(PlanChild::getId).collect(Collectors.toList());
 
+        String childPlanIds = StringUtil.join(childIdList, ",");
 
-        //遍历请求中key包含photo的所有文件,包括photo1,photo2中的多个文件
-        MultiValueMap<String, MultipartFile> multiFileMap = ((MultipartHttpServletRequest) request).getMultiFileMap();
-        multiFileMap.forEach((k, v) -> {
-            //保存照片
-            v.forEach(file -> {
-                XjFile xjFile = new XjFile();
-                xjFile.setRecordId(finalRecordId);
-                xjFile.setXjType(typeId);
-                String fileName = file.getOriginalFilename();
-                String filePath = filePathBean.getXj() + IdWorker.getIdStr() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
-                boolean b = FtpUtil.uploadFile2Ftp(file, filePath);
-                xjFile.setFilePath(filePath);
-                xjFile.setFileName(fileName);
-                //移动端照片
-                if (k.contains("photo")) {
-                    xjFile.setFileType("0");
-                } else if (k.contains("audio")) {
-                    xjFile.setFileType("1");
-                } else {
-                    if (fileName.toLowerCase().endsWith(".bmp")
-                            || fileName.toLowerCase().endsWith(".jpg")
-                            || fileName.toLowerCase().endsWith(".jpeg")
-                            || fileName.toLowerCase().endsWith(".gif")
-                            || fileName.toLowerCase().endsWith(".png")) {
+        for (Long childId : childIdList) {
+
+
+            //更新计划的点,及多人任务
+            planPointTempService.update(Wrappers.<PlanPointTemp>lambdaUpdate()
+                    .eq(PlanPointTemp::getChildPlanId, childId)
+                    .eq(PlanPointTemp::getPointId, pointId)
+                    .set(PlanPointTemp::getIsover, "1")
+                    .set(PlanPointTemp::getState, "1")
+                    .set(PlanPointTemp::getOverDate, now)
+                    .set(PlanPointTemp::getCheckState, '1')
+                    .set(PlanPointTemp::getCheckType, xjUpload.getTypeId())
+                    .set(PlanPointTemp::getCheckDate, now));
+
+            //保存记录表
+            Long typeId = xjUpload.getTypeId();
+            Long recordId = null;
+            if (typeId == 1) {
+                XjLdtyx xjLdtyx = new XjLdtyx();
+                xjLdtyx.setAddress(xjUpload.getAddress());
+                xjLdtyx.setCheckDate(xjUpload.getCheckDate());
+                xjLdtyx.setChildPlanId(childId);
+                xjLdtyx.setPlanTempPointId(xjUpload.getPlanTempPointId());
+                xjLdtyx.setDeviceId(xjUpload.getDeviceId());
+                xjLdtyx.setNote(xjUpload.getNote());
+                xjLdtyx.setCompanyId(xjUpload.getCompanyId());
+                xjLdtyx.setRunPressure(xjUpload.getRunPressure());
+                xjLdtyx.setTruncationPressure(xjUpload.getTruncationPressure());
+                xjLdtyx.setUserid(xjUpload.getUserid());
+                xjLdtyx.setX(xjUpload.getX());
+                xjLdtyx.setY(xjUpload.getY());
+                xjLdtyxService.save(xjLdtyx);
+                recordId = xjLdtyx.getId();
+            } else if (typeId == 2) {
+                XjTyg xjTyg = new XjTyg();
+                xjTyg.setAddress(xjUpload.getAddress());
+                xjTyg.setCheckDate(xjUpload.getCheckDate());
+                xjTyg.setChildPlanId(childId);
+                xjTyg.setPlanTempPointId(xjUpload.getPlanTempPointId());
+                xjTyg.setDeviceId(xjUpload.getDeviceId());
+                xjTyg.setNote(xjUpload.getNote());
+                xjTyg.setCompanyId(xjUpload.getCompanyId());
+                xjTyg.setRunPressure(xjUpload.getRunPressure());
+                xjTyg.setDiffusePressure(xjUpload.getDiffusePressure());
+                xjTyg.setWorkPressure(xjUpload.getWorkPressure());
+                xjTyg.setUserid(xjUpload.getUserid());
+                xjTyg.setX(xjUpload.getX());
+                xjTyg.setY(xjUpload.getY());
+                xjTygService.save(xjTyg);
+                recordId = xjTyg.getId();
+            } else if (typeId == 3) {
+                XjFj xjFj = new XjFj();
+                xjFj.setAddress(xjUpload.getAddress());
+                xjFj.setCheckDate(xjUpload.getCheckDate());
+                xjFj.setChildPlanId(childId);
+                xjFj.setPlanTempPointId(xjUpload.getPlanTempPointId());
+                xjFj.setDeviceId(xjUpload.getDeviceId());
+                xjFj.setNote(xjUpload.getNote());
+                xjFj.setCompanyId(xjUpload.getCompanyId());
+                xjFj.setUserid(xjUpload.getUserid());
+                xjFj.setX(xjUpload.getX());
+                xjFj.setY(xjUpload.getY());
+                xjFj.setMaterial(xjUpload.getMaterial());
+                xjFj.setSpecification(xjUpload.getSpecification());
+                xjFjService.save(xjFj);
+                recordId = xjFj.getId();
+            }
+            if (xjUpload.getContent() == null || xjUpload.getContent().size() == 0) {
+                throw new ToflyDeniedException("检查内容不能为空");
+            }
+            //保存记录关联的保养内容
+            Long finalRecordId = recordId;
+            xjUpload.getContent().stream().forEach(content -> {
+                XjCon xjCon = new XjCon();
+                xjCon.setRecordId(finalRecordId);
+                xjCon.setMenuId(content);
+                xjCon.setTypeId(typeId);
+                xjConService.save(xjCon);
+            });
+
+
+            //遍历请求中key包含photo的所有文件,包括photo1,photo2中的多个文件
+            MultiValueMap<String, MultipartFile> multiFileMap = ((MultipartHttpServletRequest) request).getMultiFileMap();
+            multiFileMap.forEach((k, v) -> {
+                //保存照片
+                v.forEach(file -> {
+                    XjFile xjFile = new XjFile();
+                    xjFile.setRecordId(finalRecordId);
+                    xjFile.setXjType(typeId);
+                    String fileName = file.getOriginalFilename();
+                    String filePath = filePathBean.getXj() + IdWorker.getIdStr() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+                    boolean b = FtpUtil.uploadFile2Ftp(file, filePath);
+                    xjFile.setFilePath(filePath);
+                    xjFile.setFileName(fileName);
+                    //移动端照片
+                    if (k.contains("photo")) {
                         xjFile.setFileType("0");
-                    } else if (fileName.toLowerCase().endsWith(".amr")) {
+                    } else if (k.contains("audio")) {
                         xjFile.setFileType("1");
                     } else {
-                        xjFile.setFileType("2");
+                        if (fileName.toLowerCase().endsWith(".bmp")
+                                || fileName.toLowerCase().endsWith(".jpg")
+                                || fileName.toLowerCase().endsWith(".jpeg")
+                                || fileName.toLowerCase().endsWith(".gif")
+                                || fileName.toLowerCase().endsWith(".png")) {
+                            xjFile.setFileType("0");
+                        } else if (fileName.toLowerCase().endsWith(".amr")) {
+                            xjFile.setFileType("1");
+                        } else {
+                            xjFile.setFileType("2");
+                        }
                     }
-                }
-                xjFileService.save(xjFile);
+                    xjFileService.save(xjFile);
+                });
             });
-        });
+        }
         //更新到位比例
         //异步更新到位比例
         ExecutorService executorService = Executors.newSingleThreadExecutor();
         executorService.execute(new Runnable() {
             @Override
             public void run() {
-                customPointService.percentUpdate(childPlanId.toString());
+                customPointService.percentUpdate(childPlanIds);
             }
         });
         return true;

+ 175 - 160
src/main/java/com/tofly/zmrq/custom/service/impl/CustomPlanServiceImpl.java

@@ -145,138 +145,190 @@ public class CustomPlanServiceImpl implements CustomPlanService {
         planService.save(customPlan);
         //存巡检点和线到TF_PLAN_POINT_TEMP,TF_PLAN_PATH_TEMP存的是巡检线的各个线上的点
         // 增加所有子计划
-        int childPlanNums = 1;
-        if (customPlan.getPeriodId() != 1) {
-            PlanPeriodType planPeriodType = planPeriodTypeService.getOne(Wrappers.<PlanPeriodType>lambdaQuery().eq(PlanPeriodType::getId, customPlan.getPeriodId()));
-            IntervalDays = planPeriodType.getIntervalDays().intValue();
-            childPlanNums = (getTimeDistance(customPlan.getPlanBegindate(), customPlan.getPlanEnddate()) + 1) / IntervalDays;
-        } else {
-            IntervalDays = getTimeDistance(customPlan.getPlanBegindate(), customPlan.getPlanEnddate()) + 1;
+        List<Long> idList = new ArrayList<>();
+        if (StringUtil.isNotEmpty(customPlan.getUserIds())){
+            Arrays.asList(customPlan.getUserIds().split(",")).forEach(k -> {
+                idList.add(Long.parseLong(k));
+            });
         }
-        Date beginDate = customPlan.getPlanBegindate();
-        Calendar cal = Calendar.getInstance();
-        Date now = cal.getTime();
-        cal.setTime(beginDate);
-
-        tf_plan_point_tempId = Math.max(tf_plan_point_tempId, customPlanMapper.getPlanTempMaxId("TF_PLAN_POINT_TEMP"));
-        tf_plan_path_tempId = Math.max(tf_plan_path_tempId, customPlanMapper.getPlanTempMaxId("TF_PLAN_PATH_TEMP"));
-        List<PlanPointTemp> pointTempList = new ArrayList<>();
-        List<TfPlanPathTemp> pathTempList = new ArrayList<>();
-
-        for (int i = 1; i <= childPlanNums; i++) {
-            PlanChild planChild = new PlanChild();
-            int pointNum = 0;
-            cal.set(Calendar.HOUR_OF_DAY, 0);
-            cal.set(Calendar.MINUTE, 0);
-            cal.set(Calendar.SECOND, 0);
-            planChild.setChildBeginDate(cal.getTime());
-            cal.add(Calendar.DATE, IntervalDays - 1);
-            cal.set(Calendar.HOUR_OF_DAY, 23);
-            cal.set(Calendar.MINUTE, 59);
-            cal.set(Calendar.SECOND, 59);
-            planChild.setChildEndDate(cal.getTime());
-            planChild.setChildPlanState("1");
-            planChild.setMainPlanId(customPlan.getId());
-            planChild.setChildNum(new BigDecimal(i));
-            planChild.setPeriodId(customPlan.getPeriodId());
-            planChild.setDeviceTypeId(customPlan.getDeviceTypeId());
-            planChild.setLastTime(now);
-            planChild.setRegionId(customPlan.getRegionId());
-            planChild.setUserId(userId);
-            planChild.setPlanRate(customPlan.getPlanRate());
-            planChild.setCompanyId(customPlan.getCompanyId());
-            planChild.setDeptId(deptId);
-
-
-            //下个子计划日期加1
-            cal.add(Calendar.DATE, 1);
-
-            //存巡检点数据到临时记录表
-            //巡检点
-            if (type.equals("0")) {
-                planChild.setPointNum(Long.valueOf(geo.size()));
-                planChildService.save(planChild);
-                for (int j = 0; j < geo.size(); j++) {
-                    PlanPointTemp planPointTemp = new PlanPointTemp();
-                    planPointTemp.setPlanId(customPlan.getId());
-                    planPointTemp.setPeriodId(customPlan.getPeriodId());
-                    planPointTemp.setUserId(userId);
-                    planPointTemp.setCompanyId(companyId);
-                    planPointTemp.setIsover("0");
-                    planPointTemp.setChildPlanId(planChild.getId());
-                    planPointTemp.setRegionId(customPlan.getRegionId());
-                    planPointTemp.setDeviceTypeId(customPlan.getDeviceTypeId());
-                    if (gisUrl == null) {
-                        planPointTemp.setPointId(geo.getJSONObject(j).getLong("sid"));
-                        planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
-                        planPointTemp.setContent(geo.getJSONObject(j).getString("content"));
-                        planPointTemp.setName(geo.getJSONObject(j).getString("name"));
-                        planPointTemp.setAddress(geo.getJSONObject(j).getString("address"));
-                        planPointTemp.setCode(geo.getJSONObject(j).getString("code"));
-                        planPointTemp.setLat(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("y"));
-                        planPointTemp.setLng(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("x"));
-                        planPointTemp.setPipeLength("0");
-                    } else {
+        else{
+            idList.add(userId);
+        }
+        //根据多人生成多个计划
+        for (Long userIdNew : idList) {
+
+
+            int childPlanNums = 1;
+            if (customPlan.getPeriodId() != 1) {
+                PlanPeriodType planPeriodType = planPeriodTypeService.getOne(Wrappers.<PlanPeriodType>lambdaQuery().eq(PlanPeriodType::getId, customPlan.getPeriodId()));
+                IntervalDays = planPeriodType.getIntervalDays().intValue();
+                childPlanNums = (getTimeDistance(customPlan.getPlanBegindate(), customPlan.getPlanEnddate()) + 1) / IntervalDays;
+            } else {
+                IntervalDays = getTimeDistance(customPlan.getPlanBegindate(), customPlan.getPlanEnddate()) + 1;
+            }
+            Date beginDate = customPlan.getPlanBegindate();
+            Calendar cal = Calendar.getInstance();
+            Date now = cal.getTime();
+            cal.setTime(beginDate);
+
+            tf_plan_point_tempId = Math.max(tf_plan_point_tempId, customPlanMapper.getPlanTempMaxId("TF_PLAN_POINT_TEMP"));
+            tf_plan_path_tempId = Math.max(tf_plan_path_tempId, customPlanMapper.getPlanTempMaxId("TF_PLAN_PATH_TEMP"));
+            List<PlanPointTemp> pointTempList = new ArrayList<>();
+            List<TfPlanPathTemp> pathTempList = new ArrayList<>();
+
+            for (int i = 1; i <= childPlanNums; i++) {
+                PlanChild planChild = new PlanChild();
+                int pointNum = 0;
+                cal.set(Calendar.HOUR_OF_DAY, 0);
+                cal.set(Calendar.MINUTE, 0);
+                cal.set(Calendar.SECOND, 0);
+                planChild.setChildBeginDate(cal.getTime());
+                cal.add(Calendar.DATE, IntervalDays - 1);
+                cal.set(Calendar.HOUR_OF_DAY, 23);
+                cal.set(Calendar.MINUTE, 59);
+                cal.set(Calendar.SECOND, 59);
+                planChild.setChildEndDate(cal.getTime());
+                planChild.setChildPlanState("1");
+                planChild.setMainPlanId(customPlan.getId());
+                planChild.setChildNum(new BigDecimal(i));
+                planChild.setPeriodId(customPlan.getPeriodId());
+                planChild.setDeviceTypeId(customPlan.getDeviceTypeId());
+                planChild.setLastTime(now);
+                planChild.setRegionId(customPlan.getRegionId());
+                planChild.setUserId(userIdNew);
+                planChild.setPlanRate(customPlan.getPlanRate());
+                planChild.setCompanyId(customPlan.getCompanyId());
+                planChild.setDeptId(deptId);
+
+
+                //下个子计划日期加1
+                cal.add(Calendar.DATE, 1);
+
+                //存巡检点数据到临时记录表
+                //巡检点
+                if (type.equals("0")) {
+                    planChild.setPointNum(Long.valueOf(geo.size()));
+                    planChildService.save(planChild);
+                    for (int j = 0; j < geo.size(); j++) {
+                        PlanPointTemp planPointTemp = new PlanPointTemp();
                         planPointTemp.setPlanId(customPlan.getId());
-                        planPointTemp.setPointId(geo.getJSONObject(j).getJSONObject("attributes").getLong("OBJECTID"));
-                        planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
-                        planPointTemp.setLat(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("y"));
-                        planPointTemp.setLng(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("x"));
-                        planPointTemp.setPipeLength("0");
+                        planPointTemp.setPeriodId(customPlan.getPeriodId());
+                        planPointTemp.setUserId(userIdNew);
+                        planPointTemp.setCompanyId(companyId);
+                        planPointTemp.setIsover("0");
+                        planPointTemp.setChildPlanId(planChild.getId());
+                        planPointTemp.setRegionId(customPlan.getRegionId());
+                        planPointTemp.setDeviceTypeId(customPlan.getDeviceTypeId());
+                        if (gisUrl == null) {
+                            planPointTemp.setPointId(geo.getJSONObject(j).getLong("sid"));
+                            planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
+                            planPointTemp.setContent(geo.getJSONObject(j).getString("content"));
+                            planPointTemp.setName(geo.getJSONObject(j).getString("name"));
+                            planPointTemp.setAddress(geo.getJSONObject(j).getString("address"));
+                            planPointTemp.setCode(geo.getJSONObject(j).getString("code"));
+                            planPointTemp.setLat(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("y"));
+                            planPointTemp.setLng(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("x"));
+                            planPointTemp.setPipeLength("0");
+                        } else {
+                            planPointTemp.setPlanId(customPlan.getId());
+                            planPointTemp.setPointId(geo.getJSONObject(j).getJSONObject("attributes").getLong("OBJECTID"));
+                            planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
+                            planPointTemp.setLat(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("y"));
+                            planPointTemp.setLng(geo.getJSONObject(j).getJSONObject("geometry").getBigDecimal("x"));
+                            planPointTemp.setPipeLength("0");
+                        }
+                        //planPointTempService.save(planPointTemp);
+                        planPointTemp.setId(tf_plan_point_tempId);
+                        pointTempList.add(planPointTemp);
+                        tf_plan_point_tempId++;
+                        //pointNum++;
                     }
-                    //planPointTempService.save(planPointTemp);
-                    planPointTemp.setId(tf_plan_point_tempId);
-                    pointTempList.add(planPointTemp);
-                    tf_plan_point_tempId++;
-                    //pointNum++;
                 }
-            }
-            //巡检线
-            else {
-                planChildService.save(planChild);
-                BigDecimal pipeLengthTotal = BigDecimal.ZERO;
-                for (int j = 0; j < geo.size(); j++) {
-                    JSONArray paths;
-                    //巡检线
-                    if (gisUrl == null) {
+                //巡检线
+                else {
+                    planChildService.save(planChild);
+                    BigDecimal pipeLengthTotal = BigDecimal.ZERO;
+                    for (int j = 0; j < geo.size(); j++) {
+                        JSONArray paths;
+                        //巡检线
+                        if (gisUrl == null) {
 //                        paths = geo.getJSONObject(j).getJSONObject("geometry").getJSONArray("paths").getJSONArray(0);
-                        JSONArray pipe;
-                        pipe = geo.getJSONObject(j).getJSONArray("pipe");
-
-                        for (int w = 0; w < pipe.size(); w++) {
+                            JSONArray pipe;
+                            pipe = geo.getJSONObject(j).getJSONArray("pipe");
+
+                            for (int w = 0; w < pipe.size(); w++) {
+                                PlanPointTemp planPointTemp = new PlanPointTemp();
+                                planPointTemp.setPlanId(customPlan.getId());
+                                planPointTemp.setPeriodId(customPlan.getPeriodId());
+                                planPointTemp.setRegionId(customPlan.getRegionId());
+                                planPointTemp.setDeviceTypeId(customPlan.getDeviceTypeId());
+                                planPointTemp.setChildPlanId(planChild.getId());
+                                planPointTemp.setUserId(userIdNew);
+                                planPointTemp.setCompanyId(companyId);
+                                planPointTemp.setIsover("0");
+
+                                planPointTemp.setPointId(geo.getJSONObject(j).getLong("sid"));
+                                planPointTemp.setGeometry(pipe.getJSONObject(w).getString("geometry"));
+                                planPointTemp.setContent(geo.getJSONObject(j).getString("content"));
+                                planPointTemp.setName(geo.getJSONObject(j).getString("name"));
+                                planPointTemp.setAddress(geo.getJSONObject(j).getString("address"));
+                                planPointTemp.setCode(geo.getJSONObject(j).getString("code"));
+
+                                planPointTemp.setPipeLength(pipe.getJSONObject(w).getString("length"));
+                                pipeLengthTotal = pipeLengthTotal.add(new BigDecimal(pipe.getJSONObject(w).getString("length")));
+                                planPointTemp.setId(tf_plan_point_tempId);
+                                pointTempList.add(planPointTemp);
+                                tf_plan_point_tempId++;
+
+                                //巡检线paths分段成两个点
+                                paths = pipe.getJSONObject(w).getJSONObject("geometry").getJSONArray("paths").getJSONArray(0);
+                                for (int e = 0; e < paths.size(); e++) {
+                                    TfPlanPathTemp tfPlanPathTemp = new TfPlanPathTemp();
+                                    tfPlanPathTemp.setTempId(planPointTemp.getId());
+                                    tfPlanPathTemp.setPointId(planPointTemp.getPointId());
+                                    tfPlanPathTemp.setLat(new BigDecimal(paths.getJSONArray(e).get(1).toString()));
+                                    tfPlanPathTemp.setLng(new BigDecimal(paths.getJSONArray(e).get(0).toString()));
+                                    tfPlanPathTemp.setIsover(new BigDecimal(0));
+                                    tfPlanPathTemp.setNum(new BigDecimal(e + 1));
+                                    tfPlanPathTemp.setChildPlanId(planChild.getId());
+                                    //planPathTempService.save(tfPlanPathTemp);
+                                    tfPlanPathTemp.setId(tf_plan_path_tempId);
+                                    pathTempList.add(tfPlanPathTemp);
+                                    tf_plan_path_tempId++;
+                                    pointNum++;
+                                }
+                            }
+                        } else {
                             PlanPointTemp planPointTemp = new PlanPointTemp();
                             planPointTemp.setPlanId(customPlan.getId());
                             planPointTemp.setPeriodId(customPlan.getPeriodId());
                             planPointTemp.setRegionId(customPlan.getRegionId());
                             planPointTemp.setDeviceTypeId(customPlan.getDeviceTypeId());
                             planPointTemp.setChildPlanId(planChild.getId());
-                            planPointTemp.setUserId(userId);
+                            planPointTemp.setUserId(userIdNew);
                             planPointTemp.setCompanyId(companyId);
                             planPointTemp.setIsover("0");
 
-                            planPointTemp.setPointId(geo.getJSONObject(j).getLong("sid"));
-                            planPointTemp.setGeometry(pipe.getJSONObject(w).getString("geometry"));
-                            planPointTemp.setContent(geo.getJSONObject(j).getString("content"));
-                            planPointTemp.setName(geo.getJSONObject(j).getString("name"));
-                            planPointTemp.setAddress(geo.getJSONObject(j).getString("address"));
-                            planPointTemp.setCode(geo.getJSONObject(j).getString("code"));
-
-                            planPointTemp.setPipeLength(pipe.getJSONObject(w).getString("length"));
-                            pipeLengthTotal = pipeLengthTotal.add(new BigDecimal(pipe.getJSONObject(w).getString("length")));
+                            planPointTemp.setPointId(geo.getJSONObject(j).getJSONObject("attributes").getLong("OBJECTID"));
+                            planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
+                            planPointTemp.setPipeLength(geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH"));
+                            if (geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH") != null) {
+                                pipeLengthTotal = pipeLengthTotal.add(new BigDecimal(geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH")));
+                            }
+                            paths = geo.getJSONObject(j).getJSONObject("geometry").getJSONArray("paths").getJSONArray(0);
                             planPointTemp.setId(tf_plan_point_tempId);
                             pointTempList.add(planPointTemp);
                             tf_plan_point_tempId++;
 
-                            //巡检线paths分段成两个点
-                            paths = pipe.getJSONObject(w).getJSONObject("geometry").getJSONArray("paths").getJSONArray(0);
-                            for (int e = 0; e < paths.size(); e++) {
+                            //巡检线信息存入
+                            for (int k = 0; k < paths.size(); k++) {
                                 TfPlanPathTemp tfPlanPathTemp = new TfPlanPathTemp();
                                 tfPlanPathTemp.setTempId(planPointTemp.getId());
                                 tfPlanPathTemp.setPointId(planPointTemp.getPointId());
-                                tfPlanPathTemp.setLat(new BigDecimal(paths.getJSONArray(e).get(1).toString()));
-                                tfPlanPathTemp.setLng(new BigDecimal(paths.getJSONArray(e).get(0).toString()));
+                                tfPlanPathTemp.setLat(new BigDecimal(paths.getJSONArray(k).get(1).toString()));
+                                tfPlanPathTemp.setLng(new BigDecimal(paths.getJSONArray(k).get(0).toString()));
                                 tfPlanPathTemp.setIsover(new BigDecimal(0));
-                                tfPlanPathTemp.setNum(new BigDecimal(e + 1));
+                                tfPlanPathTemp.setNum(new BigDecimal(k + 1));
                                 tfPlanPathTemp.setChildPlanId(planChild.getId());
                                 //planPathTempService.save(tfPlanPathTemp);
                                 tfPlanPathTemp.setId(tf_plan_path_tempId);
@@ -285,46 +337,7 @@ public class CustomPlanServiceImpl implements CustomPlanService {
                                 pointNum++;
                             }
                         }
-                    } else {
-                        PlanPointTemp planPointTemp = new PlanPointTemp();
-                        planPointTemp.setPlanId(customPlan.getId());
-                        planPointTemp.setPeriodId(customPlan.getPeriodId());
-                        planPointTemp.setRegionId(customPlan.getRegionId());
-                        planPointTemp.setDeviceTypeId(customPlan.getDeviceTypeId());
-                        planPointTemp.setChildPlanId(planChild.getId());
-                        planPointTemp.setUserId(userId);
-                        planPointTemp.setCompanyId(companyId);
-                        planPointTemp.setIsover("0");
-
-                        planPointTemp.setPointId(geo.getJSONObject(j).getJSONObject("attributes").getLong("OBJECTID"));
-                        planPointTemp.setGeometry(geo.getJSONObject(j).getString("geometry"));
-                        planPointTemp.setPipeLength(geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH"));
-                        if (geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH") != null) {
-                            pipeLengthTotal = pipeLengthTotal.add(new BigDecimal(geo.getJSONObject(j).getJSONObject("attributes").getString("PIPELENGTH")));
-                        }
-                        paths = geo.getJSONObject(j).getJSONObject("geometry").getJSONArray("paths").getJSONArray(0);
-                        planPointTemp.setId(tf_plan_point_tempId);
-                        pointTempList.add(planPointTemp);
-                        tf_plan_point_tempId++;
-
-                        //巡检线信息存入
-                        for (int k = 0; k < paths.size(); k++) {
-                            TfPlanPathTemp tfPlanPathTemp = new TfPlanPathTemp();
-                            tfPlanPathTemp.setTempId(planPointTemp.getId());
-                            tfPlanPathTemp.setPointId(planPointTemp.getPointId());
-                            tfPlanPathTemp.setLat(new BigDecimal(paths.getJSONArray(k).get(1).toString()));
-                            tfPlanPathTemp.setLng(new BigDecimal(paths.getJSONArray(k).get(0).toString()));
-                            tfPlanPathTemp.setIsover(new BigDecimal(0));
-                            tfPlanPathTemp.setNum(new BigDecimal(k + 1));
-                            tfPlanPathTemp.setChildPlanId(planChild.getId());
-                            //planPathTempService.save(tfPlanPathTemp);
-                            tfPlanPathTemp.setId(tf_plan_path_tempId);
-                            pathTempList.add(tfPlanPathTemp);
-                            tf_plan_path_tempId++;
-                            pointNum++;
-                        }
-                    }
-                    //planPointTempService.save(planPointTemp);
+                        //planPointTempService.save(planPointTemp);
 //                    planPointTemp.setId(tf_plan_point_tempId);
 //                    pointTempList.add(planPointTemp);
 //                    tf_plan_point_tempId++;
@@ -346,19 +359,20 @@ public class CustomPlanServiceImpl implements CustomPlanService {
 //                        tf_plan_path_tempId++;
 //                        pointNum++;
 //                    }
+                    }
+                    //添加巡检点数
+                    planChildService.update(Wrappers.<PlanChild>lambdaUpdate()
+                            .eq(PlanChild::getId, planChild.getId())
+                            .set(PlanChild::getPointNum, pointNum)
+                            .set(PlanChild::getTotal, pipeLengthTotal));
                 }
-                //添加巡检点数
-                planChildService.update(Wrappers.<PlanChild>lambdaUpdate()
-                        .eq(PlanChild::getId, planChild.getId())
-                        .set(PlanChild::getPointNum, pointNum)
-                        .set(PlanChild::getTotal, pipeLengthTotal));
+
             }
+            //更新计划状态
+            uploadPlanState();
 
-        }
-        //更新计划状态
-        uploadPlanState();
 
-        //处理详细信息,为了防止异步时ID冲突,在这里加入一条最大数据,后面处理的时候删除该数据
+            //处理详细信息,为了防止异步时ID冲突,在这里加入一条最大数据,后面处理的时候删除该数据
 //        PlanPointTemp planPointTemp = new PlanPointTemp();
 //        planPointTemp.setId(tf_plan_point_tempId);
 //        planPointTempService.save(planPointTemp);
@@ -366,7 +380,8 @@ public class CustomPlanServiceImpl implements CustomPlanService {
 //        tfPlanPathTemp.setId(tf_plan_path_tempId);
 //        planPathTempService.save(tfPlanPathTemp);
 //        SpringContextHolder.publishEvent(new PlanDetailEvent(this,pointTempList,pathTempList));
-        handler(pointTempList, pathTempList);
+            handler(pointTempList, pathTempList);
+        }
         return true;
     }
 

+ 2 - 1
src/main/java/com/tofly/zmrq/entity/Plan.java

@@ -208,6 +208,7 @@ public class Plan extends Model<Plan> {
     private Long companyId;
     @TableField(exist = false)
     private String companyName;
-
+    @ApiModelProperty(value = "计划多人时填写用逗号隔开")
+    private String userIds;
 
 }

+ 14 - 0
src/main/java/com/tofly/zmrq/entity/Scheduler.java

@@ -65,6 +65,20 @@ public class Scheduler extends Model<Scheduler> {
     @TableField(exist = false)
     private String mdispatchingUserName;
 
+    @ApiModelProperty(value = "协助人员部门(多个id用逗号隔开)")
+    private String assistantDepartment;
+    @ApiModelProperty(hidden = true)
+    @TableField(exist = false)
+    private String assistantDepartmentName;
+    /**
+     * 抢修人员(多个id用逗号隔开)
+     */
+    @ApiModelProperty(value = "协助人员(多个id用逗号隔开)")
+    private String assistantUserId;
+    @ApiModelProperty(hidden = true)
+    @TableField(exist = false)
+    private String assistantUserName;
+
     /**
      * 审核员id
      */

+ 32 - 0
src/main/java/com/tofly/zmrq/entity/Surver.java

@@ -124,4 +124,36 @@ public class Surver extends Model<Surver> {
     @ApiModelProperty(hidden = true)
     private List<String> deleteFilePaths;
 
+    @ApiModelProperty(value = "工程性质(1.商业 2.工业 3.民用 4.公服 5.燃气主管工程 6.改造整改)")
+    private String type;
+    @TableField(exist = false)
+    private String typeName;
+
+    @ApiModelProperty(value = "户数")
+    private Long houseHolds;
+
+    @ApiModelProperty(value = "是否埋地管(0:否 1:是)")
+    private String isBuried;
+    @TableField(exist = false)
+    private String isBuriedName;
+
+    @ApiModelProperty(value = "调压器编码(埋地管选否必填)")
+    private String code;
+
+    @ApiModelProperty(value = "新增设备(1.调压器(柜) 2.阀井 3.无)")
+    private String addDevice;
+    @TableField(exist = false)
+    private String addDeviceName;
+
+    @ApiModelProperty(value = "新增设备数量(选阀井和调压器必填)")
+    private Long addDeviceNum;
+
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+
+    @ApiModelProperty(value = "联系人电话")
+    private String contactsNumber;
+
+    @ApiModelProperty(value = "工程名称")
+    private String name;
 }

+ 37 - 3
src/main/resources/customMapper/CustomHomePageMapper.xml

@@ -3,7 +3,8 @@
 <!--站点列表及简略监控值-->
 <mapper namespace="com.tofly.zmrq.custom.mapper.CustomHomePageMapper">
     <select id="getByType" resultType="java.util.Map">
-        SELECT name,SUM(VALUE) AS VALUE FROM tf_homepage
+        SELECT nvl(name,'无') AS NAME,CASE WHEN #{type} > 5 THEN SUM(VALUE)
+        ELSE round(SUM(VALUE)/1000,2) END VALUE FROM tf_homepage
         WHERE 1=1
         <if test="type != null">
             AND TYPE = #{type}
@@ -15,13 +16,46 @@
     </select>
 
     <select id="getTotal" resultType="java.util.Map">
-        SELECT  c.id AS company_id,c.NAME,SUM(VALUE) AS VALUE FROM TF_homepage h LEFT JOIN tf_smpn_company_x c ON c.id = h.company_id
+        SELECT  c.id AS company_id,nvl(c.name,'无') AS NAME,round(SUM(VALUE)/1000,2) AS VALUE FROM TF_homepage h LEFT JOIN tf_smpn_company_x c ON c.id = h.company_id
         WHERE TYPE =1 GROUP BY c.name,c.id
     </select>
 
     <select id="getTotal2" resultType="java.util.Map">
-        SELECT  c.id AS company_id,c.NAME,SUM(VALUE) AS VALUE FROM TF_homepage h LEFT JOIN tf_smpn_company_x c ON c.id = h.company_id
+        SELECT  c.id AS company_id,nvl(c.name,'无') AS NAME,SUM(VALUE) AS VALUE FROM TF_homepage h LEFT JOIN tf_smpn_company_x c ON c.id = h.company_id
         WHERE TYPE IN (5,6,7,8,9,10) GROUP BY c.name,c.id
     </select>
+
+
+    <select id="getDeviceByCompany" resultType="java.util.Map">
+        SELECT  h.type,decode(h.type,'5','调压设备 ','6','阀门','7','燃气桩','8','监控点 ','9','阴极保护','10','场站') as name,
+                SUM(VALUE) AS VALUE FROM TF_homepage h LEFT JOIN tf_smpn_company_x c ON c.id = h.company_id
+        WHERE TYPE IN (5,6,7,8,9,10)
+        <if test="companyId != null">
+            AND company_id = #{companyId}
+        </if>
+        GROUP BY h.type
+    </select>
+
+    <select id="getDiameter" resultType="java.util.Map">
+        <![CDATA[
+        SELECT (CASE
+        WHEN NAME>=0 AND NAME < 100 THEN '<DN100'
+        WHEN NAME>=100 AND NAME < 200 THEN 'DN100-DN200'
+        WHEN NAME>=200 AND NAME < 300 THEN 'DN200-DN300'
+        WHEN NAME>=300 THEN '>DN300' ELSE '无' END) NAME,
+        ]]>
+        round(SUM(VALUE)/1000,2) VALUE from tf_homepage WHERE TYPE =2
+        <if test="companyId != null">
+            AND company_id = #{companyId}
+        </if>
+        <![CDATA[
+        group BY
+        (CASE
+        WHEN NAME>=0 AND NAME < 100 THEN '<DN100'
+        WHEN NAME>=100 AND NAME < 200 THEN 'DN100-DN200'
+        WHEN NAME>=200 AND NAME < 300 THEN 'DN200-DN300'
+        WHEN NAME>=300 THEN '>DN300' ELSE '无' END)
+         ]]>
+    </select>
 </mapper>
 

+ 1 - 0
src/main/resources/customMapper/CustomPlanMapper.xml

@@ -27,6 +27,7 @@
         <result property="planMode" column="PLAN_MODE"/>
         <result property="objectIds" column="OBJECT_IDS"/>
         <result property="companyId" column="COMPANY_ID"/>
+        <result property="userIds" column="USER_IDS"/>
         <association property="companyName" column="COMPANY_ID"
                      select="com.tofly.common.mapper.ToflyCodeCommonMapper.getCompanyName"></association>
         <association property="regionName" column="REGION_ID" select="getregionName"></association>

+ 1 - 0
src/main/resources/mapper/PlanMapper.xml

@@ -30,6 +30,7 @@
         <result property="pointNum" column="POINT_NUM"/>
         <result property="objectIds" column="OBJECT_IDS"/>
         <result property="companyId" column="COMPANY_ID"/>
+        <result property="userIds" column="USER_IDS"/>
         <association property="companyName" column="COMPANY_ID"
                      select="com.tofly.common.mapper.ToflyCodeCommonMapper.getCompanyName"></association>
         <association property="regionName" column="REGION_ID" select="getregionName"></association>