guoshuang преди 2 години
родител
ревизия
b3c129680f

Файловите разлики са ограничени, защото са твърде много
+ 117 - 111
HH.YiDaSyncNC/DataSync/CGDD_SyncService.cs


+ 173 - 131
HH.YiDaSyncNC/DataSync/KP_SyncService.cs

@@ -55,7 +55,8 @@ 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("{\"textField_lvdosccc\":\"KP_2024071800267\"}");
 
             LogHelper.WriteLog(JsonConvert.SerializeObject(idList.Count), "idList");
 
@@ -73,7 +74,6 @@ namespace HH.YiDaSyncNC.DataSync
             var bd_defdoc_htywlx = _db_nc.Queryable<bd_defdoc>().Where(w => w.pk_defdoclist == "1001G1100000000010PV").ToList(); // 合同业务类型
             #endregion
 
-
             #region 接口方式
             // 向NC插入数据
             foreach (var item in idList)
@@ -83,6 +83,11 @@ namespace HH.YiDaSyncNC.DataSync
 
                 var ydDataSource = _dingTalkService.GetFormDataById(item, out createTime, out modifyTime);
 
+                if (ydDataSource["textField_ltxyt75i"].ToString() != "")
+                {
+                    continue;
+                }
+
                 var ncResData = new List<YiDaResDto>();
 
 
@@ -104,6 +109,12 @@ namespace HH.YiDaSyncNC.DataSync
 
                 dataSource.单据日期 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
 
+                if (!string.IsNullOrWhiteSpace(ydDataSource["dateField_lw5ud9bk"].ToString()))
+                {
+                    dataSource.单据日期 = UnixTimeHelper.ConvertMillisecondsToDateTime(Convert.ToInt64(ydDataSource["dateField_lw5ud9bk"].ToString())).ToString("yyyy-MM-dd HH:mm:ss");
+                }
+
+
                 if (ydDataSource.FirstOrDefault(f => f.Key == "textField_lvdojfuj").Value != null)
                 {
                     if (!string.IsNullOrWhiteSpace(ydDataSource["textField_lvdojfuj"].ToString()))
@@ -193,10 +204,17 @@ namespace HH.YiDaSyncNC.DataSync
                 {
                     if (!string.IsNullOrWhiteSpace(ydDataSource["selectField_lvc9x4vn"].ToString()))
                     {
-                        var tempData = bd_defdoc_htywlx.FirstOrDefault(f => f.name == ydDataSource["selectField_lvc9x4vn"].ToString());
-                        if (tempData != null)
+                        if (ydDataSource["selectField_lvc9x4vn"].ToString().Contains("一次性") || ydDataSource["selectField_lvc9x4vn"].ToString().Contains("工程订单"))
                         {
-                            dataSource.合同业务类型 = tempData.pk_defdoc; // 合同业务类型
+                            dataSource.合同业务类型 = "1001G11000000000113F";
+                        }
+                        else
+                        {
+                            var tempData = bd_defdoc_htywlx.FirstOrDefault(f => f.name == ydDataSource["selectField_lvc9x4vn"].ToString());
+                            if (tempData != null)
+                            {
+                                dataSource.合同业务类型 = tempData.pk_defdoc; // 合同业务类型
+                            }
                         }
                     }
                 }
@@ -209,213 +227,225 @@ namespace HH.YiDaSyncNC.DataSync
                 var detailList = new List<KP_SyncServiceModel.DataModel.OrderB>();
 
                 #region 大业主开票明细
-                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null && dataSource.合同业务类型 == "1001G11000000000113D")
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
                 {
-                    var detailObjList1 = (List<object>)ydDataSource["tableField_lvc9x4vt"]; // 大业主开票明细
                     if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvc9x4vt").Value != null)
                     {
-                        foreach (var objItem in detailObjList1)
+                        var detailObjList1 = (List<object>)ydDataSource["tableField_lvc9x4vt"]; // 大业主开票明细
+
+                        if (detailObjList1.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList1.FirstOrDefault())["textField_lvdojfup"].ToString()))
                         {
-                            var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                            if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString()))
+                            foreach (var objItem in detailObjList1)
                             {
-                                var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString().Replace("\\", "");
-                                var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
-                                var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
+                                var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                                var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
+                                if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString()))
+                                {
+                                    var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynhq7p_id"].ToString().Replace("\\", "");
+                                    var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
+                                    var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
 
-                                detailItem.物料 = materialData.code; // 物料
+                                    var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
 
-                                var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
+                                    detailItem.物料 = materialData.code; // 物料
 
-                                detailItem.计量单位 = unitCode.code; // 计量单位
-                            }
+                                    var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
 
-                            var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2v"].ToString());
-                            var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2z"].ToString());
-                            var wsdj = hsdj - se;
-                            var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2w"].ToString());
-                            var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp30"].ToString());
-                            var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2y"].ToString());
+                                    detailItem.计量单位 = unitCode.code; // 计量单位
+                                }
 
-                            // 含税单价
-                            detailItem.含税单价 = hsdj.ToString();
+                                var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2v"].ToString());
+                                var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2z"].ToString());
+                                var wsdj = hsdj - se;
+                                var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2w"].ToString());
+                                var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp30"].ToString());
+                                var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2y"].ToString());
 
-                            // 无税单价
-                            detailItem.无税单价 = wsdj.ToString();
+                                // 含税单价
+                                detailItem.含税单价 = hsdj.ToString();
 
-                            //  含税净价
-                            detailItem.含税净价 = hsdj.ToString();
+                                // 无税单价
+                                detailItem.无税单价 = wsdj.ToString();
 
-                            // 无税净价
-                            detailItem.无税净价 = wsdj.ToString();
+                                //  含税净价
+                                detailItem.含税净价 = hsdj.ToString();
 
-                            // 税额
-                            detailItem.税额 = se.ToString();
+                                // 无税净价
+                                detailItem.无税净价 = wsdj.ToString();
 
-                            // 无税金额
-                            detailItem.无税金额 = wsje.ToString();
+                                // 税额
+                                detailItem.税额 = se.ToString();
 
-                            // 数量
-                            detailItem.数量 = sl.ToString();
+                                // 无税金额
+                                detailItem.无税金额 = wsje.ToString();
 
-                            // 价税合计
-                            detailItem.价税合计 = jshj.ToString();
+                                // 数量
+                                detailItem.数量 = sl.ToString();
 
-                            detailItem.换算率 = "1.00/1.00";
-                            detailItem.税码 = "CN04"; // 税率码 
-                            detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2x"].ToString()).ToString(); // 税率
+                                // 价税合计
+                                detailItem.价税合计 = jshj.ToString();
 
-                            detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp2t"].ToString();
+                                detailItem.换算率 = "1.00/1.00";
+                                detailItem.税码 = "CN04"; // 税率码 
+                                detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp2x"].ToString()).ToString(); // 税率
 
-                            detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfup"].ToString();
+                                detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp2t"].ToString();
 
-                            detailList.Add(detailItem);
+                                detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfup"].ToString();
+
+                                detailList.Add(detailItem);
+                            }
                         }
                     }
                 }
                 #endregion
 
                 #region 工程订单开票明细
-                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null && dataSource.合同业务类型 == null)
+                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
                 {
                     dataSource.项目 = "PM99001";
-                    dataSource.合同业务类型 = "1001G11000000000113F";
 
                     var detailObjList2 = (List<object>)ydDataSource["tableField_lvd8pp44"]; // 工程订单开票明细
                     if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvd8pp44").Value != null)
                     {
-                        foreach (var objItem in detailObjList2)
+                        if (detailObjList2.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList2.FirstOrDefault())["textField_lvdojfur"].ToString()))
                         {
-                            var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                            if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString()))
+                            foreach (var objItem in detailObjList2)
                             {
-                                var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString().Replace("\\", "");
-                                var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
-                                var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
+                                var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                                var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
+                                if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString()))
+                                {
+                                    var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6a_id"].ToString().Replace("\\", "");
+                                    var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
+                                    var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
 
-                                detailItem.物料 = materialData.code; // 物料
+                                    var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
 
-                                var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
+                                    detailItem.物料 = materialData.code; // 物料
 
-                                detailItem.计量单位 = unitCode.code; // 计量单位
-                            }
+                                    var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
+
+                                    detailItem.计量单位 = unitCode.code; // 计量单位
+                                }
 
-                            var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3y"].ToString());
-                            var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp42"].ToString());
-                            var wsdj = hsdj - se;
-                            var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3z"].ToString());
-                            var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp43"].ToString());
-                            var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp41"].ToString());
+                                var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3y"].ToString());
+                                var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp42"].ToString());
+                                var wsdj = hsdj - se;
+                                var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp3z"].ToString());
+                                var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp43"].ToString());
+                                var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp41"].ToString());
 
-                            // 含税单价
-                            detailItem.含税单价 = hsdj.ToString();
+                                // 含税单价
+                                detailItem.含税单价 = hsdj.ToString();
 
-                            // 无税单价
-                            detailItem.无税单价 = wsdj.ToString();
+                                // 无税单价
+                                detailItem.无税单价 = wsdj.ToString();
 
-                            //  含税净价
-                            detailItem.含税净价 = hsdj.ToString();
+                                //  含税净价
+                                detailItem.含税净价 = hsdj.ToString();
 
-                            // 无税净价
-                            detailItem.无税净价 = wsdj.ToString();
+                                // 无税净价
+                                detailItem.无税净价 = wsdj.ToString();
 
-                            // 税额
-                            detailItem.税额 = se.ToString();
+                                // 税额
+                                detailItem.税额 = se.ToString();
 
-                            // 无税金额
-                            detailItem.无税金额 = wsje.ToString();
+                                // 无税金额
+                                detailItem.无税金额 = wsje.ToString();
 
-                            // 数量
-                            detailItem.数量 = sl.ToString();
+                                // 数量
+                                detailItem.数量 = sl.ToString();
 
-                            // 价税合计
-                            detailItem.价税合计 = jshj.ToString();
+                                // 价税合计
+                                detailItem.价税合计 = jshj.ToString();
 
-                            detailItem.换算率 = "1.00/1.00";
-                            detailItem.税码 = "CN04"; // 税率码 
-                            detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp40"].ToString()).ToString(); // 税率
+                                detailItem.换算率 = "1.00/1.00";
+                                detailItem.税码 = "CN04"; // 税率码 
+                                detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvd8pp40"].ToString()).ToString(); // 税率
 
-                            detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp3w"].ToString();
+                                detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvd8pp3w"].ToString();
 
-                            detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfur"].ToString();
+                                detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfur"].ToString();
 
-                            detailList.Add(detailItem);
+                                detailList.Add(detailItem);
+                            }
                         }
                     }
                 }
                 #endregion
 
                 #region 小业主开票明细
-                if (ydDataSource.FirstOrDefault(f => f.Key == "tableField_lvdnme13").Value != null && dataSource.合同业务类型 == "1001G11000000000113E")
+                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)
                     {
-                        foreach (var objItem in detailObjList3)
+                        if (detailObjList3.Count() > 0 && !string.IsNullOrWhiteSpace(((Dictionary<string, object>)detailObjList3.FirstOrDefault())["textField_lvdojfus"].ToString()))
                         {
-                            var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                            if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString()))
+                            foreach (var objItem in detailObjList3)
                             {
-                                var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString().Replace("\\", "");
-                                var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
-                                var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
+                                var detailItem = new KP_SyncServiceModel.DataModel.OrderB();
 
-                                var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
+                                if (!string.IsNullOrWhiteSpace(((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString()))
+                                {
+                                    var sourceStr = ((Dictionary<string, object>)objItem)["associationFormField_lvynrr6c_id"].ToString().Replace("\\", "");
+                                    var a = sourceStr = sourceStr.Substring(1, sourceStr.Length - 2);
+                                    var b = JsonConvert.DeserializeObject<List<FormItem>>(a);
 
-                                detailItem.物料 = materialData.code; // 物料
+                                    var materialData = bd_materialDic.FirstOrDefault(f => f.name == b[0].title);
 
-                                var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
+                                    detailItem.物料 = materialData.code; // 物料
 
-                                detailItem.计量单位 = unitCode.code; // 计量单位
-                            }
+                                    var unitCode = bd_measdocDic.FirstOrDefault(f => f.pk_measdoc == materialData.pk_measdoc);
 
-                            var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0w"].ToString());
-                            var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme10"].ToString());
-                            var wsdj = hsdj - se;
-                            var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0x"].ToString());
-                            var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme11"].ToString());
-                            var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0z"].ToString());
+                                    detailItem.计量单位 = unitCode.code; // 计量单位
+                                }
 
-                            // 含税单价
-                            detailItem.含税单价 = hsdj.ToString();
+                                var hsdj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0w"].ToString());
+                                var se = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme10"].ToString());
+                                var wsdj = hsdj - se;
+                                var sl = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0x"].ToString());
+                                var wsje = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme11"].ToString());
+                                var jshj = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0z"].ToString());
 
-                            // 无税单价
-                            detailItem.无税单价 = wsdj.ToString();
+                                // 含税单价
+                                detailItem.含税单价 = hsdj.ToString();
 
-                            //  含税净价
-                            detailItem.含税净价 = hsdj.ToString();
+                                // 无税单价
+                                detailItem.无税单价 = wsdj.ToString();
 
-                            // 无税净价
-                            detailItem.无税净价 = wsdj.ToString();
+                                //  含税净价
+                                detailItem.含税净价 = hsdj.ToString();
 
-                            // 税额
-                            detailItem.税额 = se.ToString();
+                                // 无税净价
+                                detailItem.无税净价 = wsdj.ToString();
 
-                            // 无税金额
-                            detailItem.无税金额 = wsje.ToString();
+                                // 税额
+                                detailItem.税额 = se.ToString();
 
-                            // 数量
-                            detailItem.数量 = sl.ToString();
+                                // 无税金额
+                                detailItem.无税金额 = wsje.ToString();
 
-                            // 价税合计
-                            detailItem.价税合计 = jshj.ToString();
+                                // 数量
+                                detailItem.数量 = sl.ToString();
 
-                            detailItem.换算率 = "1.00/1.00";
-                            detailItem.税码 = "CN04"; // 税率码 
-                            detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0y"].ToString()).ToString(); // 税率
+                                // 价税合计
+                                detailItem.价税合计 = jshj.ToString();
 
-                            detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvdnme0u"].ToString();
+                                detailItem.换算率 = "1.00/1.00";
+                                detailItem.税码 = "CN04"; // 税率码 
+                                detailItem.税率 = Convert.ToDecimal(((Dictionary<string, object>)objItem)["numberField_lvdnme0y"].ToString()).ToString(); // 税率
 
-                            detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfus"].ToString();
+                                detailItem.开票内容 = ((Dictionary<string, object>)objItem)["textField_lvdnme0u"].ToString();
 
-                            detailList.Add(detailItem);
+                                detailItem.行id = ((Dictionary<string, object>)objItem)["textField_lvdojfus"].ToString();
+
+                                detailList.Add(detailItem);
+                            }
                         }
                     }
                 }
@@ -427,7 +457,7 @@ namespace HH.YiDaSyncNC.DataSync
                 dataSource.价税合计 = dataSource.明细.Sum(s => Convert.ToDecimal(s.价税合计)).ToString();
 
 
-                var results_销售订单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售订单.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售订单.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+                var results_销售订单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售订单.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售订单.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
 
                 LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售订单), "results_销售订单");
 
@@ -452,6 +482,8 @@ namespace HH.YiDaSyncNC.DataSync
                         ncNo = "",
                         log = "同步失败!原因为【" + resultdescription_销售订单 + "】!"
                     });
+
+                    continue;
                 }
 
                 // -------------------------------销售订单同步完,开始同步销售发票
@@ -467,7 +499,7 @@ namespace HH.YiDaSyncNC.DataSync
                     detailItem.销售订单子表id = saleorderbData.FirstOrDefault(f => f.vbdef10 == detailItem.行id).csaleorderbid;
                 }
 
-                var results_销售发票 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售发票.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售发票.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+                var results_销售发票 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_销售发票.TemplateHeade(), KP_SyncServiceModel.ImportXml_销售发票.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
 
 
                 LogHelper.WriteLog(JsonConvert.SerializeObject(results_销售发票), "results_销售发票");
@@ -495,7 +527,7 @@ namespace HH.YiDaSyncNC.DataSync
                     });
                 }
 
-                // -------------------------------销售订单同步完,开始同步应收
+                // -------------------------------销售发票同步完,开始同步应收
 
                 var saleinvoicebData = _db_nc.Queryable<so_saleinvoice_b>().Where(f => f.csaleinvoiceid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
                 var squareinvbData = _db_nc.Queryable<so_squareinv_d>().Where(f => f.csquarebillid == xE_销售发票.Element("sendresult").Element("content").Value).ToList();
@@ -509,7 +541,7 @@ namespace HH.YiDaSyncNC.DataSync
                 //    detailItem.销售发票子表id = b.csalesquaredid;
                 //}
 
-                var results_应收单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_应收单.TemplateHeade(), KP_SyncServiceModel.ImportXml_应收单.Header(dataSource, item), _NCApiUrl + "?account=LY01&groupcode=0");
+                var results_应收单 = NCImportFunc.NCImport(KP_SyncServiceModel.ImportXml_应收单.TemplateHeade(), KP_SyncServiceModel.ImportXml_应收单.Header(dataSource, item + "02"), _NCApiUrl + "?account=01&groupcode=0");
 
                 LogHelper.WriteLog(JsonConvert.SerializeObject(results_应收单), "results_应收单");
 
@@ -517,6 +549,16 @@ namespace HH.YiDaSyncNC.DataSync
                 string resultcode_应收单 = xE_应收单.Element("sendresult").Element("resultcode").Value;
                 string resultdescription_应收单 = xE_应收单.Element("sendresult").Element("resultdescription")?.Value;
 
+                var recitemData = _db_nc.Queryable<ar_recitem>().Where(w => w.pk_recbill == xE_应收单.Element("sendresult").Element("content").Value).ToList();
+
+                foreach (var recitem in recitemData)
+                {
+                    recitem.scomment = recitem.def1;
+
+                    _db_nc.Updateable(recitem).ExecuteCommand();
+                }
+
+
                 if (resultcode_应收单 == "1")
                 {
                     ncResData.Add(new YiDaResDto()

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

@@ -51,7 +51,7 @@ namespace HH.YiDaSyncNC.DataSync
             DingTalkService _dingTalkService = new DingTalkService(_AppType, _SystemToken, _UserId, _FormId);
 
             // 宜搭全量数据Id
-            var idList = _dingTalkService.GetModifyFormIdList();
+            var idList = _dingTalkService.GetFormIdList("{\"radioField_lycrvvtk\":\"Y\"}");
 
             DBHelper.WriteLog(JsonConvert.SerializeObject(idList), "idList");
 
@@ -147,7 +147,7 @@ namespace HH.YiDaSyncNC.DataSync
                     var xmlData = WL_SyncServiceModel.ImportXml.Header(dataSource, item);
                     XElement tempData = WL_SyncServiceModel.ImportXml.TemplateHeade();
 
-                    var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=LY01&groupcode=0");
+                    var results = NCImportFunc.NCImport(tempData, xmlData, _NCApiUrl + "?account=01&groupcode=0");
 
                     DBHelper.WriteLog($"进入程序3");
 

+ 31 - 0
HH.YiDaSyncNC/Dtos/NC/ar_recitem.cs

@@ -0,0 +1,31 @@
+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_recitem")]
+    public class ar_recitem
+    {
+        public ar_recitem()
+        {
+
+        }
+        /// <summary>
+        /// Desc:
+        /// Default:
+        /// Nullable:False
+        /// </summary>           
+        [SugarColumn(IsPrimaryKey = true)]
+        public string pk_recitem { get; set; }
+
+        public string pk_recbill { get; set; }
+
+        public string scomment { get; set; }
+
+        public string def1 { get; set; }
+    }
+}

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

@@ -141,6 +141,7 @@
     <Compile Include="Dtos\NC\org_accountingbook.cs" />
     <Compile Include="Dtos\NC\po_order_bb.cs" />
     <Compile Include="Dtos\NC\po_order_b.cs" />
+    <Compile Include="Dtos\NC\ar_recitem.cs" />
     <Compile Include="Dtos\NC\sm_user.cs" />
     <Compile Include="Dtos\NC\bd_psndoc.cs" />
     <Compile Include="Dtos\NC\org_dept.cs" />

+ 1 - 1
HH.YiDaSyncNC/Helper/DingTalkService.cs

@@ -163,7 +163,7 @@ namespace HH.YiDaSyncNC.Helper
             data.Add("dateField_ltxyt75l", UnixTimeHelper.ConvertToMilliseconds(resData.syncTime).ToString());
             data.Add("textField_ltxyt75m", resData.ncNo);
             data.Add("textField_ltxyt75n", resData.log);
-            data.Add("radioField_lycrvvtk", "N");
+            // data.Add("radioField_lycrvvtk", "N");
 
             return UpdateFormDataByIdFunc(JsonConvert.SerializeObject(data), FormInstanceId);
         }

+ 14 - 6
HH.YiDaSyncNC/Models/KP_SyncServiceModel.cs

@@ -239,7 +239,7 @@ namespace HH.YiDaSyncNC.Models
                         new XElement("cemployeeid",""),
                         new XElement("corigcurrencyid",item.币种),
                         new XElement("cinvoicecustid",item.客户),
-                        new XElement("cpaytermid","01"),
+                        new XElement("cpaytermid",item.收款协议),
 
                         new XElement("ntotalnum",item.数量),
                         new XElement("ntotalinvoicenum","1"),
@@ -495,10 +495,14 @@ namespace HH.YiDaSyncNC.Models
                         new XElement("copposesrcid",""),
                         new XElement("vnote",""),
 
-                        new XElement("fstatusflag","2"),
+                        //new XElement("fstatusflag","2"),
+                        //new XElement("approver",item.审批人),
+                        //new XElement("taudittime",item.审批时间),
+
+                        new XElement("fstatusflag","1"),
+                        new XElement("approver",""),
+                        new XElement("taudittime",""),
 
-                        new XElement("approver",item.审批人),
-                        new XElement("taudittime",item.审批时间),
                         new XElement("billmaker",item.制单人),
                         new XElement("dmakedate",item.制单时间),
                         new XElement("creator",item.创建人),
@@ -620,8 +624,8 @@ namespace HH.YiDaSyncNC.Models
                             new XElement("purchaseorder",item.销售订单单据号),
                             new XElement("invoiceno",item.发票号),
 
-                            new XElement("vbdef1",itemData.开票内容),
-                            new XElement("vbdef10",itemData.行id),
+                            new XElement("def1",itemData.开票内容),
+                            new XElement("def10",itemData.行id),
 
                             new XElement("grouprate","0"),
                             new XElement("globalrate","0"),
@@ -719,6 +723,10 @@ namespace HH.YiDaSyncNC.Models
                         new XElement("inner_effect_date",""),
                         new XElement("busidate",""),
 
+                        new XElement("def2",item.发票号),
+                        new XElement("def4",item.开票类型),
+                        new XElement("def5",item.合同业务类型),
+
                         new XElement("bodys",bodys),
                     }),
                 });