|
@@ -12,6 +12,7 @@ import com.onemap.analyse.mapper.base.FzxzResMapper;
|
|
|
import com.onemap.analyse.mapper.base.ShpFileMapper;
|
|
|
import com.onemap.analyse.mapper.vector.GhdkaMapper;
|
|
|
import com.onemap.analyse.service.IFzssService;
|
|
|
+import com.onemap.analyse.service.ILogService;
|
|
|
import com.onemap.analyse.service.IReportService;
|
|
|
import com.onemap.analyse.task.FzxzSchedule;
|
|
|
import com.onemap.analyse.utils.DozerUtils;
|
|
@@ -52,9 +53,6 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
|
|
|
@Autowired
|
|
|
ShpFileMapper shpFileMapper;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private FxrwrzMapper fxrwrzMapper;
|
|
|
@Autowired
|
|
|
private FzxzResMapper fzxzResMapper;
|
|
|
// 选址任务
|
|
@@ -68,6 +66,10 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
@Autowired
|
|
|
private IReportService iReportService;
|
|
|
|
|
|
+ // 日志服务
|
|
|
+ @Autowired
|
|
|
+ private ILogService iLogService;
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public RequestResult AddHgxfx(HgxfxEntityDTO hgxfxEntityDTO) throws IOException {
|
|
@@ -143,6 +145,18 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
return fzxzCalc;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新辅助选任务状态
|
|
|
+ *
|
|
|
+ * @param bsm
|
|
|
+ * @param rwzt
|
|
|
+ */
|
|
|
+ private void updateFzxzStatus(String bsm, Integer rwzt) {
|
|
|
+ UpdateWrapper<FzxzDTO> wrapper = new UpdateWrapper<>();
|
|
|
+ wrapper.eq("bsm", bsm).set("rwzt", Rwzt.getRun());
|
|
|
+ fzxzMapper.update(null, wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 规划选址逻辑在这里
|
|
|
*
|
|
@@ -152,10 +166,8 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
@Override
|
|
|
public RequestResult startSchedule(FzxzCalc fzxzCalc) {
|
|
|
FzxzDTO fzxzDTO = fzxzCalc.getFzxzDTO();
|
|
|
- // 0.开始规划
|
|
|
- UpdateWrapper<FzxzDTO> wrapper = new UpdateWrapper<>();
|
|
|
- wrapper.eq("bsm", fzxzDTO.getBsm()).set("rwzt", Rwzt.getRun());
|
|
|
- fzxzMapper.update(null, wrapper);
|
|
|
+ // 0.开始规划,更新任务状态
|
|
|
+ updateFzxzStatus(fzxzDTO.getBsm(), Rwzt.getRun());
|
|
|
|
|
|
// TODO 数据源
|
|
|
String sjyName = "";
|
|
@@ -164,25 +176,25 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
}
|
|
|
|
|
|
// 开始分析
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "开始分析", "info");
|
|
|
+ iLogService.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");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "选址参数", "info");
|
|
|
|
|
|
// 1.区域筛选
|
|
|
GeomRes geomRes = shpFileMapper.getOne(fzxzDTO.getGeomId());
|
|
|
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "载入选址范围完成", "info");
|
|
|
+ iLogService.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");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "相交裁剪" + sjyName, "info");
|
|
|
// 2.面积筛选
|
|
|
Map<String, Object> areaMap = new HashMap<>();
|
|
|
areaMap.put("sjy", fzxzDTO.getSjy());
|
|
@@ -191,7 +203,7 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
areaMap.put("idList", ids);
|
|
|
ids = ghdkaMapper.getIdByArea(areaMap);
|
|
|
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "地块面积分析完成", "info");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "地块面积分析完成", "info");
|
|
|
// 3.条件筛选
|
|
|
GhdkaFilter ghdkaFilter = new GhdkaFilter();
|
|
|
ghdkaFilter.setSjy(fzxzDTO.getSjy());
|
|
@@ -200,61 +212,43 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
ghdkaFilter.setFzxzXzyzDTO(fzxzXzyzDTO);
|
|
|
ids = ghdkaMapper.getIdByFilter(ghdkaFilter);
|
|
|
if (ids.size() == 0) {
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成,未找到符合条件数据", "info");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成,未找到符合条件数据", "info");
|
|
|
return RequestResult.error("条件筛选未找到符合条件数据!", null);
|
|
|
}
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", fzxzXzyzDTO.getYxyzmc() + "因子影响分析完成", "info");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", fzxzXzyzDTO.getYxyzmc() + "因子影响分析完成", "info");
|
|
|
ghdkaFilter.setIdList(ids);
|
|
|
}
|
|
|
|
|
|
if (ids.size() == 0) {
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成,未找到符合条件数据", "info");
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成,未找到符合条件数据", "info");
|
|
|
return RequestResult.error("条件筛选未找到符合条件数据!", null);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 4.保存规划结果
|
|
|
- Map<String, Object> resMap = new HashMap<>();
|
|
|
- resMap.put("dkIds", ids);
|
|
|
- resMap.put("rwbsm", fzxzDTO.getBsm());
|
|
|
- resMap.put("sjyb", fzxzDTO.getSjy());
|
|
|
+ Map<String, Object> scheduleResMap = new HashMap<>();
|
|
|
+ scheduleResMap.put("dkIds", ids);
|
|
|
+ scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
|
|
|
+ scheduleResMap.put("sjyb", fzxzDTO.getSjy());
|
|
|
// TODO 用地性质待定
|
|
|
- resMap.put("ydxz", fzxzDTO.getYdxz_bsm());
|
|
|
- saveScheduleRes(resMap);
|
|
|
+ scheduleResMap.put("ydxz", fzxzDTO.getYdxz_bsm());
|
|
|
+ saveScheduleRes(scheduleResMap);
|
|
|
|
|
|
// 保存成功日志
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
|
|
|
-
|
|
|
- // 5.生成报告
|
|
|
- // 保存生成报告日志
|
|
|
- saveLog(fzxzDTO.getBsm(), "辅助选址", "开始生成选址报告", "info");
|
|
|
- // 生成world文件
|
|
|
- iReportService.createReport(fzxzDTO.getBsm(), null);
|
|
|
- return RequestResult.success(ids);
|
|
|
- }
|
|
|
+ iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
|
|
|
|
|
|
- /**
|
|
|
- * 保存选址日志
|
|
|
- *
|
|
|
- * @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);
|
|
|
+ // 5.生成报告,生成world文件
|
|
|
+ FzxzReport fzxzReport = iReportService.createReport(fzxzDTO.getBsm(), null);
|
|
|
+
|
|
|
+ // 6.开始规划,更新任务状态
|
|
|
+ updateFzxzStatus(fzxzDTO.getBsm(), Rwzt.getComplete());
|
|
|
+
|
|
|
+ Map<String, Object> resMap = new HashMap<>();
|
|
|
+ resMap.put("rwbsm", fzxzDTO.getBsm());
|
|
|
+ resMap.put("dkIds", ids);
|
|
|
+ return RequestResult.success(resMap);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 保存选址结果
|
|
|
*
|
|
@@ -306,7 +300,7 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
return RequestResult.error("标识码参数未传递!", null);
|
|
|
}
|
|
|
// 查询辅助选址基本信息
|
|
|
- QueryWrapper<FzxzDTO> fzxzwrapper = new QueryWrapper<FzxzDTO>();
|
|
|
+ QueryWrapper<FzxzDTO> fzxzwrapper = new QueryWrapper<>();
|
|
|
fzxzwrapper.eq("bsm", bsm);
|
|
|
FzxzDTO fzxzinfo = fzxzMapper.selectOne(fzxzwrapper);
|
|
|
if (fzxzinfo == null) {
|
|
@@ -323,7 +317,6 @@ public class FzssServiceImpl implements IFzssService {
|
|
|
xzyzWrapper.eq("rwbsm", result.getBsm());
|
|
|
List<FzxzXzyzDTO> fzxzXzyzDTOS = fzxzXzyzMapper.selectList(xzyzWrapper);
|
|
|
result.setXzyz(fzxzXzyzDTOS);
|
|
|
-
|
|
|
return RequestResult.success("查询成功!", result);
|
|
|
}
|
|
|
|