whycxzp
2022-11-17 83d2a2e0b10ed7e17dffc997d259a42b5f45260d
src/main/java/com/whyc/service/FileParamService.java
@@ -1,13 +1,12 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.*;
import com.whyc.mapper.BattGroupDataMapper;
import com.whyc.mapper.FileParamMapper;
import com.whyc.mapper.TestParamMapper;
import com.whyc.mapper.*;
import com.whyc.pojo.*;
import com.whyc.util.MathUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +29,13 @@
    private FileParamMapper paramMapper;
    @Autowired(required = false)
    private FileInfoMapper infoMapper;
    @Autowired(required = false)
    private TestParamMapper testParamMapper;
    @Autowired(required = false)
    private BattgroupInfoMapper groupInfoMapper;
    //解析xml文件(传参一个文件)
    public Response getXmlValue(String filePath) {
@@ -39,6 +44,7 @@
            if (file.isFile()) {
                FileInfo fileInfo = XmlFileOpreate.readXml(filePath);
                fileInfo.setFileUrl(filePath);
                fileInfo.setFileId("0");
                String fileName = filePath.substring(filePath.lastIndexOf("\\")+1);
                fileInfo.setFileName(fileName);
                fileInfo.setFileNameTmp(fileName+" tmp1.~xml");
@@ -81,6 +87,10 @@
    //通过修改属性窗口值来修改文件值
    public Response updateXmlByFileParam(FileParam fileParam,String filePath) {
        //修改文件对应的数据库数据
        //paramMapper.updateParamByFileUrl(fileParam,filePath);
        updateParamByFileUrl(fileParam,filePath);
        Map<String,String> map=new HashMap<>();
        Class paramClass=fileParam.getClass();
        // 获取所有的属性数组
@@ -114,6 +124,21 @@
        }
        return new Response().setII(1,bl,map,"修改文件");
    }
    //修改文件对应的数据库数据
    public void updateParamByFileUrl(FileParam fileParam,String filePath){
        //根据文件路径查出file_id
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("file_url",filePath);
        List<FileInfo> list=infoMapper.selectList(wrapper);
        if(list!=null&&list.size()>0){
            for (FileInfo info:list){
                //修改参数信息
                paramMapper.updateParam(fileParam,info.getFileId());
            }
        }
    }
    //通过修改属性窗口值来修改文件值
    public Response updateXmlByParamMap(Map<String,String> map,String filePath) {
        boolean bl=false;
@@ -128,9 +153,9 @@
        return new Response().setII(1,list.size()>0,list,"返回所有的标称电压类型");
    }
    //按照筛选条件查询数据库信息
    public Response getDataByCondition(Date testTime1, Date testTime2, int battVol,int pageCurr,int pageSize) {
    public Response getDataByCondition(Date testTime1, Date testTime2, String battVol,int pageCurr,int pageSize) {
        PageHelper.startPage(pageCurr,pageSize);
        List<FileParam> list=mapper.getDataByCondition(testTime1,testTime2,battVol);
        List<FileParam> list=mapper.getDataByCondition(testTime1,testTime2,Float.valueOf(battVol));
        QueryWrapper testParamWrapper=new QueryWrapper();
        testParamWrapper.eq("enabled",1);
        TestParam testParam=testParamMapper.selectOne(testParamWrapper);
@@ -149,12 +174,12 @@
                        List listCr=new ArrayList();
                        if(binfDataList!=null&&binfDataList.size()>0) {
                            for (BattgroupData bData : binfDataList) {
                                listBv.add(bData.getBv());
                                listBr.add(bData.getBr());
                                listBs.add(bData.getBs());
                                listCr.add(bData.getCr());
                                if(bData.getBr()<=minStd){
                                    minStd=bData.getBr();
                                listBv.add(Float.valueOf(bData.getBv()));
                                listBr.add(Float.valueOf(bData.getBr()));
                                listBs.add(Float.valueOf(bData.getBs()));
                                listCr.add(Float.valueOf(bData.getCr()));
                                if( Float.parseFloat(bData.getBr())<=minStd){
                                    minStd= Float.parseFloat(bData.getBr());
                                }
                            }
                            binfo.setSdBasebv(MathUtil.getStandardDeviation(listBv));
@@ -179,9 +204,46 @@
    //删除基站下数据
    public Response deleteDataById(int stationId, int fileId) {
        //删除所有文件数据(指定机房id和文件id)
        dataMapper.deleteDataAndInfo(stationId,fileId);
        //dataMapper.deleteDataAndInfo(stationId,fileId);
        deleteDataAndInfo(stationId,fileId);
        //删除所有文件参数
        paramMapper.deleteParamByFileId(fileId);
        //移除机房下挂在的文件
        infoMapper.deleteFileInStation(stationId,fileId);
        return new Response().set(1,"删除成功!");
    }
    //3根据(stationId,fileId)删除groupinfo和groupdata数据
    public void deleteDataAndInfo(int stationId,int fileId){
        //先查询出对应的电池组id然后删除
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("station_id",stationId);
        wrapper.eq("file_id",fileId);
        List<BattgroupInfo> list=groupInfoMapper.selectList(wrapper);
        if(list!=null&&list.size()>0){
            for (BattgroupInfo ginfo:list) {
                UpdateWrapper dataWrapper=new UpdateWrapper();
                dataWrapper.eq("battGroup_id",ginfo.getBattgroupId());
                dataMapper.delete(dataWrapper);
            }
        }
        //再删除groupinfo
        UpdateWrapper infoWrapper=new UpdateWrapper();
        infoWrapper.eq("station_id",stationId);
        infoWrapper.eq("file_id",fileId);
        groupInfoMapper.delete(infoWrapper);
    }
    //根据fileId获取参数信息
    public Response getParamByFileId(int fileId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("file_id",fileId);
        wrapper.last("limit 1");
        FileParam fileParam=mapper.selectOne(wrapper);
        return new Response().setII(1,fileParam!=null,fileParam,"返回数据");
    }
    //根据fileId通过修改属性窗口值来修改数据库属性
    public Response updateFileParamByFileId(FileParam fileParam, String fileId) {
        int flag=paramMapper.updateParam(fileParam,fileId);
        return new Response().set(1,flag>0,"修改数据");
    }
}