Переглянути джерело

修改同步签约信息的数据库连接方式

humingfen 7 роки тому
батько
коміт
4904d79faa

+ 3 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/organization/HospitalDao.java

@ -43,4 +43,7 @@ public interface HospitalDao extends PagingAndSortingRepository<Hospital, Long>,
	@Query("select p from Hospital p where p.city = ?1 and p.del='1' and p.level =2 and p.centerSite='00'")
	List<Hospital> findByCity(String city);
	@Query("select distinct p.code from Hospital p")
	List<String> findCode();
}

+ 0 - 8
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java

@ -80,12 +80,4 @@ public interface PatientDao extends PagingAndSortingRepository<Patient, Long> {
            " AND `sicard_status` IS NULL AND `sicard_time` >= ?1 ORDER BY `sicard_time`",nativeQuery = true)
    List<String> listNotupdatedByDate(String beginTime);
    //根据患者身份证和医疗保险号获取身份证
    @Query("select p.idcard from Patient p where p.medicareNumber is null and p.idcard in (?1)")
    List<String> findIdcardByMedicareNumber(List<String> idcards);
    //根据患者身份证号更新患者医疗保险号
    @Modifying
    @Query("update Patient p set p.medicareNumber = ?2 where p.idcard = ?1")
    void updatePatientMedicareNumberByIdcard(String idcard, String medicareNumber);
}

+ 7 - 9
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java

@ -5,20 +5,17 @@
 *******************************************************************************/
package com.yihu.wlyy.repository.patient;
import java.util.Date;
import java.util.List;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamilyRenew;
import com.yihu.wlyy.entity.patient.SignFamily;
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;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.wlyy.entity.patient.SignFamily;
import java.util.Date;
import java.util.List;
public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Long>, JpaSpecificationExecutor<SignFamily> {
@ -431,7 +428,8 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    @Query(value = "SELECT f.* FROM wlyy_sign_family f WHERE f.idcard = ?1 and f.`status` = -4 ORDER BY sign_year desc LIMIT 0,1 ",nativeQuery = true)
    SignFamily findLatelyRenew(String idcard);
    //根据签约类型、签约状态、扣费状态查找居民身份证信息
    @Query("select a.idcard from SignFamily a where (a.type = 2 or a.type = 1) and a.status = 1 and a.expensesStatus = 1 ")
    List<String> findIdcardByStatus();
    //查询wlyy_sign_family有效签约且居民的医疗保险号为空的数据
    @Query(value = "select a.idcard from wlyy_sign_family a left join wlyy_patient b on a.idcard = b.idcard where a.hospital = ?1 and (a.type = 2 or a.type = 1) " +
            "and a.status = 1 and a.expenses_status = 1 and (b.medicare_number is null or b.medicare_number = '')", nativeQuery = true)
    List<String> findIdcardByStatus(String hospital);
}

+ 14 - 12
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPatientMedicareNumberService.java

@ -1,6 +1,6 @@
package com.yihu.wlyy.service.third.jw;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.util.HttpClientUtil;
import org.apache.http.NameValuePair;
@ -26,25 +26,27 @@ public class JwPatientMedicareNumberService {
    @Value("${sign.zysoft}")
    private String jwUrl;
    @Autowired
    private PatientDao patientDao;
    private HospitalDao hospitalDao;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private HttpClientUtil httpClientUtil;
    /**
     * 查找所有有效签约居民的签约信息,并同步到本地数据库
     * 根据社区查找有效签约居民的签约信息,并同步到本地数据库
     */
    public void getEffectiveSignFamily () throws Exception {
        List<String> idcards = signFamilyDao.findIdcardByStatus();
        List<String> newIdcards = patientDao.findIdcardByMedicareNumber(idcards);
        String url = jwUrl + "/third/zysoftservice/getSickCurrnetFamilySignInfo";
        //医疗保险号的居民集合
        HashMap<String, String> idcard_medicare_number_map = new HashMap<>();
        for (String idcard : newIdcards) {
            List<NameValuePair> params = new ArrayList<>();
            params.add(new BasicNameValuePair("idcard", idcard));
            httpClientUtil.post(url, params, "UTF-8");
        List<String> hospitals = hospitalDao.findCode();
        for(String hospital : hospitals) {
            List<String> idcards = signFamilyDao.findIdcardByStatus(hospital);
            String url = jwUrl + "/third/zysoftservice/getSickCurrnetFamilySignInfo";
            //医疗保险号的居民集合
            HashMap<String, String> idcard_medicare_number_map = new HashMap<>();
            for (String idcard : idcards) {
                List<NameValuePair> params = new ArrayList<>();
                params.add(new BasicNameValuePair("idcard", idcard));
                httpClientUtil.post(url, params, "UTF-8");
            }
        }
    }
}