guoshuang 2 years ago
parent
commit
52ebfd1e22

+ 112 - 112
HH.YiDaSyncNC/DataSync/CGDD_SyncService.cs

@@ -48,15 +48,15 @@ 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("{\"textField_lr26y1io\":\"TEST202408190210\"}");
+            //var idList = _dingTalkService.GetFormIdList("{\"textField_lr26y1io\":\"TEST202408190210\"}");
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
-            
+
 
 
             // 获取当前最大Id
@@ -79,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=01&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()
             //{
@@ -255,7 +255,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             //var ydRes = _dingTalkService.UpdateFormDataById(data, "FINST-MBD66F91F5WMGNLQB7QSA5T73RUZ17D0Y6SYLACT");
 
-            //#endregion
+            #endregion
         }
     }
 }

+ 16 - 2
HH.YiDaSyncNC/DataSync/FK_SyncService.cs

@@ -126,8 +126,22 @@ namespace HH.YiDaSyncNC.DataSync
                             var detailItem = new FK_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());
+
+                            object se_ = "";
+                            object wsje_ = "";
+
+                            decimal se = 0;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08",out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out se_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
 
                             // 含税金额
                             detailItem.价税合计 = hsje.ToString();

+ 514 - 18
HH.YiDaSyncNC/DataSync/FK_XZ_SyncService.cs

@@ -51,6 +51,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\":\"发放公积金\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"F3-Cxx-008\"}"));
 
             //var idList = _dingTalkService.GetFormIdList("{\"selectField_lwiuvaws\":\"日常费用付款\",\"selectField_lrnh633d\":\"结付\"}");
 
@@ -65,7 +66,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -272,6 +273,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\":\"发放社保\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"F3-Cxx-009\"}"));
 
             //var idList = _dingTalkService.GetFormIdList("{\"selectField_lwiuvaws\":\"日常费用付款\",\"selectField_lrnh633d\":\"结付\"}");
 
@@ -286,7 +288,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -495,6 +497,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\":\"薪资发放\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"F3-Cxx-007\"}"));
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
@@ -505,7 +508,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -574,19 +577,31 @@ namespace HH.YiDaSyncNC.DataSync
                             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());
+
+                            object se_;
+                            decimal se = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08", out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            object wsje_;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out wsje_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
 
                             // 含税金额
                             detailItem.价税合计 = hsje.ToString();
 
                             // 无税金额
-                            detailItem.无税金额 = hsje.ToString();
-
-
+                            detailItem.无税金额 = wsje.ToString();
 
                             // 税额
-                            detailItem.税额 = "0";
+                            detailItem.税额 = se.ToString();
 
                             detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
 
@@ -713,6 +728,8 @@ 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\":\"人力资源外包付款\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"结付\",\"selectField_lwiuvaws\":\"F3-Cxx-004\"}"));
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
@@ -723,7 +740,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -792,19 +809,30 @@ namespace HH.YiDaSyncNC.DataSync
                             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());
+                            object se_;
+                            decimal se = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08", out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            object wsje_;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out wsje_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
 
                             // 含税金额
                             detailItem.价税合计 = hsje.ToString();
 
                             // 无税金额
-                            detailItem.无税金额 = hsje.ToString();
-
-
+                            detailItem.无税金额 = wsje.ToString();
 
                             // 税额
-                            detailItem.税额 = "0";
+                            detailItem.税额 = se.ToString();
 
                             detailItem.摘要 = ((Dictionary<string, object>)objItem)["textField_lvxa4v05"].ToString();
 
@@ -931,6 +959,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\":\"F3-Cxx-008\"}"));
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
@@ -941,7 +970,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -1148,6 +1177,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\":\"F3-Cxx-009\"}"));
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
@@ -1158,7 +1188,7 @@ namespace HH.YiDaSyncNC.DataSync
 
             #region 插入数据
             // 向NC插入数据
-            foreach (var item in idList)
+            foreach (var item in idList.Distinct())
             {
 
                 string createTime = "";
@@ -1360,5 +1390,471 @@ 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\":\"薪资发放\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"F3-Cxx-007\"}"));
+
+            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.Distinct())
+            {
+
+                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";
+                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());
+
+                            object se_;
+                            decimal se = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08", out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            object wsje_;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out wsje_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = wsje.ToString();
+
+                            // 税额
+                            detailItem.税额 = se.ToString();
+
+                            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\":\"发放人力外包工资\"}");
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"人力资源外包付款\"}"));
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lrnh633d\":\"预付\",\"selectField_lwiuvaws\":\"F3-Cxx-004\"}"));
+
+
+            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.Distinct())
+            {
+
+                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";
+                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());
+                            object se_;
+                            decimal se = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08", out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            object wsje_;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out wsje_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
+
+                            // 含税金额
+                            detailItem.价税合计 = hsje.ToString();
+
+                            // 无税金额
+                            detailItem.无税金额 = wsje.ToString();
+
+                            // 税额
+                            detailItem.税额 = se.ToString();
+
+                            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
+        }
     }
 }

+ 18 - 4
HH.YiDaSyncNC/DataSync/FK_YF_SyncService.cs

@@ -78,7 +78,7 @@ namespace HH.YiDaSyncNC.DataSync
                 }
                 else
                 {
-                    
+
                 }
 
                 var ncResData = new List<YiDaResDto>();
@@ -139,8 +139,22 @@ namespace HH.YiDaSyncNC.DataSync
                             var detailItem = new FK_YF_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());
+
+                            object se_;
+                            decimal se = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v08", out se_))
+                            {
+                                se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v08"].ToString());
+                            }
+
+                            object wsje_;
+                            decimal wsje = 0;
+
+                            if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvxa4v09", out wsje_))
+                            {
+                                wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvxa4v09"].ToString());
+                            }
 
                             // 含税金额
                             detailItem.价税合计 = hsje.ToString();
@@ -183,7 +197,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=01&groupcode=0");
+                var results = NCImportFunc.NCImport(FK_YF_SyncServiceModel.ImportXml.TemplateHeade(), FK_YF_SyncServiceModel.ImportXml.Header(dataSource, item + "03"), _NCApiUrl + "?account=LY01&groupcode=0");
 
                 LogHelper.WriteLog(JsonConvert.SerializeObject(results), "results");
 

+ 11 - 7
HH.YiDaSyncNC/DataSync/HKD_GL_SyncService.cs

@@ -45,12 +45,10 @@ namespace HH.YiDaSyncNC.DataSync
 
                 DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
-                var serchKeyListJson = new
-                {
-                    radioField_lycrvvtk = "Y",
 
-                };
-                var idList = _dingTalkService.GetFormCodeList(JsonConvert.SerializeObject(serchKeyListJson));
+                var idList = _dingTalkService.GetFormCodeList("");
+                LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
                 #region 获取NC中选项数据的Id
                 var bd_customerDic = _db_nc.Queryable<bd_customer>().ToList();
                 var bd_incomeDic = _db_nc.Queryable<bd_income>().ToList();
@@ -69,6 +67,12 @@ namespace HH.YiDaSyncNC.DataSync
                     var ydDataSource = _dingTalkService.GetFormDataByCode(item);
                     string jsonData = JsonConvert.SerializeObject(ydDataSource);
 
+                    // 如果NC单据号为空,说明没有传入过NC,此时需要走此逻辑去传输
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "textField_ltxyt75m").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["textField_ltxyt75m"].ToString()))
+                    {
+                        continue;
+                    }
+
 
                     YiDa_ZZHX thisYiDaData = JsonConvert.DeserializeObject<YiDa_ZZHX>(jsonData);
 
@@ -227,7 +231,7 @@ namespace HH.YiDaSyncNC.DataSync
                     xElement.Add(HKD_GL_SyncServiceModel.ImportXml_凭证.Header(headModel));//添加表头数据
                     xElement.Element("voucher").Element("voucher_head").Element("details").Add(HKD_GL_SyncServiceModel.ImportXml_凭证.Bodydebit(detailList));
                     //生成凭证
-                    var results_凭证 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=01&groupcode=0");
+                    var results_凭证 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=LY01&groupcode=0");
 
                     LogHelper.WriteLog(JsonConvert.SerializeObject(results_凭证), "results_凭证");
 
@@ -266,7 +270,7 @@ namespace HH.YiDaSyncNC.DataSync
             }
             catch (Exception ex)
             {
-
+                LogHelper.WriteLog(JsonConvert.SerializeObject(ex.ToString()), "HKD");
                 throw;
             }
         }

+ 296 - 0
HH.YiDaSyncNC/DataSync/KP_HK_SyncService.cs

@@ -0,0 +1,296 @@
+using HH.YiDaSyncNC.Dtos;
+using HH.YiDaSyncNC.Dtos.NC;
+using HH.YiDaSyncNC.Helper;
+using HH.YiDaSyncNC.Models;
+using Newtonsoft.Json;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace HH.YiDaSyncNC.DataSync
+{
+    class KP_HK_SyncService
+    {
+        public string _AppType;
+        public string _SystemToken;
+        public string _UserId;
+        public string _FormId;
+        public SqlSugarClient _db;
+        public SqlSugarClient _db_nc;
+        public string _NCApiUrl;
+
+        public static string _Static_PK_so_saleorder = ConfigurationManager.AppSettings["so_saleorder"];
+        public static string _Static_PK_so_saleorder_b = ConfigurationManager.AppSettings["so_saleorder_b"];
+        public static string _Static_pk_org_jt = ConfigurationManager.AppSettings["pk_org_jt"];
+
+        public KP_HK_SyncService(string AppType, string SystemToken, string UserId, string FormId, SqlSugarClient db, SqlSugarClient db_nc, string NCApiUrl)
+        {
+            _AppType = AppType;
+            _SystemToken = SystemToken;
+            _UserId = UserId;
+            _FormId = FormId;
+            _db = db;
+            _db_nc = db_nc;
+            _NCApiUrl = NCApiUrl;
+        }
+
+        public class IdCodeModel
+        {
+            public int sourceId { get; set; }
+            public string Id { get; set; }
+        }
+
+        public class FormItem
+        {
+            public string title { get; set; }
+        }
+
+        public class DetailItem
+        {
+            public decimal ncMoney { get; set; }
+            public decimal ydMoney { get; set; }
+            public long ncBilldate { get; set; }
+            public bool bAll { get; set; }
+        }
+
+        public void DataSync()
+        {
+            DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
+
+            // 宜搭全量数据Id
+            //var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"selectField_lvituew9\":\"正常\"}");
+            //var idList = _dingTalkService.GetFormIdList("{\"textField_lvdosccc\":\"KP_2024071700252\"}");
+
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_m06hhw2p\":\"未回款\",\"textField_ltxyt75i\":\"同步成功\"}");
+            idList.AddRange(_dingTalkService.GetFormIdList("{\"radioField_m06hhw2p\":\"已回款\",\"textField_ltxyt75i\":\"同步成功\"}"));
+
+            LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
+
+            #region 获取NC中选项数据的Id
+            var so_saleorder_bList = _db_nc.Queryable<so_saleorder_b>().Where(w => w.vbdef10 != "~").ToList();
+            var ar_gatheritemList = _db_nc.Queryable<ar_gatheritem>().Where(w => so_saleorder_bList.Select(s => s.csaleorderbid).ToList().Contains(w.src_itemid)).ToList();
+            var ar_gatherbillList = _db_nc.Queryable<ar_gatherbill>().Where(w => ar_gatheritemList.Select(s => s.pk_gatherbill).ToList().Contains(w.pk_gatherbill) && w.billstatus == "1").Select(s => s.pk_gatherbill).ToList();
+            #endregion
+
+            #region 接口方式
+            // 向NC插入数据
+            foreach (var item in idList)
+            {
+                string createTime = "";
+                string modifyTime = "";
+
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+
+                // 如果NC单据号为空,说明没有传入过NC,此时跳过
+                if (ydDataSource.FirstOrDefault(f => f.Key == "textField_ltxyt75m").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["textField_ltxyt75m"].ToString()))
+                {
+
+                }
+                else
+                {
+                    continue;
+                }
+
+                LogHelper.WriteLog(JsonConvert.SerializeObject(ydDataSource), item + " 开始回写------------------------------------------------");
+
+                var updateData = new Dictionary<string, string>();
+                var detailData = new List<DetailItem>();
+
+                #region 大业主开票明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
+                {
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
+                    {
+                        var detailObjList1 = (List<object>)ydDataSource["tableField_lvc9x4vt"]; // 大业主开票明细
+
+                        if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["textField_lvdojfup"].ToString()))
+                        {
+                            var bChange = false;
+                            foreach (var objItem in detailObjList1)
+                            {
+                                var rowId = ((Dictionary<string, object>)objItem)["textField_lvdojfup"].ToString();
+
+                                var sbData = so_saleorder_bList.FirstOrDefault(f => f.vbdef10 == rowId);
+                                if (sbData != null)
+                                {
+                                    var giData = ar_gatheritemList.Where(w => w.src_itemid == sbData.csaleorderbid && ar_gatherbillList.Contains(w.pk_gatherbill)).ToList();
+                                    if (giData.Count > 0)
+                                    {
+                                        var ncMoney = giData.Sum(s => s.money_cr);
+                                        var ydMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2y"].ToString());
+
+                                        decimal ydReMoney = 0;
+                                        object ydReMoney_;
+
+                                        if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvg084lb", out ydReMoney_))
+                                        {
+                                            ydReMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvg084lb"].ToString());
+                                        }
+
+                                        var ncBilldate = UnixTimeHelper.ConvertToMilliseconds(Convert.ToDateTime(giData.OrderByDescending(ob => Convert.ToDateTime(ob.billdate)).FirstOrDefault().billdate));
+
+                                        detailData.Add(new DetailItem()
+                                        {
+                                            ncMoney = ncMoney + ydReMoney,
+                                            ydMoney = ydMoney,
+                                            ncBilldate = ncBilldate,
+                                            bAll = ((ncMoney + ydReMoney) == ydMoney)
+                                        });
+
+                                        ((Dictionary<string, object>)objItem)["numberField_lvg084lb"] = (ncMoney + ydReMoney).ToString("#0.00");
+                                        ((Dictionary<string, object>)objItem)["dateField_m0f55roc"] = ncBilldate.ToString();
+
+                                        bChange = true;
+                                    }
+                                }
+                            }
+
+                            if (bChange)
+                                updateData.Add("tableField_lvc9x4vt", JsonConvert.SerializeObject(detailObjList1));
+                        }
+                    }
+                }
+                #endregion
+
+                #region 工程订单开票明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
+                {
+                    var detailObjList2 = (List<object>)ydDataSource["tableField_lvd8pp44"]; // 工程订单开票明细
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
+                    {
+                        if (detailObjList2.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList2.FirstOrDefault())["textField_lvdojfur"].ToString()))
+                        {
+                            var bChange = false;
+                            foreach (var objItem in detailObjList2)
+                            {
+                                var rowId = ((Dictionary<string, object>)objItem)["textField_lvdojfur"].ToString();
+
+                                var sbData = so_saleorder_bList.FirstOrDefault(f => f.vbdef10 == rowId);
+                                if (sbData != null)
+                                {
+                                    var giData = ar_gatheritemList.Where(w => w.src_itemid == sbData.csaleorderbid && ar_gatherbillList.Contains(w.pk_gatherbill)).ToList();
+                                    if (giData.Count > 0)
+                                    {
+                                        var ncMoney = giData.Sum(s => s.money_cr);
+                                        var ydMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp41"].ToString());
+
+                                        decimal ydReMoney = 0;
+                                        object ydReMoney_;
+
+                                        if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvg084l9", out ydReMoney_))
+                                        {
+                                            ydReMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvg084l9"].ToString());
+                                        }
+
+                                        var ncBilldate = UnixTimeHelper.ConvertToMilliseconds(Convert.ToDateTime(giData.OrderByDescending(ob => Convert.ToDateTime(ob.billdate)).FirstOrDefault().billdate));
+
+                                        detailData.Add(new DetailItem()
+                                        {
+                                            ncMoney = ncMoney + ydReMoney,
+                                            ydMoney = ydMoney,
+                                            ncBilldate = ncBilldate,
+                                            bAll = ((ncMoney + ydReMoney) == ydMoney)
+                                        });
+
+                                        ((Dictionary<string, object>)objItem)["numberField_lvg084l9"] = (ncMoney + ydReMoney).ToString("#0.00");
+                                        ((Dictionary<string, object>)objItem)["dateField_m0dp1g0e"] = ncBilldate.ToString();
+
+                                        bChange = true;
+                                    }
+                                }
+                            }
+
+                            if (bChange)
+                                updateData.Add("tableField_lvd8pp44", JsonConvert.SerializeObject(detailObjList2));
+                        }
+                    }
+                }
+                #endregion
+
+                #region 小业主开票明细
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null)
+                {
+                    var detailObjList3 = (List<object>)ydDataSource["tableField_lvdnme13"]; // 小业主
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null)
+                    {
+                        if (detailObjList3.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList3.FirstOrDefault())["textField_lvdojfus"].ToString()))
+                        {
+                            var bChange = false;
+                            foreach (var objItem in detailObjList3)
+                            {
+                                var rowId = ((Dictionary<string, object>)objItem)["textField_lvdojfus"].ToString();
+
+                                var sbData = so_saleorder_bList.FirstOrDefault(f => f.vbdef10 == rowId);
+                                if (sbData != null)
+                                {
+                                    var giData = ar_gatheritemList.Where(w => w.src_itemid == sbData.csaleorderbid && ar_gatherbillList.Contains(w.pk_gatherbill)).ToList();
+                                    if (giData.Count > 0)
+                                    {
+                                        var ncMoney = giData.Sum(s => s.money_cr);
+                                        var ydMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0z"].ToString());
+
+                                        decimal ydReMoney = 0;
+                                        object ydReMoney_;
+
+                                        if (((Dictionary<string, object>)objItem).TryGetValue("numberField_lvg084la", out ydReMoney_))
+                                        {
+                                            ydReMoney = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvg084la"].ToString());
+                                        }
+
+                                        var ncBilldate = UnixTimeHelper.ConvertToMilliseconds(Convert.ToDateTime(giData.OrderByDescending(ob => Convert.ToDateTime(ob.billdate)).FirstOrDefault().billdate));
+
+                                        detailData.Add(new DetailItem()
+                                        {
+                                            ncMoney = ncMoney + ydReMoney,
+                                            ydMoney = ydMoney,
+                                            ncBilldate = ncBilldate,
+                                            bAll = ((ncMoney + ydReMoney) == ydMoney)
+                                        });
+
+                                        ((Dictionary<string, object>)objItem)["numberField_lvg084la"] = (ncMoney + ydReMoney).ToString("#0.00");
+                                        ((Dictionary<string, object>)objItem)["dateField_m0f55roe"] = ncBilldate.ToString();
+
+                                        bChange = true;
+                                    }
+                                }
+                            }
+
+                            if (bChange)
+                                updateData.Add("tableField_lvdnme13", JsonConvert.SerializeObject(detailObjList3));
+                        }
+                    }
+                }
+                #endregion
+
+                if (detailData.Count > 0)
+                {
+                    // 回款时间
+                    updateData.Add("dateField_m0f5xiio", detailData.OrderByDescending(ob => ob.ncBilldate).FirstOrDefault().ncBilldate.ToString());
+
+                    // 已回款金额
+                    updateData.Add("numberField_m0f55roa", detailData.Sum(s => s.ncMoney).ToString("#0.00"));
+
+                    // 回款状态
+                    updateData.Add("radioField_m06hhw2p", detailData.FirstOrDefault(f => !f.bAll) != null ? "已回款" : "回款完成");
+
+                    LogHelper.WriteLog(JsonConvert.SerializeObject(updateData), "数据构建完成");
+
+                    var ydRes = _dingTalkService.UpdateFormDataById(updateData, item);
+
+                    LogHelper.WriteLog(JsonConvert.SerializeObject(ydRes), "ydRes 回写完成------------------------------------------------");
+                }
+                else
+                {
+                    LogHelper.WriteLog("无回款记录", "回写完成------------------------------------------------");
+                }
+            }
+
+            #endregion
+        }
+    }
+}

+ 9 - 9
HH.YiDaSyncNC/DataSync/XMD_SyncService.cs

@@ -49,7 +49,7 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-           var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_ltxrn8h1\":\"PM00393\"}");
+           var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_ltxrn8h1\":\"PM00403\"}");
             //var idList = _dingTalkService.GetFormIdList("");
 
             // 获取当前最大Id
@@ -158,18 +158,18 @@ namespace HH.YiDaSyncNC.DataSync
                 //    #endregion
                 //}
 
-                //var ncResData = new YiDaResDto()
-                //{
-                //    syncTime = DateTime.Now,
-                //};
+                var ncResData = new YiDaResDto()
+                {
+                    syncTime = DateTime.Now,
+                };
 
                 //DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
 
-                //ncResData.bSuccess = true;
-                //ncResData.ncNo = "1001G1100000000DWFL7";//1001G1100000000DVG2J    1001G1100000000DVG3B
-                //ncResData.log = "同步成功";
+                ncResData.bSuccess = true;
+                ncResData.ncNo = "1001G1100000000E0ZWQ";//1001G1100000000DVG2J    1001G1100000000DVG3B
+                ncResData.log = "同步成功";
 
-                //var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
             }
             #endregion
 

+ 10 - 7
HH.YiDaSyncNC/DataSync/ZZD_GL_SyncService.cs

@@ -45,12 +45,9 @@ namespace HH.YiDaSyncNC.DataSync
 
                 DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
-                var serchKeyListJson = new
-                {
-                    radioField_lycrvvtk = "Y",
+                var idList = _dingTalkService.GetFormCodeList("");
+                LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
-                };
-                var idList = _dingTalkService.GetFormCodeList(JsonConvert.SerializeObject(serchKeyListJson));
                 #region 获取NC中选项数据的Id
                 var bd_customerDic = _db_nc.Queryable<bd_customer>().ToList();
                 var bd_incomeDic = _db_nc.Queryable<bd_income>().ToList();
@@ -72,6 +69,12 @@ namespace HH.YiDaSyncNC.DataSync
                     var ydDataSource = _dingTalkService.GetFormDataByCode(item);
                     string jsonData = JsonConvert.SerializeObject(ydDataSource);
 
+                    // 如果NC单据号为空,说明没有传入过NC,此时需要走此逻辑去传输
+                    if (ydDataSource.FirstOrDefault(f => f.Key == "textField_ltxyt75m").Value != null && !string.IsNullOrWhiteSpace(ydDataSource["textField_ltxyt75m"].ToString()))
+                    {
+                        continue;
+                    }
+
 
                     YiDa_ZZSQ thisYiDaData = JsonConvert.DeserializeObject<YiDa_ZZSQ>(jsonData);
 
@@ -228,7 +231,7 @@ namespace HH.YiDaSyncNC.DataSync
                     xElement.Add(ZZD_GL_SyncServiceModel.ImportXml_凭证.Header(headModel));//添加表头数据
                     xElement.Element("voucher").Element("voucher_head").Element("details").Add(ZZD_GL_SyncServiceModel.ImportXml_凭证.Bodydebit(detailList));
                     //生成凭证
-                    var results_凭证 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=01&groupcode=0");
+                    var results_凭证 = NCImportFunc.NCImport2(xElement, _NCApiUrl + "?account=LY01&groupcode=0");
 
                     LogHelper.WriteLog(JsonConvert.SerializeObject(results_凭证), "results_凭证");
 
@@ -267,7 +270,7 @@ namespace HH.YiDaSyncNC.DataSync
             }
             catch (Exception ex)
             {
-
+                LogHelper.WriteLog(JsonConvert.SerializeObject(ex.ToString()), "ZZD");
                 throw;
             }
         }

+ 27 - 0
HH.YiDaSyncNC/Dtos/NC/ar_gatherbill.cs

@@ -0,0 +1,27 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.YiDaSyncNC.Dtos.NC
+{
+    [SugarTable("ar_gatherbill")]
+    public class ar_gatherbill
+    {
+        public ar_gatherbill()
+        {
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true)]
+        public string pk_gatherbill { get; set; }
+
+        public string billstatus { get; set; }
+    }
+}

+ 30 - 0
HH.YiDaSyncNC/Dtos/NC/ar_gatheritem.cs

@@ -0,0 +1,30 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.YiDaSyncNC.Dtos.NC
+{
+    [SugarTable("ar_gatheritem")]
+    public class ar_gatheritem
+    {
+        public ar_gatheritem()
+        {
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true)]
+        public string pk_gatheritem { get; set; }
+
+        public string pk_gatherbill { get; set; }
+        public string src_itemid { get; set; }
+        public string billdate { get; set; }
+        public decimal money_cr { get; set; }
+    }
+}

+ 3 - 0
HH.YiDaSyncNC/HH.YiDaSyncNC.csproj

@@ -138,6 +138,7 @@
     <Compile Include="DataSync\KH_SyncService.cs" />
     <Compile Include="DataSync\GYS_SyncService.cs" />
     <Compile Include="DataSync\BZJ_SyncService.cs" />
+    <Compile Include="DataSync\KP_HK_SyncService.cs" />
     <Compile Include="DataSync\KP_TP_SyncService.cs" />
     <Compile Include="DataSync\KP_SyncService.cs" />
     <Compile Include="DataSync\YF_FPRZ_SyncService.cs" />
@@ -147,6 +148,7 @@
     <Compile Include="Dtos\NC\ap_paybill.cs" />
     <Compile Include="Dtos\NC\ap_payitem.cs" />
     <Compile Include="DataSync\ZZD_GL_SyncService.cs" />
+    <Compile Include="Dtos\NC\ar_gatherbill.cs" />
     <Compile Include="Dtos\NC\bd_defdoc.cs" />
     <Compile Include="Dtos\NC\bd_income.cs" />
     <Compile Include="Dtos\NC\bd_customer.cs" />
@@ -165,6 +167,7 @@
     <Compile Include="Dtos\NC\bd_projectclass.cs" />
     <Compile Include="Dtos\NC\so_saleinvoice.cs" />
     <Compile Include="Dtos\NC\po_order.cs" />
+    <Compile Include="Dtos\NC\ar_gatheritem.cs" />
     <Compile Include="Dtos\NC\so_squareinv_d.cs" />
     <Compile Include="Dtos\NC\so_saleinvoice_b.cs" />
     <Compile Include="Dtos\NC\xx_idcontrast.cs" />

+ 20 - 13
HH.YiDaSyncNC/Program.cs

@@ -126,8 +126,8 @@ namespace HH.YiDaSyncNC
                 //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);
-                yf_fprz_SyncService.DataSync();
+                //YF_FPRZ_SyncService yf_fprz_SyncService = new YF_FPRZ_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FPRZD, db, db_nc, _Static_NCApiUrl);
+                //yf_fprz_SyncService.DataSync();
 
                 // 费用报销单 zxh 用不到
                 //BX_SyncService bx_SyncService = new BX_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_FYBX, db, db_nc, _Static_NCApiUrl);
@@ -136,24 +136,26 @@ namespace HH.YiDaSyncNC
 
                 #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 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_社保_预付();
+                //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);
-                //zzsq_SyncService.DataSync();
+                ZZD_GL_SyncService zzsq_SyncService = new ZZD_GL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_ZZSQ, db, db_nc, _Static_NCApiUrl);
+                zzsq_SyncService.DataSync();
                 // 还款单  生成凭证 zxh
-                //HKD_GL_SyncService hkd_SyncService = new HKD_GL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_ZZHX, db, db_nc, _Static_NCApiUrl);
-                //hkd_SyncService.DataSync();
+                HKD_GL_SyncService hkd_SyncService = new HKD_GL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_ZZHX, db, db_nc, _Static_NCApiUrl);
+                hkd_SyncService.DataSync();
                 #endregion
 
                 #region 保证金
@@ -161,6 +163,11 @@ namespace HH.YiDaSyncNC
                 //bzj_SyncService.DataSync();
                 #endregion
 
+                #region 开票档案回款回写
+                //KP_HK_SyncService kp_hk_SyncService = new KP_HK_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_KP, db, db_nc, _Static_NCApiUrl);
+                //kp_hk_SyncService.DataSync();
+                #endregion
+
                 Environment.Exit(0);
             }
             catch (Exception ex)