修改了放心签的验证逻辑
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.auth.GetAuthorizeResponse;
|
||||||
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.*;
|
||||||
import net.lab1024.sa.admin.module.app.expert.dao.FxqExpertTaskDao;
|
import net.lab1024.sa.admin.module.app.expert.domain.entity.*;
|
||||||
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.domain.vo.AddFxqVo;
|
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.domain.vo.GetExpertSignVo;
|
||||||
import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService;
|
import net.lab1024.sa.admin.module.app.expert.service.ExpertFxqService;
|
||||||
@ -83,6 +77,8 @@ public class ExpertFxqController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ExpertDao expertDao;
|
private ExpertDao expertDao;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FxqSignDao fxqSignDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取专家协议签署详情
|
* 获取专家协议签署详情
|
||||||
@ -96,17 +92,33 @@ public class ExpertFxqController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
GetExpertSignVo g = new GetExpertSignVo();
|
GetExpertSignVo g = new GetExpertSignVo();
|
||||||
g.setTaskStatus(1);
|
g.setTaskStatus(2);
|
||||||
|
|
||||||
// 签署任务详情查询
|
// 获取专家协议签署详情
|
||||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
if (fxqExpertTask == null) {
|
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||||
g.setTaskStatus(2);
|
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||||
return ResponseDTO.app_ok(g);
|
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);
|
return ResponseDTO.app_ok(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,6 +142,14 @@ public class ExpertFxqController {
|
|||||||
return ResponseDTO.userErrorParam("操作失败");
|
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();
|
FxqCompanyEntity company = expertFxqService.getCompany();
|
||||||
|
|
||||||
@ -138,18 +158,9 @@ public class ExpertFxqController {
|
|||||||
|
|
||||||
// 签署任务详情查询
|
// 签署任务详情查询
|
||||||
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
FxqExpertTaskEntity fxqExpertTask = expertFxqService.getTaskDetail(expertId);
|
||||||
if (fxqExpertTask != null) {
|
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
||||||
// 已创建了签署任务
|
// 已签署
|
||||||
if (Objects.equals(fxqExpertTask.getTaskStatus(), "20")) {
|
return ResponseDTO.userErrorParam("您已签订协议,无需再次签订");
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取签署的模版数据
|
// 获取签署的模版数据
|
||||||
|
|||||||
@ -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.FxqCompanyEntity;
|
||||||
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity;
|
import net.lab1024.sa.admin.module.app.expert.domain.entity.FxqSignEntity;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
@Component
|
@Component
|
||||||
public interface FxqSignDao extends BaseMapper<FxqSignEntity> {
|
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")
|
@TableField("sign_status")
|
||||||
private Integer signStatus;
|
private Integer signStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 协议地址
|
||||||
|
*/
|
||||||
|
@TableField("sign_link")
|
||||||
|
private String signLink;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -385,6 +385,17 @@ public class ExpertFxqService {
|
|||||||
throw new BusinessException("操作失败");
|
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(), "")){
|
if (Objects.equals(templateTask.getData().getTaskNo(), "")){
|
||||||
throw new BusinessException("操作失败");
|
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<>();
|
LambdaQueryWrapper<FxqCompanyEntity> companyQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
companyQueryWrapper.eq(FxqCompanyEntity::getUid, "bjyykxjsfzxh");
|
companyQueryWrapper.eq(FxqCompanyEntity::getUid, "bjyykxjsfzxh");
|
||||||
@ -410,21 +436,6 @@ public class ExpertFxqService {
|
|||||||
throw new BusinessException("操作失败");
|
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());
|
GetTaskDetailResponse taskLink = fxqTask.getTaskDetail(fxqExpertTask.getTaskNo(),companyFxqCompany.getUnionId());
|
||||||
if (taskLink.getData() == null) {
|
if (taskLink.getData() == null) {
|
||||||
throw new BusinessException("操作失败");
|
throw new BusinessException("操作失败");
|
||||||
@ -441,61 +452,17 @@ public class ExpertFxqService {
|
|||||||
|
|
||||||
// 修改状态-签署任务
|
// 修改状态-签署任务
|
||||||
fxqExpertTask.setTaskStatus(String.valueOf(taskLink.getData().getTaskStatus()));
|
fxqExpertTask.setTaskStatus(String.valueOf(taskLink.getData().getTaskStatus()));
|
||||||
if (taskLink.getData().getTaskStatus() == 20){
|
|
||||||
fxqExpertTask.setSignStatus(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
fxqExpertTaskDao.updateById(fxqExpertTask);
|
fxqExpertTaskDao.updateById(fxqExpertTask);
|
||||||
|
|
||||||
return fxqExpertTask;
|
// 修改专家签署任务表
|
||||||
}
|
if (taskLink.getData().getTaskStatus() == 20){
|
||||||
|
int rows = fxqSignDao.updateSignStatus(fxqExpertTask.getExpertId(), taskId,2);
|
||||||
/**
|
if (rows == 0) {
|
||||||
* 获取专家协议签署详情
|
throw new BusinessException("更新失败,未找到符合条件的记录");
|
||||||
*/
|
|
||||||
@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 (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();
|
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.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.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.ExpertFxqService;
|
||||||
import net.lab1024.sa.admin.module.app.expert.service.ExpertSignService;
|
import net.lab1024.sa.admin.module.app.expert.service.ExpertSignService;
|
||||||
import net.lab1024.sa.admin.module.app.medicalrecord.dao.*;
|
import net.lab1024.sa.admin.module.app.medicalrecord.dao.*;
|
||||||
@ -66,6 +68,9 @@ public class MedicalRecordService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ExpertSignService expertSignService;
|
private ExpertSignService expertSignService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FxqSignDao fxqSignDao;
|
||||||
|
|
||||||
public PageResult<MedicalRecordListVO> getList(MedicalRecordQueryForm queryForm){
|
public PageResult<MedicalRecordListVO> getList(MedicalRecordQueryForm queryForm){
|
||||||
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
||||||
Long expertId = SmartRequestUtil.getRequestUserId();
|
Long expertId = SmartRequestUtil.getRequestUserId();
|
||||||
@ -95,9 +100,15 @@ public class MedicalRecordService {
|
|||||||
|
|
||||||
Long expertId = SmartRequestUtil.getRequestUserId();
|
Long expertId = SmartRequestUtil.getRequestUserId();
|
||||||
|
|
||||||
// 验证签名状态
|
// 获取专家协议签署详情
|
||||||
boolean isSign = expertFxqService.getExpertSign(expertId);
|
LambdaQueryWrapper<FxqSignEntity> signQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
if (!isSign){
|
signQueryWrapper.eq(FxqSignEntity::getExpertId,expertId);
|
||||||
|
FxqSignEntity fxqSign = fxqSignDao.selectOne(signQueryWrapper);
|
||||||
|
if (fxqSign == null) {
|
||||||
|
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fxqSign.getSignStatus() == 2) {
|
||||||
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
return ResponseDTO.userErrorParam("请先签署项目协议!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,6 +265,18 @@ public class MedicalRecordService {
|
|||||||
return ResponseDTO.error(NO_PERMISSION_EDIT);
|
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);
|
ResponseDTO check = check(updateForm, expertId);
|
||||||
|
|||||||
@ -50,6 +50,9 @@ public class CaseplatformCaseVO {
|
|||||||
@ApiModelPropertyEnum(value = CaseStatusEnum.class, desc = "0待审核 1审核通过 2审核不通过")
|
@ApiModelPropertyEnum(value = CaseStatusEnum.class, desc = "0待审核 1审核通过 2审核不通过")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "审核通过时间")
|
||||||
|
private LocalDateTime examineTime;
|
||||||
|
|
||||||
@ApiModelProperty(value = "专家所在城市医院")
|
@ApiModelProperty(value = "专家所在城市医院")
|
||||||
private String expertHospitalName;
|
private String expertHospitalName;
|
||||||
|
|
||||||
@ -65,4 +68,12 @@ public class CaseplatformCaseVO {
|
|||||||
@ApiModelProperty(value = "修改时间")
|
@ApiModelProperty(value = "修改时间")
|
||||||
private LocalDateTime updateTime;
|
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