ZC_ZJHX_SyncService.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using HH.YiDaSyncNC.Dtos;
  2. using HH.YiDaSyncNC.Dtos.NC;
  3. using HH.YiDaSyncNC.Helper;
  4. using HH.YiDaSyncNC.Models;
  5. using Newtonsoft.Json;
  6. using SqlSugar;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Configuration;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using System.Xml.Linq;
  14. namespace HH.YiDaSyncNC.DataSync
  15. {
  16. class ZC_ZJHX_SyncService
  17. {
  18. public string _AppType;
  19. public string _SystemToken;
  20. public string _UserId;
  21. public string _FormId;
  22. public SqlSugarClient _db;
  23. public SqlSugarClient _db_nc;
  24. public string _NCApiUrl;
  25. public static string _Static_PK_fa_card = ConfigurationManager.AppSettings["fa_card"];
  26. public static string _Static_pk_org_jt = ConfigurationManager.AppSettings["pk_org_jt"];
  27. public ZC_ZJHX_SyncService(string AppType, string SystemToken, string UserId, string FormId, SqlSugarClient db, SqlSugarClient db_nc, string NCApiUrl)
  28. {
  29. _AppType = AppType;
  30. _SystemToken = SystemToken;
  31. _UserId = UserId;
  32. _FormId = FormId;
  33. _db = db;
  34. _db_nc = db_nc;
  35. _NCApiUrl = NCApiUrl;
  36. }
  37. public void DataSync()
  38. {
  39. DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
  40. var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"N\",\"textField_ltxyt75i\":\"同步成功\"}").ToList();
  41. LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
  42. LogHelper.WriteLog(JsonConvert.SerializeObject(idList), "idListValue");
  43. var fa_cardList = _db_nc.Queryable<fa_card>().ToList();
  44. var fa_cardhistoryList = _db_nc.Queryable<fa_cardhistory>().ToList();
  45. var i = 1;
  46. foreach (var item in idList)
  47. {
  48. string createTime = "";
  49. string modifyTime = "";
  50. var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
  51. // 如果NC单据号为空,说明没有传入过NC,此时跳过
  52. if (ydDataSource.FirstOrDefault(f => f.Key == "textField_ltxyt75m").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["textField_ltxyt75m"].ToString()))
  53. {
  54. }
  55. else
  56. {
  57. continue;
  58. }
  59. LogHelper.WriteLog("", "【序号 " + i + " / " + idList.Count + "】" + item + " 开始回写");
  60. i++;
  61. var fa_card = fa_cardList.FirstOrDefault(f => f.pk_card == ydDataSource["textField_ltxyt75m"].ToString());
  62. var fa_cardhistory = fa_cardhistoryList.FirstOrDefault(f => f.pk_card == ydDataSource["textField_ltxyt75m"].ToString() && f.laststate_flag == "Y");
  63. var fa_cardhistoryHis = fa_cardhistoryList.Where(f => f.pk_card == ydDataSource["textField_ltxyt75m"].ToString() && f.usedmonth != "0").ToList();
  64. if (fa_card != null && fa_cardhistory != null)
  65. {
  66. var updateData = new Dictionary<string, string>();
  67. // 原值
  68. updateData.Add("numberField_lty0oyv8", fa_card.currmoney == null ? "0" : fa_card.currmoney.Value.ToString("#0.00"));
  69. //// 折旧额
  70. //updateData.Add("numberField_lu2eb47d", fa_cardhistory.accudep_cal);
  71. // 净值
  72. updateData.Add("numberField_lu2ejqd4", fa_card.currmoney == null ? "0" : (fa_card.currmoney.Value - Convert.ToDecimal(fa_cardhistory.accudep_cal)).ToString("#0.00"));
  73. // 计提期数
  74. updateData.Add("numberField_lutjo2dt", fa_cardhistoryHis.OrderByDescending(ob => ob.usedmonth).FirstOrDefault()==null?"0" : fa_cardhistoryHis.OrderByDescending(ob => ob.usedmonth).FirstOrDefault().usedmonth);
  75. var ydRes = _dingTalkService.UpdateFormDataById(updateData, item);
  76. }
  77. }
  78. }
  79. }
  80. }