浏览代码

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

zhangdan 6 年之前
父节点
当前提交
95d8d3dfc5

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/specialist/SpecialistMapping.java

@ -40,6 +40,7 @@ public class SpecialistMapping {
        public static final String searchPatientInSpecialist ="/searchPatientInSpecialist";
        public static final String searchPatientInSpeciaInfo ="/searchPatientInSpeciaInfo";
        public static final String createPatientInSpeciaRelation ="/createPatientInSpeciaRelation";
        public static final String updateRedisFindPatientTeamList ="/updateRedisFindPatientTeamList";

+ 6 - 0
svr/svr-wlyy-specialist/pom.xml

@ -115,6 +115,12 @@
            <artifactId>jxl</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- redis start  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- redis end  -->
    </dependencies>

+ 28 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistController.java

@ -15,6 +15,7 @@ import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -31,6 +32,8 @@ public class SpecialistController extends EnvelopRestEndpoint {
    private SpecialistService specialistService;
    @Autowired
    private Tracer tracer;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @PostMapping(value = SpecialistMapping.specialist.createSpecialistRelation)
    @ApiOperation(value = "创建专科医生与患者匹配关系")
@ -438,6 +441,31 @@ public class SpecialistController extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "/redisFindPatientTeamList")
    @ApiOperation(value = "text-redis获取居民所有有效签约团队信息")
    public ObjEnvelop<Boolean> redisFindPatientTeamList(@ApiParam(name = "patient", value = "居民code") @RequestParam(required = true)String patient){
        try {
            String key = "specialist_patient_relation:" +patient +"_"+ ":text";
            return success(redisTemplate.opsForValue().get(key)==null?false:true);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return failed(e.getMessage(),ObjEnvelop.class);
        }
    }
    @GetMapping(value =SpecialistMapping.specialist.updateRedisFindPatientTeamList)
    @ApiOperation(value = "更新-redis获取居民所有有效签约团队信息")
    public ObjEnvelop<Integer> updateRedisFindPatientTeamList(){
        try {
            return success(specialistService.updateRedisFindPatientTeamList());
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return failed(e.getMessage(),ObjEnvelop.class);
        }
    }
}

+ 3 - 1
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/dao/SpecialistPatientRelationDao.java

@ -18,5 +18,7 @@ public interface SpecialistPatientRelationDao extends PagingAndSortingRepository
    public SpecialistPatientRelationDO findByDoctorAndPatient(String doctor,String patient);
    @Query("select p from SpecialistPatientRelationDO p where p.doctor=?1 and (p.patient=?2 or p.healthAssistant=?2) and p.signStatus='1' and p.status>=0 ")
    SpecialistPatientRelationDO findByPatientAndDoctor(String doctor,String patient);
    SpecialistPatientRelationDO findByPatientAndDoctor(String doctor, String patient);
    List<SpecialistPatientRelationDO> findAllBySignStatus(String signStatus);
}

+ 26 - 3
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistService.java

@ -12,6 +12,7 @@ import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -43,6 +44,8 @@ public class SpecialistService{
    private JdbcTemplate jdbcTemplate;
    @Value("${basedb.name}")
    private String basedb;
    @Autowired
    private StringRedisTemplate redisTemplate;
    public MixEnvelop<Boolean, Boolean> createSpecialistsPatientRelation(SpecialistPatientRelationDO specialistPatientRelationDO){
        specialistPatientRelationDao.save(specialistPatientRelationDO);
@ -231,7 +234,7 @@ public class SpecialistService{
                "  t.label_type = '8' " +
                " AND t.`status` = '1' " +
                " ) h ON h.patient = lb.patient " +
                " WHERE s.doctor ='"+doctor+"' AND s.status >=0  AND s.sign_status >0"+
                " WHERE s.doctor ='"+doctor+ " AND h.label='"+labelCode+"' AND s.status >=0  AND s.sign_status >0"+
                " LIMIT "+(page-1)*size+","+size;
        
        if("7".equals(labelType)){
@ -249,7 +252,7 @@ public class SpecialistService{
                    "FROM wlyy_specialist.wlyy_specialist_patient_relation a " +
                    "JOIN "+basedb+".wlyy_patient_disease_server b ON a.id=b.specialist_relation_code AND b.disease=" +labelCode+" and b.del=1 "+
                    "JOIN "+basedb+".wlyy_patient c ON a.patient=c.CODE " +
                    "LEFT JOIN "+basedb+".wlyy_sign_patient_label_info d ON a.patient=d.patient AND d.label_type=8 AND d.`status`=1" +
                    "LEFT JOIN "+basedb+".wlyy_sign_patient_label_info d ON a.patient=d.patient AND d.label_type=" +labelType+" AND d.`status`=1" +
                    " WHERE a.sign_status> 0 AND a.`status`>=0 AND a.doctor='"+doctor+"'"+
                    " LIMIT "+(page-1)*size+","+size;
        }
@ -504,6 +507,9 @@ public class SpecialistService{
            relation.setHealthAssistantName(health_assistant_name);
            relation.setSignDate(new Date());
            specialistPatientRelationDao.save(relation);
            //签约成功之后,将签约关系保存在redis中
            String key = "specialist_patient_relation:" + relation.getPatient() +"_"+ ":text";
            redisTemplate.opsForValue().set(key,"true");
        }
        return MixEnvelop.getSuccess(SpecialistMapping.api_success,relation);
    }
@ -838,7 +844,7 @@ public class SpecialistService{
        JSONObject jsonObject = new JSONObject();
        //1、获取居民基础信息
        String preSql = "SELECT p.name as name, p.photo as photo,p.idcard as idcard,p.mobile as mobile,p.medicare_number as medicareNumber,p.ssc as ssc," +
                " CASE  WHEN wsf.doctor_name is null THEN '无' ELSE wsf.doctor_name END as doctorName,CASE  WHEN wsf.hospital_name is NULL THEN '无' ELSE wsf.hospital_name END as hospitalName,CASE  WHEN wsf.mobile is NULL THEN '无' ELSE wsf.mobile END as doctorMobole ";
                " CASE  WHEN wd.doctor_name is null THEN '无' ELSE wd.doctor_name END as doctorName,CASE  WHEN wd.hospital_name is NULL THEN '无' ELSE wd.hospital_name END as hospitalName,CASE  WHEN wd.mobile is NULL THEN '无' ELSE wd.mobile END as doctorMobole ";
        String patientSql = " from " + basedb + ".wlyy_patient p LEFT JOIN " + basedb + ".wlyy_sign_family wsf " +
                " ON p.code=wsf.patient AND wsf.type='2' AND wsf.status='1' " +
                " LEFT JOIN " + basedb + ".wlyy_doctor wd ON wsf.doctor =wd.code WHERE p.code='" + patientCode + "'";
@ -911,7 +917,24 @@ public class SpecialistService{
        specialistPatientRelationDO.setSignYear(String.valueOf(DateUtil.getNowYear()));
        specialistPatientRelationDO.setSignDate(new Date());
        specialistPatientRelationDO = specialistPatientRelationDao.save(specialistPatientRelationDO);
        //签约成功之后,将签约关系保存在redis中
        String key = "specialist_patient_relation:" + specialistPatientRelationDO.getPatient() +"_"+ ":text";
        redisTemplate.opsForValue().set(key,"true");
        return ObjEnvelop.getSuccess("success", specialistPatientRelationDO);
    }
    public Integer updateRedisFindPatientTeamList(){
        List<SpecialistPatientRelationDO> specialistPatientRelationDOList=specialistPatientRelationDao.findAllBySignStatus("1");
        List<SpecialistPatientRelationDO> unique = specialistPatientRelationDOList.stream().collect(
                Collectors.collectingAndThen(
                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SpecialistPatientRelationDO::getPatient))), ArrayList::new)
        );
        unique.stream().forEach(item->{
            //签约成功之后,将签约关系保存在redis中
            String key = "specialist_patient_relation:" + item.getPatient() +"_"+ ":text";
            redisTemplate.opsForValue().set(key,"true");
        });
        return null==unique?0:unique.size();
    }
}

+ 13 - 0
svr/svr-wlyy-specialist/src/main/resources/application.yml

@ -75,6 +75,9 @@ spring:
    url: jdbc:mysql://172.19.103.77:3306/wlyy_specialist?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: root
    password: 123456
  redis:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
@ -109,6 +112,9 @@ spring:
    url: jdbc:mysql://172.17.110.160/wlyy_specialist?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: ssgg
    password: ssgg
  redis:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
@ -142,6 +148,9 @@ spring:
    url: jdbc:mysql://172.19.103.85/wlyy_specialist?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: linzhou
    password: linzhou
  redis:
    host: 172.19.103.88 # Redis server host.
    port: 6379 # Redis server port.
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
@ -173,6 +182,10 @@ spring:
    url: jdbc:mysql://59.61.92.90:9069/wlyy_specialist?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true
    username: wlyy
    password: jkzlehr@123
  redis:
    host: 27.155.101.77 # Redis server host.
    port: 6380 # Redis server port.
    password: jkzl_ehr
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/