luotaiqian 2026-08-05 19:17:06 +08:00
parent 737a68fa3b
commit d057e1fdda
11 changed files with 86 additions and 59 deletions

View File

@ -1,11 +0,0 @@
-- org_equipment 表新增 设备价值 字段
ALTER TABLE `org_equipment`
ADD COLUMN `equipment_value` decimal(14, 2) NULL COMMENT '设备价值' AFTER `manufacturer`;
-- qual_filing_equipment 表新增 设备价值 字段
ALTER TABLE `qual_filing_equipment`
ADD COLUMN `equipment_value` decimal(14, 2) NULL COMMENT '设备价值' AFTER `manufacturer`;
-- qual_filing_equipment_change 表新增 设备价值 字段
ALTER TABLE `qual_filing_equipment_change`
ADD COLUMN `equipment_value` decimal(14, 2) NULL COMMENT '设备价值' AFTER `manufacturer`;

View File

@ -0,0 +1,5 @@
-- eval_process_control 新增机构负责人签字相关字段
ALTER TABLE `eval_process_control`
ADD COLUMN `org_head_signature_task_status` varchar(64) DEFAULT NULL COMMENT '机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成',
ADD COLUMN `org_head_personnel_id` bigint DEFAULT NULL COMMENT '机构负责人',
ADD COLUMN `org_head_signature_url` varchar(512) DEFAULT NULL COMMENT '机构负责人签字';

View File

@ -30,13 +30,13 @@ public class EvalProcessControlController {
private SmsRemote smsRemote;
@ApiOperation("过程控制确认")
@ApiOperation("过程控制确认+过程控制下发签字")
@PostMapping("/confirm")
public SingleResponse<Void> confirm(@Validated @RequestBody EvalProcessControlConfirmCmd cmd) {
return evalProcessControlApi.confirm(cmd);
}
@ApiOperation("下发签字任务")
@ApiOperation("评价机构负责人-下发签字任务")
@PostMapping("/assign")
public SingleResponse<Void> assign(@Validated @RequestBody EvalProcessControlAssignCmd cmd) {
return evalProcessControlApi.assign(cmd);

View File

@ -142,7 +142,6 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
EvalProcessControlEntity entity = evalProcessControlConvertor.applyConfirmCmd(cmd);
EvalProcessControlDO evalProcessControlDO = evalProcessControlMapper.selectOne(new LambdaQueryWrapper<EvalProcessControlDO>()
.select(EvalProcessControlDO::getId, EvalProcessControlDO::getReviewerSignatureTaskStatus)
.eq(EvalProcessControlDO::getProjectId, cmd.getProjectId()));
if (cmd.getId() != null && evalProcessControlDO == null) {
throw new BizException(ErrorCode.EVAL_INTERNAL_REVIEW_NOT_FOUND);
@ -154,6 +153,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
} else {
// id为空新增数据
entity.setOrgId(project.getOrgId());
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
entity = evalProcessControlGateway.save(entity);
}
@ -168,6 +168,18 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
itemE.setOrgId(project.getOrgId());
evalReviewItemGateway.add(itemE);
}
SignTaskPersonCmd signTaskPersonCmd = new SignTaskPersonCmd();
signTaskPersonCmd.setSignerPersonnelId(cmd.getControllerPersonnelId());
signTaskPersonCmd.setSignerName(cmd.getControllerName());
// 保存签字任务到 eval_sign_task
upsertSignTask(entity.getId(), projectId, project.getOrgId(),
ProjectStageEnum.PROCESS_CONTROL.getMsg(), ProjectStageEnum.PROCESS_CONTROL.getVal(), signTaskPersonCmd);
safetyMessageGateway.saveSignMsg(ProjectStageEnum.PROCESS_CONTROL.getMsg()
, ProjectStageEnum.PROCESS_CONTROL.getVal(), String.valueOf(projectId)
, String.valueOf(signTaskPersonCmd.getSignerPersonnelId()));
return SingleResponse.success();
}
@ -183,60 +195,36 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
throw new BizException(ErrorCode.EVAL_PROJECT_ARCHIVED);
}
EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, project.getOrgId());
if (entity == null) {
// 没有数据则新增,并下发签字任务
entity = new EvalProcessControlEntity();
entity.setOrgId(project.getOrgId());
entity.setProjectId(projectId);
entity.setStatusCode(1);
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
entity.setOpinionContent(cmd.getOpinionContent());
evalProcessControlGateway.save(entity);
} else {
entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
entity.setOpinionContent(cmd.getOpinionContent());
evalProcessControlGateway.modify(entity);
if (entity == null || !entity.getReviewerSignatureTaskStatus().equals(SignatureTaskStatusEnum.COMPLETED.getCode())) {
throw new BizException(ErrorCode.UNKNOWN_ERROR.getCode(), "请先完成过程控制人签字");
}
entity.setOrgHeadSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
entity.setOpinionContent(cmd.getOpinionContent());
evalProcessControlGateway.modify(entity);
// 保存签字任务到 eval_sign_task
upsertSignTask(entity.getId(), projectId, project.getOrgId(),
ProjectStageEnum.PROCESS_CONTROL, cmd.getSignTaskPersonCmd());
safetyMessageGateway.saveSignMsg(ProjectStageEnum.PROCESS_CONTROL.getMsg()
ProjectStageEnum.ORG_HEAD_MSG, ProjectStageEnum.PROCESS_CONTROL.getVal(), cmd.getSignTaskPersonCmd());
safetyMessageGateway.saveSignMsg(ProjectStageEnum.ORG_HEAD_MSG
, ProjectStageEnum.PROCESS_CONTROL.getVal(), String.valueOf(projectId)
, String.valueOf(cmd.getSignTaskPersonCmd().getSignerPersonnelId()));
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);
InsertFieldDefaults.applyForUpdate(update);
evalSignTaskMapper.updateById(update);
} else {
EvalSignTaskDO task = new EvalSignTaskDO();
task.setOrgId(orgId);
task.setProjectId(projectId);
task.setNodeCode(stage.getVal());
task.setIssueTime(LocalDateTime.now());
task.setBizRefId(bizRefId);
task.setSignerPersonnelId(person.getSignerPersonnelId());
task.setTaskTitle(stage.getMsg() + "签字任务");
task.setTaskStatusCode(1);
InsertFieldDefaults.apply(task);
evalSignTaskMapper.insert(task);
}
String taskTitle, String state, SignTaskPersonCmd person) {
EvalSignTaskDO task = new EvalSignTaskDO();
task.setOrgId(orgId);
task.setProjectId(projectId);
task.setNodeCode(state);
task.setIssueTime(LocalDateTime.now());
task.setBizRefId(bizRefId);
task.setSignerPersonnelId(person.getSignerPersonnelId());
task.setTaskTitle(taskTitle + "签字任务");
task.setTaskStatusCode(1);
InsertFieldDefaults.apply(task);
evalSignTaskMapper.insert(task);
}
@Override

View File

@ -22,6 +22,12 @@ public class EvalProcessControlCO {
private String reviewerSignatureUrl;
@ApiModelProperty(value = "审核签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成", example = "non_dispatched")
private String reviewerSignatureTaskStatus;
@ApiModelProperty(value = "机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成", example = "non_dispatched")
private String orgHeadSignatureTaskStatus;
@ApiModelProperty(value = "机构负责人")
private Long orgHeadPersonnelId;
@ApiModelProperty(value = "机构负责人签字")
private String orgHeadSignatureUrl;
@ApiModelProperty(value = "审核结果 passed 通过not_passed 未通过", example = "passed")
private String resultCode;

View File

@ -25,4 +25,7 @@ public class EvalProcessControlAssignCmd {
@ApiModelProperty(value = "审核签字任务状态 dispatched 下发non_dispatched 未下发", example = "non_dispatched", hidden = true)
private String reviewerSignatureTaskStatus;
@ApiModelProperty(value = "机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成", example = "non_dispatched", hidden = true)
private String orgHeadSignatureTaskStatus;
}

View File

@ -5,6 +5,7 @@ import lombok.Data;
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
@ -17,11 +18,21 @@ public class EvalProcessControlConfirmCmd {
private Long id;
@ApiModelProperty("项目id")
@NotNull
private Long projectId;
@ApiModelProperty(value = "审核结果 passed 通过not_passed 未通过", example = "passed")
private String resultCode;
@ApiModelProperty("过程控制负责人人员id")
@NotNull
private Long controllerPersonnelId;
@ApiModelProperty("过程控制负责人姓名")
@NotBlank
private String controllerName;
@ApiModelProperty(value = "总体过程控制意见")
@Size(max = 2000)
private String opinionContent;

View File

@ -144,6 +144,12 @@ public class EvalProcessControlSaveCmd {
private String reviewerSignatureUrl;
@ApiModelProperty(value = "审核签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成", example = "non_dispatched")
private String reviewerSignatureTaskStatus;
@ApiModelProperty(value = "机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成", example = "non_dispatched")
private String orgHeadSignatureTaskStatus;
@ApiModelProperty(value = "机构负责人")
private String orgHeadPersonnelId;
@ApiModelProperty(value = "机构负责人签字")
private String orgHeadSignatureUrl;
@ApiModelProperty(value = "过程控制结论编码1通过 2退回", example = "1")
private String resultCode;
@ApiModelProperty(value = "过程控制结论名称:通过/退回", example = "通过")

View File

@ -31,6 +31,13 @@ public enum ProjectStageEnum {
private final String msg;
@Getter
private final String node;
/**
*
*/
public static final String ORG_HEAD = "ORG_HEAD";
public static final String ORG_HEAD_MSG = "机构负责人";
/**
* val
*/

View File

@ -16,6 +16,12 @@ public class EvalProcessControlEntity {
private String reviewerSignatureUrl;
/** 审核签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成 */
private String reviewerSignatureTaskStatus;
/** 机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成 */
private String orgHeadSignatureTaskStatus;
/** 机构负责人 */
private Long orgHeadPersonnelId;
/** 机构负责人签字 */
private String orgHeadSignatureUrl;
private Integer precheckPassFlag;
private String resultCode;
private String resultName;

View File

@ -17,6 +17,12 @@ public class EvalProcessControlDO {
private String reviewerSignatureUrl;
/** 审核签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成 */
private String reviewerSignatureTaskStatus;
/** 机构负责人签字任务状态 dispatched 下发non_dispatched 未下发 , completed 已完成 */
private String orgHeadSignatureTaskStatus;
/** 机构负责人 */
private Long orgHeadPersonnelId;
/** 机构负责人签字 */
private String orgHeadSignatureUrl;
/** 前7节点是否全部完成1是 2否示例2 */
private Integer precheckPassFlag;
/** 过程控制结论编码1通过 2退回示例1 */