waring
parent
703a4d5264
commit
071fd41976
|
|
@ -9,19 +9,23 @@ import org.qinan.safetyeval.app.item.convertor.EvalReviewItemCmdConvertor;
|
|||
import org.qinan.safetyeval.client.api.institution.EvalInternalReviewApi;
|
||||
import org.qinan.safetyeval.client.co.institution.EvalInternalReviewCO;
|
||||
import org.qinan.safetyeval.client.co.institution.EvalInternalReviewDetailCO;
|
||||
import org.qinan.safetyeval.client.co.institution.SignTaskPersonCo;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewAssignCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewConfirmCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewSaveCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.SignTaskPersonCmd;
|
||||
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
|
||||
import org.qinan.safetyeval.client.item.response.EvalReviewItemCo;
|
||||
import org.qinan.safetyeval.domain.constant.*;
|
||||
import org.qinan.safetyeval.domain.entity.EvalInternalReviewEntity;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||
import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity;
|
||||
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
|
||||
import org.qinan.safetyeval.domain.exception.BizException;
|
||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||
import org.qinan.safetyeval.domain.gateway.EvalInternalReviewGateway;
|
||||
import org.qinan.safetyeval.domain.gateway.EvalSignTaskGateway;
|
||||
import org.qinan.safetyeval.domain.item.gateway.EvalReviewItemGateway;
|
||||
import org.qinan.safetyeval.domain.item.model.EvalReviewItemE;
|
||||
import org.qinan.safetyeval.domain.service.ProjectStageSyncService;
|
||||
|
|
@ -30,8 +34,10 @@ import org.qinan.safetyeval.infrastructure.convertor.EvalInternalReviewConvertor
|
|||
import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalInternalReviewDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalInternalReviewMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
||||
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -66,6 +72,10 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi {
|
|||
private EvalProjectMemberMapper evalProjectMemberMapper;
|
||||
@Resource
|
||||
private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor;
|
||||
@Resource
|
||||
private EvalSignTaskGateway evalSignTaskGateway;
|
||||
@Resource
|
||||
private EvalSignTaskMapper evalSignTaskMapper;
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalInternalReviewCO> getOrSave(EvalInternalReviewSaveCmd cmd) {
|
||||
|
|
@ -162,18 +172,46 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi {
|
|||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalInternalReviewGateway.save(entity);
|
||||
} else {
|
||||
// 已存在数据,若已下发则提示不要重复下发
|
||||
if (SignatureTaskStatusEnum.DISPATCHED.getCode().equals(entity.getReviewerSignatureTaskStatus())) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_DISPATCHED);
|
||||
}
|
||||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalInternalReviewGateway.modify(entity);
|
||||
}
|
||||
|
||||
// todo 保存任务
|
||||
// 保存签字任务到 eval_sign_task
|
||||
upsertSignTask(entity.getId(), projectId, project.getOrgId(),
|
||||
ProjectStageEnum.INTERNAL_REVIEW, cmd.getSignTaskPersonCmd());
|
||||
return SingleResponse.success();
|
||||
}
|
||||
|
||||
private void upsertSignTask(Long bizRefId, Long projectId, Long orgId,
|
||||
ProjectStageEnum stage, SignTaskPersonCmd person) {
|
||||
EvalSignTaskDO existTask = evalSignTaskMapper.selectOne(new LambdaQueryWrapper<EvalSignTaskDO>()
|
||||
.select(EvalSignTaskDO::getId)
|
||||
.eq(EvalSignTaskDO::getProjectId, projectId)
|
||||
.eq(EvalSignTaskDO::getBizRefId, bizRefId)
|
||||
.eq(EvalSignTaskDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
|
||||
.last(" limit 1 "));
|
||||
if (existTask != null && existTask.getTaskStatusCode() != null && existTask.getTaskStatusCode() == 2) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_COMPLETED);
|
||||
}
|
||||
if (existTask != null) {
|
||||
EvalSignTaskDO update = new EvalSignTaskDO();
|
||||
update.setId(existTask.getId());
|
||||
update.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
update.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.updateById(update);
|
||||
} else {
|
||||
EvalSignTaskDO task = new EvalSignTaskDO();
|
||||
task.setOrgId(orgId);
|
||||
task.setProjectId(projectId);
|
||||
task.setNodeCode(stage.getNode());
|
||||
task.setBizRefId(bizRefId);
|
||||
task.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
task.setTaskTitle(stage.getMsg() + "签字任务");
|
||||
task.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.insert(task);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalInternalReviewCO> getByProject(Long projectId) {
|
||||
evalProjectNodeSupport.assertRead(projectId);
|
||||
|
|
@ -206,6 +244,9 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi {
|
|||
// 3. 通过内审记录id查询审核项列表
|
||||
detailCO.setReviewItems(evalReviewItemQueryService.listByBizIdAndBizType(
|
||||
entity.getId(), ReviewDimensionEnum.TypeEnum.EVAL_INTERNAL_REVIEW.getCode()));
|
||||
// 4. 查询签字任务人员
|
||||
SignTaskPersonCo personCo = evalSignTaskMapper.selectSignerPerson(entity.getId(), projectId);
|
||||
detailCO.setSignTaskPersonCo(personCo);
|
||||
} else {
|
||||
// 未查询到内审记录,按审核维度枚举构建默认审核项
|
||||
detailCO.setReviewItems(ReviewDimensionEnum.getListByType(ReviewDimensionEnum.TypeEnum.EVAL_INTERNAL_REVIEW)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package org.qinan.safetyeval.app.executor.institution;
|
||||
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.qinan.safetyeval.app.executor.institution.support.EvalCmdCopy;
|
||||
|
|
@ -39,9 +39,11 @@ import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConverto
|
|||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProcessControlDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectDocDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProcessControlMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectDocMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
||||
import org.qinan.safetyeval.infrastructure.persistence.queryservice.*;
|
||||
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -104,6 +106,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
private EvalProcessControlMapper evalProcessControlMapper;
|
||||
@Resource
|
||||
private EvalProjectDocMapper evalProjectDocMapper;
|
||||
@Resource
|
||||
private EvalSignTaskMapper evalSignTaskMapper;
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) {
|
||||
|
|
@ -190,17 +194,45 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalProcessControlGateway.save(entity);
|
||||
} else {
|
||||
// 已存在数据,若已下发则提示不要重复下发
|
||||
if (SignatureTaskStatusEnum.DISPATCHED.getCode().equals(entity.getReviewerSignatureTaskStatus())) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_DISPATCHED);
|
||||
}
|
||||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalProcessControlGateway.modify(entity);
|
||||
}
|
||||
// todo 保存任务
|
||||
// 保存签字任务到 eval_sign_task
|
||||
upsertSignTask(entity.getId(), projectId, project.getOrgId(),
|
||||
ProjectStageEnum.PROCESS_CONTROL, cmd.getSignTaskPersonCmd());
|
||||
return SingleResponse.success();
|
||||
}
|
||||
|
||||
private void upsertSignTask(Long bizRefId, Long projectId, Long orgId,
|
||||
ProjectStageEnum stage, SignTaskPersonCmd person) {
|
||||
EvalSignTaskDO existTask = evalSignTaskMapper.selectOne(new LambdaQueryWrapper<EvalSignTaskDO>()
|
||||
.select(EvalSignTaskDO::getId)
|
||||
.eq(EvalSignTaskDO::getProjectId, projectId)
|
||||
.eq(EvalSignTaskDO::getBizRefId, bizRefId)
|
||||
.eq(EvalSignTaskDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
|
||||
.last(" limit 1 "));
|
||||
if (existTask != null && existTask.getTaskStatusCode() != null && existTask.getTaskStatusCode() == 2) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_COMPLETED);
|
||||
}
|
||||
if (existTask != null) {
|
||||
EvalSignTaskDO update = new EvalSignTaskDO();
|
||||
update.setId(existTask.getId());
|
||||
update.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
update.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.updateById(update);
|
||||
} else {
|
||||
EvalSignTaskDO task = new EvalSignTaskDO();
|
||||
task.setOrgId(orgId);
|
||||
task.setProjectId(projectId);
|
||||
task.setNodeCode(stage.getNode());
|
||||
task.setBizRefId(bizRefId);
|
||||
task.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
task.setTaskTitle(stage.getMsg() + "签字任务");
|
||||
task.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.insert(task);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalProcessControlCO> getByProject(String projectId) {
|
||||
Long pid = Long.parseLong(projectId);
|
||||
|
|
@ -235,6 +267,9 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
// 3. 通过过程控制记录id查询审核项列表
|
||||
detailCO.setReviewItems(evalReviewItemQueryService.listByBizIdAndBizType(
|
||||
entity.getId(), ReviewDimensionEnum.TypeEnum.EVAL_PROCESS_CONTROL.getCode()));
|
||||
// 4. 查询签字任务人员
|
||||
SignTaskPersonCo personCo = evalSignTaskMapper.selectSignerPerson(entity.getId(), projectId);
|
||||
detailCO.setSignTaskPersonCo(personCo);
|
||||
} else {
|
||||
// 未查询到过程控制记录,按审核维度枚举构建默认审核项
|
||||
detailCO.setReviewItems(ReviewDimensionEnum.getListByType(ReviewDimensionEnum.TypeEnum.EVAL_PROCESS_CONTROL)
|
||||
|
|
@ -352,25 +387,24 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
|
|||
}
|
||||
String trimmed = raw.trim();
|
||||
JSONArray result = new JSONArray();
|
||||
if (trimmed.startsWith("[")) {
|
||||
try {
|
||||
JSONArray arr = JSON.parseArray(trimmed);
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
Object item = arr.get(i);
|
||||
|
||||
if (JSONUtil.isTypeJSONArray(trimmed)) {
|
||||
// 字符串数组 ["url1","url2"] 或 对象数组 [{"url":"xxx","name":"xxx"}]
|
||||
JSONArray arr = JSONUtil.parseArray(trimmed);
|
||||
for (Object item : arr) {
|
||||
if (item instanceof JSONObject) {
|
||||
// 已是 {url, name} 对象,直接保留
|
||||
result.add(item);
|
||||
} else {
|
||||
// 字符串元素,构造为 {url, name}
|
||||
result.add(buildUrlNameObj(String.valueOf(item)));
|
||||
}
|
||||
}
|
||||
co.setProjectDocUrl(result.toJSONString());
|
||||
return;
|
||||
} catch (Exception ignored) {
|
||||
// 非合法JSON数组,按纯字符串处理
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 纯字符串URL
|
||||
result.add(buildUrlNameObj(trimmed));
|
||||
co.setProjectDocUrl(result.toJSONString());
|
||||
}
|
||||
co.setProjectDocUrl(result.toString());
|
||||
}
|
||||
|
||||
private JSONObject buildUrlNameObj(String url) {
|
||||
|
|
|
|||
|
|
@ -8,10 +8,12 @@ import org.qinan.safetyeval.app.item.convertor.EvalReviewItemCmdConvertor;
|
|||
import org.qinan.safetyeval.client.api.institution.EvalTechReviewApi;
|
||||
import org.qinan.safetyeval.client.co.institution.EvalTechReviewCO;
|
||||
import org.qinan.safetyeval.client.co.institution.EvalTechReviewDetailCO;
|
||||
import org.qinan.safetyeval.client.co.institution.SignTaskPersonCo;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalTechReviewAssignCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalTechReviewConfirmCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.EvalTechReviewSaveCmd;
|
||||
import org.qinan.safetyeval.client.dto.institution.SignTaskPersonCmd;
|
||||
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
|
||||
import org.qinan.safetyeval.client.item.response.EvalReviewItemCo;
|
||||
import org.qinan.safetyeval.domain.constant.*;
|
||||
|
|
@ -28,8 +30,10 @@ import org.qinan.safetyeval.domain.support.EvalNodeCodes;
|
|||
import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.convertor.EvalTechReviewConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalTechReviewDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalTechReviewMapper;
|
||||
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -65,6 +69,8 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
|
|||
private ProjectStageSyncService projectStageSyncService;
|
||||
@Resource
|
||||
private EvalTechReviewMapper evalTechReviewMapper;
|
||||
@Resource
|
||||
private EvalSignTaskMapper evalSignTaskMapper;
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalTechReviewCO> getOrSave(EvalTechReviewSaveCmd cmd) {
|
||||
|
|
@ -170,17 +176,45 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
|
|||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalTechReviewGateway.save(entity);
|
||||
} else {
|
||||
// 已存在数据,若已下发则提示不要重复下发
|
||||
if (SignatureTaskStatusEnum.DISPATCHED.getCode().equals(entity.getReviewerSignatureTaskStatus())) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_DISPATCHED);
|
||||
}
|
||||
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
|
||||
evalTechReviewGateway.modify(entity);
|
||||
}
|
||||
// todo 保存任务
|
||||
// 保存签字任务到 eval_sign_task
|
||||
upsertSignTask(entity.getId(), projectId, project.getOrgId(),
|
||||
ProjectStageEnum.TECHNICAL_REVIEW, cmd.getSignTaskPersonCmd());
|
||||
return SingleResponse.success();
|
||||
}
|
||||
|
||||
private void upsertSignTask(Long bizRefId, Long projectId, Long orgId,
|
||||
ProjectStageEnum stage, SignTaskPersonCmd person) {
|
||||
EvalSignTaskDO existTask = evalSignTaskMapper.selectOne(new LambdaQueryWrapper<EvalSignTaskDO>()
|
||||
.select(EvalSignTaskDO::getId)
|
||||
.eq(EvalSignTaskDO::getProjectId, projectId)
|
||||
.eq(EvalSignTaskDO::getBizRefId, bizRefId)
|
||||
.eq(EvalSignTaskDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
|
||||
.last(" limit 1 "));
|
||||
if (existTask != null && existTask.getTaskStatusCode() != null && existTask.getTaskStatusCode() == 2) {
|
||||
throw new BizException(ErrorCode.SIGN_TASK_ALREADY_COMPLETED);
|
||||
}
|
||||
if (existTask != null) {
|
||||
EvalSignTaskDO update = new EvalSignTaskDO();
|
||||
update.setId(existTask.getId());
|
||||
update.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
update.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.updateById(update);
|
||||
} else {
|
||||
EvalSignTaskDO task = new EvalSignTaskDO();
|
||||
task.setOrgId(orgId);
|
||||
task.setProjectId(projectId);
|
||||
task.setNodeCode(stage.getNode());
|
||||
task.setBizRefId(bizRefId);
|
||||
task.setSignerPersonnelId(person.getSignerPersonnelId());
|
||||
task.setTaskTitle(stage.getMsg() + "签字任务");
|
||||
task.setTaskStatusCode(1);
|
||||
evalSignTaskMapper.insert(task);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<EvalTechReviewDetailCO> getDetailByProject(Long projectId) {
|
||||
// 1. 查询项目成员中的技审人信息(role包含TECHNICAL_LEAD)
|
||||
|
|
@ -194,6 +228,9 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
|
|||
detailCO.setTechReview(evalTechReviewConvertor.toTechCO(entity));
|
||||
// 3. 通过技审记录id查询审核项列表
|
||||
detailCO.setReviewItems(evalReviewItemQueryService.listByBizIdAndBizType(entity.getId(), ReviewDimensionEnum.TypeEnum.EVAL_TECH_REVIEW.getCode()));
|
||||
// 4. 查询签字任务人员
|
||||
SignTaskPersonCo personCo = evalSignTaskMapper.selectSignerPerson(entity.getId(), projectId);
|
||||
detailCO.setSignTaskPersonCo(personCo);
|
||||
} else {
|
||||
// 未查询到技审记录,按审核维度枚举构建默认审核项
|
||||
detailCO.setReviewItems(ReviewDimensionEnum.getListByType(ReviewDimensionEnum.TypeEnum.EVAL_TECH_REVIEW).stream().map(dimension -> {
|
||||
|
|
|
|||
|
|
@ -20,4 +20,7 @@ public class EvalInternalReviewDetailCO {
|
|||
|
||||
@ApiModelProperty("审核项列表")
|
||||
private List<EvalReviewItemCo> reviewItems;
|
||||
|
||||
@ApiModelProperty("签字任务人员")
|
||||
private SignTaskPersonCo signTaskPersonCo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,4 +20,7 @@ public class EvalProcessControlDetailCO {
|
|||
|
||||
@ApiModelProperty("审核项列表")
|
||||
private List<EvalReviewItemCo> reviewItems;
|
||||
|
||||
@ApiModelProperty("签字任务人员")
|
||||
private SignTaskPersonCo signTaskPersonCo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,4 +20,7 @@ public class EvalTechReviewDetailCO {
|
|||
|
||||
@ApiModelProperty("审核项列表")
|
||||
private List<EvalReviewItemCo> reviewItems;
|
||||
|
||||
@ApiModelProperty("签字任务人员")
|
||||
private SignTaskPersonCo signTaskPersonCo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package org.qinan.safetyeval.client.co.institution;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class SignTaskPersonCo {
|
||||
|
||||
@ApiModelProperty("待签人员id")
|
||||
private Long signerPersonnelId;
|
||||
|
||||
@ApiModelProperty("待签人员姓名")
|
||||
private String signerName;
|
||||
}
|
||||
|
|
@ -120,6 +120,7 @@ public enum ErrorCode {
|
|||
ASSIGN_SIGN_TASK("04-02-001", "请先下发签字任务"),
|
||||
SIGN_TASK_NOT_COMPLETE("04-02-002", "签字任务未完成"),
|
||||
SIGN_TASK_ALREADY_DISPATCHED("04-02-003", "签字任务已下发,请勿重复下发"),
|
||||
SIGN_TASK_ALREADY_COMPLETED("04-02-004", "签字任务已完成,无法再次下发"),
|
||||
|
||||
// gbs
|
||||
GBS_USER_ERROR("04-01-001", "gbs用户未登录"),
|
||||
|
|
|
|||
|
|
@ -11,4 +11,9 @@ public interface EvalSignTaskGateway {
|
|||
EvalSignTaskEntity get(Long id);
|
||||
|
||||
PageResult<EvalSignTaskEntity> page(EvalSignTaskQuery query);
|
||||
|
||||
/**
|
||||
* 根据业务引用ID和业务类型查询签字任务
|
||||
*/
|
||||
EvalSignTaskEntity getByBizRefIdAndType(Long bizRefId, String bizTypeCode, Long projectId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import org.qinan.safetyeval.domain.query.PageResult;
|
|||
import org.qinan.safetyeval.infrastructure.convertor.EvalSignTaskDoConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
||||
import org.qinan.safetyeval.infrastructure.support.EvalBeanCopy;
|
||||
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
||||
import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -74,4 +75,27 @@ public class EvalSignTaskGatewayImpl implements EvalSignTaskGateway {
|
|||
wrapper.orderByDesc(EvalSignTaskDO::getCreateTime);
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EvalSignTaskEntity getByBizRefIdAndType(Long bizRefId, String bizTypeCode, Long projectId) {
|
||||
EvalSignTaskDO dataObject = evalSignTaskMapper.selectOne(new LambdaQueryWrapper<EvalSignTaskDO>()
|
||||
.eq(EvalSignTaskDO::getDeleteEnum, "false")
|
||||
.eq(EvalSignTaskDO::getBizRefId, bizRefId)
|
||||
.eq(EvalSignTaskDO::getProjectId, projectId)
|
||||
.last("LIMIT 1"));
|
||||
return toEntity(dataObject);
|
||||
}
|
||||
|
||||
private EvalSignTaskDO toDO(EvalSignTaskEntity entity) {
|
||||
EvalSignTaskDO dataObject = EvalBeanCopy.toNew(entity, EvalSignTaskDO.class);
|
||||
dataObject.setOrgId(orgContextResolver.resolveOrgId(entity.getOrgId()));
|
||||
return dataObject;
|
||||
}
|
||||
|
||||
private EvalSignTaskEntity toEntity(EvalSignTaskDO dataObject) {
|
||||
if (dataObject == null) {
|
||||
return null;
|
||||
}
|
||||
return EvalBeanCopy.toNew(dataObject, EvalSignTaskEntity.class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,19 @@ package org.qinan.safetyeval.infrastructure.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.qinan.safetyeval.client.co.institution.SignTaskPersonCo;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
|
||||
|
||||
@Mapper
|
||||
public interface EvalSignTaskMapper extends BaseMapper<EvalSignTaskDO> {
|
||||
|
||||
/**
|
||||
* 关联 org_personnel 查询签字人员信息(id + 姓名)
|
||||
*
|
||||
* @param bizRefId 业务引用ID
|
||||
* @param projectId 项目ID
|
||||
* @return 签字人员信息
|
||||
*/
|
||||
SignTaskPersonCo selectSignerPerson(@Param("bizRefId") Long bizRefId, @Param("projectId") Long projectId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper">
|
||||
|
||||
<!-- 关联 org_personnel 查询签字人员信息(id + 姓名) -->
|
||||
<select id="selectSignerPerson" resultType="org.qinan.safetyeval.client.co.institution.SignTaskPersonCo">
|
||||
SELECT t.signer_personnel_id AS signerPersonnelId,
|
||||
p.user_name AS signerName
|
||||
FROM eval_sign_task t
|
||||
LEFT JOIN org_personnel p ON p.id = t.signer_personnel_id
|
||||
WHERE t.biz_ref_id = #{bizRefId}
|
||||
AND t.project_id = #{projectId}
|
||||
AND t.delete_enum = 'false'
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue