Commit 21fa2527 authored by fshenye's avatar fshenye

1. 定时任务,每日12点,24点统计排行科室号源信息,修改原来计算科室号源信息接口

2. bugfix:修复新用户需要完善信息问题
parent b75530da
...@@ -12,6 +12,7 @@ public class WDUserInfo { ...@@ -12,6 +12,7 @@ public class WDUserInfo {
private String token; private String token;
private String id; private String id;
private String username; private String username;
private String name;
private String personcard; private String personcard;
private String mobile; private String mobile;
private Date birth; private Date birth;
......
...@@ -2,17 +2,16 @@ package cn.sh.stc.sict.cloud.upms.service.impl; ...@@ -2,17 +2,16 @@ package cn.sh.stc.sict.cloud.upms.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.constant.UserConstant; import cn.sh.stc.sict.cloud.common.core.constant.UserConstant;
import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum; import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.core.util.SsbUtil; import cn.sh.stc.sict.cloud.common.core.util.SsbUtil;
import cn.sh.stc.sict.cloud.upms.dao.SysUserBaseMapper; import cn.sh.stc.sict.cloud.upms.dao.SysUserBaseMapper;
import cn.sh.stc.sict.cloud.upms.dto.UserDTO; import cn.sh.stc.sict.cloud.upms.dto.UserDTO;
import cn.sh.stc.sict.cloud.upms.dto.UserInfo; import cn.sh.stc.sict.cloud.upms.dto.UserInfo;
import cn.sh.stc.sict.cloud.upms.model.HpUserRole;
import cn.sh.stc.sict.cloud.upms.model.SysUserBase; import cn.sh.stc.sict.cloud.upms.model.SysUserBase;
import cn.sh.stc.sict.cloud.upms.service.HpUserRoleService; import cn.sh.stc.sict.cloud.upms.service.HpUserRoleService;
import cn.sh.stc.sict.cloud.upms.service.SysUserBaseService; import cn.sh.stc.sict.cloud.upms.service.SysUserBaseService;
...@@ -28,8 +27,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; ...@@ -28,8 +27,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j @Slf4j
@Service("sysUserBaseService") @Service("sysUserBaseService")
@AllArgsConstructor @AllArgsConstructor
...@@ -74,6 +71,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -74,6 +71,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
private UserInfo getBySSBToken(String source, String token) { private UserInfo getBySSBToken(String source, String token) {
WDUserInfo wdUser = SsbUtil.getUserInfo(token); WDUserInfo wdUser = SsbUtil.getUserInfo(token);
log.error("ssb.login.wdUser = {}", JSONUtil.toJsonStr(wdUser));
if (ObjectUtil.isNull(wdUser) || StrUtil.isBlank(wdUser.getMobile())) { if (ObjectUtil.isNull(wdUser) || StrUtil.isBlank(wdUser.getMobile())) {
return null; return null;
} }
...@@ -83,9 +81,9 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -83,9 +81,9 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
// 未注册用户默认注册 // 未注册用户默认注册
if (user == null) { if (user == null) {
user = new SysUserBase(); user = new SysUserBase();
user.setUserName(wdUser.getMobile()); user.setUserName(wdUser.getUsername());
user.setOpenId(wdUser.getMobile()); user.setOpenId(wdUser.getMobile());
user.setName(wdUser.getUsername()); user.setName(wdUser.getName());
user.setIdCard(wdUser.getPersoncard()); user.setIdCard(wdUser.getPersoncard());
user.setSex(wdUser.getGender()); user.setSex(wdUser.getGender());
user.setHeadimg(wdUser.getAvatar()); user.setHeadimg(wdUser.getAvatar());
...@@ -94,7 +92,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -94,7 +92,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
user.setPasswd(ENCODER.encode(Constant.DEFAULT_PASSWORD)); user.setPasswd(ENCODER.encode(Constant.DEFAULT_PASSWORD));
user.setPhone(wdUser.getMobile()); user.setPhone(wdUser.getMobile());
this.save(user); this.save(user);
List<WDUserCardInfo> cardList = SsbUtil.getUserCardInfoList(token); // List<WDUserCardInfo> cardList = SsbUtil.getUserCardInfoList(token);
} }
UserInfo info = new UserInfo(); UserInfo info = new UserInfo();
......
package cn.sh.stc.sict.theme.hpgp.model; package cn.sh.stc.sict.theme.hpgp.model;
import java.util.Date; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* 黄浦全科导诊——忙闲预测(HpgpBusyIdle_ prediction)表实体类 * 黄浦全科导诊——忙闲预测(HpgpBusyIdle_ prediction)表实体类
...@@ -18,22 +20,64 @@ import java.io.Serializable; ...@@ -18,22 +20,64 @@ import java.io.Serializable;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class HpgpBusyIdlePrediction extends Model<HpgpBusyIdlePrediction> { public class HpgpBusyIdlePrediction extends Model<HpgpBusyIdlePrediction> {
private Long id;
//医院代码 //医院代码
@ApiModelProperty(hidden = false, value = "医院代码") @ApiModelProperty( value = "医院代码")
private String hospitalCode; private String hospitalCode;
//医院名称 //医院名称
@ApiModelProperty(hidden = false, value = "医院名称") @ApiModelProperty(value = "医院名称")
private String hospitalName; private String hospitalName;
private String oneDeptCode;
//科室代码 //科室代码
@ApiModelProperty(hidden = false, value = "科室代码") @ApiModelProperty(value = "科室代码")
private String deptCode; private String deptCode;
//科室名称 //科室名称
@ApiModelProperty(hidden = false, value = "科室名称") @ApiModelProperty(value = "科室名称")
private String deptName; private String deptName;
//预测日期 //预测日期
@ApiModelProperty(hidden = false, value = "预测日期") @ApiModelProperty(value = "预测日期")
private Date predictionDate; private Date predictionDate;
// 总号源数量
private Integer reserveOrderNum;
// 可预约号源数量
private Integer remainNum;
//忙闲评分 //忙闲评分
@ApiModelProperty(hidden = false, value = "忙闲评分") @ApiModelProperty(value = "忙闲评分")
private Integer score; private Integer score;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
/**
* 获取主键值
*
* @return 主键值
*/
@Override
protected Serializable pkVal() {
return this.id;
}
// 可用号源 / 号源
// >=0.5 0- 闲 -绿色
// 0.2-0.5 1-忙碌-黄色
// <=0.2 2-非常忙碌-红色
// 无号院 -1 灰色
public void setScoreByNum() {
if (NumberUtil.isNotNullOrZero(this.reserveOrderNum)) {
double roate = this.remainNum * 1.0 / this.reserveOrderNum;
if (roate >= 0.5) {
this.setScore(0);
} else if (roate > 0.2 && roate < 0.5) {
this.setScore(1);
} else {
this.setScore(2);
}
} else {
this.setScore(-1);
}
}
} }
package cn.sh.stc.sict.theme.hpgp.service; package cn.sh.stc.sict.theme.hpgp.service;
import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction; import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction;
import cn.sh.stc.sict.theme.hpgp.vo.DeptPredictionVO; import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -20,5 +21,7 @@ public interface HpgpBusyIdlePredictionService extends IService<HpgpBusyIdlePred ...@@ -20,5 +21,7 @@ public interface HpgpBusyIdlePredictionService extends IService<HpgpBusyIdlePred
* @param deptName 标准科室名称 * @param deptName 标准科室名称
* @return 忙闲医院科室 * @return 忙闲医院科室
*/ */
List<DeptPredictionVO> busyIdlePrediction(String deptName); List<HpgpBusyIdlePrediction> busyIdlePrediction(String deptName);
void statisticResourceInfo(HpgpDepartmentRank dept, Date startDate, Date endDate);
} }
...@@ -2,11 +2,14 @@ package cn.sh.stc.sict.theme.hpgp.service.impl; ...@@ -2,11 +2,14 @@ package cn.sh.stc.sict.theme.hpgp.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction;
import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService;
import cn.sh.stc.sict.theme.hphy.wd.*; import cn.sh.stc.sict.theme.hphy.wd.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.sh.stc.sict.theme.hpgp.dao.HpgpDepartmentRankMapper; import cn.sh.stc.sict.theme.hpgp.dao.HpgpDepartmentRankMapper;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -20,9 +23,11 @@ import java.util.List; ...@@ -20,9 +23,11 @@ import java.util.List;
* @since 2022-01-14 09:56:47 * @since 2022-01-14 09:56:47
*/ */
@Slf4j @Slf4j
@AllArgsConstructor
@Service("hpgpDepartmentRankService") @Service("hpgpDepartmentRankService")
public class HpgpDepartmentRankServiceImpl extends ServiceImpl<HpgpDepartmentRankMapper, HpgpDepartmentRank> implements HpgpDepartmentRankService { public class HpgpDepartmentRankServiceImpl extends ServiceImpl<HpgpDepartmentRankMapper, HpgpDepartmentRank> implements HpgpDepartmentRankService {
@Override @Override
public void updateResource() { public void updateResource() {
List<HpgpDepartmentRank> deptList = this.list(); List<HpgpDepartmentRank> deptList = this.list();
......
package cn.sh.stc.sict.theme.hpgp.vo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction;
import lombok.Data;
@Data
public class DeptPredictionVO extends HpgpBusyIdlePrediction {
private Integer reserveOrderNum;
private Integer remainNum;
// 可用号源 / 号源
// >=0.5 0- 闲 -绿色
// 0.2-0.5 1-忙碌-黄色
// <=0.2 2-非常忙碌-红色
// 无号院 -1 灰色
public void setScoreByNum() {
if (NumberUtil.isNotNullOrZero(this.reserveOrderNum)) {
double roate = this.remainNum * 1.0 / this.reserveOrderNum;
if (roate >= 0.5) {
this.setScore(0);
} else if (roate > 0.2 && roate < 0.5) {
this.setScore(1);
} else {
this.setScore(2);
}
} else {
this.setScore(-1);
}
}
}
package cn.sh.stc.sict.theme.hphy.controller.mp; package cn.sh.stc.sict.theme.hphy.controller.mp;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService;
import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo; import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo;
import cn.sh.stc.sict.theme.hphy.service.HpDeptInfoService; import cn.sh.stc.sict.theme.hphy.service.HpDeptInfoService;
...@@ -14,6 +16,7 @@ import io.swagger.annotations.ApiParam; ...@@ -14,6 +16,7 @@ import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -32,21 +35,22 @@ public class HpDeptInfoController extends ApiController { ...@@ -32,21 +35,22 @@ public class HpDeptInfoController extends ApiController {
*/ */
private final HpDeptInfoService hpDeptInfoService; private final HpDeptInfoService hpDeptInfoService;
private final HpgpDepartmentRankService hpgpDepartmentRankService; private final HpgpDepartmentRankService hpgpDepartmentRankService;
private final HpgpBusyIdlePredictionService hpgpBusyIdlePredictionService;
@ApiOperation("科室医生查询接口") @ApiOperation("科室医生查询接口")
@GetMapping @GetMapping
public R<?> getDeptDoctors(@ApiParam("医院代码") @RequestParam("hospitalCode") String hospitalCode, public R<?> getDeptDoctors(@ApiParam("医院代码") @RequestParam("hospitalCode") String hospitalCode,
@ApiParam("科室代码") @RequestParam("deptCode") String deptCode){ @ApiParam("科室代码") @RequestParam("deptCode") String deptCode) {
return new R<>(hpDeptInfoService.getDeptDoctors(hospitalCode, deptCode)); return new R<>(hpDeptInfoService.getDeptDoctors(hospitalCode, deptCode));
} }
@ApiOperation("更新科室号源信息") @ApiOperation("更新科室号源信息")
@PostMapping("/wd/resource") @PostMapping("/wd/resource")
public R updateDeptResource(){ public R updateDeptResource() {
List<HpDeptInfo> deptList = hpDeptInfoService.list(); List<HpDeptInfo> deptList = hpDeptInfoService.list();
deptList.forEach(dept -> { deptList.forEach(dept -> {
if (StrUtil.isEmpty(dept.getOneDeptCode())||StrUtil.isEmpty(dept.getDeptCode())) { if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) {
return; return;
} }
hpDeptInfoService.asyncUpdate(dept); hpDeptInfoService.asyncUpdate(dept);
...@@ -56,8 +60,23 @@ public class HpDeptInfoController extends ApiController { ...@@ -56,8 +60,23 @@ public class HpDeptInfoController extends ApiController {
@ApiOperation("更新科室排行表号源信息") @ApiOperation("更新科室排行表号源信息")
@PostMapping("/rank/wd/resource") @PostMapping("/rank/wd/resource")
public R updateRankDeptResource(){ public R updateRankDeptResource() {
hpgpDepartmentRankService.updateResource(); hpgpDepartmentRankService.updateResource();
return new R(); return new R();
} }
@ApiOperation("定时统计排行科室的号源信息")
@PostMapping("/statistic/rank/wd/resource")
public R statisticRankDeptResourceInfo() {
List<HpgpDepartmentRank> deptList = hpgpDepartmentRankService.list();
deptList.forEach(dept -> {
if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) {
return;
}
Date startDate = DateUtil.date();
Date endDate = DateUtil.offsetDay(startDate, 10);
hpgpBusyIdlePredictionService.statisticResourceInfo(dept, startDate, endDate);
});
return new R();
}
} }
...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.theme.hphy.controller.mp; ...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.theme.hphy.controller.mp;
import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum; import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo; import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo;
...@@ -103,7 +104,9 @@ public class HphyPatientBaseController { ...@@ -103,7 +104,9 @@ public class HphyPatientBaseController {
*/ */
@GetMapping @GetMapping
public R getInfo() { public R getInfo() {
log.error("获取患者信息1");
CurrentUser current = SecurityUtils.getCurrentUser(); CurrentUser current = SecurityUtils.getCurrentUser();
log.error("获取患者信息2, current = {}", JSONUtil.toJsonStr(current));
if (StrUtil.isBlank(current.getOpenId())) { if (StrUtil.isBlank(current.getOpenId())) {
log.error("openId 为空"); log.error("openId 为空");
...@@ -115,6 +118,7 @@ public class HphyPatientBaseController { ...@@ -115,6 +118,7 @@ public class HphyPatientBaseController {
current.setGender(PatientConstant.getGender(base.getGender())); current.setGender(PatientConstant.getGender(base.getGender()));
SecurityUtils.updateCurrent(current); SecurityUtils.updateCurrent(current);
} }
log.error("获取患者信息2, base = {}", JSONUtil.toJsonStr(base));
return new R(base); return new R(base);
} }
...@@ -123,6 +127,7 @@ public class HphyPatientBaseController { ...@@ -123,6 +127,7 @@ public class HphyPatientBaseController {
@GetMapping("/third-party") @GetMapping("/third-party")
public R getInfoByToken(@RequestParam("source") String source, public R getInfoByToken(@RequestParam("source") String source,
@RequestParam("token") String token) { @RequestParam("token") String token) {
log.error("source = {}, token = {}", source, token);
CurrentUser current = SecurityUtils.getCurrentUser(); CurrentUser current = SecurityUtils.getCurrentUser();
if (StrUtil.isBlank(current.getOpenId())) { if (StrUtil.isBlank(current.getOpenId())) {
...@@ -130,9 +135,11 @@ public class HphyPatientBaseController { ...@@ -130,9 +135,11 @@ public class HphyPatientBaseController {
} }
// 获取患者信息 // 获取患者信息
HphyPatientBase base = hphyPatientBaseService.getByOpenId(current.getOpenId()); HphyPatientBase base = hphyPatientBaseService.getByOpenId(current.getOpenId());
log.error("third-party.base1 = {}", JSONUtil.toJsonStr(base));
if (ObjectUtil.isNull(base) || NumberUtil.isNullOrZero(base.getId())) { if (ObjectUtil.isNull(base) || NumberUtil.isNullOrZero(base.getId())) {
if (LoginTypeEnum.SSB.getType().equals(source)) { if (LoginTypeEnum.SSB.getType().equals(source)) {
WDUserInfo userInfo = SsbUtil.getUserInfo(token); WDUserInfo userInfo = SsbUtil.getUserInfo(token);
log.error("wdUser = {}", userInfo);
List<WDUserCardInfo> cardList = SsbUtil.getUserCardInfoList(token); List<WDUserCardInfo> cardList = SsbUtil.getUserCardInfoList(token);
base = hphyPatientBaseService.saveSSbInfo(current, userInfo, cardList); base = hphyPatientBaseService.saveSSbInfo(current, userInfo, cardList);
hpPatientCardService.save(base, cardList); hpPatientCardService.save(base, cardList);
......
package cn.sh.stc.sict.theme.hphy.schedule; package cn.sh.stc.sict.theme.hphy.schedule;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService;
import cn.sh.stc.sict.theme.hphy.constant.DataConstant; import cn.sh.stc.sict.theme.hphy.constant.DataConstant;
import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo; import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo;
import cn.sh.stc.sict.theme.hphy.model.HpDocInfo; import cn.sh.stc.sict.theme.hphy.model.HpDocInfo;
...@@ -21,6 +26,7 @@ import org.springframework.scheduling.annotation.Scheduled; ...@@ -21,6 +26,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -38,6 +44,8 @@ public class RefreshJob { ...@@ -38,6 +44,8 @@ public class RefreshJob {
private final HpHosInfoService hpHosInfoService; private final HpHosInfoService hpHosInfoService;
private final HpDeptInfoService deptInfoService; private final HpDeptInfoService deptInfoService;
private final HpDocInfoService docInfoService; private final HpDocInfoService docInfoService;
private final HpgpDepartmentRankService hpgpDepartmentRankService;
private final HpgpBusyIdlePredictionService hpgpBusyIdlePredictionService;
/** /**
* 每月一日0点 更新医院信息 * 每月一日0点 更新医院信息
...@@ -100,6 +108,23 @@ public class RefreshJob { ...@@ -100,6 +108,23 @@ public class RefreshJob {
} }
} }
/**
* 每天中午12点,晚上12点,统计号源信息
*/
// @Scheduled(cron = "0 50 12 * * ? ")
@Scheduled(cron = "0 0 0,12 * * ? ")
public void statisticRankDeptResourceInfo() {
List<HpgpDepartmentRank> deptList = hpgpDepartmentRankService.list();
deptList.forEach(dept -> {
if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) {
return;
}
Date startDate = DateUtil.date();
Date endDate = DateUtil.offsetDay(startDate, 10);
hpgpBusyIdlePredictionService.statisticResourceInfo(dept, startDate, endDate);
});
}
private void saveDoctor(String hosOrgCode, MapperFactory factory) { private void saveDoctor(String hosOrgCode, MapperFactory factory) {
List<DoctInfo> doctInfos = WanDaHttpUtil.getDoctInfo(new DeptInfo(hosOrgCode)); List<DoctInfo> doctInfos = WanDaHttpUtil.getDoctInfo(new DeptInfo(hosOrgCode));
......
...@@ -25,10 +25,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -25,10 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -119,12 +116,6 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI ...@@ -119,12 +116,6 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI
return remainDoctors; return remainDoctors;
} }
/**
* 消化内科 42503527600 上海市瑞金医院卢湾分院 1013 3122 消化科 1 1013 3122
* 消化内科 Y0180100700 上海交通大学医学院附属第九人民医院黄浦分院 293 3 消化内科 2 293 3
* 消化内科 42502763900 黄浦区肿瘤防治院 10 0002 消化专科 3 10 0002
* @param args
*/
// public static void main(String[] args) { // public static void main(String[] args) {
// //
// DeptInfo info = new DeptInfo(); // DeptInfo info = new DeptInfo();
...@@ -156,34 +147,34 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI ...@@ -156,34 +147,34 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI
// public static void main(String[] args) { // public static void main(String[] args) {
// NumSourceInfo numSourceInfo = new NumSourceInfo(); // NumSourceInfo numSourceInfo = new NumSourceInfo();
// numSourceInfo.setHosOrgCode("Y0180100700"); // numSourceInfo.setHosOrgCode("E7880343800");
// numSourceInfo.setOneDeptCode("293"); // numSourceInfo.setOneDeptCode("50");
// numSourceInfo.setDeptCode("3"); // numSourceInfo.setDeptCode("2006");
// numSourceInfo.setOrderType(WanDaConstant.ORDER_TYPE_OUTP); // numSourceInfo.setOrderType(WanDaConstant.ORDER_TYPE_OUTP);
// numSourceInfo.setResourceCode("10220"); // numSourceInfo.setResourceCode("0085");
// numSourceInfo.setPatient_type(WanDaConstant.PATIENT_TYPE_NORMAL); // numSourceInfo.setPatient_type(WanDaConstant.PATIENT_TYPE_NORMAL);
// numSourceInfo.setStartTime("2022-07-15"); // Date startDate = DateUtil.date();
// numSourceInfo.setEndTime("2022-07-22"); // Date endDate = DateUtil.offsetDay(startDate, 10);
// numSourceInfo.setOrderNumType("102"); // numSourceInfo.setStartTime(DateUtil.format(startDate, DatePattern.NORM_DATE_FORMAT));
// numSourceInfo.setEndTime(DateUtil.format(endDate, DatePattern.NORM_DATE_FORMAT));
// //
// String orderNumType = numSourceInfo.getOrderNumType();
// if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){
// numSourceInfo.setOrderNumType(null);
// }
// List<NumSourceInfo> list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); // List<NumSourceInfo> list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo);
// if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){ //
// List<NumSourceInfo> result = list.stream().filter(i -> orderNumType.equals(i.getOrderNumType())).collect(Collectors.toList()); // log.error("list = {}", JSONUtil.toJsonStr(list));
// log.error("result = {}", JSONUtil.toJsonStr(result));
// }else{
// log.error("list = {}", JSONUtil.toJsonStr(list));
// }
// } // }
/**
* 消化内科 42503527600 上海市瑞金医院卢湾分院 1013 3122 消化科 1 1013 3122
* 消化内科 Y0180100700 上海交通大学医学院附属第九人民医院黄浦分院 293 3 消化内科 2 293 3
* 消化内科 42502763900 黄浦区肿瘤防治院 10 0002 消化专科 3 10 0002
* E7880343800 50 2006
* @param args
*/
// public static void main(String[] args) { // public static void main(String[] args) {
// String orgCode = "E7880343800"; // String orgCode = "E7880343800";
// String oneDeptCode = "03"; // String oneDeptCode = "50";
// String deptCode = "4023"; // String deptCode = "2006";
// //
// HosInfo hosInfo = new HosInfo(); // HosInfo hosInfo = new HosInfo();
// hosInfo.setHosOrgCode(orgCode); // hosInfo.setHosOrgCode(orgCode);
......
...@@ -7,14 +7,13 @@ import cn.sh.stc.sict.cloud.common.core.constant.Constant; ...@@ -7,14 +7,13 @@ import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo; import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import cn.sh.stc.sict.theme.hphy.dao.HphyPatientBaseMapper; import cn.sh.stc.sict.theme.hphy.dao.HphyPatientBaseMapper;
import cn.sh.stc.sict.theme.hphy.model.HphyPatientBase; import cn.sh.stc.sict.theme.hphy.model.HphyPatientBase;
import cn.sh.stc.sict.theme.hphy.service.HphyPatientBaseService; import cn.sh.stc.sict.theme.hphy.service.HphyPatientBaseService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -40,7 +39,7 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe ...@@ -40,7 +39,7 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe
base.setUserId(current.getId()); base.setUserId(current.getId());
base.setOpenId(current.getOpenId()); base.setOpenId(current.getOpenId());
base.setPhone(userInfo.getMobile()); base.setPhone(userInfo.getMobile());
base.setName(userInfo.getUsername()); base.setName(userInfo.getName());
base.setCertId(userInfo.getPersoncard()); base.setCertId(userInfo.getPersoncard());
base.setAge(String.valueOf(IdcardUtil.getAgeByIdCard(userInfo.getPersoncard()))); base.setAge(String.valueOf(IdcardUtil.getAgeByIdCard(userInfo.getPersoncard())));
base.setGender(Constant.BYTE_YES.equals(userInfo.getGender()) ? "男" : "女"); base.setGender(Constant.BYTE_YES.equals(userInfo.getGender()) ? "男" : "女");
...@@ -52,6 +51,7 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe ...@@ -52,6 +51,7 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe
} }
this.save(base); this.save(base);
return base;
} }
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment