From fdff2ffb825d9de545a74e449b77e0c006d9ca73 Mon Sep 17 00:00:00 2001
From: yxj <yxj@hz-kingdee.com>
Date: 星期三, 27 九月 2023 13:36:35 +0800
Subject: [PATCH] 新增生产领料单、直接调拨单(源单:生产备料单)上传生成CLOUD单据方法;森楷扫码物料条码方法优化

---
 CLOUDWEB/WebService1.asmx.cs |  848 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 844 insertions(+), 4 deletions(-)

diff --git a/CLOUDWEB/WebService1.asmx.cs b/CLOUDWEB/WebService1.asmx.cs
index 264d344..43c2dad 100644
--- a/CLOUDWEB/WebService1.asmx.cs
+++ b/CLOUDWEB/WebService1.asmx.cs
@@ -1417,6 +1417,35 @@
             return dal.DisSourceBillList(sWhere);
         }
 
+        //杩斿洖鐢熶骇澶囨枡鍗曞垪琛�
+        /// <summary>
+        /// 杩斿洖鐢熶骇澶囨枡鍗曞垪琛�
+        /// </summary>
+        /// <param name="sWhere">杩囨护鏉′欢</param>
+        /// <returns></returns>
+        [WebMethod]
+        public DataSet GetSc_PrepareMTRLBillList(string sWhere)
+        {
+            try
+            {
+                DataSet ds;
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                ds = oCN.RunProcReturn("select * from h_v_IF_PrepareMTRLBillList_Lite " + sWhere + " order by 鍗曟嵁鍙� desc,HMaterID", "h_v_IF_PrepareMTRLBillList_Lite");
+                if (ds == null && ds.Tables[0].Rows.Count == 0)
+                {
+                    return null;
+                }
+                else
+                {
+                    return ds;
+                }
+            }
+            catch (Exception e)
+            {
+                return null;
+            }
+        }
+
         #endregion
 
         #region CLOUD 閲囪喘閫�鏂欏崟--鏉ユ簮鍗曟嵁
@@ -6069,6 +6098,20 @@
                     return false;
                 }
             }
+            else if (sHSourceType == "3721") //鐢熶骇澶囨枡鍗�
+            {
+                if (SaveMoveStockBill_PrepareMTRL_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg))
+                {
+                    //"淇濆瓨鎴愬姛锛�";
+                    return true;
+                }
+                else
+                {
+                    //"淇濆瓨澶辫触锛�";
+                    sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + sErrMsg;
+                    return false;
+                }
+            }
             //鐩存帴璋冩嫧
             else if (sHSourceType == "-1")
             {
@@ -8502,6 +8545,20 @@
                     return false;
                 }
             }
+            else if (sHSourceType == "3721") //鐢熶骇澶囨枡鍗�
+            {
+                if (SaveMoveStockBill_PrepareMTRL_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg))
+                {
+                    //"淇濆瓨鎴愬姛锛�";
+                    return true;
+                }
+                else
+                {
+                    //"淇濆瓨澶辫触锛�";
+                    sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + sErrMsg;
+                    return false;
+                }
+            }
             else if (sHSourceType == "-1")//鏃犳簮鍗�
             {
                 if (SaveMoveOut_CLD(oMain, oSystemParameterMain, ref sErrMsg))
@@ -10848,6 +10905,392 @@
             else
             {
                 LogService.Write("鐢熸垚鐩存帴璋冩嫧鍗曪紙婧愬崟锛氱敓浜у彂鏂欓�氱煡鍗曪級鎴愬姛锛�" + sRemark);
+                sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo;
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// 鐩存帴璋冩嫧鍗�   婧愬崟锛氱敓浜у鏂欏崟
+        /// </summary>
+        /// <param name="oMain"></param>
+        /// <param name="sErrMsg"></param>
+        /// <returns></returns>
+        private bool SaveMoveStockBill_PrepareMTRL_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
+        {
+            string sRemark = "";
+            //浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
+            {
+                sErrMsg = Pub_Class.ClsPub.sExeReturnInfo;
+                return false;
+            }
+
+            //鑾峰彇CLOUD璐﹀彿瀵嗙爜
+            string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName;
+            string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd;
+            DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID);
+            if (ds11 == null || ds11.Tables[0].Rows.Count == 0)
+            {
+            }
+            else
+            {
+                sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]);
+                sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]);
+            }
+
+            string HReturn;
+            ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
+            string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+            bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+
+            sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+            try
+            {
+                //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
+                string s = "";
+                int sYear = 0;
+                int sPeriod = 0;
+                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false)
+                {
+                    sErrMsg = s;
+                    return false;
+                }
+                oMain.HYear = sYear;
+                oMain.HPeriod = sPeriod;
+
+                oCn.BeginTran();
+                //鍐欏叆WMS璋冩嫧鍗�
+                //鎻掑叆瀛愯〃
+                oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'");
+                //鎻掑叆涓昏〃
+                oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
+                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
+                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+                ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
+                ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
+                ",HStockStyle,HTransferDirect,HShipType" +
+                ",HSTOCKORGID,HOWNERID" +
+                ") " +
+                " values('1207','1207'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" +
+                ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" +
+                ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() +
+                ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) +
+                ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" +
+                ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() +
+                ") ");
+                //鏇存柊鍏宠仈鏁伴噺
+                oCn.RunProc("exec h_p_Kf_UpDateRelation_PrepareMTRLToMoveStock_Add " + oMain.HInterID.ToString());
+
+                sRemark = sRemark + " 锛涚敓鎴愬嚭鍏ュ簱鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                //鍒ゆ柇鏄惁鍚敤鍣ㄥ叿绠$悊锛岀郴缁熷弬鏁�  鍚敤鍣ㄥ叿绠$悊
+                if (oSystemParameterMain.WMS_MouldManagerCtl == "Y")
+                {
+                    string HMouldBillType = "3814";
+                    oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3");
+                }
+
+                sRemark = sRemark + " 锛涘垽鏂槸鍚﹀惎鐢ㄥ櫒鍏风鐞�" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                //鏍规嵁TMP琛� 杩斿洖 淇℃伅
+                DataSet Ds;
+                if (oSystemParameterMain.WMS_CloudMode == "N") //绯荤粺鍙傛暟  鏄惁涓虹鏈変簯妯″紡(N涓哄叕鏈変簯妯″紡锛孻涓虹鏈変簯妯″紡)
+                {
+                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_PrepareMTRL_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_PrepareMTRL_PUBCLD_New");
+                    sRemark = sRemark + " 锛涘叕鏈変簯妯″紡";
+                }
+                else
+                {
+                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_PrepareMTRL_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_PrepareMTRL_CLD_New");
+                    sRemark = sRemark + " 锛涚鏈変簯妯″紡";
+                }
+                if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0)
+                {
+                    sErrMsg = "鑾峰彇瀛愯〃淇℃伅澶辫触锛�";
+                    oCn.RollBack();
+                    return false;
+                }
+                else
+                {
+                    string sJson_MainCustom = "";   //涓昏〃鑷畾涔夊瓧娈�
+                    sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]);
+
+                    string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," +
+                        "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," +
+                        "\"Model\":{ " +
+                        //\"FID\":\"0\",
+                        "\"FBillNo\":\"" + oMain.HBillNo + "\"," +
+                        "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," +
+                        "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," +
+                        "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," +
+                        "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," +
+                        "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," +
+                        "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," +
+                        "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," +
+                        "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," +
+                        "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," +
+                        "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," +
+                        "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," +
+                        "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," +
+                        "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," +
+                        "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," +
+                        "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," +
+                        //\"FStockerId\":{\"FNumber\":\"\"},
+                        //\"FStockerGroupId\":{\"FNumber\":\"\"},
+                        "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," +
+                        //\"FNote\":\"\",
+                        "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," +
+                        "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," +
+                        //\"FCustID\":{\"FNUMBER\":\"\"},
+                        //\"FScanBox\":\"\",
+                        //\"FThirdSystem\":\"\",
+                        //\"FThirdSrcBillNo\":\"\",
+                        //\"FThirdSrcId\":\"\",
+                        sJson_MainCustom +
+                        "\"FBillEntry\": [  ";
+                    string sJson_Entry = "";
+                    for (int i = 0; i < Ds.Tables[1].Rows.Count; i++)
+                    {
+                        if (sJson_Entry != "")
+                        {
+                            sJson_Entry = sJson_Entry + " , ";
+                        }
+                        string sJson_BatchNo = "";
+                        string sJson_DestBatchNo = "";      //璋冨叆鎵瑰彿
+                        string sJson_SrcStockPlace = "";
+                        string sJson_DestStockPlace = "";
+                        string sJson_FProduceDate = "";     //鐢熶骇鏃ユ湡
+                        string sJson_FExpiryDate = "";      //鏈夋晥鏈熻嚦
+                        string sJson_FAUXPROPID = "";
+                        string sJson_SubCustom = "";        //瀛愯〃鑷畾涔夊瓧娈�
+
+                        //瀛愯〃鑷畾涔夊瓧娈�
+                        sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]);
+
+                        //鏄惁鍚敤鎵规绠$悊
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1")
+                        {
+                            sJson_BatchNo = "  \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"},    \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"  , ";
+                            sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},";
+                        }
+                        else
+                        {
+                            sJson_BatchNo = "";
+                            sJson_DestBatchNo = "";
+                        }
+
+                        //鏄惁鍚敤淇濊川鏈熸帶鍒�
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1")
+                        {
+                            sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\",";
+                            sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\",";
+                        }
+                        else
+                        {
+                            sJson_FProduceDate = "";
+                            sJson_FExpiryDate = "";
+                        }
+
+                        //杈呭姪灞炴��
+                        sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},";
+
+                        //璋冨叆浠撲綅
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "")
+                        {
+                            sJson_SrcStockPlace = "";
+                        }
+                        else
+                        {
+                            sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},";
+                        }
+
+                        //璋冨嚭浠撲綅
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "")
+                        {
+                            sJson_DestStockPlace = "";
+                        }
+                        else
+                        {
+                            sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},";
+                        }
+
+                        sJson_Entry = sJson_Entry + " {" +
+                        //\"FEntryID\":\"0\",
+                        " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," +
+                        //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," +
+                        sJson_FAUXPROPID +
+                        " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," +
+                        " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," +
+                        sJson_BatchNo +
+                        " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," +
+                        sJson_SrcStockPlace +
+                        //\"FPrice\":\"0\",
+                        " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," +
+                        sJson_DestStockPlace +
+                        " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," +
+                        " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," +
+                        //\"FDeliChkQualifyType\":\"\",
+                        //\"FAmount\":\"0\",
+                        sJson_FProduceDate +
+                        " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," +
+                        " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," +
+                        " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," +
+                        sJson_FExpiryDate +
+                        " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," +
+                        " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," +
+                        " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," +
+                        " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," +
+                        //\"FNoteEntry\":\"\",
+                        " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," +
+                        //\"FOutJoinQty\":\"0\",
+                        " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," +
+                        //\"FSecQty\":\"0\",
+                        //\"FBASEOUTJOINQTY\":\"0\",
+                        " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," +
+                        " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," +
+                        //\"FExtAuxUnitQty\":\"0\",
+                        " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," +
+                        " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," +
+                        " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," +
+                        //\"FActQty\":\"0\",
+                        " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," +
+                        " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," +
+                        " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," +
+                        //\"FDiscountRate\":\"0\",
+                        //\"FRepairQty\":\"0\",
+                        //\"FRETURNNOTE\":\"\",
+                        sJson_DestBatchNo +
+                        " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," +
+                        " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," +
+                        //\"FServiceContext\":\"\",
+                        //\"FPriceUnitID\":{\"FNumber\":\"\"},
+                        //\"FPriceQty\":\"0\",
+                        //\"FPriceBaseQty\":\"0\",
+                        //\"FSOEntryId\":\"0\",
+                        " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," +
+                        //\"FQmEntryId\":\"0\",
+                        //\"FConvertEntryId\":\"0\",
+                        //\"FThirdSrcEntryId\":\"\",
+                        " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," +
+                        " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," +
+                        " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," +
+                        " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," +
+                        " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," +
+                         sJson_SubCustom +
+
+                        //\"FSerialSubEntity\":[{\"FDetailID\":\"0\",
+                        //\"FSerialNo\":\"\",
+                        //\"FSerialNote\":\"\"}]
+
+                        " \"FBillEntry_Link\": [{" +
+                            " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," +
+                            " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," +
+                            " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," +
+                            " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," +
+                            " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," +
+                            " \"FBillEntry_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," +
+                            " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" +
+                        " } ]," +
+                        " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}";
+                    }
+                    string sJson_End = "  ]  }}";
+                    string sJson = sJson_Main + sJson_Entry + sJson_End;
+
+                    sRemark = sRemark + " 锛涜幏鍙朇LOUD鍗曟嵁API閫掑叆鍊�" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                    //鐢熸垚閲戣澏浜戝崟鎹�
+                    if (bLogin)
+                    {
+                        var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
+                        new object[] { "STK_TransferDirect", sJson });
+
+                        sRemark = sRemark + " 锛涚敓鎴怌LOUD鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        //鐢熸垚鍗曟嵁鍚庢洿鏂拌嚜瀹氫箟瀛楁
+                        oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'");
+
+                        sRemark = sRemark + " 锛涚敓鎴愬崟鎹悗鍥炲~瀛楁淇℃伅" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        HReturn = result.ToString();
+
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曞け璐ワ紒" + HReturn;
+                            LogService.Write("鐢熸垚鐩存帴璋冩嫧鍗曪紙婧愬崟锛氱敓浜у鏂欏崟锛夊け璐ワ紒" + HReturn + sJson);   //鍐欏叆txt鏂囨湰
+                            oCn.RollBack();
+                            return false;
+                        }
+                        else
+                        {
+                            sRemark = sRemark + sJson;
+                            oCn.Commit();
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        oCn.RollBack();
+                        return false;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                LogService.Write("鐢熸垚鍥炴粴" + sRemark);
+                sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曞け璐ワ紒" + e.Message;
+                oCn.RollBack();
+                return false;
+            }
+
+            if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //绯荤粺鍙傛暟  鑷姩瀹℃牳 
+            {
+                try
+                {
+                    oCn.BeginTran();
+                    //瀹℃牳WMS鍗曟嵁
+                    oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString());
+
+                    //鎻愪氦銆佸鏍搁噾铦朵簯鍗曟嵁
+                    HReturn = "";
+                    string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
+                    var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
+                    new object[] { "STK_TransferDirect", sJson2 });
+
+                    string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
+                    var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
+                    new object[] { "STK_TransferDirect", sJson3 });
+
+                    HReturn = result2.ToString() + "," + result3.ToString();
+
+                    if (HReturn.Contains("\"IsSuccess\":false") == true)
+                    {
+                        LogService.Write("瀹℃牳鍗曟嵁澶辫触" + sRemark);
+                        sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曟垚鍔燂紝瀹℃牳鍗曟嵁澶辫触锛�" + HReturn;
+                        oCn.RollBack();
+                        return true;
+                    }
+                    else
+                    {
+                        LogService.Write("鐢熸垚骞跺鏍哥洿鎺ヨ皟鎷ㄥ崟锛堟簮鍗曪細鐢熶骇澶囨枡鍗曪級鎴愬姛锛�" + sRemark);
+                        sErrMsg = "鐢熸垚骞跺鏍哥洿鎺ヨ皟鎷ㄥ崟鎴愬姛锛佸崟鎹彿涓猴細" + oMain.HBillNo;
+                        oCn.Commit();
+                        return true;
+                    }
+                }
+                catch (Exception e)
+                {
+                    LogService.Write("瀹℃牳鍥炴粴" + sRemark);
+                    sErrMsg = "瀹℃牳鐩存帴璋冩嫧鍗曞け璐ワ紒" + e.Message;
+                    oCn.RollBack();
+                    return false;
+                }
+            }
+            else
+            {
+                LogService.Write("鐢熸垚鐩存帴璋冩嫧鍗曪紙婧愬崟锛氱敓浜у鏂欏崟锛夋垚鍔燂紒" + sRemark);
                 sErrMsg = "鐢熸垚鐩存帴璋冩嫧鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo;
                 return true;
             }
@@ -19478,6 +19921,20 @@
                     return false;
                 }
             }
+            else if (sHSourceType == "3721")   //鐢熶骇澶囨枡鍗�
+            {
+                if (SaveMateOutBill_PrepareMTRL_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg))
+                {
+                    //"淇濆瓨鎴愬姛锛�";
+                    return true;
+                }
+                else
+                {
+                    //"淇濆瓨澶辫触锛�";
+                    sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛�" + sErrMsg;
+                    return false;
+                }
+            }
             else
             {
                 sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涢敊璇殑婧愬崟绫诲瀷";
@@ -20252,6 +20709,387 @@
             else
             {
                 LogService.Write("鐢熸垚鐢熶骇棰嗘枡鍗曪紙婧愬崟锛氱敓浜у彂鏂欓�氱煡鍗曪級鎴愬姛锛�" + sRemark);
+                sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo;
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// 鐢熶骇棰嗘枡鍗�    锛堟簮鍗曪細鐢熶骇澶囨枡鍗曪級
+        /// </summary>
+        /// <param name="oMain"></param>
+        /// <param name="sErrMsg"></param>
+        /// <returns></returns>
+        public bool SaveMateOutBill_PrepareMTRL_CLD(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
+        {
+            string sRemark = "";
+            //浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
+            {
+                sErrMsg = Pub_Class.ClsPub.sExeReturnInfo;
+                return false;
+            }
+
+            //鑾峰彇CLOUD璐﹀彿瀵嗙爜
+            string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName;
+            string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd;
+            DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID);
+            if (ds11 == null || ds11.Tables[0].Rows.Count == 0)
+            {
+            }
+            else
+            {
+                sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]);
+                sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]);
+            }
+
+            string HReturn;
+            ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
+            string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+            bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+
+            sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+            try
+            {
+                //鍒ゆ柇浼氳鏈熸槸鍚﹀悎鐞�
+                string s = "";
+                int sYear = 0;
+                int sPeriod = 0;
+
+                if (oSystemParameterMain.WMS_BillDateMode == "N") //绯荤粺鍙傛暟  鍗曟嵁鏃ユ湡鏄惁鍙栫晫闈㈤�掑叆鏃ユ湡
+                {
+                    oMain.HDate = DateTime.Today;
+                }
+
+                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false)
+                {
+                    sErrMsg = s;
+                    return false;
+                }
+                oMain.HYear = sYear;
+                oMain.HPeriod = sPeriod;
+
+                oCn.BeginTran();
+                //鐢熸垚鍑哄叆搴撳崟鎹�
+                //鎻掑叆瀛愯〃
+                oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'");
+                //鎻掑叆涓昏〃
+                oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
+                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
+                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+                ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
+                ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
+                ",HSTOCKORGID,HOWNERID" +
+                ") " +
+                " values('1204','1204'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + oMain.HMainSourceBillType + "'" +
+                ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" +
+                ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() +
+                ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) +
+                ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() +
+                ") ");
+                //鏇存柊鍏宠仈鏁伴噺
+                oCn.RunProc("exec h_p_Sc_UpDateRelation_PrepareMTRLToMateOut_Add " + oMain.HInterID.ToString());
+
+                sRemark = sRemark + " 锛涚敓鎴愬嚭鍏ュ簱鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                //鏍规嵁TMP琛� 杩斿洖 淇℃伅
+                DataSet Ds;
+                if (oSystemParameterMain.WMS_CloudMode == "N") //绯荤粺鍙傛暟  鏄惁涓虹鏈変簯妯″紡(N涓哄叕鏈変簯妯″紡锛孻涓虹鏈変簯妯″紡)
+                {
+                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_PrepareMTRL_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_PrepareMTRL_PUBCLD_New");
+                    sRemark = sRemark + " 锛涘叕鏈変簯妯″紡";
+                }
+                else
+                {
+                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_PrepareMTRL_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_PrepareMTRL_CLD_New");
+                    sRemark = sRemark + " 锛涚鏈変簯妯″紡";
+                }
+                if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0)
+                {
+                    sErrMsg = "鑾峰彇瀛愯〃淇℃伅澶辫触锛�";
+                    oCn.RollBack();
+                    return false;
+                }
+                else
+                {
+                    string sJson_MainCustom = "";   //涓昏〃鑷畾涔夊瓧娈�
+                    string sJson_Date = "";         //鍗曟嵁鏃ユ湡
+                    sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]);
+
+                    if (oSystemParameterMain.WMS_BillDateMode == "Y") //绯荤粺鍙傛暟  鍗曟嵁鏃ユ湡鏄惁鍙栫晫闈㈤�掑叆鏃ユ湡
+                    {
+                        sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\",";
+                    }
+                    else
+                    {
+                        sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\",";
+                    }
+
+                    string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," +
+                        "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," +
+                        "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," +
+                        //\"FID\":\"0\",
+                        "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," +
+                        //"\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," +
+                        sJson_Date +
+                        "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," +
+                        //\"FStockId0\":{\"FNumber\":\"\"},
+                        "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," +
+                        //\"FWorkShopId\":{\"FNumber\":\"\"},
+                        "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," +
+                        //\"FOwnerId0\":{\"FNumber\":\"\"},
+                        "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," +
+                        "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," +
+                        //\"FDescription\":\"\",
+                        "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," +
+                        "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," +
+                        "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," +
+                        //\"FScanBox\":\"\",
+                        //\"FSourceType\":\"\",
+                        sJson_MainCustom +
+                        "\"FEntity\": [  ";
+                    string sJson_Entry = "";
+                    for (int i = 0; i < Ds.Tables[1].Rows.Count; i++)
+                    {
+                        if (sJson_Entry != "")
+                        {
+                            sJson_Entry = sJson_Entry + " , ";
+                        }
+                        string sJson_BatchNo = "";
+                        string sJson_StockPlace = "";
+                        string sJson_FProduceDate = "";     //鐢熶骇鏃ユ湡
+                        string sJson_FExpiryDate = "";      //鏈夋晥鏈熻嚦
+                        string sJson_FAUXPROPID = "";
+                        string sJson_SubCustom = "";        //瀛愯〃鑷畾涔夊瓧娈�
+
+                        //瀛愯〃鑷畾涔夊瓧娈�
+                        sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]);
+
+                        //鏄惁鍚敤鎵规绠$悊
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1")
+                        {
+                            sJson_BatchNo = "  \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"},    \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"  , ";
+                        }
+                        else
+                        {
+                            sJson_BatchNo = "";
+                        }
+
+                        //鏄惁鍚敤淇濊川鏈熸帶鍒�
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1")
+                        {
+                            sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\",";
+                            sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\",";
+                        }
+                        else
+                        {
+                            sJson_FProduceDate = "";
+                            sJson_FExpiryDate = "";
+                        }
+
+                        //杈呭姪灞炴��
+                        sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},";
+
+                        //浠撲綅
+                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) == "")
+                        {
+                            sJson_StockPlace = "";
+                        }
+                        else
+                        {
+                            sJson_StockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},";
+                        }
+
+                        sJson_Entry = sJson_Entry + "{" +
+                        //\"FEntryID\":\"0\",
+                        "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," +
+                        "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," +
+                        //\"FConsome\":\"\",
+                        "\"FFPMBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFPMBillNo"]) + "\"," +
+                        "\"FOptQueue\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptQueue"]) + "\"," +
+                        "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," +
+                        "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," +
+                        "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," +
+                        "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," +
+                        "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," +
+                        "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," +
+                        //\"FOptPlanBillNo\":\"\",
+                        "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," +
+                        //\"FOptPlanBillId\":\"0\",
+                        sJson_StockPlace +
+                        //\"FWorkCenterId\":{\"FNUMBER\":\"\"},
+                        //\"FOptDetailId\":\"0\",
+                        sJson_BatchNo +
+                        //\"FCobyBomEntryID\":\"0\",
+                        "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," +
+                        "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," +
+                        "\"FGroupRow\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGroupRow"]) + "\"," +
+                        "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," +
+                        //\"FProduceDate\":\"1900-01-01\",
+                        //\"FEntrtyMemo\":\"\",
+                        "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," +
+                        //\"FProjectNo\":\"\",
+                        "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," +
+                        "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," +
+                        "\"FPPBomEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomEntryId"]) + "\"," +
+                        "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," +
+                        "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," +
+                        "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," +
+                        "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," +
+                        "\"FStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockActualQty"]) + "\"," +
+                        //\"FStockAllowOverQty\":\"0\",
+                        "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," +
+                        //\"FSecActualQty\":\"0\",
+                        //\"FSecAllowOverQty\":\"0\",
+                        "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," +
+                        "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," +
+                        //\"FAllowOverQty\":\"0\",
+                        "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," +
+                        "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," +
+                        "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," +
+                        "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," +
+                        //\"FBaseAllowOverQty\":\"0\",
+                        "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryWorkShopId"]) + "\"}," +
+                        //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," +
+                        sJson_FAUXPROPID +
+                        "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," +
+                        "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," +
+                        "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," +
+                        //\"FExpiryDate\":\"1900-01-01\",
+                        "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," +
+                        "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," +
+                        //\"FPrice\":\"0\",
+                        "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," +
+                        //\"FAmount\":\"0\",
+                        "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," +
+                        "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," +
+                        "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," +
+                        "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," +
+                        //\"FSRCBIZBILLTYPE\":{\"FNAME\":\"\"},
+                        //\"FSRCBIZBILLNO\":\"\",
+                        //\"FSRCBIZINTERID\":\"0\",
+                        //\"FSRCBIZENTRYID\":\"0\",
+                        //\"FSRCBIZENTRYSEQ\":\"0\",
+                        "\"FPickingStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPickingStatus"]) + "\"," +
+                        //
+                        "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," +
+                         sJson_FProduceDate +
+                         sJson_FExpiryDate +
+                         sJson_SubCustom +
+
+                        //\"FSerialSubEntity\":[{\"FDetailID\":\"0\",
+                        //\"FSerialNo\":\"\",
+                        //\"FSerialId\":{\"FNumber\":\"\"},
+                        //\"FSerialNote\":\"\"}]
+
+                        "\"FEntity_Link\": [ {  " +
+                            "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," +
+                            "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," +
+                            "\"FEntity_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," +
+                            "\"FEntity_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," +
+                            "\"FEntity_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," +
+                            "\"FEntity_Link_FBASEACTUALQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTYOLD"]) + "\"," +
+                            "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" +
+                        " } ]," +
+                        " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}";
+                    }
+                    string sJson_End = "  ]  }}";
+                    string sJson = sJson_Main + sJson_Entry + sJson_End;
+
+                    sRemark = sRemark + " 锛涜幏鍙朇LOUD鍗曟嵁API閫掑叆鍊�" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                    //鐢熸垚閲戣澏浜戝崟鎹�
+                    if (bLogin)
+                    {
+                        var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
+                        new object[] { "PRD_PickMtrl", sJson });
+
+                        sRemark = sRemark + " 锛涚敓鎴怌LOUD鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        //鐢熸垚鍗曟嵁鍚庢洿鏂拌嚜瀹氫箟瀛楁
+                        oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateOut '" + oMain.HBillNo + "','" + sHSourceType + "'");
+
+                        sRemark = sRemark + " 锛涚敓鎴愬崟鎹悗鍥炲~瀛楁淇℃伅" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        HReturn = result.ToString();
+
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曞け璐ワ紒" + HReturn;
+                            LogService.Write("鐢熸垚鐢熶骇棰嗘枡鍗曪紙婧愬崟锛氱敓浜у鏂欏崟锛夊け璐ワ紒" + HReturn + sJson);   //鍐欏叆txt鏂囨湰
+                            oCn.RollBack();
+                            return false;
+                        }
+                        else
+                        {
+                            sRemark = sRemark + sJson;
+                            oCn.Commit();
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        oCn.RollBack();
+                        return false;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                LogService.Write("鐢熸垚鍥炴粴" + sRemark);
+                sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曞け璐ワ紒" + e.Message;
+                oCn.RollBack();
+                return false;
+            }
+
+            if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //绯荤粺鍙傛暟  鑷姩瀹℃牳 
+            {
+                try
+                {
+                    oCn.BeginTran();
+                    //瀹℃牳WMS鍗曟嵁
+                    oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString());
+
+                    //鎻愪氦銆佸鏍搁噾铦朵簯鍗曟嵁
+                    HReturn = "";
+                    string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
+                    var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
+                    new object[] { "PRD_PickMtrl", sJson2 });
+
+                    string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
+                    var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
+                    new object[] { "PRD_PickMtrl", sJson3 });
+
+                    HReturn = result2.ToString() + "," + result3.ToString();
+
+                    if (HReturn.Contains("\"IsSuccess\":false") == true)
+                    {
+                        LogService.Write("瀹℃牳鍗曟嵁澶辫触" + sRemark);
+                        sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曟垚鍔燂紝瀹℃牳鍗曟嵁澶辫触锛�" + HReturn;
+                        oCn.RollBack();
+                        return true;
+                    }
+                    else
+                    {
+                        LogService.Write("鐢熸垚骞跺鏍哥敓浜ч鏂欏崟锛堟簮鍗曪細鐢熶骇澶囨枡鍗曪級鎴愬姛锛�" + sRemark);
+                        sErrMsg = "鐢熸垚骞跺鏍哥敓浜ч鏂欏崟鎴愬姛锛佸崟鎹彿涓猴細" + oMain.HBillNo;
+                        oCn.Commit();
+                        return true;
+                    }
+                }
+                catch (Exception e)
+                {
+                    LogService.Write("瀹℃牳鍥炴粴" + sRemark);
+                    sErrMsg = "瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒" + e.Message;
+                    oCn.RollBack();
+                    return false;
+                }
+            }
+            else
+            {
+                LogService.Write("鐢熸垚鐢熶骇棰嗘枡鍗曪紙婧愬崟锛氱敓浜у鏂欏崟锛夋垚鍔燂紒" + sRemark);
                 sErrMsg = "鐢熸垚鐢熶骇棰嗘枡鍗曟垚鍔燂紒鍗曟嵁鍙蜂负锛�" + oMain.HBillNo;
                 return true;
             }
@@ -44822,7 +45660,7 @@
                         //灏嗘暣鎵樻潯鐮佸搴旂殑鏉$爜缂栧彿鎷兼垚涓�涓插瓧绗︿覆
                         for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++)
                         {
-                            sBarCode_New = sBarCode_New + "," + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]);
+                            sBarCode_New = sBarCode_New + ",'" + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"])+"'";
                         }
                         sBarCode_New = sBarCode_New.Remove(0, 1);   //鍘绘帀瀛楃涓茬涓�涓瓧绗�
 
@@ -44972,7 +45810,8 @@
                 "," + model.HRelationInterID.ToString() + "," + model.HRelationEntryID.ToString() + ",'" + model.HRelationBillNo + "'," + Convert.ToString(model.HRedBlueFlag ? 1 : 0) + ",'" + model.HMTONo + "',0" +
                 "," + model.HSTOCKORGID.ToString() + "," + model.HOWNERID.ToString() + "," + model.HSTOCKORGID.ToString() + ",'','','" + model.HSubBillType + "'" +
                 ",0,0,'" + model.HCusBarCode + "'," + model.HMulSourceBill.ToString() +
-                "from  Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0"
+                //"from  Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0"
+                "from  Gy_BarCodeBill with(nolock) where  HBarCode in (" + sBarCode_New + ")"
                 );
                 return true;
                 }
@@ -50553,7 +51392,7 @@
                     //灏嗘暣鎵樻潯鐮佸搴旂殑鏉$爜缂栧彿鎷兼垚涓�涓插瓧绗︿覆
                     for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++)
                     {
-                        sBarCode_New = sBarCode_New + "," + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]);
+                        sBarCode_New = sBarCode_New + ",'" + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"])+"'";
                     }
                     sBarCode_New = sBarCode_New.Remove(0, 1);   //鍘绘帀瀛楃涓茬涓�涓瓧绗�
 
@@ -50650,7 +51489,8 @@
                 "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" +
                 "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" +
                 ",0,0,'" + oMain.HCusBarCode + "',0" +
-                "from  Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0"
+                //"from  Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0"
+                "from  Gy_BarCodeBill with(nolock) where  HBarCode in (" + sBarCode_New + ")"
                 );
             return true;
         }

--
Gitblit v1.9.1