|
@@ -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) {
|