LAPTOP-KB9HII50\70708 9 ماه پیش
والد
کامیت
c8f3b6fdca

+ 1 - 2
business/base-service/src/main/java/com/yihu/jw/device/dao/DevicePatientHealthIndexDao.java

@ -40,7 +40,6 @@ public interface DevicePatientHealthIndexDao
			"	a.type IN ('1', '2' ) \n" +
			"	AND a.record_date BETWEEN ?1 AND ?2 \n" +
			"	AND c.doctor =?3 \n" +
			"	AND b.disease IN('1','2','3')\n" +
			"	AND b.disease_condition IN ('1','2','0')",nativeQuery = true)
			"	AND b.disease IN('1','2','3') ",nativeQuery = true)
	List<DevicePatientHealthIndex> findByDoctor(Date start, Date end, String doctorcode);
}

+ 10 - 1
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/job/SynDoctorInfoJob.java

@ -1,7 +1,7 @@
package com.yihu.jw.job;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.service.channel.PrescriptionStatusUpdateService;
import com.yihu.jw.service.channel.SyncWlyyHospitalService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -18,9 +18,18 @@ public class SynDoctorInfoJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(SynDoctorInfoJob.class);
    @Autowired
    private EntranceService entranceService;
    @Autowired
    private SyncWlyyHospitalService syncWlyyHospitalService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        logger.info("START========SynDoctorInfoJob========");
        try {
            syncWlyyHospitalService.synChronicDiseaseSign();
            syncWlyyHospitalService.synSign();
        }catch (Exception e){
            e.printStackTrace();
        }
        try {
            Trigger trigger =jobExecutionContext.getTrigger();
            System.out.println("执行时间为"+trigger.getNextFireTime());

+ 171 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/SyncWlyyHospitalService.java

@ -3,6 +3,7 @@ package com.yihu.jw.service.channel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.door.WlyySign;
import com.yihu.jw.entity.hospital.DmHospitalDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.team.WlyyAdminTeamDO;
@ -11,15 +12,21 @@ import com.yihu.jw.hospital.HospitalDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.team.dao.WlyyAdminTeamDao;
import com.yihu.jw.hospital.team.dao.WlyyAdminTeamMemberDao;
import com.yihu.jw.sign.dao.WlyySignDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class SyncWlyyHospitalService {
@ -35,6 +42,170 @@ public class SyncWlyyHospitalService {
    private WlyyAdminTeamMemberDao wlyyAdminTeamMemberDao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private WlyySignDao wlyySignDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    //同步慢病居民签约信息
    public void synChronicDiseaseSign(){
        try {
            WlyyHospitalSysDictDO dictDO = wlyyHospitalSysDictDao.findById("synChronicDiseaseSign").orElse(null);
            if(dictDO==null){
                return;
            }
            String configId = "commonGet";
            List<WlyySign> signList = null;
            String param = "?type=1&startDate="+dictDO.getDictValue();
            JSONObject re = wlyyHttpService.sendWlyyMesGet(configId, "findSignAll" + param);
            if(re!=null&&re.getInteger("status")==200){
                dictDO.setDictValue(DateUtil.getStringDateShort());
                wlyyHospitalSysDictDao.save(dictDO);
                JSONArray jsonArray = re.getJSONArray("data");
                if(jsonArray.size()>0){
                    signList = new ArrayList<>(jsonArray.size());
                    String sysTime = DateUtil.getStringDate();
                    Date createTime = new Date();
                    for (int i=0;i<jsonArray.size();i++){
                        logger.info("i="+i);
                        JSONObject json = jsonArray.getJSONObject(i);
                        String idcard = json.getString("idcard");
                        WlyySign sign = wlyySignDao.findByIdcard(idcard);
                        if(sign!=null){
                            sign.setStatus(json.getString("status"));
                            sign.setYearNum(json.getString("year_num"));
                            sign.setHospitalName(json.getString("hospital_name"));
                            sign.setDoctorName(json.getString("doctor_name"));
                            sign.setHealthDoctorName(json.getString("doctor_health_name"));
                            sign.setBegin(json.getString("begin"));
                            sign.setEnd(json.getString("end"));
                            sign.setSignYear(json.getString("sign_year"));
                            sign.setSignSource(json.getString("sign_source"));
                            sign.setDiseaseCondition(json.getString("disease_condition"));
                            sign.setAdminTeamId(json.getString("admin_team_id"));
                            sign.setHealthIjk(json.getString("health"));
                            sign.setDiseaseIjk(json.getString("disease"));
                            sign.setSysTime(sysTime);
                        }else {
                            //新增
                            sign = new WlyySign();
                            sign.setIsNcd(1);
                            sign.setIdcard(json.getString("idcard"));
                            sign.setSsc(json.getString("ssc"));
                            sign.setSex(json.getString("sex"));
                            sign.setBirthday(json.getString("birthday"));
                            sign.setMobile(json.getString("mobile"));
                            sign.setName(json.getString("name"));
                            sign.setAddress(json.getString("address"));
                            sign.setSysTime(sysTime);
                            sign.setCreateTime(createTime);
                            sign.setStatus(json.getString("status"));
                            sign.setYearNum(json.getString("year_num"));
                            sign.setHospitalName(json.getString("hospital_name"));
                            sign.setDoctorName(json.getString("doctor_name"));
                            sign.setHealthDoctorName(json.getString("doctor_health_name"));
                            sign.setBegin(json.getString("begin"));
                            sign.setEnd(json.getString("end"));
                            sign.setSignYear(json.getString("sign_year"));
                            sign.setSignSource(json.getString("sign_source"));
                            sign.setDiseaseCondition(json.getString("disease_condition"));
                            sign.setAdminTeamId(json.getString("admin_team_id"));
                            sign.setHealthIjk(json.getString("health"));
                            sign.setDiseaseIjk(json.getString("disease"));
                        }
                        signList.add(sign);
                    }
                    wlyySignDao.saveAll(signList);
                    //更新居民id
                    String updateSql = "UPDATE base_patient p,wlyy_sign s set s.patient=p.id WHERE p.idcard=s.idcard and p.del='1' and s.patient is null ";
                    jdbcTemplate.execute(updateSql);
                }
            }
            re = null;
            signList = null;
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    //同步签约信息
    public void synSign(){
        try {
            String configId = "commonGet";
            String param = "?type=2";
            JSONObject re = wlyyHttpService.sendWlyyMesGet(configId, "findSignAll" + param);
            if(re!=null&&re.getInteger("status")==200){
                List<WlyySign> list = wlyySignDao.findAll();
                Map<String,WlyySign> signMap = list.stream().collect(Collectors.toMap(WlyySign::getIdcard, v -> v, (o1, o2) -> o1));
                List<WlyySign> signList = new ArrayList<>(list.size());
                JSONArray jsonArray = re.getJSONArray("data");
                if(jsonArray.size()>0){
                    String sysTime = DateUtil.getStringDate();
                    Date createTime = new Date();
                    for (int i=0;i<jsonArray.size();i++){
                        logger.info("i="+i);
                        JSONObject json = jsonArray.getJSONObject(i);
                        String idcard = json.getString("idcard");
                        WlyySign sign = signMap.get(idcard);
                        if(sign!=null){
                            sign.setStatus(json.getString("status"));
                            sign.setYearNum(json.getString("year_num"));
                            sign.setHospitalName(json.getString("hospital_name"));
                            sign.setDoctorName(json.getString("doctor_name"));
                            sign.setHealthDoctorName(json.getString("doctor_health_name"));
                            sign.setBegin(json.getString("begin"));
                            sign.setEnd(json.getString("end"));
                            sign.setSignYear(json.getString("sign_year"));
                            sign.setSignSource(json.getString("sign_source"));
                            sign.setDiseaseCondition(json.getString("disease_condition"));
                            sign.setAdminTeamId(json.getString("admin_team_id"));
                            sign.setSysTime(sysTime);
                        }else {
                            //新增
                            sign = new WlyySign();
                            sign.setIsNcd(0);
                            sign.setIdcard(json.getString("idcard"));
                            sign.setSsc(json.getString("ssc"));
                            sign.setSex(json.getString("sex"));
                            sign.setBirthday(json.getString("birthday"));
                            sign.setMobile(json.getString("mobile"));
                            sign.setName(json.getString("name"));
                            sign.setAddress(json.getString("address"));
                            sign.setSysTime(sysTime);
                            sign.setCreateTime(createTime);
                            sign.setStatus(json.getString("status"));
                            sign.setYearNum(json.getString("year_num"));
                            sign.setHospitalName(json.getString("hospital_name"));
                            sign.setDoctorName(json.getString("doctor_name"));
                            sign.setHealthDoctorName(json.getString("doctor_health_name"));
                            sign.setBegin(json.getString("begin"));
                            sign.setEnd(json.getString("end"));
                            sign.setSignYear(json.getString("sign_year"));
                            sign.setSignSource(json.getString("sign_source"));
                            sign.setDiseaseCondition(json.getString("disease_condition"));
                            sign.setAdminTeamId(json.getString("admin_team_id"));
                        }
                        signList.add(sign);
                    }
                    wlyySignDao.saveAll(signList);
                    //更新居民id
                    String updateSql1 = "UPDATE base_patient p,wlyy_sign s set s.patient=p.id WHERE p.idcard=s.idcard and p.del='1' and s.patient is null ";
                    jdbcTemplate.execute(updateSql1);
                    //更新病情
                    String updateSql2 = "UPDATE base_patient p,wlyy_sign s set p.disease_condition=s.disease_condition" +
                            " WHERE p.id=s.patient and p.del='1' ";
                    jdbcTemplate.execute(updateSql2);
                }
                list = null;
                signMap = null;
                signList = null;
            }
            re = null;
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void syncHospital(String townCode){
        String param="";

+ 29 - 4
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -37,10 +37,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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 org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -120,6 +117,34 @@ public class JobController extends BaseController {
        }
    }
    /**
     * 同步签约信息
     */
    @GetMapping(value = "synSign")
    public String synSign() {
        try {
            syncWlyyHospitalService.synSign();
            return success("成功!");
        } catch (Exception e) {
            error(e);
            return error(-1,"失败:" + e.getMessage());
        }
    }
    /**
     * 同步慢病居民签约信息
     */
    @GetMapping(value = "synChronicDiseaseSign")
    public String synChronicDiseaseSign() {
        try {
            syncWlyyHospitalService.synChronicDiseaseSign();
            return success("成功!");
        } catch (Exception e) {
            error(e);
            return error(-1, "失败:" + e.getMessage());
        }
    }
    @RequestMapping(value = "removeJob", method = RequestMethod.GET)
    public String removeJob(String taskId) {