diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalSignTaskCmdConvertor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalSignTaskCmdConvertor.java new file mode 100644 index 0000000..a03108c --- /dev/null +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/convertor/EvalSignTaskCmdConvertor.java @@ -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 convertEListToCOList(List 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()); + } + } +} diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSignTaskEnumsCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSignTaskEnumsCO.java new file mode 100644 index 0000000..f30e7c7 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalSignTaskEnumsCO.java @@ -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 taskStatus; +} diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/SignTaskStatusEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/SignTaskStatusEnum.java new file mode 100644 index 0000000..4179c57 --- /dev/null +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/SignTaskStatusEnum.java @@ -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; + } +} diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSignTaskDomainService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSignTaskDomainService.java new file mode 100644 index 0000000..e50f80c --- /dev/null +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSignTaskDomainService.java @@ -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 page(EvalSignTaskQuery query) { + return evalSignTaskGateway.page(query); + } +} diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalSignTaskDoConvertor.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalSignTaskDoConvertor.java new file mode 100644 index 0000000..d37814d --- /dev/null +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalSignTaskDoConvertor.java @@ -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); +}