whycxzp
2024-01-13 c628cbf7942988ef5d0c6dd7fae447a6099a492b
src/main/java/com/whyc/service/FileParamService.java
@@ -3,14 +3,17 @@
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.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.*;
import com.whyc.mapper.*;
import com.whyc.pojo.*;
import com.whyc.util.MathUtil;
import com.whyc.util.MessageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.lang.reflect.Field;
@@ -50,10 +53,10 @@
                fileInfo.setFileNameTmp(fileName+" tmp1.~xml");
                return new Response().setII(1,fileInfo!=null,fileInfo,"返回解析数据");
            }else{
                return new Response().set(1,false,"文件路径不正确");
                return new Response().set(1,false,MessageUtils.getMessage("filePathIncorrect"));
            }
        }else{
            return new Response().set(1,false,"文件路径不正确");
            return new Response().set(1,false,MessageUtils.getMessage("filePathIncorrect"));
        }
    }
    //解析xml文件(传参一个文件夹)
@@ -81,7 +84,7 @@
            }
            return new Response().setII(1,list.size()>0,list,"返回解析数据");
        }else{
            return new Response().set(1,false,"文件路径不正确");
            return new Response().set(1,false, MessageUtils.getMessage("filePathIncorrect"));
        }
    }
@@ -122,7 +125,6 @@
        if(map.size()>0){
            bl=XmlFileOpreate.writeXml(map,filePath);
        }
        return new Response().setII(1,bl,map,"修改文件");
    }
    //修改文件对应的数据库数据
@@ -153,14 +155,16 @@
        List<Integer> list=mapper.getMonVolStd();
        return new Response().setII(1,list.size()>0,list,"返回所有的标称电压类型");
    }
    //按照筛选条件查询数据库信息
    public Response getDataByCondition(Date testTime1, Date testTime2, String battVol,int pageCurr,int pageSize) {
        PageHelper.startPage(pageCurr,pageSize);
    //按照筛选条件查询数据库信息(内阻评价:内阻越大越差),然后再根据内阻手动分页
    public Response getDataByCondition(Date testTime1, Date testTime2, String battVol,int pageCurr,int pageSize,int flag) {
        //PageHelper.startPage(pageCurr,pageSize);
        List<FileParam> list=mapper.getDataByCondition(testTime1,testTime2,Float.valueOf(battVol));
        List flagList=new ArrayList();//存放评价结果
        QueryWrapper testParamWrapper=new QueryWrapper();
        testParamWrapper.eq("enabled",1);
        TestParam testParam=testParamMapper.selectOne(testParamWrapper);
        float std=0f;
        int resFlag=0;//整组内阻标识,1差,2良,3优
        if(list!=null&&list.size()>0){
            for (FileParam fparam:list) {
                List<BattgroupInfo> binfInfoList=fparam.getBattInfoList();
@@ -168,7 +172,7 @@
                if(binfInfoList!=null&&binfInfoList.size()>0){
                    for (BattgroupInfo binfo:binfInfoList) {
                        List<BattgroupData> binfDataList=binfo.getBattDataList();
                        float minStd=9999999.0f;
                        float maxStd=0f;
                        List listBv=new ArrayList();
                        List listBr=new ArrayList();
                        List listBs=new ArrayList();
@@ -179,22 +183,42 @@
                                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());
                                if( Float.parseFloat(bData.getBr())>=maxStd){
                                    maxStd= Float.parseFloat(bData.getBr());
                                }
                            }
                            binfo.setSdBasebv(MathUtil.getStandardDeviation(listBv));
                            binfo.setSdBasebr(MathUtil.getStandardDeviation(listBr));
                            binfo.setSdBasebs(MathUtil.getStandardDeviation(listBs));
                            binfo.setSdBasecr(MathUtil.getStandardDeviation(listCr));
                            binfo.setBrJudge(MathUtil.getJudge(minStd,std,testParam));
                            resFlag=MathUtil.getflag(maxStd,std,testParam);
                            binfo.setBrJudge(MathUtil.getJudge(resFlag));
                        }
                        break;
                    }
                }
                if(flag==0){//为0是全部
                    flagList.add(fparam);
                }else{
                    if(flag==resFlag){
                        flagList.add(fparam);
                    }
                }
            }
        }
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list.size()>0,pageInfo,"筛选数据库信息");
        //创建Page类
        Page page = new Page(pageCurr, pageSize);
        //为Page类中的total属性赋值
        int total = flagList.size();
        page.setTotal(total);
       //计算当前需要显示的数据下标起始值
        int startIndex = (pageCurr - 1) * pageSize;
        int endIndex = Math.min(startIndex + pageSize,total);
        //从链表中截取需要显示的子链表,并加入到Page
        page.addAll(flagList.subList(startIndex,endIndex));
        //以Page创建PageInfo
        PageInfo pageInfo = new PageInfo<>(page);
        return new Response().setII(1,flagList.size()>0,pageInfo,"筛选数据库信息");
    }
    public FileParam getByFileId(String fileId) {
@@ -241,4 +265,21 @@
        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,"修改数据");
    }
    //更改台站下公用参数
    @Transactional
    public Response updateFileParamByStationId(FileParam fileParam, int stationId) {
        //查询基站下所有的文件id
        List<String> list=infoMapper.selectFileIds(stationId);
        int flag=0;
        for (String fileId:list) {
            flag+=paramMapper.updateParam(fileParam,fileId);
        }
        return new Response().set(1,flag>0,"修改数据");
    }
}