esb vor 8 Jahren
Ursprung
Commit
aba0ec32b7

+ 35 - 19
src/main/java/com/yihu/wlyy/job/FollowUpJob.java

@ -1,5 +1,6 @@
package com.yihu.wlyy.job;
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;
@ -7,6 +8,7 @@ import com.yihu.wlyy.entity.job.QuartzJobLog;
import com.yihu.wlyy.entity.patient.PatientHealthGuidance;
import com.yihu.wlyy.entity.statistics.WlyyQuotaResult;
import com.yihu.wlyy.repository.address.TownDao;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.job.QuartzJobLogDao;
import com.yihu.wlyy.repository.organization.HospitalDao;
@ -49,6 +51,8 @@ public class FollowUpJob implements Job {
    @Autowired
    private JdbcTemplate jdbcTemplate_wlyy;
    @Autowired
    private DoctorAdminTeamDao doctorAdminTeamDao;
    private org.apache.tomcat.jdbc.pool.DataSource fvdataSource=new org.apache.tomcat.jdbc.pool.DataSource();//随访数据源
@ -91,10 +95,10 @@ public class FollowUpJob implements Job {
        quartzJobLog.setJobName(wlyyJobConfig.getJobName());
        //查找出系统全部的医生
        List<Doctor> doctors = doctorDao.findAllCertifiedDoctors();
        Map<String, Doctor> doctorsMap = new HashMap<String, Doctor>();
        for (Doctor doctor : doctors) {
            doctorsMap.put(doctor.getCode(), doctor);
        List<AdminTeam> adminTeams=doctorAdminTeamDao.findAllTeam();
        Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
        for (AdminTeam adminTeam : adminTeams) {
            adminTeamMap.put(adminTeam.getId()+"", adminTeam);
        }
        //查找出系统全部的机构
        List<Hospital> hospitals = hospitalDao.findHospital2();
@ -113,7 +117,7 @@ public class FollowUpJob implements Job {
        Map<String, Long> tjTownMap = new HashMap<String, Long>();//区级的统计map key 是区行政区划350200
        Map<String, Long> tjOrgMap = new HashMap<String, Long>();//机构的统计map key 是机构的code
        Map<String, Long> tjQkdoctorMap = new HashMap<String, Long>();//团队级的统计map 目前没有团队 先用全科医生统一  key doctorCode
        Map<String, Long> tjAdminTeamMap = new HashMap<String, Long>();//团队级的统计map 目前没有团队 先用全科医生统一  key doctorCode
        Long cityCount = 0L; //统计到市的数目
        Long townCount = 0L; //统计到所有区的数目
        Long orgCount = 0L;//统计到所有机构的数目
@ -127,17 +131,30 @@ public class FollowUpJob implements Job {
            cityCount++;
            //统计团队------------------start ------------------
            String doctorCode = (String) plan.get("doctor_uid");//得到随访中的全部医生的code
            compute(tjQkdoctorMap, doctorCode);
            String teamId= doctorAdminTeamDao.findIdByLeaderCode(doctorCode)+"";
            if(teamId==null){
                errorContent.append("随访id:"+plan.get("id")+",随访的医生所属的团队不存在");
                isAll=false;
                continue;
            }
            AdminTeam adminTeam=adminTeamMap.get(teamId);
            if(adminTeam==null){
                errorContent.append("随访id:"+plan.get("id")+",随访的医生所属的团队不存在");
                isAll=false;
                continue;
            }
            compute(tjAdminTeamMap, teamId);
            qkCount++;
            //统计机构------------------start ------------------
            //判断医生属于哪个机构
            Doctor doctor = doctorsMap.get(doctorCode);
            if(doctor==null){
                errorContent.append("随访id:"+plan.get("id")+",随访的医生为空或者不存在");
            String orgCode = adminTeam.getOrgCode();
            Hospital hospital=hospitalsMap.get(orgCode);
            if(hospital==null){
                errorContent.append("随访id:"+plan.get("id")+",随访的医生所属的团队的机构不存在");
                isAll=false;
                continue;
            }
            String orgCode = doctor.getHospital();
            //统计机构
            if(!"00".equals(orgCode.substring(orgCode.length()-2,orgCode.length()))){
                //统计站
@ -150,7 +167,6 @@ public class FollowUpJob implements Job {
            }
            orgCount++;
            //统计区------------------start ------------------
            Hospital hospital=hospitalsMap.get(orgCodeTemp);
            if(hospital == null) {
                errorContent.append("随访id:"+plan.get("id")+",随访的医生所属的机构为空或者不存在");
                isAll=false;
@ -163,9 +179,9 @@ public class FollowUpJob implements Job {
        }
        //保存统计的结果
        //保存全科医生的随访统计
        for (Map.Entry<String, Doctor> entry : doctorsMap.entrySet()) {
            Doctor doctor = doctorsMap.get(entry.getKey());//得到健康管理师
            orgCodeTemp=getOrg(doctor.getHospital());
        for (Map.Entry<String, AdminTeam> entry : adminTeamMap.entrySet()) {
            AdminTeam adminTeam = adminTeamMap.get(entry.getKey());//得到健康管理师
            orgCodeTemp=getOrg(adminTeam.getOrgCode());
            Hospital hospital = hospitalsMap.get(orgCodeTemp);//得到全科医生的机构
            if(hospital == null) continue;
            String city=Constant.city;
@ -178,12 +194,12 @@ public class FollowUpJob implements Job {
                org=hospital.getCode().substring(0,hospital.getCode().length()-2)+"00";
            }
            String orgName=hospital.getName();
            String doctorCode=doctor.getCode();
            String doctorName=doctor.getName();
            String doctorJob=doctor.getJob();
            String doctorCode=adminTeam.getId()+"";
            String doctorName=adminTeam.getName();
            String doctorJob="";
            String level="1";
            String key=doctor.getCode();
            save(tjQkdoctorMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
            String key=adminTeam.getId()+"";
            save(tjAdminTeamMap, city, cityName, town, townName, org, orgName, doctorCode, doctorName, doctorJob, level, key);
        }
        //保存机构的随访统计
        for (Map.Entry<String, Hospital> entry : hospitalsMap.entrySet()) {

+ 3 - 0
src/main/java/com/yihu/wlyy/repository/consult/ConsultTeamDao.java

@ -234,4 +234,7 @@ public interface ConsultTeamDao extends PagingAndSortingRepository<ConsultTeam,
    // 最近24小时内未回复的项目
    @Query("FROM ConsultTeam a where TIMESTAMPDIFF(SECOND, a.czrq, CURRENT_TIME) < 86400 and a.status = 0 order by a.czrq desc")
    Page<ConsultTeam> getUnresponsedConsultIn24Hours(Pageable pageable);
	@Query("FROM ConsultTeam a where a.type=?1 and a.adminTeamId is null")
	List<ConsultTeam> findByTypeAndAdminTeamIdIsNull(Integer s);
}

+ 9 - 0
src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java

@ -8,6 +8,7 @@ package com.yihu.wlyy.repository.patient;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
@ -277,4 +278,12 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
	//找出家庭签约中 团队是空的值
	@Query("select a from SignFamily a where a.type = 2 and a.status = 1 and a.adminTeamId is null")
	List<SignFamily> findBySignTypeAndTeamCode();
	//找出没有健康管理师的签约数据
	@Query("select a from SignFamily a where a.type = 2 and a.status >= 1 and a.doctorHealth is null and a.doctor=?1 order by a.czrq desc")
	List<SignFamily> findNoHealthSignFamilyNum(String doctor);
	//找出没有健康管理师的签约数据
	@Query("select a from SignFamily a where a.type = 2 and a.status >= 1 and a.doctorHealth is null and a.doctor=?1 order by a.czrq desc")
	Page<SignFamily> findNoHealthSignFamilyHealth(String doctor, Pageable pageRequest);
}

+ 17 - 0
src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1806,4 +1806,21 @@ public class FamilyContractService extends BaseService {
        return result;
    }
    public List<SignFamily> findNoHealthSignFamilyNum(String doctor) {
       return  signFamilyDao.findNoHealthSignFamilyNum(doctor);
    }
    public Page<SignFamily> findNoHealthSignFamilyHealth(String doctor, Integer page, Integer pagesize) {
        if (pagesize==null||pagesize <= 0) {
            pagesize = 10;
        }
        if (page==null||page < 0) {
            page = 0;
        }
        // 分页信息
        PageRequest pageRequest = new PageRequest(page, pagesize);
        return signFamilyDao.findNoHealthSignFamilyHealth(doctor, pageRequest);
    }
}

+ 54 - 0
src/main/java/com/yihu/wlyy/web/doctor/sign/DoctorFamilyContractController.java

@ -1,6 +1,8 @@
package com.yihu.wlyy.web.doctor.sign;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import com.yihu.wlyy.entity.message.Message;
@ -714,4 +716,56 @@ public class DoctorFamilyContractController extends WeixinBaseController {
            return error(-1, "更新失败");
        }
    }
    /**
     * 获取没有健康管理师的签约数据数目
     * @param doctor 医生code
     * @return
     */
    @RequestMapping(value = "/findNoHealthSignFamilyNum")
    @ResponseBody
    public String findNoHealthSignFamilyNum(String doctor) {
        try {
            List<SignFamily> signFamily = familyContractService.findNoHealthSignFamilyNum(doctor);
            JSONObject jo= new JSONObject();
            if(signFamily!=null&&signFamily.size()>0){
                jo.put("date",DateUtil.dateToStr(signFamily.get(0).getCzrq(),"yyyy-MM-dd"));
                jo.put("num",signFamily.size());
            }else{
                jo.put("num",0);
            }
            return write(200, "查询成功", "data", jo);
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1, "查询失败");
        }
    }
    @RequestMapping(value = "/findNoHealthSignFamilyHealth")
    @ResponseBody
    public String findNoHealthSignFamilyHealth(String doctor,Integer page,Integer pageSize) {
        try {
            JSONArray array = new JSONArray();
            Page<SignFamily> list = familyContractService.findNoHealthSignFamilyHealth(doctor, page, pageSize);
            if (list != null) {
                for (SignFamily sf : list) {
                    if (sf == null) {
                        continue;
                    }
                    JSONObject json = new JSONObject();
                    json.put("code", sf.getCode());//签约code
                    json.put("patientCode", sf.getPatient());//患者code
                    json.put("patientName", sf.getName());//患者name
                    String idcard=sf.getIdcard();
                    json.put("patientAge",IdCardUtil.getAgeForIdcard(idcard) );//患者年龄
                    json.put("patientSex",IdCardUtil.getSexForIdcard(idcard) );//患者性别
                    array.put(json);
                }
            }
            return write(200, "签约数据加载成功!", "list", array); }
        catch (Exception e) {
            e.printStackTrace();
            return error(-1, "查询失败");
        }
    }
}

+ 1 - 1
src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -192,7 +192,7 @@ public class AdminTeamController extends BaseController {
    @ApiOperation(value = "根据患者代码,获取医生团队信息")
    public String getTeam(@PathVariable("patient_code") String patientCode) {
        try {
           Map<String, Object> team = teamService.getPatientSigningTeam(patientCode);
           Map<String, Object> team = teamService.getPatientSigningTeam(patientCode,super.getUID());
            return write(200, "OK", "data", new JSONObject(team));
        } catch (Exception e) {