Commit 20d42486 authored by tianchao's avatar tianchao

1.过滤数据

parent a3c0f349
......@@ -399,7 +399,7 @@ public class ExcelUtils {
}else {
Double doubleValue = cell.getNumericCellValue();
// 格式化科学计数法,取一位整数
DecimalFormat df = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.00000");
returnValue = df.format(doubleValue);
}
break;
......
......@@ -95,23 +95,40 @@ public class BaseDataService {
public XListResult<QueryBaseDataOutput> queryBaseData(XContext context, GetBaseDataInput input){
BaseDataMapper mapper = context.getBean(BaseDataMapper.class);
QueryWrapper<BaseDataEnt> queryWrapper = new QueryWrapper<>();
Date beginTime ;
Date endTime ;
if(XStringUtils.isEmpty(input.getDataDate())){
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(new Date()));
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(new Date()));
beginTime = XDateUtils.getDayBeginTime(new Date());
endTime = XDateUtils.getDayEndTime(new Date());
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
}else {
if(input.getDataDate().contains("@")){
String[] dataDates = input.getDataDate().split("@");
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0])));
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1])));
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0]));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1]));
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
}else {
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate())));
queryWrapper.lambda().le(BaseDataEnt::getDataDate, XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate())));
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate()));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate()));
queryWrapper.lambda().ge(BaseDataEnt::getDataDate, beginTime);
queryWrapper.lambda().le(BaseDataEnt::getDataDate, endTime);
}
}
queryWrapper.lambda().eq(BaseDataEnt::getLineId, input.getLineId());
queryWrapper.lambda().orderByAsc(BaseDataEnt::getDataDate);
List<BaseDataEnt> list = mapper.selectList(queryWrapper);
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_pre" , XDateUtils.getString(beginTime) , XDateUtils.getString(endTime));
Map<String , Object> map = getCalcData(context , calcBaseDataInput);
list.stream().forEach(item->{
String dataDate = XDateUtils.getString(item.getDataDate());
if(map.get(dataDate) != null &&
XStringUtils.isNotEmpty(map.get(dataDate).toString())){
item.setPredictedPower(new BigDecimal(map.get(dataDate).toString()));
}
});
List<QueryBaseDataOutput> outputs = XCopyUtils.copyNewList(list , QueryBaseDataOutput.class);
return XListResult.success(outputs);
}
......@@ -187,16 +204,10 @@ public class BaseDataService {
.le(BaseDataEnt::getDataDate,maxDate);
mapper.delete(queryWrapper);
BaseDataViewMapper viewMapper = context.getBean(BaseDataViewMapper.class);
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput(input.getWellOuId() , input.getLineId() , "train_pre" , XDateUtils.getString(minDate) , XDateUtils.getString(maxDate));
Map<String , Object> map = getCalcData(context , calcBaseDataInput);
dataList.stream().forEach(item->{
String dataDate = XDateUtils.getString(item.getDataDate());
if(map.get(dataDate) != null &&
XStringUtils.isNotEmpty(map.get(dataDate).toString())){
item.setPredictedPower(new BigDecimal(map.get(dataDate).toString()));
}
});
viewMapper.batchInsert(dataList);
//进行训练
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_val" , XDateUtils.getString(minDate) , XDateUtils.getString(maxDate));
doTrainData(context , calcBaseDataInput);
}catch (Exception e){
return XServiceResult.error(-1,e.getMessage());
}
......@@ -238,9 +249,36 @@ public class BaseDataService {
returnMap = XJsonUtils.toMap(ret.toString());
return returnMap;
}catch (Exception e) {
throw new RuntimeException("调用预测接口失败");
return returnMap;
}
}
public void doTrainData(XContext context, CalcBaseDataInput calcBaseDataInput ){
try {
String jsonString = XJsonUtils.toJson(calcBaseDataInput);
context.getLogger().info(jsonString);
Object ret = HttpUtils.send2("http://121.36.43.217:8098/model/train",
jsonString);
}catch (Exception e) {
throw new RuntimeException("调用预测接口失败");
}
}
@XApiAnonymous
@XApiPost
public XServiceResult trainBaseData(XContext context, GetBaseDataInput input){
Date beginTime ;
Date endTime ;
if(input.getDataDate().contains("@")){
String[] dataDates = input.getDataDate().split("@");
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(dataDates[0]));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(dataDates[1]));
}else {
beginTime = XDateUtils.getDayBeginTime(XDateUtils.parse(input.getDataDate()));
endTime = XDateUtils.getDayEndTime(XDateUtils.parse(input.getDataDate()));
}
CalcBaseDataInput calcBaseDataInput = new CalcBaseDataInput("" , input.getLineId() , "train_val" , XDateUtils.getString(beginTime) , XDateUtils.getString(endTime));
doTrainData(context , calcBaseDataInput);
return XServiceResult.OK;
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment