|
@ -8,10 +8,7 @@ import com.yihu.jw.quota.model.jpa.dimension.TjQuotaDimensionSlave;
|
|
|
import com.yihu.jw.quota.service.dimension.TjDimensionMainService;
|
|
|
import com.yihu.jw.quota.service.dimension.TjDimensionSlaveService;
|
|
|
import com.yihu.jw.quota.util.SpringUtil;
|
|
|
import com.yihu.jw.quota.vo.DataModel;
|
|
|
import com.yihu.jw.quota.vo.MainDimensionModel;
|
|
|
import com.yihu.jw.quota.vo.QuotaVO;
|
|
|
import com.yihu.jw.quota.vo.SaveModel;
|
|
|
import com.yihu.jw.quota.vo.*;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Scope;
|
|
@ -33,9 +30,9 @@ public class ComputeHelper {
|
|
|
@Autowired
|
|
|
private TjDimensionSlaveService dimensionSlaveService;
|
|
|
|
|
|
public List<SaveModel> compute(Object dataModels, QuotaVO quotaVO,String timeLevel,String saasid,String startTime) {
|
|
|
public List<SaveModel> compute(Object dataModels, QuotaVO quotaVO, String timeLevel, String saasid, String startTime) {
|
|
|
//返回的list
|
|
|
List<SaveModel> saveModels=new ArrayList<>();
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
//只得到地址维度的所有主维度
|
|
|
List<TjQuotaDimensionMain> quotaDimensionMains = dimensionMainService.findTjQuotaDimensionMainByQuotaIncudeAddress(quotaVO.getCode());
|
|
|
//得到从维度
|
|
@ -43,15 +40,15 @@ public class ComputeHelper {
|
|
|
if (Contant.compute.add.equals(quotaVO.getComputeType())) {
|
|
|
//判断是否是累加计算 如果强转成list类型
|
|
|
List<DataModel> dmList = (List<DataModel>) dataModels;
|
|
|
|
|
|
Map<String, MainDimensionModel> one=getLastData(quotaVO, quotaDimensionMains, quotaDimensionSlaves, dmList);
|
|
|
for(Map.Entry<String,MainDimensionModel> tjone:one.entrySet()){
|
|
|
SaveModel saveModel=new SaveModel();
|
|
|
BeanUtils.copyProperties(tjone.getValue(),saveModel);
|
|
|
;
|
|
|
Map<String, MainDimensionModel> one = getLastData(quotaVO, quotaDimensionMains,Contant. init(quotaDimensionSlaves, Contant.slave_dimension_key.one), dmList);
|
|
|
for (Map.Entry<String, MainDimensionModel> tjone : one.entrySet()) {
|
|
|
SaveModel saveModel = new SaveModel();
|
|
|
BeanUtils.copyProperties(tjone.getValue(), saveModel);
|
|
|
saveModel.setTimeLevel(timeLevel);
|
|
|
saveModel.setSaasId(saasid);
|
|
|
saveModel.setQuotaDate(startTime);
|
|
|
saveModel.setResult(tjone.getValue().getSlaveDimensionModels().size()+"");
|
|
|
saveModel.setResult(tjone.getValue().getSlaveDimensionModels().size() + "");
|
|
|
saveModels.add(saveModel);
|
|
|
}
|
|
|
} else if (Contant.compute.division.equals(quotaVO.getComputeType())) {
|
|
@ -61,41 +58,42 @@ public class ComputeHelper {
|
|
|
List<DataModel> twoList = dmMap.get(Contant.extract.computeKey2);
|
|
|
|
|
|
//计算出分子
|
|
|
Map<String, MainDimensionModel> one=getLastData(quotaVO, quotaDimensionMains, quotaDimensionSlaves, oneList);
|
|
|
Map<String, MainDimensionModel> one = getLastData(quotaVO, quotaDimensionMains, Contant. init(quotaDimensionSlaves, Contant.slave_dimension_key.one), oneList);
|
|
|
//计算出分母
|
|
|
Map<String, MainDimensionModel> tow=getLastData(quotaVO, quotaDimensionMains, quotaDimensionSlaves, twoList);
|
|
|
Map<String, MainDimensionModel> tow = getLastData(quotaVO, quotaDimensionMains, Contant. init(quotaDimensionSlaves, Contant.slave_dimension_key.two), twoList);
|
|
|
|
|
|
for(Map.Entry<String,MainDimensionModel> tjone:one.entrySet()){
|
|
|
SaveModel saveModel=new SaveModel();
|
|
|
BeanUtils.copyProperties(tjone.getValue(),saveModel);
|
|
|
for (Map.Entry<String, MainDimensionModel> tjone : one.entrySet()) {
|
|
|
SaveModel saveModel = new SaveModel();
|
|
|
BeanUtils.copyProperties(tjone.getValue(), saveModel);
|
|
|
saveModel.setTimeLevel(timeLevel);
|
|
|
saveModel.setSaasId(saasid);
|
|
|
saveModel.setQuotaDate(startTime);
|
|
|
saveModel.setResult(new StringBuffer(tjone.getValue().getSlaveDimensionModels().size()+"/"+tow.get(tjone.getKey()).getSlaveDimensionModels()).toString());
|
|
|
saveModel.setResult(new StringBuffer(tjone.getValue().getSlaveDimensionModels().size() + "/" + tow.get(tjone.getKey()).getSlaveDimensionModels()).toString());
|
|
|
saveModels.add(saveModel);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return saveModels;
|
|
|
}
|
|
|
|
|
|
private Map<String, MainDimensionModel> getLastData(QuotaVO quotaVO, List<TjQuotaDimensionMain> quotaDimensionMains, List<TjQuotaDimensionSlave> quotaDimensionSlaves, List<DataModel> dmList) {
|
|
|
Map<String, MainDimensionModel> mainData=new HashMap<>();
|
|
|
|
|
|
|
|
|
private Map<String, MainDimensionModel> getLastData(QuotaVO quotaVO, List<TjQuotaDimensionMain> quotaDimensionMains, List<QuotaDimensionSlaveVO> quotaDimensionSlaves, List<DataModel> dmList) {
|
|
|
Map<String, MainDimensionModel> mainData = new HashMap<>();
|
|
|
//先统计主维度的数据-----地址维度
|
|
|
quotaDimensionMains.stream().forEach(one->{
|
|
|
quotaDimensionMains.stream().forEach(one -> {
|
|
|
mainData.putAll(SpringUtil.getBean(AreaCompute.class).compute(
|
|
|
quotaVO,
|
|
|
dmList,//数据
|
|
|
one.getDitcSql(), //字典的sql语句
|
|
|
Contant.main_dimension_areaLevel.getAreaLevelByMainDimension(one.getType()) //维度转换
|
|
|
));
|
|
|
));
|
|
|
});
|
|
|
//再统计从维度的数据
|
|
|
return SpringUtil.getBean(SlaveCompute.class).compute(
|
|
|
mainData,//数据
|
|
|
quotaDimensionSlaves //字典的sql语句
|
|
|
) ;
|
|
|
);
|
|
|
}
|
|
|
}
|