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 std::collections::BTreeSet;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
@ -70,6 +71,8 @@ pub struct ServiceEvent {
|
||||||
pub activated_record_ids: Vec<u32>,
|
pub activated_record_ids: Vec<u32>,
|
||||||
pub deactivated_record_ids: Vec<u32>,
|
pub deactivated_record_ids: Vec<u32>,
|
||||||
pub removed_record_ids: Vec<u32>,
|
pub removed_record_ids: Vec<u32>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub finance_news_family_candidates: BTreeMap<u32, String>,
|
||||||
pub dirty_rerun: bool,
|
pub dirty_rerun: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -512,6 +515,7 @@ fn service_company_annual_finance_policy(
|
||||||
|
|
||||||
let mut mutated_company_ids = BTreeSet::new();
|
let mut mutated_company_ids = BTreeSet::new();
|
||||||
let mut applied_effect_count = 0u32;
|
let mut applied_effect_count = 0u32;
|
||||||
|
let mut finance_news_family_candidates = BTreeMap::new();
|
||||||
|
|
||||||
for company_id in active_company_ids {
|
for company_id in active_company_ids {
|
||||||
let Some(policy_state) = runtime_company_annual_finance_policy_state(state, company_id)
|
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
|
.service_state
|
||||||
.annual_finance_last_news_family_candidates
|
.annual_finance_last_news_family_candidates
|
||||||
.insert(company_id, label.to_string());
|
.insert(company_id, label.to_string());
|
||||||
|
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||||
}
|
}
|
||||||
applied_effect_count += 1;
|
applied_effect_count += 1;
|
||||||
mutated_company_ids.insert(company_id);
|
mutated_company_ids.insert(company_id);
|
||||||
|
|
@ -658,6 +663,7 @@ fn service_company_annual_finance_policy(
|
||||||
.service_state
|
.service_state
|
||||||
.annual_finance_last_news_family_candidates
|
.annual_finance_last_news_family_candidates
|
||||||
.insert(company_id, label.to_string());
|
.insert(company_id, label.to_string());
|
||||||
|
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||||
}
|
}
|
||||||
applied_effect_count += 1;
|
applied_effect_count += 1;
|
||||||
mutated_company_ids.insert(company_id);
|
mutated_company_ids.insert(company_id);
|
||||||
|
|
@ -817,6 +823,7 @@ fn service_company_annual_finance_policy(
|
||||||
.service_state
|
.service_state
|
||||||
.annual_finance_last_news_family_candidates
|
.annual_finance_last_news_family_candidates
|
||||||
.insert(company_id, label.to_string());
|
.insert(company_id, label.to_string());
|
||||||
|
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||||
}
|
}
|
||||||
applied_effect_count += 1;
|
applied_effect_count += 1;
|
||||||
mutated_company_ids.insert(company_id);
|
mutated_company_ids.insert(company_id);
|
||||||
|
|
@ -906,6 +913,7 @@ fn service_company_annual_finance_policy(
|
||||||
.service_state
|
.service_state
|
||||||
.annual_finance_last_news_family_candidates
|
.annual_finance_last_news_family_candidates
|
||||||
.insert(company_id, label.to_string());
|
.insert(company_id, label.to_string());
|
||||||
|
finance_news_family_candidates.insert(company_id, label.to_string());
|
||||||
}
|
}
|
||||||
applied_effect_count += 1;
|
applied_effect_count += 1;
|
||||||
mutated_company_ids.insert(company_id);
|
mutated_company_ids.insert(company_id);
|
||||||
|
|
@ -926,6 +934,7 @@ fn service_company_annual_finance_policy(
|
||||||
activated_record_ids: Vec::new(),
|
activated_record_ids: Vec::new(),
|
||||||
deactivated_record_ids: Vec::new(),
|
deactivated_record_ids: Vec::new(),
|
||||||
removed_record_ids: Vec::new(),
|
removed_record_ids: Vec::new(),
|
||||||
|
finance_news_family_candidates,
|
||||||
dirty_rerun: false,
|
dirty_rerun: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -1030,6 +1039,7 @@ fn service_trigger_kind(
|
||||||
activated_record_ids,
|
activated_record_ids,
|
||||||
deactivated_record_ids,
|
deactivated_record_ids,
|
||||||
removed_record_ids,
|
removed_record_ids,
|
||||||
|
finance_news_family_candidates: BTreeMap::new(),
|
||||||
dirty_rerun,
|
dirty_rerun,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2825,7 +2835,8 @@ mod tests {
|
||||||
.iter()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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()
|
.iter()
|
||||||
.any(|event| event.kind == "annual_finance_policy"
|
.any(|event| event.kind == "annual_finance_policy"
|
||||||
&& event.applied_effect_count == 1
|
&& 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