package com.fgkj.services;
|
|
import com.fgkj.dto.*;
|
import com.fgkj.fbo.CsvData;
|
import com.fgkj.fbo.FboDataInf;
|
import com.fgkj.mapper.impl.BattInfMapper;
|
import com.fgkj.mapper.impl.Battresdata_infMapper;
|
import com.fgkj.mapper.impl.Batttestdata_infMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
@Service
|
public class FileService {
|
|
ServiceModel model = new ServiceModel();
|
|
@Resource
|
private BattInfMapper battInfMapper;
|
@Resource
|
private Batttestdata_infMapper battTestDataInfMapper;
|
@Resource
|
private Battresdata_infMapper battResDataInfMapper;
|
|
|
private String[] unuploadReasonFbo = new String[] { "无", "已经存在该数据", "标称容量不符合",
|
"单体数量不符合", "标称单体电压不符合", "放电时长不够", };
|
//res不能上传原因
|
private String[] unuploadReasonRes = new String[] {
|
"无",
|
"已经存在该数据",
|
"标称容量不符合",
|
"单体数量不符合",
|
"标称单体电压不符合",
|
"放电时长不够",
|
"找不到目标电池组",
|
"数据格式不支持",
|
};
|
|
// 返回Fbo上传后显示的数据
|
public ServiceModel addBattDataToTable(int bg_id, String file_name,
|
FboDataInf data_inf, int data_block_count) {
|
|
Calendar mcld = Calendar.getInstance();
|
mcld.set(Calendar.YEAR, 2000 + data_inf.TestStartTime.year);
|
mcld.set(Calendar.MONTH, data_inf.TestStartTime.month);
|
mcld.set(Calendar.DATE, data_inf.TestStartTime.day);
|
mcld.set(Calendar.HOUR_OF_DAY, data_inf.TestStartTime.hour);
|
mcld.set(Calendar.MINUTE, data_inf.TestStartTime.minute);
|
mcld.set(Calendar.SECOND, data_inf.TestStartTime.second);
|
//System.out.println("addBattDataToTable "+DateUtil.sdf.format(mcld.getTime()));
|
Date test_starttime = mcld.getTime();
|
//System.out.println("test_starttime: " + test_starttime);
|
boolean data_ok = true;
|
int data_reason_type = 0;
|
|
BattInf binf = new BattInf();
|
Batttestdata_inf tdata = new Batttestdata_inf();
|
binf.setBattGroupId(bg_id);
|
tdata.setBattGroupId(bg_id);
|
tdata.setTest_starttime(test_starttime);
|
float batt_cap = 0f;
|
int mon_count = 0;
|
float mon_vol = 0f;
|
List<BattInf> listB = battInfMapper.serchByCondition(binf);
|
if (listB != null && listB.size() > 0) {
|
batt_cap = listB.get(0).getMonCapStd();
|
mon_count = listB.get(0).getMonCount();
|
mon_vol = listB.get(0).getMonVolStd();
|
}
|
|
List<Batttestdata_inf> listT = battTestDataInfMapper
|
.serchTest_record_count(tdata);
|
if (listT != null && listT.size() > 0) {
|
// int test_record_count = listT.get(0).getTest_record_count();
|
data_reason_type = 1;
|
}
|
|
if (0 == data_reason_type) {
|
if (batt_cap != data_inf.STDCap) {
|
data_reason_type = 2;
|
} else if (mon_count != data_inf.BattSum) {
|
data_reason_type = 3;
|
} else if (mon_vol != data_inf.MonomerVol) {
|
data_reason_type = 4;
|
}
|
}
|
|
if (data_reason_type > 0) {
|
data_ok = false;
|
}
|
|
List<Object> list = new ArrayList<Object>();
|
list.add(String.valueOf(bg_id));
|
list.add(file_name);
|
list.add(data_ok);
|
list.add(unuploadReasonFbo[data_reason_type]);
|
list.add(false);
|
list.add(0);
|
list.add(String.valueOf(data_inf.STDCap));
|
list.add(String.valueOf(data_inf.BattSum));
|
list.add(String.valueOf(data_inf.MonomerVol));
|
list.add(FboDataInf.getTestType(data_inf.DataType));
|
list.add(FboDataInf.getDeviceType(data_inf.Device));
|
list.add(Com.get_DTF(mcld.getTime(), Com.DTF_YMDhms));
|
list.add(+data_inf.TestTimeLong.hour + ":"
|
+ data_inf.TestTimeLong.minute + ":"
|
+ data_inf.TestTimeLong.second);
|
list.add(String.format("%1.1f", data_inf.TestCur));
|
list.add(String.format("%1.0f", data_inf.TestCap));
|
list.add(String.valueOf(data_inf.SaveInterval));
|
list.add(String.valueOf(data_block_count));
|
list.add(String.valueOf(data_inf.SMinIndex[0] + 1));
|
list.add(String.format("%1.3f", data_inf.SMinVol[0]));
|
list.add(FboDataInf.getStopType(data_inf.StopType));
|
|
if (list.size() > 0) {
|
model.setCode(1);
|
model.setData(list);
|
} else {
|
model.setCode(0);
|
}
|
return model;
|
}
|
//返回Res上传后显示的数据
|
public ServiceModel addResDataToTable(int bg_id, String file_name, CsvData res_data)
|
{
|
|
Calendar mcld = Calendar.getInstance();
|
mcld.setTime(res_data.m_TestTime);
|
|
Date test_starttime=mcld.getTime();
|
|
boolean data_ok = true;
|
int data_reason_type = 0;
|
|
if(false == res_data.m_DataOk) {
|
data_reason_type = 7;
|
}
|
BattInf binf=new BattInf();
|
Battresdata_inf rinf=new Battresdata_inf();
|
binf.setBattGroupId(bg_id);
|
rinf.setBattGroupId(bg_id);
|
rinf.setTest_starttime(test_starttime);
|
float batt_cap=0f;
|
int mon_count=0;
|
float mon_vol=0f;
|
if(0 == data_reason_type) {
|
List<BattInf> listB=battInfMapper.serchByCondition(binf);
|
if(listB!=null&&listB.size()>0){
|
batt_cap = listB.get(0).getMonCapStd();
|
mon_count = listB.get(0).getMonCount();
|
mon_vol = listB.get(0).getMonVolStd();
|
}
|
List<Battresdata_inf> listR=battResDataInfMapper.serchTest_record_count(rinf);
|
if(listR!=null&&listR.size()>0){
|
int test_record_count = listR.get(0).getTest_record_count();
|
data_reason_type = 1;
|
}
|
//******************************************************************//
|
if(bg_id < 1) {
|
data_reason_type = 6;
|
} else if(mon_count != res_data.m_BattSum) {
|
data_reason_type = 3;
|
} else if(mon_vol != res_data.m_MonomerVol) {
|
data_reason_type = 4;
|
}
|
}
|
|
if(data_reason_type > 0) {
|
data_ok = false;
|
}
|
//System.out.println("m_TestType="+res_data.m_TestType+"m_DevType="+res_data.m_DevType);
|
List<Object> list = new ArrayList<Object>();
|
list.add(String.valueOf(bg_id));
|
list.add(file_name);
|
list.add(data_ok);
|
list.add(unuploadReasonRes[data_reason_type]);
|
list.add(false);
|
list.add(0);
|
list.add(String.valueOf(batt_cap));
|
list.add(String.valueOf(res_data.m_BattSum));
|
list.add(String.valueOf(res_data.m_MonomerVol));
|
list.add(FboDataInf.getTestType(res_data.m_TestType));
|
list.add(FboDataInf.getDeviceType(res_data.m_DevType));
|
list.add(Com.get_DTF(mcld.getTime(), Com.DTF_YMDhms));
|
list.add(String.valueOf(res_data.m_MinNum));
|
list.add(String.format("%1.0f", res_data.m_MinValue));
|
if(list.size()>0){
|
model.setCode(1);
|
model.setData(list);
|
}else{
|
model.setCode(0);
|
}
|
return model;
|
}
|
|
}
|