From 35f68d7584689491579c0b6ba692111b481aa771 Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 3 Apr 2026 17:53:28 +0800 Subject: [PATCH] =?UTF-8?q?1.1.10=20=E6=8A=8A=E9=A1=B9=E7=9B=AE=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E9=98=B6=E6=AE=B5=E7=9A=84=E5=9B=9E=E6=AC=BE=E5=85=B3?= =?UTF-8?q?=E8=81=94=E4=BB=8E=E5=AD=97=E5=85=B8=E5=AD=97=E6=AE=B5=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=9B=9E=E6=AC=BE=E9=98=B6=E6=AE=B5=E4=B8=BB=E9=94=AE?= =?UTF-8?q?=EF=BC=88=E5=90=8E=E7=AB=AF=20SQL=E8=81=94=E8=A1=A8=E3=80=81?= =?UTF-8?q?=E5=A4=9A=E9=A1=B5=E9=9D=A2=E5=89=8D=E7=AB=AF=E4=B8=8E=E5=90=88?= =?UTF-8?q?=E5=90=8C=E5=9B=9E=E6=AC=BE=E9=80=BB=E8=BE=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/erp/domain/ErpProjectPlanStage.java | 9 ++- .../erp/domain/bo/ErpProjectPlanStageBo.java | 9 ++- .../vo/ContractCollectionStageDetailVo.java | 15 +++- .../erp/domain/vo/ErpProjectPlanStageVo.java | 19 ++++- .../oa/erp/mapper/ErpProjectPlanMapper.java | 6 ++ .../impl/ErpProjectPlanServiceImpl.java | 79 +++++++------------ .../impl/ErpProjectPlanStageServiceImpl.java | 5 +- .../mapper/oa/erp/ErpProjectPlanMapper.xml | 40 +++++++++- .../oa/erp/ErpProjectPlanStageMapper.xml | 16 ++-- 9 files changed, 127 insertions(+), 71 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlanStage.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlanStage.java index 251f9ad0..87623e3b 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlanStage.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/ErpProjectPlanStage.java @@ -56,9 +56,9 @@ public class ErpProjectPlanStage extends TenantEntity { private Date planEndTime; /** - * 回款阶段 + * 付款节点ID,关联 base_payment_stage.payment_stage_id */ - private String collectionStage; + private Long paymentStageId; /** * 预计回款比例(%) @@ -125,6 +125,11 @@ public class ErpProjectPlanStage extends TenantEntity { */ private BigDecimal actualRepaymentAmount; + /** + * 实际回款比例(%) + */ + private BigDecimal actualRepaymentRate; + /** * 回款确认人 */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectPlanStageBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectPlanStageBo.java index f73f8425..63d7db69 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectPlanStageBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectPlanStageBo.java @@ -55,9 +55,9 @@ public class ErpProjectPlanStageBo extends BaseEntity { private Date planEndTime; /** - * 回款阶段 + * 付款节点ID,关联 base_payment_stage.payment_stage_id */ - private String collectionStage; + private Long paymentStageId; /** * 预计回款比例(%) @@ -124,6 +124,11 @@ public class ErpProjectPlanStageBo extends BaseEntity { */ private BigDecimal actualRepaymentAmount; + /** + * 实际回款比例(%) + */ + private BigDecimal actualRepaymentRate; + /** * 回款确认人 */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ContractCollectionStageDetailVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ContractCollectionStageDetailVo.java index b61e1cda..63255dfc 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ContractCollectionStageDetailVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ContractCollectionStageDetailVo.java @@ -15,6 +15,9 @@ public class ContractCollectionStageDetailVo { private Long contractId; private Long paymentStageId; private String stageName; + /** + * base_payment_stage.collection_stage(字典/提示字段,非计划表字段) + */ private String collectionStage; private BigDecimal paymentPercentage; @@ -23,12 +26,22 @@ public class ContractCollectionStageDetailVo { private String paymentDescription; /** - * 项目计划阶段回款确认信息(按 collectionStage 匹配) + * 项目计划阶段回款确认信息(按 payment_stage_id 与合同付款节点关联) */ private Long planStageId; private Long repaymentRate; + /** + * 预计回款金额(用于前端计算实际回款比例) + */ + private Long repaymentAmount; private Date receivableDate; private BigDecimal actualRepaymentAmount; + + /** + * 实际回款比例(%),与 erp_project_plan_stage 持久化字段一致 + */ + private BigDecimal actualRepaymentRate; + private Long collectionConfirmUserId; private Date collectionConfirmTime; private String collectionConfirmStatus; diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanStageVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanStageVo.java index fa6ce7d7..42a418ab 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanStageVo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/vo/ErpProjectPlanStageVo.java @@ -69,11 +69,16 @@ public class ErpProjectPlanStageVo implements Serializable { private Date planEndTime; /** - * 回款阶段 + * 付款节点ID,关联 base_payment_stage.payment_stage_id */ - @ExcelProperty(value = "回款阶段") - @ExcelDictFormat(dictType = " collection_stage") - private String collectionStage; + @ExcelProperty(value = "付款节点ID") + private Long paymentStageId; + + /** + * 付款节点名称(关联 base_payment_stage.stage_name,仅展示) + */ + @ExcelProperty(value = "回款阶段名称") + private String paymentStageName; /** * 预计回款比例(%) @@ -154,6 +159,12 @@ public class ErpProjectPlanStageVo implements Serializable { @ExcelProperty(value = "实际回款金额") private BigDecimal actualRepaymentAmount; + /** + * 实际回款比例(%) + */ + @ExcelProperty(value = "实际回款比例(%)") + private BigDecimal actualRepaymentRate; + /** * 回款确认人 */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectPlanMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectPlanMapper.java index 4227c1c5..68b5af92 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectPlanMapper.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/mapper/ErpProjectPlanMapper.java @@ -12,6 +12,7 @@ import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.oa.erp.domain.ErpProjectPlan; import org.dromara.oa.erp.domain.bo.ErpProjectPlanBo; import org.dromara.oa.erp.domain.vo.ContractCollectionPageVo; +import org.dromara.oa.erp.domain.vo.ContractCollectionStageDetailVo; import org.dromara.oa.erp.domain.vo.ErpProjectPlanVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -139,5 +140,10 @@ public interface ErpProjectPlanMapper extends BaseMapperPlus selectContractCollectionPage(@Param("page") Page page, @Param("bo") ErpProjectPlanBo bo); + /** + * 合同回款阶段明细:合同付款节点 + 回款阶段字典 + 项目计划阶段确认信息 + * 计划阶段 payment_stage_id 与合同付款方式 payment_stage_id 一致时关联 + */ + List selectContractCollectionStageDetail(@Param("projectPlanId") Long projectPlanId); } 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 1d447bfa..b71e94af 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 @@ -22,7 +22,6 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.oa.erp.constant.ProjectCategoryConstant; import org.dromara.oa.base.domain.BasePaymentStage; -import org.dromara.oa.erp.domain.ErpContractPaymentMethod; import org.dromara.oa.erp.domain.ErpProjectPlan; import org.dromara.oa.erp.domain.ErpProjectPlanStage; import org.dromara.oa.erp.domain.bo.ErpProjectPlanBo; @@ -31,7 +30,6 @@ import org.dromara.oa.erp.domain.vo.ContractCollectionPageVo; import org.dromara.oa.erp.domain.vo.ContractCollectionStageDetailVo; import org.dromara.oa.erp.domain.vo.ErpProjectPlanStageVo; import org.dromara.oa.erp.domain.vo.ErpProjectPlanVo; -import org.dromara.oa.erp.mapper.ErpContractPaymentMethodMapper; import org.dromara.oa.erp.mapper.ErpProjectPlanMapper; import org.dromara.oa.erp.mapper.ErpProjectPlanStageMapper; import org.dromara.oa.erp.service.IErpProjectPlanService; @@ -44,6 +42,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -63,7 +62,6 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { private final ErpProjectPlanMapper baseMapper; private final ErpProjectPlanStageMapper planStageMapper; - private final ErpContractPaymentMethodMapper contractPaymentMethodMapper; @DubboReference(timeout = 30000) private RemoteWorkflowService remoteWorkflowService; @@ -87,8 +85,11 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { // 查询项目计划阶段列表 MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectPlanStage.class) .selectAll(ErpProjectPlanStage.class) + .selectAs(BasePaymentStage::getStageName, ErpProjectPlanStageVo::getPaymentStageName) + .leftJoin(BasePaymentStage.class, BasePaymentStage::getPaymentStageId, ErpProjectPlanStage::getPaymentStageId) .eq("t.del_flag", "0") - .eq(projectPlanId != null, ErpProjectPlanStage::getProjectPlanId, projectPlanId); + .eq(projectPlanId != null, ErpProjectPlanStage::getProjectPlanId, projectPlanId) + .orderByAsc(ErpProjectPlanStage::getSortOrder); List planStageList = planStageMapper.selectVoList(lqw); projectPlanVo.setPlanStageList(planStageList); return projectPlanVo; @@ -371,6 +372,8 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { public List queryCollectionStageList(Long projectPlanId) { MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectPlanStage.class) .selectAll(ErpProjectPlanStage.class) + .selectAs(BasePaymentStage::getStageName, ErpProjectPlanStageVo::getPaymentStageName) + .leftJoin(BasePaymentStage.class, BasePaymentStage::getPaymentStageId, ErpProjectPlanStage::getPaymentStageId) .eq("t.del_flag", "0") .eq(ErpProjectPlanStage::getProjectPlanId, projectPlanId) .orderByAsc(ErpProjectPlanStage::getSortOrder); @@ -388,6 +391,7 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { } stage.setReceivableDate(bo.getReceivableDate()); stage.setActualRepaymentAmount(bo.getActualRepaymentAmount()); + stage.setActualRepaymentRate(calcActualRepaymentRate(bo.getActualRepaymentAmount(), stage.getRepaymentAmount())); stage.setCollectionConfirmRemark(bo.getCollectionConfirmRemark()); stage.setCollectionConfirmUserId(LoginHelper.getUserId()); stage.setCollectionConfirmTime(new Date()); @@ -415,6 +419,24 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { return planStageMapper.updateById(stage) > 0; } + /** + * 计算 实际回款比例(%) = 实际回款金额 / 预计回款金额 * 100 + * + * @param actualRepaymentAmount 实际回款金额 + * @param repaymentAmount 预计回款金额 + */ + private BigDecimal calcActualRepaymentRate(BigDecimal actualRepaymentAmount, Long repaymentAmount) { + BigDecimal actual = actualRepaymentAmount == null ? BigDecimal.ZERO : actualRepaymentAmount; + BigDecimal expected = repaymentAmount == null ? BigDecimal.ZERO : BigDecimal.valueOf(repaymentAmount); + if (expected.compareTo(BigDecimal.ZERO) <= 0) { + return BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); + } + return actual + .divide(expected, 6, RoundingMode.HALF_UP) + .multiply(BigDecimal.valueOf(100)) + .setScale(2, RoundingMode.HALF_UP); + } + @Override public TableDataInfo queryContractCollectionPage(ErpProjectPlanBo bo, PageQuery pageQuery) { Page result = baseMapper.selectContractCollectionPage(pageQuery.build(), bo); @@ -423,54 +445,7 @@ public class ErpProjectPlanServiceImpl implements IErpProjectPlanService { @Override public List queryContractCollectionStageDetail(Long projectPlanId) { - ErpProjectPlan plan = baseMapper.selectById(projectPlanId); - if (plan == null || plan.getContractId() == null) { - return List.of(); - } - - MPJLambdaWrapper contractStageLqw = JoinWrappers.lambda(ErpContractPaymentMethod.class) - .selectAs(ErpContractPaymentMethod::getPaymentMethodId, ContractCollectionStageDetailVo::getPaymentMethodId) - .selectAs(ErpContractPaymentMethod::getContractId, ContractCollectionStageDetailVo::getContractId) - .selectAs(ErpContractPaymentMethod::getPaymentStageId, ContractCollectionStageDetailVo::getPaymentStageId) - .selectAs(BasePaymentStage::getStageName, ContractCollectionStageDetailVo::getStageName) - .selectAs(BasePaymentStage::getCollectionStage, ContractCollectionStageDetailVo::getCollectionStage) - .selectAs(ErpContractPaymentMethod::getPaymentPercentage, ContractCollectionStageDetailVo::getPaymentPercentage) - .selectAs(ErpContractPaymentMethod::getPaymentAmount, ContractCollectionStageDetailVo::getPaymentAmount) - .selectAs(ErpContractPaymentMethod::getPaymentDeadline, ContractCollectionStageDetailVo::getPaymentDeadline) - .selectAs(ErpContractPaymentMethod::getPaymentDescription, ContractCollectionStageDetailVo::getPaymentDescription) - .leftJoin(BasePaymentStage.class, BasePaymentStage::getPaymentStageId, ErpContractPaymentMethod::getPaymentStageId) - .eq(ErpContractPaymentMethod::getContractId, plan.getContractId()) - .eq(ErpContractPaymentMethod::getDelFlag, "0") - .orderByAsc(ErpContractPaymentMethod::getSortOrder); - List contractStages = contractPaymentMethodMapper.selectJoinList(ContractCollectionStageDetailVo.class, contractStageLqw); - - List planStages = planStageMapper.selectList( - JoinWrappers.lambda(ErpProjectPlanStage.class) - .eq(ErpProjectPlanStage::getProjectPlanId, projectPlanId) - .eq(ErpProjectPlanStage::getDelFlag, "0") - ); - // erp_project_plan_stage.collection_stage 实际存的是 paymentStageId(字符串) - Map planStageMap = planStages.stream() - .filter(i -> StringUtils.isNotBlank(i.getCollectionStage())) - .collect(Collectors.toMap(ErpProjectPlanStage::getCollectionStage, i -> i, (a, b) -> a)); - - contractStages.forEach(item -> { - if (item.getPaymentStageId() == null) { - return; - } - ErpProjectPlanStage matched = planStageMap.get(String.valueOf(item.getPaymentStageId())); - if (matched != null) { - item.setPlanStageId(matched.getPlanStageId()); - item.setRepaymentRate(matched.getRepaymentRate()); - item.setReceivableDate(matched.getReceivableDate()); - item.setActualRepaymentAmount(matched.getActualRepaymentAmount()); - item.setCollectionConfirmUserId(matched.getCollectionConfirmUserId()); - item.setCollectionConfirmTime(matched.getCollectionConfirmTime()); - item.setCollectionConfirmStatus(matched.getCollectionConfirmStatus()); - item.setCollectionConfirmRemark(matched.getCollectionConfirmRemark()); - } - }); - return contractStages; + return baseMapper.selectContractCollectionStageDetail(projectPlanId); } /** diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanStageServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanStageServiceImpl.java index 07da663f..4d0fa423 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanStageServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpProjectPlanStageServiceImpl.java @@ -10,6 +10,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.dromara.oa.base.domain.BasePaymentStage; import org.dromara.oa.erp.domain.bo.ErpProjectPlanStageBo; import org.dromara.oa.erp.domain.vo.ErpProjectPlanStageVo; import org.dromara.oa.erp.domain.ErpProjectPlanStage; @@ -73,13 +74,15 @@ public class ErpProjectPlanStageServiceImpl implements IErpProjectPlanStageServi Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ErpProjectPlanStage.class) .selectAll(ErpProjectPlanStage.class) + .selectAs(BasePaymentStage::getStageName, ErpProjectPlanStageVo::getPaymentStageName) + .leftJoin(BasePaymentStage.class, BasePaymentStage::getPaymentStageId, ErpProjectPlanStage::getPaymentStageId) .eq(ErpProjectPlanStage::getDelFlag, "0") .eq(bo.getProjectId() != null, ErpProjectPlanStage::getProjectId, bo.getProjectId()) .eq(bo.getProjectPlanId() != null, ErpProjectPlanStage::getProjectPlanId, bo.getProjectPlanId()) .eq(StringUtils.isNotBlank(bo.getProjectPhases()), ErpProjectPlanStage::getProjectPhases, bo.getProjectPhases()) .eq(bo.getPlanStartTime() != null, ErpProjectPlanStage::getPlanStartTime, bo.getPlanStartTime()) .eq(bo.getPlanEndTime() != null, ErpProjectPlanStage::getPlanEndTime, bo.getPlanEndTime()) - .eq(StringUtils.isNotBlank(bo.getCollectionStage()), ErpProjectPlanStage::getCollectionStage, bo.getCollectionStage()) + .eq(bo.getPaymentStageId() != null, ErpProjectPlanStage::getPaymentStageId, bo.getPaymentStageId()) .eq(bo.getRepaymentRate() != null, ErpProjectPlanStage::getRepaymentRate, bo.getRepaymentRate()) .eq(bo.getRepaymentAmount() != null, ErpProjectPlanStage::getRepaymentAmount, bo.getRepaymentAmount()) .eq(bo.getRepaymentTime() != null, ErpProjectPlanStage::getRepaymentTime, bo.getRepaymentTime()) 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 6bc38ab4..662fef65 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,7 +7,6 @@ - + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanStageMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanStageMapper.xml index 92afadcd..50da8536 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanStageMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ErpProjectPlanStageMapper.xml @@ -7,7 +7,7 @@ - select plan_stage_id, tenant_id, project_id, project_plan_id, project_phases, plan_start_time, plan_end_time, collection_stage, repayment_rate, repayment_amount, repayment_time, delay_day, receivable_date, reasons_explanation, schedule_remark, real_start_time, real_end_time, sort_order, remark, active_flag, actual_repayment_amount, collection_confirm_user_id, collection_confirm_time, collection_confirm_status, collection_confirm_remark, del_flag, create_dept, create_by, create_time, update_by, update_time + select plan_stage_id, tenant_id, project_id, project_plan_id, project_phases, plan_start_time, plan_end_time, payment_stage_id, repayment_rate, repayment_amount, repayment_time, delay_day, receivable_date, reasons_explanation, schedule_remark, real_start_time, real_end_time, sort_order, remark, active_flag, actual_repayment_amount, collection_confirm_user_id, collection_confirm_time, collection_confirm_status, collection_confirm_remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_project_plan_stage t where t.plan_stage_id = #{planStageId} - select plan_stage_id, tenant_id, project_id, project_plan_id, project_phases, plan_start_time, plan_end_time, collection_stage, repayment_rate, repayment_amount, repayment_time, delay_day, receivable_date, reasons_explanation, schedule_remark, real_start_time, real_end_time, sort_order, remark, active_flag, actual_repayment_amount, collection_confirm_user_id, collection_confirm_time, collection_confirm_status, collection_confirm_remark, del_flag, create_dept, create_by, create_time, update_by, update_time + select plan_stage_id, tenant_id, project_id, project_plan_id, project_phases, plan_start_time, plan_end_time, payment_stage_id, repayment_rate, repayment_amount, repayment_time, delay_day, receivable_date, reasons_explanation, schedule_remark, real_start_time, real_end_time, sort_order, remark, active_flag, actual_repayment_amount, collection_confirm_user_id, collection_confirm_time, collection_confirm_status, collection_confirm_remark, del_flag, create_dept, create_by, create_time, update_by, update_time from erp_project_plan_stage t @@ -68,7 +68,7 @@ plan_end_time, - collection_stage, + payment_stage_id, repayment_rate, @@ -127,7 +127,7 @@ #{item.planEndTime}, - #{item.collectionStage}, + #{item.paymentStageId}, #{item.repaymentRate}, @@ -197,8 +197,8 @@ plan_end_time = #{item.planEndTime}, - - collection_stage = #{item.collectionStage}, + + payment_stage_id = #{item.paymentStageId}, repayment_rate = #{item.repaymentRate},