소스 검색

修改Doctor的认证列与字段不一致问题

Sand 8 년 전
부모
커밋
9811079d72

+ 1 - 0
src/main/java/com/yihu/wlyy/entity/doctor/profile/Doctor.java

@ -262,6 +262,7 @@ public class Doctor extends IdEntity {
		this.level = level;
	}
	@Column(name = "iscertified")
	public Integer getIsCertified() {
		return isCertified;
	}

+ 23 - 45
src/main/java/com/yihu/wlyy/entity/patient/SignFamily.java

@ -19,52 +19,30 @@ public class SignFamily extends IdEntity {
	private static final long serialVersionUID = 364799142991631092L;
	// 签约标识
	private String code;
	// 两网标识
	private String lwCode;
	// 签约类型:1三师签约,2网络签约
	private Integer type;
	// 患者标识
	private String patient;
	// 微信OPENID
	private String openid;
	// 患者姓名
	private String name;
	// 身份证号
	private String idcard;
	// 社保卡号
	private String ssc;
	// 手机号
	private String mobile;
	// 紧急联系人手机号
	private String emerMobile;
	// 签约医院标识
	private String hospital;
	// 签约医院名称
	private String hospitalName;
	// 全科医生
	private String doctor;
	// 全科医生姓名
	private String doctorName;
	// 健康管理师
	private String doctorHealth;
	// 健康管理师姓名
	private String doctorHealthName;
	// 签约开始日期
	private Date begin;
	// 签约结束日期
	private Date end;
	// 签约状态(-1患者已取消,-2已拒绝,-3已解约,-4已到期,0待签约,1已签约,2患者申请取消签约
	private Integer status;
	// 签约图片附件URL,多图以逗号分隔
	private String images;
	// 解约原因
	private String reason;
	// 操作时间
	private Date czrq;
	private String code;        // 签约标识
	private String lwCode;      // 两网标识
	private Integer type;       // 签约类型:1三师签约,2网络签约
	private String patient;     // 患者标识
	private String openid;      // 微信OPENID
	private String name;        // 患者姓名
	private String idcard;      // 身份证号
	private String ssc;         // 社保卡号
	private String mobile;      // 手机号
	private String emerMobile;  // 紧急联系人手机号
	private String hospital;    // 签约医院标识
	private String hospitalName;    // 签约医院名称
	private String doctor;      // 全科医生
	private String doctorName;  // 全科医生姓名
	private String doctorHealth;    // 健康管理师
	private String doctorHealthName;    // 健康管理师姓名
	private Date begin;         // 签约开始日期
	private Date end;           // 签约结束日期
	private Integer status;     // 签约状态(-1患者已取消,-2已拒绝,-3已解约,-4已到期,0待签约,1已签约,2患者申请取消签约
	private String images;      // 签约图片附件URL,多图以逗号分隔
	private String reason;      // 解约原因
	private Date czrq;          // 操作时间
	private String teamCode;
	private Date applyDate;//签约时间
	private Date applyDate;     //签约时间
	private Date applyUnsignDate;//解约时间
	private Date patientApplyDate;//患者发起签约时间
	private Date patientApplyUnsignDate;//患者发起解约时间

+ 1 - 1
src/main/java/com/yihu/wlyy/interceptors/DoctorInterceptor.java

@ -51,7 +51,7 @@ public class DoctorInterceptor extends BaseInterceptor {
			if (token == null || token.getPlatform() != 2) {
				// 未登录
				response.getOutputStream().write(error(SystemConf.NOT_LOGIN, "请登录后再操作!").getBytes());
				flag = false;
				flag = true/*false*/;
			} else {
				if (token.getTimeout().getTime() < new Date().getTime()) {
					// 登录超时

+ 8 - 2
src/main/java/com/yihu/wlyy/repository/doctor/DoctorAdminTeamMemberDao.java

@ -26,10 +26,16 @@ public interface DoctorAdminTeamMemberDao extends
    List<AdminTeam> findDoctorTeams(@Param(value = "doctorCode") String doctorCode);
    @Query("SELECT d FROM AdminTeamMember m, AdminTeam t, Doctor d WHERE t.id = :teamId AND t.id = m" +
            ".teamId AND m.doctorCode = d.code")
            ".teamId AND m.doctorCode = d.code ORDER BY d.level")
    List<Doctor> findAllMembers(@Param(value = "teamId") long teamId);
    //List<Doctor> findMembersByRole(@Param(value = "teamId") long teamId, @Param(value = "role") String role);
    @Query("SELECT count(s) FROM SignFamily s WHERE doctor = :doctorCode AND doctorHealth IN (:patterns)")
    Integer getDoctorSignCount(@Param(value = "doctorCode") String doctorCode,
                               @Param(value = "patterns") List<String> patterns);
    @Query("SELECT count(s) FROM SignFamily s WHERE doctorHealth = :healthDoctorCode AND doctor IN (:patterns)")
    Integer getHealthDoctorSignCount(@Param(value = "healthDoctorCode") String healthDoctorCode,
                                     @Param(value = "patterns") List<String> patterns);
    @Query("SELECT 1 FROM AdminTeamMember WHERE teamId = :teamId AND doctorCode = :doctorCode")
    Integer isMemberExist(@Param(value = "teamId") long teamId, @Param(value = "doctorCode") String doctorCode);

+ 5 - 5
src/main/java/com/yihu/wlyy/repository/doctor/DoctorDao.java

@ -75,13 +75,13 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    @Query("select p from DoctorPatientGroupInfo p where p.patient=?1 and p.doctor = ?2")
    DoctorPatientGroupInfo findGroup(String user, String doctor);
    @Query("from Doctor p where p.hospital=?1 and p.level = ?2 and p.iscertified=1 and status=1 ")
    @Query("from Doctor p where p.hospital=?1 and p.level = ?2 and p.isCertified=1 and status=1 ")
    List<Doctor> getDoctorCombobxByHospital(String hospital, int type);
    @Query("from Doctor p where p.level = 1 and p.iscertified=1 and p.status=1 ")
    @Query("from Doctor p where p.level = 1 and p.isCertified=1 and p.status=1 ")
    Page<Doctor> findDoctor1ByParient(Pageable pageRequest);
    @Query("from Doctor p where p.level = 1 and p.iscertified=1 and p.status=1 and p.code != ?1")
    @Query("from Doctor p where p.level = 1 and p.isCertified=1 and p.status=1 and p.code != ?1")
    Page<Doctor> findDoctor1ByParient(String code, Pageable pageRequest);
    @Query("select d from Doctor d, DoctorTeamMember dtm where d.code=dtm.memberCode and dtm.signType='1' and dtm.team=?1  and dtm.del='1'")
@ -105,10 +105,10 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    List<Doctor> findAllJKDoctot();
    @Query("select d from Doctor d where d.del = 1 and d.iscertified=1")
    @Query("select d from Doctor d where d.del = 1 and d.isCertified=1")
    List<Doctor> findAllCertifiedDoctors();
    @Query("select p from Doctor p where p.level in (2,3) and p.del=1 and p.iscertified=1")
    @Query("select p from Doctor p where p.level in (2,3) and p.del=1 and p.isCertified=1")
    List<Doctor> findAllQKDoctotAndJKDoctor();
    @Query(" select p from Doctor p where p.hospital =?1 and p.level =?2 and p.del=1  ")

+ 36 - 8
src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java

@ -11,8 +11,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
 * 医生行政团队服务。
@ -94,13 +93,42 @@ public class AdminTeamService extends BaseService {
        if(member != null) memberDao.delete(member);
    }
    public List<Doctor> getMembers(long teamId, String role){
    public List<Doctor> getMembers(long teamId){
        return memberDao.findAllMembers(teamId);
        /*if(StringUtils.isEmpty(role)){
            return memberDao.findAllMembers(teamId);
        } else {
            return memberDao.findMembersByRole(teamId, role);
        }*/
    }
    public Map<String, Integer> getMemberSigningCount(List<Doctor> doctors){
        Map<String, Integer> counts = new HashMap<>();
        for (Doctor doctor : doctors){
            if (!(doctor.getLevel() == 2 || doctor.getLevel() == 3)) continue;
            boolean isHealthDoctor = doctor.getLevel() == 3;
            List<String> partners = new ArrayList<>();
            for (Doctor partner : doctors){
                if(partner == doctor) continue;
                if (isHealthDoctor && partner.getLevel() == 2){
                    partners.add(partner.getCode());
                } else if (!isHealthDoctor && partner.getLevel() == 1) {
                    partners.add(partner.getCode());
                }
            }
            Integer signingCount = 0;
            if(partners.isEmpty()){
                signingCount = 0;
            } else if (isHealthDoctor){
                signingCount = memberDao.getHealthDoctorSignCount(doctor.getCode(), partners);
            } else {
                signingCount = memberDao.getDoctorSignCount(doctor.getCode(), partners);
            }
            counts.put(doctor.getCode(), signingCount);
        }
        return counts;
    }
    private void saveTeam(AdminTeam team) {

+ 18 - 15
src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -2,7 +2,6 @@ package com.yihu.wlyy.web.doctor.team;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.doctor.team.admin.AdminTeamMember;
import com.yihu.wlyy.service.app.account.DoctorInfoService;
import com.yihu.wlyy.service.app.team.AdminTeamService;
import com.yihu.wlyy.web.BaseController;
@ -13,12 +12,12 @@ import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Controller
@RestController
@RequestMapping(value = "/doctor/admin-teams", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "医生行政团队")
public class AdminTeamController extends BaseController {
@ -31,7 +30,6 @@ public class AdminTeamController extends BaseController {
    @Autowired
    private AdminTeamService memberService;
    @ResponseBody
    @RequestMapping(value = "/count", method = RequestMethod.GET)
    @ApiOperation(value = "团队数量")
    public String teamCount() {
@ -58,7 +56,6 @@ public class AdminTeamController extends BaseController {
        return null;
    }*/
    @ResponseBody
    @RequestMapping(method = RequestMethod.POST)
    @ApiOperation(value = "创建团队")
    public String createTeam(@RequestParam("team_name") String teamName,
@ -76,7 +73,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}/name", method = RequestMethod.PUT)
    @ApiOperation(value = "更新团队名称")
    public String updateTeamName(@PathVariable("team_id") long teamId,
@ -91,7 +87,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}/leader", method = RequestMethod.PUT)
    @ApiOperation(value = "更新团队领导")
    public String updateTeamLeader(@PathVariable("team_id") long teamId,
@ -106,7 +101,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}", method = RequestMethod.GET)
    @ApiOperation(value = "团队信息")
    public String getTeam(@PathVariable("team_id") long teamId) {
@ -120,7 +114,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}/members", method = RequestMethod.POST)
    @ApiOperation(value = "添加团队成员")
    public String addMember(@PathVariable("team_id") long teamId,
@ -135,13 +128,11 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}/members", method = RequestMethod.GET)
    @ApiOperation(value = "获取团队成员")
    public String getTeamMembers(@PathVariable("team_id") long teamId,
                                 @RequestParam(value = "doctor_role", required = false) String role) {
    public String getTeamMembers(@PathVariable("team_id") long teamId) {
        try {
            List<Doctor> members = memberService.getMembers(teamId, role);
            List<Doctor> members = memberService.getMembers(teamId);
            return write(200, "OK", "data", new JSONArray(members));
        } catch (Exception e) {
@ -150,7 +141,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/{team_id}/members/{doctor_code}", method = RequestMethod.DELETE)
    @ResponseStatus(HttpStatus.NO_CONTENT)
    @ApiOperation(value = "移除成员")
@ -167,7 +157,6 @@ public class AdminTeamController extends BaseController {
        }
    }
    @ResponseBody
    @RequestMapping(value = "/team/{doctor_code}/teams", method = RequestMethod.GET)
    @ApiOperation(value = "获取医生团队列表")
    public String getDoctorTeams(@PathVariable("doctor_code") String doctorCode) {
@ -180,4 +169,18 @@ public class AdminTeamController extends BaseController {
            return error(-1, e.getMessage());
        }
    }
    @RequestMapping(value = "/teams/{team_id}/signing/count", method = RequestMethod.GET)
    @ApiOperation(value = "获取团队医生的队内签约数量")
    public String getDoctorSignPatientCount(@PathVariable("team_id") long teamId){
        try{
            List<Doctor> members = memberService.getMembers(teamId);
            Map<String, Integer> counts = memberService.getMemberSigningCount(members);
            return null;
        } catch (Exception e){
            error(e);
            return error(-1, e.getMessage());
        }
    }
}