ソースを参照

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

wujunjie 8 年 前
コミット
347125b956

+ 18 - 10
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/role/Level1Role.java

@ -73,18 +73,26 @@ public class Level1Role {
        Map<String, List<ETLModel>> tjCityMap = new HashMap<String, List<ETLModel>>();//市级的统计map key 是区行政区划350200
        Map<String, List<ETLModel>> tjTownMap = new HashMap<String, List<ETLModel>>();//区级的统计map key 是区行政区划350206
        Map<String, List<ETLModel>> tjOrgMap = new HashMap<String, List<ETLModel>>();//机构的统计map key 是机构的code
        for(ETLModel etlModel:models){
            //统计市市
            compute(tjCityMap, etlModel.getCity(),etlModel);
            //统计市区
            compute(tjTownMap, etlModel.getTown(),etlModel);
            //统计市机构
            compute(tjOrgMap, etlModel.getHospital(),etlModel);
        if(models.size()>0){
            for(ETLModel etlModel:models){
                //统计市市
                compute(tjCityMap, etlModel.getCity(),etlModel);
                //统计市区
                compute(tjTownMap, etlModel.getTown(),etlModel);
                //统计市机构
                compute(tjOrgMap, etlModel.getHospital(),etlModel);
            }
            returnMapsList.add(0,new HashMap<>());
            returnMapsList.add(1,tjOrgMap);
            returnMapsList.add(2,tjTownMap);
            returnMapsList.add(3,tjCityMap);
        }else{
            returnMapsList.add(0,new HashMap<>());
            returnMapsList.add(1,new HashMap<>());
            returnMapsList.add(2,new HashMap<>());
            returnMapsList.add(3,new HashMap<>());
        }
        returnMapsList.add(1,tjOrgMap);
        returnMapsList.add(2,tjTownMap);
        returnMapsList.add(3,tjCityMap);
        return returnMapsList;
    }

+ 6 - 2
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/CurrentDayAllQuotaJob.java

@ -209,9 +209,13 @@ public class CurrentDayAllQuotaJob implements Job {
                    sb.append(",");
                }
            }
            String sql="";
            //找出今天的咨询信息
            String sql=" select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+"' and a.consult in ("+sb.toString()+")";
            //抽取數據
            if(consultIdMaps.size()>0){
                sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+"' and a.consult in ("+sb.toString()+")";
            }else{
                sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+ "' and a.consult ='noRey' ";
            } //抽取數據
            List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
            System.out.println("consultTeams num:"+consultTeams.size());

+ 6 - 2
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/NoReyConsultJob.java

@ -104,8 +104,12 @@ public class NoReyConsultJob implements Job {
                }
            }
            String sql = " select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + yesterday + Constant.quota_date_last + "' and a.consult in ("+sb.toString()+")";
            //抽取數據
            String sql ="";
            if(consultIdMaps.size()>0){
                sql = " select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + yesterday + Constant.quota_date_last + "' and a.consult in ("+sb.toString()+")";
            }else{
                sql = " select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + yesterday + Constant.quota_date_last + "' and a.consult ='noRey' ";
            } //抽取數據
            List<ConsultTeam> consultTeams = dbExtract.extract(ConsultTeam.class, sql);
            System.out.println("consultTeams num"+consultTeams.size());
            //過濾數據

+ 81 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -527,10 +527,9 @@ public class FamilyContractService extends BaseService {
     *
     * @param doctor     签约医生
     * @param patient    居民code
     * @param doctorType 医生类型
     * @return
     */
    public int sign(String doctor, String patient, int doctorType) throws Exception {
    public int sign(String doctor, String patient) throws Exception {
        Patient p = patientDao.findByCode(patient);
        if (p == null) {
            return -1;
@ -556,7 +555,7 @@ public class FamilyContractService extends BaseService {
        sf.setCzrq(new Date());
        sf.setPatientApplyDate(new Date());
        if (doctorType == 2) {
        if (d.getLevel() == 2) {
            sf.setDoctor(doctor);
            sf.setDoctorName(d.getName());
        } else {
@ -1926,6 +1925,85 @@ public class FamilyContractService extends BaseService {
        return result;
    }
    public JSONObject findByParamsWithDoctor(String doctorCode, String teamCode, String params,int level) throws Exception {
        JSONObject returnMap = new JSONObject();
        String addressSql = "select a.signcode,a.name,a.address,a.code,a.hasopenid,a.idcard,a.photo from( SELECT " +
                "  sf.CODE signcode, " +
                "  p.photo photo, " +
                "  p.name name, " +
                "  p.address address, " +
                "  p.code code, " +
                "  CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
                "  p.idcard idcard " +
                " FROM " +
                " wlyy_sign_family sf " +
                " JOIN wlyy_patient p ON sf.patient = p.CODE " +
                " WHERE " +
                " sf.type = 2 " +
                " AND sf. STATUS > 0 " +
                // " and sf.doctor = ? " +
                " and sf.admin_team_code = ? " +
                " AND ( "+(level==2?"sf.doctor =?":"sf.doctor_health =? ")+") ) a where 1=1";
        if (!org.springframework.util.StringUtils.isEmpty(params)) {
            addressSql += " AND a.address like '%" + params + "%'";
        }
        List<Map<String, Object>> datas = jdbcTemplate.queryForList(addressSql, teamCode,doctorCode);
        if (datas != null && datas.size() > 0) {
            JSONArray jsonArray = new JSONArray();
            for (Map<String, Object> map : datas) {
                JSONObject jo = new JSONObject();
                jo.put("signcode", map.get("signcode"));
                jo.put("name", map.get("name"));
                jo.put("photo", map.get("photo"));
                jo.put("address", map.get("address"));
                jo.put("code", map.get("code"));
                jo.put("hasopenid", map.get("hasopenid"));
                jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
                jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
                jsonArray.put(jo);
            }
            returnMap.put("address", jsonArray);
        }
        String patientNameSql = "select a.signcode,a.name,a.address,a.code,a.hasopenid,a.idcard,a.photo from( SELECT " +
                "  sf.CODE signcode, " +
                "  p.name name, " +
                "  p.photo photo, " +
                "  p.address address, " +
                "  p.code code, " +
                "  CASE WHEN p.openid is null THEN '0' WHEN p.openid='' THEN '0' else 1 END hasopenid, " +
                "  p.idcard idcard " +
                " FROM " +
                " wlyy_sign_family sf " +
                " JOIN wlyy_patient p ON sf.patient = p.CODE " +
                " WHERE " +
                " sf.type = 2 " +
                " AND sf. STATUS > 0 " +
                //" and sf.doctor = ? " +
                " and sf.admin_team_code = ? " +
                " AND ( "+(level==2?"sf.doctor =?":"sf.doctor_health =? ")+") ) a where 1=1";
        if (!org.springframework.util.StringUtils.isEmpty(params)) {
            patientNameSql += " AND a.name like '%" + params + "%'";
        }
        datas = jdbcTemplate.queryForList(patientNameSql, teamCode,doctorCode);
        if (datas != null && datas.size() > 0) {
            JSONArray jsonArray = new JSONArray();
            for (Map<String, Object> map : datas) {
                JSONObject jo = new JSONObject();
                jo.put("signcode", map.get("signcode"));
                jo.put("name", map.get("name"));
                jo.put("photo", map.get("photo"));
                jo.put("code", map.get("code"));
                jo.put("hasopenid", map.get("hasopenid"));
                jo.put("age", IdCardUtil.getAgeForIdcard(map.get("idcard").toString()));
                jo.put("sex", IdCardUtil.getSexForIdcard_new(map.get("idcard").toString()));
                jsonArray.put(jo);
            }
            returnMap.put("name", jsonArray);
        }
        return returnMap;
    }
    public JSONObject findNoHealthSignFamilyHealthByParams(String doctorCode, String teamCode, String params) throws Exception {
        JSONObject returnMap = new JSONObject();
        String addressSql = "select a.signcode,a.name,a.address,a.code,a.hasopenid,a.idcard,a.photo from( SELECT " +

+ 21 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsAllService.java

@ -273,10 +273,12 @@ public class StatisticsAllService extends BaseService {
        if (peopleNum != null && peopleNum.getNum() > 0) {
            json.put("rate", df.format((signAmount * 1.0000) / peopleNum.getNum() * 100));
            json.put("rateString", signAmount+"/"+peopleNum.getNum());
            json.put("sign", signAmount);
            json.put("people", peopleNum.getNum());
        } else {
            json.put("rate", "0.0000");
            json.put("rateString", "0/0");
            json.put("sign", signAmount);
            json.put("people", 0);
        }
@ -300,10 +302,12 @@ public class StatisticsAllService extends BaseService {
        if (peopleNum != null && peopleNum.getTaskNum() > 0) {
            json.put("rate", df.format((signAmount * 1.0000) / peopleNum.getTaskNum() * 100));
            json.put("rateString", signAmount +"/"+ peopleNum.getTaskNum());
            json.put("sign", signAmount);
            json.put("people", peopleNum.getTaskNum());
        } else {
            json.put("rate", "0.0000");
            json.put("rateString","0/0");
            json.put("sign", signAmount);
            json.put("people", 0);
        }
@ -426,11 +430,13 @@ public class StatisticsAllService extends BaseService {
        signRate.put("sign", total);
        signRate.put("people", num);
        signRate.put("rate", df.format((total * 1.0000) / num * 100));
        signRate.put("rateString",total+"/"+num);
        json.put("signRate", signRate);
        JSONObject signTaskRate = new JSONObject();
        signTaskRate.put("sign", total);
        signTaskRate.put("people", taskNum);
        signTaskRate.put("rate", df.format((total * 1.0000) / taskNum * 100));
        signTaskRate.put("rateString", total  +"/"+taskNum);
        json.put("signTaskRate", signTaskRate);
        return json;
@ -497,6 +503,9 @@ public class StatisticsAllService extends BaseService {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
                            map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
                            map.put("rateString", map.get("amount")+"/"+ num);
                            map.put("taskRateString", map.get("amount")+"/"+ taskNum);
                            map.put("targetRateString",taskNum+"/"+num );
                            map.put("num", num);
                            map.put("task", taskNum);
                        }
@ -519,6 +528,9 @@ public class StatisticsAllService extends BaseService {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
                            map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
                            map.put("rateString", map.get("amount")+"/"+ num);
                            map.put("taskRateString", map.get("amount")+"/"+ taskNum);
                            map.put("targetRateString",taskNum+"/"+num );
                            map.put("num", num);
                            map.put("task", taskNum);
                        }
@ -593,6 +605,9 @@ public class StatisticsAllService extends BaseService {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getNum() * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getTaskNum() * 100));
                            map.put("targetRate", df.format(peopleNum.getTaskNum() * 1.0000 / peopleNum.getNum() * 100));
                            map.put("rateString", map.get("amount") +"/"+ peopleNum.getNum());
                            map.put("taskRateString", map.get("amount")+"/"+  peopleNum.getTaskNum());
                            map.put("targetRateString",peopleNum.getTaskNum()+"/"+ peopleNum.getNum());
                            map.put("num", peopleNum.getNum());
                            map.put("task", peopleNum.getTaskNum());
                        }
@ -602,6 +617,9 @@ public class StatisticsAllService extends BaseService {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getInt("num") * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getInt("taskNum") * 100));
                            map.put("targetRate", df.format(peopleNum.getInt("taskNum") * 1.0000 / peopleNum.getInt("num") * 100));
                            map.put("rateString", map.get("amount") +"/"+ peopleNum.getInt("num") );
                            map.put("taskRateString",map.get("amount") +"/"+peopleNum.getInt("taskNum") );
                            map.put("targetRateString",peopleNum.getInt("taskNum") +"/"+ peopleNum.getInt("num"));
                            map.put("num", peopleNum.getInt("num"));
                            map.put("task", peopleNum.getInt("taskNum"));
                        }
@ -717,6 +735,7 @@ public class StatisticsAllService extends BaseService {
                map.put("amount", 0L);
                map.put("num", 0);
                map.put("rate", 0.0000D);
                map.put("rateString","0/0");
            } else {
                DecimalFormat df = new DecimalFormat("0.0000");
                String[] args = map.get("amount").toString().split("/");
@ -724,6 +743,7 @@ public class StatisticsAllService extends BaseService {
                map.put("amount", Long.valueOf(args[0]));
                map.put("num", Long.valueOf(args[1]));
                map.put("rate", df.format((Long.valueOf(args[0]) * 1.0000) / Long.valueOf(args[1]) * 100));
                map.put("rateString", args[0] +"/"+ args[1]);
            }
        }
@ -1104,6 +1124,7 @@ public class StatisticsAllService extends BaseService {
                for (Map<String, Object> map : resultList) {
                    double rateG = (total > 0 ? ((long) map.get("amount")) * 1.0000 / total * 100 : 0);
                    map.put("rate", df.format(rateG));
                    map.put("rateString",map.get("amount")+"/"+total);
                }
            }
            if (index.equals("6") && resultList.size() > 0) {

+ 4 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsService.java

@ -1,9 +1,8 @@
package com.yihu.wlyy.service.app.statistics;
import com.yihu.wlyy.entity.address.Town;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.entity.address.Town;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.statistics.PopulationBase;
import com.yihu.wlyy.repository.address.CityDao;
import com.yihu.wlyy.repository.address.TownDao;
@ -16,14 +15,12 @@ import com.yihu.wlyy.util.DateUtil;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.keyvalue.core.IterableConverter;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@ -297,6 +294,7 @@ public class StatisticsService extends BaseService {
                        obj.put("name", town.getName());
                        obj.put("amount", "0");
                        obj.put("rate", Double.valueOf("0.0000"));
                        obj.put("rateString", "0/0");
                        resultList.add(obj);
                    }
                }
@ -384,11 +382,13 @@ public class StatisticsService extends BaseService {
                        PopulationBase peopleNum = peopleNumDao.findByCodeAndYear(map.get("code").toString(), Calendar.getInstance().get(Calendar.YEAR));
                        if (peopleNum != null) {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getNum() * 100));
                            map.put("rateString",map.get("amount")+"/"+peopleNum.getNum());
                        }
                    } else {
                        JSONObject peopleNum = new JSONObject(redisNum);
                        if (peopleNum != null) {
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / peopleNum.getInt("num") * 100));
                            map.put("rateString",map.get("amount")+"/"+ peopleNum.getInt("num"));
                        }
                    }
                }

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/task/RemindFocusWechatTask.java

@ -36,7 +36,7 @@ public class RemindFocusWechatTask implements Runnable {
    public void run() {
        for (Map<String, Object> p : patients) {
            try {
                if (p.get("mobile") == null || StringUtils.isEmpty(p.get("mobile").toString())) {
                if (p.get("mobile") == null || StringUtils.isEmpty(p.get("mobile").toString())||Integer.parseInt(p.get("status").toString())!=1) {
                    continue;
                }
                String msg = "尊敬的" + p.get("name").toString() + "," + doctor.getName() + "医生提醒您:" +

+ 19 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/sign/DoctorFamilyContractController.java

@ -891,6 +891,25 @@ public class DoctorFamilyContractController extends WeixinBaseController {
        }
    }
    /**
     * 搜索患者
     *
     * @param params
     * @return
     */
    @RequestMapping(value = "/findByParamsWithDoctor")
    @ResponseBody
    public String findByParamsWithDoctor(
            String teamCode,
            String params,String doctor,int level) {
        try {
            JSONObject list = familyContractService.findByParamsWithDoctor(doctor, teamCode, params,level);
            return write(200, "签约数据加载成功!", "data", list);
        } catch (Exception e) {
            return error(-1, "查询失败");
        }
    }
    /**
     * 获取没有健康管理师的签约数据数目
     *

+ 2 - 6
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/FamilyContractController.java

@ -437,21 +437,17 @@ public class FamilyContractController extends BaseController {
     * 签约申请
     *
     * @param doctor     医生code
     * @param doctorType 医生类型  2:全科 3:健管
     * @return
     */
    @RequestMapping(value = "sign")
    @ResponseBody
    public String sign(String doctor, int doctorType) {
    public String sign(String doctor) {
        try {
            if (StringUtils.isEmpty(doctor)) {
                return error(-1, "签约医生不能为空");
            }
            if (doctorType != 2 && doctorType != 3) {
                return error(-1, "医生类型参数错误");
            }
            int result = familyContractService.sign(doctor, getUID(), doctorType);
            int result = familyContractService.sign(doctor, getUID());
            if (result == -1) {
                return error(-1, "用户信息查询失败");