|
@ -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="";
|