Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

chenweida 7 years ago
parent
commit
01498bb358
15 changed files with 760 additions and 69 deletions
  1. 11 11
      common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/prescription/Prescription.java
  2. 31 0
      patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DispensaryTypeConvert.java
  3. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/SwaggerConfig.java
  4. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamDao.java
  5. 3 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/feedback/AppealService.java
  6. 4 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/physicalExamination/PhysicalExaminationRemindService.java
  7. 4 4
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionExpressageService.java
  8. 510 25
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java
  9. 0 8
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwMaternalChildService.java
  10. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/feedback/DoctorAppealController.java
  11. 2 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/patient/PyhsicExamRemindController.java
  12. 10 10
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionExpressageController.java
  13. 1 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionLogController.java
  14. 177 1
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java
  15. 1 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

+ 11 - 11
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/prescription/Prescription.java

@ -101,13 +101,13 @@ public class Prescription extends IdEntity {
    private Integer zyCancelState; //智业同步取消表示:0 位同步取消 1已经同步取消
    //1.4.0新增字段
    private Integer drugDeliveryflag;
    private String drugDeliveryReasonCode;
    private String drugDeliveryReasonValue;
    private String drugDeliveryReason;
    private String drugDeliveryOperator;
    private String drugDeliveryOperatorName;
    private Date drugDeliveryTime;
    private Integer drugDeliveryFlag;   //是否异常出药0为正常 1为异常
    private String drugDeliveryReasonCode; //原因字典对应Code
    private String drugDeliveryReasonValue; //原因字典对应Name
    private String drugDeliveryReason; //详细原因
    private String drugDeliveryOperator; //操作人员code
    private String drugDeliveryOperatorName; //操作人员名字
    private Date drugDeliveryTime; //异常出药时间
    @Column(name = "code", unique = true, nullable = false)
@ -709,12 +709,12 @@ public class Prescription extends IdEntity {
        this.zyCancelState = zyCancelState;
    }
    public Integer getDrugDeliveryflag() {
        return drugDeliveryflag;
    public Integer getDrugDeliveryFlag() {
        return drugDeliveryFlag;
    }
    public void setDrugDeliveryflag(Integer drugDeliveryflag) {
        this.drugDeliveryflag = drugDeliveryflag;
    public void setDrugDeliveryFlag(Integer drugDeliveryFlag) {
        this.drugDeliveryFlag = drugDeliveryFlag;
    }
    public String getDrugDeliveryReasonCode() {

+ 31 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/convert/wlyy/DispensaryTypeConvert.java

@ -0,0 +1,31 @@
package com.yihu.wlyy.statistics.etl.convert.wlyy;
import com.yihu.wlyy.entity.dimension.WlyyDimensionQuota;
import com.yihu.wlyy.statistics.etl.convert.Convert;
import com.yihu.wlyy.statistics.util.Contant;
import com.yihu.wlyy.statistics.vo.DataModel;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
/**
 * 长处方疾病
 * Created by zhangdan on 2017/10/26.
 */
public class DispensaryTypeConvert implements Convert {
    public List<DataModel> convert(JdbcTemplate jdbcTemplate, List oneList, String slaveLevel, WlyyDimensionQuota temp ) {
        oneList.stream().forEach(one -> {
            try {
                Object value = DataModel.class.getMethod("get" + temp.getKey()).invoke(one);
                //获取到prescriptionCode,求长处方配送方式
                String sql ="SELECT dispensary_type FROM wlyy_prescription WHERE code=?";
                Object[] args = {value};
                String type=jdbcTemplate.queryForObject(sql,args,String.class);
                DataModel.class.getMethod("setSlaveKey" + slaveLevel, String.class).invoke(one, type);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
        return oneList;
    }
}

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/SwaggerConfig.java

@ -178,8 +178,8 @@ public class SwaggerConfig {
                        regex("/im_new/.*"),
                        regex("/version/.*"),
                        regex("/express/.*"),
                        regex("/doctorFeeback/.*"),
                        regex("/patientFeeback/.*"),
                        regex("/doctorFeedback/.*"),
                        regex("/patientFeedback/.*"),
                        regex("/esstatistics/.*")
                ))
                .build()

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamDao.java

@ -90,6 +90,9 @@ public interface DoctorAdminTeamDao extends
    @Query("from AdminTeam t WHERE t.available = true  AND t.orgCode = ?1 ")
    List<AdminTeam> findByOrgCode(String orgCode);
//    @Query("from AdminTeam t WHERE t.available = true  AND t.townCode = ?1 ")
//    List<AdminTeam> findByTownCode(String townCode);
    //  查询当前医生是否为团队长
    @Query("SELECT t.id from AdminTeam t WHERE t.available = true  AND t.leaderCode = ?1 ")
    Integer findLeader(String leaderCode);

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/feedback/AppealService.java

@ -21,6 +21,8 @@ import org.springframework.data.domain.Sort.Direction;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
 * Created by Reece on 2017/5/6.
 */
@ -75,6 +77,7 @@ public class AppealService extends BaseService {
                createrName = doctor.getName();
            }
        }
        appeal.setCreateTime(new Date());
        appeal.setCreaterName(createrName);
        appealDao.save(appeal);
    }

+ 4 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/physicalExamination/PhysicalExaminationRemindService.java

@ -103,7 +103,7 @@ public class PhysicalExaminationRemindService extends BaseService {
     * @param teamCode
     * @return
     */
    public Integer isShowRemindBtns(long teamCode) {
    public Integer isShowRemindBtns(long teamCode,String doctor) {
        Integer re = 0;
        List<Map<String, Object>> signList = new ArrayList<>();
        String sql = "";
@ -116,7 +116,8 @@ public class PhysicalExaminationRemindService extends BaseService {
                " WHERE " +
                "     t1.status > 0 " +
                "    AND t1.admin_team_code = ? " +
                "    AND (YEAR(curdate()) -IF(length(idcard) = 18,substring(idcard, 7, 4),IF(length(idcard) = 15,concat('19', substring(idcard, 7, 2)),NULL)))>65 " +
                "    AND (t1.doctor = ? or t1.doctor_health = ?) " +
                "    AND (YEAR(curdate()) -IF(length(idcard) = 18,substring(idcard, 7, 4),IF(length(idcard) = 15,concat('19', substring(idcard, 7, 2)),NULL)))>=65 " +
                "    AND t1.idcard not in " +
                "       (SELECT DISTINCT s.idcard " +
                "           from wlyy_sign_family s," +
@ -170,7 +171,7 @@ public class PhysicalExaminationRemindService extends BaseService {
                "     t1.status > 0 " +
                "    AND t1.admin_team_code = ? " +
                "    AND (t1.doctor = ? or t1.doctor_health = ?) " +
                "    AND (YEAR(curdate()) -IF(length(idcard) = 18,substring(idcard, 7, 4),IF(length(idcard) = 15,concat('19', substring(idcard, 7, 2)),NULL)))>65 " +
                "    AND (YEAR(curdate()) -IF(length(idcard) = 18,substring(idcard, 7, 4),IF(length(idcard) = 15,concat('19', substring(idcard, 7, 2)),NULL)))>=65 " +
                "    AND t1.idcard not in " +
                "       (SELECT DISTINCT s.idcard " +
                "           from wlyy_sign_family s," +

+ 4 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionExpressageService.java

@ -465,7 +465,7 @@ public class PrescriptionExpressageService extends BaseService {
    }
    public List<Map<String, Object>> getDrugDeliveryState() {
        String sql = "SELECT * FROM system_dict t WHERE t.dict_name = 'DRUGDELIVERY_STATE' ORDER BY DESC";
        String sql = "SELECT * FROM system_dict t WHERE t.dict_name = 'DRUGDELIVERY_STATE' ORDER BY t.sort DESC";
        List<Map<String, Object>> rs = jdbcTemplate.queryForList(sql);
        return rs;
    }
@ -484,7 +484,7 @@ public class PrescriptionExpressageService extends BaseService {
                        "  py.charge_no AS chargeNo, " +
                        "  p.patient_name AS patientName, " +
                        "  p.patient AS patientCode, " +
                        "  py.pay_time AS payTime, " +
                        "  py.charge_time AS chargeTime, " +
                        "  p.dispensary_type AS dispensaryType, " +
                        "  p.`status` " +
                        " FROM " +
@ -507,7 +507,7 @@ public class PrescriptionExpressageService extends BaseService {
        Doctor d = doctorDao.findByCode(doctor);
        if (p != null) {
            p.setStatus(PrescriptionLog.PrescriptionLogStatus.finish.getValue());
            p.setDrugDeliveryflag(1);
            p.setDrugDeliveryFlag(1);
            p.setDrugDeliveryOperator(doctor);
            p.setDrugDeliveryOperatorName(d.getName());
            p.setDrugDeliveryReason(reason);
@ -583,7 +583,7 @@ public class PrescriptionExpressageService extends BaseService {
                "  py.charge_no AS chargeNo, " +
                "  p.patient_name AS patientName, " +
                "  p.patient AS patientCode, " +
                "  py.pay_time AS payTime, " +
                "  py.charge_time AS chargeTime, " +
                "  p.dispensary_type AS dispensaryType, " +
                "  p.drug_delivery_operator_name AS operatorName," +
                "  p.drug_delivery_flag AS drugDeliveryFlag, " +

+ 510 - 25
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java

@ -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;
@ -61,6 +62,7 @@ public class StatisticsESService {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXX");
    SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    DecimalFormat decimalFormat = new DecimalFormat("0.00");
    /**
     * 获取上次统计时间
     *
@ -2651,18 +2653,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){
@ -2738,9 +2770,153 @@ public class StatisticsESService {
        startDate = elasticsearchUtil.changeTime(startDate + " 00:00:00");
        endDate = elasticsearchUtil.changeTime(endDate + " 23:59:59");
        Integer interval = Integer.parseInt(type)+2;
        //签入统计
        List<SaveModel> inData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"34","2",interval+"");
        Map<String, Object> map = null;
        List<Map<String, Object>> inList = new ArrayList<>();
        for(SaveModel one:inData){
            map = new HashMap<>();
            if ("0".equals(type)) {
                map.put("dateNo",dateFormat.format(one.getQuotaDate()));
            }else{
                map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
            }
            map.put("inCount",one.getResult2().longValue());
            inList.add(map);
        }
        //签出统计
        List<SaveModel> outData = elasticsearchUtil.findLineChartDateQuotaLevel0(startDate,endDate,teamCode,Integer.parseInt(SaveModel.teamLevel),"35","2",interval+"");
        return null;
        List<Map<String, Object>> outList = new ArrayList<>();
        for(SaveModel one:outData){
            map = new HashMap<>();
            if ("0".equals(type)) {
                map.put("dateNo",dateFormat.format(one.getQuotaDate()));
            }else{
                map.put("weekOfMonth",DateUtil.getWeekOfMonth(dateFormat.format(one.getQuotaDate())));
            }
            map.put("outCount",one.getResult2().longValue());
            outList.add(map);
        }
        JSONObject rs = new JSONObject();
        rs.put("inLine", inList);
        rs.put("outLine", outList);
        return rs;
    }
    public List<Map<String,Object>> getPrescriptionAgeLowLevel(String level,String lowlevel,String area,String disease) throws Exception{
        String quotaDate = elasticsearchUtil.getQuotaTime();
        List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"58","2",lowlevel,disease);
        Map<String, Object> map = null;
        List<Map<String, Object>> rs = new ArrayList<>();
        if(list.size()>0){
            for(SaveModel one:list){
                map = new HashMap<>();
                if(Integer.parseInt(lowlevel)>=Integer.parseInt(level)){
                    lowlevel = String.valueOf(Integer.parseInt(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<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 = adminTeamDao.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;
    }
    /**
     * 得到全部团队
     *
     * @return
     */
    private List<AdminTeam> findAllTeam() {
        String sql = "SELECT " +
                "  wat.id id, " +
                "  wat.name name, " +
                "  h.`code` org_code, " +
                "  h.`name` org_name, " +
                "  h.town   town_code, " +
                "  h.town_name  town_name " +
                "FROM " +
                "  dm_hospital h, " +
                "  wlyy_admin_team wat " +
                "WHERE " +
                "  h.`code` = wat.org_code " +
                "AND wat.available = 1";
        List<AdminTeam> adminTeams = jdbcTemplate.query(sql, new BeanPropertyRowMapper(AdminTeam.class));
        return adminTeams;
    }
    public Map<String,Object> getPrescriptionAgeHistogram(String level,String area,String disease) throws Exception{
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //统计年龄分布
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate,area,Integer.parseInt(level),"60","2",disease);
        //获取总人数
        String sql = " SELECT COUNT(1) AS num FROM ( SELECT DISTINCT p.patient FROM wlyy_prescription p ) a ";
        Map<String, Object> count = jdbcTemplate.queryForMap(sql);
        Long num = (Long)count.get("num");
        Map<String,Object> map = new HashMap<>();
        DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
        Double ageRate = list.get(0).getResult2()/num;
        map.put("0ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(1).getResult2()/num;
        map.put("7ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(2).getResult2()/num;
        map.put("19ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(3).getResult2()/num;
        map.put("31ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(4).getResult2()/num;
        map.put("51ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(5).getResult2()/num;
        map.put("65ageRate",decimalFormat.format(ageRate));
        return map;
    }
    /**
@ -2748,11 +2924,11 @@ public class StatisticsESService {
     * @param level 等级
     * @param area 等级编码
     * @param disease 疾病编码
     * @param type 类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
     * @param type 类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
     * @return
     */
    public List<Map<String,Object>> getPrescriptionTotalHistogram(int level,String area,String disease,String type) throws Exception{
        String index ="60";
        String index ="58";
        List<Map<String,Object>> rs =new ArrayList<>();
        Calendar dd = Calendar.getInstance();//定义日期实例
@ -2771,25 +2947,12 @@ public class StatisticsESService {
        String startTime = DateUtil.dateToStr(dd.getTime(),"YYYY-MM-dd HH:mm:ss");
        String endTime = DateUtil.dateToStr(new Date(),"YYYY-MM-dd HH:mm:ss");
        List<SaveModel> resultList = new ArrayList<>();
        //类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
        //类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
        if("1".equals(type)){
            //总数
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel1(null,null,area,level,index,"2","3",disease);
        }else if("2".equals(type)){
            //进行中
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,"1");
        }else if("3".equals(type)){
            //已完成
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,"2");
        }else if("4".equals(type)){
            //已经取消
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,"3");
        }else if("5".equals(type)){
            //审核不通过
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,"4");
        }else if("6".equals(type)){
            //其他原因取消
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,"5");
        }else{
            resultList =  elasticsearchUtil.findLineChartDateQuotaLevel2(null,null,area,level,index,"2","3",disease,type);
        }
        for(Map<String,Object> m:rs){
@ -2805,4 +2968,326 @@ public class StatisticsESService {
        }
        return rs;
    }
    /**
     *
     * @param level 等级 1 省 2 市 3 区县 4 机构 5团队
     * @param lowlevel 等级 1 省 2 市 3 区县 4 机构 5团队
     * @param area
     * @param disease
     * @param type 0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
     * @return
     */
    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(quotaDate,area,level,index,"2",lowlevel);
            }else {
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,type);
            }
        }else{
            //类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消
            if("1".equals(type)){
                saveModels = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,level,index,"2",lowlevel,disease);
            }else {
                saveModels = elasticsearchUtil.findListDateQuotaLevel2(quotaDate,area,level,index,"2",lowlevel,disease,type);
            }
        }
        if ("5".equals(lowlevel)){
            translateTeamLeaderName2(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) {
        Map<Integer, Map<String, Object>> leaders = getAllTeamLeaders();
        if (rs != null && rs.size() > 0) {
            for (SaveModel saveModel : rs) {
                Integer id = Integer.valueOf(saveModel.getTeam());
                String name = getTeamLeaderNameByTeamCode(leaders, id);
                if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
                    saveModel.setTeamName(name);
                }
            }
        }
        return rs;
    }
    /**
     *各个年龄段的总数
     * @param level
     * @param area
     * @param disease
     * @return
     */
    public Map<String,Object> getPrescriptionAgeTotal(String level,String area,String disease) throws Exception{
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //统计年龄分布
        List<SaveModel> list = elasticsearchUtil.findOneDateQuotaLevel2(quotaDate,area,Integer.parseInt(level),"60","2",disease);
        //总数量
        SaveModel saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,Integer.parseInt(level),"60","2");
        Double num = saveModel.getResult2();
        Map<String,Object> map = new HashMap<>();
        DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
        Double ageRate = list.get(0).getResult2()/num;
        map.put("0ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(1).getResult2()/num;
        map.put("7ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(2).getResult2()/num;
        map.put("19ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(3).getResult2()/num;
        map.put("31ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(4).getResult2()/num;
        map.put("51ageRate",decimalFormat.format(ageRate));
        ageRate = list.get(5).getResult2()/num;
        map.put("65ageRate",decimalFormat.format(ageRate));
        map.put("0age",list.get(0).getResult2().longValue());
        map.put("7age",list.get(1).getResult2().longValue());
        map.put("19age",list.get(2).getResult2().longValue());
        map.put("31age",list.get(3).getResult2().longValue());
        map.put("51age",list.get(4).getResult2().longValue());
        map.put("65age",list.get(5).getResult2().longValue());
        map.put("total",saveModel.getResult2().longValue());
        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
     * @param lowlevel
     * @param area
     * @param disease
     * @param type 1.总量,2.平均值
     * @return
     */
    public List<Map<String,Object>> getPrescriptionCostLowLevel(String level,String lowlevel,String area,String disease,String type) throws Exception{
        String quotaDate = elasticsearchUtil.getQuotaTime();
        //1.总量
        List<SaveModel> list = elasticsearchUtil.findListDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"61","2",lowlevel,disease);
        Map<String,Object> map = null;
        List<Map<String,Object>> countList = new ArrayList<>();
        if("1".equals(type)){
            for(SaveModel one:list){
                map = new HashMap<>();
                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",decimalFormat.format(one.getResult1()/100));
                countList.add(map);
            }
        }else{
            //2.平均值
            //去重获取总人数,计算人均费用
            String sql = "";
            for(SaveModel one:list){
                sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
                sql +=" and  p.trace_time <= "+one.getQuotaDate();
                Map<String, Object> count = jdbcTemplate.queryForMap(sql);
                map = new HashMap<>();
                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());
                }
                Long num = (Long)count.get("num");
                String avg = decimalFormat.format(one.getResult1()/num);
                map.put("val",avg);
                countList.add(map);
            }
        }
        return countList;
    }
    /**
     * 获取中部费用平均值
     * @param level
     * @param area
     * @param disease
     * @param startDate
     * @param endDate
     * @param type 1.按日,2.按周,3.按月
     */
    public List<Map<String,Object>> getPrescriptionCostAvgLine(String level,String area,String disease,String startDate,String endDate,String type) throws Exception{
        startDate = elasticsearchUtil.changeTime(startDate += " 00:00:00");
        endDate = elasticsearchUtil.changeTime(endDate += " 23:59:59");
        List<SaveModel> list = elasticsearchUtil.findLineChartDateQuotaLevel1(startDate,endDate,area,Integer.parseInt(level),"61","2",type,disease);
        String sql = "";
        Map<String,Object> map = null;
        List<Map<String,Object>> countList = new ArrayList<>();
        for(SaveModel one:list){
            sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
            sql += " and  p.trace_time <= "+one.getQuotaDate();
            if(SaveModel.townLevel.equals(level)||SaveModel.cityLevel.equals(level)){
                sql += " and LEFT(s.hospital,6) ='" + area+ "' ";
            }else if(SaveModel.OrgLevel.equals(level)){
                sql += " and s.hospital ='" + area+ "' ";
            }else if(SaveModel.teamLevel.equals(level)){
                sql += " and s.admin_team_id ='" + area+ "' ";
            }
            Map<String, Object> count = jdbcTemplate.queryForMap(sql);
            Long num = (Long)count.get("num");
            String avg = decimalFormat.format(one.getResult1()/num);
            map = new HashMap<>();
            map.put("avg",avg);
            map.put("date",dateFormat.format(one.getQuotaDate()));
            countList.add(map);
        }
        return countList;
    }
    public Map<String,Object> getPrescriptionCost(String level,String area,String disease) throws Exception{
        SaveModel saveModel = null;
        String quotaDate = elasticsearchUtil.getQuotaTime();
        if(StringUtils.isNotEmpty(disease)){
            saveModel = elasticsearchUtil.findOneDateQuotaLevel1(quotaDate,area,Integer.parseInt(level),"61","2",disease);
        }else{
            saveModel = elasticsearchUtil.findOneDateQuotaLevel0(quotaDate,area,Integer.parseInt(level),"61","2");
        }
        String sql = "  select count(DISTINCT(s.patient)) as num from wlyy_prescription_pay p left join wlyy_prescription s on p.prescription_code = s. CODE  ";
        sql += " and  p.trace_time <= "+dateFormat3.parse(quotaDate);
        if(SaveModel.townLevel.equals(level)||SaveModel.cityLevel.equals(level)){
            sql += " and LEFT(s.hospital,6) ='" + area+ "' ";
        }else if(SaveModel.OrgLevel.equals(level)){
            sql += " and s.hospital ='" + area+ "' ";
        }else if(SaveModel.teamLevel.equals(level)){
            sql += " and s.admin_team_id ='" + area+ "' ";
        }
        Map<String, Object> count = jdbcTemplate.queryForMap(sql);
        Long num = (Long)count.get("num");
        Map<String,Object> rs = new HashedMap();
        BigDecimal s = BigDecimal.valueOf(num);
        BigDecimal a = BigDecimal.valueOf(saveModel.getResult2()/num);
        rs.put("sum",s.divide(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP));
        rs.put("avg",a.divide((new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
        return rs;
    }
}

+ 0 - 8
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwMaternalChildService.java

@ -12,7 +12,6 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2017/9/25.
@ -42,13 +41,6 @@ public class JwMaternalChildService {
        params.add(new BasicNameValuePair("idcard", idcard));
        params.add(new BasicNameValuePair("hospital", hospital));
        if(idcard.contains("352124761015122-")){
            String temp[] = idcard.split("-");
            String sql = "SELECT response FROM wlyy_zy_push_log_detail WHERE id = "+temp[1];
            List<Map<String ,Object>> list = jdbcTemplate.queryForList(sql);
            return list.get(0).get("response").toString();
        }
        String response = httpClientUtil.post(url, params, "UTF-8");
        return response;

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/feedback/DoctorAppealController.java

@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
 */
@Controller
@RestController
@RequestMapping(value = "/doctorFeeback/feedback")
@RequestMapping(value = "/doctorFeedback/feedback")
@Api(description = "医生端账号申诉")
public class DoctorAppealController extends BaseController{
    @Autowired

+ 2 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/patient/PyhsicExamRemindController.java

@ -38,8 +38,7 @@ public class PyhsicExamRemindController extends BaseController{
        try {
            page = page==null?0:page;
            pagesize = pagesize==null?10:pagesize;
            JSONArray list = physicalExaminationRemindService.getOldPatientByTeamCode(adminTeamCode,"3782f16386f211e6b394fa163e424525",page,pagesize);
//            JSONArray list = physicalExaminationRemindService.getOldPatientByTeamCode(adminTeamCode,getUID(),page,pagesize);
            JSONArray list = physicalExaminationRemindService.getOldPatientByTeamCode(adminTeamCode,getUID(),page,pagesize);
            return write(200, "查询成功", "data", list);
        } catch (Exception e) {
            e.printStackTrace();
@ -52,7 +51,7 @@ public class PyhsicExamRemindController extends BaseController{
    public String isShowRemindBtns(@ApiParam(name = "adminTeamCode", value = "行政团队编码", defaultValue = "485")
                                   @RequestParam(value = "adminTeamCode", required = true) Long adminTeamCode){
        try {
            Integer re = physicalExaminationRemindService.isShowRemindBtns(adminTeamCode);
            Integer re = physicalExaminationRemindService.isShowRemindBtns(adminTeamCode,getUID());
            return write(200, "查询成功", "data", re);
        } catch (Exception e) {
            e.printStackTrace();

+ 10 - 10
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionExpressageController.java

@ -100,7 +100,7 @@ public class PrescriptionExpressageController extends WeixinBaseController {
    }
    @RequestMapping(value = "/saveDrugDelivery", method = RequestMethod.POST)
    @ApiOperation(value = "异常出操作")
    @ApiOperation(value = "异常出药操作")
    public String saveDrugDelivery(@ApiParam(required = true, name = "prescriptionCode", value = "续方code") @RequestParam(required = true)String prescriptionCode,
                                   @ApiParam(required = true, name = "reasonCode", value = "原因code") @RequestParam(required = true)String reasonCode,
                                   @ApiParam(required = true, name = "reasonName", value = "原因名称") @RequestParam(required = true)String reasonName,
@ -126,15 +126,15 @@ public class PrescriptionExpressageController extends WeixinBaseController {
    @RequestMapping(value = "/getPresEsPayList", method = RequestMethod.GET)
    @ApiOperation(value = "获取订单列表")
    public String getPresEsPayList(@ApiParam(required = true, name = "keyWord", value = "订单号,接收人,医保号或身份证") @RequestParam(required = false)String keyWord,
                                   @ApiParam(required = true, name = "state", value = "续方状态") @RequestParam(required = false)String state,
                                   @ApiParam(required = true, name = "type", value = "1 自取 2快递配送 3健管师配送") @RequestParam(required = false)String type,
                                   @ApiParam(required = true, name = "startDate", value = "开始时间yyyy-MM--dd") @RequestParam(required = false)String startDate,
                                   @ApiParam(required = true, name = "endDate", value = "结束时间yyyy-MM-dd") @RequestParam(required = false)String endDate,
                                   @ApiParam(required = true, name = "operator", value = "操作人") @RequestParam(required = false)String operator,
                                   @ApiParam(required = true, name = "flag", value = "1.扫描2.异常出药") @RequestParam(required = false)String flag,
                                   @ApiParam(required = true, name = "page", value = "页面") @RequestParam(required = false)Integer page,
                                   @ApiParam(required = true, name = "pageSize", value = "页面大小") @RequestParam(required = false)Integer pageSize){
    public String getPresEsPayList(@ApiParam(name = "keyWord", value = "订单号,接收人,医保号或身份证") @RequestParam(required = false)String keyWord,
                                   @ApiParam(name = "state", value = "续方状态") @RequestParam(required = false)String state,
                                   @ApiParam(name = "type", value = "1 自取 2快递配送 3健管师配送") @RequestParam(required = false)String type,
                                   @ApiParam(name = "startDate", value = "开始时间yyyy-MM--dd") @RequestParam(required = false)String startDate,
                                   @ApiParam(name = "endDate", value = "结束时间yyyy-MM-dd") @RequestParam(required = false)String endDate,
                                   @ApiParam(name = "operator", value = "操作人") @RequestParam(required = false)String operator,
                                   @ApiParam(name = "flag", value = "1.扫描2.异常出药") @RequestParam(required = false)String flag,
                                   @ApiParam(name = "page", value = "页面") @RequestParam(required = true)Integer page,
                                   @ApiParam(name = "pageSize", value = "页面大小") @RequestParam(required = true)Integer pageSize){
        try {
            return write(200, "获取成功", "data", expressageService.getPresEsPayList(keyWord,state,type,startDate,endDate,operator,flag,page,pageSize));
        } catch (Exception e) {

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionLogController.java

@ -132,7 +132,7 @@ public class PrescriptionLogController extends BaseController {
                    jo.put("drugDeliveryflag", "0");
                    if(one.getStatus()==100){
                        Prescription prescription = prescriptionService.findByCode(one.getPrescriptionCode());
                        if(prescription!=null&&prescription.getDrugDeliveryflag()==1){
                        if(prescription!=null&&prescription.getDrugDeliveryFlag()==1){
                            jo.put("drugDeliveryflag", "1");
                            jo.put("drugDeliveryOperatorName",prescription.getDrugDeliveryOperatorName());
                            jo.put("drugDelivery",prescription.getDrugDeliveryReasonValue()+","+prescription.getDrugDeliveryReason());

+ 177 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -1601,6 +1601,83 @@ public class EsStatisticsController extends BaseController {
    //=================================长处方分析===============================================
//    @RequestMapping("/getPrescriptionCount")
//    @ResponseBody
//    @ApiOperation("订单统计-顶部总数获取")
//    public String getPrescriptionCount(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
//                                       @ApiParam(name="area", value="级别对应编码") @RequestParam(required = true)String area,
//                                       @ApiParam(name="disease", value="疾病类型") @RequestParam(required = false)String disease){
//        try{
//            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCount(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease));
//        } catch (Exception e) {
//            error(e);
//            return error(-1, "查询失败");
//        }
//    }
    /**
     *年龄统计-下部列表(疾病维度)
     * @param level
     * @param lowlevel
     * @param area
     * @param disease
     * @return
     */
    @RequestMapping("/getPrescriptionAgeLowLevel")
    @ResponseBody
    @ApiOperation("年龄统计-下部列表")
    public String getPrescriptionAgeLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                             @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                             @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                             @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeLowLevel(level,lowlevel,area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionAgeHistogram")
    @ResponseBody
    @ApiOperation("年龄统计-中部部条形图")
    public String getPrescriptionAgeHistogram(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                              @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                              @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsService.getPrescriptionAgeHistogram(level,area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    /**
     *各个年龄段的总数
     * @param level
     * @param area
     * @param disease
     * @return
     */
    @RequestMapping("/getPrescriptionAgeTotal")
    @ResponseBody
    @ApiOperation("年龄统计-上部总数图")
    public String  getPrescriptionAgeTotal(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                           @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                           @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionAgeTotal(level,area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionCount")
    @ResponseBody
    @ApiOperation("订单统计-顶部总数获取")
@ -1621,7 +1698,7 @@ public class EsStatisticsController extends BaseController {
    public String getPrescriptionTotalHistogram(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                @ApiParam(name="area", value="级别对应编码") @RequestParam(required = true)String area,
                                                @ApiParam(name="disease", value="疾病类型") @RequestParam(required = false)String disease,
                                                @ApiParam(name="type", value="类型1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消") @RequestParam(required = true)String type){
                                                @ApiParam(name="type", value="类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消") @RequestParam(required = true)String type){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalHistogram(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease,type));
        } catch (Exception e) {
@ -1629,4 +1706,103 @@ public class EsStatisticsController extends BaseController {
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionTotalLowLevel")
    @ResponseBody
    @ApiOperation("订单统计-下部列表接口")
    public String getPrescriptionTotalLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)Integer level,
                                               @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                               @ApiParam(name="area", value="界别编码") @RequestParam(required = true)String area,
                                               @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                               @ApiParam(name="type", value="类型0.总量,1.进行中,2.已完成,3.居民取消,4.审核不通过,5.其他原因取消") @RequestParam(required = true)String type){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionTotalLowLevel(elasticsearchUtil.changeLevel(level),lowlevel,area,disease,type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionCostLowLevel")
    @ResponseBody
    @ApiOperation("费用统计-下部列表接口")
    public String getPrescriptionCostLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                              @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                              @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                              @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                              @ApiParam(name="type", value="1.总量,2.平均值")@RequestParam(required =true)String type){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            lowlevel = elasticsearchUtil.changeLevel(Integer.parseInt(lowlevel))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostLowLevel(level,lowlevel,area,disease,type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionCostAvgLine")
    @ResponseBody
    @ApiOperation("费用统计-中部折线图接口")
    public String getPrescriptionCostAvgLine(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                             @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                             @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                             @ApiParam(name="startDate", value="开始时间") @RequestParam(required = false)String startDate,
                                             @ApiParam(name="endDate", value="结束时间") @RequestParam(required = false)String endDate,
                                             @ApiParam(name="type", value="1.按日,2.按周,3.按月") @RequestParam(required = false)String type){
        try{
            level = elasticsearchUtil.changeLevel(Integer.parseInt(level))+"";
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCostAvgLine(level,area,disease,startDate,endDate,type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionCost")
    @ResponseBody
    @ApiOperation("费用统计-顶部部头部接口")
    public String getPrescriptionCost(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                      @ApiParam(name="area", value="界别编码") @RequestParam(required = true)String area,
                                      @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionCost(level,area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionDispatchingTotal")
    @ResponseBody
    @ApiOperation("配送统计-头部总数接口")
    public String getPrescriptionDispatchingTotal(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                  @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                                  @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease){
        try{
            return write(200, "查询成功", "data", statisticsESService.getPrescriptionDispatchingTotal(elasticsearchUtil.changeLevel(Integer.valueOf(level)),area,disease));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    @RequestMapping("/getPrescriptionDispatchingLowLevel")
    @ResponseBody
    @ApiOperation("配送统计-下部条形图")
    public String getPrescriptionDispatchingLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                                     @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,
                                                     @ApiParam(name="area", value="级别编码") @RequestParam(required = true)String area,
                                                     @ApiParam(name="disease", value="疾病") @RequestParam(required = false)String disease,
                                                     @ApiParam(name="type", value="1.自取,2.快递配送,3.健管师配送") @RequestParam(required = true)String type){
        try{
            return write(200, "查询成功", "data", statisticsService.getPrescriptionDispatchingLowLevel(level,lowlevel,area,disease,type));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败");
        }
    }
    /*=================================长处方分析end===============================================*/
}

+ 1 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

@ -1700,6 +1700,7 @@ public class StatisticsController extends BaseController {
    @RequestMapping("/getPrescriptionTotalLowLevel")
    @ResponseBody
    @Deprecated
    @ApiOperation("订单统计-下部列表接口")
    public String getPrescriptionTotalLowLevel(@ApiParam(name="level", value="级别") @RequestParam(required = true)String level,
                                               @ApiParam(name="lowlevel", value="第二级别") @RequestParam(required = true)String lowlevel,