VmInsurancePolicyEditor.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. 
  2. ///////////////////////////////////////////////////////////////////////////////
  3. //文件名称: VmInsurancePolicyEditor.cs
  4. //文件描述: 保险单编辑
  5. //创 建 者: xls
  6. //创建日期: 2018/5/24 22:01:48
  7. //版 本 号:1.0.0.0
  8. ////////////////////////////////////////////////////////////////////////////////
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Collections.ObjectModel;
  12. using System.IO;
  13. using System.Linq;
  14. using System.Windows;
  15. using CEFSharpWpf;
  16. using Com.FirmLib.Bll;
  17. using Com.FirmLib.Entity;
  18. using Com.FirmLib.UI.BllCommon;
  19. using Com.FirmLib.UI.Common.Model;
  20. using Com.FirmLib.UI.Insuer.Model;
  21. using FirmHttpDao;
  22. using FWindSoft.Data;
  23. using FWindSoft.DataFramework;
  24. using FWindSoft.MVVM;
  25. using FWindSoft.Wpf;
  26. using FWindSoft.Wpf.Common;
  27. using FWindSoft.Wpf.Controls;
  28. using Microsoft.Win32;
  29. namespace Com.FirmLib.UI.Insuer
  30. {
  31. /*
  32. * 两种入口
  33. * 1、没有项目信息的,直接创建
  34. * 2、带有项目信息的,项目信息不能改变
  35. */
  36. public class VmInsurancePolicyEditor : BaseViewModel
  37. {
  38. #region 初始化
  39. public VmInsurancePolicyEditor()
  40. {
  41. Init();
  42. }
  43. private void Init()
  44. {
  45. AssetItems = new ObservableCollection<AssetShowItem>();
  46. PolicyFile = new FileItem();
  47. ContactItem = new ContactInformationItem();
  48. PolicyEndDate = DateTimeManager.ConvertDateTime(DateTime.Now);
  49. }
  50. public void Init(LoadParameter parameter)
  51. {
  52. var param = parameter.Parameter as InsuerParameter;
  53. if (param == null)
  54. return;
  55. InsuerId = param.Insuer.Id;
  56. #region 控制条件初始化
  57. ProjectFixed = !string.IsNullOrEmpty(param.Project.Id);
  58. if (ProjectFixed)
  59. {
  60. ProjectNo =ProjectIdManager.GetForeSystemProjectId(param.Project.Id); ;
  61. }
  62. PolicyFixed = !string.IsNullOrEmpty(param.Policy.Id);
  63. if (PolicyFixed)
  64. {
  65. PolicyNo = param.Policy.Id;
  66. if (!string.IsNullOrEmpty(PolicyEndDate))
  67. {
  68. var now=DateTimeManager.ConvertDateTime(DateTime.Now);
  69. if (now.CompareTo(PolicyEndDate)>0)
  70. {
  71. IsEpire = true;
  72. }
  73. }
  74. }
  75. #endregion
  76. //如果上面的值有自然会加载资产信息
  77. //LoadAssetItems();
  78. }
  79. #endregion
  80. #region 属性相关
  81. /// <summary>
  82. /// 保险商Id
  83. /// </summary>
  84. public string InsuerId { get; private set; }
  85. #region 入口控制信息
  86. private bool m_ProjectFixed;
  87. /// <summary>
  88. /// 项目是否固定【编辑进入入口】
  89. /// </summary>
  90. public bool ProjectFixed
  91. {
  92. get { return this.m_ProjectFixed; }
  93. set
  94. {
  95. this.m_ProjectFixed = value;
  96. RaisePropertyChanged(nameof(this.ProjectFixed));
  97. }
  98. }
  99. private bool m_PolicyFixed;
  100. /// <summary>
  101. /// 保单是否固定
  102. /// </summary>
  103. public bool PolicyFixed
  104. {
  105. get { return this.m_PolicyFixed; }
  106. set
  107. {
  108. this.m_PolicyFixed = value;
  109. RaisePropertyChanged(nameof(this.PolicyFixed));
  110. }
  111. }
  112. private bool m_IsEpire;
  113. /// <summary>
  114. /// 保单是否过期
  115. /// </summary>
  116. public bool IsEpire
  117. {
  118. get { return this.m_IsEpire; }
  119. set
  120. {
  121. this.m_IsEpire = value;
  122. RaisePropertyChanged(() => this.IsEpire);
  123. }
  124. }
  125. #endregion
  126. #region 保单信息
  127. /// <summary>
  128. /// 是否是可用的ValidatePolicy
  129. /// </summary>
  130. public bool ValidatePolicy { get; set; }
  131. private string m_PolicyNo;
  132. /// <summary>
  133. /// 保单编号
  134. /// </summary>
  135. public string PolicyNo
  136. {
  137. get { return this.m_PolicyNo; }
  138. set
  139. {
  140. this.m_PolicyNo = value;
  141. if (!IsInEditing)
  142. {
  143. LoadPolicyByNo(SystemProjectId, value);
  144. LoadAssetItems();
  145. }
  146. RaisePropertyChanged(() => this.PolicyNo);
  147. }
  148. }
  149. private string m_PolicyEndDate;
  150. /// <summary>
  151. /// 保单截止日期
  152. /// </summary>
  153. public string PolicyEndDate
  154. {
  155. get { return this.m_PolicyEndDate; }
  156. set
  157. {
  158. this.m_PolicyEndDate = value;
  159. RaisePropertyChanged(() => this.PolicyEndDate);
  160. }
  161. }
  162. private FileItem m_PolicyFile;
  163. /// <summary>
  164. /// 保险文件
  165. /// </summary>
  166. public FileItem PolicyFile
  167. {
  168. get { return this.m_PolicyFile; }
  169. set
  170. {
  171. this.m_PolicyFile = value;
  172. RaisePropertyChanged(() => this.PolicyFile);
  173. }
  174. }
  175. /// <summary>
  176. /// 有效的项目编号
  177. /// </summary>
  178. public bool ValidateProject { get; set; }
  179. #endregion
  180. #region 项目相关信息
  181. private string m_ProjectNo;
  182. /// <summary>
  183. /// 项目编号
  184. /// </summary>
  185. public string ProjectNo
  186. {
  187. get { return this.m_ProjectNo; }
  188. set
  189. {
  190. this.m_ProjectNo = value;
  191. if (!IsInEditing)
  192. {
  193. LoadProjectById(SystemProjectId);
  194. LoadPolicyByNo(SystemProjectId, PolicyNo);
  195. LoadAssetItems();
  196. }
  197. RaisePropertyChanged(() => this.ProjectNo);
  198. }
  199. }
  200. /// <summary>
  201. /// 系统项目Id
  202. /// </summary>
  203. public string SystemProjectId
  204. {
  205. get { return ProjectIdManager.GetSystemProjectId(ProjectNo); }
  206. }
  207. private string m_LocalProjectName;
  208. /// <summary>
  209. /// 本地项目名称
  210. /// </summary>
  211. public string LocalProjectName
  212. {
  213. get { return this.m_LocalProjectName; }
  214. set
  215. {
  216. this.m_LocalProjectName = value;
  217. RaisePropertyChanged(() => this.LocalProjectName);
  218. }
  219. }
  220. #endregion
  221. #region 联系人信息
  222. private ContactInformationItem m_ContactItem;
  223. /// <summary>
  224. /// 联系人信息
  225. /// </summary>
  226. public ContactInformationItem ContactItem
  227. {
  228. get { return this.m_ContactItem; }
  229. set
  230. {
  231. this.m_ContactItem = value;
  232. RaisePropertyChanged(() => this.m_ContactItem);
  233. }
  234. }
  235. #endregion
  236. #region 资产信息
  237. private ObservableCollection<AssetShowItem> m_AssetItems;
  238. /// <summary>
  239. /// 保单资产信息
  240. /// </summary>
  241. public ObservableCollection<AssetShowItem> AssetItems
  242. {
  243. get { return this.m_AssetItems; }
  244. set
  245. {
  246. this.m_AssetItems = value;
  247. RaisePropertyChanged(() => this.AssetItems);
  248. }
  249. }
  250. #endregion
  251. #endregion
  252. #region 命令相关
  253. /// <summary>
  254. /// 上传文件
  255. /// </summary>
  256. /// <param name="parameter"></param>
  257. [Command]
  258. public void UploadCommand(object parameter)
  259. {
  260. try
  261. {
  262. OpenFileDialog ofd = new OpenFileDialog();
  263. ofd.Filter = "pdf文件|*.pdf";
  264. if (ofd.ShowDialog() == true)
  265. {
  266. string fileName = ofd.FileName;
  267. PolicyFile.Name = Path.GetFileName(fileName);
  268. PolicyFile.Path = fileName;
  269. }
  270. }
  271. catch (Exception e)
  272. {
  273. MessageTip.Show(e.ToString());
  274. }
  275. }
  276. public bool CanUploadCommand(object parameter)
  277. {
  278. return true;
  279. }
  280. /// <summary>
  281. /// 查看资产详情
  282. /// </summary>
  283. /// <param name="parameter"></param>
  284. [Command]
  285. public void ScanAsset(object parameter)
  286. {
  287. AssetShowItem item = parameter as AssetShowItem;
  288. if (item == null)
  289. return;
  290. AssetItem parItem = new AssetItem();
  291. parItem.Id = item.Id;
  292. parItem.ProjectId = item.ProjectId;
  293. parItem.FamilyCode = item.FamilyCode;
  294. string url = BllFactory<AssetBll>.Instance.GetAssetUrl(parItem);
  295. WinBrowser.Instance.Show(url, "资产信息");
  296. }
  297. public bool CanScanAsset(object parameter)
  298. {
  299. return true;
  300. }
  301. /// <summary>
  302. /// 保存按钮
  303. /// </summary>
  304. /// <param name="parameter"></param>
  305. [Command]
  306. public void SaveCommand(object parameter)
  307. {
  308. //CreatePolicyAsset();
  309. //return;
  310. try
  311. {
  312. if (CreatePolicyInfo() && CreateLinkInfo()&&CreatePolicyAsset())
  313. {
  314. AfterSuccessSave();
  315. MessageTip.Show(this.GetWindow(), "保存成功");
  316. }
  317. else
  318. {
  319. MessageTip.Show(this.GetWindow(), "保存失败");
  320. }
  321. }
  322. catch (Exception e)
  323. {
  324. MessageTip.Show(e.ToString());
  325. }
  326. }
  327. public bool CanSaveCommand(object parameter)
  328. {
  329. return IsValidated;
  330. }
  331. /// <summary>
  332. /// 选择保单号
  333. /// </summary>
  334. /// <param name="parameter"></param>
  335. [Command]
  336. public void SelectPolicyCommand(object parameter)
  337. {
  338. //传入当前输入的保单号,为显示默认值
  339. //如果项目为空,可以不弹窗
  340. WinPolicySelector win = new WinPolicySelector();
  341. InsuerParameter insuerParameter = new InsuerParameter();
  342. insuerParameter.Insuer.Id = InsuerId;
  343. insuerParameter.Project.Id =SystemProjectId;
  344. insuerParameter.Policy.Id = PolicyNo;
  345. LoadParameter.StartParameter(win, new LoadParameter(insuerParameter));
  346. win.Owner = this.GetWindow();
  347. if (win.ShowDialog() == true)
  348. {
  349. var tempPolicyNo = win.GetRealResult<string>();
  350. if (!string.IsNullOrEmpty(tempPolicyNo))
  351. {
  352. this.PolicyNo = tempPolicyNo;
  353. }
  354. }
  355. }
  356. public bool CanSelectPolicyCommand(object parameter)
  357. {
  358. return ValidateProject;
  359. }
  360. /// <summary>
  361. /// 选择资产信息
  362. /// </summary>
  363. /// <param name="parameter"></param>
  364. [Command]
  365. public void SelectAssetCommand(object parameter)
  366. {
  367. WinInsuerAssetSelector win = new WinInsuerAssetSelector();
  368. win.Owner = this.GetWindow();
  369. SelectAssetContext context = new SelectAssetContext();
  370. context.ProjectId = SystemProjectId;
  371. context.VenderId = InsuerId;
  372. context.ContainIds = new List<string>(AssetItems.Select(p => p.Id));
  373. LoadParameter.StartParameter(win, new LoadParameter(context));
  374. if (win.ShowDialog() == true)
  375. {
  376. if (AssetItems == null)
  377. {
  378. AssetItems = new ObservableCollection<AssetShowItem>();
  379. }
  380. var addRelations = context.AddedItems;
  381. foreach (var item in addRelations)
  382. {
  383. if (AssetItems.Any(c => c.Id == item.Id))
  384. return;
  385. AssetItems.Add(item);
  386. }
  387. }
  388. }
  389. public bool CanSelectAssetCommand(object parameter)
  390. {
  391. return ValidateProject;
  392. }
  393. /// <summary>
  394. /// 删除在保资产
  395. /// </summary>
  396. /// <param name="parameter"></param>
  397. [Command]
  398. public void DeleteCommand(object parameter)
  399. {
  400. AssetShowItem showItem = parameter as AssetShowItem;
  401. if (showItem == null)
  402. return;
  403. //todo 删除资产关联关系,是直接删除,不需要保存确定
  404. var result = MessageTip.Show(this.GetWindow(), "是否要删除", "提示", MessageBoxButton.YesNo);
  405. if (result == MessageBoxResult.Yes)
  406. {
  407. bool flag = false;
  408. if (showItem.InsuerId == InsuerId&&showItem.InsurancePolicyNo==PolicyNo)
  409. {
  410. flag = AssetManager.DeleteInsuerAssets(SystemProjectId, new List<string>() { showItem.Id });
  411. }
  412. else
  413. {
  414. flag = true;
  415. }
  416. if (flag)
  417. {
  418. this.AssetItems.Remove(showItem);
  419. }
  420. else
  421. {
  422. MessageTip.Show(this.GetWindow(), "删除失败");
  423. }
  424. }
  425. }
  426. public bool CanDeleteCommand(object parameter)
  427. {
  428. return true;
  429. }
  430. #endregion
  431. #region 私有方法
  432. /// <summary>
  433. /// 加载资产信息
  434. /// </summary>
  435. private void LoadAssetItems()
  436. {
  437. AssetItems = new ObservableCollection<AssetShowItem>();
  438. if (!ValidateProject ||!ValidatePolicy)
  439. return;
  440. LoadAssetItems(InsuerId, SystemProjectId, PolicyNo);
  441. }
  442. /// <summary>
  443. /// 加载资产信息
  444. /// </summary>
  445. /// <param name="venderId"></param>
  446. /// <param name="projectId"></param>
  447. /// <param name="policyId"></param>
  448. private void LoadAssetItems(string venderId,string projectId,string policyId)
  449. {
  450. var dataItems = BllFactory<InsuerBll>.Instance.GetPolicyAssetItems(venderId, projectId, policyId);
  451. List<AssetShowItem> showItems = new List<AssetShowItem>();
  452. foreach (var dataItem in dataItems)
  453. {
  454. var showItem = new AssetShowItem();
  455. showItem.Id = dataItem.Id;
  456. showItem.ProjectId = SystemProjectId;
  457. showItem.FamilyCode = dataItem.Family;
  458. showItem.LocalName = dataItem.Asset.EquipLocalName;
  459. showItem.LocalCode = dataItem.Asset.EquipLocalId;
  460. showItem.Brand = dataItem.Asset.Brand;
  461. showItem.Product = dataItem.Asset.Product;
  462. showItem.Type = dataItem.Asset.Specification;
  463. showItems.Add(showItem);
  464. }
  465. AssetItems = new ObservableCollection<AssetShowItem>(showItems);
  466. }
  467. /// <summary>
  468. /// 创建联系人信息
  469. /// </summary>
  470. /// <returns></returns>
  471. private bool CreateLinkInfo()
  472. {
  473. LinkerItem item = new LinkerItem();
  474. item.VenderId = InsuerId;
  475. item.ProjectId = SystemProjectId;
  476. item.Name = ContactItem.People;
  477. item.Phone = ContactItem.Telephone;
  478. item.Fax = ContactItem.Fax;
  479. item.Email = ContactItem.Email;
  480. var result = BllFactory<InsuerBll>.Instance.UpdateLinker(item);
  481. if (!result)
  482. {
  483. MessageTip.Show(this.GetWindow(), BllFactory<InsuerBll>.Instance.ErrorMessage ?? string.Empty);
  484. }
  485. return result;
  486. }
  487. /// <summary>
  488. /// 创建保单信息
  489. /// </summary>
  490. /// <returns></returns>
  491. private bool CreatePolicyInfo()
  492. {
  493. InsuerContractItem item = new InsuerContractItem();
  494. item.ProjectId = SystemProjectId;
  495. item.VenderId = InsuerId;
  496. item.ExpireDate =DateTimeManager.ConvertDateTime(PolicyEndDate).ToString("yyyy-MM-dd");
  497. item.InsuranceNo = PolicyNo;
  498. item.InsuranceFile = GetFileKey();//获取相关编码
  499. bool result = false;
  500. var refVenderId = BllFactory<InsuerBll>.Instance.CheckInsuranceNo(PolicyNo);
  501. bool isExist = !string.IsNullOrEmpty(refVenderId);
  502. if (!isExist)
  503. {
  504. result = BllFactory<InsuerBll>.Instance.AddPolicy(item);
  505. }
  506. else
  507. {
  508. if (refVenderId != InsuerId)
  509. {
  510. MessageTip.Show(this.GetWindow(), $"该保单已被其他项目关联");
  511. return result;
  512. }
  513. result = BllFactory<InsuerBll>.Instance.UpdatePolicy(item);
  514. }
  515. if (!result)
  516. {
  517. MessageTip.Show(this.GetWindow(), BllFactory<InsuerBll>.Instance.ErrorMessage ?? string.Empty);
  518. }
  519. return result;
  520. }
  521. #region 相关信息加载
  522. /// <summary>
  523. /// 获取项目,通过项目编号
  524. /// </summary>
  525. /// <param name="projectId"></param>
  526. private void LoadProjectById(string projectId)
  527. {
  528. ProjectItem item = null;
  529. try
  530. {
  531. ValidateProject = false;
  532. if (string.IsNullOrEmpty(projectId))
  533. return;
  534. item = BllFactory<ProjectBll>.Instance.GetProjectItem(projectId);
  535. ValidateProject = item != null;
  536. }
  537. finally
  538. {
  539. #region 修改
  540. if (ValidateProject)
  541. {
  542. LocalProjectName = item.Name;
  543. LoadLinkerItem(projectId, InsuerId);
  544. }
  545. else
  546. {
  547. LocalProjectName = string.Empty;
  548. }
  549. #endregion
  550. }
  551. }
  552. /// <summary>
  553. /// 通过保单编号加载保单信息
  554. /// </summary>
  555. /// <param name="projectId"></param>
  556. /// <param name="policyNo"></param>
  557. private void LoadPolicyByNo(string projectId,string policyNo)
  558. {
  559. InsuerContractItem item = null;
  560. string fileKey = string.Empty;
  561. try
  562. {
  563. ValidatePolicy = false;
  564. if (!ValidateProject|| string.IsNullOrEmpty(policyNo))
  565. return;
  566. item = BllFactory<InsuerBll>.Instance.GetPolicyItem(InsuerId, projectId, policyNo);
  567. ValidatePolicy = item != null;
  568. }
  569. finally
  570. {
  571. if (ValidatePolicy)
  572. {
  573. string timeStr=item.ExpireDate ?? string.Empty;
  574. this.PolicyEndDate = DateTimeManager.ConvertDateTimeH(timeStr).ToString("yyyyMMdd");
  575. fileKey = item.InsuranceFile;
  576. PolicyFile = FileUtils.ParseFileKey(fileKey);
  577. }
  578. else
  579. {
  580. PolicyFile = new FileItem();
  581. }
  582. }
  583. }
  584. #endregion
  585. #region 文件操作
  586. /// <summary>
  587. /// 获取文件键值
  588. /// </summary>
  589. /// <returns></returns>
  590. public string GetFileKey()
  591. {
  592. #region 上传文件
  593. string fileKey =FileUtils.GetUseKey(PolicyFile, InsuerId);
  594. if (string.IsNullOrEmpty(fileKey))
  595. {
  596. return fileKey;
  597. }
  598. if (!File.Exists(PolicyFile.Path))
  599. {
  600. return fileKey;
  601. }
  602. var bytes = File.ReadAllBytes(PolicyFile.Path);
  603. var flag = BllFactory<FileBll>.Instance.UploadFile(BllHttpSetting.Instance.Default, fileKey, bytes);
  604. if (!flag)
  605. {
  606. MessageTip.Show(this.GetWindow(), BllFactory<FileBll>.Instance.ErrorMessage ?? string.Empty);
  607. }
  608. #endregion
  609. return fileKey;
  610. }
  611. #endregion
  612. #endregion
  613. #region 联系人相关
  614. /// <summary>
  615. /// 查询联系人信息
  616. /// </summary>
  617. /// <param name="projectId"></param>
  618. /// <param name="venderId"></param>
  619. private void LoadLinkerItem(string projectId, string venderId)
  620. {
  621. if (string.IsNullOrEmpty(projectId) || string.IsNullOrEmpty(venderId))
  622. return;
  623. var linkerItem = BllFactory<InsuerBll>.Instance.GetLinker(venderId, projectId);
  624. if (linkerItem != null)
  625. {
  626. this.ContactItem.Telephone = linkerItem.Phone;
  627. this.ContactItem.People = linkerItem.Name;
  628. this.ContactItem.Fax = linkerItem.Fax;
  629. this.ContactItem.Email = linkerItem.Email;
  630. }
  631. }
  632. #endregion
  633. #region 保存资产相关
  634. private bool CreatePolicyAsset()
  635. {
  636. if (this.AssetItems == null || !this.AssetItems.Any())
  637. return true;
  638. //保单或保险商任意发生变化,都修改
  639. //判断当前保险单号,和item中的保险单号
  640. List<AssetShowItem> changedItems = new List<AssetShowItem>();
  641. foreach (var item in this.AssetItems)
  642. {
  643. item.CacheParameters.Clear();
  644. var parameters= GetChangeParameters(item);
  645. if (!parameters.IsEmpty)
  646. {
  647. item.CacheParameters.Merge(parameters);
  648. changedItems.Add(item);
  649. }
  650. }
  651. //关掉也不影响保存流程
  652. if (changedItems.Any())
  653. {
  654. AssetSaveContext context = new AssetSaveContext();
  655. context.ChangedItems = changedItems;
  656. WinPolicySaveEnsure win = new WinPolicySaveEnsure();
  657. win.Owner = this.GetWindow();
  658. LoadParameter.StartParameter(win, new LoadParameter(context));
  659. if (win.ShowDialog() == true)
  660. {
  661. context = win.GetRealResult<AssetSaveContext>();
  662. if (context != null)
  663. {
  664. var items = context.ChangedItems ?? new List<AssetShowItem>();
  665. foreach (var item in items)
  666. {
  667. if (context.EditType == EditType.Correct)
  668. {
  669. item.CacheParameters.SetAllParameterTime(context.EffectiveTime);
  670. }
  671. }
  672. }
  673. }
  674. }
  675. #region 修改厂商,保单号发生变化的资产
  676. AssetItems.ToList().ForEach(assetItem =>
  677. {
  678. assetItem.InsuerId = InsuerId;
  679. assetItem.InsurancePolicyNo = PolicyNo;
  680. assetItem.CacheParameters.CheckAdd((new WatchParameter(MBIBuiltInParameter.DPInsuerID)));
  681. assetItem.CacheParameters.CheckAdd((new WatchParameter(MBIBuiltInParameter.InsuranceNum)));
  682. });
  683. bool flag = AssetManager.UpdateAssetItems(SystemProjectId, AssetItems.ToList());
  684. #endregion
  685. return flag;
  686. }
  687. /// <summary>
  688. /// 初始化变化参数
  689. /// </summary>
  690. /// <param name="item"></param>
  691. private WatchParameters GetChangeParameters(AssetShowItem item)
  692. {
  693. WatchParameters parameters = new WatchParameters();
  694. if (!string.IsNullOrEmpty(item.InsuerId)&&item.InsuerId!=InsuerId)
  695. {
  696. parameters.Add(new WatchParameter(MBIBuiltInParameter.DPInsuerID));
  697. }
  698. if (!string.IsNullOrEmpty(item.InsurancePolicyNo)&&item.InsurancePolicyNo!=PolicyNo)
  699. {
  700. parameters.Add(new WatchParameter(MBIBuiltInParameter.InsuranceNum));
  701. }
  702. return parameters;
  703. }
  704. #endregion
  705. /// <summary>
  706. /// 成功保存后处理
  707. /// </summary>
  708. private void AfterSuccessSave()
  709. {
  710. ProjectManager.SyncInsuerProject(SystemProjectId, InsuerId);
  711. LoadAssetItems(InsuerId, SystemProjectId, PolicyNo);
  712. if (this.GetNavigationBar() is NavigationBar bar)
  713. {
  714. bar.RefreshPreWinddow();
  715. }
  716. }
  717. }
  718. }