Журнал: ответы НРД ищутся только по сделкам в работе; завершённые помечены «не проверяется»

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 14:23:14 +03:00
parent 05154898f7
commit d4ed44ac2a
7 changed files with 23 additions and 8 deletions
+10 -1
View File
@@ -188,6 +188,13 @@ func mf010Text(p string, info os.FileInfo) (string, bool) {
}
func scanForm16Drafts(store *OutgoingStore) []*OutgoingDeal {
return scanForm16DraftsOpt(store, true)
}
// scanForm16DraftsOpt — то же, но ответы НРД (MS010 и др.) собираются только при withResponses:
// поиск ответов по номерам поручений — самая дорогая часть, и для журнала она нужна лишь
// по сделкам в работе, а не по всем, что когда-либо были.
func scanForm16DraftsOpt(store *OutgoingStore, withResponses bool) []*OutgoingDeal {
byGUID := map[string]*OutgoingDeal{}
_ = filepath.Walk(igwInboxDir, func(p string, info os.FileInfo, err error) error {
if err != nil || info.IsDir() {
@@ -238,7 +245,9 @@ func scanForm16Drafts(store *OutgoingStore) []*OutgoingDeal {
d.OrderAt = sub.OrderAt
d.OrderXML = sub.OrderXML
d.ContrDIDs = sub.ContrDIDs
d.Responses, d.Done = outgoingResponses(sub.ContrDIDs)
if withResponses {
d.Responses, d.Done = outgoingResponses(sub.ContrDIDs)
}
}
}
out = append(out, d)