From dfad1177eec644153fb8c676e72ee543740c06b4 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 17 Nov 2025 17:36:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(erp):=20=E6=96=B0=E5=A2=9E=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=8F=98=E6=9B=B4=E7=BC=96=E5=8F=B7=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在ErpProjectChange、ErpProjectChangeBo和ErpProjectChangeVo中新增projectChangeCode字段 - 更新ErpProjectChangeMapper.xml,查询和更新语句中加入projectChangeCode字段 - 在ErpProjectChangeServiceImpl的查询条件中添加projectChangeCode的匹配逻辑 - 修改变更进度查询,使用连表查询带出项目计划阶段信息,提高数据完整性和查询效率 --- .../dromara/oa/erp/domain/ErpProjectChange.java | 5 +++++ .../oa/erp/domain/bo/ErpProjectChangeBo.java | 5 +++++ .../oa/erp/domain/vo/ErpProjectChangeVo.java | 6 ++++++ .../service/impl/ErpProjectChangeServiceImpl.java | 9 +++------ .../mapper/oa/erp/ErpProjectChangeMapper.xml | 15 +++++++++++---- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectChange.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectChange.java index 74a25485..7921a1d5 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectChange.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectChange.java @@ -31,6 +31,11 @@ public class ErpProjectChange extends TenantEntity { @TableId(value = "project_change_id", type = IdType.ASSIGN_ID) private Long projectChangeId; + /** + * 项目变更编号 + */ + private String projectChangeCode; + /** * 项目ID */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectChangeBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectChangeBo.java index 209fb1d1..e47ceaa0 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectChangeBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectChangeBo.java @@ -34,6 +34,11 @@ public class ErpProjectChangeBo extends BaseEntity { @NotNull(message = "项目变更ID不能为空", groups = { EditGroup.class }) private Long projectChangeId; + /** + * 项目变更编号 + */ + private String projectChangeCode; + /** * 项目ID */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectChangeVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectChangeVo.java index c548b6ca..c2a65f33 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectChangeVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectChangeVo.java @@ -41,6 +41,12 @@ public class ErpProjectChangeVo implements Serializable { @ExcelProperty(value = "项目变更ID") private Long projectChangeId; + /** + * 项目变更编号 + */ + @ExcelProperty(value = "项目变更编号") + private String projectChangeCode; + /** * 项目ID */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectChangeServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectChangeServiceImpl.java index b29a493b..1e08b71b 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectChangeServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectChangeServiceImpl.java @@ -152,6 +152,7 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService { .selectAll(ErpProjectChange.class) .eq(ErpProjectChange::getDelFlag, "0") .eq(bo.getProjectId() != null, ErpProjectChange::getProjectId, bo.getProjectId()) + .eq(StringUtils.isNotBlank(bo.getProjectChangeCode()), ErpProjectChange::getProjectChangeCode, bo.getProjectChangeCode()) .eq(StringUtils.isNotBlank(bo.getProjectCode()), ErpProjectChange::getProjectCode, bo.getProjectCode()) .like(StringUtils.isNotBlank(bo.getProjectName()), ErpProjectChange::getProjectName, bo.getProjectName()) .eq(StringUtils.isNotBlank(bo.getProjectCategory()), ErpProjectChange::getProjectCategory, bo.getProjectCategory()) @@ -376,12 +377,8 @@ public class ErpProjectChangeServiceImpl implements IErpProjectChangeService { } vo.setBudgetList(budgetList); - // 查询上一次变更的进度变更明细作为参考 - List lastProgressList = changeProgressMapper.selectList( - Wrappers.lambdaQuery() - .eq(ErpProjectChangeProgress::getProjectChangeId, lastChange.getProjectChangeId()) - .orderByAsc(ErpProjectChangeProgress::getSortOrder) - ); + // 查询上一次变更的进度变更明细作为参考(连表查询项目计划阶段,带出 projectPhases 字段) + List lastProgressList = changeProgressMapper.selectProgressWithStageInfo(lastChange.getProjectChangeId()); List progressList = new ArrayList<>(); // 将上一次的变更后时间作为本次的原计划时间 diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectChangeMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectChangeMapper.xml index 9db0fd87..1a7d3f96 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectChangeMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectChangeMapper.xml @@ -7,7 +7,7 @@ - select t.project_change_id, t.tenant_id, t.project_id, t.project_code, t.project_name, t.project_category, + select t.project_change_id, t.project_change_code, t.tenant_id, t.project_id, t.project_code, t.project_name, t.project_category, t.change_type, t.change_number, t.project_manager_id, t.dept_head_id, t.responsible_vp_id, t.apply_change_date, t.contract_amount, t.contract_net_amount, t.current_status, t.change_reason, t.follow_up_work, t.project_change_status, t.flow_status, t.remark, t.active_flag, t.del_flag, @@ -45,7 +45,7 @@ - select project_change_id, tenant_id, project_id, project_code, project_name, project_category, change_type, change_number, project_manager_id, project_manager_name, dept_head_id, dept_head_name, responsible_vp_id, responsible_vp_name, apply_change_date, contract_amount, contract_net_amount, current_status, change_reason, follow_up_work, project_change_status, flow_status, remark, active_flag, del_flag, create_dept, create_by, create_time, update_by, update_time + select project_change_id, project_change_code, tenant_id, project_id, project_code, project_name, project_category, change_type, change_number, project_manager_id, project_manager_name, dept_head_id, dept_head_name, responsible_vp_id, responsible_vp_name, apply_change_date, contract_amount, contract_net_amount, current_status, change_reason, follow_up_work, project_change_status, flow_status, remark, active_flag, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_project_change t ${ew.getCustomSqlSegment} @@ -73,6 +73,8 @@ project_id, + project_change_code, + project_code, project_name, @@ -135,6 +137,8 @@ #{item.projectId}, + #{item.projectChangeCode}, + #{item.projectCode}, #{item.projectName}, @@ -204,6 +208,9 @@ project_id = #{item.projectId}, + + project_change_code = #{item.projectChangeCode}, + project_code = #{item.projectCode},