• 【启橙】订单模块上线CRM task 启橙 逻辑调整 @测试中 ⏳ 2025-07-28 📅 2025-08-10 ✅ 2025-08-07

需求描述

IT执行

时间线

需求确认

订货记录 订单金额 金额 项目规则 单选 QC+年份+序号0000,如QC250001 交付日期 日期 项目名称 文本 是否重点项目 单选 是/否 是否总包 单选 是/否 是否新合同 单选 是/否 订货记录明细 产品大类 文本 自产人工成本、外购材料、外购设备费、劳务外委人工成本、外购服务(非人天)、机械费、其他成本、整体外委成本 明细 文本 数量 数字 单价(万元) 金额 单位 文本 合计金额(万元) 金额 单价 * 数量

2025-07-11 补

需求描述说明
产品大类里面:自产人工成本、机械费、其他成本、
劳务外委成本删掉,合并新增一个”自产施工总成本”;
相关的主表统计字段需要怎么修正:自产成本、采购金额等
产品大类里面:外购服务(非人天)去掉“非人天”;同上
合同细类需要按我最新的产品分类划分给你。
我把表格发你。
1. 新合同细类具体选项
2. 涉及对接,氚云需要先调整,并把添加的选项键值发过来
另外启橙的订单后续由营销下订单,需要限制各营销
只能看到自己的订单,不能看到别人的订单,这个权限需要设置好。
发一份目前的营销人员列表

执行方案

  1. 新建编辑页写入校验逻辑
    1. 是否新合同
    2. 订单金额校验
    3. 子合同,合同号唯一校验
    4. 是否子合同
  2. 详情页展示界面确认
  3. 订货记录审批流程确认
  4. 生成ERP销售合同、ERP销售订单逻辑修整

原逻辑:

  1. 生成订单:
    1. 使用到的字段
      • 合同号-启橙 field_710eL__c

测试环境

订货记录

  1. 界面调整
    1. 设置只读
      • 新片区
      • 营销大区
    2. 设置必填
      • 是否新合同:默认为是 ✅
    3. 展示字段
      • 是否新合同
      • 合同类别
      • ERP销售合同
    4. 是否生成订单为否,订单总计清空
    5. 订货记录明细:新增 【启橙】新建/编辑页
    6. 订货记录明细:新增业务类型:启橙QC__c
  2. 函数调整
    1. Proc_tnZ5K__c : 是否新合同为否,不生成新合同
    2. UIEvt_R25wi__c : 【启橙】【新建/编辑页】字段UI事件 >> 新增字段UI事件
    3. Btn_JaQai__c : 付款比例以及招投标校验规则 增加订单金额和合同金额的校验
    4. Proc_jkPrn__c :
    5. Btn_Ea6M5__c :
    6. Proc_xd4Xr__c :
    7. Proc_tnZ5K__c :
    8. Btn_c5fpM__c :
  3. 字段调整
    • 合同总额(主合同,万元)-启橙 主合同金额(万元)-启橙
    • 产品明细 <明细>: 新增 多行文本
    • 产品大类-启橙 <明细>:单选
    • 订单总价(万元)-智联 > 订单总价(万元) > <启橙> 总成本(万元)
    • 自产成本-启橙:
    • 采购成本-启橙:
    • 利润-启橙:
    • 利润率-启橙:
    • 净额-启橙:
    • 项目累计合同额(万元) :新增 统计主合同号下所有合同金额 函数统计
    • 项目累计订单额(万元) :新增 统计主合同号下所有订单金额 函数统计
  4. 布局规则
    1. 【启橙】是否新合同 layout_rule_9m6fj__c
  5. 通用选项集
    1. 【启橙】产品大类 ✅
  6. 校验逻辑
    1. 订货记录
      1. 新建/编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额,注:包含未生效的订货记录
      2. 新建/编辑页面中校验:合同号-启橙,填写后系统校验是否重复
    2. ERP销售订单
      1. 编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额
    3. ERP销售合同
      1. 编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额
  7. 对象映射规则
    1. 订货记录 ERP销售合同
    2. 订货记录 ERP销售订单

ERP销售订单

  1. 新建业务类型启橙<明细>
  2. 订单金额、合同金额校验

ERP销售合同

  1. 订单金额、合同金额校验

更新数据

ERP销售合同 : PlnTask_PcjYM__c ERP销售订单 :PlnTask_wpidX__c 销售订单金额(万元) 更新为 合同金额 订货记录 : PlnTask_Stkxr__c

订单编号:目前是取得子合同号,一个合同是否对应一个订单

单位 默认为 项

1、启橙明细允许选择深瑞产品大类 ✅ 2、去除“是否订单按钮”。 ✅ 3、启橙的设备分类与深瑞用同一个字段 ✅ 4、订单明细的外购启橙下单时填写预算价格 ✅ 5、成本、自产成本改为自动计算 ✅ 6、采购金额逻辑待提供 ✅ 7、产品明细允许启橙选择深瑞产品(且成本计入“成本中采购深瑞金额-启橙),成本计算逻辑启橙商务明确好。 等待确认 8、合同进度收款计划明细表启橙商务确认是否保留 等待确认 9、子合同、主合同都要计算利润 主合同、子合同都只能计算本身的利润率 10、创建子合同,合同编号需手动填写,后续可考虑优化 启橙后续考虑规则 11、合同号增加累计销售订单金额字段 ✅

正式环境

【订单】公共类

  1. 【启橙】订单模块,获取主合同号:查询ERP销售合同、订货记录,获取最大编号,尾号加一
  2. 【启橙】订单模块,根据主合同号,获取累计合同额、累计订单额

订货记录:

  1. 字段调整
    1. 订单总价(万元) 总成本(万元)
    2. 净额-启橙 : 合同金额/合同预计额 ➖ 采购金额-启橙
    3. 自产成本-启橙 : 明细产品大类属于 自产人工成本
    4. 采购金额-启橙 : 明细产品大类属于 外购材料;外购设备;劳务外委人工成本;外购服务(非人天);整体外委成本;外购设备-采购深瑞
    5. 成本中采购深瑞金额-启橙 : 明细产品大类属于 外购设备-采购深瑞
  2. 布局调整
  3. 规则调整
    1. 【启橙】【新建/编辑页】字段UI事件 UIEvt_iFYrQ__c : APL函数
    2. 【启橙】是否新合同 layout_rule_58C7r__c : 布局规则

2025-07-11 增补逻辑

  1. 产品大类-启橙 :自产人工成本、机械费、其他成本、劳务外委成本删掉,合并新增一个”自产施工总成本”;外购服务(非人天)去掉“非人天”
/**
 * @author 王亚新
 * @codeName 【启橙】更新合同数据
 * @description 修正CRM导致历史错误数据, **修正历史数据:设备分类为空的数据**
 * @createTime 2025-07-11
 * @bindingObjectLabel
 * @bindingObjectApiName
 * @函数需求编号
 */
//符合条件的数据id
List ids = context.objectIds as List
def (boolean error, List dataList, String errorMessage) = Fx.object.findByIds("SaleContractObj", ids, FQLAttribute.builder().columns(["_id", "name","field_jvy5I__c","field_t5TN3__c"]).build())
dataList.each { item ->
    Map map = item as Map
    //处理业务逻辑
    String qc_product_type = map["field_jvy5I__c"] as String //设备分类-启橙
    String product_type = map["field_t5TN3__c"] as String //设备分类
    Map aToBMap = [
            "2": "D5a", //技改施工
            "D4a": "D4a", //基建施工
            "D5a": "D5a", //技改施工
            "D2a": "D2a", //代运维服务
            "D1a": "D1a", //技术服务
            "A4": "A4", //备品备件
            "A1a": "A1a", //保护监控
            "3": "D2a", //运维
            "1": "D4a", //设备改造
    ]
    def result = CYGUtil.updateData(
            "SaleContractObj",
            [map["name"] as String],
            [
                    "field_t5TN3__c": aToBMap[qc_product_type] //设备分类
            ]
    )
    log.info("更新合同数据: ${map["name"]},结果:${result}")
}