|
@ -39,9 +39,9 @@ public class ComputeHelper {
|
|
//得到全部团队
|
|
//得到全部团队
|
|
List<AdminTeam> teams = findAllTeam();
|
|
List<AdminTeam> teams = findAllTeam();
|
|
//计算数据 返回map key 根据团队和维度拼凑在map中的key 1-2-1 如果维度是长度是0返回团队id 1
|
|
//计算数据 返回map key 根据团队和维度拼凑在map中的key 1-2-1 如果维度是长度是0返回团队id 1
|
|
Map<String, List<DataModel>> computeMap = computeDataModel(dimensionQuotas, dataModels);
|
|
|
|
|
|
Map<String, List<DataModel>> computeMap = computeDataModel(dimensionQuotas, dataModels);
|
|
//初始化map并且设置统计出来的数目
|
|
//初始化map并且设置统计出来的数目
|
|
List<SaveModel> savemodels = initAndSetResult(teams, dimensionQuotas, computeMap, wlyyJobConfigVO, endTime,timeLevel);
|
|
|
|
|
|
List<SaveModel> savemodels = initAndSetResult(teams, dimensionQuotas, computeMap, wlyyJobConfigVO, endTime, timeLevel);
|
|
return savemodels;
|
|
return savemodels;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@ -56,16 +56,16 @@ public class ComputeHelper {
|
|
* @param dimensionQuotas 该指标的维度
|
|
* @param dimensionQuotas 该指标的维度
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private Map<String, List<DataModel>> computeDataModel( List<WlyyDimensionQuota> dimensionQuotas, List<DataModel> dataModels) {
|
|
|
|
Map<String, List<DataModel>> returnMap = new HashMap<>();
|
|
|
|
|
|
private Map<String, List<DataModel>> computeDataModel(List<WlyyDimensionQuota> dimensionQuotas, List<DataModel> dataModels) {
|
|
|
|
Map<String, List<DataModel>> returnMap = new HashMap<>();
|
|
dataModels.stream().forEach(one -> {
|
|
dataModels.stream().forEach(one -> {
|
|
String key = getKey(one, dimensionQuotas.size());
|
|
String key = getKey(one, dimensionQuotas.size());
|
|
List<DataModel> sms=new ArrayList<DataModel>();
|
|
|
|
|
|
List<DataModel> sms = new ArrayList<DataModel>();
|
|
if (returnMap.containsKey(key)) {
|
|
if (returnMap.containsKey(key)) {
|
|
sms=returnMap.get(key);
|
|
|
|
|
|
sms = returnMap.get(key);
|
|
}
|
|
}
|
|
sms.add(one);
|
|
sms.add(one);
|
|
returnMap.put(key,sms);
|
|
|
|
|
|
returnMap.put(key, sms);
|
|
});
|
|
});
|
|
|
|
|
|
return returnMap;
|
|
return returnMap;
|
|
@ -123,28 +123,31 @@ public class ComputeHelper {
|
|
/**
|
|
/**
|
|
* 初始化map
|
|
* 初始化map
|
|
*/
|
|
*/
|
|
private List<SaveModel> initAndSetResult(List<AdminTeam> teams, List<WlyyDimensionQuota> dimensionQuotas, Map<String, List<DataModel>> countMap, WlyyJobConfigVO wlyyJobConfigVO, String endTime,String timeLevel) throws Exception {
|
|
|
|
|
|
private List<SaveModel> initAndSetResult(List<AdminTeam> teams, List<WlyyDimensionQuota> dimensionQuotas, Map<String, List<DataModel>> countMap, WlyyJobConfigVO wlyyJobConfigVO, String endTime, String timeLevel) throws Exception {
|
|
List<SaveModel> returnList = new ArrayList<>();
|
|
List<SaveModel> returnList = new ArrayList<>();
|
|
Map<String, SaveModel> lastMaps = new HashMap<>();
|
|
Map<String, SaveModel> lastMaps = new HashMap<>();
|
|
|
|
|
|
//初始化团队的数据
|
|
//初始化团队的数据
|
|
for (int i = 0; i < teams.size(); i++) {
|
|
for (int i = 0; i < teams.size(); i++) {
|
|
AdminTeam one = teams.get(i);
|
|
AdminTeam one = teams.get(i);
|
|
SaveModel saveModel = new SaveModel();
|
|
|
|
saveModel.setCity("350200");
|
|
|
|
saveModel.setCityName("厦门市");
|
|
|
|
saveModel.setTown(one.getTownCode());
|
|
|
|
saveModel.setTownName(one.getTownName());
|
|
|
|
saveModel.setHospital(one.getOrgCode());
|
|
|
|
saveModel.setHospitalName(one.getOrgName());
|
|
|
|
saveModel.setTeam(one.getId().toString());
|
|
|
|
saveModel.setTeamName(one.getName());
|
|
|
|
saveModel.setQuotaCode(wlyyJobConfigVO.getId());
|
|
|
|
saveModel.setCreateTime(new Date());
|
|
|
|
saveModel.setTimeLevel(timeLevel);
|
|
|
|
saveModel.setAreaLevel("5");//团队
|
|
|
|
saveModel.setQuotaDate(DateUtil.strToDate(endTime,"yyyy-MM-dd"));
|
|
|
|
lastMaps.put(one.getId().toString(), saveModel);
|
|
|
|
|
|
//排除测试机构
|
|
|
|
if (one.getOrgCode().length() == 11) {
|
|
|
|
SaveModel saveModel = new SaveModel();
|
|
|
|
saveModel.setCity("350200");
|
|
|
|
saveModel.setCityName("厦门市");
|
|
|
|
saveModel.setTown(one.getTownCode());
|
|
|
|
saveModel.setTownName(one.getTownName());
|
|
|
|
saveModel.setHospital(one.getOrgCode());
|
|
|
|
saveModel.setHospitalName(one.getOrgName());
|
|
|
|
saveModel.setTeam(one.getId().toString());
|
|
|
|
saveModel.setTeamName(one.getName());
|
|
|
|
saveModel.setQuotaCode(wlyyJobConfigVO.getId());
|
|
|
|
saveModel.setCreateTime(new Date());
|
|
|
|
saveModel.setTimeLevel(timeLevel);
|
|
|
|
saveModel.setAreaLevel("5");//团队
|
|
|
|
saveModel.setQuotaDate(DateUtil.strToDate(endTime, "yyyy-MM-dd"));
|
|
|
|
lastMaps.put(one.getId().toString(), saveModel);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//根据维度初始化数据
|
|
//根据维度初始化数据
|
|
@ -158,8 +161,8 @@ public class ComputeHelper {
|
|
DictModel dictModel = dictModels.get(j);
|
|
DictModel dictModel = dictModels.get(j);
|
|
|
|
|
|
BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
|
|
BeanUtils.copyProperties(oneSaveModel.getValue(), saveModelTemp);
|
|
SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name",String.class).invoke(saveModelTemp, dictModel.getName());
|
|
|
|
SaveModel.class.getMethod("setSlaveKey" + (i + 1),String.class).invoke(saveModelTemp, dictModel.getCode());
|
|
|
|
|
|
SaveModel.class.getMethod("setSlaveKey" + (i + 1) + "Name", String.class).invoke(saveModelTemp, dictModel.getName());
|
|
|
|
SaveModel.class.getMethod("setSlaveKey" + (i + 1), String.class).invoke(saveModelTemp, dictModel.getCode());
|
|
//根据维度生成新的key
|
|
//根据维度生成新的key
|
|
StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.getCode());
|
|
StringBuffer strKey = new StringBuffer(oneSaveModel.getKey() + "-" + dictModel.getCode());
|
|
mapTemp.put(strKey.toString(), saveModelTemp);
|
|
mapTemp.put(strKey.toString(), saveModelTemp);
|
|
@ -171,12 +174,12 @@ public class ComputeHelper {
|
|
//设置值
|
|
//设置值
|
|
for (Map.Entry<String, SaveModel> one : lastMaps.entrySet()) {
|
|
for (Map.Entry<String, SaveModel> one : lastMaps.entrySet()) {
|
|
if (countMap.containsKey(one.getKey())) {
|
|
if (countMap.containsKey(one.getKey())) {
|
|
List<DataModel> dataModels=countMap.get(one.getKey());
|
|
|
|
Integer result1=0;
|
|
|
|
Integer result2=0;
|
|
|
|
for(int j=0;j<dataModels.size();j++){
|
|
|
|
DataModel dataModel=dataModels.get(j);
|
|
|
|
result1+=dataModel.getNum();
|
|
|
|
|
|
List<DataModel> dataModels = countMap.get(one.getKey());
|
|
|
|
Integer result1 = 0;
|
|
|
|
Integer result2 = 0;
|
|
|
|
for (int j = 0; j < dataModels.size(); j++) {
|
|
|
|
DataModel dataModel = dataModels.get(j);
|
|
|
|
result1 += dataModel.getNum();
|
|
result2++;
|
|
result2++;
|
|
}
|
|
}
|
|
one.getValue().setResult1(result1);
|
|
one.getValue().setResult1(result1);
|