lxw
2022-09-09 b0763a409a8bdcf984e50c47577889452464e39b
窗口配置
1个文件已添加
7个文件已修改
166 ■■■■ 已修改文件
src/main/java/com/whyc/controller/FileInfoController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/FileParamController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ActionUtil.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/FileParamToXml.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/XmlFileOpreate.java 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/FileParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/FileInfoService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/FileParamService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | 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,"修改文件");
    }
}