Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

liuyc 1 rok temu
rodzic
commit
b919a8ed3d

+ 26 - 26
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveOfflineVersionInfoServiceImpl.java

@@ -290,15 +290,15 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
         if (list != null && list.size() > 0) {
             String localUrl = "/www/wwwroot/Users/hongchuangyanfa/Desktop/localArchive/localClient/local_archives/alilib/";
             for (ArchiveFile file : list) {
-                if (StringUtil.isNotBlank(file.getFileUrl())) {
-                    String fileUrl = file.getFileUrl();
-                    String fileName = fileUrl.substring(fileUrl.lastIndexOf('/') + 1);
-                    InputStream file_out = CommonUtil.getOSSInputStream(fileUrl);
-                    if (file_out != null) {
-                        CommonUtil.inputStreamToFile(file_out, new File(localUrl + fileName));
-                        file.setFileUrl(fileName);
-                    }
-                }
+//                if (StringUtil.isNotBlank(file.getFileUrl())) {
+//                    String fileUrl = file.getFileUrl();
+//                    String fileName = fileUrl.substring(fileUrl.lastIndexOf('/') + 1);
+//                    InputStream file_out = CommonUtil.getOSSInputStream(fileUrl);
+//                    if (file_out != null) {
+//                        CommonUtil.inputStreamToFile(file_out, new File(localUrl + fileName));
+//                        file.setFileUrl(fileName);
+//                    }
+//                }
                 if (StringUtil.isNotBlank(file.getPdfFileUrl())) {
                     String pdfFileUrl = file.getPdfFileUrl();
                     String fileName = pdfFileUrl.substring(pdfFileUrl.lastIndexOf('/') + 1);
@@ -402,23 +402,23 @@ public class ArchiveOfflineVersionInfoServiceImpl extends BaseServiceImpl<Archiv
         if (list != null && list.size() > 0) {
             String localUrl = "/www/wwwroot/Users/hongchuangyanfa/Desktop/localArchive/localClient/local_archives/alilib/";
             //拼接档案里文件的pdf设置allPdf
-            for (ArchivesAutoDTO dto : list) {
-                List<ArchiveFile> files = fileClient.getArchiveFileByArchivesId(dto.getId() + "", "");
-                if (files != null && files.size() > 0) {
-                    List<String> urlList = new ArrayList<>();
-                    for (ArchiveFile file : files) {
-                        if (StringUtil.isNotBlank(file.getPdfFileUrl())) {
-                            urlList.add(file.getPdfFileUrl());
-                        }
-                    }
-                    if (urlList.size() > 0) {
-                        Long id = SnowFlakeUtil.getId();
-                        FileUtils.mergePdfPublicMethods(urlList, localUrl + id + ".pdf");
-                        dto.setAllFilePdf(id + ".pdf");
-                    }
-                }
-
-            }
+//            for (ArchivesAutoDTO dto : list) {
+//                List<ArchiveFile> files = fileClient.getArchiveFileByArchivesId(dto.getId() + "", "");
+//                if (files != null && files.size() > 0) {
+//                    List<String> urlList = new ArrayList<>();
+//                    for (ArchiveFile file : files) {
+//                        if (StringUtil.isNotBlank(file.getPdfFileUrl())) {
+//                            urlList.add(file.getPdfFileUrl());
+//                        }
+//                    }
+//                    if (urlList.size() > 0) {
+//                        Long id = SnowFlakeUtil.getId();
+//                        FileUtils.mergePdfPublicMethods(urlList, localUrl + id + ".pdf");
+//                        dto.setAllFilePdf(id + ".pdf");
+//                    }
+//                }
+//
+//            }
             try {
                 Connection conn = data.dataSource().getConnection();
                 //清空数据

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -1602,6 +1602,9 @@ public class TaskController extends BladeController {
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "任务管理-一键重签", notes = "传入taskIds、下拉框的contractId、projectId")
     public R<Object> reSigningEVisa(@RequestParam String taskIds, @RequestParam String contractId, @RequestParam String projectId, HttpServletRequest request) {
+        if (ObjectUtil.isEmpty(taskIds)) {
+            return R.fail("请选择一条记录");
+        }
         String header = request.getHeader("Blade-Auth");
         taskService.reSigningEVisa(taskIds, contractId, projectId, header);
         return R.success("任务已经成功提交重签,请耐心等待!");

+ 124 - 60
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1299,76 +1299,140 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         }
     }
 
+//    @Override
+//    public void reSigningEVisa(String taskIds, String contractId, String projectId,String header) {
+//        List<Task> taskList = jdbcTemplate.query("select * from u_task where id in(" + taskIds + ")", new BeanPropertyRowMapper<>(Task.class));
+//        if (taskList.size() > 0) {
+//            List<String> dataIdList = taskList.stream().map(Task::getFormDataId).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
+//            List<InformationQuery> informationQueryList = jdbcTemplate.query("select * from u_information_query where id in(" + StringUtils.join(dataIdList, ",") + ")", new BeanPropertyRowMapper<>(InformationQuery.class));
+//            if (informationQueryList.size() > 0) {
+//                List<Long> nodePKeyIdList = informationQueryList.stream().map(InformationQuery::getWbsId).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
+//                if (nodePKeyIdList.size() > 0) {
+//                    try {
+//                        //重新保存
+//                        long startTime_1 = System.currentTimeMillis();
+//                        R result = this.saveNodePdf(StringUtils.join(nodePKeyIdList, ","), contractId, projectId,header);
+//                        long endTime_1 = System.currentTimeMillis();
+//                        long executionTime_1 = endTime_1 - startTime_1;
+//                        log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
+//
+//                        //重新电签
+//                        if (result != null && "成功".equals(result.getData())) {
+//
+//                            List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
+//                            //获取任务详情信息Map
+//                            Set<String> processInstanceIds = taskList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
+//                            Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
+//                            if (processInstanceIds.size() > 0) {
+//                                String resultIds = processInstanceIds.stream()
+//                                        .map(id -> "'" + id + "'")
+//                                        .collect(Collectors.joining(","));
+//                                taskParallelGroupMap = jdbcTemplate.query("select parallel_process_instance_id,process_instance_id,e_visa_status,task_user,task_user_name,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+//                            }
+//                            Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
+//
+//                            for (Task task : taskList) {
+//                                List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
+//                                for (TaskParallel taskParallel : taskParallelList) {
+//                                    //待审批的不进行重签, 存在待审批,但是电签状态是失败的
+//                                    if (!(new Integer(1)).equals(taskParallel.getStatus()) || (taskParallel.getEVisaStatus() != null && taskParallel.getEVisaStatus() == 99)) {
+//                                        TaskApprovalVO approvalVO = new TaskApprovalVO();
+//                                        approvalVO.setTaskId(task.getId().toString());
+//                                        approvalVO.setFlag("OK");
+//                                        approvalVO.setComment("重新发起电签");
+//                                        approvalVO.setApprovalType(1);
+//                                        approvalVO.setFormDataId(task.getFormDataId());
+//                                        approvalVO.setParallelProcessInstanceId(taskParallel.getParallelProcessInstanceId());
+//                                        approvalVO.setYsNickName(taskParallel.getTaskUserName());
+//                                        approvalVO.setUserId(Long.parseLong(taskParallel.getTaskUser()));
+//                                        taskApprovalVOS.add(approvalVO);
+//                                    }
+//                                }
+//                            }
+//                            long startTime_2 = System.currentTimeMillis();
+//                            this.batchCompleteApprovalTask(taskApprovalVOS);
+//                            long endTime_2 = System.currentTimeMillis();
+//                            long executionTime_2 = endTime_2 - startTime_2;
+//                            log.info("batchCompleteApprovalTask执行时间:" + executionTime_2 + " 毫秒");
+//                        } else {
+//                            throw new ServiceException("重新保存PDF信息失败");
+//                        }
+//
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                        throw new ServiceException("重新保存PDF信息失败,原因:" + e.getMessage());
+//                    }
+//                }
+//            }
+//        }
+//        throw new ServiceException("未获取到任务信息,操作失败!");
+//    }
+
     @Override
     public void reSigningEVisa(String taskIds, String contractId, String projectId,String header) {
-        if (ObjectUtil.isEmpty(taskIds)) {
-            throw new ServiceException("请选择至少一条任务进行重签");
-        }
+        //查询任务信息
         List<Task> taskList = jdbcTemplate.query("select * from u_task where id in(" + taskIds + ")", new BeanPropertyRowMapper<>(Task.class));
         if (taskList.size() > 0) {
+            //获取任务详情信息Map
+            Set<String> processInstanceIds = taskList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
+            Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
+            if (processInstanceIds.size() > 0) {
+                String resultIds = processInstanceIds.stream()
+                        .map(id -> "'" + id + "'")
+                        .collect(Collectors.joining(","));
+                taskParallelGroupMap = jdbcTemplate.query("select parallel_process_instance_id,process_instance_id,e_visa_status,task_user,task_user_name,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+            }
+            Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
+            //获取每条任务对应的节点信息
             List<String> dataIdList = taskList.stream().map(Task::getFormDataId).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
-            List<InformationQuery> informationQueryList = jdbcTemplate.query("select * from u_information_query where id in(" + StringUtils.join(dataIdList, ",") + ")", new BeanPropertyRowMapper<>(InformationQuery.class));
-            if (informationQueryList.size() > 0) {
-                List<Long> nodePKeyIdList = informationQueryList.stream().map(InformationQuery::getWbsId).filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
-                if (nodePKeyIdList.size() > 0) {
-                    try {
-                        //重新保存
-                        long startTime_1 = System.currentTimeMillis();
-                        R result = this.saveNodePdf(StringUtils.join(nodePKeyIdList, ","), contractId, projectId,header);
-                        long endTime_1 = System.currentTimeMillis();
-                        long executionTime_1 = endTime_1 - startTime_1;
-                        log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
-
-                        //重新电签
-                        if (result != null && "成功".equals(result.getData())) {
-
-                            List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
-                            //获取任务详情信息Map
-                            Set<String> processInstanceIds = taskList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
-                            Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
-                            if (processInstanceIds.size() > 0) {
-                                String resultIds = processInstanceIds.stream()
-                                        .map(id -> "'" + id + "'")
-                                        .collect(Collectors.joining(","));
-                                taskParallelGroupMap = jdbcTemplate.query("select parallel_process_instance_id,process_instance_id,e_visa_status,task_user,task_user_name,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
-                            }
-                            Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
-
-                            for (Task task : taskList) {
-                                List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
-                                for (TaskParallel taskParallel : taskParallelList) {
-                                    //待审批的不进行重签, 存在待审批,但是电签状态是失败的
-                                    if (!(new Integer(1)).equals(taskParallel.getStatus()) || (taskParallel.getEVisaStatus() != null && taskParallel.getEVisaStatus() == 99)) {
-                                        TaskApprovalVO approvalVO = new TaskApprovalVO();
-                                        approvalVO.setTaskId(task.getId().toString());
-                                        approvalVO.setFlag("OK");
-                                        approvalVO.setComment("重新发起电签");
-                                        approvalVO.setApprovalType(1);
-                                        approvalVO.setFormDataId(task.getFormDataId());
-                                        approvalVO.setParallelProcessInstanceId(taskParallel.getParallelProcessInstanceId());
-                                        approvalVO.setYsNickName(taskParallel.getTaskUserName());
-                                        approvalVO.setUserId(Long.parseLong(taskParallel.getTaskUser()));
-                                        taskApprovalVOS.add(approvalVO);
-                                    }
-                                }
+            Map<String, String> queryMap = jdbcTemplate.query("select * from u_information_query where id in(" + StringUtils.join(dataIdList, ",") + ")", new BeanPropertyRowMapper<>(InformationQuery.class)).stream().collect(Collectors.toMap(l -> l.getId()+"", l -> l.getWbsId()+""));
+            try {
+                for (Task task : taskList) {
+                    //重新保存
+                    long startTime_1 = System.currentTimeMillis();
+                    R result = this.saveNodePdf(queryMap.get(task.getFormDataId()), contractId, projectId, header);
+                    long endTime_1 = System.currentTimeMillis();
+                    long executionTime_1 = endTime_1 - startTime_1;
+                    log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
+
+                    //重新电签
+                    if (result != null && "成功".equals(result.getData())) {
+                        List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
+                        List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
+                        for (TaskParallel taskParallel : taskParallelList) {
+                            //待审批的不进行重签, 存在待审批,但是电签状态是失败的
+                            if (!(new Integer(1)).equals(taskParallel.getStatus()) || (taskParallel.getEVisaStatus() != null && taskParallel.getEVisaStatus() == 99)) {
+                                TaskApprovalVO approvalVO = new TaskApprovalVO();
+                                approvalVO.setTaskId(task.getId().toString());
+                                approvalVO.setFlag("OK");
+                                approvalVO.setComment("重新发起电签");
+                                approvalVO.setApprovalType(1);
+                                approvalVO.setFormDataId(task.getFormDataId());
+                                approvalVO.setParallelProcessInstanceId(taskParallel.getParallelProcessInstanceId());
+                                approvalVO.setYsNickName(taskParallel.getTaskUserName());
+                                approvalVO.setUserId(Long.parseLong(taskParallel.getTaskUser()));
+                                taskApprovalVOS.add(approvalVO);
                             }
-                            long startTime_2 = System.currentTimeMillis();
-                            this.batchCompleteApprovalTask(taskApprovalVOS);
-                            long endTime_2 = System.currentTimeMillis();
-                            long executionTime_2 = endTime_2 - startTime_2;
-                            log.info("batchCompleteApprovalTask执行时间:" + executionTime_2 + " 毫秒");
-
-                            throw new ServiceException("任务已经成功提交重签,请耐心等待!");
-                        } else {
-                            throw new ServiceException("重新保存PDF信息失败");
                         }
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        throw new ServiceException("重新保存PDF信息失败,原因:" + e.getMessage());
+                        long startTime_2 = System.currentTimeMillis();
+                        this.batchCompleteApprovalTask(taskApprovalVOS);
+                        long endTime_2 = System.currentTimeMillis();
+                        long executionTime_2 = endTime_2 - startTime_2;
+                        log.info("batchCompleteApprovalTask执行时间:" + executionTime_2 + " 毫秒");
+                    } else {
+                        //修改重签状态为保存PDF失败
+                        this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
+                                .set(TaskParallel::getEVisaContent, "重新保存PDF失败")
+                                .eq(TaskParallel::getProcessInstanceId, task.getProcessInstanceId())
+                                .eq(TaskParallel::getEVisaStatus,"99"));
                     }
                 }
+
+            } catch (Exception e) {
+                e.printStackTrace();
+                throw new ServiceException("重新保存PDF信息失败,原因:" + e.getMessage());
             }
+
         }
         throw new ServiceException("未获取到任务信息,操作失败!");
     }

+ 63 - 35
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -24,6 +24,7 @@ import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
+import org.jsoup.nodes.Node;
 import org.jsoup.select.Elements;
 import org.springblade.business.entity.ContractLog;
 import org.springblade.business.entity.InformationQuery;
@@ -2408,11 +2409,35 @@ public class ExcelTabController extends BladeController {
                                                 pic.setHeight(Height);
                                                 sheet.getCellRange(y1, x1).getStyle().setShrinkToFit(true);
 
-                                            } else if (myData.equals("1") && data.html().indexOf("hc-form-checkbox-group") >= 0) {
-                                                CellRange cell = sheet.getCellRange(y1, x1);
-                                                String exceVal = cell.getText().replaceAll(" ", "");
-                                                cell.getCellStyle().getExcelFont().setFontName("EUDC");
-                                                cell.setText(exceVal.replace("□", "\u2611"));
+                                            } else if (data.html().indexOf("hc-form-checkbox-group") >= 0) {
+                                                 CellRange cellRange = sheet.getCellRange(y1, x1);
+                                                 String exceVal = cellRange.getValue().replaceAll(" ", "");
+                                                //如果有□ 代表 自动生成  如果没有 代表后期添加 需要显示html 中的值
+                                                if (exceVal.indexOf("□") >= 0) {
+                                                    if (myData.equals("1")) {
+                                                        cellRange.setValue(exceVal.replace("□", "\u2611"));
+                                                    }
+                                                } else {
+                                                    List<Node> nodes = data.childNodes();
+                                                    Node node = nodes.get(nodes.size() -1);
+                                                    String dataJson = node.attr(":objs");
+                                                    if (StringUtils.isNotEmpty(dataJson)) {
+                                                        JSONArray jsonArray = JSONArray.parseArray(dataJson);
+                                                        List<Integer> idList = Func.toIntList(myData);
+                                                        int indexx = 0;
+                                                        if (idList.get(0) >= 1) {
+                                                            indexx = idList.get(0) - 1;
+                                                        }
+
+                                                        String dataInfo = jsonArray.getJSONObject(indexx).getString("name");
+                                                        for (int inx = 1; inx < idList.size(); inx++) {
+                                                            int valIndex = idList.get(inx) - 1;
+                                                            dataInfo = dataInfo + "," + jsonArray.getJSONObject(valIndex).getString("name");
+                                                        }
+                                                        cellRange.setValue(dataInfo);
+                                                    }
+
+                                                }
                                             } else {
                                                 final CellRange cellRange = sheet.getCellRange(y1, x1);
                                                 cellRange.setText(myData);
@@ -3884,7 +3909,7 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "classify", value = "classify", required = true),
             @ApiImplicitParam(name = "projectId", value = "projectId", required = true)
     })
-    public R synPDFInfo(String contractId,String nodeIds, String classify, String projectId) throws Exception {
+    public R synPDFInfo(String contractId,String nodeIds, String classify, String projectId) {
 
         if( contractId==null && StringUtils.isEmpty(contractId)){
             return R.data("contractId不能为空");
@@ -3903,38 +3928,41 @@ public class ExcelTabController extends BladeController {
         }
 
         String nodeId[] = Func.toStrArray(nodeIds);
-
-        for(String noId : nodeId){
-            JSONObject js = new JSONObject();
-            JSONObject js2 = new JSONObject();
-            List<AppWbsTreeContractVO> tableAll = wbsTreeContractService.searchNodeAllTable(noId, classify, contractId, projectId);
-            JSONArray array = new JSONArray();
-            if(tableAll!=null && tableAll.size()>=1){
-                for(AppWbsTreeContractVO tab:tableAll){
-                    try {
-                        R bussDataInfo = excelTabService.getBussDataInfo(tab.getPKeyId(), 0);
-                        Map<String, Object> jo = (Map<String, Object>) bussDataInfo.getData();
-                        String s = new Gson().toJson(jo);
-                        //字符串转jsonobject
-                        JSONObject obj = JSON.parseObject(s);
-                        obj.put("classify",classify);
-                        obj.put("nodeId",noId);
-                        obj.put("contractId",contractId);
-                        obj.put("pkeyId",tab.getPKeyId());
-                        obj.put("projectId",projectId);
-                        obj.put("isCollapseLoad",true);
-                        obj.put("isRenderForm",true);
-                        array.add(obj);
-                    }catch (Exception e){
-                        e.printStackTrace();
-                    }finally {
-                        continue;
+        try {
+            for (String noId : nodeId) {
+                JSONObject js = new JSONObject();
+                JSONObject js2 = new JSONObject();
+                List<AppWbsTreeContractVO> tableAll = wbsTreeContractService.searchNodeAllTable(noId, classify, contractId, projectId);
+                JSONArray array = new JSONArray();
+                if (tableAll != null && tableAll.size() >= 1) {
+                    for (AppWbsTreeContractVO tab : tableAll) {
+                        try {
+                            R bussDataInfo = excelTabService.getBussDataInfo(tab.getPKeyId(), 0);
+                            Map<String, Object> jo = (Map<String, Object>) bussDataInfo.getData();
+                            String s = new Gson().toJson(jo);
+                            //字符串转jsonobject
+                            JSONObject obj = JSON.parseObject(s);
+                            obj.put("classify", classify);
+                            obj.put("nodeId", noId);
+                            obj.put("contractId", contractId);
+                            obj.put("pkeyId", tab.getPKeyId());
+                            obj.put("projectId", projectId);
+                            obj.put("isCollapseLoad", true);
+                            obj.put("isRenderForm", true);
+                            array.add(obj);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        } finally {
+                            continue;
+                        }
                     }
                 }
+                js2.put("orderList", array);
+                js.put("dataInfo", js2);
+                this.saveBussData2(js);
             }
-            js2.put("orderList",array);
-            js.put("dataInfo",js2);
-            this.saveBussData2(js);
+        }catch (Exception e){
+            return null;
         }
         return R.data("成功");
     }

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/ITurnPointCalculator.java

@@ -389,11 +389,16 @@ public interface ITurnPointCalculator {
                         /*最后一个重新计算前视,因为是微调所以不再判断高差是否在范围*/
                         tp.setQ(info.getSightHeight() - tp.getSc0L());
                     }
+                    closeZd.add(zd.clone());
+                    /*设置当前里程*/
+                    if(info.isDistance()) {
+                        /*没转一次点相当于往前推进两百米*/
+                        info.setMilestone(info.getMilestone()+200);
+                    }
                     list.add(zd);
                 }
                 if(list.size()>0){
                     result.addAll(list);
-                    closeZd.addAll(list);
                 }
             }
 

+ 11 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/TurnPoint.java

@@ -243,7 +243,15 @@ public class TurnPoint {
         if(negative){
             d=  Math.abs(d);
         }
-        return d >= levelInfo.getMin() && d <= levelInfo.getStep()&&levelInfo.getSightHeight()-getQ0L()==getSc0L();
+        if(d >= levelInfo.getMin() && d <= levelInfo.getStep()){
+            if(levelInfo.getSightHeight()-getQ0L()!=getSc0L()){
+                /*微调修复前视*/
+                setQ(levelInfo.getSightHeight()-getSc0L());
+            }
+            return true;
+        }
+        return false;
+
     }
     /**判断转点前后视是否在范围*/
     public boolean isWithinRangeValueZd(String any){
@@ -377,6 +385,8 @@ public class TurnPoint {
         t.setName("ZD" + (this.levelInfo.getCloseZd().size() + 1));
         BeanUtils.copyProperties(this, t);
         t.setDataMap(new HashMap<>(20));
+        this.peer=t;
+        t.setPeer(this);
         return t;
     }