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 org.apache.poi.ss.formula.functions.T;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -49,6 +50,19 @@ public class GetTaskDetailResponse {
|
||||
*/
|
||||
@Data
|
||||
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.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;
|
||||
@ -78,6 +79,10 @@ public class ExpertFxqController {
|
||||
@Resource
|
||||
private FxqTemplateDao fxqTemplateDao;
|
||||
|
||||
@Resource
|
||||
private ExpertDao expertDao;
|
||||
|
||||
|
||||
/**
|
||||
* 获取专家协议签署详情
|
||||
*/
|
||||
@ -90,13 +95,18 @@ public class ExpertFxqController {
|
||||
}
|
||||
|
||||
GetExpertSignVo g = new GetExpertSignVo();
|
||||
g.setTaskStatus(1);
|
||||
|
||||
// 获取专家协议签署状态
|
||||
boolean res = expertFxqService.getExpertSign(expertId);
|
||||
if (!res){
|
||||
// 签署任务详情查询
|
||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
||||
if (fxqExpertTask == null) {
|
||||
g.setTaskStatus(2);
|
||||
}else {
|
||||
g.setTaskStatus(1);
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
if (!Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||
g.setTaskStatus(2);
|
||||
return ResponseDTO.app_ok(g);
|
||||
}
|
||||
|
||||
return ResponseDTO.app_ok(g);
|
||||
@ -113,18 +123,40 @@ public class ExpertFxqController {
|
||||
return ResponseDTO.error(LOGIN_STATE_INVALID);
|
||||
}
|
||||
|
||||
// 获取专家数据
|
||||
ExpertEntity expert = expertDao.getExpert(expertId);
|
||||
if (expert == null) {
|
||||
return ResponseDTO.userErrorParam("操作失败");
|
||||
}
|
||||
|
||||
// 获取企业放心签实名认证数据
|
||||
FxqCompanyEntity company = expertFxqService.getCompany();
|
||||
|
||||
// 获取个人放心签实名认证数据
|
||||
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());
|
||||
|
||||
// 模版签署任务创建
|
||||
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:已完成
|
||||
*/
|
||||
@TableField("task_status")
|
||||
private Integer taskStatus;
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 签署完成时间
|
||||
*/
|
||||
@TableField("signTime")
|
||||
@TableField("sign_time")
|
||||
private LocalDateTime signTime;
|
||||
|
||||
/**
|
||||
|
||||
@ -288,32 +288,8 @@ public class ExpertFxqService {
|
||||
* 模版签署任务创建
|
||||
*/
|
||||
@Transactional
|
||||
public AddFxqVo addTemplateTask(FxqCompanyEntity company, FxqUserEntity fxqUser, FxqTemplateEntity fxqTemplate){
|
||||
public AddFxqVo addTemplateTask(FxqCompanyEntity company, FxqUserEntity fxqUser, FxqTemplateEntity fxqTemplate,ExpertEntity expert){
|
||||
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();
|
||||
r.setUnionId(company.getUnionId());
|
||||
@ -336,10 +312,25 @@ public class ExpertFxqService {
|
||||
|
||||
// 初始化 components 列表
|
||||
List<AddTemplateTaskRequest.componentsData> componentsList = new ArrayList<>();
|
||||
AddTemplateTaskRequest.componentsData components = new AddTemplateTaskRequest.componentsData();
|
||||
components.setFileKey("doctorName");
|
||||
components.setFileValue(fxqUser.getName());
|
||||
componentsList.add(components);
|
||||
|
||||
// 乙方姓名
|
||||
AddTemplateTaskRequest.componentsData name = new AddTemplateTaskRequest.componentsData();
|
||||
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);
|
||||
|
||||
AddTemplateTaskResponse templateTask = fxqTask.addTemplateTask(r);
|
||||
@ -351,42 +342,37 @@ public class ExpertFxqService {
|
||||
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();
|
||||
fxqExpertTaskData.setExpertId(fxqUser.getExpertId());
|
||||
fxqExpertTaskData.setTaskNo(templateTask.getData().getTaskNo());
|
||||
fxqExpertTaskData.setTemplateId(fxqTemplate.getId());
|
||||
fxqExpertTaskData.setTaskStatus(10);
|
||||
fxqExpertTaskData.setTaskStatus("10");
|
||||
fxqExpertTaskData.setTaskLink(fxqLink.getSignH5Url());
|
||||
fxqExpertTaskData.setCreateTime(LocalDateTime.now());
|
||||
int res = fxqExpertTaskDao.insert(fxqExpertTaskData);
|
||||
if (res <= 0){
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
taskNo = templateTask.getData().getTaskNo();
|
||||
|
||||
if (Objects.equals(taskNo, "")){
|
||||
if (Objects.equals(templateTask.getData().getTaskNo(), "")){
|
||||
throw new BusinessException("操作失败");
|
||||
}
|
||||
|
||||
// 获取签署链接
|
||||
GetTaskLinkResponse.taskDetailsData fxqLink = getTaskLink(taskNo,fxqUser.getUnionId());
|
||||
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());
|
||||
return g;
|
||||
} else{
|
||||
throw new BusinessException("签署状态错误");
|
||||
}
|
||||
AddFxqVo g = new AddFxqVo();
|
||||
g.setTaskStatus(2);
|
||||
g.setLinkUrl(fxqLink.getSignH5Url());
|
||||
return g;
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(e.getMessage());
|
||||
}
|
||||
@ -395,8 +381,31 @@ public class ExpertFxqService {
|
||||
/**
|
||||
* 签署任务详情查询
|
||||
*/
|
||||
public FxqExpertTaskEntity getTaskDetail(String taskNo, String unionId,FxqExpertTaskEntity fxqExpertTask){
|
||||
GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(taskNo,unionId);
|
||||
public FxqExpertTaskEntity getTaskDetail(Long expertId){
|
||||
// 获取企业实名认证数据-公司
|
||||
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) {
|
||||
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);
|
||||
|
||||
return fxqExpertTask;
|
||||
@ -426,13 +443,13 @@ public class ExpertFxqService {
|
||||
// 获取签署任务数据
|
||||
LambdaQueryWrapper<FxqExpertTaskEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(FxqExpertTaskEntity::getExpertId, expertId);
|
||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, 0,10,20);
|
||||
queryWrapper.in(FxqExpertTaskEntity::getTaskStatus, "0","10","20");
|
||||
FxqExpertTaskEntity fxqExpertTask = fxqExpertTaskDao.selectOne(queryWrapper);
|
||||
if (fxqExpertTask == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (fxqExpertTask.getTaskStatus() == 20){
|
||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")){
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -453,7 +470,7 @@ public class ExpertFxqService {
|
||||
// 已签署
|
||||
if (Objects.equals(fxqLink.getSignStatus(), "2")){
|
||||
// 修改签署任务
|
||||
fxqExpertTask.setTaskStatus(20);
|
||||
fxqExpertTask.setTaskStatus("20");
|
||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||
|
||||
return true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user