guoshuang vor 2 Jahren
Ursprung
Commit
cf2fe57c50

+ 4 - 2
HH.YiDaSyncNC/App.config

@@ -20,8 +20,10 @@
     <!--宜搭配置-->
     <add key="AppType" value="APP_ERBDTFS82HOVBPL3NFH0" />
     <add key="SystemToken" value="RRB66F91T97H1WN89QZYC47PKLZO2ZQOUMOQLP" />
-    <add key="UserId" value="153218553429137210" />
-    <!--物料档案-->
+    <!--<add key="UserId" value="153218553429137210" />-->
+    <add key="UserId" value="023515341200-1817752732" />
+
+  <!--物料档案-->
     <add key="FormId_WL" value="FORM-C106F33B9A73410FBE750E8FFB72C2775YCF" />
     <!--供应商档案-->
     <add key="FormId_GYS" value="FORM-87B1C91392824C5AA9330F574C157622855R" />

Datei-Diff unterdrückt, da er zu groß ist
+ 476 - 474
HH.YiDaSyncNC/DataSync/BZJ_SyncService.cs


+ 114 - 111
HH.YiDaSyncNC/DataSync/CGDD_SyncService.cs

@@ -48,14 +48,17 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
+            //var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
 
             //var idList = _dingTalkService.GetFormIdList();
 
-            // var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_lr26y1io\":\"DD202407190170\"}");
+            var idList = _dingTalkService.GetFormIdList("{\"textField_lr26y1io\":\"TEST202408190210\"}");
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
+            
+
+
             // 获取当前最大Id
             var newId = 100000001;
             var maxData = _db_nc.Queryable<po_order_bb>().Where(w => w.pk_order_bb.Contains(_Static_PK_po_order_bb)).OrderByDescending(obd => obd.pk_order_bb).First();
@@ -76,162 +79,162 @@ namespace HH.YiDaSyncNC.DataSync
             var sm_userDic = _db_nc.Queryable<sm_user>().ToList();
             #endregion
 
-            #region 插入数据
-            // 向NC插入数据
-            foreach (var item in idList)
-            {
-                string createTime = "";
-                string modifyTime = "";
+            //#region 插入数据
+            //// 向NC插入数据
+            //foreach (var item in idList)
+            //{
+            //    string createTime = "";
+            //    string modifyTime = "";
 
-                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+            //    var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
 
-                var dataSource = new CGDD_SyncServiceModel.DataModel();
-                dataSource.集团 = "0";
+            //    var dataSource = new CGDD_SyncServiceModel.DataModel();
+            //    dataSource.集团 = "0";
 
-                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lr26l3h7").Value != null)
-                {
-                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lr26l3h7"].ToString()))
-                    {
-                        var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lr26l3h7"].ToString());
-                        if (tempData != null)
-                        {
-                            dataSource.组织 = tempData.code; // 组织
-                        }
-                    }
-                }
+            //    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lr26l3h7").Value != null)
+            //    {
+            //        if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lr26l3h7"].ToString()))
+            //        {
+            //            var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lr26l3h7"].ToString());
+            //            if (tempData != null)
+            //            {
+            //                dataSource.组织 = tempData.code; // 组织
+            //            }
+            //        }
+            //    }
 
-                dataSource.订单编号 = ydDataSource["textField_lr26y1io"].ToString();
-                dataSource.订单日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                dataSource.供应商 = ydDataSource["textField_lr26l3hf"].ToString();
+            //    dataSource.订单编号 = ydDataSource["textField_lr26y1io"].ToString();
+            //    dataSource.订单日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            //    dataSource.供应商 = ydDataSource["textField_lr26l3hf"].ToString();
 
-                dataSource.制单人 = "OA-NC";
-                dataSource.创建人 = "OA-NC";
+            //    dataSource.制单人 = "OA-NC";
+            //    dataSource.创建人 = "OA-NC";
 
-                dataSource.制单时间 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                dataSource.创建时间 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            //    dataSource.制单时间 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            //    dataSource.创建时间 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
-                var detailList = new List<CGDD_SyncServiceModel.DataModel.OrderB>();
+            //    var detailList = new List<CGDD_SyncServiceModel.DataModel.OrderB>();
 
-                var detailObjList = (List<object>)ydDataSource["tableField_ltxyt76f"]; // 采购物耗明细
-                foreach (var objItem in detailObjList)
-                {
-                    var detailItem = new CGDD_SyncServiceModel.DataModel.OrderB();
+            //    var detailObjList = (List<object>)ydDataSource["tableField_ltxyt76f"]; // 采购物耗明细
+            //    foreach (var objItem in detailObjList)
+            //    {
+            //        var detailItem = new CGDD_SyncServiceModel.DataModel.OrderB();
 
-                    detailItem.数量 = ((Dictionary<string, object>)objItem)["numberField_ltxyt75z"].ToString(); // 主数量
+            //        detailItem.数量 = ((Dictionary<string, object>)objItem)["numberField_ltxyt75z"].ToString(); // 主数量
 
-                    if (detailItem.数量 == "0")
-                    {
-                        continue;
-                    }
+            //        if (detailItem.数量 == "0")
+            //        {
+            //            continue;
+            //        }
 
-                    detailItem.物料编码 = ((Dictionary<string, object>)objItem)["textField_ltxyt75w"].ToString(); // 物料编码
-                    // detailItem.物料名称 = ((Dictionary<string, object>)objItem)["textField_ltxyt75x"].ToString(); // 物料编码
+            //        detailItem.物料编码 = ((Dictionary<string, object>)objItem)["textField_ltxyt75w"].ToString(); // 物料编码
+            //        // detailItem.物料名称 = ((Dictionary<string, object>)objItem)["textField_ltxyt75x"].ToString(); // 物料编码
 
-                    if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString()))
-                    {
-                        DBHelper.WriteLog(((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString(), "计量单位");
-                        detailItem.计量单位 = bd_measdocDic.FirstOrDefault(f => f.name.Trim() == ((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString().Trim()).code; // 计量单位
-                    }
+            //        if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString()))
+            //        {
+            //            DBHelper.WriteLog(((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString(), "计量单位");
+            //            detailItem.计量单位 = bd_measdocDic.FirstOrDefault(f => f.name.Trim() == ((Dictionary<string, object>)objItem)["textField_ltxyt75y"].ToString().Trim()).code; // 计量单位
+            //        }
 
-                    detailItem.项目 = ((Dictionary<string, object>)objItem)["textField_lu23oe2w"].ToString(); // 项目编码
+            //        detailItem.项目 = ((Dictionary<string, object>)objItem)["textField_lu23oe2w"].ToString(); // 项目编码
 
-                    detailItem.无税单价 = ((Dictionary<string, object>)objItem)["numberField_lutkmlw0"].ToString(); // 本币无税单价
+            //        detailItem.无税单价 = ((Dictionary<string, object>)objItem)["numberField_lutkmlw0"].ToString(); // 本币无税单价
 
-                    detailItem.含税单价 = ((Dictionary<string, object>)objItem)["numberField_ltxyt761"].ToString(); // 含税单价
+            //        detailItem.含税单价 = ((Dictionary<string, object>)objItem)["numberField_ltxyt761"].ToString(); // 含税单价
 
-                    detailItem.无税金额 = ((Dictionary<string, object>)objItem)["numberField_lutkmlvz"].ToString(); // 无税金额
+            //        detailItem.无税金额 = ((Dictionary<string, object>)objItem)["numberField_lutkmlvz"].ToString(); // 无税金额
 
-                    detailItem.税额 = ((Dictionary<string, object>)objItem)["numberField_lutkmlw3"].ToString(); // 税额
+            //        detailItem.税额 = ((Dictionary<string, object>)objItem)["numberField_lutkmlw3"].ToString(); // 税额
 
-                    detailItem.价税合计 = ((Dictionary<string, object>)objItem)["numberField_ltxyt764"].ToString(); // 本币价税合计
+            //        detailItem.价税合计 = ((Dictionary<string, object>)objItem)["numberField_ltxyt764"].ToString(); // 本币价税合计
 
-                    detailItem.联系人 = ((Dictionary<string, object>)objItem)["textField_lutkmlwb"].ToString(); // 
+            //        detailItem.联系人 = ((Dictionary<string, object>)objItem)["textField_lutkmlwb"].ToString(); // 
 
-                    detailItem.收货地址 = ((Dictionary<string, object>)objItem)["textField_ltxyt76a"].ToString(); // 
+            //        detailItem.收货地址 = ((Dictionary<string, object>)objItem)["textField_ltxyt76a"].ToString(); // 
 
-                    detailList.Add(detailItem);
-                }
+            //        detailList.Add(detailItem);
+            //    }
 
-                dataSource.pk_order_b = detailList;
+            //    dataSource.pk_order_b = detailList;
 
 
-                dataSource.数量 = dataSource.pk_order_b.Sum(s => Convert.ToDecimal(s.数量)).ToString();
-                dataSource.价税合计 = dataSource.pk_order_b.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
+            //    dataSource.数量 = dataSource.pk_order_b.Sum(s => Convert.ToDecimal(s.数量)).ToString();
+            //    dataSource.价税合计 = dataSource.pk_order_b.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
 
 
 
-                var results = NCImportFunc.NCImport(CGDD_SyncServiceModel.ImportXml.TemplateHeade(), CGDD_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+            //    var results = NCImportFunc.NCImport(CGDD_SyncServiceModel.ImportXml.TemplateHeade(), CGDD_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=01&groupcode=0");
 
-                DBHelper.WriteLog(results);
-                XElement xE = XElement.Parse(results);
+            //    DBHelper.WriteLog(results);
+            //    XElement xE = XElement.Parse(results);
 
-                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+            //    string resultcode = xE.Element("sendresult").Element("resultcode").Value;
 
-                DBHelper.WriteLog($"状态码:" + resultcode);
+            //    DBHelper.WriteLog($"状态码:" + resultcode);
 
-                string content = xE.Element("sendresult").Element("content")?.Value;
+            //    string content = xE.Element("sendresult").Element("content")?.Value;
 
-                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+            //    string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
 
-                var ncResData = new YiDaResDto()
-                {
-                    syncTime = DateTime.Now,
-                };
+            //    var ncResData = new YiDaResDto()
+            //    {
+            //        syncTime = DateTime.Now,
+            //    };
 
-                // NC接口执行完成后的处理
-                if (resultcode == "1")
-                {
-                    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+            //    // NC接口执行完成后的处理
+            //    if (resultcode == "1")
+            //    {
+            //        DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
 
-                    ncResData.bSuccess = true;
-                    ncResData.ncNo = xE.Element("sendresult").Element("content").Value;
-                    ncResData.log = "同步成功!";
+            //        ncResData.bSuccess = true;
+            //        ncResData.ncNo = xE.Element("sendresult").Element("content").Value;
+            //        ncResData.log = "同步成功!";
 
-                    // 更新审核状态,并插入在途状态表
-                    var po_order = _db_nc.Queryable<po_order>().First(f => f.pk_order == xE.Element("sendresult").Element("content").Value);
-                    var po_order_b = _db_nc.Queryable<po_order_b>().Where(w => w.pk_order == xE.Element("sendresult").Element("content").Value).ToList();
+            //        // 更新审核状态,并插入在途状态表
+            //        var po_order = _db_nc.Queryable<po_order>().First(f => f.pk_order == xE.Element("sendresult").Element("content").Value);
+            //        var po_order_b = _db_nc.Queryable<po_order_b>().Where(w => w.pk_order == xE.Element("sendresult").Element("content").Value).ToList();
 
-                    po_order.approver = "1001G1100000000B6553";
-                    po_order.forderstatus = "3";
-                    po_order.taudittime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            //        po_order.approver = "1001G1100000000B6553";
+            //        po_order.forderstatus = "3";
+            //        po_order.taudittime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
-                    _db_nc.Updateable(po_order).ExecuteCommand();
+            //        _db_nc.Updateable(po_order).ExecuteCommand();
 
-                    foreach (var itemB in po_order_b)
-                    {
-                        var bb = new po_order_bb();
-                        bb.dplanarrvdate = itemB.dplanarrvdate;
-                        bb.nmaxhandlenum = itemB.nastnum;
-                        bb.nonwaynum = itemB.nastnum;
+            //        foreach (var itemB in po_order_b)
+            //        {
+            //            var bb = new po_order_bb();
+            //            bb.dplanarrvdate = itemB.dplanarrvdate;
+            //            bb.nmaxhandlenum = itemB.nastnum;
+            //            bb.nonwaynum = itemB.nastnum;
 
-                        bb.pk_group = itemB.pk_group;
-                        bb.pk_order = itemB.pk_order;
-                        bb.pk_order_b = itemB.pk_order_b;
-                        bb.pk_org = itemB.pk_org;
-                        bb.pk_org_v = itemB.pk_org_v;
-                        bb.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+            //            bb.pk_group = itemB.pk_group;
+            //            bb.pk_order = itemB.pk_order;
+            //            bb.pk_order_b = itemB.pk_order_b;
+            //            bb.pk_org = itemB.pk_org;
+            //            bb.pk_org_v = itemB.pk_org_v;
+            //            bb.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
-                        bb.pk_order_bb = _Static_PK_po_order_bb + newId;
+            //            bb.pk_order_bb = _Static_PK_po_order_bb + newId;
 
-                        _db_nc.Insertable(bb).ExecuteCommand();
+            //            _db_nc.Insertable(bb).ExecuteCommand();
 
-                        newId++;
-                    }
-                }
-                else
-                {
+            //            newId++;
+            //        }
+            //    }
+            //    else
+            //    {
 
-                    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作失败!" + resultdescription + ";");
+            //        DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作失败!" + resultdescription + ";");
 
-                    ncResData.bSuccess = false;
-                    ncResData.ncNo = "";
-                    ncResData.log = "同步失败!原因为【" + resultdescription + "】";
-                }
+            //        ncResData.bSuccess = false;
+            //        ncResData.ncNo = "";
+            //        ncResData.log = "同步失败!原因为【" + resultdescription + "】";
+            //    }
 
-                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+            //    var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
 
 
-            }
+            //}
 
             //var ncResData = new YiDaResDto()
             //{
@@ -252,7 +255,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             //var ydRes = _dingTalkService.UpdateFormDataById(data, "FINST-MBD66F91F5WMGNLQB7QSA5T73RUZ17D0Y6SYLACT");
 
-            #endregion
+            //#endregion
         }
     }
 }

+ 11 - 0
HH.YiDaSyncNC/DataSync/FK_CLBX_SyncService.cs

@@ -216,6 +216,17 @@ namespace HH.YiDaSyncNC.DataSync
                     detailList.Add(detailItem);
                 }
 
+                // 交通费(新版字段)
+                if (ydDataSource.FirstOrDefault(f => f.Key == "numberField_lz15kh79").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["numberField_lz15kh79"].ToString()) && ydDataSource["numberField_lz15kh79"].ToString() != "0")
+                {
+                    var detailItem = new FK_CLBX_SyncServiceModel.DataModel.Item();
+                    detailItem.收支项目 = "2";
+                    detailItem.价税合计 = ydDataSource["numberField_lz15kh79"].ToString();
+                    detailItem.无税金额 = ydDataSource["numberField_lz15kh79"].ToString();
+                    detailItem.税额 = "0";
+                    detailList.Add(detailItem);
+                }
+
                 dataSource.明细 = detailList;
                 dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
 

+ 2 - 2
HH.YiDaSyncNC/DataSync/FK_FYBX_SyncService.cs

@@ -54,9 +54,9 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetFormCodeList("");
+            // var idList = _dingTalkService.GetFormCodeList("");
 
-            // var idList = _dingTalkService.GetFormIdList("{\"serialNumberField_lsx02quw\":\"FYBX202407170105\"}");
+            var idList = _dingTalkService.GetFormIdList("{\"serialNumberField_lsx02quw\":\"FYBX202408010186\"}");
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 

+ 0 - 4
HH.YiDaSyncNC/DataSync/FK_SyncService.cs

@@ -51,10 +51,6 @@ namespace HH.YiDaSyncNC.DataSync
             // 宜搭全量数据Id
             var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"日常费用付款\"}");
 
-            //var idList = _dingTalkService.GetFormIdList("{\"selectField_lwiuvaws\":\"日常费用付款\",\"selectField_lrnh633d\":\"结付\"}");
-
-            //var idList = _dingTalkService.GetFormIdList("{\"textField_lvj2jklf\":\"FK2024070500023\"}");
-
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
             #region 获取NC中选项数据的Id

+ 875 - 0
HH.YiDaSyncNC/DataSync/FK_XZ_SyncService.cs

@@ -50,6 +50,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             // 宜搭全量数据Id
             var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"应付\",\"selectField_lwiuvaws\":\"发放公积金\"}");
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"发放公积金\"}"));
 
             //var idList = _dingTalkService.GetFormIdList("{\"selectField_lwiuvaws\":\"日常费用付款\",\"selectField_lrnh633d\":\"结付\"}");
 
@@ -270,6 +271,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             // 宜搭全量数据Id
             var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"应付\",\"selectField_lwiuvaws\":\"发放社保\"}");
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"发放社保\"}"));
 
             //var idList = _dingTalkService.GetFormIdList("{\"selectField_lwiuvaws\":\"日常费用付款\",\"selectField_lrnh633d\":\"结付\"}");
 
@@ -485,5 +487,878 @@ namespace HH.YiDaSyncNC.DataSync
             }
             #endregion
         }
+
+        public void DataSync_薪资()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"薪资计提\"}");
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"薪资发放\"}"));
+
+            LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
+            #region 获取NC中选项数据的Id
+            var bd_custclassDic = _db_nc.Queryable<bd_custclass>().ToList();
+            var org_orgsDic = _db_nc.Queryable<org_orgs>().ToList();
+            #endregion
+
+            #region 插入数据
+            // 向NC插入数据
+            foreach (var item in idList)
+            {
+
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                var ncResData = new List<YiDaResDto>();
+
+                #region 表头
+                // 表头
+                var dataSource = new FK_XZ_SyncServiceModel.DataModel();
+
+                dataSource.付款类型 = "F3-Cxx-007";
+
+                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lvywoqmb").Value != null)
+                {
+                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvywoqmb"].ToString()))
+                    {
+                        var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lvywoqmb"].ToString());
+                        if (tempData != null)
+                        {
+                            dataSource.组织 = tempData.code; // 组织
+                        }
+                    }
+                }
+
+                dataSource.支付人 = "OA-NC";
+
+                if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lwitiobz"].ToString()))
+                {
+                    dataSource.支付日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lwitiobz"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+
+                dataSource.创建人 = "OA-NC";
+                dataSource.制单人 = "OA-NC";
+                dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.生效人 = "OA-NC";
+                dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
+                dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
+
+                dataSource.年份 = DateTime.Now.ToString("yyyy");
+                dataSource.月份 = DateTime.Now.ToString("MM");
+
+                dataSource.起算日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                // 价税合计
+
+                #endregion
+
+                var detailList = new List<FK_XZ_SyncServiceModel.DataModel.Item>();
+
+                #region 明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrngrtgu").Value != null)
+                {
+                    var detailObjList1 = (List<object>)ydDataSource["tableField_lrngrtgu"]; // 付款明细
+
+                    if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["numberField_lvua3j17"].ToString()))
+                    {
+                        foreach (var objItem in detailObjList1)
+                        {
+                            var detailItem = new FK_XZ_SyncServiceModel.DataModel.Item();
+
+                            var hsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvua3j17"].ToString());
+                            //var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            //var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = hsje.ToString();
+
+
+
+                            // 税额
+                            detailItem.税额 = "0";
+
+                            detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
+
+                            detailItem.科目 = ((Dictionary<string, object>)objItem)["textField_lwitioce"].ToString();
+
+                            var a = ((Dictionary<string, object>)objItem)["textField_lypfw8rw"].ToString();
+                            if (a.Contains("PM"))
+                                detailItem.项目 = a;
+                            else
+                                detailItem.部门 = a;
+
+                            var cdzt = ((Dictionary<string, object>)objItem)["selectField_lwiufn1k"].ToString();
+
+                            detailItem.承担主体 = cdzt == "公司" ? "1001G1100000000B83QS" : cdzt == "个人" ? "1001G1100000000B83QT" : "";
+
+                            detailList.Add(detailItem);
+                        }
+                    }
+                }
+                #endregion
+
+                dataSource.明细 = detailList;
+                dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
+
+                if (string.IsNullOrWhiteSpace(dataSource.付款银行账户))
+                {
+                    var resData = new YiDaResDto();
+                    resData.bSuccess = false;
+                    resData.syncTime = DateTime.Now;
+                    resData.ncNo = "";
+                    resData.log = "付款银行账户为空,NC无法执行审批操作";
+
+                    _dingTalkService.UpdateFormDataSyncDataById(resData, item);
+
+                    continue;
+                }
+
+                var results = NCImportFunc.NCImport(FK_XZ_SyncServiceModel.ImportXml.TemplateHeade(), FK_XZ_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
+
+                XElement xE = XElement.Parse(results);
+                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+
+                if (resultcode == "1")
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = xE.Element("sendresult").Element("content").Value,
+                        log = "同步成功!"
+                    });
+
+                    var recitemData = _db_nc.Queryable<ap_payitem>().Where(w => w.pk_paybill == xE.Element("sendresult").Element("content").Value).ToList();
+
+                    foreach (var recitem in recitemData)
+                    {
+                        var a = dataSource.明细.FirstOrDefault(f => f.无税金额 == recitem.def11);
+
+                        recitem.scomment = a.摘要;
+
+                        _db_nc.Updateable(recitem).ExecuteCommand();
+                    }
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + resultdescription + "】!"
+                    });
+                }
+
+                var results_付款单审核 = HttpRequestHelper.ApproveNCFKBill(xE.Element("sendresult").Element("content").Value);
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results_付款单审核), "results_付款单审核");
+
+                if (results_付款单审核.state == 0)
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = "",
+                        log = "同步成功!"
+                    });
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + results_付款单审核.msg + "】!"
+                    });
+                }
+
+                var finalResData = new YiDaResDto();
+
+                if (ncResData.FirstOrDefault(f => !f.bSuccess) != null)
+                {
+                    finalResData.bSuccess = false;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+                else
+                {
+                    finalResData.bSuccess = true;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(finalResData, item);
+            }
+            #endregion
+        }
+
+        public void DataSync_发放人力外包工资()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"发放人力外包工资\"}");
+
+            LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
+            #region 获取NC中选项数据的Id
+            var bd_custclassDic = _db_nc.Queryable<bd_custclass>().ToList();
+            var org_orgsDic = _db_nc.Queryable<org_orgs>().ToList();
+            #endregion
+
+            #region 插入数据
+            // 向NC插入数据
+            foreach (var item in idList)
+            {
+
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                var ncResData = new List<YiDaResDto>();
+
+                #region 表头
+                // 表头
+                var dataSource = new FK_XZ_SyncServiceModel.DataModel();
+
+                dataSource.付款类型 = "F3-Cxx-004";
+
+                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lvywoqmb").Value != null)
+                {
+                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvywoqmb"].ToString()))
+                    {
+                        var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lvywoqmb"].ToString());
+                        if (tempData != null)
+                        {
+                            dataSource.组织 = tempData.code; // 组织
+                        }
+                    }
+                }
+
+                dataSource.支付人 = "OA-NC";
+
+                if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lwitiobz"].ToString()))
+                {
+                    dataSource.支付日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lwitiobz"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+
+                dataSource.创建人 = "OA-NC";
+                dataSource.制单人 = "OA-NC";
+                dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.生效人 = "OA-NC";
+                dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
+                dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
+
+                dataSource.年份 = DateTime.Now.ToString("yyyy");
+                dataSource.月份 = DateTime.Now.ToString("MM");
+
+                dataSource.起算日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                // 价税合计
+
+                #endregion
+
+                var detailList = new List<FK_XZ_SyncServiceModel.DataModel.Item>();
+
+                #region 明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrngrtgu").Value != null)
+                {
+                    var detailObjList1 = (List<object>)ydDataSource["tableField_lrngrtgu"]; // 付款明细
+
+                    if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["numberField_lvua3j17"].ToString()))
+                    {
+                        foreach (var objItem in detailObjList1)
+                        {
+                            var detailItem = new FK_XZ_SyncServiceModel.DataModel.Item();
+
+                            var hsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvua3j17"].ToString());
+                            //var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            //var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = hsje.ToString();
+
+
+
+                            // 税额
+                            detailItem.税额 = "0";
+
+                            detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
+
+                            detailItem.科目 = ((Dictionary<string, object>)objItem)["textField_lwitioce"].ToString();
+
+                            var a = ((Dictionary<string, object>)objItem)["textField_lypfw8rw"].ToString();
+                            if (a.Contains("PM"))
+                                detailItem.项目 = a;
+                            else
+                                detailItem.部门 = a;
+
+                            var cdzt = ((Dictionary<string, object>)objItem)["selectField_lwiufn1k"].ToString();
+
+                            detailItem.承担主体 = cdzt == "公司" ? "1001G1100000000B83QS" : cdzt == "个人" ? "1001G1100000000B83QT" : "";
+
+                            detailList.Add(detailItem);
+                        }
+                    }
+                }
+                #endregion
+
+                dataSource.明细 = detailList;
+                dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
+
+                if (string.IsNullOrWhiteSpace(dataSource.付款银行账户))
+                {
+                    var resData = new YiDaResDto();
+                    resData.bSuccess = false;
+                    resData.syncTime = DateTime.Now;
+                    resData.ncNo = "";
+                    resData.log = "付款银行账户为空,NC无法执行审批操作";
+
+                    _dingTalkService.UpdateFormDataSyncDataById(resData, item);
+
+                    continue;
+                }
+
+                var results = NCImportFunc.NCImport(FK_XZ_SyncServiceModel.ImportXml.TemplateHeade(), FK_XZ_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
+
+                XElement xE = XElement.Parse(results);
+                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+
+                if (resultcode == "1")
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = xE.Element("sendresult").Element("content").Value,
+                        log = "同步成功!"
+                    });
+
+                    var recitemData = _db_nc.Queryable<ap_payitem>().Where(w => w.pk_paybill == xE.Element("sendresult").Element("content").Value).ToList();
+
+                    foreach (var recitem in recitemData)
+                    {
+                        var a = dataSource.明细.FirstOrDefault(f => f.无税金额 == recitem.def11);
+
+                        recitem.scomment = a.摘要;
+
+                        _db_nc.Updateable(recitem).ExecuteCommand();
+                    }
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + resultdescription + "】!"
+                    });
+                }
+
+                var results_付款单审核 = HttpRequestHelper.ApproveNCFKBill(xE.Element("sendresult").Element("content").Value);
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results_付款单审核), "results_付款单审核");
+
+                if (results_付款单审核.state == 0)
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = "",
+                        log = "同步成功!"
+                    });
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + results_付款单审核.msg + "】!"
+                    });
+                }
+
+                var finalResData = new YiDaResDto();
+
+                if (ncResData.FirstOrDefault(f => !f.bSuccess) != null)
+                {
+                    finalResData.bSuccess = false;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+                else
+                {
+                    finalResData.bSuccess = true;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(finalResData, item);
+            }
+            #endregion
+        }
+
+        public void DataSync_公积金_预付()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"发放公积金\"}");
+
+            LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
+            #region 获取NC中选项数据的Id
+            var bd_custclassDic = _db_nc.Queryable<bd_custclass>().ToList();
+            var org_orgsDic = _db_nc.Queryable<org_orgs>().ToList();
+            #endregion
+
+            #region 插入数据
+            // 向NC插入数据
+            foreach (var item in idList)
+            {
+
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                var ncResData = new List<YiDaResDto>();
+
+                #region 表头
+                // 表头
+                var dataSource = new FK_XZ_SyncServiceModel.DataModel();
+
+                dataSource.付款类型 = "F3-Cxx-008";
+                dataSource.是否预付 = "1";
+
+                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lvywoqmb").Value != null)
+                {
+                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvywoqmb"].ToString()))
+                    {
+                        var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lvywoqmb"].ToString());
+                        if (tempData != null)
+                        {
+                            dataSource.组织 = tempData.code; // 组织
+                        }
+                    }
+                }
+
+                dataSource.支付人 = "OA-NC";
+
+                if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lwitiobz"].ToString()))
+                {
+                    dataSource.支付日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lwitiobz"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+
+                dataSource.创建人 = "OA-NC";
+                dataSource.制单人 = "OA-NC";
+                dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.生效人 = "OA-NC";
+                dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
+                dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
+
+                dataSource.年份 = DateTime.Now.ToString("yyyy");
+                dataSource.月份 = DateTime.Now.ToString("MM");
+
+                dataSource.起算日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                // 价税合计
+
+                #endregion
+
+                var detailList = new List<FK_XZ_SyncServiceModel.DataModel.Item>();
+
+                #region 明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrngrtgu").Value != null)
+                {
+                    var detailObjList1 = (List<object>)ydDataSource["tableField_lrngrtgu"]; // 付款明细
+
+                    if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["numberField_lvua3j17"].ToString()))
+                    {
+                        foreach (var objItem in detailObjList1)
+                        {
+                            var detailItem = new FK_XZ_SyncServiceModel.DataModel.Item();
+
+                            var hsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvua3j17"].ToString());
+                            //var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            //var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = hsje.ToString();
+
+                            // 税额
+                            detailItem.税额 = "0";
+
+                            detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
+
+                            detailItem.科目 = ((Dictionary<string, object>)objItem)["textField_lwitioce"].ToString();
+
+                            var a = ((Dictionary<string, object>)objItem)["textField_lypfw8rw"].ToString();
+                            if (a.Contains("PM"))
+                                detailItem.项目 = a;
+                            else
+                                detailItem.部门 = a;
+
+                            var cdzt = ((Dictionary<string, object>)objItem)["selectField_lwiufn1k"].ToString();
+
+                            detailItem.承担主体 = cdzt == "公司" ? "1001G1100000000B83QS" : cdzt == "个人" ? "1001G1100000000B83QT" : "";
+
+                            detailList.Add(detailItem);
+                        }
+                    }
+                }
+                #endregion
+
+                dataSource.明细 = detailList;
+                dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
+
+                if (string.IsNullOrWhiteSpace(dataSource.付款银行账户))
+                {
+                    var resData = new YiDaResDto();
+                    resData.bSuccess = false;
+                    resData.syncTime = DateTime.Now;
+                    resData.ncNo = "";
+                    resData.log = "付款银行账户为空,NC无法执行审批操作";
+
+                    _dingTalkService.UpdateFormDataSyncDataById(resData, item);
+
+                    continue;
+                }
+
+                var results = NCImportFunc.NCImport(FK_XZ_SyncServiceModel.ImportXml.TemplateHeade(), FK_XZ_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
+
+                XElement xE = XElement.Parse(results);
+                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+
+                if (resultcode == "1")
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = xE.Element("sendresult").Element("content").Value,
+                        log = "同步成功!"
+                    });
+
+                    var recitemData = _db_nc.Queryable<ap_payitem>().Where(w => w.pk_paybill == xE.Element("sendresult").Element("content").Value).ToList();
+
+                    foreach (var recitem in recitemData)
+                    {
+                        var a = dataSource.明细.FirstOrDefault(f => f.无税金额 == recitem.def11);
+
+                        recitem.scomment = a.摘要;
+
+                        _db_nc.Updateable(recitem).ExecuteCommand();
+                    }
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + resultdescription + "】!"
+                    });
+                }
+
+                var results_付款单审核 = HttpRequestHelper.ApproveNCFKBill(xE.Element("sendresult").Element("content").Value);
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results_付款单审核), "results_付款单审核");
+
+                if (results_付款单审核.state == 0)
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = "",
+                        log = "同步成功!"
+                    });
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + results_付款单审核.msg + "】!"
+                    });
+                }
+
+                var finalResData = new YiDaResDto();
+
+                if (ncResData.FirstOrDefault(f => !f.bSuccess) != null)
+                {
+                    finalResData.bSuccess = false;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+                else
+                {
+                    finalResData.bSuccess = true;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(finalResData, item);
+            }
+            #endregion
+        }
+
+        public void DataSync_社保_预付()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"发放社保\"}");
+
+            LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
+            #region 获取NC中选项数据的Id
+            var bd_custclassDic = _db_nc.Queryable<bd_custclass>().ToList();
+            var org_orgsDic = _db_nc.Queryable<org_orgs>().ToList();
+            #endregion
+
+            #region 插入数据
+            // 向NC插入数据
+            foreach (var item in idList)
+            {
+
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                var ncResData = new List<YiDaResDto>();
+
+                #region 表头
+                // 表头
+                var dataSource = new FK_XZ_SyncServiceModel.DataModel();
+
+                dataSource.付款类型 = "F3-Cxx-009";
+                dataSource.是否预付 = "1";
+
+                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lvywoqmb").Value != null)
+                {
+                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvywoqmb"].ToString()))
+                    {
+                        var tempData = org_orgsDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lvywoqmb"].ToString());
+                        if (tempData != null)
+                        {
+                            dataSource.组织 = tempData.code; // 组织
+                        }
+                    }
+                }
+
+                dataSource.支付人 = "OA-NC";
+
+                if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lwitiobz"].ToString()))
+                {
+                    dataSource.支付日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lwitiobz"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+
+                dataSource.创建人 = "OA-NC";
+                dataSource.制单人 = "OA-NC";
+                dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.生效人 = "OA-NC";
+                dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
+                dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
+
+                dataSource.年份 = DateTime.Now.ToString("yyyy");
+                dataSource.月份 = DateTime.Now.ToString("MM");
+
+                dataSource.起算日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+                // 价税合计
+
+                #endregion
+
+                var detailList = new List<FK_XZ_SyncServiceModel.DataModel.Item>();
+
+                #region 明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrngrtgu").Value != null)
+                {
+                    var detailObjList1 = (List<object>)ydDataSource["tableField_lrngrtgu"]; // 付款明细
+
+                    if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["numberField_lvua3j17"].ToString()))
+                    {
+                        foreach (var objItem in detailObjList1)
+                        {
+                            var detailItem = new FK_XZ_SyncServiceModel.DataModel.Item();
+
+                            var hsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvua3j17"].ToString());
+                            //var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            //var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = hsje.ToString();
+
+
+
+                            // 税额
+                            detailItem.税额 = "0";
+
+                            detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
+
+                            detailItem.科目 = ((Dictionary<string, object>)objItem)["textField_lwitioce"].ToString();
+
+                            var a = ((Dictionary<string, object>)objItem)["textField_lypfw8rw"].ToString();
+                            if (a.Contains("PM"))
+                                detailItem.项目 = a;
+                            else
+                                detailItem.部门 = a;
+
+                            var cdzt = ((Dictionary<string, object>)objItem)["selectField_lwiufn1k"].ToString();
+
+                            detailItem.承担主体 = cdzt == "公司" ? "1001G1100000000B83QS" : cdzt == "个人" ? "1001G1100000000B83QT" : "";
+
+                            detailList.Add(detailItem);
+                        }
+                    }
+                }
+                #endregion
+
+                dataSource.明细 = detailList;
+                dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
+
+                if (string.IsNullOrWhiteSpace(dataSource.付款银行账户))
+                {
+                    var resData = new YiDaResDto();
+                    resData.bSuccess = false;
+                    resData.syncTime = DateTime.Now;
+                    resData.ncNo = "";
+                    resData.log = "付款银行账户为空,NC无法执行审批操作";
+
+                    _dingTalkService.UpdateFormDataSyncDataById(resData, item);
+
+                    continue;
+                }
+
+                var results = NCImportFunc.NCImport(FK_XZ_SyncServiceModel.ImportXml.TemplateHeade(), FK_XZ_SyncServiceModel.ImportXml.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
+
+                XElement xE = XElement.Parse(results);
+                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+
+                if (resultcode == "1")
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = xE.Element("sendresult").Element("content").Value,
+                        log = "同步成功!"
+                    });
+
+                    var recitemData = _db_nc.Queryable<ap_payitem>().Where(w => w.pk_paybill == xE.Element("sendresult").Element("content").Value).ToList();
+
+                    foreach (var recitem in recitemData)
+                    {
+                        var a = dataSource.明细.FirstOrDefault(f => f.无税金额 == recitem.def11);
+
+                        recitem.scomment = a.摘要;
+
+                        _db_nc.Updateable(recitem).ExecuteCommand();
+                    }
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + resultdescription + "】!"
+                    });
+                }
+
+                var results_付款单审核 = HttpRequestHelper.ApproveNCFKBill(xE.Element("sendresult").Element("content").Value);
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(results_付款单审核), "results_付款单审核");
+
+                if (results_付款单审核.state == 0)
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = true,
+                        ncNo = "",
+                        log = "同步成功!"
+                    });
+                }
+                else
+                {
+                    ncResData.Add(new YiDaResDto()
+                    {
+                        bSuccess = false,
+                        ncNo = "",
+                        log = "同步失败!原因为【" + results_付款单审核.msg + "】!"
+                    });
+                }
+
+                var finalResData = new YiDaResDto();
+
+                if (ncResData.FirstOrDefault(f => !f.bSuccess) != null)
+                {
+                    finalResData.bSuccess = false;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+                else
+                {
+                    finalResData.bSuccess = true;
+                    finalResData.syncTime = DateTime.Now;
+                    finalResData.ncNo = xE.Element("sendresult").Element("content").Value;
+                    finalResData.log = string.Join(" || ", ncResData.Select(s => s.log));
+                }
+
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(finalResData, item);
+            }
+            #endregion
+        }
     }
 }

+ 1 - 1
HH.YiDaSyncNC/DataSync/FK_YF_SyncService.cs

@@ -183,7 +183,7 @@ namespace HH.YiDaSyncNC.DataSync
                     continue;
                 }
 
-                var results = NCImportFunc.NCImport(FK_YF_SyncServiceModel.ImportXml.TemplateHeade(), FK_YF_SyncServiceModel.ImportXml.Header(dataSource, item + "03"), _NCApiUrl + "?account=LY01&groupcode=0");
+                var results = NCImportFunc.NCImport(FK_YF_SyncServiceModel.ImportXml.TemplateHeade(), FK_YF_SyncServiceModel.ImportXml.Header(dataSource, item + "03"), _NCApiUrl + "?account=01&groupcode=0");
 
                 LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
 

+ 92 - 79
HH.YiDaSyncNC/DataSync/KH_SyncService.cs

@@ -49,7 +49,9 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetFormIdList("{\"serialNumberField_ls14do3x\":\"KH00007\"}");
+            var idList = _dingTalkService.GetFormIdList("{\"serialNumberField_ls14do3x\":\"KH01523\"}");
+
+            //var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
 
             //// 获取当前最大Id
             //var newId = 100000001;
@@ -64,109 +66,120 @@ namespace HH.YiDaSyncNC.DataSync
             #endregion
 
             #region 插入数据
-            // 向NC插入数据
-            foreach (var item in idList)
-            {
+            //// 向NC插入数据
+            //foreach (var item in idList)
+            //{
 
-                string createTime = "";
-                string modifyTime = "";
+            //    string createTime = "";
+            //    string modifyTime = "";
 
-                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+            //    var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
 
-                var suplinkmanDataList = new List<KH_SyncServiceModel.DataModel.SuplinkmanItem>();
+            //    var suplinkmanDataList = new List<KH_SyncServiceModel.DataModel.SuplinkmanItem>();
 
-                var suplinkmanObjList = new List<object>();
+            //    var suplinkmanObjList = new List<object>();
 
-                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrhhdm5m").Value != null)
-                    suplinkmanObjList = (List<object>)ydDataSource["tableField_lrhhdm5m"];
+            //    if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lrhhdm5m").Value != null)
+            //        suplinkmanObjList = (List<object>)ydDataSource["tableField_lrhhdm5m"];
 
-                foreach (var objItem in suplinkmanObjList)
-                {
-                    suplinkmanDataList.Add(new KH_SyncServiceModel.DataModel.SuplinkmanItem()
-                    {
-                        name = ((Dictionary<string, object>)objItem)["textField_lrhhdm5n"].ToString(),
-                        cell = ((Dictionary<string, object>)objItem)["textField_lrhhdm5o"].ToString(),
-                        vjob = ((Dictionary<string, object>)objItem)["textField_lrhhdm5p"].ToString()
-                    });
-                }
+            //    foreach (var objItem in suplinkmanObjList)
+            //    {
+            //        suplinkmanDataList.Add(new KH_SyncServiceModel.DataModel.SuplinkmanItem()
+            //        {
+            //            name = ((Dictionary<string, object>)objItem)["textField_lrhhdm5n"].ToString(),
+            //            cell = ((Dictionary<string, object>)objItem)["textField_lrhhdm5o"].ToString(),
+            //            vjob = ((Dictionary<string, object>)objItem)["textField_lrhhdm5p"].ToString()
+            //        });
+            //    }
 
 
-                var dataSource = new KH_SyncServiceModel.DataModel()
-                {
-                    pk_group = "0",
-                    pk_org = "0",
-                    code = ydDataSource["serialNumberField_ls14do3x"].ToString(),
-                    name = ydDataSource["textField_lr25icbn"].ToString(),
-                    taxpayerid = ydDataSource["textField_lt425f37"].ToString(),
-                    custprop = "0",
+            //    var dataSource = new KH_SyncServiceModel.DataModel()
+            //    {
+            //        pk_group = "0",
+            //        pk_org = "0",
+            //        code = ydDataSource["serialNumberField_ls14do3x"].ToString(),
+            //        name = ydDataSource["textField_lr25icbn"].ToString(),
+            //        taxpayerid = ydDataSource["textField_lt425f37"].ToString(),
+            //        custprop = "0",
 
-                };
+            //    };
 
-                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrrdx03y").Value != null)
-                {
-                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrrdx03y"].ToString()))
-                    {
-                        var a = bd_custclassDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lrrdx03y"].ToString());
-                        if (a != null)
-                            dataSource.pk_custclass = a.code; // 分类s
-                    }
-                }
+            //    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrrdx03y").Value != null)
+            //    {
+            //        if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrrdx03y"].ToString()))
+            //        {
+            //            var a = bd_custclassDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lrrdx03y"].ToString());
+            //            if (a != null)
+            //                dataSource.pk_custclass = a.code; // 分类s
+            //        }
+            //    }
 
-                dataSource.suplinkman = suplinkmanDataList;
+            //    dataSource.suplinkman = suplinkmanDataList;
 
-                var xmlData = KH_SyncServiceModel.ImportXml.Header(dataSource, item);
+            //    var xmlData = KH_SyncServiceModel.ImportXml.Header(dataSource, item);
 
-                XElement tempData = KH_SyncServiceModel.ImportXml.TemplateHeade();
+            //    XElement tempData = KH_SyncServiceModel.ImportXml.TemplateHeade();
 
-                var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=01&groupcode=0");
+            //    var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=01&groupcode=0");
 
-                // DBHelper.WriteLog(results);
-                XElement xE = XElement.Parse(results);
+            //    // DBHelper.WriteLog(results);
+            //    XElement xE = XElement.Parse(results);
 
-                string resultcode = xE.Element("sendresult").Element("resultcode").Value;
+            //    string resultcode = xE.Element("sendresult").Element("resultcode").Value;
 
-                // DBHelper.WriteLog($"状态码:" + resultcode);
+            //    // DBHelper.WriteLog($"状态码:" + resultcode);
 
-                string content = xE.Element("sendresult").Element("content")?.Value;
+            //    string content = xE.Element("sendresult").Element("content")?.Value;
 
-                string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
+            //    string resultdescription = xE.Element("sendresult").Element("resultdescription")?.Value;
 
-                var ncResData = new YiDaResDto()
-                {
-                    syncTime = DateTime.Now,
-                };
+            //    var ncResData = new YiDaResDto()
+            //    {
+            //        syncTime = DateTime.Now,
+            //    };
 
-                // NC接口执行完成后的处理
-                if (resultcode == "1")
-                {
-                    
-                    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+            //    // NC接口执行完成后的处理
+            //    if (resultcode == "1")
+            //    {
 
-                    ncResData.bSuccess = true;
-                    ncResData.ncNo = xE.Element("sendresult").Element("content").Value;
-                    ncResData.log = "同步成功!";
-                }
-                else
-                {
-                    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作失败!" + resultdescription + ";");
+            //        DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
 
-                    if (resultdescription.Contains("不允许重复"))
-                    {
-                        ncResData.bSuccess = true;
-                        ncResData.ncNo = "";
-                        ncResData.log = "数据已存在,无需同步!";
-                    }
-                    else
-                    {
-                        ncResData.bSuccess = false;
-                        ncResData.ncNo = "";
-                        ncResData.log = "同步失败!原因为【" + resultdescription + "】";
-                    }
-                }
+            //        ncResData.bSuccess = true;
+            //        ncResData.ncNo = xE.Element("sendresult").Element("content").Value;
+            //        ncResData.log = "同步成功!";
+            //    }
+            //    else
+            //    {
+            //        DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作失败!" + resultdescription + ";");
 
-                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
-            }
+            //        if (resultdescription.Contains("不允许重复"))
+            //        {
+            //            ncResData.bSuccess = true;
+            //            ncResData.ncNo = "";
+            //            ncResData.log = "数据已存在,无需同步!";
+            //        }
+            //        else
+            //        {
+            //            ncResData.bSuccess = false;
+            //            ncResData.ncNo = "";
+            //            ncResData.log = "同步失败!原因为【" + resultdescription + "】";
+            //        }
+            //    }
+
+            //    var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+            //}
             #endregion
+
+            var ncResData = new YiDaResDto()
+            {
+                syncTime = DateTime.Now,
+            };
+
+            ncResData.bSuccess = true;
+            ncResData.ncNo = "1001G1100000000DVKOQ";//1001G1100000000DVG2J    1001G1100000000DVG3B
+            ncResData.log = "同步成功!";
+
+            var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, idList.FirstOrDefault());
         }
     }
 }

+ 16 - 3
HH.YiDaSyncNC/DataSync/WL_SyncService.cs

@@ -107,7 +107,7 @@ namespace HH.YiDaSyncNC.DataSync
                         materialmnecode = ydDataSource["textField_lwitq6vx"].ToString(),
                     };
 
-                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lwitq6w4"].ToString()))
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lwitq6w4").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["selectField_lwitq6w4"].ToString()))
                     {
                         var data = pk_marbasclassDic.FirstOrDefault(f => f.name.Trim() == ydDataSource["selectField_lwitq6w4"].ToString());
                         if (data != null)
@@ -115,12 +115,25 @@ namespace HH.YiDaSyncNC.DataSync
                             dataSource.pk_marbasclass = data.code; // 分类
                         }
                     }
+                    else
+                    {
+                        var resData = new YiDaResDto();
+                        resData.bSuccess = false;
+                        resData.syncTime = DateTime.Now;
+                        resData.ncNo = "";
+                        resData.log = "物料分类为空,无法传入NC";
+
+                        _dingTalkService.UpdateFormDataSyncDataById(resData, item);
+
+                        continue;
+                    }
+
                     if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lwitq6w5"].ToString()))
                     {
                         dataSource.pk_measdoc = pk_measdocDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lwitq6w5"].ToString()).code; // 主计量单位
                     }
 
-                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lwitq6w6"].ToString()))
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lwitq6w6").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["selectField_lwitq6w6"].ToString()))
                     {
                         dataSource.pk_mattaxes = pk_mattaxesDic.FirstOrDefault(f => f.mattaxesname == ydDataSource["selectField_lwitq6w6"].ToString()).mattaxescode; // 税类
                     }
@@ -147,7 +160,7 @@ namespace HH.YiDaSyncNC.DataSync
                     var xmlData = WL_SyncServiceModel.ImportXml.Header(dataSource, item);
                     XElement tempData = WL_SyncServiceModel.ImportXml.TemplateHeade();
 
-                    var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=01&groupcode=0");
+                    var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=LY01&groupcode=0");
 
                     DBHelper.WriteLog($"进入程序3");
 

+ 107 - 90
HH.YiDaSyncNC/DataSync/XMD_SyncService.cs

@@ -49,7 +49,8 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetModifyFormIdList();
+           var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_ltxrn8h1\":\"PM00393\"}");
+            //var idList = _dingTalkService.GetFormIdList("");
 
             // 获取当前最大Id
             var newId = 100000001;
@@ -67,97 +68,113 @@ namespace HH.YiDaSyncNC.DataSync
             #region 循环数据处理业务逻辑
             foreach (var item in idList)
             {
-                // 获取此条数据详情
-                string createTime = "";
-                string modifyTime = "";
-                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
-
-                if (ydDataSource["radioField_lycrvvtk"].ToString() == "Y")
-                {
-
-                    #region 构建数据体
-                    var data = new bd_project();
-                    data.begin_flag = "N";
-                    data.bill_type = "4D10";
-                    data.creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                    data.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                    data.creator = "1001G1100000000B6553";
-                    data.def6 = ydDataSource["textField_lrim7i38"].ToString(); // 项目地址
-                    data.def7 = ydDataSource["textField_lrn2oy4n"].ToString(); // 体系
-                    data.enablestate = 2;
-
-
-                    data.pk_eps = "";
-                    data.pk_group = _Static_pk_org_jt;
-                    data.pk_org = _Static_pk_org_jt;
-                    // data.pk_projectclass = "";
-
-                    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrhjdu45").Value != null)
-                    {
-                        if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrhjdu45"].ToString()))
-                        {
-                            var tempData = bd_projectclassDic.FirstOrDefault(f => f.type_name == ydDataSource["selectField_lrhjdu45"].ToString());
-                            if (tempData != null)
-                            {
-                                data.pk_projectclass = tempData.pk_projectclass; // 项目类型
-                            }
-                        }
-                    }
-
-                    //if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrn2oy4c").Value != null)
-                    //{
-                    //    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrn2oy4c"].ToString()))
-                    //    {
-                    //        var tempData = bd_stordocDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lrn2oy4c"].ToString());
-                    //        if (tempData != null)
-                    //        {
-                    //            data.pk_stordoc1 = tempData.pk_stordoc; // 仓库
-                    //        }
-                    //    }
-                    //}
-
-                    data.project_code = ydDataSource["textField_ltxrn8h1"].ToString();
-                    data.project_name = ydDataSource["textField_lrr3rg6i"].ToString();
-                    data.transi_type = "4D10-01";
-
-
-
-                    #endregion
-
-                    #region 数据传入NC并获取结果
-                    var nowData = _db_nc.Queryable<bd_project>().First(f => f.project_code == data.project_code);
-                    if (nowData == null)
-                    {
-                        data.pk_project = _Static_PK_bd_project + newId;
-                        _db_nc.Insertable(data).ExecuteCommand();
-
-                        newId++;
-                    }
-                    else
-                    {
-                        data.pk_project = nowData.pk_project;
-                        _db_nc.Updateable(data).ExecuteCommand();
-                    }
-
-                    #endregion
-
-                    #region 回写状态
-                    var ncResData = new YiDaResDto()
-                    {
-                        syncTime = DateTime.Now,
-                    };
-
-                    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
-
-                    ncResData.bSuccess = true;
-                    ncResData.ncNo = data.pk_project;
-                    ncResData.log = "同步成功!";
-
-                    var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
-                    #endregion
-                }
+                //// 获取此条数据详情
+                //string createTime = "";
+                //string modifyTime = "";
+                //var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                //if (ydDataSource["radioField_lycrvvtk"].ToString() == "Y")
+                //{
+
+                //    #region 构建数据体
+                //    var data = new bd_project();
+                //    data.begin_flag = "N";
+                //    data.bill_type = "4D10";
+                //    data.creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //    data.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //    data.creator = "1001G1100000000B6553";
+                //    data.def6 = ydDataSource["textField_lrim7i38"].ToString(); // 项目地址
+                //    data.def7 = ydDataSource["textField_lrn2oy4n"].ToString(); // 体系
+                //    data.enablestate = 2;
+
+
+                //    data.pk_eps = "";
+                //    data.pk_group = _Static_pk_org_jt;
+                //    data.pk_org = _Static_pk_org_jt;
+                //    // data.pk_projectclass = "";
+
+                //    if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrhjdu45").Value != null)
+                //    {
+                //        if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrhjdu45"].ToString()))
+                //        {
+                //            var tempData = bd_projectclassDic.FirstOrDefault(f => f.type_name == ydDataSource["selectField_lrhjdu45"].ToString());
+                //            if (tempData != null)
+                //            {
+                //                data.pk_projectclass = tempData.pk_projectclass; // 项目类型
+                //            }
+                //        }
+                //    }
+
+                //    //if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lrn2oy4c").Value != null)
+                //    //{
+                //    //    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lrn2oy4c"].ToString()))
+                //    //    {
+                //    //        var tempData = bd_stordocDic.FirstOrDefault(f => f.name == ydDataSource["selectField_lrn2oy4c"].ToString());
+                //    //        if (tempData != null)
+                //    //        {
+                //    //            data.pk_stordoc1 = tempData.pk_stordoc; // 仓库
+                //    //        }
+                //    //    }
+                //    //}
+
+                //    data.project_code = ydDataSource["textField_ltxrn8h1"].ToString();
+                //    data.project_name = ydDataSource["textField_lrr3rg6i"].ToString();
+                //    data.transi_type = "4D10-01";
+
+
+
+                //    #endregion
+
+                //    #region 数据传入NC并获取结果
+                //    var nowData = _db_nc.Queryable<bd_project>().First(f => f.project_code == data.project_code);
+                //    if (nowData == null)
+                //    {
+                //        data.pk_project = _Static_PK_bd_project + newId;
+                //        _db_nc.Insertable(data).ExecuteCommand();
+
+                //        newId++;
+                //    }
+                //    else
+                //    {
+                //        data.pk_project = nowData.pk_project;
+                //        _db_nc.Updateable(data).ExecuteCommand();
+                //    }
+
+                //    #endregion
+
+                //    #region 回写状态
+                //    var ncResData = new YiDaResDto()
+                //    {
+                //        syncTime = DateTime.Now,
+                //    };
+
+                //    DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+
+                //    ncResData.bSuccess = true;
+                //    ncResData.ncNo = data.pk_project;
+                //    ncResData.log = "同步成功!";
+
+                //    var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+                //    #endregion
+                //}
+
+                //var ncResData = new YiDaResDto()
+                //{
+                //    syncTime = DateTime.Now,
+                //};
+
+                //DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+
+                //ncResData.bSuccess = true;
+                //ncResData.ncNo = "1001G1100000000DWFL7";//1001G1100000000DVG2J    1001G1100000000DVG3B
+                //ncResData.log = "同步成功";
+
+                //var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
             }
             #endregion
+
+
+           
         }
     }
 }

+ 100 - 85
HH.YiDaSyncNC/DataSync/ZC_SyncService.cs

@@ -49,7 +49,7 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetFormIdList().Where(w => w == "FINST-WBD66OB1WGIMQGPBFZAHO794LN2H3GVFOM6YLFK9");
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
 
             // 获取当前最大Id
             var newId = 100000001;
@@ -59,6 +59,21 @@ namespace HH.YiDaSyncNC.DataSync
                 newId = Convert.ToInt32(maxData.pk_card.Replace(_Static_PK_fa_card, "")) + 1;
             }
 
+
+            string createTime = "";
+            string modifyTime = "";
+
+            var ydDataSource = _dingTalkService.GetFormDataById("FINST-G9766T71XRHMWPDI7JZFU6GVQ1X839MR8B4YLT31", out createTime, out modifyTime);
+
+            var data = new Dictionary<string, string>();
+            data.Add("numberField_lu2ejqd4", "1277603.26");
+            data.Add("numberField_lzc572v2", "0");
+            data.Add("numberField_lutjo2dt", "19");
+            data.Add("dateField_lty0oyva", UnixTimeHelper.ConvertToMilliseconds(Convert.ToDateTime("2044-07-05")).ToString());
+
+            var ydRes = _dingTalkService.UpdateFormDataById(data, "FINST-G9766T71XRHMWPDI7JZFU6GVQ1X839MR8B4YLT31");
+
+
             #region 获取NC中选项数据的Id
             var pam_addreducestyleDic = _db_nc.Queryable<pam_addreducestyle>().ToList();
             #endregion
@@ -69,90 +84,90 @@ namespace HH.YiDaSyncNC.DataSync
             #region 循环数据处理业务逻辑
             foreach (var item in idList)
             {
-                // 获取此条数据详情
-                string createTime = "";
-                string modifyTime = "";
-                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
-
-                #region 构建数据体
-                var data = new fa_card();
-                data.archarea = 0;
-                data.asset_code = ydDataSource["textField_lty0oyv4"].ToString();
-                data.asset_name = ydDataSource["textField_lty0oyuj"].ToString();
-                data.begin_date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                data.bill_source = "handin";
-                data.bill_type = "H1";
-                data.billmaker = "1001G110000000000ADH";
-                data.billmaketime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                data.business_date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                data.creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-                data.creator = "1001G110000000000ADH";
-                data.currmoney = 0;
-                data.dismant_cost = 0;
-                data.dy_flag = "N";
-                data.install_fee = 0;
-                data.machinepower = 0;
-                data.machinequan = 0;
-                data.nettonnage = 0;
-                data.other_cost = 0;
-                data.pk_group = _Static_pk_org_jt;
-                data.pk_org = "0001G110000000001MVP";
-                data.pk_org_v = "0001G110000000001MVO";
-                data.card_code = "0000001242";
-                data.assetsuit_code = "营运部(项目)0354";
-
-                // 主键
-                data.pk_currency = "1002Z0100000000001K1";
-                data.pk_transitype = "0001G110000000001B48";
-                data.transi_type = "H1-00";
-                data.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
-
-
-                if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lwk48b8s").Value != null)
-                {
-                    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lwk48b8s"].ToString()))
-                    {
-                        var tempData = pam_addreducestyleDic.FirstOrDefault(f => f.style_name == ydDataSource["selectField_lwk48b8s"].ToString());
-                        if (tempData != null)
-                        {
-                            data.pk_addreducestyle = tempData.pk_addreducestyle; // 增加方式
-                        }
-                    }
-                }
-
-                #endregion
-
-                #region 数据传入NC并获取结果
-                var nowData = _db_nc.Queryable<fa_card>().First(f => f.asset_code == data.asset_code);
-                if (nowData == null)
-                {
-                    data.pk_card = "DINGTALKFAC100000006"; //_Static_PK_fa_card + newId;
-                    _db_nc.Insertable(data).ExecuteCommand();
-
-                    newId++;
-                }
-                else
-                {
-                    data.pk_card = nowData.pk_card;
-                    _db_nc.Updateable(data).ExecuteCommand();
-                }
-
-                #endregion
-
-                #region 回写状态
-                var ncResData = new YiDaResDto()
-                {
-                    syncTime = DateTime.Now,
-                };
-
-                DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
-
-                ncResData.bSuccess = true;
-                ncResData.ncNo = data.pk_card;
-                ncResData.log = "同步成功!";
-
-                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
-                #endregion
+                //// 获取此条数据详情
+                //string createTime = "";
+                //string modifyTime = "";
+                //var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                //#region 构建数据体
+                //var data = new fa_card();
+                //data.archarea = 0;
+                //data.asset_code = ydDataSource["textField_lty0oyv4"].ToString();
+                //data.asset_name = ydDataSource["textField_lty0oyuj"].ToString();
+                //data.begin_date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //data.bill_source = "handin";
+                //data.bill_type = "H1";
+                //data.billmaker = "1001G110000000000ADH";
+                //data.billmaketime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //data.business_date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //data.creationtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+                //data.creator = "1001G110000000000ADH";
+                //data.currmoney = 0;
+                //data.dismant_cost = 0;
+                //data.dy_flag = "N";
+                //data.install_fee = 0;
+                //data.machinepower = 0;
+                //data.machinequan = 0;
+                //data.nettonnage = 0;
+                //data.other_cost = 0;
+                //data.pk_group = _Static_pk_org_jt;
+                //data.pk_org = "0001G110000000001MVP";
+                //data.pk_org_v = "0001G110000000001MVO";
+                //data.card_code = "0000001242";
+                //data.assetsuit_code = "营运部(项目)0354";
+
+                //// 主键
+                //data.pk_currency = "1002Z0100000000001K1";
+                //data.pk_transitype = "0001G110000000001B48";
+                //data.transi_type = "H1-00";
+                //data.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+
+
+                //if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lwk48b8s").Value != null)
+                //{
+                //    if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lwk48b8s"].ToString()))
+                //    {
+                //        var tempData = pam_addreducestyleDic.FirstOrDefault(f => f.style_name == ydDataSource["selectField_lwk48b8s"].ToString());
+                //        if (tempData != null)
+                //        {
+                //            data.pk_addreducestyle = tempData.pk_addreducestyle; // 增加方式
+                //        }
+                //    }
+                //}
+
+                //#endregion
+
+                //#region 数据传入NC并获取结果
+                //var nowData = _db_nc.Queryable<fa_card>().First(f => f.asset_code == data.asset_code);
+                //if (nowData == null)
+                //{
+                //    data.pk_card = "DINGTALKFAC100000006"; //_Static_PK_fa_card + newId;
+                //    _db_nc.Insertable(data).ExecuteCommand();
+
+                //    newId++;
+                //}
+                //else
+                //{
+                //    data.pk_card = nowData.pk_card;
+                //    _db_nc.Updateable(data).ExecuteCommand();
+                //}
+
+                //#endregion
+
+                //#region 回写状态
+                //var ncResData = new YiDaResDto()
+                //{
+                //    syncTime = DateTime.Now,
+                //};
+
+                //DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+
+                //ncResData.bSuccess = false;
+                //ncResData.ncNo = "";
+                //ncResData.log = "同步失败:【增加方式为空】";
+
+                //var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+                //#endregion
             }
             #endregion
         }

+ 1 - 1
HH.YiDaSyncNC/Models/FK_SyncServiceModel.cs

@@ -143,7 +143,7 @@ namespace HH.YiDaSyncNC.Models
                             new XElement("local_notax_de",itemData.价税合计),
 
                             new XElement("payaccount",item.付款银行账户),
-                            new XElement("invoiceno",item.发票号),
+                            // new XElement("invoiceno",item.发票号),
 
                             new XElement("def12",itemData.税额),
                             new XElement("def11",itemData.无税金额),

+ 5 - 3
HH.YiDaSyncNC/Models/FK_XZ_SyncServiceModel.cs

@@ -35,7 +35,7 @@ namespace HH.YiDaSyncNC.Models
             public string 结算状态 { get; set; } = "1";
             public string 生效状态 { get; set; } = "10";
 
-            public string 生效人 { get; set; } 
+            public string 生效人 { get; set; }
             public string 生效日期 { get; set; }
 
             public string 发票号 { get; set; }
@@ -50,12 +50,14 @@ namespace HH.YiDaSyncNC.Models
 
             public string 年份 { get; set; }
             public string 月份 { get; set; }
-            
+
             public string 起算日期 { get; set; }
 
             public string 汇率 { get; set; } = "1";
             public string 折扣 { get; set; } = "100";
 
+            public string 是否预付 { get; set; } = "0";
+
             public List<Item> 明细 { get; set; }
 
             public class Item
@@ -116,7 +118,7 @@ namespace HH.YiDaSyncNC.Models
                             new XElement("sett_org",item.组织),
                             new XElement("pk_org",item.组织),
                             new XElement("pk_fiorg",item.组织),
-                            new XElement("prepay","0"),
+                            new XElement("prepay",item.是否预付),
                             new XElement("supplier",item.供应商),
                             new XElement("checkdirection","ap"),
                             new XElement("billdate",item.单据日期),

+ 21 - 4
HH.YiDaSyncNC/Program.cs

@@ -86,7 +86,7 @@ namespace HH.YiDaSyncNC
                 //KP_SyncService kp_SyncService = new KP_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_KP, db, db_nc, _Static_NCApiUrl);
                 //kp_SyncService.DataSync();
 
-                // 退票
+                //// 退票
                 //KP_TP_SyncService kp_tp_SyncService = new KP_TP_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_KP, db, db_nc, _Static_NCApiUrl);
                 //kp_tp_SyncService.DataSync();
                 #endregion
@@ -110,6 +110,10 @@ namespace HH.YiDaSyncNC
                 //FK_FYBX_SyncService fk_fybx_SyncService = new FK_FYBX_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FYBX, db, db_nc, _Static_NCApiUrl);
                 //fk_fybx_SyncService.DataSync();
 
+                // 差旅报销付款
+                //FK_CLBX_SyncService fk_clbx_SyncService = new FK_CLBX_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_clBX, db, db_nc, _Static_NCApiUrl);
+                //fk_clbx_SyncService.DataSync();
+
                 // 付款单 预付类型 生成凭证 zxh
                 //FKGL_SyncService fkgl_SyncService = new FKGL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
                 //fkgl_SyncService.DataSync();
@@ -117,9 +121,9 @@ namespace HH.YiDaSyncNC
                 //FKYF_SyncService fkyf_SyncService = new FKYF_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
                 //fkyf_SyncService.DataSync();
 
-                //// 付款单(预付)
-                FK_YF_SyncService fk_yf_SyncService = new FK_YF_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
-                fk_yf_SyncService.DataSync();
+                // 付款单(预付)
+                //FK_YF_SyncService fk_yf_SyncService = new FK_YF_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
+                //fk_yf_SyncService.DataSync();
 
                 //// 预付 发票入账  生成凭证 zxh
                 YF_FPRZ_SyncService yf_fprz_SyncService = new YF_FPRZ_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FPRZD, db, db_nc, _Static_NCApiUrl);
@@ -130,6 +134,19 @@ namespace HH.YiDaSyncNC
                 //bx_SyncService.DataSyncFYBX();
                 #endregion
 
+                #region 薪资付款
+                // 应付
+                FK_XZ_SyncService fk_xz_SyncService = new FK_XZ_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FK, db, db_nc, _Static_NCApiUrl);
+                fk_xz_SyncService.DataSync_公积金();
+                fk_xz_SyncService.DataSync_社保();
+                fk_xz_SyncService.DataSync_薪资();
+                fk_xz_SyncService.DataSync_发放人力外包工资();
+
+                fk_xz_SyncService.DataSync_公积金_预付();
+                fk_xz_SyncService.DataSync_社保_预付();
+
+                #endregion
+
                 #region 借还款
                 // 暂支申请  生成凭证 zxh
                 //ZZD_GL_SyncService zzsq_SyncService = new ZZD_GL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_ZZSQ, db, db_nc, _Static_NCApiUrl);