修改了放心签的验证逻辑
This commit is contained in:
parent
3eb7af1fff
commit
d57329cf1c
@ -12,14 +12,8 @@ import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
|
||||
import net.lab1024.sa.admin.extend.fangxinqian.auth.GetAuthorizeResponse;
|
||||
import net.lab1024.sa.admin.extend.fangxinqian.task.GetTaskLinkResponse;
|
||||
import net.lab1024.sa.admin.module.app.expert.admin.*;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.ExpertDao;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqExpertTaskDao;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqTemplateDao;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqUserDao;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqCompanyEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqExpertTaskEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqTemplateEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqUserEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.*;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.*;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.vo.AddFxqVo;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.vo.GetExpertSignVo;
|
||||
import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService;
|
||||
@ -83,6 +77,8 @@ public class ExpertFxqController {
|
||||
@Resource
|
||||
private ExpertDao expertDao;
|
||||
|
||||
@Resource
|
||||
private FxqSignDao fxqSignDao;
|
||||
|
||||
/**
|
||||
* 获取专家协议签署详情
|
||||
@ -96,17 +92,33 @@ public class ExpertFxqController {
|
||||
}
|
||||
|
||||
GetExpertSignVo g = new GetExpertSignVo();
|
||||
g.setTaskStatus(1);
|
||||
g.setTaskStatus(2);
|
||||
|
||||
// 签署任务详情查询
|
||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
||||
if (fxqExpertTask == null) {
|
||||
g.setTaskStatus(2);
|
||||
return ResponseDTO.app_ok(g);
|
||||
// 获取专家协议签署详情
|
||||
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||
if (fxqSign == null) {
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
if (!Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
g.setTaskStatus(2);
|
||||
// 已签署
|
||||
if (fxqSign.getSignStatus() == 1) {
|
||||
g.setTaskStatus(1);
|
||||
g.setTaskFileUrl(fxqSign.getSignLink());
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
// 签署任务详情查询
|
||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(fxqSign.getTaskId());
|
||||
if (fxqExpertTask == null) {
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
// 已签署
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
g.setTaskStatus(1);
|
||||
g.setTaskFileUrl(fxqExpertTask.getTaskLink());
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
@ -130,6 +142,14 @@ public class ExpertFxqController {
|
||||
return ResponseDTO.userErrorParam("操作失败");
|
||||
}
|
||||
|
||||
// 获取企业实名认证数据-个人
|
||||
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||
if (fxqSign != null && fxqSign.getSignStatus() == 1) {
|
||||
return ResponseDTO.userErrorParam("您已签订协议,无需再次签订");
|
||||
}
|
||||
|
||||
// 获取企业放心签实名认证数据
|
||||
FxqCompanyEntity company = expertFxqService.getCompany();
|
||||
|
||||
@ -138,18 +158,9 @@ public class ExpertFxqController {
|
||||
|
||||
// 签署任务详情查询
|
||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
||||
if (fxqExpertTask != null) {
|
||||
// 已创建了签署任务
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
return ResponseDTO.userErrorParam("您已签订协议,无需再次签订");
|
||||
}
|
||||
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "0") || Objects.equals(fxqExpertTask.getTaskStatus(), "10")) {
|
||||
AddFxqVo g = new AddFxqVo();
|
||||
g.setTaskStatus(2);
|
||||
g.setLinkUrl(fxqExpertTask.getTaskLink());
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
// 已签署
|
||||
return ResponseDTO.userErrorParam("您已签订协议,无需再次签订");
|
||||
}
|
||||
|
||||
// 获取签署的模版数据
|
||||
|
||||
@ -4,10 +4,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqCompanyEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Mapper
|
||||
@Component
|
||||
public interface FxqSignDao extends BaseMapper<FxqSignEntity> {
|
||||
|
||||
@Update("UPDATE t_caseplatform_fxq_sign " +
|
||||
"SET sign_status = #{signStatus}, update_time = NOW() " +
|
||||
"WHERE expert_id = #{expertId} AND task_id = #{taskId}")
|
||||
int updateSignStatus(@Param("expertId") Long expertId,
|
||||
@Param("taskId") Long taskId,
|
||||
@Param("signStatus") Integer signStatus);
|
||||
}
|
||||
|
||||
@ -38,6 +38,12 @@ public class FxqSignEntity {
|
||||
@TableField("sign_status")
|
||||
private Integer signStatus;
|
||||
|
||||
/**
|
||||
* 协议地址
|
||||
*/
|
||||
@TableField("sign_link")
|
||||
private String signLink;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
||||
@ -385,6 +385,17 @@ public class ExpertFxqService {
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
// 添加数据库-签署
|
||||
FxqSignEntity fxqSignData = new FxqSignEntity();
|
||||
fxqSignData.setExpertId(fxqUser.getExpertId());
|
||||
fxqSignData.setTaskId(fxqExpertTaskData.getId());
|
||||
fxqSignData.setSignStatus(2);
|
||||
fxqSignData.setCreateTime(LocalDateTime.now());
|
||||
res = fxqSignDao.insert(fxqSignData);
|
||||
if (res <= 0){
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
if (Objects.equals(templateTask.getData().getTaskNo(), "")){
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
@ -401,7 +412,22 @@ public class ExpertFxqService {
|
||||
/**
|
||||
* 签署任务详情查询
|
||||
*/
|
||||
public FxqExpertTaskEntity getTaskDetail(Long expertId){
|
||||
public FxqExpertTaskEntity getTaskDetail(Long taskId){
|
||||
// 获取签署任务
|
||||
// LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
||||
// queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20");
|
||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectById(taskId);
|
||||
if (fxqExpertTask == null){
|
||||
// 未签署
|
||||
return null;
|
||||
}
|
||||
|
||||
// 已完成
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
return fxqExpertTask;
|
||||
}
|
||||
|
||||
// 获取企业实名认证数据-公司
|
||||
LambdaQueryWrapper<FxqCompanyEntity> companyQueryWrapper = new LambdaQueryWrapper<>();
|
||||
companyQueryWrapper.eq(FxqCompanyEntity::getUid, "bjyykxjsfzxh");
|
||||
@ -410,21 +436,6 @@ public class ExpertFxqService {
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
// 获取签署任务
|
||||
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20");
|
||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
||||
if (fxqExpertTask != null) {
|
||||
// 已完成
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
return fxqExpertTask;
|
||||
}
|
||||
}else{
|
||||
// 未签署
|
||||
return null;
|
||||
}
|
||||
|
||||
GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(fxqExpertTask.getTaskNo(),companyFxqCompany.getUnionId());
|
||||
if (taskLink.getData() == null) {
|
||||
throw new BusinessException("操作失败");
|
||||
@ -441,61 +452,17 @@ public class ExpertFxqService {
|
||||
|
||||
// 修改状态-签署任务
|
||||
fxqExpertTask.setTaskStatus(String.valueOf(taskLink.getData().getTaskStatus()));
|
||||
if (taskLink.getData().getTaskStatus() == 20){
|
||||
fxqExpertTask.setSignStatus(1);
|
||||
}
|
||||
|
||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||
|
||||
return fxqExpertTask;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取专家协议签署详情
|
||||
*/
|
||||
@Transactional
|
||||
public boolean getExpertSign(Long expertId){
|
||||
try {
|
||||
// 获取签署任务数据
|
||||
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20");
|
||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
||||
if (fxqExpertTask == null) {
|
||||
return false;
|
||||
// 修改专家签署任务表
|
||||
if (taskLink.getData().getTaskStatus() == 20){
|
||||
int rows = fxqSignDao.updateSignStatus(fxqExpertTask.getExpertId(), taskId,2);
|
||||
if (rows == 0) {
|
||||
throw new BusinessException("更新失败,未找到符合条件的记录");
|
||||
}
|
||||
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")){
|
||||
return true;
|
||||
}
|
||||
|
||||
// 获取个人实名认证数据
|
||||
LambdaQueryWrapper<FxqUserEntity> personalQueryWrapper = new LambdaQueryWrapper<>();
|
||||
personalQueryWrapper.eq(FxqUserEntity::getExpertId, expertId);
|
||||
FxqUserEntity fxqUser = fxqUserDao.selectOne(personalQueryWrapper);
|
||||
if (fxqUser == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取签署链接
|
||||
GetTaskLinkResponse.taskDetailsData fxqLink = getTaskLink(fxqExpertTask.getTaskNo(),fxqUser.getUnionId());
|
||||
if (fxqLink == null) {
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
// 已签署
|
||||
if (Objects.equals(fxqLink.getSignStatus(), "2")){
|
||||
// 修改签署任务
|
||||
fxqExpertTask.setTaskStatus("20");
|
||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(e.getMessage());
|
||||
}
|
||||
|
||||
return fxqExpertTask;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -513,5 +480,4 @@ public class ExpertFxqService {
|
||||
|
||||
return result.getData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import net.lab1024.sa.admin.module.app.expert.admin.ExpertSignVO;
|
||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqSignDao;
|
||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity;
|
||||
import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService;
|
||||
import net.lab1024.sa.admin.module.app.expert.service.ExpertSignService;
|
||||
import net.lab1024.sa.admin.module.app.medicalrecord.dao.*;
|
||||
@ -66,6 +68,9 @@ public class MedicalRecordService {
|
||||
@Autowired
|
||||
private ExpertSignService expertSignService;
|
||||
|
||||
@Resource
|
||||
private FxqSignDao fxqSignDao;
|
||||
|
||||
public PageResult<MedicalRecordListVO> getList(MedicalRecordQueryForm queryForm){
|
||||
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
||||
Long expertId = SmartRequestUtil.getRequestUserId();
|
||||
@ -95,9 +100,15 @@ public class MedicalRecordService {
|
||||
|
||||
Long expertId = SmartRequestUtil.getRequestUserId();
|
||||
|
||||
// 验证签名状态
|
||||
boolean isSign = expertFxqService.getExpertSign(expertId);
|
||||
if (!isSign){
|
||||
// 获取专家协议签署详情
|
||||
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||
if (fxqSign == null) {
|
||||
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||
}
|
||||
|
||||
if (fxqSign.getSignStatus() == 2) {
|
||||
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||
}
|
||||
|
||||
@ -254,6 +265,18 @@ public class MedicalRecordService {
|
||||
return ResponseDTO.error(NO_PERMISSION_EDIT);
|
||||
}
|
||||
|
||||
// 获取专家协议签署详情
|
||||
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||
if (fxqSign == null) {
|
||||
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||
}
|
||||
|
||||
if (fxqSign.getSignStatus() == 2) {
|
||||
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||
}
|
||||
|
||||
/*************************前置 检查*****************************/
|
||||
|
||||
ResponseDTO check = check(updateForm, expertId);
|
||||
|
||||
@ -50,6 +50,9 @@ public class CaseplatformCaseVO {
|
||||
@ApiModelPropertyEnum(value = CaseStatusEnum.class, desc = "0待审核 1审核通过 2审核不通过")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "审核通过时间")
|
||||
private LocalDateTime examineTime;
|
||||
|
||||
@ApiModelProperty(value = "专家所在城市医院")
|
||||
private String expertHospitalName;
|
||||
|
||||
@ -65,4 +68,12 @@ public class CaseplatformCaseVO {
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "签署状态(1:已签署 2:未签署)")
|
||||
private String signStatus;
|
||||
|
||||
@ApiModelProperty(value = "协议地址")
|
||||
private String taskLink;
|
||||
|
||||
@ApiModelProperty(value = "签署完成时间")
|
||||
private LocalDateTime signTime;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user