站长信息
jeffery.xu
jeffery.xu

软件工程师

欢迎访问我的个人笔记网站!我是一名热爱技术的开发者,专注于Web开发和技术分享。

811495111@qq.com
18521510875
筛选

个人笔记

医院补偿类型功能开发说明
工作笔记


一、需求背景
为支持补偿类型在医院维度上的精细化控制,本次在原有“经销商 / 产品 / 省市补偿类型”基础上,新增“医院补偿类型”能力,并同步打通总部维护侧与 DMS/SOI 应用侧逻辑。
本次改造目标为:
•    总部可维护医院补偿类型关系
•    支持医院补偿类型导入、导出
•    补偿申请选择补偿类型时,按医院规则进行过滤
•    补偿申请新增列表与补偿类型选择逻辑保持一致
---
二、提测范围
1. 总部侧-补偿类型维护
新增“医院”维度的补偿类型维护能力,支持:
•    新增
•    修改
•    查看
•    删除
•    导入
•    导出
2. DMS / SOI 应用侧
在补偿申请相关场景中增加医院维度筛选逻辑,涉及:
•    补偿类型选择弹窗
•    补偿申请新增可选数据列表
•    DMS 端
•    SOI 端
---
三、本次开发内容
1. 总部侧开发内容
1.1 医院补偿类型 CRUD
在补偿类型主档下新增“医院”页签,支持维护医院明细关系。
功能点
•    可选择医院
•    可维护“是否纳入补偿”
•    可查看医院补偿类型明细
•    同一补偿类型下支持多医院维护
•    增加重复校验
业务规则
是否纳入补偿 分两种模式:
•    是:表示当前补偿类型仅对配置的医院生效
•    否:表示当前补偿类型对配置的医院不生效
---
1.2 医院补偿类型一致性控制
同一个补偿类型下,所有医院记录的 是否纳入补偿 必须保持一致,不允许同一补偿类型同时出现“是”和“否”。
已实现
•    前端联动同步
•    后端保存前统一规范化处理
•    导入时一致性校验
---
1.3 医院补偿类型导入
新增医院补偿类型导入能力。
导入规则
•    医院代码必填,且必须存在
•    补偿类型代码必填,且必须存在
•    是否纳入补偿 必填,仅允许填写“是/否”
•    标识必填,仅允许填写“新增/覆盖”
•    同一补偿类型下,是否纳入补偿 必须一致
•    任意一条校验失败,则整批导入失败
标识说明
•    新增:保留原有医院关系,新增本次导入数据
•    覆盖:先清除该补偿类型历史医院数据,再导入本次数据
---
1.4 医院补偿类型导出
新增医院补偿类型导出能力,支持导出以下字段:
•    补偿名称
•    补偿代码
•    医院代码
•    医院名称
•    是否纳入补偿
•    创建时间/创建人
•    修改时间/修改人
---
2. DMS / SOI 应用侧开发内容
2.1 补偿类型选择增加医院筛选逻辑
在补偿申请中选择“补偿类型”时,除原有经销商、产品、省市规则外,新增医院规则过滤。
规则说明
医院条件与原有规则关系为 AND。
即在满足经销商 / 产品 / 省市逻辑的基础上,还需满足医院逻辑。
医院筛选规则
•    若补偿类型未配置医院关系:不限制医院
•    若补偿类型配置为 IsInclude = 1
•    当前医院必须存在于医院补偿配置中
•    若补偿类型配置为 IsInclude = 0
•    当前医院必须不存在于医院补偿配置中
---
2.2 补偿申请新增列表增加同样医院逻辑
为保证补偿申请入口行为一致,补偿申请新增列表同步增加同样的医院筛选逻辑。
已同步场景
•    DMS:CompensateApplicationADD
•    SOI:CompensateApplicationADD_SOI
目标
避免出现以下不一致问题:
•    列表中数据可选,但补偿类型不可选
•    补偿类型可选,但实际列表不应出现
---
四、影响模块
总部维护侧
•    补偿类型主档
•    医院补偿类型子表
•    医院补偿类型导入
•    医院补偿类型导出
应用侧
•    DMS 补偿申请
•    SOI 补偿申请
•    补偿类型选择弹窗
•    补偿申请新增列表
---
五、重点测试场景
1. 总部侧 CRUD 测试
场景 1:新增医院补偿类型
•    新增一个补偿类型
•    关联多个医院
•    是否纳入补偿 = 是
•    保存成功
场景 2:修改医院补偿类型
•    修改已有补偿类型的医院列表
•    修改后保存成功
•    查看明细正常
场景 3:一致性校验
•    同一补偿类型下尝试同时保存“是”和“否”
•    预期:不允许保存 / 系统统一规范化
场景 4:重复医院校验
•    同一补偿类型下重复选择同一家医院
•    预期:不允许重复
---
2. 导入测试
场景 5:正常导入-纳入补偿
•    同一补偿类型导入多个医院
•    是否纳入补偿 均为“是”
•    预期:导入成功
场景 6:正常导入-不纳入补偿
•    同一补偿类型导入多个医院
•    是否纳入补偿 均为“否”
•    预期:导入成功
场景 7:混合导入
•    同一补偿类型下同时导入“是”和“否”
•    预期:导入失败
场景 8:医院代码不存在
•    预期:导入失败
场景 9:补偿类型代码不存在
•    预期:导入失败
场景 10:覆盖导入
•    原有医院关系存在
•    使用“覆盖”重新导入
•    预期:旧数据被替换
---
3. 导出测试
场景 11:医院补偿类型导出
•    从补偿类型列表点击“医院导出”
•    预期:
•    成功下载
•    数据字段完整
•    内容与维护数据一致
---
4. DMS / SOI 应用侧测试
场景 12:未配置医院关系
•    某补偿类型只配置经销商/产品/省市,未配置医院
•    预期:该补偿类型不受医院限制
场景 13:医院纳入补偿
•    配置 IsInclude = 1
•    当前医院在配置内
•    预期:补偿类型可见 / 列表可查
场景 14:医院纳入补偿但不匹配
•    配置 IsInclude = 1
•    当前医院不在配置内
•    预期:补偿类型不可见 / 列表不可查
场景 15:医院不纳入补偿
•    配置 IsInclude = 0
•    当前医院在配置内
•    预期:补偿类型不可见 / 列表不可查
场景 16:医院不纳入补偿且不匹配
•    配置 IsInclude = 0
•    当前医院不在配置内
•    预期:补偿类型可见 / 列表可查
---
5. 联合规则测试
场景 17:省市通过,医院通过
•    预期:可选
场景 18:省市通过,医院不通过
•    预期:不可选
场景 19:省市不通过,医院通过
•    预期:不可选
场景 20:省市与医院都通过
•    预期:最终可用
说明:省市与医院关系为 AND
---
六、注意事项
1.    同一补偿类型下医院关系采用统一模式,不支持部分医院纳入、部分医院排除混用
2.    本次改造不影响现有补偿金额计算公式
3.    本次改造主要影响“补偿类型是否可选”和“申请数据是否可见”
4.    DMS 与 SOI 两侧已同步处理,需分别验证

BusinessView的修改
工作笔记

1) 在模型层新增属性(ViewItem)
在 ..\Wicresoft\BusinessObject\ObjectView\BusinessObjectView.cs 的 ViewItem 中新增了 EndTimeInclude(并提供了对应构造函数),用于标记某个日期查询项是否要“按日期(yyyy-MM-dd)比较”。
---
2) 在查询控件生成阶段把属性下发到 UI 节点
在 ..\SOI\CustomControls\QueryProvider.ascx.cs 的 GenerateQueryItem(ViewItem vi, int rowIndex) 里,增加了:
•    queryItem.Attributes["EndTimeInclude"] = vi.EndTimeInclude.ToString().ToLower();
这样每一行查询项(__queryitem_x)都带上了这个标记。
GridView 的作用是通过 ucQueryProvider.InitQueryProvider(this.BusinessObjectView) 把 BusinessObjectView 传给 QueryProvider,因此 vi.EndTimeInclude 能被拿到并写入 queryItem.Attributes。
---
3) 在过滤拼接阶段按该属性走不同 SQL 逻辑
在 QueryProvider.GetBusinessFilter(...) 的 DateTime 分支中,读取:
•    queryItem.Attributes["EndTimeInclude"]
并做条件拼接分支:
•    非 true:沿用原逻辑(field <= endTime)。
•    true:对字段加 CONVERT(varchar(10), field, 23),确保按 yyyy-MM-dd 比较后再和结束日期拼接。

上线前调整
工作笔记


ADD DMS  经销商基准价功能:

1.列表及查询及导出去掉有效日期、失效日期、修改创建时间为创建日期、新增修改日期。

2.当前年份字段改成使用年份,列表、查询、导出都改掉。

3.价格字段放到产品编码后面。

4.查询条件增加经销商名称查询

5.导出都按照最新列表内容进行导出。

6.货号升级功能看下代码逻辑,做修改的时候,需要更新modifytime字段

弹框查询慢优化
工作笔记

一、当前已改的代码
1. 去掉了 Page_Load 的重复绑定
文件:DMS\OrderInfoMnangerment\OrderInfo\UT_ProductListSelect.aspx.cs
你现在的 InitializeComponent() 里已经把这句注释掉了:
•    this.Load += new System.EventHandler(this.Page_Load);
作用:
•    避免首次打开弹窗时 Page_Load 被重复触发
•    避免 !IsPostBack 里的 ucCustomPaging.LoadData(...) 被多执行一次
---
2. 去掉了 btnQuery 的重复绑定
文件:DMS\OrderInfoMnangerment\OrderInfo\UT_ProductListSelect.aspx.cs
AppendServerEvents() 里原来有两次:
•    this.btnQuery.ButtonClick += ...
现在保留了一次,另一处已注释。
作用:
•    点击“查询”按钮时,避免 btnQuery_ButtonClick() 触发两次
•    避免 GetMyProductInfoList() 被重复调用
---
3. 优化了 GetFilter() 的 SQL 条件拼接
文件:DMS\OrderInfoMnangerment\OrderInfo\UT_ProductListSelect.aspx.cs
这部分是本次真正落地的主要 SQL 优化。
3.1 SSO_SameLotInfo
从:
•    FK_SSO_ProductCategoryID in (...)
改成:
•    exists(select 1 ...)
作用:
•    减少大表 in 子查询带来的额外代价
3.2 UT_OrderDetailInfo
从:
•    ut_product.pkid not in (...)
改成:
•    not exists(select 1 ...)
作用:
•    避免 not in 的执行问题和 NULL 风险
•    更利于索引使用
3.3 SOI_ProductStockAdjust
从:
•    对 StartTime / EndTime 做 CONVERT(...)
改成:
•    StartTime < tomorrowStart
•    EndTime >= todayStart
并且整体改成:
•    not exists(...)
作用:
•    去掉对列的函数转换
•    提升日期范围条件走索引的概率
3.4 FCN_Product
从:
•    CONVERT(nvarchar(10), BuyStartTime, 120) > ...
改成:
•    BuyStartTime >= tomorrowStart
作用:
•    日期字段可走索引
3.5 OPF_ProductSettingRecord + AllowOrderChoose
从:
•    月份比较 CONVERT(nvarchar(7), ...)
•    日期比较 CONVERT(varchar(100), ...)
改成:
•    BeginDate < nextMonthStart
•    EndDate >= monthStart
•    AllowOrderChoose 也改成日期范围比较
作用:
•    去掉月份/日期字符串转换
•    更适合索引
3.6 SOI_ShipToProductPurchase
从:
•    先调用 getShiptoIDCount() 额外查一次
•    再决定是否拼 in (...)
改成:
•    直接一条相关条件:
•    not exists(...) or exists(...)
作用:
•    少一次额外预查询
•    逻辑合并到主 SQL 中
---
二、你当前代码里“虽然没改,但已确认的问题”
1. 弹窗初次打开时多次查询的原因
已确认来源有两个:
•    Page_Load 重复绑定
•    btnQuery 重复绑定
你现在这两个点都已经处理掉了。
2. ucCustomPaging.LoadData(this.GetLastPageNumber(...))
这个仍然保留。
它可能导致:
•    首次打开恢复到旧页码
•    如果旧页码大于总页数,分页控件内部可能再补查一次
这个点还没改。
---
三、已给出但还没正式落地到代码的改动
1. BusinessRule.UT_OrderInfo.GetMyProductInfoList()
文件:..\BusinessRule\OrderInfo\UT_OrderInfo.cs
建议方案已给出,但你还没正式应用到代码里。
核心思路是:
•    删除 subfilter 里重复加的 UT_DealerNetPrice 相关条件
•    把 UT_DealerNetPrice 从“where 过滤”改成“带条件的 inner join”
•    删掉无用的 DOH_ProductLimit join
目的:
•    避免价格表重复过滤
•    尽早缩小结果集
•    让执行计划更清晰
---
四、数据库侧已给出的优化建议
1. 已给出索引创建 SQL
已给出这些表的索引脚本:
•    UT_DealerNetPrice
•    SOI_SDDealerDetails
•    SSO_SameLotInfo
•    UT_OrderDetailInfo
•    SOI_ProductStockAdjust
•    SOI_ProductStockAdjustDetail
•    FCN_Product
•    OPF_ProductSettingRecord
•    AllowOrderChoose
•    SOI_ShipToProductPurchase
•    UT_Product
2. 已给出索引删除 SQL
用于回滚测试。
---
五、目前结论
这次优化的结果可以概括成:
已落地
•    去掉重复事件绑定
•    优化 GetFilter() 里的 in/not in
•    去掉日期字段上的 CONVERT
•    减少一次额外 ShipTo 预查询
未落地但已准备好
•    GetMyProductInfoList() 的 join 改造
•    数据库索引落库执行

VPN
人工智能学习

https://conyss.uk

Order form 在系统中的情况
工作笔记

1) CC4 修改 order form 的核心逻辑
入口在 ServicesBll.cs 的 case "DMS_RProductFamily":
•    SpecialParameter == "CC4IsInApproval":先校验该 CC4 是否在审批流中(CT_CC4IsInApproval)。
•    SpecialParameter == "UpdateProductSalesteam" 且 EDITE:进入
ServicesBll.DMS_Product.cs -> UpdateProductSalesteam(...)。
UpdateProductSalesteam(...) 会把前端传入的 a_OrderFormName_id 写入参数 OrderFormName_Id,然后执行两段 SQL:
1.    CT_UpdateProductSalesteamEdite
批量更新该 CC4 下所有产品:
•    DMS_Product.FK_EDMS_OrderForm_ID = @OrderFormName_Id
2.    CT_UpdateDMS_RProductFamily(编辑)或 CT_ADDDMS_RProductFamily(新增)
更新/新增 CC4 主档:
•    DMS_RProductFamily.FK_EDMS_OrderForm_ID = @OrderFormName_Id
---
2) CC4 改 order form 后会更新哪些表
直接更新:
•    DMS_Product(批量更新该 CC4 下产品的 FK_EDMS_OrderForm_ID)
•    DMS_RProductFamily(更新该 CC4 自身的 FK_EDMS_OrderForm_ID)
同一次逻辑里还会维护(但非 orderform 字段):
•    DMS_RProductFamilyPMUserRelation(培训人员关系增删)
结论:CC4 改 order form 时,不会改 EDMS_OrderForm 主数据本身,而是改“引用关系”。
---
3) 全量排查:哪些功能使用了 orderform 相关表
A. order form 主数据维护
•    功能:DMS_ProductCategroy(名称虽叫 ProductCategroy,实际映射 EDMS_OrderForm)
•    证据:
•    FC_DMS_ProductCategroy.xml -> TableMapping tableName="EDMS_OrderForm"
•    VC_DMS_ProductCategroy.xml -> TableMapping tableName="EDMS_OrderForm"
•    明细配置使用 EDMS_OrderFormDetail(FC/VC_DMS_ProductCategroyDetail.xml)
B. CC4 维护时选择并同步 order form
•    功能:DMS_RProductFamily 编辑(UpdateProductSalesteam)
•    涉及表:
•    DMS_RProductFamily.FK_EDMS_OrderForm_ID
•    DMS_Product.FK_EDMS_OrderForm_ID
C. 经销商“最小采购金额”配置(按经销商 + order form)
•    功能:
•    DMS_DistributorPurchaseOrderSum
•    DMS_DistributorPurchaseOrderSumTimeCtrl
•    对应放大镜:VC_DMS_DistributorPurchaseOrderSum_EDMS_OrderForm、VC_OrderSumTimeCtrl_EDMS_OrderForm
•    涉及表:
•    DMS_DistributorPurchaseOrderSum(FK_EDMS_OrderForm_ID, FK_DMS_DistributorInfo_ID, PurchaseOrderSum)
•    DMS_DistributorPurchaseOrderSumTimeCtrl(FK_EDMS_OrderForm_ID, FK_DMS_DistributorInfo_ID, StartTime, EndTime)
D. 下单金额校验/补偿计算对 order form 的使用
•    功能:
•    EDMS_OrderInfo.queryOrderSum(...)
•    DMSEDMS_OrderInfo.queryDMSOrderSum(...)
•    逻辑:
•    使用订单里的 a_FK_OrderForm_ID 去查 DMS_DistributorPurchaseOrderSum / ...TimeCtrl
•    用于最小采购金额门槛判断
E. 订单与 order form 关系
•    表字段:
•    EDMS_OrderInfo.FK_OrderForm_ID
•    代码:
•    CT_EDMS_OrderInfoUp 更新该字段
•    CT_getOrderFormIDByID / QueryOrderFormID(...) 按订单取 OrderForm
---

Gore修改内容
工作笔记
1 植入报告导出
Implant Report Export
上次CR的一个需求变更:病历号导出的excel表格里面显示完整还是显示****1234按照当前用户系统界面上展示的结果来
A requirement change from last CR: The excel table for exporting the medical record number shows complete or ****1234 according to the results displayed on the current user system interface
2 GSP报表
GSP Reports
QA提出把所有GSP报表字段描述里的“有效期”改成“失效日期”。GSP报表包括:验收管理、入库记录、贮存管理、检查管理、销售管理、出库管理、复核管理、售后退回管理、报损管理。同时E-Order下的经销商发货报表的有效期也同步改成失效日期
QA proposed to change "expiry date" to "expiration date" in all GSP report field descriptions. GSP reports include: Acceptance management, inbound records, storage management, inspection management, sales management, outbound management, review management, post-sale return management, and loss reporting management. At the same time, the validity period of the dealer shipping report under E-Order is also changed to expiration date
3 供货企业资质预警功能
Supplier qualification warning function
1.增加供货企业资质预警:当供货企业资质证书的自然有效期至跟当前时间比分别是30天和1天的时候,会发送邮件提醒RA和 QA;
2. 生产企业资质预警暂不关闭
1 Add supply enterprise qualification warning: When the natural validity period of the supply enterprise qualification certificate is 30 days and 1 day respectively from the current time, an email will be sent to alert RA and QA;
2 The production enterprise qualification warning will not be turned off for the time being
4 暂存订单折扣金额锁定
The discount amount of the temporarily stored orders is locked
1.新增暂存订单折扣金额锁定表,暂存采购单时记录有补偿金额抵扣的订单信息。删除暂存订单时,解锁之前锁定的补偿金额。
2.已有锁定补偿金额的暂存订单,不允许新增、修改、删除订购的产品信息。只能整单做删除。
3.在新增订单或编辑无锁定补偿金额的暂存订单时,系统在计算当前订单的补偿金额需要先去除
1中其它订单锁定的补偿金额
4.包括总部采购订单录入和经销商采购订单录入功能同步修改
1. Add a table for locking discount amounts for temporary orders, which records the information of orders with compensation amount deductions when temporarily storing purchase orders. When deleting a temporary order, unlock the previously locked compensation amount.
2 For a temporary order with a locked compensation amount, it is not allowed to add, modify, or delete the ordered product information. Only the entire order can be deleted.
3. When adding a new order or editing a temporary order without a locked compensation amount, the system needs to remove the compensation amount locked in other orders in 1 before calculating the compensation amount for the current order
4. Including the simultaneous modification of headquarters purchase order entry and dealer purchase order entry functions
5 总部用户邮件提醒的链接调整
Link adjustment for email alerts from headquarters users
因戈尔内部员工登录方式从pingone换成了Entra,登录方式有所不一样,所以需要把总部用户系统接受到的通知所有邮件里面的链接换成https://myapplications.microsoft.com
For gore staff login mode changed from pingone Entra, login way is different, so need to accept headquarters user system to inform all the inside of the email link for https://myapplications.microsoft.com
6 发送订单给仓库
Send the order to the warehouse
1. 创建一个邮件组:HTDK Order,用于发送订单信息给仓库(维护方式与现在一样,该功能不需要开发,只需要在现在的【邮件组管理】菜单去维护即可)
2. 我们在订单审批界面增加一个勾选框,勾选框的内容是【发邮件给仓库】,默认是不勾选的。Melody在审批订单的时候根据实际情况勾选该勾选框   
3. 基于第2点增加判断,如该笔订单的【发邮件给仓库】勾选了且CS点击了审批通过,在审批通过完成后同步推送邮件给HTDK。如【发邮件给仓库】勾选了但是操作的是审批拒绝或者返回,则不发送邮件。
4. 订单审批界面增加【CS填写给仓库的备注】字段,
不管是否勾选了【发邮件给仓库】均为非必填,Melody在审批订单时根据实际情况填写该内容
5.考虑到以上功能是三个业务线共用且目前只for B277的订单,所以【发邮件给仓库】的勾选框和【CS填写给仓库的备注】均为非必填项,CS审批的时候根据实际情况操作
1 Create a mail group: HTDK Order for sending order information to the warehouse (the maintenance method is the same as it is now. This feature does not need to be developed and can be maintained in the current [Mail Group Management] menu)
2. We add a checkbox to the order approval interface, with the content of the checkbox being [Email to the Warehouse], which is unchecked by default. Melody will check the box when approving orders based on the actual situation
3 Add a judgment based on point 2, such as the [Email to Warehouse] option for this order is checked and CS clicks approval, then send an email to HTDK simultaneously after approval is completed. If [Email to Warehouse] is checked but the operation is a rejection or return of approval, no email will be sent.
4 Add a [CS Note to warehouse] field to the order approval interface, which is not required regardless of whether [Email to Warehouse] is checked or not, Melody fills in this content based on the actual situation when approving the order
5. Considering that the above functions are shared by the three business lines and currently only for B277 orders, the checkbox for "Email to Warehouse" and the "CS Notes to Warehouse" are both non-required fields, and CS will operate according to the actual situation during the approval process
7 人工返利附件下载
Download of the manual rebate attachment
经销商下载人工返利附件报错
Dealers have reported an error when downloading the manual rebate attachment
8 补偿类型选项框查询功能
Compensation type option box query function
完善一下补偿申请录入界面(总部+经销商)和人工返利的补偿类型选项框的查询功能(即在选项界面的上方增加补偿代码、补偿名称的查询条件)
Refine the query functionality of the compensation type option box for compensation claims (headquarters + dealer) and manual rebates (i.e. add a query area above the option interface)
9 经销商系统 经销商系统所有查询功能如有可以用【经销商名称】查询的,把【经销商名称】查询提交去掉
10 退货报表打印功能 退货报表打印功能把打印报表的仓库地址和联系人删掉,包括B185跟B277的

 

医院销售代表更新
工作笔记

今天更新医院销售代表

经销商授权申请审批流程优化需求
工作笔记

经销商授权申请审批流程优化需求,见如下详细说明。

2.1 经销商申请授权单时,下拉框选择的客户区域由现在的东南西北四项,在增加一个CL区域选项。

2.2 CE审批时,客户区域下拉框选择项也增加一个CL区域。允许CE做客户区域的内容修改。默认根据经销商提交订单的区域进行内容显示。审批条件修改,单据中的经销商所属类型+客户区域与CE审批人员负责的经销商类型+授权区域相同,才展示带CE审批的数据允许CE审批。

2.3 CMD审批调整,客户区域下拉框选择项也增加一个CL区域,默认根据经销商提交订单的区域进行内容显示。不允许修改。审批条件修改,单据中的经销商所属类型+客户区域与CMD审批人员负责的经销商类型+授权区域相同,才展示对应待审批数据允许CMD人员审批。

2.4 RMD审批调整,客户区域下拉框选择项也增加一个CL区域,默认根据经销商提交订单的区域进行内容显示。不允许修改。审批条件修改,单据中的经销商所属类型+客户区域与RMD审批人员负责的经销商类型+授权区域相同,才展示对应待审批数据允许RMD人员审批。

2.5 总裁办审批调整,客户区域下拉框选择项也增加一个CL区域,默认根据经销商提交订单的区域进行内容显示。不允许修改。审批条件修改,单据中的经销商所属类型+客户区域与总裁办审批人员负责的经销商类型+授权区域相同,才展示对应待审批数据允许总裁办人员审批。

PS

审批流的那个审批状态  CE待审批、CERutrn 等把CXE换成ComEx

把总裁办审批更改成全国渠道审批

经销商基准价功能修改
工作笔记

一:DMS根据BPCS推送的价格数据做经销商基准价的增补,
  1)根据BPCS推送的经销商+产品+价格数据,如果经销商在基准价功能存在,产品在基准价功能不存在的,需要把此价格数据新增到经销商基准价功能(时间都是当前年份的1月1号到12月31号)。
  2)第一步新增好数据后,把新增数据的经销商+产品+价格数据拿出来,在循环增加数据,从2024年开始截止到当前时间的上一年,每年一条记录。
二:货号升级功能调整
  1)系统需要选择新货号、老货号、年份(年份从2024年开始,到当前年),同时要根据老货号,老货号有的年份才有年份,数据选择完成点击数据同步按钮,系统判断,如果新货号+年份在经销商基准价功能无数据,系统自动按照老货号+年份查询出所有记录复制一份给到新货号。
  2)如果选择的新货号+年份在经销商基准价中已存在数据,系统则按照老货号+经销商+年份更新新货号的价格。
三:功能List列表显示、查询、导出功能增加【创建时间】、【年份】字段、年份取值如下:a. 手工上传:取上传字段。b. BPCS 推送:取生效日的“年份”
四:手工上传数据逻辑调整。保证相同经销商,相同货号,相同年份只有一条记录。如果本次上传的数据经销商+产品+年份在当前功能已存在相同数据,系统直接做价格更新。