guoshuang пре 1 година
родитељ
комит
81f90b5a46

+ 22 - 2
HH.YiDaSyncNC/DataSync/FK_FKD_SyncService.cs

@@ -100,6 +100,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -126,8 +132,22 @@ namespace HH.YiDaSyncNC.DataSync
                             var detailItem = new FK_FKD_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();

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

@@ -100,6 +100,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 

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

@@ -109,6 +109,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -331,6 +337,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -551,6 +563,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -783,6 +801,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -953,6 +977,239 @@ 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\":\"业务外包付款\"}");
+
+            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-005";
+
+                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();
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+                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);
@@ -1014,6 +1271,10 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -1232,6 +1493,10 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -1453,6 +1718,10 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 
@@ -1687,6 +1956,10 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 

+ 6 - 0
HH.YiDaSyncNC/DataSync/FK_YF_SyncService.cs

@@ -113,6 +113,12 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.生效日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
                 dataSource.发票号 = ydDataSource["textField_lw7erc7d"].ToString();
+
+                if (dataSource.发票号.Length > 98)
+                {
+                    dataSource.发票号 = dataSource.发票号.Substring(0, 98);
+                }
+
                 dataSource.供应商 = ydDataSource["textField_lwitiobt"].ToString();
                 dataSource.付款银行账户 = ydDataSource["textField_lrngrtgj"].ToString().Trim().Replace(" ", "");
 

+ 10 - 1
HH.YiDaSyncNC/DataSync/KP_HK_SyncService.cs

@@ -77,6 +77,8 @@ namespace HH.YiDaSyncNC.DataSync
             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
 
+            var i = 1;
+
             #region 接口方式
             // 向NC插入数据
             foreach (var item in idList)
@@ -96,7 +98,8 @@ namespace HH.YiDaSyncNC.DataSync
                     continue;
                 }
 
-                LogHelper.WriteLog(JsonConvert.SerializeObject(ydDataSource), item + " 开始回写------------------------------------------------");
+                LogHelper.WriteLog("", "【序号 " + i + " / "+ idList.Count + "】" + item + " 开始回写");
+                i++;
 
                 var updateData = new Dictionary<string, string>();
                 var detailData = new List<DetailItem>();
@@ -280,6 +283,12 @@ namespace HH.YiDaSyncNC.DataSync
 
                     LogHelper.WriteLog(JsonConvert.SerializeObject(updateData), "数据构建完成");
 
+                    // 回传状态
+                    updateData.Add("radioField_m4253oqe", "N");
+                    // 回传状态
+                    updateData.Add("textField_m4253oqd", "回传成功");
+
+
                     var ydRes = _dingTalkService.UpdateFormDataById(updateData, item);
 
                     LogHelper.WriteLog(JsonConvert.SerializeObject(ydRes), "ydRes 回写完成------------------------------------------------");

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

@@ -49,20 +49,20 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-           var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_ltxrn8h1\":\"PM00397\"}");
+           var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\",\"textField_ltxrn8h1\":\"PM00408\"}");
             //var idList = _dingTalkService.GetFormIdList("");
 
             // 获取当前最大Id
-            var newId = 100000001;
-            var maxData = _db_nc.Queryable<bd_project>().OrderByDescending(obd => obd.pk_project).First();
-            if (maxData != null && maxData.pk_project.Contains(_Static_PK_bd_project))
-            {
-                newId = Convert.ToInt32(maxData.pk_project.Replace(_Static_PK_bd_project, "")) + 1;
-            }
+            //var newId = 100000001;
+            //var maxData = _db_nc.Queryable<bd_project>().OrderByDescending(obd => obd.pk_project).First();
+            //if (maxData != null && maxData.pk_project.Contains(_Static_PK_bd_project))
+            //{
+            //    newId = Convert.ToInt32(maxData.pk_project.Replace(_Static_PK_bd_project, "")) + 1;
+            //}
 
             #region 获取NC中选项数据的Id
-            var bd_projectclassDic = _db_nc.Queryable<bd_projectclass>().ToList();
-            var bd_stordocDic = _db_nc.Queryable<bd_stordoc>().ToList();
+            //var bd_projectclassDic = _db_nc.Queryable<bd_projectclass>().ToList();
+            //var bd_stordocDic = _db_nc.Queryable<bd_stordoc>().ToList();
             #endregion
 
             #region 循环数据处理业务逻辑
@@ -166,7 +166,7 @@ namespace HH.YiDaSyncNC.DataSync
                 //DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
 
                 ncResData.bSuccess = true;
-                ncResData.ncNo = "1001G1100000000E1AK1";//1001G1100000000DVG2J    1001G1100000000DVG3B
+                ncResData.ncNo = "1001G1100000000E1O78";//1001G1100000000DVG2J    1001G1100000000DVG3B
                 ncResData.log = "同步成功";
 
                 var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);

+ 48 - 21
HH.YiDaSyncNC/DataSync/ZC_SyncService.cs

@@ -52,30 +52,30 @@ namespace HH.YiDaSyncNC.DataSync
             var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
 
             // 获取当前最大Id
-            var newId = 100000001;
-            var maxData = _db_nc.Queryable<fa_card>().OrderByDescending(obd => Convert.ToDateTime(obd.creationtime)).First();
-            if (maxData != null && maxData.pk_card.Contains(_Static_PK_fa_card))
-            {
-                newId = Convert.ToInt32(maxData.pk_card.Replace(_Static_PK_fa_card, "")) + 1;
-            }
+            //var newId = 100000001;
+            //var maxData = _db_nc.Queryable<fa_card>().OrderByDescending(obd => Convert.ToDateTime(obd.creationtime)).First();
+            //if (maxData != null && maxData.pk_card.Contains(_Static_PK_fa_card))
+            //{
+            //    newId = Convert.ToInt32(maxData.pk_card.Replace(_Static_PK_fa_card, "")) + 1;
+            //}
 
 
-            string createTime = "";
-            string modifyTime = "";
+            //string createTime = "";
+            //string modifyTime = "";
 
-            var ydDataSource = _dingTalkService.GetFormDataById("FINST-G9766T71XRHMWPDI7JZFU6GVQ1X839MR8B4YLT31", out createTime, out 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 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");
+            //var ydRes = _dingTalkService.UpdateFormDataById(data, "FINST-G9766T71XRHMWPDI7JZFU6GVQ1X839MR8B4YLT31");
 
 
             #region 获取NC中选项数据的Id
-            var pam_addreducestyleDic = _db_nc.Queryable<pam_addreducestyle>().ToList();
+            // var pam_addreducestyleDic = _db_nc.Queryable<pam_addreducestyle>().ToList();
             #endregion
 
             // 资产部门ID textField_lydsc49c
@@ -84,10 +84,10 @@ namespace HH.YiDaSyncNC.DataSync
             #region 循环数据处理业务逻辑
             foreach (var item in idList)
             {
-                //// 获取此条数据详情
-                //string createTime = "";
-                //string modifyTime = "";
-                //var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
+                // 获取此条数据详情
+                string createTime = "";
+                string modifyTime = "";
+                var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
 
                 //#region 构建数据体
                 //var data = new fa_card();
@@ -122,6 +122,33 @@ namespace HH.YiDaSyncNC.DataSync
                 //data.transi_type = "H1-00";
                 //data.ts = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
+                var a = ydDataSource.FirstOrDefault(f => f.Key == "textField_lydsc49c").Value;
+
+                //if (ydDataSource["textField_lydsc49c"].ToString().Contains("PM"))
+                //{
+                //    var ncResData = new YiDaResDto()
+                //    {
+                //        syncTime = DateTime.Now,
+                //    };
+
+                //    ncResData.bSuccess = false;
+                //    ncResData.ncNo = "";
+                //    ncResData.log = "同步失败【使用部门错误,无法关联有效的部门!】";
+
+                //    var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+                //}
+
+                var ncResData = new YiDaResDto()
+                {
+                    syncTime = DateTime.Now,
+                };
+
+                ncResData.bSuccess = false;
+                ncResData.ncNo = "";
+                ncResData.log = "同步失败【账簿不是最小未结账月!】";
+
+                var ydRes = _dingTalkService.UpdateFormDataSyncDataById(ncResData, item);
+
 
                 //if (ydDataSource.FirstOrDefault(f => f.Key == "selectField_lwk48b8s").Value != null)
                 //{
@@ -160,7 +187,7 @@ namespace HH.YiDaSyncNC.DataSync
                 //    syncTime = DateTime.Now,
                 //};
 
-                //DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
+                ////DBHelper.WriteLog($"Id为【{JsonConvert.SerializeObject(item)}】的单据操作成功!");
 
                 //ncResData.bSuccess = false;
                 //ncResData.ncNo = "";

+ 3 - 3
HH.YiDaSyncNC/Models/FK_FKD_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,7 +50,7 @@ namespace HH.YiDaSyncNC.Models
 
             public string 年份 { get; set; }
             public string 月份 { get; set; }
-            
+
             public string 起算日期 { get; set; }
 
             public string 汇率 { get; set; } = "1";
@@ -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.发票号.Substring(0,40)),
 
                             new XElement("def12",itemData.税额),
                             new XElement("def11",itemData.无税金额),

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

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

+ 3 - 3
HH.YiDaSyncNC/Models/FK_YF_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,7 +50,7 @@ namespace HH.YiDaSyncNC.Models
 
             public string 年份 { get; set; }
             public string 月份 { get; set; }
-            
+
             public string 起算日期 { get; set; }
 
             public string 汇率 { get; set; } = "1";
@@ -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.发票号.Substring(0,40)),
 
                             new XElement("def12",itemData.税额),
                             new XElement("def11",itemData.无税金额),

+ 18 - 11
HH.YiDaSyncNC/Program.cs

@@ -62,8 +62,8 @@ namespace HH.YiDaSyncNC
             {
                 #region 基础档案
                 // 物料
-                WL_SyncService wL_SyncService = new WL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_WL, db, db_nc, _Static_NCApiUrl);
-                wL_SyncService.DataSync();
+                //WL_SyncService wL_SyncService = new WL_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_WL, db, db_nc, _Static_NCApiUrl);
+                //wL_SyncService.DataSync();
 
                 // 项目点
                 //XMD_SyncService xMD_SyncService = new XMD_SyncService(_Static_AppType, _Static_SystemToken, _Static_UserId, _Static_FormId_XMD, db, db_nc, _Static_NCApiUrl);
@@ -136,16 +136,18 @@ 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_公积金_预付();
+                fk_xz_SyncService.DataSync_社保_预付();
+                fk_xz_SyncService.DataSync_薪资_预付();
+                fk_xz_SyncService.DataSync_发放人力外包工资_预付();
 
                 #endregion
 
@@ -168,6 +170,11 @@ namespace HH.YiDaSyncNC
                 //kp_hk_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)