业务需求
需求描述

[步骤]


D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!<>c__DisplayClass19_1.b__4+0x10
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0xcc
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!d__64`1.MoveNext+0x4f
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.Count+0xf4
D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!<>c__DisplayClass19_0.b__0+0x148
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0x72
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1..ctor+0x1f8
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.ToList+0x46
D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics+0xa3b
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline+0x31
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.TaskScheduler.TryRunInline+0x19e
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WrappedTryRunInline+0x3a
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WaitAll+0x1e2
D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!<>c__DisplayClass18_1.b__1+0x1b8
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1.ForEach+0x64
D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.AutoInitRecommendProductStatistics+0x43f
D:\Window-Service\服务_智汇创想(1)_本地服务1号\SEOCheck.exe!ChinaDownLoadImage.Task.Warehouse.Task_AutoInitRecommendProductStatistics.Execute+0x32
D:\Window-Service\服务_智汇创想(1)_本地服务1号\RB.Utility.dll!RB.Utility.SystemTask.b__43_0+0xa7
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73
C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch+0x152
[Unmanaged to Managed Transition]
clr.dll!LogHelp_TerminateOnAssert+0xc13
clr.dll!LogHelp_TerminateOnAssert+0x9a6
clr.dll!LogHelp_TerminateOnAssert+0x2d4d
clr.dll!LogHelp_TerminateOnAssert+0x62f9
clr.dll!LogHelp_TerminateOnAssert+0x34c1
clr.dll!LogHelp_TerminateOnAssert+0x343c
clr.dll!LogHelp_TerminateOnAssert+0x336d
clr.dll!LogHelp_TerminateOnAssert+0x34fb
clr.dll!LogHelp_TerminateOnAssert+0x6260
clr.dll!LogHelp_TerminateOnAssert+0x3924
clr.dll!LogHelp_TerminateOnAssert+0x36d5
clr.dll!LogHelp_TerminateOnAssert+0x64bf
KERNEL32.dll!BaseThreadInitThunk+0x14
ntdll.dll!RtlUserThreadStart+0x21


时常 还会有异常



[02:00:20]  商户号:1,仓库:中国义乌1号仓库,统计产品出库数据异常,异常详情:   在 System.Text.StringBuilder.FormatError()
在 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
在 System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
在 System.String.Format(String format, Object[] args)
在 Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics(Int32 customerID, RB_WareHouse warehouse, Int32 currMoveType)

[结果]


[期望]

优化排查问题,减少运行时长 提升效率,减少对 CPU 内存的消耗,修复出现的错误
验收标准
价值描述
性能优化
历史记录  
  1. 2024-11-19 14:00:21, 由 李晓明 Bug转化而来,Bug编号为 53375 。
  2. 2024-11-19 14:01:18, 由 李晓明 变更。
    修改了 版本号 ,旧值为 "1",新值为 "2"。
    修改了 需求描述,区别为:
    001- [步骤]
    001+
    002-
    002+ 问题原因:
    003- D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_1.b__4+0x10C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0xccC:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!d__64`1.MoveNext+0x4fC:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.Count+0xf4D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_0.b__0+0x148C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0x72C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1..ctor+0x1f8C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.ToList+0x46D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics+0xa3bC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline+0x31C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.TaskScheduler.TryRunInline+0x19eC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WrappedTryRunInline+0x3aC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WaitAll+0x1e2D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass18_1.b__1+0x1b8C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1.ForEach+0x64D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.AutoInitRecommendProductStatistics+0x43fD:\Window-Service\服务_智汇创想(1)_本地服务1号\SEOCheck.exe!ChinaDownLoadImage.Task.Warehouse.Task_AutoInitRecommendProductStatistics.Execute+0x32D:\Window-Service\服务_智汇创想(1)_本地服务1号\RB.Utility.dll!RB.Utility.SystemTask.b__43_0+0xa7C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch+0x152[Unmanaged to Managed Transition]clr.dll!LogHelp_TerminateOnAssert+0xc13clr.dll!LogHelp_TerminateOnAssert+0x9a6clr.dll!LogHelp_TerminateOnAssert+0x2d4dclr.dll!LogHelp_TerminateOnAssert+0x62f9clr.dll!LogHelp_TerminateOnAssert+0x34c1clr.dll!LogHelp_TerminateOnAssert+0x343cclr.dll!LogHelp_TerminateOnAssert+0x336dclr.dll!LogHelp_TerminateOnAssert+0x34fbclr.dll!LogHelp_TerminateOnAssert+0x6260clr.dll!LogHelp_TerminateOnAssert+0x3924clr.dll!LogHelp_TerminateOnAssert+0x36d5clr.dll!LogHelp_TerminateOnAssert+0x64bfKERNEL32.dll!BaseThreadInitThunk+0x14ntdll.dll!RtlUserThreadStart+0x21
    003+ 集合不断的累加数据,导致占用的内存越来越多,又没有及时释放,导致服务崩溃。
    004- 时常 还会有异常
    004+ 1. 服务逻辑是,按照SKU+仓库维度,以规则设置的时间范围,分页统计每个SKU的出库数据,保存至数据库。2. 如果规则设置的时间范围越大,统计的数据量就越多,分页查询的次数就越多。每轮服务都要从第一天开始计算到最后一天,都要重复查询相同的数据。
    005-
    005+ 3. 每次分页查询的数据会不断的累加到一个集合变量,集合变量占用的内存越来越多,又没有及时释放,导致服务崩溃。
    006- [02:00:20] 商户号:1,仓库:中国义乌1号仓库,统计产品出库数据异常,异常详情: 在 System.Text.StringBuilder.FormatError() 在 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) 在 System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) 在 System.String.Format(String format, Object[] args) 在 Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics(Int32 customerID, RB_WareHouse warehouse, Int32 currMoveType)
    006+
    007- [结果]
    007+ 优化方案:
    008- [期望]
    008+ 1. 数据分多轮服务执行,少量多次(服务设置5分钟执行一次),服务执行完后,能够及时释放变量占用的内存。
    009- 优化排查问题,减少运行时长 提升效率,减少对 CPU 内存的消耗,修复出现的错误
    009+ 2. 数据分多轮服务执行,每次只执行少量数据,并将数据记录到一个临时统计汇总表。仓库+SKU+类型只保留最新一条,记录当天的总数和累计总数,避免每次都要重复查询相同的数据。
    010+ 3. 计算累计出库总数和累计出库频次,计算完当天的出库数和计出库频次后,用昨天的累计出库总数和累计出库频次 + 今天的出库数和计出库频次,计算出最新的累计出库总数和累计出库频次。
    011+ 4. 每轮服务计算1天的数据,并记录已经计算的日期,下轮服务延续上轮服务的日期继续计算(规则设置的最大天数是30,预计最多执行30轮服务)。
    012+ 5. 服务执行完后,删除临时统计汇总表
    013+
    014+ 举例
    015+
    016+ 第一轮服务
    017+ 计算出来1月1号的数据,东莞仓,SKU01,当天的出库总数=10,当天的出库频次=5。那么,该SKU的累计出库总数=10,累计出库频次=5
    018+
    019+ 第二轮服务
    020+ 计算出来1月2号的数据,东莞仓,SKU01,当天的出库总数=8,当天的出库频次=6。那么,该天的累计出库总数=18,累计出库频次=11
    021+
    022+ 第三轮服务
    023+ 计算出来1月3号的数据,东莞仓,SKU01,当天的出库总数=3,当天的出库频次=7。那么,该天的累计出库总数=21,累计出库频次=18
    024+
    025+ 依此类推。。。。。
    026+
    027+ 三轮服务执行完后,数据库保存的SKU01的数据格式是
    028+ 1月3号,东莞仓,SKU01,当天的出库总数=3,当天的出库频次=7,累计出库总数=21,累计出库频次=18(执行多次后,一个SKU+仓库只有一条数据)
    029+
    030+
    031+ 确认下方案可以的话,就点性能问题,转给产品转成需求。
    032+
    033+
    034+
    035+
    036+
    037+
    038+
    039+ [步骤]
    040+
    041+ D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_1.b__4+0x10C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0xccC:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!d__64`1.MoveNext+0x4fC:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.Count+0xf4D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_0.b__0+0x148C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0x72C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1..ctor+0x1f8C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.ToList+0x46D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics+0xa3bC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline+0x31C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.TaskScheduler.TryRunInline+0x19eC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WrappedTryRunInline+0x3aC:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WaitAll+0x1e2D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass18_1.b__1+0x1b8C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1.ForEach+0x64D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.AutoInitRecommendProductStatistics+0x43fD:\Window-Service\服务_智汇创想(1)_本地服务1号\SEOCheck.exe!ChinaDownLoadImage.Task.Warehouse.Task_AutoInitRecommendProductStatistics.Execute+0x32D:\Window-Service\服务_智汇创想(1)_本地服务1号\RB.Utility.dll!RB.Utility.SystemTask.b__43_0+0xa7C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch+0x152[Unmanaged to Managed Transition]clr.dll!LogHelp_TerminateOnAssert+0xc13clr.dll!LogHelp_TerminateOnAssert+0x9a6clr.dll!LogHelp_TerminateOnAssert+0x2d4dclr.dll!LogHelp_TerminateOnAssert+0x62f9clr.dll!LogHelp_TerminateOnAssert+0x34c1clr.dll!LogHelp_TerminateOnAssert+0x343cclr.dll!LogHelp_TerminateOnAssert+0x336dclr.dll!LogHelp_TerminateOnAssert+0x34fbclr.dll!LogHelp_TerminateOnAssert+0x6260clr.dll!LogHelp_TerminateOnAssert+0x3924clr.dll!LogHelp_TerminateOnAssert+0x36d5clr.dll!LogHelp_TerminateOnAssert+0x64bfKERNEL32.dll!BaseThreadInitThunk+0x14ntdll.dll!RtlUserThreadStart+0x21
    042+ 时常 还会有异常
    043+
    044+ [02:00:20] 商户号:1,仓库:中国义乌1号仓库,统计产品出库数据异常,异常详情: 在 System.Text.StringBuilder.FormatError() 在 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) 在 System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) 在 System.String.Format(String format, Object[] args) 在 Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics(Int32 customerID, RB_WareHouse warehouse, Int32 currMoveType)
    045+ [结果]
    046+ [期望]
    047+ 优化排查问题,减少运行时长 提升效率,减少对 CPU 内存的消耗,修复出现的错误
    001- <p>[步骤]</p>
    001+ <p>
    002- <br />
    002+ </p><p style="font-size:14px;background-color:rgba(0,0,0,.024);">问题原因:</p>
    003- D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_1.b__4+0x10<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0xcc<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!d__64`1.MoveNext+0x4f<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.Count+0xf4<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_0.b__0+0x148<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0x72<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1..ctor+0x1f8<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.ToList+0x46<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics+0xa3b<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline+0x31<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.TaskScheduler.TryRunInline+0x19e<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WrappedTryRunInline+0x3a<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WaitAll+0x1e2<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass18_1.b__1+0x1b8<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1.ForEach+0x64<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.AutoInitRecommendProductStatistics+0x43f<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\SEOCheck.exe!ChinaDownLoadImage.Task.Warehouse.Task_AutoInitRecommendProductStatistics.Execute+0x32<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\RB.Utility.dll!RB.Utility.SystemTask.b__43_0+0xa7<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch+0x152<br />[Unmanaged to Managed Transition]<br />clr.dll!LogHelp_TerminateOnAssert+0xc13<br />clr.dll!LogHelp_TerminateOnAssert+0x9a6<br />clr.dll!LogHelp_TerminateOnAssert+0x2d4d<br />clr.dll!LogHelp_TerminateOnAssert+0x62f9<br />clr.dll!LogHelp_TerminateOnAssert+0x34c1<br />clr.dll!LogHelp_TerminateOnAssert+0x343c<br />clr.dll!LogHelp_TerminateOnAssert+0x336d<br />clr.dll!LogHelp_TerminateOnAssert+0x34fb<br />clr.dll!LogHelp_TerminateOnAssert+0x6260<br />clr.dll!LogHelp_TerminateOnAssert+0x3924<br />clr.dll!LogHelp_TerminateOnAssert+0x36d5<br />clr.dll!LogHelp_TerminateOnAssert+0x64bf<br />KERNEL32.dll!BaseThreadInitThunk+0x14<br />ntdll.dll!RtlUserThreadStart+0x21<br /><p><br /></p>
    003+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">集合不断的累加数据,导致占用的内存越来越多,又没有及时释放,导致服务崩溃。</p>
    004- <p>时常 还会有异常</p>
    004+ <span style="font-size:14px;background-color:rgba(0,0,0,.024);">1. 服务逻辑是,按照SKU+仓库维度,以规则设置的时间范围,分页统计每个SKU的出库数据,保存至数据库。</span><br /><p style="font-size:14px;background-color:rgba(0,0,0,.024);">2. 如果规则设置的时间范围越大,统计的数据量就越多,分页查询的次数就越多。每轮服务都要从第一天开始计算到最后一天,都要重复查询相同的数据。</p>
    005- <p><br /></p>
    005+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">3. 每次分页查询的数据会不断的累加到一个集合变量,集合变量占用的内存越来越多,又没有及时释放,导致服务崩溃。</p>
    006- <p><br />[02:00:20] 商户号:1,仓库:中国义乌1号仓库,统计产品出库数据异常,异常详情: 在 System.Text.StringBuilder.FormatError()<br /> 在 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)<br /> 在 System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)<br /> 在 System.String.Format(String format, Object[] args)<br /> 在 Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics(Int32 customerID, RB_WareHouse warehouse, Int32 currMoveType)</p>
    006+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    007- <p>[结果]</p>
    007+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">优化方案:</p>
    008- <br /><p>[期望]</p>
    008+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">1. 数据分多轮服务执行,少量多次(服务设置5分钟执行一次),服务执行完后,能够及时释放变量占用的内存。</p>
    009- 优化排查问题,减少运行时长 提升效率,减少对 CPU 内存的消耗,修复出现的错误
    009+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">2. 数据分多轮服务执行,每次只执行少量数据,并将数据记录到一个临时统计汇总表。仓库+SKU+类型只保留最新一条,记录当天的总数和累计总数,避免每次都要重复查询相同的数据。</p>
    010+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">3. 计算累计出库总数和累计出库频次,计算完当天的出库数和计出库频次后,用昨天的累计出库总数和累计出库频次 + 今天的出库数和计出库频次,计算出最新的累计出库总数和累计出库频次。</p>
    011+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">4. 每轮服务计算1天的数据,并记录已经计算的日期,下轮服务延续上轮服务的日期继续计算(规则设置的最大天数是30,预计最多执行30轮服务)。</p>
    012+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">5. 服务执行完后,删除临时统计汇总表</p>
    013+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    014+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">举例</p>
    015+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    016+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">第一轮服务</p>
    017+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">计算出来1月1号的数据,东莞仓,SKU01,当天的出库总数=10,当天的出库频次=5。那么,该SKU的累计出库总数=10,累计出库频次=5</p>
    018+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    019+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">第二轮服务</p>
    020+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">计算出来1月2号的数据,东莞仓,SKU01,当天的出库总数=8,当天的出库频次=6。那么,该天的累计出库总数=18,累计出库频次=11</p>
    021+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    022+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">第三轮服务</p>
    023+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">计算出来1月3号的数据,东莞仓,SKU01,当天的出库总数=3,当天的出库频次=7。那么,该天的累计出库总数=21,累计出库频次=18</p>
    024+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    025+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">依此类推。。。。。</p>
    026+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    027+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">三轮服务执行完后,数据库保存的SKU01的数据格式是</p>
    028+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">1月3号,东莞仓,SKU01,当天的出库总数=3,当天的出库频次=7,累计出库总数=21,累计出库频次=18(执行多次后,一个SKU+仓库只有一条数据)</p>
    029+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    030+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);"><br /></p>
    031+ <p style="font-size:14px;background-color:rgba(0,0,0,.024);">确认下方案可以的话,就点性能问题,转给产品转成需求。</p>
    032+
    033+ <p><br /></p>
    034+ <p><br /></p>
    035+ <p><br /></p>
    036+ <p><br /></p>
    037+ <p><br /></p>
    038+ <p><br /></p>
    039+ <p>[步骤]</p>
    040+ <br />
    041+ D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_1.b__4+0x10<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0xcc<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!d__64`1.MoveNext+0x4f<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.Count+0xf4<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass19_0.b__0+0x148<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!WhereSelectListIterator`2.MoveNext+0x72<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1..ctor+0x1f8<br />C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll!System.Linq.Enumerable.ToList+0x46<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics+0xa3b<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline+0x31<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.TaskScheduler.TryRunInline+0x19e<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WrappedTryRunInline+0x3a<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.WaitAll+0x1e2<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!&lt;&gt;c__DisplayClass18_1.b__1+0x1b8<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Collections.Generic.List`1.ForEach+0x64<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\Biz.dll!Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.AutoInitRecommendProductStatistics+0x43f<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\SEOCheck.exe!ChinaDownLoadImage.Task.Warehouse.Task_AutoInitRecommendProductStatistics.Execute+0x32<br />D:\Window-Service\服务_智汇创想(1)_本地服务1号\RB.Utility.dll!RB.Utility.SystemTask.b__43_0+0xa7<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.Execute+0x46<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.RunInternal+0x163<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ExecutionContext.Run+0x14<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal+0x215<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry+0x73<br />C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch+0x152<br />[Unmanaged to Managed Transition]<br />clr.dll!LogHelp_TerminateOnAssert+0xc13<br />clr.dll!LogHelp_TerminateOnAssert+0x9a6<br />clr.dll!LogHelp_TerminateOnAssert+0x2d4d<br />clr.dll!LogHelp_TerminateOnAssert+0x62f9<br />clr.dll!LogHelp_TerminateOnAssert+0x34c1<br />clr.dll!LogHelp_TerminateOnAssert+0x343c<br />clr.dll!LogHelp_TerminateOnAssert+0x336d<br />clr.dll!LogHelp_TerminateOnAssert+0x34fb<br />clr.dll!LogHelp_TerminateOnAssert+0x6260<br />clr.dll!LogHelp_TerminateOnAssert+0x3924<br />clr.dll!LogHelp_TerminateOnAssert+0x36d5<br />clr.dll!LogHelp_TerminateOnAssert+0x64bf<br />KERNEL32.dll!BaseThreadInitThunk+0x14<br />ntdll.dll!RtlUserThreadStart+0x21<br /><p><br /></p>
    042+ <p>时常 还会有异常</p>
    043+ <p><br /></p>
    044+ <p><br />[02:00:20] 商户号:1,仓库:中国义乌1号仓库,统计产品出库数据异常,异常详情: 在 System.Text.StringBuilder.FormatError()<br /> 在 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)<br /> 在 System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)<br /> 在 System.String.Format(String format, Object[] args)<br /> 在 Biz.WarehouseAreaResponsibility.WarehouseAreaResponsibilityService.InitRecommendProductStatistics(Int32 customerID, RB_WareHouse warehouse, Int32 currMoveType)</p>
    045+ <p>[结果]</p>
    046+ <br /><p>[期望]</p>
    047+ 优化排查问题,减少运行时长 提升效率,减少对 CPU 内存的消耗,修复出现的错误
  3. 2024-11-19 15:09:51, 由 李晓明 编辑。
    修改了 所属计划,旧值为 "",新值为 "1596"。
    修改了 所处阶段,旧值为 "wait",新值为 "planned"。
  4. 2024-11-20 11:38:15, 由 程伟 添加备注。

    工时:12H

  5. 2024-11-20 18:53:42, 由 杨林军 记录评审结果,结果为 确认通过。
  6. 2024-11-28 08:53:19, 由 周杰 关联到计划 Sprint_WMS_20241210。
  7. 2024-11-28 09:33:21, 由 周杰 关联到迭代 主干_12月V2版本_20241210 。
  8. 2024-11-28 10:20:09, 由 周杰 编辑。
    修改了 预计工时,旧值为 "8",新值为 "12"。
  9. 2024-11-28 11:48:29, 由 周杰 编辑。
    修改了 上线时间 ,旧值为 "2024-12-03",新值为 "2024-12-10"。
    修改了 计划验收时间,旧值为 "0000-00-00",新值为 "2024-12-13"。
  10. 2024-12-04 14:20:43, 由 农基望 编辑。
    修改了 测试人员,旧值为 "",新值为 "nongjiwang"。
  11. 2024-12-11 09:33:33, 由 农基望 编辑。
    修改了 所处阶段 ,旧值为 "tested",新值为 "released"。
    修改了 设置阶段者,旧值为 "",新值为 "nongjiwang"。
  12. 2024-12-11 09:34:57, 由 周杰 编辑。
    修改了 所处阶段 ,旧值为 "released",新值为 "bepending"。
    修改了 设置阶段者,旧值为 "nongjiwang",新值为 "zhoujie"。
  13. 2024-12-11 13:46:14, 由 杨林军 编辑。
    修改了 所处阶段,旧值为 "业务验收中",新值为 "业务验收通过"。
    功能验收:验收通过
    满意度:满意
    价值验收:基本达成
    原因备注:无
  14. 2024-12-13 14:05:08, 由 周杰 关闭,原因为 已完成 。
    修改了 由谁关闭,旧值为 "",新值为 "zhoujie"。
    修改了 关闭日期,旧值为 "0000-00-00 00:00:00",新值为 "2024-12-13 14:05:07"。
    修改了 指派给 ,旧值为 "chengwei",新值为 "closed"。
    修改了 当前状态,旧值为 "active",新值为 "closed"。
    修改了 所处阶段,旧值为 "verified",新值为 "closed"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
迭代版本
提报业务部门 技术研发中心
提报人员 唐飞飞
需求来源 bug转需求
所属项目 技术中心-需求池
所属模块 供应链   仓储物流   备库订单
所属计划
业务价值
开发组 仓储物流开发组
受益业务部门 技术研发中心
验收人员 杨林军
业务目标类型 其他
中心业务目标 其他
业务价值 控制风险
每月价值量 20000
每月节省人数 0
优先级 P3
价值类型 短期价值
预计工时 12
成本 6000
ROI 3.33
操作手册 否
高价值 -
主被动 被动接收
复杂度 一般性
工作流ID
工作流创建时间 0000-00-00 00:00:00
更新点
是否高危 否
评分
当前状态 已关闭
所处阶段 已关闭
关键词
评审次数 一次
计划上线
上线时间 2024-12-10
计划验收时间 2024-12-13
业务验收时间 2024-12-11 13:46:14
满意度 满意
价值验收 基本达成
满意度分值 80
业务回填价值 controlrisk
验收达成价值 16000.0
验收达成ROI 4.0
抄送给 袁慧斌  
由谁创建 李晓明 于 2024-11-19 14:00:21
指派给 Closed 于 2024-12-13 14:05:07
由谁评审 杨林军
评审时间 2024-11-20
由谁关闭 周杰 于 2024-12-13 14:05:07
关闭原因 已完成
最后修改 周杰 于 2024-12-13 14:05:07