Răsfoiți Sursa

添加选址分析日志

gushoubang 1 an în urmă
părinte
comite
18bf854b35

+ 2 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/calculation/FzxzCalc.java

@@ -4,10 +4,11 @@ import com.onemap.analyse.domain.FzxzDTO;
 import com.onemap.analyse.domain.FzxzXzyzDTO;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Data
 public class FzxzCalc {
     FzxzDTO fzxzDTO;
-    List<FzxzXzyzDTO> xzyxList;
+    List<FzxzXzyzDTO> xzyxList=new ArrayList<>();
 }

+ 2 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IFzssService.java

@@ -15,6 +15,8 @@ public interface IFzssService {
 
     RequestResult startSchedule(FzxzCalc fzxzCalc);
 
+    void saveLog(String rwbsm, String rwlx, String rzlr, String rzlx);
+
     RequestResult GetXzjg(String bsm);
 
     RequestResult saveWordFile(String bsm, ArrayList xzbsm);

+ 54 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.*;
 
@@ -62,6 +63,9 @@ public class FzssServiceImpl implements IFzssService {
     @Autowired
     ShpFileMapper shpFileMapper;
 
+    @Resource
+    private FxrwrzMapper fxrwrzMapper;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public RequestResult AddHgxfx(HgxfxEntityDTO hgxfxEntityDTO) throws IOException {
@@ -145,12 +149,35 @@ public class FzssServiceImpl implements IFzssService {
         wrapper.eq("bsm", fzxzDTO.getBsm()).set("rwzt", Rwzt.getRun());
         fzxzMapper.update(null, wrapper);
 
+        // TODO 数据源
+        String sjyName = "";
+        if (fzxzDTO.getSjy() == "TB_GHDK") {
+            sjyName = "规划地块";
+        }
+
+        // 开始分析
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "开始分析", "info");
+        List<String> yzs = new ArrayList<>();
+        for (FzxzXzyzDTO fzxzXzyzDTO : fzxzCalc.getXzyxList()) {
+            yzs.add(fzxzXzyzDTO.getYzbsm());
+        }
+        String logs = "选址参数:数据源=" + sjyName +
+                ",用地面积=" + fzxzDTO.getYdmjbegin() + "-" + fzxzDTO.getYdmjend() +
+                ",影响因子=" + String.join(", ", yzs);
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "选址参数", "info");
+
         // 1.区域筛选
         GeomRes geomRes = shpFileMapper.getOne(fzxzDTO.getGeomId());
+
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "载入选址范围完成", "info");
+
         Map<String, String> paramMap = new HashMap<>();
         paramMap.put("geom", geomRes.getGeom());
         paramMap.put("sjy", fzxzDTO.getSjy());
         List<Integer> ids = ghdkaMapper.getIdByGeom(paramMap);
+
+
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "相交裁剪" + sjyName, "info");
         // 2.面积筛选
         Map<String, Object> areaMap = new HashMap<>();
         areaMap.put("sjy", fzxzDTO.getSjy());
@@ -158,6 +185,8 @@ public class FzssServiceImpl implements IFzssService {
         areaMap.put("endArea", fzxzDTO.getYdmjend());
         areaMap.put("idList", ids);
         ids = ghdkaMapper.getIdByArea(areaMap);
+
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "地块面积分析完成", "info");
         // 3.条件筛选
         GhdkaFilter ghdkaFilter = new GhdkaFilter();
         ghdkaFilter.setSjy(fzxzDTO.getSjy());
@@ -166,13 +195,38 @@ public class FzssServiceImpl implements IFzssService {
             ghdkaFilter.setFzxzXzyzDTO(fzxzXzyzDTO);
             ids = ghdkaMapper.getIdByFilter(ghdkaFilter);
             if (ids.size() == 0) {
+                saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成,未找到符合条件数据", "info");
                 return RequestResult.error("条件筛选未找到符合条件数据!", null);
             }
+            saveLog(fzxzDTO.getBsm(), "辅助选址", fzxzXzyzDTO.getYxyzmc() + "因子影响分析完成", "info");
             ghdkaFilter.setIdList(ids);
         }
+        saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
         return RequestResult.success(ids);
     }
 
+    /**
+     * 保存选址日志
+     *
+     * @param rwbsm 任务标识码
+     * @param rwlx  任务类型:辅助选址
+     * @param rzlr  日志内容:载入选址范围完成
+     * @param rzlx  信息类型 info:信息日志 error:错误日志
+     */
+    @Override
+    @Slave
+    public void saveLog(String rwbsm, String rwlx, String rzlr, String rzlx) {
+        // 插入成功日志
+        FxrwrzDTO successDto = new FxrwrzDTO();
+        successDto.setBsm(StringUtils.getUUID());
+        successDto.setRwbsm(rwbsm);
+        successDto.setRwlx(rwlx);
+        successDto.setRzlr(rzlr);
+        successDto.setRzlx(rzlx);
+        successDto.setRzsj(new Date());
+        fxrwrzMapper.insert(successDto);
+    }
+
 
     @Override
     public RequestResult GetXzjg(String bsm) {

+ 10 - 10
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/task/FzxzSchedule.java

@@ -67,15 +67,15 @@ public class FzxzSchedule {
     // * initialDelay:表示延迟多久再第一次执行任务,参数类型为long ,单位:ms
     // * initialDelayString:与initialDelay一样,只是参数类型String
     // */
-    ///**
-    // * @Async("name") 开启多线程
-    // */
-    ///**
-    // * 辅助选址执行入口
-    // */
-    //@Async("taskExecutor")
-    //@Scheduled(fixedDelay = TIME_INTERVAL)
-    //public void FzxzStatus() {
+    /**
+    * @Async("name") 开启多线程
+    */
+    /**
+    * 辅助选址执行入口
+    */
+    // @Async("taskExecutor")
+    // @Scheduled(fixedDelay = TIME_INTERVAL)
+    // public void FzxzStatus() {
     //    try {
     //        QueryWrapper<FzxzDTO> wrapper = new QueryWrapper<FzxzDTO>();
     //        wrapper.eq("rwzt", Rwzt.getCreate());
@@ -140,7 +140,7 @@ public class FzxzSchedule {
     //    } catch (Exception e) {
     //        e.printStackTrace();
     //    }
-    //}
+    // }
 
     //根据选址任务生成报告
     public FzxzReport createReport(String bsm, List<String> xzbsmList) {