feat: 签字

dev
zhanglei 2026-07-24 11:14:01 +08:00
parent 7aa13fef12
commit 703a4d5264
5 changed files with 158 additions and 0 deletions

View File

@ -0,0 +1,54 @@
package org.qinan.safetyeval.app.convertor;
import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.qinan.safetyeval.client.co.institution.EvalSignTaskCO;
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskPageQuery;
import org.qinan.safetyeval.client.dto.institution.EvalSignTaskSaveCmd;
import org.qinan.safetyeval.domain.constant.SignTaskStatusEnum;
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
import org.qinan.safetyeval.domain.query.EvalSignTaskQuery;
import java.util.List;
@Mapper(componentModel = "spring")
public interface EvalSignTaskCmdConvertor {
@Mapping(target = "id", ignore = true)
@Mapping(target = "orgId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "projectId", expression = "java(cmd.getProjectId() == null ? null : Long.parseLong(cmd.getProjectId()))")
@Mapping(target = "bizRefId", expression = "java(cmd.getBizRefId() == null || cmd.getBizRefId().isEmpty() ? null : Long.parseLong(cmd.getBizRefId()))")
@Mapping(target = "signerPersonnelId", expression = "java(cmd.getSignerPersonnelId() == null || cmd.getSignerPersonnelId().isEmpty() ? null : Long.parseLong(cmd.getSignerPersonnelId()))")
EvalSignTaskEntity convertSaveCmdToE(EvalSignTaskSaveCmd cmd);
@Mapping(target = "pageNum", source = "current")
@Mapping(target = "pageSize", source = "size")
@Mapping(target = "orgId", ignore = true)
@Mapping(target = "projectId", expression = "java(query.getProjectId() == null || query.getProjectId().isEmpty() ? null : Long.parseLong(query.getProjectId()))")
@Mapping(target = "signerPersonnelId", expression = "java(query.getSignerPersonnelId() == null || query.getSignerPersonnelId().isEmpty() ? null : Long.parseLong(query.getSignerPersonnelId()))")
EvalSignTaskQuery convertPageQueryToQ(EvalSignTaskPageQuery query);
@Mapping(target = "id", expression = "java(entity.getId() == null ? null : String.valueOf(entity.getId()))")
@Mapping(target = "orgId", expression = "java(entity.getOrgId() == null ? null : String.valueOf(entity.getOrgId()))")
@Mapping(target = "projectId", expression = "java(entity.getProjectId() == null ? null : String.valueOf(entity.getProjectId()))")
@Mapping(target = "bizRefId", expression = "java(entity.getBizRefId() == null ? null : String.valueOf(entity.getBizRefId()))")
@Mapping(target = "signerPersonnelId", expression = "java(entity.getSignerPersonnelId() == null ? null : String.valueOf(entity.getSignerPersonnelId()))")
@Mapping(target = "taskStatusName", ignore = true)
EvalSignTaskCO convertEToCO(EvalSignTaskEntity entity);
List<EvalSignTaskCO> convertEListToCOList(List<EvalSignTaskEntity> list);
@AfterMapping
default void fillEnumNames(EvalSignTaskEntity entity, @MappingTarget EvalSignTaskCO co) {
if (entity == null || co == null) {
return;
}
SignTaskStatusEnum status = SignTaskStatusEnum.ofCode(entity.getTaskStatusCode());
if (status != null) {
co.setTaskStatusName(status.getValue());
}
}
}

View File

@ -0,0 +1,13 @@
package org.qinan.safetyeval.client.co.institution;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class EvalSignTaskEnumsCO {
@ApiModelProperty("任务状态")
private List<EnumOptionCO> taskStatus;
}

View File

@ -0,0 +1,40 @@
package org.qinan.safetyeval.domain.constant;
/**
* 1 2 3
*/
public enum SignTaskStatusEnum {
PENDING(1, "待签"),
SIGNED(2, "已签"),
CANCELLED(3, "已作废"),
;
private final int code;
private final String value;
SignTaskStatusEnum(int code, String value) {
this.code = code;
this.value = value;
}
public int getCode() {
return code;
}
public String getValue() {
return value;
}
public static SignTaskStatusEnum ofCode(Integer code) {
if (code == null) {
return null;
}
for (SignTaskStatusEnum item : values()) {
if (item.code == code) {
return item;
}
}
return null;
}
}

View File

@ -0,0 +1,38 @@
package org.qinan.safetyeval.domain.service;
import org.qinan.safetyeval.domain.constant.SignTaskStatusEnum;
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.EvalSignTaskGateway;
import org.qinan.safetyeval.domain.query.EvalSignTaskQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class EvalSignTaskDomainService {
@Resource
private EvalSignTaskGateway evalSignTaskGateway;
public EvalSignTaskEntity add(EvalSignTaskEntity entity) {
if (entity.getTaskStatusCode() == null) {
entity.setTaskStatusCode(SignTaskStatusEnum.PENDING.getCode());
}
return evalSignTaskGateway.save(entity);
}
public EvalSignTaskEntity get(Long id) {
EvalSignTaskEntity existing = evalSignTaskGateway.get(id);
if (existing == null) {
throw new BizException(ErrorCode.EVAL_SIGN_TASK_NOT_FOUND);
}
return existing;
}
public PageResult<EvalSignTaskEntity> page(EvalSignTaskQuery query) {
return evalSignTaskGateway.page(query);
}
}

View File

@ -0,0 +1,13 @@
package org.qinan.safetyeval.infrastructure.convertor;
import org.mapstruct.Mapper;
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
import org.qinan.safetyeval.infrastructure.dataobject.EvalSignTaskDO;
@Mapper(componentModel = "spring")
public interface EvalSignTaskDoConvertor {
EvalSignTaskDO convertEToDo(EvalSignTaskEntity entity);
EvalSignTaskEntity convertDoToE(EvalSignTaskDO dataObject);
}