src/main/java/com/whyc/controller/FileInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/FileParamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/ActionUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/FileParamToXml.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/XmlFileOpreate.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/FileParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/FileInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/FileParamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/FileInfoController.java
@@ -1,14 +1,14 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.FileInfo; import com.whyc.pojo.FileParam; import com.whyc.service.FileInfoService; import com.whyc.service.FileParamService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; @Api(tags = "文件") @RestController @@ -21,9 +21,15 @@ private FileParamService paramService; @ApiOperation(value = "获取文件信息xml属性") @GetMapping("getXmlFileParam") public Response getXmlFileParam(){ return paramService.getXmlFileParam(); @ApiOperation(value = "解析xml文件") @GetMapping("getXmlValue") public Response getXmlValue(@RequestParam String filePath){ return paramService.getXmlValue(filePath); } @ApiOperation("通过修改属性窗口值来修改文件值") @PostMapping("updateXmlByFileParam") public Response updateXmlByFileParam(@RequestBody FileParam fileParam,@RequestParam String filePath){ return paramService.updateXmlByFileParam(fileParam,filePath); } } src/main/java/com/whyc/controller/FileParamController.java
New file @@ -0,0 +1,17 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.service.FileParamService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("fileParam") public class FileParamController { @Autowired private FileParamService service; } src/main/java/com/whyc/dto/ActionUtil.java
@@ -14,10 +14,12 @@ import javax.servlet.http.HttpSession; import java.io.*; import java.lang.reflect.Type; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class ActionUtil { @@ -27,6 +29,7 @@ public static SimpleDateFormat sdfwithday = new SimpleDateFormat("yyyy-MM-dd"); public static SimpleDateFormat sdfwithFTP = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); public static SimpleDateFormat sdfwithALL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.US); /* * 获取HttpServletRequest */ src/main/java/com/whyc/dto/FileParamToXml.java
@@ -58,6 +58,7 @@ public static String getNameByType(String type){ FileParamToXml[] enums=values(); for (FileParamToXml param:enums) { //System.out.println(param.getParamName()); if (param.getParamName().equals(type)){ return param.getXmlName(); } src/main/java/com/whyc/dto/XmlFileOpreate.java
@@ -5,6 +5,7 @@ import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; @@ -139,7 +140,7 @@ return fileInfo; } public static boolean writeXml(String xmlFilePath, Map<String,String> map){ public static boolean writeXml( Map<String,String> map,String xmlFilePath){ boolean res=true; try { SAXReader reader = new SAXReader(); @@ -147,7 +148,7 @@ //获取根元素 Element rootElement = document.getRootElement(); //获取根元素下的所有子元素 List<Element> list = rootElement.elements(); /*List<Element> list = rootElement.elements(); if(list!=null&&map!=null){ for (Element e:list) { for (Map.Entry<String, String> entry:map.entrySet()) { @@ -164,7 +165,14 @@ writer.write( document ); }else{ res=false; } }*/ Node node= document.selectSingleNode("//property[@name='cronExpression']/value");//确保节点是真的唯一 OutputFormat format = OutputFormat.createPrettyPrint(); //format.setEncoding("UTF-8");//默认的编码就是UTF-8 XMLWriter writer = new XMLWriter( new FileOutputStream(xmlFilePath), format ); writer.write( document ); } catch (DocumentException | FileNotFoundException | UnsupportedEncodingException e) { res = false; e.printStackTrace(); @@ -177,12 +185,39 @@ public static void main(String[] args) { String filePath="D://2022-06-14 16-02-34.xml"; String filePath1="D://test.xml"; Map map=new HashMap() ; //FileInfo fileInfo=XmlFileOpreate.readXml(filePath); //System.out.println(fileInfo); Map map=new HashMap(); map.put("test1","李军"); map.put("test2","张辉"); XmlFileOpreate.writeXml(filePath1,map); /* map.put("ChainRes", "50.0"); map.put("battTestNum","9"); map.put("battModel","SD-001"); map.put("batt_res","4.0"); map.put("ResBadCoeK4","1.6"); map.put("battlineName","一号线"); map.put("evaluation_mode","0"); map.put("TEST_TIME","2022-06-13 16:06:19"); map.put("battErrFlag","1"); map.put("gropNum","2"); map.put("VolHighCoeK2","1.2"); map.put("battBatch","20170602"); map.put("batt_vol","12.0"); map.put("batt_cap","100.0"); map.put("sysID","B20220613160151"); map.put("batt_count","24"); map.put("uploadflag","0"); map.put("uploadTime","null"); map.put("battTHA","0"); map.put("VolLowCoeK1","0.8"); map.put("battFaultNum","2"); map.put("HighTempAlarm","50"); map.put("VERSION","V2.0"); map.put("ResGoodCoeK3","1.25"); map.put("sample_percent","30");*/ map.put("VERSION","V2.0"); /* map.put("battBrand","双登lxw"); map.put("batt_group_name","后备电源室1#UPS系统lxw"); map.put("battStation","鼓楼站lxw");*/ XmlFileOpreate.writeXml(map,filePath); } } src/main/java/com/whyc/pojo/FileParam.java
@@ -1,6 +1,7 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.*; @@ -34,6 +35,7 @@ private String fileId; @ApiModelProperty(value = "测试时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date testTime; @ApiModelProperty(value = "版本") @@ -41,6 +43,7 @@ private String version; @ApiModelProperty(value = "上传时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date uploadTime; @ApiModelProperty(value = "是否上传标志(0:没有上传 1:已上传)") src/main/java/com/whyc/service/FileInfoService.java
@@ -1,7 +1,19 @@ package com.whyc.service; import com.whyc.dto.ActionUtil; import com.whyc.dto.FileParamToXml; import com.whyc.dto.Response; import com.whyc.pojo.FileParam; import org.springframework.stereotype.Service; import java.lang.reflect.Field; import java.text.ParseException; import java.util.HashMap; import java.util.Map; @Service public class FileInfoService { } src/main/java/com/whyc/service/FileParamService.java
@@ -1,14 +1,67 @@ package com.whyc.service; import com.whyc.dto.ActionUtil; import com.whyc.dto.FileParamToXml; import com.whyc.dto.Response; import com.whyc.dto.XmlFileOpreate; import com.whyc.pojo.FileInfo; import com.whyc.pojo.FileParam; import org.springframework.stereotype.Service; import java.io.File; import java.lang.reflect.Field; import java.text.ParseException; import java.util.HashMap; import java.util.Map; @Service public class FileParamService { //获取文件信息xml属性 public Response getXmlFileParam() { return new Response().setII(1,true, FileParamToXml.values(),"xml属性"); //解析xml文件 public Response getXmlValue(String filePath) { File file=new File(filePath); if(file.exists()){ FileInfo fileInfo=XmlFileOpreate.readXml(filePath); return new Response().setII(1,fileInfo!=null,fileInfo,"返回解析数据"); }else{ return new Response().set(1,false,"文件路径不正确"); } } //通过修改属性窗口值来修改文件值 public Response updateXmlByFileParam(FileParam fileParam,String filePath) { Map<String,String> map=new HashMap<>(); Class paramClass=fileParam.getClass(); // 获取所有的属性数组 Field[] fields = paramClass.getDeclaredFields(); for (Field field:fields) { field.setAccessible(true); try { String paramName=field.getName(); Object obj=field.get(fileParam); if(obj==null){ obj="null"; } String paramValue=obj.toString(); if(field.getType().toString().equals("class java.util.Date")){ if(!paramValue.equals("null")){ paramValue= ActionUtil.sdfwithALL.format(ActionUtil.df.parse(paramValue)); } } String xmlName=FileParamToXml.getNameByType(paramName); if(xmlName!=null&&!xmlName.isEmpty()){ map.put(xmlName,paramValue); } } catch (IllegalAccessException | ParseException e) { e.printStackTrace(); } } boolean bl=false; if(map.size()>0){ bl=XmlFileOpreate.writeXml(map,filePath); } return new Response().setII(1,bl,map,"修改文件"); } }