提交 6607e875 authored 作者: kxjia's avatar kxjia

完善风险监测

上级 e635f49f
package org.jeecg.modules.stm.baosong.controller; package org.jeecg.modules.stm.baosong.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.stm.baosong.entity.BaosongTask; import org.jeecg.modules.stm.baosong.entity.BaosongTask;
import org.jeecg.modules.stm.baosong.entity.BaosongTpl; import org.jeecg.modules.stm.baosong.entity.BaosongTpl;
...@@ -21,6 +22,8 @@ import javax.xml.transform.stream.StreamResult; ...@@ -21,6 +22,8 @@ import javax.xml.transform.stream.StreamResult;
import java.io.File; import java.io.File;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
public class CreateXmlFile { public class CreateXmlFile {
private static final Logger logger = LoggerFactory.getLogger(CreateXmlFile.class); private static final Logger logger = LoggerFactory.getLogger(CreateXmlFile.class);
...@@ -74,29 +77,39 @@ public class CreateXmlFile { ...@@ -74,29 +77,39 @@ public class CreateXmlFile {
Map<String, TaskRecordVo> allItems = new HashMap<>(); Map<String, TaskRecordVo> allItems = new HashMap<>();
Map<String, List<TaskRecordVo>> childrenByParent = new HashMap<>(); Map<String, List<TaskRecordVo>> childrenByParent = new HashMap<>();
Map<String,TaskRecordVo> codeMapItem = getCodeMapItem(dataList);
for (TaskRecordVo item : dataList) { for (TaskRecordVo item : dataList) {
String code = item.getCode(); String code = item.getCode();
String pcode = item.getPcode(); String pcode = item.getPcode();
if (code != null) { if (code != null) {
allItems.put(code, item); allItems.put(code, item);
} }
String content = item.getContent();
if (pcode != null && !pcode.trim().isEmpty()) { if (pcode != null && !pcode.trim().isEmpty()) {
childrenByParent.computeIfAbsent(pcode, k -> new ArrayList<>()).add(item); childrenByParent.computeIfAbsent(pcode, k -> new ArrayList<>()).add(item);
} }
}
if (content != null) {
if (content.startsWith("[{") && content.endsWith("}]")) {
List<TaskRecordVo> retList = jsonParserContent(item, codeMapItem);
if (retList != null && retList.size() > 0) {
for (TaskRecordVo vo : retList) {
String ppcode = vo.getPcode();
childrenByParent.computeIfAbsent(ppcode, k -> new ArrayList<>()).add(vo);
}
}
}
}
}
List<TaskRecordVo> rootChildren = childrenByParent.getOrDefault(rootElementName, new ArrayList<>()); List<TaskRecordVo> rootChildren = childrenByParent.getOrDefault(rootElementName, new ArrayList<>());
// 按itemid排序
rootChildren.sort(Comparator.comparingInt(TaskRecordVo::getItemid)); rootChildren.sort(Comparator.comparingInt(TaskRecordVo::getItemid));
// 处理根节点的每个子节点 // 处理根节点的每个子节点
for (TaskRecordVo child : rootChildren) { for (TaskRecordVo child : rootChildren) {
processItem(doc, rootElement, child, childrenByParent, allItems, ""); processItem(doc, rootElement, child, childrenByParent, allItems, "");
} }
// 保存XML // 保存XML
return saveXmlToFile(doc, filePath); return saveXmlToFile(doc, filePath);
...@@ -416,4 +429,51 @@ public class CreateXmlFile { ...@@ -416,4 +429,51 @@ public class CreateXmlFile {
return false; return false;
} }
} }
private List<TaskRecordVo> jsonParserContent(TaskRecordVo item, Map<String,TaskRecordVo> codeMapItem) {
ObjectMapper mapper = new ObjectMapper();
List<TaskRecordVo> retList = new ArrayList<>();
try {
String jsonStr = item.getContent();
List<Map<String, String>> data = mapper.readValue(jsonStr,
new TypeReference<List<Map<String, String>>>() {});
// 遍历数据
int ind=0;
for (int i = 0; i < data.size(); i++) {
Map<String, String> record = data.get(i);
ind++;
for (Map.Entry<String, String> entry : record.entrySet()) {
String strMapKey = item.getCode() + "_" + entry.getKey();
TaskRecordVo recordVo = codeMapItem.get(strMapKey);
if(recordVo==null) continue;
TaskRecordVo taskRecordVo = new TaskRecordVo();
taskRecordVo.setPcode(item.getCode());
taskRecordVo.setCode(entry.getKey());
taskRecordVo.setContent(entry.getValue());
taskRecordVo.setRind(ind);
taskRecordVo.setTitle(recordVo.getTitle());
taskRecordVo.setItemid(recordVo.getItemid());
taskRecordVo.setTaskid(item.getTaskid());
taskRecordVo.setTplid(item.getTplid());
retList.add(taskRecordVo);
}
}
return retList;
} catch (Exception e) {
e.printStackTrace();
}
return retList;
}
private Map<String,TaskRecordVo> getCodeMapItem(List<TaskRecordVo> dataList ){
Map<String,TaskRecordVo> retMap = new HashMap<>();
for(TaskRecordVo taskRecordVo:dataList) {
String strKey = taskRecordVo.getPcode()+"_" + taskRecordVo.getCode();
retMap.put(strKey,taskRecordVo);
}
return retMap;
}
} }
\ No newline at end of file
package org.jeecg.modules.stm.metric.controller; package org.jeecg.modules.stm.metric.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -367,6 +368,20 @@ public class MetricMonitorSetController extends JeecgController<MetricMonitorSet ...@@ -367,6 +368,20 @@ public class MetricMonitorSetController extends JeecgController<MetricMonitorSet
return Result.OK(metricMonitorSet); return Result.OK(metricMonitorSet);
} }
@GetMapping(value = "/queryByMtrcNo")
public Result<MetricMonitorSet> queryByMtrcNo(@RequestParam(name="mtrcNo",required=true) String mtrcNo) {
LambdaQueryWrapper<MetricMonitorSet> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MetricMonitorSet::getMtrcNo, mtrcNo);
MetricMonitorSet metricMonitorSet = metricMonitorSetService.getOne(wrapper);
if(metricMonitorSet == null) {
return Result.error("未找到对应数据");
}
return Result.OK(metricMonitorSet);
}
/** /**
* 导出excel * 导出excel
* *
......
...@@ -82,10 +82,10 @@ public class MetricReportController extends JeecgController<MetricReport, IMetri ...@@ -82,10 +82,10 @@ public class MetricReportController extends JeecgController<MetricReport, IMetri
} }
@GetMapping(value = "/queryAllList") @GetMapping(value = "/queryAllList")
public Result<Map<String,Object>> queryAllList(@RequestParam(name="mtrcNos") String mtrcNos, public Result<Map<String,Object>> queryAllList(
@RequestParam(name="stFillTime") String stFillTime, @RequestParam(name="mtrcNos", required=false) String mtrcNos,
@RequestParam(name="endFillTime") String endFillTime, @RequestParam(name="stFillTime", required=false) String stFillTime,
HttpServletRequest req) { @RequestParam(name="endFillTime", required=false) String endFillTime, HttpServletRequest req) {
try { try {
String[] mtrcNoAry = mtrcNos.split(","); String[] mtrcNoAry = mtrcNos.split(",");
Map<String,Object> retMap = new HashMap<>(); Map<String,Object> retMap = new HashMap<>();
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<select id="queryTaskRecordForXml" resultType="org.jeecg.modules.stm.baosong.entity.TaskRecordVo"> <select id="queryTaskRecordForXml" resultType="org.jeecg.modules.stm.baosong.entity.TaskRecordVo">
SELECT B.content,B.taskid,A.id as itemid,B.rind, A.tplid,A.code,A.pcode,A.title SELECT B.content,B.taskid,A.id as itemid,B.rind, A.tplid,A.code,A.pcode,A.title
FROM baosong_tpl_item A FROM baosong_tpl_item A
LEFT JOIN baosong_task_record B ON A.id=B.itemid AND B.taskid=#{query.taskid} LEFT JOIN baosong_task_record B ON A.id=B.itemid AND B.taskid=#{query.taskid}
<where> <where>
<if test="query.tplid != null"> <if test="query.tplid != null">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论