1111
This commit is contained in:
parent
b2e9b7fff5
commit
fd7f4259ce
@ -2,6 +2,7 @@ package net.lab1024.sa.admin.extend.fangxinqian.task;
|
|||||||
|
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -49,6 +50,19 @@ public class GetTaskDetailResponse {
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public static class contractsData {
|
public static class contractsData {
|
||||||
|
/**
|
||||||
|
* 签署任务编号
|
||||||
|
*/
|
||||||
|
private String contractNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签署文件预览地址
|
||||||
|
*/
|
||||||
|
private String contractUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 签署人信息
|
||||||
|
*/
|
||||||
|
private List<T> signers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
|
import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
|
||||||
import net.lab1024.sa.admin.extend.fangxinqian.task.GetTaskLinkResponse;
|
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.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.FxqExpertTaskDao;
|
||||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqTemplateDao;
|
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.dao.FxqUserDao;
|
||||||
@ -78,6 +79,10 @@ public class ExpertFxqController {
|
|||||||
@Resource
|
@Resource
|
||||||
private FxqTemplateDao fxqTemplateDao;
|
private FxqTemplateDao fxqTemplateDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ExpertDao expertDao;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取专家协议签署详情
|
* 获取专家协议签署详情
|
||||||
*/
|
*/
|
||||||
@ -90,13 +95,18 @@ public class ExpertFxqController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
GetExpertSignVo g = new GetExpertSignVo();
|
GetExpertSignVo g = new GetExpertSignVo();
|
||||||
|
|
||||||
// 获取专家协议签署状态
|
|
||||||
boolean res = expertFxqService.getExpertSign(expertId);
|
|
||||||
if (!res){
|
|
||||||
g.setTaskStatus(2);
|
|
||||||
}else {
|
|
||||||
g.setTaskStatus(1);
|
g.setTaskStatus(1);
|
||||||
|
|
||||||
|
// 签署任务详情查询
|
||||||
|
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
||||||
|
if (fxqExpertTask == null) {
|
||||||
|
g.setTaskStatus(2);
|
||||||
|
return ResponseDTO.app_ok(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||||
|
g.setTaskStatus(2);
|
||||||
|
return ResponseDTO.app_ok(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseDTO.app_ok(g);
|
return ResponseDTO.app_ok(g);
|
||||||
@ -113,18 +123,40 @@ public class ExpertFxqController {
|
|||||||
return ResponseDTO.error(LOGIN_STATE_INVALID);
|
return ResponseDTO.error(LOGIN_STATE_INVALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取专家数据
|
||||||
|
ExpertEntity expert = expertDao.getExpert(expertId);
|
||||||
|
if (expert == null) {
|
||||||
|
return ResponseDTO.userErrorParam("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
// 获取企业放心签实名认证数据
|
// 获取企业放心签实名认证数据
|
||||||
FxqCompanyEntity company = expertFxqService.getCompany();
|
FxqCompanyEntity company = expertFxqService.getCompany();
|
||||||
|
|
||||||
// 获取个人放心签实名认证数据
|
// 获取个人放心签实名认证数据
|
||||||
FxqUserEntity fxqUser = expertFxqService.getPersonal(expertId);
|
FxqUserEntity fxqUser = expertFxqService.getPersonal(expertId);
|
||||||
|
|
||||||
|
// 签署任务详情查询
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取签署的模版数据
|
// 获取签署的模版数据
|
||||||
FxqTemplateEntity fxqTemplate = expertFxqService.getTemplate(company.getId());
|
FxqTemplateEntity fxqTemplate = expertFxqService.getTemplate(company.getId());
|
||||||
|
|
||||||
// 模版签署任务创建
|
// 模版签署任务创建
|
||||||
AddFxqVo fxqExpertTask = expertFxqService.addTemplateTask(company,fxqUser,fxqTemplate);
|
AddFxqVo g = expertFxqService.addTemplateTask(company,fxqUser,fxqTemplate,expert);
|
||||||
|
|
||||||
return ResponseDTO.app_ok(fxqExpertTask);
|
return ResponseDTO.app_ok(g);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,12 +49,12 @@ public class FxqExpertTaskEntity {
|
|||||||
* 20:已完成
|
* 20:已完成
|
||||||
*/
|
*/
|
||||||
@TableField("task_status")
|
@TableField("task_status")
|
||||||
private Integer taskStatus;
|
private String taskStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签署完成时间
|
* 签署完成时间
|
||||||
*/
|
*/
|
||||||
@TableField("signTime")
|
@TableField("sign_time")
|
||||||
private LocalDateTime signTime;
|
private LocalDateTime signTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -288,32 +288,8 @@ public class ExpertFxqService {
|
|||||||
* 模版签署任务创建
|
* 模版签署任务创建
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
public AddFxqVo addTemplateTask(FxqCompanyEntity company, FxqUserEntity fxqUser, FxqTemplateEntity fxqTemplate){
|
public AddFxqVo addTemplateTask(FxqCompanyEntity company, FxqUserEntity fxqUser, FxqTemplateEntity fxqTemplate,ExpertEntity expert){
|
||||||
try {
|
try {
|
||||||
AddFxqVo g = new AddFxqVo();
|
|
||||||
|
|
||||||
// 签署编号
|
|
||||||
String taskNo = "";
|
|
||||||
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, fxqUser.getExpertId());
|
|
||||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, 0,10,20);
|
|
||||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
|
||||||
if (fxqExpertTask != null) {
|
|
||||||
// 已完成
|
|
||||||
if (fxqExpertTask.getTaskStatus() == 20) {
|
|
||||||
g.setTaskStatus(1);
|
|
||||||
g.setLinkUrl(fxqExpertTask.getTaskLink());
|
|
||||||
return g;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 10待签署 0发起签署
|
|
||||||
if (fxqExpertTask.getTaskStatus() == 10 || fxqExpertTask.getTaskStatus() == 0){
|
|
||||||
g.setTaskStatus(2);
|
|
||||||
g.setLinkUrl(fxqExpertTask.getTaskLink());
|
|
||||||
return g;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 需创建模版任务
|
// 需创建模版任务
|
||||||
AddTemplateTaskRequest r = new AddTemplateTaskRequest();
|
AddTemplateTaskRequest r = new AddTemplateTaskRequest();
|
||||||
r.setUnionId(company.getUnionId());
|
r.setUnionId(company.getUnionId());
|
||||||
@ -336,10 +312,25 @@ public class ExpertFxqService {
|
|||||||
|
|
||||||
// 初始化 components 列表
|
// 初始化 components 列表
|
||||||
List<AddTemplateTaskRequest.componentsData> componentsList = new ArrayList<>();
|
List<AddTemplateTaskRequest.componentsData> componentsList = new ArrayList<>();
|
||||||
AddTemplateTaskRequest.componentsData components = new AddTemplateTaskRequest.componentsData();
|
|
||||||
components.setFileKey("doctorName");
|
// 乙方姓名
|
||||||
components.setFileValue(fxqUser.getName());
|
AddTemplateTaskRequest.componentsData name = new AddTemplateTaskRequest.componentsData();
|
||||||
componentsList.add(components);
|
name.setFileKey("name");
|
||||||
|
name.setFileValue(fxqUser.getName());
|
||||||
|
componentsList.add(name);
|
||||||
|
|
||||||
|
// 乙方工作单位
|
||||||
|
AddTemplateTaskRequest.componentsData work = new AddTemplateTaskRequest.componentsData();
|
||||||
|
work.setFileKey("work");
|
||||||
|
work.setFileValue(expert.getHospitalName());
|
||||||
|
componentsList.add(work);
|
||||||
|
|
||||||
|
// 乙方联系电话
|
||||||
|
AddTemplateTaskRequest.componentsData mobile = new AddTemplateTaskRequest.componentsData();
|
||||||
|
mobile.setFileKey("mobile");
|
||||||
|
mobile.setFileValue(expert.getMobile());
|
||||||
|
componentsList.add(mobile);
|
||||||
|
|
||||||
r.setComponents(componentsList);
|
r.setComponents(componentsList);
|
||||||
|
|
||||||
AddTemplateTaskResponse templateTask = fxqTask.addTemplateTask(r);
|
AddTemplateTaskResponse templateTask = fxqTask.addTemplateTask(r);
|
||||||
@ -351,42 +342,37 @@ public class ExpertFxqService {
|
|||||||
throw new BusinessException("操作失败");
|
throw new BusinessException("操作失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取签署链接
|
||||||
|
GetTaskLinkResponse.taskDetailsData fxqLink = getTaskLink(templateTask.getData().getTaskNo(),fxqUser.getUnionId());
|
||||||
|
if (fxqLink == null) {
|
||||||
|
throw new BusinessException("操作失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Objects.equals(fxqLink.getSignStatus(), "1")) {
|
||||||
|
throw new BusinessException("签署状态错误");
|
||||||
|
}
|
||||||
|
|
||||||
// 添加数据库
|
// 添加数据库
|
||||||
FxqExpertTaskEntity fxqExpertTaskData = new FxqExpertTaskEntity();
|
FxqExpertTaskEntity fxqExpertTaskData = new FxqExpertTaskEntity();
|
||||||
fxqExpertTaskData.setExpertId(fxqUser.getExpertId());
|
fxqExpertTaskData.setExpertId(fxqUser.getExpertId());
|
||||||
fxqExpertTaskData.setTaskNo(templateTask.getData().getTaskNo());
|
fxqExpertTaskData.setTaskNo(templateTask.getData().getTaskNo());
|
||||||
fxqExpertTaskData.setTemplateId(fxqTemplate.getId());
|
fxqExpertTaskData.setTemplateId(fxqTemplate.getId());
|
||||||
fxqExpertTaskData.setTaskStatus(10);
|
fxqExpertTaskData.setTaskStatus("10");
|
||||||
|
fxqExpertTaskData.setTaskLink(fxqLink.getSignH5Url());
|
||||||
fxqExpertTaskData.setCreateTime(LocalDateTime.now());
|
fxqExpertTaskData.setCreateTime(LocalDateTime.now());
|
||||||
int res = fxqExpertTaskDao.insert(fxqExpertTaskData);
|
int res = fxqExpertTaskDao.insert(fxqExpertTaskData);
|
||||||
if (res <= 0){
|
if (res <= 0){
|
||||||
throw new BusinessException("操作失败");
|
throw new BusinessException("操作失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
taskNo = templateTask.getData().getTaskNo();
|
if (Objects.equals(templateTask.getData().getTaskNo(), "")){
|
||||||
|
|
||||||
if (Objects.equals(taskNo, "")){
|
|
||||||
throw new BusinessException("操作失败");
|
throw new BusinessException("操作失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取签署链接
|
AddFxqVo g = new AddFxqVo();
|
||||||
GetTaskLinkResponse.taskDetailsData fxqLink = getTaskLink(taskNo,fxqUser.getUnionId());
|
g.setTaskStatus(2);
|
||||||
if (fxqLink == null) {
|
|
||||||
throw new BusinessException("操作失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 已签署
|
|
||||||
if (Objects.equals(fxqLink.getSignStatus(), "2")){
|
|
||||||
g.setTaskStatus(1);
|
|
||||||
return g;
|
|
||||||
} else if (Objects.equals(fxqLink.getSignStatus(), "1")) {
|
|
||||||
// 可签署
|
|
||||||
g.setTaskStatus(1);
|
|
||||||
g.setLinkUrl(fxqLink.getSignH5Url());
|
g.setLinkUrl(fxqLink.getSignH5Url());
|
||||||
return g;
|
return g;
|
||||||
} else{
|
|
||||||
throw new BusinessException("签署状态错误");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BusinessException(e.getMessage());
|
throw new BusinessException(e.getMessage());
|
||||||
}
|
}
|
||||||
@ -395,8 +381,31 @@ public class ExpertFxqService {
|
|||||||
/**
|
/**
|
||||||
* 签署任务详情查询
|
* 签署任务详情查询
|
||||||
*/
|
*/
|
||||||
public FxqExpertTaskEntity getTaskDetail(String taskNo, String unionId,FxqExpertTaskEntity fxqExpertTask){
|
public FxqExpertTaskEntity getTaskDetail(Long expertId){
|
||||||
GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(taskNo,unionId);
|
// 获取企业实名认证数据-公司
|
||||||
|
LambdaQueryWrapper<FxqCompanyEntity> companyQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
companyQueryWrapper.eq(FxqCompanyEntity::getUid, "bjyykxjsfzxh");
|
||||||
|
FxqCompanyEntity companyFxqCompany = fxqCompanyDao.selectOne(companyQueryWrapper);
|
||||||
|
if (companyFxqCompany == null) {
|
||||||
|
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) {
|
if (taskLink.getData() == null) {
|
||||||
throw new BusinessException("操作失败");
|
throw new BusinessException("操作失败");
|
||||||
}
|
}
|
||||||
@ -411,7 +420,15 @@ public class ExpertFxqService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改状态
|
// 修改状态
|
||||||
fxqExpertTask.setTaskStatus(taskLink.getData().getTaskStatus());
|
fxqExpertTask.setTaskStatus(String.valueOf(taskLink.getData().getTaskStatus()));
|
||||||
|
for (GetTaskDetailResponse.contractsData contract : taskLink.getData().getContracts() ){
|
||||||
|
// 修改文件地址
|
||||||
|
if (!Objects.equals(contract.getContractUrl(), fxqExpertTask.getTaskLink())){
|
||||||
|
fxqExpertTask.setTaskLink(contract.getContractUrl());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||||
|
|
||||||
return fxqExpertTask;
|
return fxqExpertTask;
|
||||||
@ -426,13 +443,13 @@ public class ExpertFxqService {
|
|||||||
// 获取签署任务数据
|
// 获取签署任务数据
|
||||||
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
||||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, 0,10,20);
|
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20");
|
||||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
||||||
if (fxqExpertTask == null) {
|
if (fxqExpertTask == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fxqExpertTask.getTaskStatus() == 20){
|
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,7 +470,7 @@ public class ExpertFxqService {
|
|||||||
// 已签署
|
// 已签署
|
||||||
if (Objects.equals(fxqLink.getSignStatus(), "2")){
|
if (Objects.equals(fxqLink.getSignStatus(), "2")){
|
||||||
// 修改签署任务
|
// 修改签署任务
|
||||||
fxqExpertTask.setTaskStatus(20);
|
fxqExpertTask.setTaskStatus("20");
|
||||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user