From e5200629c4697952c1f1615f220beab1478a9cd8 Mon Sep 17 00:00:00 2001
From: yxj <1qaz@123>
Date: 星期日, 24 四月 2022 11:04:49 +0800
Subject: [PATCH] 新增生产领料校验扫码模块,缓存列表模块调用方法

---
 CLOUDWEB/WebService1.asmx.cs |  329 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 316 insertions(+), 13 deletions(-)

diff --git a/CLOUDWEB/WebService1.asmx.cs b/CLOUDWEB/WebService1.asmx.cs
index c408f3c..b526993 100644
--- a/CLOUDWEB/WebService1.asmx.cs
+++ b/CLOUDWEB/WebService1.asmx.cs
@@ -15414,6 +15414,216 @@
 
         #endregion
 
+        #region 棰嗘枡鍑哄簱    鏍¢獙妯″紡*
+
+        //鏍¢獙棰嗘枡鍑哄簱鍗�
+        [WebMethod]
+        public bool set_SaveMateOutBill_BillCheck(Model.ClsKf_MateOutBillMain oMain, ref string sErrMsg)
+        {
+            if (set_SaveMateOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true)
+            {
+                //涓婁紶鎴愬姛
+                return true;
+            }
+            else
+            {
+                //涓婁紶澶辫触
+                sErrMsg = "鍗曟嵁鍙凤細" + oMain.HBillNo + "锛屽崟鎹甀D锛�" + oMain.HInterID + "锛涗笂浼犲崟鎹け璐ワ紒" + sErrMsg;
+                return false;
+            }
+        }
+
+        public bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, ref string sErrMsg)
+        {
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+            //鑾峰彇绯荤粺鍙傛暟
+            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+            if (oSystemParameter.ShowBill(ref sErrMsg) == false)
+            {
+                sErrMsg = "鑾峰彇绯荤粺鍙傛暟澶辫触锛� " + sErrMsg;
+                return false;
+            }
+            //涓婁紶鍓嶅垽鏂�
+            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_MateOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateOutBillCheck");
+            if (Ds == null || Ds.Tables[0].Rows.Count == 0)
+            {
+                sErrMsg = "鏍¢獙涓婁紶鍓嶅垽鏂紝鍙戠敓閿欒锛�";
+                return false;
+            }
+            else
+            {
+                if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1)
+                {
+                    sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]);
+                    return false;
+                }
+            }
+
+            try
+            {
+                oCn.BeginTran();
+                //鍐欏叆鏉$爜鍑哄叆搴撹〃
+                oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'");
+
+                //浠庨厤缃枃浠惰幏鍙� 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"]);
+                }
+
+                if (oSystemParameter.omodel.Kf_MateOutBillCheck_MustQtyCtl == "瀹屽叏绛変簬搴旀敹")
+                {
+                    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);
+                    if (bLogin)
+                    {
+                        //鎻愪氦鍗曟嵁
+                        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 = result3.ToString();
+
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            sErrMsg = "瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒" + HReturn;
+                            oCn.RollBack();
+                            return false;
+                        }
+                        else
+                        {
+                            oCn.Commit();
+                            return true;
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "鏍¢獙瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        oCn.RollBack();
+                        return false;
+                    }
+                }
+                else
+                {
+                    //鏍规嵁TMP琛� 杩斿洖 淇敼淇℃伅
+                    DataSet Ds2;
+                    Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBillCheck");
+                    if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0)
+                    {
+                        sErrMsg = "鑾峰彇瀛愯〃淇℃伅澶辫触锛�";
+                        oCn.RollBack();
+                        return false;
+                    }
+                    else
+                    {
+                        string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FActualQty\"]," +
+                            "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," +
+                            "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," +
+                            "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," +
+                            "\"FEntity\": [  ";
+                        string sJson_Entry = "";
+                        for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++)
+                        {
+                            if (sJson_Entry != "")
+                            {
+                                sJson_Entry = sJson_Entry + " , ";
+                            }
+
+                            sJson_Entry = sJson_Entry + "{" +
+                            "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," +
+                            "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FActualQty"]) + "\"," +
+                            "}";
+                        }
+                        string sJson_End = "  ]  }}";
+                        string sJson = sJson_Main + sJson_Entry + sJson_End;
+
+                        //楠岃瘉鐢ㄦ埛淇℃伅
+                        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);
+                        if (bLogin)
+                        {
+                            //淇敼鍗曟嵁
+                            var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
+                            new object[] { "PRD_PickMtrl", sJson });
+
+                            HReturn = result.ToString();
+
+                            if (HReturn.Contains("\"IsSuccess\":false") == true)
+                            {
+                                sErrMsg = "淇敼鐢熶骇棰嗘枡鍗曞け璐ワ紒" + HReturn + sJson;
+                                oCn.RollBack();
+                                return false;
+                            }
+                            else
+                            {
+                                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 =result3.ToString();
+
+                                if (HReturn.Contains("\"IsSuccess\":false") == true)
+                                {
+                                    sErrMsg = "鏍¢獙瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒" + HReturn + sJson;
+                                    oCn.RollBack();
+                                    return false;
+                                }
+                                else
+                                {
+                                    //閲嶆柊鍚屾鐢熶骇棰嗘枡鍗�
+                                    oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MateOut '" + oMain.HBillNo + "'");
+                                    oCn.Commit();
+                                    return true;
+                                }
+                            }
+                        }
+                        else
+                        {
+                            sErrMsg = "鏍¢獙瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                            oCn.RollBack();
+                            return false;
+                        }
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                sErrMsg = "鏍¢獙瀹℃牳鐢熶骇棰嗘枡鍗曞け璐ワ紒" + e.Message;
+                oCn.RollBack();
+                return false;
+            }
+        }
+
+        #endregion
+
         #region 鐢熶骇琛ユ枡鍗�        *
 
         //鐢熸垚鐢熶骇琛ユ枡鍗�
@@ -35579,6 +35789,43 @@
 
         #endregion
 
+        #region 鎵弿鍗曟嵁鏉$爜      棰嗘枡鍑哄簱    *鏍¢獙妯″紡
+
+        [WebMethod]
+        public Model.ClsKf_ICStockBill_WMS get_BillBarCode_MateOutCheck(string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg)
+        {
+            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+            Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS();
+            //灏嗗崟鎹俊鎭瓨鍏ユ潯鐮佸嚭鍏ュ簱涓存椂琛�
+            DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_MateOutCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_MateOutCheck");
+            if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
+            {
+                sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛涘皢鍗曟嵁淇℃伅瀛樺叆鏉$爜鍑哄叆搴撲复鏃惰〃澶辫触锛�";
+                return null;
+            }
+            else
+            {
+                if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0)
+                {
+                    oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]);
+                    oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]);
+                    oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]);
+                    oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]);
+                    oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]);
+                    oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]);
+                    oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]);
+                    return oBar;
+                }
+                else
+                {
+                    sErrMsg = "鍗曟嵁鍙凤細" + HBillNo + "锛�" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]);
+                    return null;
+                }
+            }
+        }
+
+        #endregion
+
         #region 鎵弿鍗曟嵁鏉$爜      鍏朵粬鍑哄簱    *鏍¢獙妯″紡
 
         [WebMethod]
@@ -35633,6 +35880,11 @@
                 //鍏朵粬鍑哄簱鍗�
                 sBillTypeOneScan = "Y";
             }
+            else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan == "Y")
+            {
+                //棰嗘枡鍑哄簱鍗�
+                sBillTypeOneScan = "Y";
+            }
 
             //鍒ゆ柇鏄惁瀛樺湪鐩稿悓鏉$爜锛屽垽鏂槸鍚﹀惎鐢ㄤ竴娆℃壂鐮佹帶鍒讹紝鍒ゆ柇鎵�鎵潯鐮佹槸鍚﹀湪鍗曟嵁涓�
             DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_BillCheck '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",'" + sBillTypeOneScan + "'", "h_p_WMS_AddBarCode_BillCheck");
@@ -35684,15 +35936,33 @@
                     sRelQty = omodel_View.HQty;
                 }
 
-                if (omodel_View.HSourceQty == 0)
+                //棰嗘枡鍑哄簱鏍¢獙锛屾牴鎹郴缁熷弬鏁帮細棰嗘枡鍑哄簱鏍¢獙-搴旀敹鏁伴噺 鎺у埗鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+                if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "灏忎簬绛変簬搴旀敹" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "瀹屽叏绛変簬搴旀敹"))
                 {
-                    sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
-                    return false;
+                    if (omodel_View.HSourceQty == 0)
+                    {
+                        sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
+                    else if (sRelQty > omodel_View.HSourceQty)
+                    {
+                        sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲婧愬崟鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
                 }
-                else if (sRelQty > omodel_View.HSourceQty)
+                //鍏朵粬鍑哄簱鏍¢獙锛屼笉鍙秴鍗曟嵁鏁伴噺
+                else if (HBillType == "1206")
                 {
-                    sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲鍗曟嵁鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
-                    return false;
+                    if (omodel_View.HSourceQty == 0)
+                    {
+                        sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
+                    else if (sRelQty > omodel_View.HSourceQty)
+                    {
+                        sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲鍗曟嵁鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
                 }
             }
             else
@@ -35711,15 +35981,33 @@
                     sRelQty = omodel_View.HQty;
                 }
 
-                if (omodel_View.HSourceQty == 0)
+                //棰嗘枡鍑哄簱鏍¢獙锛屾牴鎹郴缁熷弬鏁帮細棰嗘枡鍑哄簱鏍¢獙-搴旀敹鏁伴噺 鎺у埗鎵爜鏁伴噺鑳藉惁鍙秴鍗曟嵁鏁伴噺锛堝皬浜庣瓑浜庡簲鏀躲�佸畬鍏ㄧ瓑浜庡簲鏀躲�佷笉鎺у埗锛�
+                if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "灏忎簬绛変簬搴旀敹" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "瀹屽叏绛変簬搴旀敹"))
                 {
-                    sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
-                    return false;
+                    if (omodel_View.HSourceQty == 0)
+                    {
+                        sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
+                    else if (sRelQty > omodel_View.HSourceQty)
+                    {
+                        sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲婧愬崟鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
                 }
-                else if (sRelQty > omodel_View.HSourceQty)
+                //鍏朵粬鍑哄簱鏍¢獙锛屼笉鍙秴鍗曟嵁鏁伴噺
+                else if (HBillType == "1206")
                 {
-                    sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲鍗曟嵁鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
-                    return false;
+                    if (omodel_View.HSourceQty == 0)
+                    {
+                        sErrMsg = "鎵�鎵墿鏂欏湪鍗曟嵁涓墿浣欏彲鎵暟閲忎负0锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
+                    else if (sRelQty > omodel_View.HSourceQty)
+                    {
+                        sErrMsg = "鎵�鎵弿鏉$爜鏁伴噺涓� " + sRelQty.ToString() + " 澶т簬瀵瑰簲鍗曟嵁鍓╀綑鍙壂鎻忔暟閲�" + omodel_View.HSourceQty.ToString() + "锛屼笉鍏佽鎵爜锛�";
+                        return false;
+                    }
                 }
             }
 
@@ -35777,7 +36065,7 @@
 
                 if (sRelQty == 0)
                 {
-                    sErrMsg = "鎵�鎵弿鏉$爜鏃犳潯鐮佸簱瀛橈紒";
+                    sErrMsg = "鎵�鎵弿鏉$爜鏃犳潯鐮佸簱瀛樻垨瀵瑰簲鐗╂枡鏃燛RP搴撳瓨锛�";
                     return false;
                 }
             }
@@ -36107,6 +36395,21 @@
                                         return oBar;
                                     }
                                 }
+                                //棰嗘枡鍑哄簱鍗� 婧愬崟锛氶鏂欏嚭搴撳崟
+                                else if (sBarBillName == "棰嗘枡鍑哄簱鍗�" && HBillType == "1204")
+                                {
+                                    oBar = get_BillBarCode_MateOutCheck(HBillNo, HBillType, HMaker, HOWNERID, ref sErrMsg);
+                                    if (oBar == null)
+                                    {
+                                        sErrMsg = "鍚敤涓�閿壂鐮佹ā寮忥紝" + sErrMsg;
+                                        return null;
+                                    }
+                                    else
+                                    {
+                                        oBar.HBarType = "鍗曟嵁鏉$爜";
+                                        return oBar;
+                                    }
+                                }
                                 else
                                 {
                                     sErrMsg = "鍚敤涓�閿壂鐮佹ā寮忥紝鎵�鎵潯鐮佸墠缂�涓嶅睘浜庡綋鍓嶆ā鍧楀崟鎹彿鍓嶇紑锛�";

--
Gitblit v1.9.1