From 301f497527edcc8a594dbc8fe79a91ab8eeec079 Mon Sep 17 00:00:00 2001 From: liuhongfeng <291117974@qq.com> Date: Sat, 28 Oct 2023 00:37:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=E5=9B=9E?= =?UTF-8?q?=E6=AC=BE=E8=AE=A1=E5=88=92-=E5=AE=A1=E6=89=B9=E6=9E=9A?= =?UTF-8?q?=E4=B8=BE=E7=B1=BB=20=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91?= =?UTF-8?q?=E5=9B=9E=E6=AC=BE=E8=AE=A1=E5=88=92-=E5=9B=9E=E6=AC=BE?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=9E=9A=E4=B8=BE=E7=B1=BB=20=E3=80=90?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E3=80=91=E5=9B=9E=E6=AC=BE=E8=AE=A1=E5=88=92?= =?UTF-8?q?-=E6=9E=9A=E4=B8=BE=E7=B1=BB=E6=A0=A1=E9=AA=8C=20=E3=80=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=91=E5=9B=9E=E6=AC=BE=E8=AE=A1=E5=88=92?= =?UTF-8?q?-=E9=94=99=E8=AF=AF=E7=A0=81=E8=B0=83=E6=95=B4=20=E3=80=90?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=91=E4=BF=AE=E6=94=B9=E5=9B=9E=E6=AC=BE?= =?UTF-8?q?=E8=AE=A1=E5=88=92-=E5=88=9B=E5=BB=BA=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=90=88=E5=90=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/crm/enums/AuditStatusEnum.java | 61 +++++++++++++++++++ .../module/crm/enums/ErrorCodeConstants.java | 7 ++- .../module/crm/enums/ReturnTypeEnum.java | 8 +++ .../admin/receivable/vo/ReceivableBaseVO.java | 5 +- .../receivable/ReceivableServiceImpl.java | 26 ++++++++ 5 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/AuditStatusEnum.java create mode 100644 yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ReturnTypeEnum.java diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/AuditStatusEnum.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/AuditStatusEnum.java new file mode 100644 index 000000000..ce04c18a1 --- /dev/null +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/AuditStatusEnum.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.crm.enums; + +import cn.iocoder.yudao.framework.common.core.IntArrayValuable; + +import java.util.Arrays; + +/** + * 流程审批状态枚举类 + * 0 未审核 1 审核通过 2 审核拒绝 3 审核中 4 已撤回 + * @author 赤焰 + */ +public enum AuditStatusEnum implements IntArrayValuable { + /** + * 未审批 + */ + AUDIT_NEW(0, "未审批"), + /** + * 审核通过 + */ + AUDIT_FINISH(0, "审核通过"), + /** + * 审核拒绝 + */ + AUDIT_REJECT(2, "审核拒绝"), + /** + * 审核中 + */ + AUDIT_DOING(3, "审核中"), + /** + * 已撤回 + */ + AUDIT_RETURN(4, "已撤回"); + + private final Integer value; + private final String desc; + + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(AuditStatusEnum::getValue).toArray(); + + /** + * + * @param value + * @param desc + */ + AuditStatusEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + public Integer getValue() { + return value; + } + + public String getDesc() { + return desc; + } + + @Override + public int[] array() { + return ARRAYS; + } +} diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java index 07d9b6d6a..ea0f2d51f 100644 --- a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java @@ -21,9 +21,10 @@ public interface ErrorCodeConstants { // ========== 联系人管理 1-020-003-000 ========== ErrorCode CONTACT_NOT_EXISTS = new ErrorCode(1_020_003_000, "联系人不存在"); - // TODO @liuhongfeng:错误码分段; - ErrorCode RECEIVABLE_NOT_EXISTS = new ErrorCode(1_030_000_001, "回款管理不存在"); + // ========== 回款管理 1-020-004-000 ========== + ErrorCode RECEIVABLE_NOT_EXISTS = new ErrorCode(1_020_004_000, "回款管理不存在"); - ErrorCode RECEIVABLE_PLAN_NOT_EXISTS = new ErrorCode(1_040_000_001, "回款计划不存在"); + // ========== 合同管理 1-020-005-000 ========== + ErrorCode RECEIVABLE_PLAN_NOT_EXISTS = new ErrorCode(1_020_005_000, "回款计划不存在"); } diff --git a/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ReturnTypeEnum.java b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ReturnTypeEnum.java new file mode 100644 index 000000000..d9ca477be --- /dev/null +++ b/yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/ReturnTypeEnum.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.crm.enums; + +/** + * @author 赤焰 + */ + +public enum ReturnTypeEnum { +} diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java index bb0bc5745..8aa43e50b 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/receivable/vo/ReceivableBaseVO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.crm.controller.admin.receivable.vo; +import cn.iocoder.yudao.framework.common.validation.InEnum; +import cn.iocoder.yudao.module.crm.enums.AuditStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -33,9 +35,8 @@ public class ReceivableBaseVO { @Schema(description = "合同ID", example = "30305") private Long contractId; - // TODO @liuhongfeng:这个字段,可以写个枚举,然后 InEnum 去校验下; - // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的 @Schema(description = "审批状态", example = "1") + @InEnum(AuditStatusEnum.class) private Integer checkStatus; // TODO @liuhongfeng:这个字段,应该不是前端传递的噢,而是后端自己生成的,所以不适合放在 base 里面; diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java index 94b25f6ed..39de05fe1 100644 --- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java +++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/ReceivableServiceImpl.java @@ -2,14 +2,19 @@ package cn.iocoder.yudao.module.crm.service.receivable; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableCreateReqVO; import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableExportReqVO; import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivablePageReqVO; import cn.iocoder.yudao.module.crm.controller.admin.receivable.vo.ReceivableUpdateReqVO; import cn.iocoder.yudao.module.crm.convert.receivable.ReceivableConvert; +import cn.iocoder.yudao.module.crm.dal.dataobject.contract.ContractDO; import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.ReceivableDO; import cn.iocoder.yudao.module.crm.dal.mysql.receivable.ReceivableMapper; +import cn.iocoder.yudao.module.crm.enums.AuditStatusEnum; +import cn.iocoder.yudao.module.crm.service.contract.ContractService; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -18,6 +23,7 @@ import java.util.Collection; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.CONTRACT_NOT_EXISTS; import static cn.iocoder.yudao.module.crm.enums.ErrorCodeConstants.RECEIVABLE_NOT_EXISTS; /** @@ -31,6 +37,8 @@ public class ReceivableServiceImpl implements ReceivableService { @Resource private ReceivableMapper receivableMapper; + @Resource + private ContractService contractService; @Override public Long createReceivable(ReceivableCreateReqVO createReqVO) { @@ -38,11 +46,29 @@ public class ReceivableServiceImpl implements ReceivableService { // TODO @liuhongfeng:其它类似 customerId、contractId 也需要去校验; // 插入 ReceivableDO receivable = ReceivableConvert.INSTANCE.convert(createReqVO); + + receivable.setCheckStatus(AuditStatusEnum.AUDIT_NEW.getValue()); + //校验 + checkReceivable(receivable); + receivableMapper.insert(receivable); // 返回 return receivable.getId(); } + private void checkReceivable(ReceivableDO receivable) { + + if(ObjectUtil.isNull(receivable.getContractId())){ + throw exception(CONTRACT_NOT_EXISTS); + } + + ContractDO contract = contractService.getContract(receivable.getContractId()); + if(ObjectUtil.isNull(contract)){ + throw exception(CONTRACT_NOT_EXISTS); + } + + } + @Override public void updateReceivable(ReceivableUpdateReqVO updateReqVO) { // 校验存在