Carry finance news candidates in service events
This commit is contained in:
parent
fb78879fac
commit
5e480a5f74
1 changed files with 29 additions and 8 deletions
|
|
@ -1,3 +1,4 @@
|
|||
use std::collections::BTreeMap;
|
||||
use std::collections::BTreeSet;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
@ -70,6 +71,8 @@ pub struct ServiceEvent {
|
|||
pub activated_record_ids: Vec<u32>,
|
||||
pub deactivated_record_ids: Vec<u32>,
|
||||
pub removed_record_ids: Vec<u32>,
|
||||
#[serde(default)]
|
||||
pub finance_news_family_candidates: BTreeMap<u32, String>,
|
||||
pub dirty_rerun: bool,
|
||||
}
|
||||
|
||||
|
|
@ -512,6 +515,7 @@ fn service_company_annual_finance_policy(
|
|||
|
||||
let mut mutated_company_ids = BTreeSet::new();
|
||||
let mut applied_effect_count = 0u32;
|
||||
let mut finance_news_family_candidates = BTreeMap::new();
|
||||
|
||||
for company_id in active_company_ids {
|
||||
let Some(policy_state) = runtime_company_annual_finance_policy_state(state, company_id)
|
||||
|
|
@ -574,6 +578,7 @@ fn service_company_annual_finance_policy(
|
|||
.service_state
|
||||
.annual_finance_last_news_family_candidates
|
||||
.insert(company_id, label.to_string());
|
||||
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||
}
|
||||
applied_effect_count += 1;
|
||||
mutated_company_ids.insert(company_id);
|
||||
|
|
@ -658,6 +663,7 @@ fn service_company_annual_finance_policy(
|
|||
.service_state
|
||||
.annual_finance_last_news_family_candidates
|
||||
.insert(company_id, label.to_string());
|
||||
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||
}
|
||||
applied_effect_count += 1;
|
||||
mutated_company_ids.insert(company_id);
|
||||
|
|
@ -817,6 +823,7 @@ fn service_company_annual_finance_policy(
|
|||
.service_state
|
||||
.annual_finance_last_news_family_candidates
|
||||
.insert(company_id, label.to_string());
|
||||
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||
}
|
||||
applied_effect_count += 1;
|
||||
mutated_company_ids.insert(company_id);
|
||||
|
|
@ -906,6 +913,7 @@ fn service_company_annual_finance_policy(
|
|||
.service_state
|
||||
.annual_finance_last_news_family_candidates
|
||||
.insert(company_id, label.to_string());
|
||||
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||
}
|
||||
applied_effect_count += 1;
|
||||
mutated_company_ids.insert(company_id);
|
||||
|
|
@ -926,6 +934,7 @@ fn service_company_annual_finance_policy(
|
|||
activated_record_ids: Vec::new(),
|
||||
deactivated_record_ids: Vec::new(),
|
||||
removed_record_ids: Vec::new(),
|
||||
finance_news_family_candidates,
|
||||
dirty_rerun: false,
|
||||
});
|
||||
|
||||
|
|
@ -1030,6 +1039,7 @@ fn service_trigger_kind(
|
|||
activated_record_ids,
|
||||
deactivated_record_ids,
|
||||
removed_record_ids,
|
||||
finance_news_family_candidates: BTreeMap::new(),
|
||||
dirty_rerun,
|
||||
});
|
||||
|
||||
|
|
@ -2825,7 +2835,8 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![21])
|
||||
&& event.mutated_company_ids == vec![21]
|
||||
&& event.finance_news_family_candidates.is_empty())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3008,7 +3019,8 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![22])
|
||||
&& event.mutated_company_ids == vec![22]
|
||||
&& event.finance_news_family_candidates.get(&22) == Some(&"4053".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3167,7 +3179,8 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![23])
|
||||
&& event.mutated_company_ids == vec![23]
|
||||
&& event.finance_news_family_candidates.get(&23) == Some(&"2887".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3310,7 +3323,9 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![24])
|
||||
&& event.mutated_company_ids == vec![24]
|
||||
&& event.finance_news_family_candidates.get(&24)
|
||||
== Some(&"2882_2886".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3471,7 +3486,9 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![25])
|
||||
&& event.mutated_company_ids == vec![25]
|
||||
&& event.finance_news_family_candidates.get(&25)
|
||||
== Some(&"2882_2886".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3645,7 +3662,9 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![26])
|
||||
&& event.mutated_company_ids == vec![26]
|
||||
&& event.finance_news_family_candidates.get(&26)
|
||||
== Some(&"2882_2886".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3823,7 +3842,8 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![31])
|
||||
&& event.mutated_company_ids == vec![31]
|
||||
&& event.finance_news_family_candidates.get(&31) == Some(&"2881".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -3998,7 +4018,8 @@ mod tests {
|
|||
.iter()
|
||||
.any(|event| event.kind == "annual_finance_policy"
|
||||
&& event.applied_effect_count == 1
|
||||
&& event.mutated_company_ids == vec![32])
|
||||
&& event.mutated_company_ids == vec![32]
|
||||
&& event.finance_news_family_candidates.get(&32) == Some(&"2881".to_string()))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue