From 01f550af6cd9d81bbb2b257cac3e67f2c440928d Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期四, 16 十月 2025 15:55:33 +0800
Subject: [PATCH] 新增 采购入库审核同步插件

---
 zymes/OperationService/zymes_RealessPrdInStock.cs |   28 +++-
 zymes/OperationService/zymes_RealessPurInStock.cs |  302 ++++++++++++++++++++++++++++++++++++++++++++++++++
 zymes/zymes_Project.csproj                        |    1 
 3 files changed, 321 insertions(+), 10 deletions(-)

diff --git a/zymes/OperationService/zymes_RealessPrdInStock.cs b/zymes/OperationService/zymes_RealessPrdInStock.cs
index cd8d1f9..9d0583e 100644
--- a/zymes/OperationService/zymes_RealessPrdInStock.cs
+++ b/zymes/OperationService/zymes_RealessPrdInStock.cs
@@ -54,22 +54,30 @@
                 string sql = string.Empty;
                 sql = $@"
                 /*dialect*/
-                SELECT 
-                a.FID HInterID,a.FENTRYID HEntryID, a.FMATERIALID HMaterID,a.FUNITID HUnitID,
-                0 HQtyMust, a.FREALQTY HQty, ISNULL(a.FPrice, 0) HPrice, 0 HMoney, a.FSTOCKID HWHID,
-                0 HSPID, 'CLOUD瀵煎叆' HRemark, a.FSRCINTERID HSourceInterID, a.FSRCENTRYID HSourceEntryID,  
-	            a.FSRCBILLNO HSourceBillNo, a.FSRCBILLTYPE HSourceBillType,0 HPOOrderInterID,0 HPOOrderEntryID,
-                '' HPOOrderBillNo,0 HSecUnitID,0 HSeOrderInterID, 0 HSeOrderEntryID, '' HSeOrderBillNo, 0 HRelationQty, 
-                0 HSecUnitRate, a.FAUXPROPID HPropertyID
-                from T_PRD_INSTOCKENTRY  a with(nolock)
+                 SELECT 
+                 a.FID HInterID,a.FENTRYID HEntryID, a.FMATERIALID HMaterID,a.FUNITID HUnitID,
+                 a.FREALQTY HQtyMust, 0 HQty, ISNULL(a.FPrice, 0) HPrice, 0 HMoney, a.FSTOCKID HWHID,
+                 0 HSPID, 'CLOUD瀵煎叆' HRemark, a.FSRCINTERID HSourceInterID, a.FSRCENTRYID HSourceEntryID,  
+                 a.FSRCBILLNO HSourceBillNo, 
+                 case a.FSRCBILLTYPE 
+                 when 'SFC_OperationReport' then '3714'
+                 when 'SFC_OperationTransfer' then '7507'
+                 when 'PRD_MO' then '3710'
+                 when 'PRD_MORPT' then '3711'
+                 end as   
+                 HSourceBillType,0 HPOOrderInterID,0 HPOOrderEntryID,
+                 '' HPOOrderBillNo,0 HSecUnitID,0 HSeOrderInterID, 0 HSeOrderEntryID, '' HSeOrderBillNo, 0 HRelationQty, 
+                 0 HSecUnitRate, a.FAUXPROPID HPropertyID
+                 from T_PRD_INSTOCKENTRY  a with(nolock)
                 Where a.FID={id}
                 select a.FID as HInterID,1202 as HBillType,1202 as HBillSubType,
                 a.FBILLNO as HBillNo,case when a.FAPPROVERID=0 then 1 else 2 end HBillStatus,
                 a.FDATE as HDate,YEAR(a.FDATE) as HYear,MONTH(a.FDATE) as HPeriod,'CLOUD瀵煎叆' as HRemark,
-                a.FCREATORID as HMaker,a.FCREATEDATE as HMakeDate,0 as HSupID,a.FSTOCKERID as HWHID,  -- 琛ュ厖琛ㄥ埆鍚峚.锛屼笌鍏朵粬瀛楁淇濇寔涓�鑷�
+                a.FCREATORID as HMaker,a.FCREATEDATE as HMakeDate,0 as HSupID,a.FSTOCKERID as HWHID,  
                 a.FSTOCKERID as HEmpID,0 as HManagerID,0 as HSecManagerID,a.FSTOCKERID as HKeeperID,
                 'CLOUD瀵煎叆' as HExplanation,a.FBILLNO as HInnerBillNo,a.FCurrID as HCurID,0 as HExRate,
-                a.FApproverID as HChecker, a.FApproveDate as HCheckDate,
+                o.FNUMBER as HOrganNumber,a.FAPPROVERID as HChecker,a.FAPPROVEDATE as HCheckDate,
+                a.FSTOCKORGID as HSTOCKORGID,
                 (select top 1 b.FWORKSHOPID 
                 		from T_PRD_INSTOCKEntry b with(nolock) 
                 		where b.FID = a.FID
diff --git a/zymes/OperationService/zymes_RealessPurInStock.cs b/zymes/OperationService/zymes_RealessPurInStock.cs
new file mode 100644
index 0000000..497e8c1
--- /dev/null
+++ b/zymes/OperationService/zymes_RealessPurInStock.cs
@@ -0,0 +1,302 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Kingdee.BOS.Util;
+using Kingdee.BOS.Core.Metadata.EntityElement;
+using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Orm.DataEntity;
+using System.ComponentModel;
+using Kingdee.BOS.ServiceHelper;
+using System.Data;
+using Newtonsoft.Json.Linq;
+using ZD.Cloud.WebApi;
+using Newtonsoft.Json;
+using Kingdee.BOS.Core.DynamicForm;
+using System.Linq;
+using RestSharp;
+using zymes_Project.Utility;
+
+namespace zymes_Project.OperationService
+{
+    [Description("[閲囪喘鍏ュ簱鍗�-瀹℃牳]鏈嶅姟鎻掍欢]")]
+    [HotUpdate]
+    public class zymes_RealessPurInStock : AbstractOperationServicePlugIn
+    {
+        Dictionary<string, string> dictionary = new Dictionary<string, string>();
+        public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e)
+        {
+            base.OnPrepareOperationServiceOption(e);
+
+            //涓轰簡鍦˙eginOperationTransaction閲屾鏌ユ暟鎹姏鍑哄紓甯告椂
+            //鍙洖婊氬綋鍓嶅崟鎹殑浜嬪姟,杩欓噷璁剧疆涓轰笉鏀寔鎵归噺浜嬪姟,杩欐牱BOS浼�
+            //寰幆涓烘瘡涓�寮犲崟鎹垱寤轰簨鍔¤皟鐢ㄦ搷浣�
+            e.SupportTransaction = true;
+            // e.SurportBatchTransaction = false;
+        }
+        public override void OnPreparePropertys(PreparePropertysEventArgs e)
+        {
+            base.OnPreparePropertys(e);
+            e.FieldKeys.Add("FEntity");
+            e.FieldKeys.Add("FEntity_FEntryID");
+        }
+        //public override void BeginOperationTransaction(BeginOperationTransactionArgs e)
+        //{
+        //    base.BeginOperationTransaction(e);
+        //    //foreach (var item in e.DataEntitys)
+        //    //{
+        //    //    DynamicObjectCollection entryRows = item["FEntity"] as DynamicObjectCollection;
+        //    //}
+        //    Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+        //    foreach (var billObj in e.DataEntitys)
+        //    {
+        //        //DynamicObjectCollection entryRows = entity.DynamicProperty.GetValue(billObj.DataEntity)
+        //        //        as DynamicObjectCollection;
+        //        DynamicObjectCollection entryRows = billObj["FEntity"] as DynamicObjectCollection;
+        //        foreach (var entryRow in entryRows)
+        //        {
+        //            var fentryId = entryRow["Id"].ToString();
+        //            //鐢熸垚閲囪喘璁㈠崟
+        //            string sql = $"/*dialect*/ exec proc_jit_DayPlanAduitAddNemMoOrder {fentryId}";
+        //            DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0];
+        //            if (dt.Rows[0][0].ToString().Contains("鎴愬姛"))
+        //                continue;
+        //            foreach (DataRow dr in dt.Rows)
+        //            {
+        //                JObject model = new JObject();
+        //                model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = dr["FBillTypeNumber"].ToString() }); //鍗曟嵁绫诲瀷
+        //                model.Add("FCreatorId", new JObject() { ["FUserID"] = Context.UserId }); //鍒涘缓浜�
+        //                model.Add("FModifierId", new JObject() { ["FUserID"] = Context.UserId }); //淇敼浜�
+        //                model.Add("FDate", dr["FDate"].ToString());
+        //                model.Add("FBILLNO", dr["FSpreadBillNo"].ToString());
+        //                model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
+        //                model.Add("FWorkShopID0", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
+        //                model.Add("FOwnerTypeId", dr["FOwnerTypeId"].ToString());
+        //                model.Add("FIsRework", dr["FIsRework"].ToString());
+        //                model.Add("FBusinessType", dr["FBusinessType"].ToString());
+        //                model.Add("FTrustteed", dr["FTrustteed"].ToString());
+        //                model.Add("FIsEntrust", dr["FIsEntrust"].ToString());
+        //                model.Add("FPPBOMType", dr["FPPBOMType"].ToString());
+        //                model.Add("FIssueMtrl", dr["FIssueMtrl"].ToString());
+        //                JArray Fentity = new JArray();
+        //                JObject FentityModel = new JObject();
+        //                FentityModel.Add("FProductType", dr["FProductType"].ToString());
+        //                FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMATERIALNUMBER"].ToString() });
+        //                FentityModel.Add("FWorkShopID", new JObject() { ["Fnumber"] = dr["FWorkShopNumber"].ToString() });
+        //                FentityModel.Add("FUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
+        //                FentityModel.Add("FQty", dr["FQty"].ToString());
+        //                FentityModel.Add("FYieldQty", dr["FYieldQty"].ToString());
+        //                FentityModel.Add("FPlanStartDate", dr["FPlanStartDate"].ToString());
+        //                FentityModel.Add("FPlanFinishDate", dr["FPlanFinishDate"].ToString());
+        //                FentityModel.Add("FRequestOrgId", new JObject() { ["Fnumber"] = dr["FRequestOrgNumber"].ToString() });
+        //                FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr["FBomNumber"].ToString() });
+        //                FentityModel.Add("FISBACKFLUSH", dr["FISBACKFLUSH"].ToString());
+        //                FentityModel.Add("FStockInOrgId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
+        //                FentityModel.Add("FBaseYieldQty", dr["FBaseYieldQty"].ToString());
+        //                FentityModel.Add("FReqType", dr["FReqType"].ToString());
+        //                FentityModel.Add("FInStockOwnerTypeId", dr["FInStockOwnerTypeId"].ToString());
+        //                FentityModel.Add("FBaseStockInLimitH", dr["FBaseStockInLimitH"].ToString());
+        //                FentityModel.Add("FInStockOwnerId", new JObject() { ["Fnumber"] = dr["FPrdOrgNumber"].ToString() });
+        //                FentityModel.Add("FCheckProduct", dr["FCheckProduct"].ToString());
+        //                FentityModel.Add("FBaseStockInLimitL", dr["FBaseStockInLimitL"].ToString());
+        //                FentityModel.Add("FBaseUnitQty", dr["FBaseUnitQty"].ToString());
+        //                FentityModel.Add("FRoutingId", new JObject() { ["Fnumber"] = dr["FRoutingNumber"].ToString() });
+        //                FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = dr["FUnitNumber"].ToString() });
+        //                FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = dr["FStockNumber"].ToString() });
+        //                FentityModel.Add("FStockInLimitH", dr["FStockInLimitH"].ToString());
+        //                FentityModel.Add("FStockInLimitL", dr["FStockInLimitL"].ToString());
+        //                FentityModel.Add("FCostRate", dr["FCostRate"].ToString());
+        //                FentityModel.Add("FCreateType", dr["FCreateType"].ToString());
+        //                FentityModel.Add("FYieldRate", dr["FYieldRate"].ToString());
+        //                FentityModel.Add("FGroup", dr["FGroup"].ToString());
+        //                FentityModel.Add("FNoStockInQty", dr["FNoStockInQty"].ToString());
+        //                FentityModel.Add("FBaseNoStockInQty", dr["FBaseNoStockInQty"].ToString());
+        //                FentityModel.Add("FRowId", dr["FRowId"].ToString());
+        //                FentityModel.Add("FPickMtrlStatus", dr["FPickMtrlStatus"].ToString());
+        //                FentityModel.Add("FMOChangeFlag", dr["FMOChangeFlag"].ToString());
+        //                FentityModel.Add("FDAYPLANBILLNO", dr["FDAYPLANBILLNO"].ToString());
+        //                FentityModel.Add("FDayPlanFseq", dr["FDayPlanFseq"].ToString());
+        //                FentityModel.Add("FDayPlanFentryId", dr["FDayPlanFentryId"].ToString());
+        //                FentityModel.Add("FDayPlanFid", dr["FDayPlanFid"].ToString());
+        //                FentityModel.Add("FDayPlanRemainQty", 0);
+        //                FentityModel.Add("FDayPlanQty", dr["FQty"].ToString());
+        //                FentityModel.Add("F_TEZV_Base", new JObject() { ["Fnumber"] = dr["FPREBDONENUMBER"].ToString() });//鍖呰鏍囪瘑
+        //                FentityModel.Add("F_bsv_Text1", dr["F_bsv_Text1"].ToString());//婧愬崟瀹㈡埛浠g爜
+        //                FentityModel.Add("F_bsv_Date", dr["F_bsv_Date"].ToString());//瑕佹眰浜ゆ湡
+        //                FentityModel.Add("F_bsv_KH", new JObject() { ["Fnumber"] = dr["FCUSTOMERNUMBER"].ToString() });//瀹㈡埛
+        //                //////////////閲囪喘璁㈠崟婧愬崟淇℃伅////////////////////
+        //                //FSRCBILLTYPE,FSRCBILLID,FSRCBILLNO,FSRCBILLENTRYID,FSRCBILLENTRYSEQ,FSALEORDERID,FSALEORDERNO,FSALEORDERENTRYID,FSALEORDERENTRYSEQ
+        //                FentityModel.Add("FSRCBILLTYPE", dr["FSRCBILLTYPE"].ToString());
+        //                FentityModel.Add("FSRCBILLID", dr["FSRCBILLID"].ToString());
+        //                FentityModel.Add("FSRCBILLNO", dr["FSRCBILLNO"].ToString());
+        //                FentityModel.Add("FSRCBILLENTRYID", dr["FSRCBILLENTRYID"].ToString());
+        //                FentityModel.Add("FSRCBILLENTRYSEQ", dr["FSRCBILLENTRYSEQ"].ToString());
+        //                FentityModel.Add("FSALEORDERID", dr["FSALEORDERID"].ToString());
+        //                FentityModel.Add("FSALEORDERNO", dr["FSALEORDERNO"].ToString());
+        //                FentityModel.Add("FSALEORDERENTRYID", dr["FSALEORDERENTRYID"].ToString());
+        //                FentityModel.Add("FSALEORDERENTRYSEQ", dr["FSALEORDERENTRYSEQ"].ToString());
+        //                FentityModel.Add("FReqSrc", dr["FReqSrc"].ToString());//闇�姹傛潵婧� 1閿�鍞鍗�
+        //                if (dr["FSRCBILLTYPE"].ToString() == "PLN_PLANORDER")
+        //                {
+        //                    JArray _Fentity2 = new JArray();
+        //                    JObject _FentityModel2 = new JObject();
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FFlowId", "");//涓氬姟娴佺▼鍥撅細FTREEENTITY_Link_FFlowId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FFlowLineId", "0");//鎺ㄨ繘璺嚎锛欶TREEENTITY_Link_FFlowLineId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FRuleId", "PlanOrder_MO");//杞崲瑙勫垯锛欶TREEENTITY_Link_FRuleId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FSTableId", "0");//婧愬崟琛ㄥ唴鐮侊細FTREEENTITY_Link_FSTableId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FSTableName", "T_PLN_PLANORDER");//婧愬崟琛細FTREEENTITY_Link_FSTableName
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FSBillId", dr["FSBILLID"].ToString());//婧愬崟鍐呯爜锛欶TREEENTITY_Link_FSBillId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FSId", dr["FSID"].ToString()); //婧愬崟鍒嗗綍鍐呯爜锛欶TREEENTITY_Link_FSId
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FBaseUnitQtyOld", dr["FQty"].ToString());//鍘熷鎼哄甫閲忥細FTREEENTITY_Link_FBaseUnitQtyOld
+        //                    _FentityModel2.Add("FTREEENTITY_Link_FBaseUnitQty", dr["FQty"].ToString());//淇敼鎼哄甫閲忥細FTREEENTITY_Link_FBaseUnitQty
+        //                    _Fentity2.Add(_FentityModel2);
+        //                    FentityModel.Add("FTREEENTITY_Link", _Fentity2);
+        //                }
+        //                //////////////////////////////////////////////////
+        //                Fentity.Add(FentityModel);
+        //                model.Add("FTreeEntity", Fentity);
+        //                JObject jsonRoot = new JObject()
+        //                {
+        //                    ["Creator"] = "",
+        //                    ["NeedUpDateFields"] = new JArray(),
+        //                    ["NeedReturnFields"] = new JArray(),
+        //                    ["IsDeleteEntry"] = "false",
+        //                    ["SubSystemId"] = "",
+        //                    ["IsVerifyBaseDataField"] = "false",
+        //                    ["Model"] = model
+        //                };
+        //                var _result = InvokeHelper.Save("PRD_MO", jsonRoot.ToString());
+        //                var _saveObj = JObject.Parse(_result);
+        //                var saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+        //                if (saveIsSuc != "TRUE")
+        //                {
+        //                    e.CancelOperation = true;
+        //                    dictionary.Add(dr["FDAYPLANBILLNO"].ToString(), "閲囪喘璁㈠崟鐢熸垚澶辫触," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
+        //                    LogService.Write("閲囪喘璁㈠崟鐢熸垚澶辫触json" + jsonRoot.ToString());
+        //                    //this.View.ShowErrMessage("閲囪喘璁㈠崟鐢熸垚澶辫触," + _saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
+        //                    continue;
+        //                }
+        //            }
+        //        }
+        //    }
+        //}
+        public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
+        {
+            base.AfterExecuteOperationTransaction(e);
+            Entity entity = this.BusinessInfo.GetEntity("FEntity");//鑾峰彇鏄庣粏淇℃伅
+            foreach (var billObj in e.DataEntitys)
+            {
+                var forgName = Context.CurrentOrganizationInfo.Name;
+                //if (!forgName.Contains("鏉窞鏂帿灏旂鎬ф潗鏂欐湁闄愬叕鍙�"))
+                //    continue;
+                //var sql = $"exec zymes_RealessPurPoorder {billObj["Id"]} ";
+                var id = billObj["Id"].ToString();
+                string sql = string.Empty;
+                sql = $@"
+                /*dialect*/
+                select a.FID HInterID,a.FENTRYID HEntryID,a.FMATERIALID HMaterID,a.FUNITID HUnitID
+                ,a.FREALQTY HQtyMust,0 HQty,f.FPRICE HPrice
+                ,f.FAMOUNT HMoney,f.FCOSTAMOUNT HOrderPrice,a.FSTOCKID HWHID,a.FSTOCKLOCID HSPID
+                ,0 HRelationQty,a.FLOT HBatchNo,0 HSourceInterID,0 HSourceEntryID,a.FSRCBILLNO HSourceBillNo
+                ,case  a.FSRCBILLTYPEID 
+                when 'PUR_PurchaseOrder' then 1100
+                when 'SAL_OUTSTOCK' then 1205
+                when 'PUR_ReceiveBill' then 1103
+                end
+                HSourceBillType
+                ,0 HPOOrderInterID,0 HPOOrderEntryID ,'' HPOOrderBillNo
+                ,a.FAUXPROPID HPropertyID,0 HSecUnitID,0 HSecUnitRate,0 HPlanMode,'CLOUD瀵煎叆' HRemark
+                ,0 HSeOrderInterID,0 HSeOrderEntryID,0 HSeOrderBillNo
+                ,f.FTAXRATE HTaxRate,f.FTAXPRICE HTaxPrice,0 HlineTotal
+                from T_STK_INSTOCKENTRY a with(nolock)
+                left join T_STK_INSTOCKENTRY_F f with(nolock) on a.FENTRYID = f.FENTRYID
+                left join T_STK_INSTOCKENTRY_TAX t with(nolock) on a.FENTRYID=t.FENTRYID
+                left join T_STK_INSTOCKFIN fin with(nolock) on a.FENTRYID=fin.FENTRYID
+                Where a.FID={id}
+                select 
+                a.FID as HInterID,YEAR(a.FDATE) HYear,MONTH(a.FDATE) HPeriod,1201 HBillType,1201 HBillSubType,
+                a.FDATE HDate,a.FBILLNO HBillNo,case when a.FAPPROVERID=0 then 1 else 2 end HBillStatus
+                ,a.FSUPPLYADDRESS HAddress,a.FSUPPLIERID HSupID,0 HCurID,0 HWHID,a.FPURCHASERID HEmpID
+                ,0 HManagerID,0 HSecManagerID,a.FSTOCKERID HKeeperID,a.FPURCHASEDEPTID HDeptID
+                , '' HExplanation,'CLOUD瀵煎叆' HRemark,a.FBILLNO HInnerBillNo,a.FSTOCKORGID HSTOCKORGID
+                ,a.FOWNERID HOWNERID,a.FCREATORID HMaker,a.FCREATEDATE HMakeDate
+                ,0 HProjectID,'' HInvoiceBillNo
+                ,o.FNUMBER as HOrganNumber,a.FAPPROVERID as HChecker,a.FAPPROVEDATE as HCheckDate
+                from  T_STK_INSTOCK a
+                inner join T_ORG_Organizations o with (nolock) on a.FSTOCKORGID = o.FORGID
+                Where a.FID={id}
+                ";
+                DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql);
+                DataTable maindt = ds.Tables[1];
+                DataTable subdt = ds.Tables[0];
+                if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0)
+                {
+                    LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝ュ紓甯革細" + sql);
+                    continue;
+                }
+
+                //鑾峰彇鍒涘缓閲囪喘璁㈠崟鐨勪娇鐢ㄧ粍缁�
+                DataTable dataTable = LogService.Get_DisPlayOrg(Context, maindt.Rows[0]["HOrganNumber"].ToString());
+                if (dataTable.Rows.Count == 0)
+                    continue;
+
+                if (dataTable.Rows[0]["FISNEEDPUSH"].ToString() == "0")
+                    continue;
+
+                string http = dataTable.Rows[0]["F_RCZU_MesIp"].ToString();
+
+                JArray array = new JArray();//鏄庣粏琛�
+                foreach (DataRow dr in subdt.Rows)
+                {
+                    JObject fentrymodel = new JObject();
+                    foreach (DataColumn column in subdt.Columns)
+                    {
+                        fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString());
+                    }
+                    array.Add(fentrymodel);
+                }
+                JObject model = new JObject();//涓昏〃
+                DataRow maindr = maindt.Rows[0];
+                foreach (DataColumn column in maindt.Columns)
+                {
+                    model.Add(column.ColumnName, maindr[column.ColumnName].ToString());
+                }
+                model.Add("HENTRY", array);
+                JObject jsonRoot = new JObject()
+                {
+                    ["model"] = model
+                };
+             
+                var client = new RestSharp.RestClient(http);
+                //鏂板
+                var requestPost = new RestRequest("Kf_POStockInBill/Kf_POStockInBillSaveApi", Method.POST);
+                requestPost.AddParameter("application/json", JsonConvert.SerializeObject(jsonRoot), ParameterType.RequestBody);
+                IRestResponse responsePost = client.Execute(requestPost);
+                var contentPost = responsePost.Content;
+                if (!contentPost.Contains("鎴愬姛"))
+                {
+                    LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝ュ紓甯�,POST鏂瑰紡鑾峰彇缁撴灉," + billObj["Id"] + "," + responsePost.ErrorMessage);
+                    LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝ュ紓甯�,POST," + "Kf_POStockInBill/Kf_POStockInBillSaveApi");
+                    LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝ュ紓甯�,JsonConvert.SerializeObject(jsonRoot)," + JsonConvert.SerializeObject(jsonRoot));
+                }
+            };
+            foreach (var item in dictionary)
+            {
+                ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, item.Value);
+            }
+        }
+        public static class ResultMessage
+        {/// <summary>
+         /// 淇敼鎻愮ず淇℃伅
+         /// </summary>
+         /// <param name="operateResult"></param>
+         /// <param name="billno"></param>
+            public static void dataError(OperateResultCollection operateResult, string billno, string message)
+            {
+                OperateResult operate = operateResult.Where(n => n.Number == billno).First();
+                operate.Message = message;
+                operate.SuccessStatus = false;
+                operate.MessageType = MessageType.FatalError;
+            }
+        }
+    }
+}
diff --git a/zymes/zymes_Project.csproj b/zymes/zymes_Project.csproj
index f75be2f..150aaeb 100644
--- a/zymes/zymes_Project.csproj
+++ b/zymes/zymes_Project.csproj
@@ -131,6 +131,7 @@
     <Compile Include="OperationService\zymes_RealessOperator.cs" />
     <Compile Include="OperationService\zymes_RealessPrdInStock.cs" />
     <Compile Include="OperationService\zymes_RealessPrdReceive.cs" />
+    <Compile Include="OperationService\zymes_RealessPurInStock.cs" />
     <Compile Include="OperationService\zymes_RealessRateType.cs" />
     <Compile Include="OperationService\zymes_RealessDepartment.cs" />
     <Compile Include="OperationService\zymes_RealessBom.cs" />

--
Gitblit v1.9.1