diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java index 05ddfff4..7af899dd 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmQuoteInfo.java @@ -236,4 +236,10 @@ public class CrmQuoteInfo extends TenantEntity { private List items; + /** + * 创建者名称 + */ + @TableField(exist = false ) + private String createName; + } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmSupplierInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmSupplierInfo.java index af9fc8b0..395a9782 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmSupplierInfo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmSupplierInfo.java @@ -174,5 +174,11 @@ public class CrmSupplierInfo extends TenantEntity { @TableField(exist = false) private String ownerDeptName; + /** + * 创建者名称 + */ + @TableField(exist = false) + private String createName; + } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java index 5d7d0aeb..404d17a3 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmQuoteInfoVo.java @@ -275,4 +275,19 @@ public class CrmQuoteInfoVo implements Serializable { @ExcelProperty(value = "报价单子表-物料明细") private List itemsVo; + + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建者名称 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmSupplierInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmSupplierInfoVo.java index e76123f4..95531d5c 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmSupplierInfoVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/vo/CrmSupplierInfoVo.java @@ -205,5 +205,19 @@ public class CrmSupplierInfoVo implements Serializable { @ExcelIgnore private List attachmentList; + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建者名称 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java index b7b79b11..edf01aea 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmQuoteInfoServiceImpl.java @@ -75,7 +75,7 @@ public class CrmQuoteInfoServiceImpl implements ICrmQuoteInfoService { @Override public TableDataInfo queryPageList(CrmQuoteInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectCustomCrmQuoteInfoVoList(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlan.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlan.java index 27e3d0de..b6d40df9 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlan.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlan.java @@ -84,4 +84,12 @@ public class ErpProjectPlan extends TenantEntity { private String delFlag; + /** + * 创建者名称 + */ + @TableField(exist = false ) + private String createName; + + + } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanVo.java index 57ecddb4..10b77d62 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanVo.java @@ -1,5 +1,7 @@ package org.dromara.oa.erp.domain.vo; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.oa.erp.domain.ErpProjectPlan; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; @@ -126,4 +128,20 @@ public class ErpProjectPlanVo implements Serializable { @ExcelProperty(value = "合同名称") private String contractName; + + /** + * 创建者 + */ + private Long createBy; + + /** + * 创建者名称 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + } diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java index 1208e561..19d841dd 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanServiceImpl.java @@ -235,7 +235,22 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { * 保存前的数据校验 */ private void validEntityBeforeSave(ErpProjectPlan entity){ - //TODO 做一些数据校验,如唯一约束 + // 唯一性校验:一个项目只能有一个项目计划 + Long projectId = entity.getProjectId(); + if (projectId == null) { + throw new ServiceException("项目不能为空"); + } + MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectPlan.class) + .eq(ErpProjectPlan::getProjectId, projectId) + .eq(ErpProjectPlan::getDelFlag, "0"); + // 更新时排除自身ID + if (entity.getProjectPlanId() != null) { + lqw.ne(ErpProjectPlan::getProjectPlanId, entity.getProjectPlanId()); + } + long cnt = baseMapper.selectCount(lqw); + if (cnt > 0) { + throw new ServiceException("该项目已存在项目计划,一个项目只能有一个项目计划"); + } } /** diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/crm/CrmQuoteInfoMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/crm/CrmQuoteInfoMapper.xml index 01a663b7..dfa4fb35 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/crm/CrmQuoteInfoMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/crm/CrmQuoteInfoMapper.xml @@ -7,20 +7,32 @@ diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanMapper.xml index 3e86bb18..97abedb8 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanMapper.xml @@ -7,55 +7,57 @@ - select t.project_plan_id, - t.tenant_id, - t.project_id, - t.manager_id, - t.charge_id, - t.payment_method, - t.project_plan_status, - t.flow_status, - t.sort_order, - t.contract_id, - t.remark, - t.active_flag, - t.del_flag, - t.create_dept, - t.create_by, - t.create_time, - t.update_by, + select t.project_plan_id, + t.tenant_id, + t.project_id, + t.manager_id, + t.charge_id, + t.payment_method, + t.project_plan_status, + t.flow_status, + t.sort_order, + t.contract_id, + t.remark, + t.active_flag, + t.del_flag, + t.create_dept, + t.create_by, + t.create_time, + t.update_by, t.update_time, p.project_name, u1.nick_name as managerName, @@ -112,23 +114,23 @@