Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

# Conflicts:
#	common/common-entity/sql记录
yeshijie 4 years ago
parent
commit
31fb36efcc

+ 104 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/StatisticsEndpoint.java

@ -1,7 +1,9 @@
package com.yihu.jw.care.endpoint.statistics;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.service.statistics.StatisticsService;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
@ -38,9 +40,111 @@ public class StatisticsEndpoint extends EnvelopRestEndpoint {
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "consultAnalysis")
    @ApiOperation(value = "在线咨询分析")
    public ObjEnvelop consultAnalysis(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @ApiParam(name="type",value="类型:1幼儿,2老人",defaultValue = "")@RequestParam(required = false) String type) {
        try {
            JSONObject result = statisticsService.consultAnalysis(endDate, area, level, type);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "addLine")
    @ApiOperation(value = "通用折线图")
    public ListEnvelop addLine(
            @RequestParam(required = true) String startDate,
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level,
            @RequestParam(required = true) String index,
            @RequestParam(required = false) String timeLevel,
            @RequestParam(required = false) String interval,
            @RequestParam(required = false) String lowLevel) {
        try {
            JSONArray result = statisticsService.addLine(startDate,endDate, area, level, index, timeLevel,interval,lowLevel);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "capacityAssessment")
    @ApiOperation(value = "能力评估评估类型")
    public ListEnvelop capacityAssessment(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level) {
        try {
            JSONArray result = statisticsService.capacityAssessment(endDate, area, level);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "doorCoachItems")
    @ApiOperation(value = "上门辅导服务项目")
    public ListEnvelop doorCoachItems(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level) {
        try {
            JSONArray result = statisticsService.doorCoachItems(endDate, area, level);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "lifeCareItems")
    @ApiOperation(value = "生活照料服务项目")
    public ListEnvelop lifeCareItems(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level) {
        try {
            JSONArray result = statisticsService.lifeCareItems(endDate, area, level);
            return success(result);
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "lifeCareAnalysis")
    @ApiOperation(value = "生活照料分析")
    public ObjEnvelop lifeCareAnalysis(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level) {
        try {
            JSONObject result = statisticsService.lifeCareAnalysis(endDate, area, level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping(value = "doorCoachAnalysis")
    @ApiOperation(value = "上门辅导分析")
    public ObjEnvelop doorCoachAnalysis(
            @RequestParam(required = true) String endDate,
            @RequestParam(required = true) String area,
            @RequestParam(required = true) int level) {
        try {
            JSONObject result = statisticsService.doorCoachAnalysis(endDate, area, level);
            return success(result);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    /**
     * 统计首页头部数据

+ 168 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -1,5 +1,6 @@
package com.yihu.jw.care.service.statistics;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
@ -17,6 +18,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.List;
/**
 *
@ -72,9 +74,175 @@ public class StatisticsService {
        return res;
    }
    /**
     * 咨询分析
     * type 1幼儿 2老人
     */
    public JSONObject consultAnalysis(String endDate, String area, int level, String type) throws Exception{
        JSONObject res = new JSONObject();
        String totalIndex = "28";
        String noReplyIndex = "29";
        String inTimeIndex = "30";
        if("2".equals(type)){
            totalIndex = "31";
            noReplyIndex = "32";
            inTimeIndex = "33";
        }
        //咨询总数
        SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
        //未回复数
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
        //及时回复数
        SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
        res.put("total",saveModel1.getResult2().longValue());
        res.put("noReply",saveModel2.getResult2().longValue());
        res.put("inTime",saveModel3.getResult2().longValue());
        res.put("noReplyRate",statisticsUtilService.getTwoRange(saveModel2.getResult2(),saveModel1.getResult2()));
        res.put("inTimeRate",statisticsUtilService.getTwoRange(saveModel3.getResult2(),saveModel1.getResult2()));
        return res;
    }
    /**
     * 上门辅导分析
     */
    public JSONObject doorCoachAnalysis(String endDate, String area, int level) throws Exception{
        JSONObject res = new JSONObject();
        String totalIndex = "34";
        String noReplyIndex = "35";
        String inTimeIndex = "36";
        //幼儿数
        SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
        //工单数
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
        //服务费用
        SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
        res.put("patientNum",saveModel1.getResult2().longValue());
        res.put("orderNum",saveModel2.getResult2().longValue());
        res.put("fee",saveModel3.getResult1());
        //服务项目分析
        JSONArray jsonArray = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,inTimeIndex,SaveModel.timeLevel_DDL,null,null);
        for(int i=0;(i<list.size()&&i<5);i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        res.put("items",jsonArray);
        return res;
    }
    /**
     * 上门辅导服务项目
     */
    public JSONArray doorCoachItems(String endDate, String area, int level) throws Exception{
        //服务项目分析
        JSONArray jsonArray = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"36",SaveModel.timeLevel_DDL,null,null);
        for(int i=0;i<list.size();i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        return jsonArray;
    }
    /**
     * 通用增量趋势接口
     */
    public JSONArray addLine(String startDate,String endDate, String area, int level,String index,String timeLevel,String interval,String lowLevel)throws Exception{
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevel0(startDate,endDate,area,level,index,timeLevel,interval,lowLevel);
        JSONArray result = new JSONArray();
        for (SaveModel saveModel : list) {
            JSONObject range = new JSONObject();
            range.put("range", DateUtil.dateToStr(saveModel.getQuotaDate(), "yyyy-MM-dd"));
            range.put("amount", saveModel.getResult2());
            result.add(range);
        }
        return result;
    }
    /**
     * 生活照料分析
     */
    public JSONObject lifeCareAnalysis(String endDate, String area, int level) throws Exception{
        JSONObject res = new JSONObject();
        String totalIndex = "38";
        String noReplyIndex = "39";
        String inTimeIndex = "40";
        //老人数
        SaveModel saveModel1 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL);
        //工单数
        SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, noReplyIndex, SaveModel.timeLevel_DDL);
        //服务费用
        SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, area, level, inTimeIndex, SaveModel.timeLevel_DDL);
        res.put("patientNum",saveModel1.getResult2().longValue());
        res.put("orderNum",saveModel2.getResult2().longValue());
        res.put("fee",saveModel3.getResult1());
        //服务项目分析
        JSONArray jsonArray = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,inTimeIndex,SaveModel.timeLevel_DDL,null,null);
        for(int i=0;(i<list.size()&&i<5);i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        res.put("items",jsonArray);
        return res;
    }
    /**
     * 生活照料服务项目
     */
    public JSONArray lifeCareItems(String endDate, String area, int level) throws Exception{
        //服务项目分析
        JSONArray jsonArray = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"40",SaveModel.timeLevel_DDL,null,null);
        for(int i=0;i<list.size();i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        return jsonArray;
    }
    /**
     * 能力评估评估类型
     */
    public JSONArray capacityAssessment(String endDate, String area, int level) throws Exception{
        //评估类型
        JSONArray jsonArray = new JSONArray();
        List<SaveModel> list = statisticsUtilService.findDateAllQuotaLevel1Sort(endDate,endDate,area,level,"37",SaveModel.timeLevel_DDL,null,null);
        for(int i=0;i<list.size();i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());
            jsonArray.add(json);
        }
        return jsonArray;
    }
        /**
         * 统计首页头部数据
         * @param area

+ 38 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsUtilService.java

@ -1,10 +1,15 @@
package com.yihu.jw.care.service.statistics;
import com.yihu.jw.es.util.ElasticsearchUtil;
import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
@ -16,6 +21,15 @@ import java.util.Calendar;
@Service
public class StatisticsUtilService {
    @Autowired
    private ElasticsearchUtil elasticsearchUtil;
    public List<SaveModel> findDateAllQuotaLevel1Sort(String startDate, String endDate, String area, int level, String index, String timeLevel, String interval, String lowLevel) throws Exception {
        List<SaveModel> list = elasticsearchUtil.findDateAllQuotaLevel1(startDate,endDate,area,level,index,timeLevel,interval,lowLevel);
        list.sort((a, b) -> Double.compare(b.getResult2(), a.getResult2()));
        return list;
    }
    /**
     * 计算开始时间
     * @param endDate
@ -38,4 +52,28 @@ public class StatisticsUtilService {
        }
        return DateUtil.dateToStrShort(cal.getTime());
    }
    public Double getDoubleRange(Double first, Double second) {
        if (second == 0 && first > 0) {
            return 100.0;
        } else if (second == 0 && first == 0) {
            return 0.0;
        }
        Double size =first / second;
        DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
        Double filesize = Double.parseDouble(df.format(size));
        return filesize ;
    }
    public String getTwoRange(Double first, Double second) {
        if (second == 0 && first > 0) {
            return "100%";
        } else if (second == 0 && first == 0) {
            return "0%";
        }
        Double size = (first * 100) / second;
        DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
        String filesize = df.format(size);
        return filesize + "%";
    }
}

+ 1 - 1
svr/svr-statistics-es/src/main/java/com/yihu/wlyy/statistics/job/business/CurrentMysqlToEsQuotaJob.java

@ -89,7 +89,7 @@ public class CurrentMysqlToEsQuotaJob implements Job {
            //初始化参数
            initParams(context);
            //统计指标
            if(Integer.valueOf(wlyyJobCongId)>27){
            if(Integer.valueOf(wlyyJobCongId)>27||wlyyJobCongId.equals("8")){
                computequota();
            }
        } catch (Exception e) {