Bladeren bron

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 7 jaren geleden
bovenliggende
commit
6b00cb4b67

+ 5 - 5
patient-co/patient-co-statistics-es/pom.xml

@ -388,11 +388,11 @@
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>${version.spring-boot}</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>1.3.5</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>de.codecentric</groupId>-->
            <!--<artifactId>spring-boot-admin-starter-client</artifactId>-->
            <!--<version>1.3.5</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>

+ 84 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/controller/ExtractDataController.java

@ -0,0 +1,84 @@
package com.yihu.wlyy.statistics.controller;
import com.yihu.wlyy.statistics.service.ExtractDataService;
import com.yihu.wlyy.statistics.vo.SaveModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * Created by chenweida on 2017/10/16.
 */
@RestController
@RequestMapping("/extractData")
@Api(description = "抽取mysql数据到es")
public class ExtractDataController extends BaseController {
    @Autowired
    private ExtractDataService extractDataService;
    @ApiOperation(value = "从mysql抽取某一天的全部指标数据到ES")
    @RequestMapping(value = "/extractOneDate", method = RequestMethod.POST)
    public String extractOneDate(
            @ApiParam(name = "date", value = "时间(yyyy-MM-dd)", required = true) @RequestParam(value = "date", required = true) String date) {
        try {
            extractDataService.extractOneDate(date);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @ApiOperation(value = "从mysql抽取某一天的某一个指标数据到ES")
    @RequestMapping(value = "/extractOneDateWithId", method = RequestMethod.POST)
    public String extractOneDateWithId(
            @ApiParam(name = "date", value = "时间(yyyy-MM-dd)", required = true) @RequestParam(value = "date", required = true) String date,
            @ApiParam(name = "quotaId", value = "指标ID", required = true) @RequestParam(value = "quotaId", required = true) String quotaId) {
        try {
            extractDataService.extractOneDateWithId(date,quotaId);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @ApiOperation(value = "从mysql抽取某一天到某一天的全部指标数据到ES")
    @RequestMapping(value = "/extractDate2Date", method = RequestMethod.POST)
    public String extractDate2Date(
            @ApiParam(name = "startDate", value = "开始时间包含头(yyyy-MM-dd)", required = true) @RequestParam(value = "startDate", required = true) String startDate,
            @ApiParam(name = "endDate", value = "结束时间包含尾(yyyy-MM-dd)", required = true) @RequestParam(value = "endDate", required = true) String endDate) {
        try {
            extractDataService.extractDate2Date(startDate,endDate);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
    @ApiOperation(value = "从mysql抽取某一天到某一天的某一个指标数据到ES")
    @RequestMapping(value = "/extractDate2DateWithId", method = RequestMethod.POST)
    public String extractDate2DateWithId(
            @ApiParam(name = "startDate", value = "开始时间包含头(yyyy-MM-dd)", required = true) @RequestParam(value = "startDate", required = true) String startDate,
            @ApiParam(name = "endDate", value = "结束时间包含尾(yyyy-MM-dd)", required = true) @RequestParam(value = "endDate", required = true) String endDate,
            @ApiParam(name = "quotaId", value = "指标ID", required = true) @RequestParam(value = "quotaId", required = true) String quotaId) {
        try {
            extractDataService.extractDate2DateWithId(startDate,endDate,quotaId);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);
            return invalidUserException(e, -1, "启动失败:" + e.getMessage());
        }
    }
}

+ 13 - 4
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/controller/QueryController.java

@ -47,9 +47,18 @@ public class QueryController {
    @Autowired
    private ElasticsearchUtil elasticsearchUtil;
    @ApiOperation(value = "执行sql")
    @RequestMapping(value = "/excuteSQL", method = RequestMethod.GET)
    public List<SaveModel> excuteSQL(
            @ApiParam(name = "sql", value = "执行的", required = true) @RequestParam(value = "sql", required = true) String sql) {
        List<SaveModel> saveModels = elasticsearchUtil.excute(sql);
        return saveModels;
    }
    @ApiOperation(value = "查询某几个指标某个层级的列表")
    @RequestMapping(value = "/getQuotasList", method = RequestMethod.GET)
    public Map<String,List<SaveModel>> getQuotasList(
    public Map<String, List<SaveModel>> getQuotasList(
            @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
            @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
            @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
@ -60,7 +69,7 @@ public class QueryController {
        if (StringUtils.isEmpty(date)) {
            date = DateUtil.dateToStrShort(new Date());
        }
        Map<String,List<SaveModel>> jo = new HashMap<>();
        Map<String, List<SaveModel>> jo = new HashMap<>();
        for (String id : ids.split(",")) {
            jo.put("index_" + id, elasticsearchUtil.findOneDateQuotaByChllevel(id, code, date, timeLevel, arealevel, childrenArealevel));
        }
@ -123,12 +132,12 @@ public class QueryController {
    @ApiOperation(value = "查询某几个指标的到达量")
    @RequestMapping(value = "/getQuotas", method = RequestMethod.GET)
    public Map<String,List<SaveModel>> getQuotas(
    public Map<String, List<SaveModel>> getQuotas(
            @ApiParam(name = "ids", value = "指标id,多个逗号分割", required = true) @RequestParam(value = "ids", required = true) String ids,
            @ApiParam(name = "code", value = "指标的code", required = true) @RequestParam(value = "code", required = true) String code,
            @ApiParam(name = "arealevel", value = "指标的level(1 省 2 市 3 区县 4 机构 5团队)", required = true) @RequestParam(value = "arealevel", required = true) String arealevel,
            @ApiParam(name = "date", value = "时间(yyyy-MM-dd),不传默认查今天", required = false) @RequestParam(value = "date", required = false) String date) {
        Map<String,List<SaveModel>> returnMap=new HashMap<>();
        Map<String, List<SaveModel>> returnMap = new HashMap<>();
        for (String id : ids.split(",")) {
            returnMap.put("index_" + id, elasticsearchUtil.findOneDateQuota(id, code, date, "2", arealevel));
        }

+ 6 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/dao/WlyyQuotaResultDao.java

@ -21,4 +21,10 @@ public interface WlyyQuotaResultDao extends PagingAndSortingRepository<WlyyQuota
    @Query(" FROM WlyyQuotaResult a WHERE a.level1Type =?1 and a.qkdoctorJobName != ?2 and a.quatoCode=1")
    List<WlyyQuotaResult> findByLevel1TypeAndQkdoctorJobName(String level1Type, String qkdoctorJobName);
    @Query(" FROM WlyyQuotaResult a WHERE a.quotaDate =?1 and a.level1Type = 1  and a.quatoCode !=18 and a.quatoCode !=19")
    List<WlyyQuotaResult> findByDate(String date);
    @Query(" FROM WlyyQuotaResult a WHERE a.quotaDate =?1 and a.quatoCode=?2  and a.level1Type = 1 and a.quatoCode !=18 and a.quatoCode !=19 ")
    List<WlyyQuotaResult> findByDateAndId(String date, String quotaId);
}

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

@ -205,6 +205,7 @@ public class CurrentMysqlToEsQuotaJob implements Job {
                    SaveModel newResult = smsMap.get(obj.getTeam());
                    obj.setResult1(newResult.getResult1());
                    obj.setResult2(newResult.getResult2());
                    obj.setCreateTime(new Date());
                }
                sms=quarySaveModels;
            }

+ 87 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/service/ExtractDataService.java

@ -0,0 +1,87 @@
package com.yihu.wlyy.statistics.service;
import com.yihu.wlyy.entity.statistics.WlyyQuotaResult;
import com.yihu.wlyy.statistics.dao.WlyyQuotaResultDao;
import com.yihu.wlyy.statistics.etl.save.es.ElastricSearchSave;
import com.yihu.wlyy.statistics.vo.SaveModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by chenweida on 2017/10/16.
 */
@Service
public class ExtractDataService {
    @Autowired
    private WlyyQuotaResultDao wlyyQuotaResultDao;
    @Autowired
    private ElastricSearchSave elastricSearchSave;
    public void extractOneDate(String date) {
        List<WlyyQuotaResult> quotaResults = wlyyQuotaResultDao.findByDate(date);
        List<SaveModel> saveModel = new ArrayList<>();
        if (quotaResults != null && quotaResults.size() > 0) {
            quotaResults.stream().forEach(one -> {
                SaveModel saveModelTemp = new SaveModel();
                saveModelTemp.setQuotaCode(one.getQuatoCode());
                saveModelTemp.setQuotaDate(one.getQuotaDate());
                saveModelTemp.setCreateTime(one.getCreateTime());
                saveModelTemp.setCity(one.getCity());
                saveModelTemp.setCityName(one.getCityName());
                saveModelTemp.setTown(one.getTown());
                saveModelTemp.setTownName(one.getTownName());
                saveModelTemp.setHospital(one.getOrgCode());
                saveModelTemp.setHospitalName(one.getOrgName());
                saveModelTemp.setTeam(one.getQkdoctorCode());
                saveModelTemp.setTeamName(one.getQkdoctorName());
                saveModelTemp.setResult1(Integer.valueOf(one.getResult()));
                saveModelTemp.setResult2(Integer.valueOf(one.getResult()));
                saveModelTemp.setSlaveKey1(one.getLevel2Type());
                saveModelTemp.setSlaveKey1Name(one.getLevel2TypeName());
                saveModelTemp.setSlaveKey2(one.getLevel3Type());
                saveModelTemp.setSlaveKey2Name(one.getLevel3TypeName());
                if (
                        "1".equals(one.getQuatoCode()) ||
                        "2".equals(one.getQuatoCode()) ||
                        "6".equals(one.getQuatoCode())||
                                "7".equals(one.getQuatoCode())||
                                "8".equals(one.getQuatoCode())||
                                "9".equals(one.getQuatoCode())
                   ){
                    saveModelTemp.setTimeLevel("2");
                }
                if (
                        "3".equals(one.getQuatoCode()) ||
                        "4".equals(one.getQuatoCode()) ||
                        "5".equals(one.getQuatoCode())
                        ){
                    saveModelTemp.setTimeLevel("2");
                }
                saveModelTemp.setAreaLevel("5");
            });
        }
    }
    public void extractOneDateWithId(String date, String quotaId) {
        wlyyQuotaResultDao.findByDateAndId(date, quotaId);
    }
    public void extractDate2Date(String startDate, String endDate) {
    }
    public void extractDate2DateWithId(String startDate, String endDate, String quotaId) {
    }
}

+ 1 - 0
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/service/JobService.java

@ -127,6 +127,7 @@ public class JobService {
            //往quartz框架添加任务
            if (!StringUtils.isEmpty(quartzJobConfig.getJobClass())) {
                quartzHelper.startNow(getRightClass(quartzJobConfig), quartzJobConfig.getId() + UUID.randomUUID().toString().replace("-", ""), params);
                Thread.sleep(sleepTime);
            }
        }
    }

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

@ -646,33 +646,7 @@ public class StatisticsESService {
            resultList.add(data);
        }
        if (resultList == null || resultList.size() < 1) {
            resultList = new ArrayList<>();
            Map<String, Object> gxy = new HashMap<>();
            gxy.put("code", "1");
            gxy.put("name", "高血压");
            gxy.put("amount", Double.valueOf("0.0"));
            resultList.add(gxy);
            Map<String, Object> tnb = new HashMap<>();
            tnb.put("code", "2");
            tnb.put("name", "糖尿病");
            tnb.put("amount", Double.valueOf("0.0"));
            resultList.add(tnb);
            Map<String, Object> gxyTnb = new HashMap<>();
            gxyTnb.put("code", "3");
            gxyTnb.put("name", "高血压+糖尿病");
            gxyTnb.put("amount", Double.valueOf("0.0"));
            resultList.add(gxyTnb);
            Map<String, Object> jk = new HashMap<>();
            jk.put("code", "4");
            jk.put("name", "健康人群");
            jk.put("amount", Double.valueOf("0.0"));
            resultList.add(jk);
        }
        if (resultList != null) {
            for (Map<String, Object> map : resultList) {
                map.put("amount", map.get("amount") == null ? 0 : Math.round(Double.valueOf(map.get("amount").toString())));

+ 26 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/EsStatisticsController.java

@ -507,4 +507,30 @@ public class EsStatisticsController extends BaseController {
            return error(-1, "查询失败");
        }
    }
    /**
     * 获取三级指标增量  到达量
     *  2016 年才有用  2017年改成服务类型
     * @param startDate
     * @param endDate
     * @param area
     * @param level
     * @return
     */
    @RequestMapping(value = "/sixfive_statistics")
    @ResponseBody
    public String getSixFiveStatistics(@RequestParam(required = false) String startDate,
                                       @RequestParam(required = true) String endDate,
                                       @RequestParam(required = true) String area,
                                       int level,
                                       @RequestParam(required = false) String year) {
        try {
            JSONArray result = statisticsESService.getSixFiveStatistics(endDate, area, level);
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1, "查询失败");
        }
    }
}