|
|
@@ -1949,8 +1949,6 @@ public class ProjectImpl implements ProjectService {
|
|
|
*/
|
|
|
@Override
|
|
|
public void addPreAssignCode(String nodeId,String projectId,String geomDbId,Integer validFlag) throws RuntimeException {
|
|
|
- String preAssignCode = "";
|
|
|
- String sequenceNumber = "";
|
|
|
/*
|
|
|
* 1.获取当前节点3个地块。
|
|
|
* 2.分别对当前三个地块进行赋码
|
|
|
@@ -1962,8 +1960,11 @@ public class ProjectImpl implements ProjectService {
|
|
|
List<Map<String,String>> currentNodeDetailsList = nodeLandService.selectTGeomDbDetailsByNodeId(nodeId);
|
|
|
if (CollectionUtils.isNotEmpty(currentNodeDetailsList)) {
|
|
|
List<ProjectImmobileCode> addProjectImmobileCodeList = new ArrayList<>();
|
|
|
+ int preSequenceNumber = 0;
|
|
|
//针对每个地块进行赋码
|
|
|
for (Map<String, String> tmpMap : currentNodeDetailsList) {
|
|
|
+ String preAssignCode = "";
|
|
|
+ String sequenceNumber = "";
|
|
|
//--------------------第一部分先检查是否同一个引用----------------------------------------
|
|
|
//当前节点地块来自于存在的节点的矢量,直接沿用存在的预赋码
|
|
|
String detailsId = tmpMap.get("id");
|
|
|
@@ -1984,17 +1985,17 @@ public class ProjectImpl implements ProjectService {
|
|
|
if(StringUtils.isBlank(preAssignCode) && StringUtils.isBlank(sequenceNumber)) {
|
|
|
List<ProjectImmobileCode> currentProjectImmobileList = projectImmobileCodeMapper.selectByProjectId(projectId, "");
|
|
|
if (CollectionUtils.isNotEmpty(currentProjectImmobileList)) {
|
|
|
- List<String> geomDbIdList = currentProjectImmobileList.stream().map(ProjectImmobileCode::getGeomDbId).collect(Collectors.toList());
|
|
|
+ List<String> geomDbIdList = currentProjectImmobileList.stream().map(ProjectImmobileCode::getGeomDbId).distinct().collect(Collectors.toList());
|
|
|
//gis 判断是否存在图形相同的引用
|
|
|
Map<String, String> equalsGeomMap = nodeLandMapper.selectGeomContains(geomDbIdList, detailsId);
|
|
|
if (MapUtils.isNotEmpty(equalsGeomMap) && equalsGeomMap.containsKey("id")) {
|
|
|
//这里查找当前包含的数据条
|
|
|
Optional<ProjectImmobileCode> existsImmobileCode= currentProjectImmobileList.stream().filter(
|
|
|
s->s.getProjectId().equalsIgnoreCase(projectId)
|
|
|
- && s.getNodeId().equalsIgnoreCase(nodeId)
|
|
|
&& s.getGeomDbId().equalsIgnoreCase(equalsGeomMap.get("geom_db_id"))
|
|
|
&& s.getGeomDetailsId().equalsIgnoreCase(equalsGeomMap.get("id"))
|
|
|
).findFirst();
|
|
|
+
|
|
|
if(existsImmobileCode.isPresent()){
|
|
|
preAssignCode = existsImmobileCode.get().getPreAssignCode();
|
|
|
sequenceNumber = existsImmobileCode.get().getSequenceNumber();
|
|
|
@@ -2020,7 +2021,13 @@ public class ProjectImpl implements ProjectService {
|
|
|
if (Objects.nonNull(dbMaxSequenceNumberImmobileCode)) {
|
|
|
sequenceNumber = String.valueOf(Integer.parseInt(dbMaxSequenceNumberImmobileCode.getSequenceNumber()) + 1);
|
|
|
}
|
|
|
+
|
|
|
+ //多个图斑时候这里需要与内存最大值比较取最大
|
|
|
+ if(Integer.parseInt(sequenceNumber) <= preSequenceNumber){
|
|
|
+ sequenceNumber = String.valueOf(preSequenceNumber + 1);
|
|
|
+ }
|
|
|
preAssignCode = regionCode + plotCode + sequenceNumber;
|
|
|
+ preSequenceNumber = Integer.parseInt(sequenceNumber);//记录上一个
|
|
|
}
|
|
|
}
|
|
|
|