需求描述
IT执行
时间线
需求确认
订货记录 订单金额 金额 项目规则 单选 QC+年份+序号0000,如QC250001 交付日期 日期 项目名称 文本 是否重点项目 单选 是/否 是否总包 单选 是/否 是否新合同 单选 是/否 订货记录明细 产品大类 文本 自产人工成本、外购材料、外购设备费、劳务外委人工成本、外购服务(非人天)、机械费、其他成本、整体外委成本 明细 文本 数量 数字 单价(万元) 金额 单位 文本 合计金额(万元) 金额 单价 * 数量
2025-07-11 补:
| 需求描述 | 说明 |
|---|---|
| 产品大类里面:自产人工成本、机械费、其他成本、 劳务外委成本删掉,合并新增一个”自产施工总成本”; | 相关的主表统计字段需要怎么修正:自产成本、采购金额等 |
| 产品大类里面:外购服务(非人天)去掉“非人天”; | 同上 |
| 合同细类需要按我最新的产品分类划分给你。 我把表格发你。 | 1. 新合同细类具体选项 2. 涉及对接,氚云需要先调整,并把添加的选项键值发过来 |
| 另外启橙的订单后续由营销下订单,需要限制各营销 只能看到自己的订单,不能看到别人的订单,这个权限需要设置好。 | 发一份目前的营销人员列表 |
执行方案
- 新建编辑页写入校验逻辑
- 是否新合同
- 订单金额校验
- 子合同,合同号唯一校验
- 是否子合同
- 详情页展示界面确认
- 订货记录审批流程确认
- 生成ERP销售合同、ERP销售订单逻辑修整
原逻辑:
- 生成订单:
- 使用到的字段
- 合同号-启橙
field_710eL__c
- 合同号-启橙
- 使用到的字段
测试环境
订货记录
- 界面调整
- 设置只读
- 新片区
- 营销大区
- 设置必填
- 是否新合同:默认为是 ✅
- 展示字段
- 是否新合同
- 合同类别
- ERP销售合同
是否生成订单为否,订单总计清空 ✅- 订货记录明细:新增 【启橙】新建/编辑页 ✅
- 订货记录明细:新增业务类型:启橙
QC__c
- 设置只读
- 函数调整
Proc_tnZ5K__c: 是否新合同为否,不生成新合同UIEvt_R25wi__c: 【启橙】【新建/编辑页】字段UI事件 >> 新增字段UI事件Btn_JaQai__c: 付款比例以及招投标校验规则 增加订单金额和合同金额的校验Proc_jkPrn__c:Btn_Ea6M5__c:Proc_xd4Xr__c:Proc_tnZ5K__c:Btn_c5fpM__c:
- 字段调整
- 合同总额(主合同,万元)-启橙 ⇒ 主合同金额(万元)-启橙
- 产品明细 <明细>: 新增 多行文本
- 产品大类-启橙 <明细>:单选
- 订单总价(万元)-智联 > 订单总价(万元) > <启橙> 总成本(万元)
- 自产成本-启橙:
- 采购成本-启橙:
- 利润-启橙:
- 利润率-启橙:
- 净额-启橙:
项目累计合同额(万元) :新增 统计主合同号下所有合同金额 函数统计项目累计订单额(万元) :新增 统计主合同号下所有订单金额 函数统计
- 布局规则
- 【启橙】是否新合同
layout_rule_9m6fj__c
- 【启橙】是否新合同
- 通用选项集
- 【启橙】产品大类 ✅
- 校验逻辑
- 订货记录
- 新建/编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额,注:包含未生效的订货记录
- 新建/编辑页面中校验:合同号-启橙,填写后系统校验是否重复
- ERP销售订单
- 编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额
- ERP销售合同
- 编辑前校验:主合同号下所有订单金额 不能大于 主合同号下所有合同总金额
- 订货记录
- 对象映射规则
- 订货记录 ⇒ ERP销售合同
- 订货记录 ⇒ ERP销售订单
ERP销售订单
- 新建业务类型启橙<明细>
- 订单金额、合同金额校验
ERP销售合同
- 订单金额、合同金额校验
更新数据
ERP销售合同 : PlnTask_PcjYM__c
ERP销售订单 :PlnTask_wpidX__c 销售订单金额(万元) 更新为 合同金额
订货记录 : PlnTask_Stkxr__c
订单编号:目前是取得子合同号,一个合同是否对应一个订单
单位 默认为 项
1、启橙明细允许选择深瑞产品大类 ✅ 2、去除“是否订单按钮”。 ✅ 3、启橙的设备分类与深瑞用同一个字段 ✅ 4、订单明细的外购启橙下单时填写预算价格 ✅ 5、成本、自产成本改为自动计算 ✅ 6、采购金额逻辑待提供 ✅ 7、产品明细允许启橙选择深瑞产品(且成本计入“成本中采购深瑞金额-启橙),成本计算逻辑启橙商务明确好。 等待确认 8、合同进度收款计划明细表启橙商务确认是否保留 等待确认 9、子合同、主合同都要计算利润 主合同、子合同都只能计算本身的利润率 10、创建子合同,合同编号需手动填写,后续可考虑优化 启橙后续考虑规则 11、合同号增加累计销售订单金额字段 ✅
正式环境
【订单】公共类
- 【启橙】订单模块,获取主合同号:查询ERP销售合同、订货记录,获取最大编号,尾号加一
- 【启橙】订单模块,根据主合同号,获取累计合同额、累计订单额
订货记录:
- 字段调整
- 订单总价(万元) ⇒ 总成本(万元)
- 净额-启橙 : 合同金额/合同预计额 ➖ 采购金额-启橙
- 自产成本-启橙 : 明细产品大类属于 自产人工成本
- 采购金额-启橙 : 明细产品大类属于 外购材料;外购设备;劳务外委人工成本;外购服务(非人天);整体外委成本;外购设备-采购深瑞
- 成本中采购深瑞金额-启橙 : 明细产品大类属于 外购设备-采购深瑞
- 布局调整
- 规则调整
- 【启橙】【新建/编辑页】字段UI事件
UIEvt_iFYrQ__c: APL函数 - 【启橙】是否新合同
layout_rule_58C7r__c: 布局规则
- 【启橙】【新建/编辑页】字段UI事件
2025-07-11 增补逻辑
- 产品大类-启橙 :自产人工成本、机械费、其他成本、劳务外委成本删掉,合并新增一个”自产施工总成本”;外购服务(非人天)去掉“非人天”
/**
* @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}")
}