فهرست منبع

根据团队、疾病获取居民信息接口优化

zdm 6 سال پیش
والد
کامیت
dd59c6391e

+ 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);
}

+ 23 - 0
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);
@ -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);
    }
@ -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/