LAPTOP-KB9HII50\70708 2 роки тому
батько
коміт
c35648fccd

+ 31 - 2
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java

@ -1,6 +1,7 @@
package com.yihu.jw.doctor.service;
import com.alibaba.fastjson.JSON;
import com.yihu.jw.contant.CommonContant;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.doctor.dao.DoctorSpecialDiseaseDao;
@ -11,14 +12,16 @@ import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.inpatient.service.BaseInpatientRegistrationService;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.nurse.service.BaseNursingCardService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.encrypt.MD5;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.util.encrypt.MD5;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.collections.map.HashedMap;
@ -31,6 +34,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Service
@ -61,6 +65,31 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
    private static String yktUrl_90 = "http://www.yanketong.com:90/";
    @Autowired
    private DoctorMappingDao doctorMappingDao;
    @Autowired
    private BaseDoctorRoleService doctorRoleService;
    @Resource
    private BaseNursingCardService nursingCardService;
    @Autowired
    private BaseInpatientRegistrationService inpatientRegistrationService;
    /**
     * 获取医生模块消息数角标
     * @param doctorId
     */
    public Map<String,Integer> findTipNum(String doctorId){
        Map<String,Integer> map = new HashMap<>();
        //入院登记数量
        map.put("inpatientRegistration",inpatientRegistrationService.countByStatus("0"));
        //住院陪护审核员 才展示数量
        if(doctorRoleService.getDoctorRole(doctorId, CommonContant.DR_INPATIENTAREA).get(CommonContant.DR_INPATIENTAREA)){
            map.put(CommonContant.DR_INPATIENTAREA,nursingCardService.countByStatus(0));
        }
        return map;
    }
    /**
     * 查询医生信息分页列表.
     * @param city

+ 19 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorRoleService.java

@ -12,6 +12,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 
@ -88,4 +89,22 @@ public class BaseDoctorRoleService extends BaseJpaService<BaseDoctorRoleDO, Base
        }
        return baseDoctorRoleDao.findByDoctorCode(doctorCode);
    }
    /**
     * 获取医生角色
     * @param doctorId
     * @return
     */
    public Map<String,Boolean> getDoctorRole(String doctorId,String roleCode){
        Map<String,Boolean> map = new HashMap<>();
        List<BaseDoctorRoleDO> result = baseDoctorRoleDao.findByDoctorCode(doctorId);
        List<String> roleList = result.stream().map(p->p.getRoleCode()).collect(Collectors.toList());
        if(StringUtils.isNotBlank(roleCode)){
            map.put(roleCode,roleList.contains(roleCode));
        }else {
            map.put("inpatientArea",roleList.contains("inpatientArea"));
            map.put("articleReviewer",roleList.contains("articleReviewer"));
        }
        return map;
    }
}

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/booking/dao/BaseSignDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.hospital.booking.dao;
import com.yihu.jw.entity.hospital.booking.BaseSignDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by yeshijie on 2022/12/7.
 */
public interface BaseSignDao extends PagingAndSortingRepository<BaseSignDO, String>,
        JpaSpecificationExecutor<BaseSignDO> {
    List<BaseSignDO> findByRelationIdAndType(String relationId,Integer type);
}

+ 40 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/booking/service/PatientReservationService.java

@ -4,7 +4,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.booking.BaseSignDO;
import com.yihu.jw.entity.hospital.booking.PatientReservation;
import com.yihu.jw.hospital.booking.dao.BaseSignDao;
import com.yihu.jw.hospital.booking.dao.PatientReservationDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.patient.dao.BasePatientDao;
@ -18,6 +20,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@ -44,6 +47,43 @@ public class PatientReservationService extends BaseJpaService<PatientReservation
    private BaseDoctorDao doctorDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Resource
    private BaseSignDao baseSignDao;
    /**
     * 获取居民单日的预约挂号记录
     */
    public List<PatientReservation> findList(String patient){
        String sql = "select * from wlyy_patient_reservation where patient='"+patient+"'";
        sql += " and start_time>='"+DateUtil.getStringDateShort()+"' and start_time<='"+DateUtil.getStringDateShort()+" 23:59:59'";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(PatientReservation.class));
    }
    /**
     * 签到
     * @param code
     */
    public void sign(String code,Integer type){
        synchronized (code.intern()){
            List<BaseSignDO> list = baseSignDao.findByRelationIdAndType(code,type);
            if(list.size()==0){
                PatientReservation reservation = findByCode(code);
                if(reservation!=null){
                    BaseSignDO signDO = new BaseSignDO();
                    signDO.setPatient(reservation.getPatient());
                    signDO.setPatientName(reservation.getName());
                    signDO.setRelationId(code);
                    signDO.setType(type);
                    signDO.setCreateTime(new Date());
                    signDO = baseSignDao.save(signDO);
                    reservation.setSignId(signDO.getId());
                    patientReservationDao.save(reservation);
                }
            }
        }
    }
    public PatientReservation findByCode(String code) {
        return patientReservationDao.findByCode(code);

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/dao/BaseInpatientRegistrationDao.java

@ -19,4 +19,6 @@ public interface BaseInpatientRegistrationDao extends JpaRepository<BaseInpatien
    @Query("from BaseInpatientRegistrationDO where patient=?1 and status in ('2','3') order by createTime desc")
    List<BaseInpatientRegistrationDO> findByPatient(String patient);
    @Query(value = "select count(a.id) from base_inpatient_registration a where a.status=?1",nativeQuery = true)
    int countByStatus(String status);
}

+ 4 - 0
business/base-service/src/main/java/com/yihu/jw/inpatient/service/BaseInpatientRegistrationService.java

@ -26,6 +26,10 @@ public class BaseInpatientRegistrationService extends BaseJpaService {
    @Autowired
    private WlyyHospitalSysDictService hospitalSysDictService;
    public int countByStatus(String status){
        return inpatientRegistrationDao.countByStatus(status);
    }
    /**
     * 查找住院中的患者
     * @param idcard

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/nurse/dao/BaseNursingCardDao.java

@ -20,4 +20,7 @@ public interface BaseNursingCardDao extends JpaRepository<BaseNursingCardDO, Str
    @Query(value = "select count(a.id) from base_nursing_card a where a.inpatient_area_id=?1 and (a.status=0 or (a.status=1 and a.end_time>now()))",nativeQuery = true)
    int countByInpatientAreaIdAndStatus(String inpatientAreaId);
    @Query(value = "select count(a.id) from base_nursing_card a where a.status=?1",nativeQuery = true)
    int countByStatus(Integer status);
}

+ 4 - 0
business/base-service/src/main/java/com/yihu/jw/nurse/service/BaseNursingCardService.java

@ -151,4 +151,8 @@ public class BaseNursingCardService extends BaseJpaService<BaseNursingCardDO, Ba
        return nursingCardDao.countByInpatientAreaIdAndStatus(inpatientAreaId);
    }
    public int countByStatus(Integer status){
        return nursingCardDao.countByStatus(status);
    }
}

+ 57 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/booking/BaseSignDO.java

@ -0,0 +1,57 @@
package com.yihu.jw.entity.hospital.booking;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 签到表
 * Created by yeshijie on 2022/12/7.
 */
@Entity
@Table(name = "base_sign")
public class BaseSignDO extends UuidIdentityEntityWithCreateTime {
    private String relationId;//关联id
    private Integer type;//类型1门诊/预约挂号
    private String patient;
    private String patientName;
    @Column(name = "relation_id")
    public String getRelationId() {
        return relationId;
    }
    public void setRelationId(String relationId) {
        this.relationId = relationId;
    }
    @Column(name = "type")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/booking/PatientReservation.java

@ -103,6 +103,7 @@ public class PatientReservation extends IdEntity {
	private Integer source;//代预约来源(1体征预警 2疾病筛查 3康复复诊 4健康咨询)
	private Integer patientReadStatus;
	private Integer doctorReadStatus;
	private String signId;//base_sign表的id
	public String getCode() {
		return code;
@ -439,4 +440,13 @@ public class PatientReservation extends IdEntity {
	public void setDoctorReadStatus(Integer doctorReadStatus) {
		this.doctorReadStatus = doctorReadStatus;
	}
	@Column(name = "sign_id")
	public String getSignId() {
		return signId;
	}
	public void setSignId(String signId) {
		this.signId = signId;
	}
}

+ 58 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/account/DoctorEndpoint.java

@ -0,0 +1,58 @@
package com.yihu.jw.hospital.endpoint.account;
import com.yihu.jw.contant.CommonContant;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.service.BaseDoctorInfoService;
import com.yihu.jw.doctor.service.BaseDoctorRoleService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by yeshijie on 2022/12/7.
 */
@RestController
@RequestMapping("doctor/info" )
@Api(tags = "医生基础信息", value = "医生基础信息")
public class DoctorEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseDoctorDao doctorDao;
    @Autowired
    private BaseDoctorInfoService doctorInfoService;
    @Autowired
    private BaseDoctorRoleService doctorRoleService;
    @GetMapping(value= "findTipNum")
    @ApiOperation("获取医生模块消息数角标")
    public Envelop findTipNum(
            @ApiParam(name = "doctor", value = "doctor", required = true)
            @RequestParam(value = "doctor", required = true)String doctor){
        try {
            return ObjEnvelop.getSuccess("获取成功",doctorInfoService.findTipNum(doctor));
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @GetMapping(value= "getDoctorRole")
    @ApiOperation("获取医生角色")
    public Envelop getDoctorRole(
            @ApiParam(name = "doctor", value = "doctor", required = true)
            @RequestParam(value = "doctor", required = true)String doctor){
        try {
            return ObjEnvelop.getSuccess("获取成功",doctorRoleService.getDoctorRole(doctor, CommonContant.DR_INPATIENTAREA));
        }catch (Exception e){
            return failedException2(e);
        }
    }
}

+ 25 - 7
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/booking/PatientBookingEndpoint.java

@ -51,21 +51,39 @@ public class PatientBookingEndpoint extends EnvelopRestEndpoint {
    private WechatUtilService wechatUtilService;
    @Autowired
    private JwSmjkEntranceService jwSmjkService;
//    @Autowired
//    private SMSDao smsDao;
    @Autowired
    private WxTemplateConfigDao templateConfigDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
//    @Autowired
//    private ConsultService consultService;
//    @Autowired
//    private SMSService smsService;
    @Autowired
    protected HttpServletRequest request;
    @Value("${wechat.id}")
    private String wechatId;
    @PostMapping(value = "sign")
    @ApiOperation("签到")
    public Envelop sign(@ApiParam(name = "code", value = "预约code")
                        @RequestParam(value = "code", required = true) String code) {
        try {
            patientReservationService.sign(code,1);
           return success("签到成功");
        } catch (Exception e) {
            e.printStackTrace();
            return failedException2(e);
        }
    }
    @GetMapping(value = "findList")
    @ApiOperation("获取居民单日的预约挂号记录")
    public Envelop findList(@ApiParam(name = "patient", value = "居民id")
                            @RequestParam(value = "patient", required = true) String patient) {
        try {
            return ListEnvelop.getSuccess("获取成功", patientReservationService.findList(patient));
        } catch (Exception e) {
            e.printStackTrace();
            return failedException2(e);
        }
    }
    @PostMapping(value = "CancelOrder")
    @ApiOperation("取消挂号单")
    public Envelop CancelOrder(@ApiParam(name = "orderId", value = "订单id", defaultValue = "48")