whyclxw
2025-05-07 45ef9e340f9bb4b98fd88a758343470dfe125cb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.BattTestData;
import com.whyc.dto.Response;
import com.whyc.dto.paramter.POIWord;
import com.whyc.dto.paramter.TestDataInfDoc;
import com.whyc.mapper.BatttestdataInfMapper;
import com.whyc.mapper.BatttestdataMapper;
import com.whyc.mapper.CommonMapper;
import com.whyc.pojo.BattalarmData;
import com.whyc.pojo.BatttestdataClear;
import com.whyc.pojo.BatttestdataId;
import com.whyc.pojo.BatttestdataInf;
import com.whyc.util.ActionUtil;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
@Service
public class BatttestdataService {
    @Resource
    private BatttestdataMapper mapper;
 
    @Resource
    private SubTablePageInfoService subService;
 
    @Resource
    private BatttestdataInfMapper tinfMapper;
 
    @Resource
    private CommonMapper commonMapper;
 
    //查询历史数据
    public Response findhistory(int battGroupId, int testRecordCount, int dataNew) {
        BatttestdataId btd = mapper.serchMaxAndMintime(battGroupId, testRecordCount);
        int number = btd.getRecordNum();//总数
        int roteN = 0;
        //int endN= BattTestData.RC_NUM_PARAM;//总笔数
        int endN = dataNew;//总笔数
        //去除筛选,将全部数据取出
        if (number <= endN) {
            roteN = 1;
        } else {
            if (number % endN == 0) {
                roteN = number / endN;
            } else {
                roteN = number / endN + 1;
            }
            //roteN = 1;
        }
        List list = mapper.findhistory(battGroupId, testRecordCount, roteN, btd.getNum().intValue(), btd.getTestType());
        PageInfo pageInfo = new PageInfo(list);
        return new Response().set(1, pageInfo);
    }
 
    //word导出
    public List<TestDataInfDoc> searchWordExport(POIWord poiWord) {
        poiWord.setRecordNumList(Arrays.asList(poiWord.getRecordNums().split(",")));
        List<TestDataInfDoc> list = mapper.searchWordExport(poiWord);
        return list;
    }
 
    //测试清洗放电数据
    public Response clearTdata(int battGroupId, int testRecordCount) {
        //获取总的放电电流的总值
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("battGroupId",battGroupId);
        wrapper.eq("test_record_count",testRecordCount);
        wrapper.last("limit 1");
        BatttestdataInf tinf=tinfMapper.selectOne(wrapper);
        //平均值
        float avgCurr= (float) (((tinf.getTestCap()*3600)/tinf.getTestTimelong())*0.8);
        //获取总的放电记录
        List<BatttestdataId> list=subService.getAllTdata(battGroupId,testRecordCount);
        int recordNum=tinf.getRecordNum();
        for (BatttestdataId tdata:list){
            float testCurr=tdata.getTestCurr();
            if(Math.abs(avgCurr)<=Math.abs(testCurr)){
                recordNum= tdata.getRecordNum();
                break;
            }
        }
        //查询表是否存在,不存在需要先创建表
        String tableName = commonMapper.existTable("db_batt_testdata", "tb_batttestdata_clear_"+battGroupId);
        if(tableName==null){
            subService.creatClear(battGroupId);
        }
        //存入clear表
        subService.insertClear(battGroupId,testRecordCount,recordNum);
        //删除记录(超过这个recordNum的数据)
        subService.deleteData(battGroupId,testRecordCount,recordNum);
        //inf表recordNum更改
        UpdateWrapper updateWrapper=new UpdateWrapper();
        updateWrapper.eq("battGroupId",battGroupId);
        updateWrapper.set("record_num",recordNum);
        tinfMapper.update((BatttestdataInf) ActionUtil.objeNull,updateWrapper);
        return  new Response().set(1,true);
    }
    //测试恢复放电数据
    public Response recoverTdata(int battGroupId, int testRecordCount) {
        //查询表是否存在,不存在需要先创建表
        String tableName = commonMapper.existTable("db_batt_testdata", "tb_batttestdata_clear_"+battGroupId);
        if(tableName==null){
            subService.creatClear(battGroupId);
        }else{
            //先查询出所有的clear记录
            List<BatttestdataClear> list=subService.getRecoveInf(battGroupId,testRecordCount);
            //恢复至testdata
            subService.insertRecover(battGroupId,testRecordCount);
            //恢复inf
            if(list!=null){
                for (BatttestdataClear clear:list) {
                    UpdateWrapper wrapper=new UpdateWrapper();
                    wrapper.set("record_num",clear.getRecordNum());
                    wrapper.eq("battGroupId",battGroupId);
                    wrapper.eq("test_record_count",testRecordCount);
                    tinfMapper.update((BatttestdataInf) ActionUtil.objeNull,wrapper);
                }
            }
            //删除记录(超过这个recordNum的数据)
            subService.deleteRecover(battGroupId,testRecordCount);
        }
        return  new Response().set(1,true);
    }
}