|
@ -30,6 +30,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
@ -2651,18 +2652,48 @@ public class StatisticsESService {
|
|
|
public Map<String,Object> getPrescriptionCount(int level,String area,String disease) throws Exception{
|
|
|
String index ="58";
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
List<SaveModel> totalList = null;
|
|
|
List<SaveModel> processingList = null;
|
|
|
List<SaveModel> finishedList = null;
|
|
|
List<SaveModel> canceledList = null;
|
|
|
List<SaveModel> unPassList = null;
|
|
|
List<SaveModel> otherList = null;
|
|
|
//总数
|
|
|
List<SaveModel> totalList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}else{
|
|
|
totalList = elasticsearchUtil.findListDateQuotaLevel0(null,area,level,index,"2",null);
|
|
|
}
|
|
|
//进行中
|
|
|
List<SaveModel> processingList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"1");
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"1");
|
|
|
}else{
|
|
|
processingList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}
|
|
|
//已完成
|
|
|
List<SaveModel> finishedList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"2");
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"2");
|
|
|
}else{
|
|
|
finishedList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}
|
|
|
//已经取消
|
|
|
List<SaveModel> canceledList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"3");
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"3");
|
|
|
}else{
|
|
|
canceledList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}
|
|
|
//审核不通过
|
|
|
List<SaveModel> unPassList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"4");
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"4");
|
|
|
}else{
|
|
|
unPassList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}
|
|
|
//其他原因取消
|
|
|
List<SaveModel> otherList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"5");
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel2(null,area,level,index,"2",null,disease,"5");
|
|
|
}else{
|
|
|
otherList = elasticsearchUtil.findListDateQuotaLevel1(null,area,level,index,"2",null,disease);
|
|
|
}
|
|
|
|
|
|
//总数
|
|
|
if(totalList!=null && totalList.size()>0){
|
|
@ -2946,29 +2977,89 @@ public class StatisticsESService {
|
|
|
* @param type 0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
* @return
|
|
|
*/
|
|
|
public List<SaveModel> getPrescriptionTotalLowLevel(int level,String lowlevel,String area,String disease,String type)throws Exception{
|
|
|
public List<Map<String,Object>> getPrescriptionTotalLowLevel(int level,String lowlevel,String area,String disease,String type)throws Exception{
|
|
|
String quotaDate = elasticsearchUtil.getQuotaTime();
|
|
|
String index = "58";
|
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
//一级维度
|
|
|
if (StringUtils.isNotBlank(disease)){
|
|
|
//类型 0.总量,1.已完成,2.居民取消,3.审核不通过,4.进行中,5.其他原因取消
|
|
|
if("1".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel0("",area,level,index,"2",lowlevel);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel0(quotaDate,area,level,index,"2",lowlevel);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1("",area,level,index,"2",lowlevel,type);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,type);
|
|
|
}
|
|
|
}else{
|
|
|
//类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
|
|
|
if("1".equals(type)){
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1("",area,level,index,"2",lowlevel,disease);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,disease);
|
|
|
}else {
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2("",area,level,index,"2",lowlevel,disease,type);
|
|
|
saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,disease,type);
|
|
|
}
|
|
|
}
|
|
|
if ("5".equals(lowlevel)){
|
|
|
translateTeamLeaderName2(saveModels);
|
|
|
}
|
|
|
return saveModels;
|
|
|
Map<String, Object> map = null;
|
|
|
if(saveModels.size()>0){
|
|
|
for(SaveModel one:saveModels){
|
|
|
map = new HashMap<>();
|
|
|
if(Integer.parseInt(lowlevel)>=level){
|
|
|
lowlevel = String.valueOf(level+1);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTown());
|
|
|
map.put("name",one.getTownName());
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getHospital());
|
|
|
map.put("name",one.getHospitalName());
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
map.put("code",one.getTeam());
|
|
|
map.put("name",one.getTeamName());
|
|
|
}
|
|
|
map.put("val",one.getResult2().longValue());
|
|
|
}
|
|
|
}else{
|
|
|
|
|
|
//统计数据为空时,自建结果集
|
|
|
// List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
// resultList = getLowLevelMapKey(level, lowlevel, area);
|
|
|
List<Town> townList = null;
|
|
|
List<Hospital> hospitalList = null;
|
|
|
List<AdminTeam> adminTeams = null;
|
|
|
if(SaveModel.cityLevel.equals(level)){
|
|
|
townList = townDao.findByCityCode(area);
|
|
|
hospitalList = hospitalDao.findByCity(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.townLevel.equals(level)){
|
|
|
hospitalList = hospitalDao.findByTownCode(area);
|
|
|
adminTeams = findAllTeam();
|
|
|
}else if(SaveModel.OrgLevel.equals(level)){
|
|
|
adminTeams = adminTeamDao.findByOrgCode(area);
|
|
|
}
|
|
|
if(SaveModel.townLevel.equals(lowlevel)){
|
|
|
for(Town one : townList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}else if(SaveModel.OrgLevel.equals(lowlevel)){
|
|
|
for(Hospital one : hospitalList){
|
|
|
map.put("code",one.getCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}else if(SaveModel.teamLevel.equals(lowlevel)){
|
|
|
for(AdminTeam one : adminTeams){
|
|
|
map.put("code",one.getLeaderCode());
|
|
|
map.put("name",one.getName());
|
|
|
map.put("val",0);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
rs.add(map);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public List<SaveModel> translateTeamLeaderName2(List<SaveModel> rs) {
|
|
@ -3028,6 +3119,52 @@ public class StatisticsESService {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPrescriptionDispatchingTotal(int level,String area,String disease)throws Exception{
|
|
|
List<SaveModel> seltList = null;//自取集合
|
|
|
List<SaveModel> deliveryList = null;//物流配送集合
|
|
|
List<SaveModel> healthDoctorList = null;//健管师配送集合
|
|
|
|
|
|
if(StringUtils.isNotBlank(disease)){
|
|
|
//自取
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel2("",area,level,"62","2","","1",disease);
|
|
|
//物流配送
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel2("",area,level,"62","2","","2",disease);
|
|
|
//健管师配送
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel2("",area,level,"62","2","","2",disease);
|
|
|
}else{
|
|
|
//自取
|
|
|
seltList = elasticsearchUtil.findListDateQuotaLevel1("",area,level,"62","2","","1");
|
|
|
//物流配送
|
|
|
deliveryList = elasticsearchUtil.findListDateQuotaLevel1("",area,level,"62","2","","2");
|
|
|
//健管师配送
|
|
|
healthDoctorList = elasticsearchUtil.findListDateQuotaLevel1("",area,level,"62","2","","2");
|
|
|
}
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
//自取数目
|
|
|
if(seltList!=null && seltList.size()>0){
|
|
|
rs.put("seltTotal",seltList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("seltTotal",0);
|
|
|
}
|
|
|
|
|
|
//快递配送
|
|
|
if(deliveryList!=null && deliveryList.size()>0){
|
|
|
rs.put("deliveryTotal",deliveryList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("deliveryTotal",0);
|
|
|
}
|
|
|
|
|
|
//健管师配送
|
|
|
if(healthDoctorList!=null && healthDoctorList.size()>0){
|
|
|
rs.put("doctorTotal",healthDoctorList.get(0).getResult2());
|
|
|
}else{
|
|
|
rs.put("doctorTotal",0);
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取下部部费用平均值或总数
|
|
|
* @param level
|