|
@@ -11,7 +11,7 @@ import com.onemap.analyse.domain.vo.*;
|
|
import com.onemap.analyse.mapper.*;
|
|
import com.onemap.analyse.mapper.*;
|
|
import com.onemap.analyse.mapper.base.FzxzResMapper;
|
|
import com.onemap.analyse.mapper.base.FzxzResMapper;
|
|
import com.onemap.analyse.mapper.base.ShpFileMapper;
|
|
import com.onemap.analyse.mapper.base.ShpFileMapper;
|
|
-import com.onemap.analyse.mapper.vector.AlgorithmMapper;
|
|
|
|
|
|
+import com.onemap.analyse.mapper.vector.MultipleMapper;
|
|
import com.onemap.analyse.mapper.vector.GhdkaMapper;
|
|
import com.onemap.analyse.mapper.vector.GhdkaMapper;
|
|
import com.onemap.analyse.service.*;
|
|
import com.onemap.analyse.service.*;
|
|
import com.onemap.analyse.utils.DozerUtils;
|
|
import com.onemap.analyse.utils.DozerUtils;
|
|
@@ -22,6 +22,7 @@ import com.onemap.common.core.utils.StringUtils;
|
|
import com.onemap.common.core.web.domain.RequestResult;
|
|
import com.onemap.common.core.web.domain.RequestResult;
|
|
import com.onemap.common.datasource.annotation.Master;
|
|
import com.onemap.common.datasource.annotation.Master;
|
|
import com.onemap.common.security.utils.SecurityUtils;
|
|
import com.onemap.common.security.utils.SecurityUtils;
|
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -75,8 +76,9 @@ public class FzssServiceImpl implements IFzssService {
|
|
private ITableDateService tableDateService;
|
|
private ITableDateService tableDateService;
|
|
@Resource
|
|
@Resource
|
|
private AnalyseUtilsDBService analyseUtilsDBService;
|
|
private AnalyseUtilsDBService analyseUtilsDBService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
- private AlgorithmMapper algorithmMapper;
|
|
|
|
|
|
+ private MultipleMapper multipleMapper;
|
|
//**需要拿出来的逻辑**//
|
|
//**需要拿出来的逻辑**//
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -209,6 +211,7 @@ public class FzssServiceImpl implements IFzssService {
|
|
if (rawTable.equals("")) return RequestResult.error("区域筛选条件筛选未找到符合条件数据!", null);
|
|
if (rawTable.equals("")) return RequestResult.error("区域筛选条件筛选未找到符合条件数据!", null);
|
|
|
|
|
|
// 5.切割地块,面积筛选
|
|
// 5.切割地块,面积筛选
|
|
|
|
+ List<Map<String, Object>> multLandList = new ArrayList<>();
|
|
if (fzxzDTO.getUseMultiple()) {
|
|
if (fzxzDTO.getUseMultiple()) {
|
|
// 允许多地块
|
|
// 允许多地块
|
|
int multDistanc = fzxzDTO.getMultipleDistance();
|
|
int multDistanc = fzxzDTO.getMultipleDistance();
|
|
@@ -216,8 +219,8 @@ public class FzssServiceImpl implements IFzssService {
|
|
paramArg.put("类型", "智能选址");
|
|
paramArg.put("类型", "智能选址");
|
|
paramArg.put("版本", 1.0);
|
|
paramArg.put("版本", 1.0);
|
|
paramArg.put("小地块最多合并块数", 3);
|
|
paramArg.put("小地块最多合并块数", 3);
|
|
- paramArg.put("面积下限", fzxzDTO.getYdmjbegin());
|
|
|
|
- paramArg.put("面积上限", fzxzDTO.getYdmjend());
|
|
|
|
|
|
+ paramArg.put("面积下限", UnitsUtil.m2ToMu(fzxzDTO.getYdmjbegin()));
|
|
|
|
+ paramArg.put("面积上限", UnitsUtil.m2ToMu(fzxzDTO.getYdmjend()));
|
|
paramArg.put("距离内合并", multDistanc);
|
|
paramArg.put("距离内合并", multDistanc);
|
|
|
|
|
|
Map<String, Object> systemArg = new HashMap<>();
|
|
Map<String, Object> systemArg = new HashMap<>();
|
|
@@ -229,8 +232,19 @@ public class FzssServiceImpl implements IFzssService {
|
|
String paramJson = JsonUtils.toJson(paramArg);
|
|
String paramJson = JsonUtils.toJson(paramArg);
|
|
String systemJson = JsonUtils.toJson(systemArg);
|
|
String systemJson = JsonUtils.toJson(systemArg);
|
|
|
|
|
|
- algorithmMapper.blockMerge(resTableName, paramJson, systemJson);
|
|
|
|
- // TODO 添加面积筛选
|
|
|
|
|
|
+ multipleMapper.blockMerge(resTableName, paramJson, systemJson);
|
|
|
|
+ multLandList = multipleMapper.getBlockMergeResult(resTableName);
|
|
|
|
+ if (multLandList != null && multLandList.size() > 0) {
|
|
|
|
+ for (Map<String, Object> map : multLandList) {
|
|
|
|
+ Integer[] dkIds = (Integer[]) map.get("idarray");
|
|
|
|
+ List<String> dkIdsStr = new ArrayList<>();
|
|
|
|
+ for (Integer dkId : dkIds) {
|
|
|
|
+ dkIdsStr.add(dkId.toString());
|
|
|
|
+ }
|
|
|
|
+ tableDateService.delInIds(rawTable, dkIdsStr);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ System.out.println("多地块合并完成");
|
|
} else {
|
|
} else {
|
|
// 不允许多地块,删除面积不符合要求的地块
|
|
// 不允许多地块,删除面积不符合要求的地块
|
|
tableDateService.delByArea(rawTable, fzxzDTO.getYdmjbegin(), fzxzDTO.getYdmjend());
|
|
tableDateService.delByArea(rawTable, fzxzDTO.getYdmjbegin(), fzxzDTO.getYdmjend());
|
|
@@ -249,7 +263,7 @@ public class FzssServiceImpl implements IFzssService {
|
|
scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
|
|
scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
|
|
scheduleResMap.put("sjyb", fzxzDTO.getSjy());
|
|
scheduleResMap.put("sjyb", fzxzDTO.getSjy());
|
|
scheduleResMap.put("ydxz", fzxzDTO.getYdxz_bsm());
|
|
scheduleResMap.put("ydxz", fzxzDTO.getYdxz_bsm());
|
|
- saveScheduleRes(scheduleResMap);
|
|
|
|
|
|
+ saveScheduleRes(scheduleResMap, multLandList);
|
|
|
|
|
|
// 保存成功日志
|
|
// 保存成功日志
|
|
iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
|
|
iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
|
|
@@ -421,7 +435,7 @@ public class FzssServiceImpl implements IFzssService {
|
|
* @param resMap
|
|
* @param resMap
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public void saveScheduleRes(Map<String, Object> resMap) {
|
|
|
|
|
|
+ public void saveScheduleRes(Map<String, Object> resMap, List<Map<String, Object>> multLandList) {
|
|
String rwbsm = (String) resMap.get("rwbsm");
|
|
String rwbsm = (String) resMap.get("rwbsm");
|
|
String sjyb = (String) resMap.get("sjyb");
|
|
String sjyb = (String) resMap.get("sjyb");
|
|
String ydxz = (String) resMap.get("ydxz");
|
|
String ydxz = (String) resMap.get("ydxz");
|
|
@@ -449,7 +463,26 @@ public class FzssServiceImpl implements IFzssService {
|
|
fzxzResDTO.setSjyb(sjyb);
|
|
fzxzResDTO.setSjyb(sjyb);
|
|
fzxzResDTO.setYdxz(ydxz);
|
|
fzxzResDTO.setYdxz(ydxz);
|
|
fzxzResDTO.setCreateAt(new Date());
|
|
fzxzResDTO.setCreateAt(new Date());
|
|
- fzxzResDTO.setDkid(dkId);
|
|
|
|
|
|
+ fzxzResDTO.setDkid(dkId.toString());
|
|
|
|
+ fzxzResDTO.setArea(area);
|
|
|
|
+ fzxzResDTO.setGeom(geom);
|
|
|
|
+
|
|
|
|
+ // TODO 设置土地价格
|
|
|
|
+ fzxzResDTO.setLandPrice(100.0);
|
|
|
|
+ fzxzResMapper.saveOne(fzxzResDTO);
|
|
|
|
+ }
|
|
|
|
+ for (Map<String, Object> stringObjectMap : multLandList) {
|
|
|
|
+ List<Integer> dkIds = (List<Integer>) stringObjectMap.get("idarray");
|
|
|
|
+ String geom = (String) stringObjectMap.get("geom");
|
|
|
|
+ Double area = (Double) stringObjectMap.get("area");
|
|
|
|
+
|
|
|
|
+ SelectionResDTO fzxzResDTO = DozerUtils.map(resMap, SelectionResDTO.class);
|
|
|
|
+ fzxzResDTO.setBsm(StringUtils.getUUID());
|
|
|
|
+ fzxzResDTO.setRwbsm(rwbsm);
|
|
|
|
+ fzxzResDTO.setSjyb(sjyb);
|
|
|
|
+ fzxzResDTO.setYdxz(ydxz);
|
|
|
|
+ fzxzResDTO.setCreateAt(new Date());
|
|
|
|
+ fzxzResDTO.setDkid(Strings.join(dkIds, ','));
|
|
fzxzResDTO.setArea(area);
|
|
fzxzResDTO.setArea(area);
|
|
fzxzResDTO.setGeom(geom);
|
|
fzxzResDTO.setGeom(geom);
|
|
|
|
|
|
@@ -492,11 +525,14 @@ public class FzssServiceImpl implements IFzssService {
|
|
for (SelectionResDTO selectionRes : selectionResList) {
|
|
for (SelectionResDTO selectionRes : selectionResList) {
|
|
// 查询地块信息
|
|
// 查询地块信息
|
|
String rawTableName = selectionInfo.getSjy();
|
|
String rawTableName = selectionInfo.getSjy();
|
|
- Integer rawItemId = selectionRes.getDkid();
|
|
|
|
|
|
+ String rawItemIds = selectionRes.getDkid();
|
|
List<String> columns = new ArrayList<>();
|
|
List<String> columns = new ArrayList<>();
|
|
columns.add("dkbm");
|
|
columns.add("dkbm");
|
|
columns.add("kzxxgydmc");
|
|
columns.add("kzxxgydmc");
|
|
- Map<String, Object> rawTable = ghdkaMapper.getInfoByColumn(rawTableName, rawItemId.toString(), columns);
|
|
|
|
|
|
+
|
|
|
|
+ List<String> rawItemIdList = Arrays.asList(rawItemIds.split(","));
|
|
|
|
+ // TODO 查询多地块信息
|
|
|
|
+ Map<String, Object> rawTable = ghdkaMapper.getInfoByColumn(rawTableName, rawItemIdList.get(0), columns);
|
|
|
|
|
|
// 构建地块返回结果
|
|
// 构建地块返回结果
|
|
Map<String, Object> dkMap = new HashMap<>();
|
|
Map<String, Object> dkMap = new HashMap<>();
|