|
@@ -1,9 +1,7 @@
|
|
|
package com.siwei.apply.service.impl;
|
|
package com.siwei.apply.service.impl;
|
|
|
|
|
|
|
|
import com.siwei.apply.domain.DecisionTask;
|
|
import com.siwei.apply.domain.DecisionTask;
|
|
|
-import com.siwei.apply.domain.vo.DecisionIntersectsDetailsVo;
|
|
|
|
|
-import com.siwei.apply.domain.vo.DecisionTaskFilterVo;
|
|
|
|
|
-import com.siwei.apply.domain.vo.DecisionTaskVo;
|
|
|
|
|
|
|
+import com.siwei.apply.domain.vo.*;
|
|
|
import com.siwei.apply.enums.DecisionType;
|
|
import com.siwei.apply.enums.DecisionType;
|
|
|
import com.siwei.apply.mapper.DecisionTaskMapper;
|
|
import com.siwei.apply.mapper.DecisionTaskMapper;
|
|
|
import com.siwei.apply.service.DecisionTaskService;
|
|
import com.siwei.apply.service.DecisionTaskService;
|
|
@@ -87,6 +85,10 @@ public class DecisionTaskServiceImpl implements DecisionTaskService {
|
|
|
throw new ServiceException("SHP文件路径不能为空");
|
|
throw new ServiceException("SHP文件路径不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if (!shape.contains("SRID=")) { //这里兼容前端没有加SRID的情况,默认4326
|
|
|
|
|
+ shape = "SRID=" + "4326" + ";" + shape;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
DecisionTask decisionTask = new DecisionTask();
|
|
DecisionTask decisionTask = new DecisionTask();
|
|
|
decisionTask.generateId();
|
|
decisionTask.generateId();
|
|
|
decisionTask.setName(name);
|
|
decisionTask.setName(name);
|
|
@@ -99,6 +101,7 @@ public class DecisionTaskServiceImpl implements DecisionTaskService {
|
|
|
//return decisionTask;
|
|
//return decisionTask;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ String finalShape = shape;
|
|
|
Arrays.stream(DecisionType.values()).forEach(type -> {
|
|
Arrays.stream(DecisionType.values()).forEach(type -> {
|
|
|
if(dataType.contains(Integer.parseInt(type.getCode()))) {
|
|
if(dataType.contains(Integer.parseInt(type.getCode()))) {
|
|
|
List<String> tableIds = new ArrayList<>();
|
|
List<String> tableIds = new ArrayList<>();
|
|
@@ -108,7 +111,7 @@ public class DecisionTaskServiceImpl implements DecisionTaskService {
|
|
|
param.setType(Integer.parseInt(type.getCode()));
|
|
param.setType(Integer.parseInt(type.getCode()));
|
|
|
param.setSourceId(type.getSourceId());
|
|
param.setSourceId(type.getSourceId());
|
|
|
param.setDetailsName(type.getDetailsName());
|
|
param.setDetailsName(type.getDetailsName());
|
|
|
- param.setEwkt(shape);
|
|
|
|
|
|
|
+ param.setEwkt(finalShape);
|
|
|
param.setTableIds(tableIds);
|
|
param.setTableIds(tableIds);
|
|
|
decisionTaskMapper.insertDecisionIntersection(param);
|
|
decisionTaskMapper.insertDecisionIntersection(param);
|
|
|
}
|
|
}
|
|
@@ -120,4 +123,59 @@ public class DecisionTaskServiceImpl implements DecisionTaskService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ *
|
|
|
|
|
+ * 根据当前任务id,返回此次任务的所有结果,并且需要根据不同类型动态查询
|
|
|
|
|
+ *
|
|
|
|
|
+ *
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param taskId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<DecisionDetailsVo> detailsList(String taskId) {
|
|
|
|
|
+ if (StringUtils.isBlank(taskId)) {
|
|
|
|
|
+ throw new ServiceException("当前任务id不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ DecisionTask task = decisionTaskMapper.get(taskId);
|
|
|
|
|
+ if (task == null) {
|
|
|
|
|
+ throw new ServiceException("任务不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (task.getStatus().equals("0") || task.getStatus().equals("1")) {
|
|
|
|
|
+ throw new ServiceException("当前任务未执行完成");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<DecisionDetailsVo> resultList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ // 遍历所有 DecisionType,逐类型查询并组装结果
|
|
|
|
|
+ for (DecisionType decisionType : DecisionType.values()) {
|
|
|
|
|
+ DecisionTaskParamVo param = new DecisionTaskParamVo();
|
|
|
|
|
+ param.setTaskId(taskId);
|
|
|
|
|
+ param.setType(Integer.parseInt(decisionType.getCode()));
|
|
|
|
|
+ // 业务表名(不含 schema,xml 中固定拼接 vector.)
|
|
|
|
|
+ param.setTableName(decisionType.getTable());
|
|
|
|
|
+ // 业务表与 source_id 关联的字段名(如 zddm)
|
|
|
|
|
+ param.setJoinId(decisionType.getSourceId());
|
|
|
|
|
+ // 业务表动态查询字段列表(来自枚举定义,如 ["zddm", "qlrsjsyrlxm"])
|
|
|
|
|
+ param.setExtraFields(decisionType.getExtraFields());
|
|
|
|
|
+
|
|
|
|
|
+ List<Map<String, Object>> dataList = decisionTaskMapper.getDetailsList(param);
|
|
|
|
|
+
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dataList)) {
|
|
|
|
|
+ DecisionDetailsVo vo = new DecisionDetailsVo();
|
|
|
|
|
+ vo.setName(decisionType.getName());
|
|
|
|
|
+ vo.setType(Integer.parseInt(decisionType.getCode()));
|
|
|
|
|
+ vo.setDataList(dataList);
|
|
|
|
|
+ resultList.add(vo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return resultList;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|