chenweida 7 лет назад
Родитель
Сommit
8590acbb1f

+ 13 - 10
patient-co/patient-co-statistics-es/src/main/java/com/yihu/wlyy/statistics/etl/compute/ComputeHelper.java

@ -122,8 +122,9 @@ public class ComputeHelper {
    }
    public static void main(String[] args) {
        System.out.println("3502060200".substring(0,8));
        System.out.println("3502060200".substring(0, 8));
    }
    /**
     * 初始化map
     */
@ -142,9 +143,9 @@ public class ComputeHelper {
                saveModel.setTown(one.getTownCode());
                saveModel.setTownName(one.getTownName());
                //把末尾不是00的机构转换成00
                String orgCode=one.getOrgCode();
                if(!"00".equals(orgCode.substring(8))){
                    orgCode=orgCode.substring(0,8)+"00";
                String orgCode = one.getOrgCode();
                if (!"00".equals(orgCode.substring(8))) {
                    orgCode = orgCode.substring(0, 8) + "00";
                }
                saveModel.setHospital(orgCode);
                saveModel.setHospitalName(one.getOrgName());
@ -178,8 +179,8 @@ public class ComputeHelper {
                }
            }
            //如果字典长度是0 抛出异常
            if(dictModels.size()==0){
                throw new Exception("dict size:0,sql:"+dimensionQuota.getDictSql());
            if (dictModels.size() == 0) {
                throw new Exception("dict size:0,sql:" + dimensionQuota.getDictSql());
            }
            lastMaps = mapTemp;
        }
@ -195,12 +196,14 @@ public class ComputeHelper {
                    result1 += dataModel.getNum();
                    result2++;
                }
                one.getValue().setResult1(result1);
                one.getValue().setResult2(result2);
                SaveModel saveModel = one.getValue();
                saveModel.setResult1(result1);
                saveModel.setResult2(result2);
                returnList.add(saveModel);
            } else {
                returnList.add(one.getValue());
            }
            returnList.add(one.getValue());
        }
        return returnList;
    }
}

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

@ -112,7 +112,7 @@ public class CurrentMysqlToEsQuotaJob implements Job {
        //初始化统计年份
        this.year = getNowYearByDate();
        timeLevel="2";
        //初始化开始时间
        if ("2".equals(timeLevel)) {
            //按年度到达量
@ -154,7 +154,7 @@ public class CurrentMysqlToEsQuotaJob implements Job {
                //3.统计数据
                List<SaveModel> sms = compute(filterModel.getData(), dimensionQuotas, timeLevel, one);
                //4.更新数据
                Boolean success = updateData(sms, quotaDate, one.getId(), timeLevel);
                Boolean success = updateData(sms, quotaDate, one.getId(), timeLevel,dimensionQuotas.size());
                tjQuotaLog.setJobType(success ? "1" : "0");
                tjQuotaLog.setJobEndTime(new Date());
@ -172,12 +172,12 @@ public class CurrentMysqlToEsQuotaJob implements Job {
    /**
     * 删除 某个指标某一天的某个timelevel的数据
     *
     * @param quotaDate
     *  @param quotaDate
     * @param quotaCode
     * @param timeLevel
     * @param size
     */
    private boolean updateData(List<SaveModel> sms, Date quotaDate, String quotaCode, String timeLevel) {
    private boolean updateData(List<SaveModel> sms, Date quotaDate, String quotaCode, String timeLevel, int size) {
        try {
            JestClient jestClient = elasticFactory.getJestClient();
            //先根据条件查找出来
@ -196,19 +196,26 @@ public class CurrentMysqlToEsQuotaJob implements Job {
            List<SaveModel> quarySaveModels = result.getSourceAsObjectList(SaveModel.class);
            //如果之前有值就用查询出来的然后修改数目即可
            if (quarySaveModels != null && quarySaveModels.size() > 0) {
                List<SaveModel> saveModels=new ArrayList<>();
                //把新的值赋值给ES查询出来的值
                Map<String,SaveModel> newSaveModelMaps=new HashMap<>();
                //list转map
                Map<String, SaveModel> smsMap = new HashMap<>();
                sms.stream().forEach(one -> {
                    smsMap.put(one.getTeam(), one);
                });
                for (SaveModel obj : quarySaveModels) {
                    SaveModel newResult = smsMap.get(obj.getTeam());
                    obj.setResult1(newResult.getResult1());
                    obj.setResult2(newResult.getResult2());
                    obj.setCreateTime(new Date());
                for(SaveModel newSaveModel:sms){
                    StringBuffer key=new StringBuffer(newSaveModel.getTeam()+"-"+newSaveModel.getSlaveKey1()+"-"+newSaveModel.getSlaveKey2()+"-"+newSaveModel.getSlaveKey3()+"-"+newSaveModel.getSlaveKey4());
                    newSaveModelMaps.put(key.toString(),newSaveModel);
                }
                for (SaveModel esSavemodel : quarySaveModels) {
                    StringBuffer key=new StringBuffer(esSavemodel.getTeam()+"-"+esSavemodel.getSlaveKey1()+"-"+esSavemodel.getSlaveKey2()+"-"+esSavemodel.getSlaveKey3()+"-"+esSavemodel.getSlaveKey4());
                    SaveModel newSaveMode=newSaveModelMaps.get(key.toString());
                    if(newSaveMode!=null){
                        esSavemodel.setResult1(newSaveMode.getResult1());
                        esSavemodel.setResult2(newSaveMode.getResult2());
                        esSavemodel.setCreateTime(new Date());
                    }
                    saveModels.add(esSavemodel);
                }
                sms = quarySaveModels;
                return updateDate(sms);
                return updateDate(saveModels);
            } else {
                return saveDate(sms);
            }