• ITGDSQ【2025-02-07】047 ➕ 2025-02-08 ✅ 2025-02-17

需求描述

费用管理模块异常逻辑排查.pdf

IT执行

  1. 费用账户新增统计字段,分别统计合同费用发放及调整中的不同业务类型的数据。
    • 本年合同返回发放统计
    • 本年合同变化调整统计
    • 本年完全发货发放统计
    • 本年回款发放统计
    • 本年历史合同发放
  2. 合同费用发放及调整列表 根据条件 创建时间为本年度,账户编码不包含2025的数据, 组织为长园深瑞继保自动化有限公司
    • 将费用账户改成对应的2025年账户 ✅
    • 刷新24账户余额,刷新25期初 ✅
  3. 修改合同费用发放逻辑,费用发放时新增判断,统一发放到对应的25年账户

工作流:

  • 【费用】ERP销售合同金额更新【合同费用申请】 未做更改

APL函数

增加逻辑:失效账户重新匹配费用账户并更新对应的合同费用明细

  1. 【费用】【完全发货】费用发放 CompleteShipmentGrant__c
  2. 【费用】非【完全发货】费用扣减 IncompleteShipmentReduce__c
  3. 【费用】【ERP销售合同】【差额处理】 Recal_expense__c
  4. 【费用】【合同政策&费用申请】3.差额处理 ContractSplit_Margin__c
  5. 【费用】【回款比例更新】费用发放 PaymentGrant__c
  6. 【合同费用】合同费用发放.控制器 CstmCtrl_RHPsb__c
  7. 【费用历史合同】统计日期更新.控制器 Proc_WPAwr__c
    • 重新匹配历史合同发放的费用账户
    • 重新匹配费用账户及合同费用明细
  8. 【费用】费用账户更新 Proc_h2jds__c
  9. 更新合同费用发放的费用账户 Proc_4PkZ6__c 未做更改
    • 该函数挂在业务流<费用明细账户确认>(合同费用明细)中,用户填写费用账户,该函数更新【合同费用明细】、【合同费用发放及调整】对应的数据费用账户
  10. 【费用】合同政策确认后费用发放&营销公共费&大区公共费 ContractSplit_Return_Grant__c
    • 74行取省区逻辑可能有误 增加筛选本年份省区的条件
  11. 【审批流】1.费用扣减||合同费用生成 ExpenseSplit_reduce__c
  12. 【审批流】2.费用拆分申请【费用发放】 ExpenseSplit_grant__c
  13. 【费用历史合同】回款总额更新.控制器 CstmCtrl_px2ZR__c
    • 只重新匹配费用账户
  14. 【费用历史合同】完全发货更新.控制器 CstmCtrl_GYdyJ__c
    • 只重新匹配费用账户
//================判断失效账户,失效账户重新匹配账户并修改合同费用明细数据=====================  
String data_name = item["name"] as String; //合同费用明细编码  
//判断失效账户  
def ret_expenseAccount = Fx.object.findById("object_tlU1k__c", //查询费用账户对象  
        expense_account,  
        FQLAttribute.builder()  
                .columns(["_id", "name", "field_0vl12__c"]) //返回的数据id  
                .build(),  
        SelectAttribute.builder()  
                .build()).result() as Map;  
log.info("ret_expenseAccount:" + ret_expenseAccount)  
if (ret_expenseAccount) {  
    String judge = ret_expenseAccount["field_0vl12__c"] as String;//  
    if (judge != "是") {  
        //匹配最新的费用账户  
        Map account_param = ["contract_id": contract_id]  
        Map ContractAccount = ["ContractAccount": account_param]  
        Map account_propertiesMap = [:]  
        def (account_propertiesError, account_propertiesResult, account_propertiesErrMsg) = Fx.function.executeFunc("CstmCtrl_FEx8a__c", ContractAccount)  
        if (account_propertiesError) {  
            Fx.message.throwErrorMessage("获取费用账户配置信息失败!" + account_propertiesErrMsg);  
        } else {  
            account_propertiesMap = account_propertiesResult as Map;  
        }  
        //account_propertiesMap  参数为  account_id 费用账户ID  expense_province_id  费用账户对应的省份id  
        if (account_propertiesMap) {  
            expense_account = account_propertiesMap["account_id"] as String;// 费用账户ID  
            String expense_province_id = account_propertiesMap["expense_province_id"] as String;// 费用-省区ID  
            //调用CYGUtil的更新函数  
            Map updateRsult = CYGUtil.updateData("object_MeS38__c", [data_name], ["field_6Iw2g__c": expense_account, "field_652he__c": expense_province_id])  
            log.info("更新合同费用明细数据结果:" + updateRsult)  
        }  
    }  
}  
//======================================================================================