Merge remote-tracking branch 'origin/dev-tmp1' into dev-tmp1

dev-tmp1
luotaiqian 2026-08-27 16:43:54 +08:00
commit b7510bd4fd
10 changed files with 42 additions and 2 deletions

View File

@ -116,7 +116,7 @@ public class ClassManagementServiceImpl extends ServiceImpl<ClassManagementMappe
if (entity.getShuffleQuestions() == null) {
entity.setShuffleQuestions(0);
}
entity.setClassCode("C" + entity.getId());
entity.setClassCode("C" + UUID.randomUUID().toString().replace("-", ""));
this.save(entity);
return entity.getId();
}

View File

@ -344,9 +344,11 @@ public class EvalProjectExecutor implements EvalProjectApi {
@Override
public SingleResponse<EvalProjectCO> update(EvalProjectAddCmd cmd) {
evalProjectDomainService.assertControlledNumberUnique(cmd.getControlledNumber(), cmd.getId());
evalProjectMapper.update(new LambdaUpdateWrapper<EvalProjectDO>()
.eq(EvalProjectDO::getId, cmd.getId())
.set(EvalProjectDO::getParticipantsJson, JSON.toJSONString(cmd.getParticipants())));
.set(EvalProjectDO::getParticipantsJson, JSON.toJSONString(cmd.getParticipants()))
.set(EvalProjectDO::getControlledNumber, cmd.getControlledNumber()));
return SingleResponse.success(null);
}

View File

@ -23,6 +23,9 @@ public class EvalProjectCO {
@ApiModelProperty("项目编号")
private String projectNo;
@ApiModelProperty("受控编号")
private String controlledNumber;
@ApiModelProperty("项目名称")
private String projectName;

View File

@ -21,6 +21,9 @@ public class EvalProjectAddCmd {
@ApiModelProperty(value = "项目名称", required = true)
private String projectName;
@ApiModelProperty("受控编号")
private String controlledNumber;
@NotBlank(message = "评价类型不能为空")
@ApiModelProperty(value = "评价类型编码PRE/ACCEPT/STATUS", required = true, example = "PRE")
private String evalTypeCode;

View File

@ -12,6 +12,8 @@ public class EvalProjectEntity {
private Long orgId;
private Long customerId;
private String projectNo;
/** 受控编号 */
private String controlledNumber;
private String projectName;
private String evalTypeCode;
private String customerContactName;

View File

@ -162,6 +162,7 @@ public enum ErrorCode {
EVAL_PROJECT_NO_GENERATE_FAILED("06-02-002", "项目编号生成失败"),
EVAL_PROJECT_CANCELLED("06-02-003", "项目已作废不可修改"),
EVAL_PROJECT_ARCHIVED("06-02-004", "项目已归档不可修改"),
EVAL_PROJECT_CONTROLLED_NUMBER_DUPLICATE("06-02-005", "受控编号已存在"),
// ---- 八节点与签字phase2 P2 ----
EVAL_NODE_FORBIDDEN("06-05-001", "无权限操作该节点"),

View File

@ -23,4 +23,6 @@ public interface EvalProjectGateway {
long countByOrgIdAndProgressStatus(Long orgId, String progressStatus);
void editProjectNode(Long projectId, String val);
EvalProjectEntity findByControlledNumber(String controlledNumber);
}

View File

@ -7,6 +7,7 @@ import org.qinan.safetyeval.domain.gateway.EvalProjectGateway;
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
@ -25,9 +26,20 @@ public class EvalProjectDomainService {
if (entity.getArchiveFlag() == null) {
entity.setArchiveFlag(0);
}
assertControlledNumberUnique(entity.getControlledNumber(), null);
return evalProjectGateway.save(entity);
}
public void assertControlledNumberUnique(String controlledNumber, Long excludeId) {
if (!StringUtils.hasText(controlledNumber)) {
return;
}
EvalProjectEntity found = evalProjectGateway.findByControlledNumber(controlledNumber);
if (found != null && (excludeId == null || !excludeId.equals(found.getId()))) {
throw new BizException(ErrorCode.EVAL_PROJECT_CONTROLLED_NUMBER_DUPLICATE);
}
}
public EvalProjectEntity get(Long id) {
EvalProjectEntity existing = evalProjectGateway.get(id);
if (existing == null) {

View File

@ -14,6 +14,8 @@ public class EvalProjectDO {
private Long orgId;
private Long customerId;
private String projectNo;
/** 受控编号 */
private String controlledNumber;
private String projectName;
private String evalTypeCode;
private String customerContactName;

View File

@ -129,6 +129,19 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway {
return evalProjectMapper.selectCount(wrapper);
}
@Override
public EvalProjectEntity findByControlledNumber(String controlledNumber) {
if (!StringUtils.hasText(controlledNumber)) {
return null;
}
LambdaQueryWrapper<EvalProjectDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EvalProjectDO::getDeleteEnum, "false")
.eq(EvalProjectDO::getControlledNumber, controlledNumber.trim())
.last("limit 1");
EvalProjectDO dataObject = evalProjectMapper.selectOne(wrapper);
return dataObject == null ? null : evalProjectDoConvertor.convertDoToE(dataObject);
}
@Override
public void editProjectNode(Long projectId, String val) {
EvalProjectDO evalProjectDO = evalProjectMapper.selectById(projectId);