From 9f6816fd0824aafc360bee29c9ec1eb76fa0aa16 Mon Sep 17 00:00:00 2001
From: yxj <yxj@hz-kingdee.com>
Date: 星期四, 25 五月 2023 16:51:38 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs |  285 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 284 insertions(+), 1 deletions(-)

diff --git a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
index 9f00be0..370daab 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -478,6 +478,264 @@
             }
         }
 
+        #region 鎵归噺鏂板鍗曟嵁-淇濆瓨鎸夐挳
+        [Route("Cj_StationOutBill/BatchAddBill")]
+        [HttpPost]
+        public object BatchAddBill([FromBody] JObject oMain)
+        {
+            var _value = oMain["oMain"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            try
+            {
+                //鍙嶅簭鍒楀寲
+                string msg2 = "[" + sArray[0].ToString() + "]"; //琛ㄥご
+                string user = sArray[1].ToString();//鐢ㄦ埛鍚�
+                string msg3 = sArray[2].ToString(); //琛ㄤ綋
+                Int64 OperationType = Convert.ToInt64(sArray[3]); //鎿嶄綔绫诲瀷
+
+                //鍒ゆ柇鏄惁鏈夌紪杈戞潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犵紪杈戞潈闄�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                List<StationBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2);
+                List<StationBill> listSub = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg3);
+
+                oCN.BeginTran();
+                for (int i = 0;i < listSub.Count; i++)
+                {
+                    long HMainInterID = 0;
+                    HMainInterID = list[0].HMainInterID;
+                    string eventType = list[0].eventType;
+                    string BillType = "3791";
+                    string HBillSubType = "3791";
+                    long HInterID = listSub[i].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+                    string HBillNo = listSub[i].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
+                    int HBillStatus = 0;
+                    string HMaker = user;//鍒跺崟浜�
+                    string HMouldNum = list[0].HMouldNum;//妯$┐鍙�
+                    int HYear = DateTime.Now.Year;
+                    double HPeriod = DateTime.Now.Month;
+                    string HRemark = list[0].HRemark;//澶囨敞
+                    string HSourceName = listSub[i].HSourceName;//鐢熶骇璧勬簮鍚嶇О
+                    double HPieceQty = list[0].HPieceQty;//杩涚珯PCS鏁�
+                    double HWasterQty = listSub[i].HWasterQty;//鎶ュ簾鏁伴噺
+                    double HPlanPieceQty = list[0].HPlanPieceQty;//杩涚珯PNL鏁�
+                    double HBadPNL = list[0].HBadPNL;//鎶ュ簾PNL鏁�
+                    long HICMOInterID = listSub[i].HICMOInterID;//浠诲姟鍗旾D
+                    string HICMOBillNo = listSub[i].HICMOBillNo;//浠诲姟鍗�
+                    int HProcPlanInterID = 0;
+                    int HProcPlanEntryID = 0;
+                    string HProcPlanBillNo = "";
+                    long HProcExchInterID = listSub[i].lngBillKey;
+                    long HProcExchEntryID = listSub[i].lngBillSubKey;
+                    string HProcExchBillNo = listSub[i].HProcExchBillNo;//娴佽浆鍗�
+                    long HMaterID = listSub[i].HMaterID;//浜у搧ID
+                    long HProcID = listSub[i].HProcID;//褰撳墠宸ュ簭ID
+                    double HICMOQty = listSub[i].HICMOQty;//浠诲姟鍗曟暟閲�
+                    double HPlanQty = list[0].HPlanQty;//绉讳氦PNL鏁�
+                    DateTime HStationOutTime = list[0].HStationOutTime;//姹囨姤鏃堕棿
+                    long HSourceID = listSub[i].HSourceID;//鐢熶骇璧勬簮ID
+                    long HPayProcID = list[0].HPayProcID;//鏍哥畻宸ュ簭ID
+                    long HGroupID = list[0].HGroupID;//鐝粍ID
+                    long HDeptID = 0;
+                    long HEmpID = listSub[i].HEmpID;//鎿嶄綔鍛業D
+                    string HBarCode = list[0].HBarCode;//鏉″舰鐮�
+                    string HAddr = "";
+                    string HBarCodeMaker = "";
+                    long HSourceID2 = list[0].HSourceID2;//鐢熶骇璧勬簮2ID
+                    long HSourceID3 = list[0].HSourceID3;//鐢熶骇璧勬簮3ID
+                    long HSourceID4 = list[0].HSourceID4;//鐢熶骇璧勬簮4ID
+                    long HSourceID5 = list[0].HSourceID5;//鐢熶骇璧勬簮5ID
+                    long HSupID = 0;
+                    double HQty = listSub[i].HQty;//鍚堟牸鏁伴噺
+                    double HPrice = 0;
+                    double HMoney = 0;
+                    double HBadCount = list[0].HBadCount;//涓嶈壇鏁伴噺
+                    long HCenterID = listSub[0].HCenterID;//宸ヤ綔涓績ID
+                    string HProcNo = listSub[i].HProcNo;//娴佹按鍙�
+                    string HOrderProcNO = list[0].HOrderProcNO;//璁㈠崟璺熻釜鍙�
+                    string HSourceNameList = list[0].HSourceNameList;//璁惧娓呭崟
+                    long HMainSourceInterID = list[0].HInterID;//閫掑叆type寰楀埌鐨勫崟鎹甀D
+                    string HMainSourceBillNo = list[0].HBillNo;//閫掑叆type寰楀埌鐨勫崟鎹彿
+                    string HMainSourceBillType = "3790";
+                    bool HLastSubProc = list[0].HLastSubProc;//杞笅宸ュ簭
+                    long HEmpID2 = list[0].HEmpID2;//鎿嶄綔鍛�2ID
+                    long HEmpID3 = list[0].HEmpID3;//鎿嶄綔鍛�3ID
+                    long HEmpID4 = list[0].HEmpID4;//鎿嶄綔鍛�4ID
+                    long HEmpID5 = list[0].HEmpID5;//鎿嶄綔鍛�5ID
+                    double HDSQty = list[0].HDSQty;//鎶樺集鍒�鏁�
+                    double HChongQty = list[0].HChongQty;//NCT鍐叉鏁�
+                    double HPriceRate = list[0].HPriceRate;//绯绘暟
+                    double HWorkTimes = list[0].HWorkTimes;//宸ユ椂
+                    long HQCCheckID = list[0].HQCCheckID;//妫�楠屽憳ID
+                    long HPRDOrgID = list[0].HPRDOrgID;//缁勭粐ID
+
+                    var num = 0;
+
+                    //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�                   
+                    if (OperationType == 1)//鏂板
+                    {
+                        num = 1;
+                        if (!AllowbillNo(HBillNo))
+                        {
+                            oCN.RollBack();
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        oCN.RunProc("Insert Into Sc_StationOutBillMain " +
+                        "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate,HMouldNum" +
+                        ",HYear,HPeriod,HRemark,HSourceName,HPieceQty,HWasterQty,HPlanPieceQty,HBadPNL" +
+                        ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" +
+                        ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationOutTime,HSourceID,HPayProcID" +
+                        ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate,HSourceID2,HSourceID3,HSourceID4,HSourceID5" +
+                        ",HSupID,HQty,HPrice,HMoney,HBadCount,HCenterID,HProcNo,HOrderProcNO,HSourceNameList" +
+                        ",HMainSourceInterID,HMainSourceBillNo,HMainSourceBillType,HLastSubProc" +
+                        ",HEmpID2,HEmpID3,HEmpID4,HEmpID5,HDSQty,HChongQty,HPriceRate,HWorkTimes,HQCCheckID,HMainInterID,HPRDOrgID" +
+                        ") " +
+                        " values('" + BillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate(),'" + HMouldNum + "'" +
+                        "," + HYear + "," + HPeriod + ",'" + HRemark + "','" + HSourceName + "'," + HPieceQty + "," + HWasterQty + "," + HPlanPieceQty + "," + HBadPNL +
+                        "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID +
+                        ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID + "," + HPayProcID +
+                        "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" + "," + HSourceID2 + "," + HSourceID3 + "," + HSourceID4 + "," + HSourceID5 +
+                        "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HBadCount + "," + HCenterID + "," + HProcNo + ",'" + HOrderProcNO + "'" + ",'" + HSourceNameList + "'" +
+                        "," + HMainSourceInterID + ",'" + HMainSourceBillNo + "','" + HMainSourceBillType + "'," + Convert.ToString(HLastSubProc ? 1 : 0) +
+                        "," + HEmpID2 + "," + HEmpID3 + "," + HEmpID4 + "," + HEmpID5 + "," + HDSQty + "," + HChongQty + "," + HPriceRate + "," + HWorkTimes + "," + HQCCheckID + "," + HMainInterID + "," + HPRDOrgID +
+                        ") ");
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎿嶄綔绫诲瀷鏃犳晥锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //涓昏〃
+
+                    ds = oCN.RunProcReturn("exec h_p_MES_StationOutBill_QtyCtrl " + HInterID + "", "h_p_MES_StationOutBill_QtyCtrl");
+                    if (ds == null)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒ゆ柇鏁伴噺澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0].Rows.Count == 0)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒ゆ柇鏁伴噺澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏁伴噺鎺у埗," + ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Out " + HInterID + "," + num + "");
+                    oCN.RunProc("exec h_p_Mes_ProcessExchangeChangeStatus  " + HInterID + " ");
+                    oCN.RunProc("exec h_p_Mes_StationOutBillBackBarCode  " + HInterID + " ");
+                    //鍒ゆ柇鏄惁鏄� 鏈亾宸ュ簭 
+                    ds1 = oCN.RunProcReturn(" select HLastProc,HFstProc from Sc_ProcessExchangeBillMain a  " +
+                                        " inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID  " +
+                                        " Where a.HInterID=" + HProcExchInterID + " and b.HEntryID=" + HProcExchEntryID + " ", "Sc_ProcessExchangeBillMain");
+                    //鍒ゆ柇鏄惁鏄柊澧�
+                    if (OperationType == 1)
+                    {
+                        //鍒ゆ柇鏄惁鏄湯閬撳伐搴�
+                        if (ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HLastProc"]) == "鏄�")
+                        {
+                            //鑾峰彇绯荤粺鍙傛暟
+                            string Return = "";
+                            if (oSystemParameter.ShowBill(ref Return))
+                            {
+                                //鍒ゆ柇鏈亾 鐢熶骇姹囨姤姹囨姤 鏄惁鍕鹃��
+                                if (oSystemParameter.omodel.MES_StationOutBill_LastAutoICMOReport == "Y") //绯荤粺鍙傛暟   
+                                {
+                                    //鍚屾鐢熶骇姹囨姤鍗�
+                                    objJsonResult = (json)SaveICMOReportBill(HInterID.ToString(), user, HBillNo, HPRDOrgID.ToString());
+                                    if (objJsonResult.count == 0)
+                                    {
+                                        oCN.RollBack();
+                                        objJsonResult.code = "0";
+                                        objJsonResult.count = 0;
+                                        objJsonResult.Message = objJsonResult.Message;
+                                        objJsonResult.data = null;
+                                        return objJsonResult;
+                                    }
+                                }
+                                //鍒ゆ柇鏈亾 鐢熶骇鍏ュ簱 鏄惁鍕鹃��
+                                else if (oSystemParameter.omodel.MES_StationOutBill_AutoStockIn == "Y") //绯荤粺鍙傛暟   
+                                {
+                                    //鍚屾鐢熶骇鍏ュ簱鍗�
+                                    objJsonResult = (json)SaveProcdutInBill(HBillNo);
+                                    if (objJsonResult.count == 0)
+                                    {
+                                        oCN.RollBack();
+                                        objJsonResult.code = "0";
+                                        objJsonResult.count = 0;
+                                        objJsonResult.Message = objJsonResult.Message;
+                                        objJsonResult.data = null;
+                                        return objJsonResult;
+                                    }
+                                }
+
+                            }
+                        }
+                    }
+                }
+                
+                oCN.Commit();
+                string sReturn = "";
+                if (oSystemParameter.ShowBill(ref sReturn) == true)
+                {
+                    if (oSystemParameter.omodel.MES_StationOutBill_SaveAutoAddnew == "Y") //绯荤粺鍙傛暟  鑷姩瀹℃牳 
+                    {
+                        objJsonResult.Verify = "Y";
+                    }
+                    else
+                    {
+                        objJsonResult.Verify = "N";
+                    }
+                }
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鏂板鍗曟嵁鎴愬姛锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         #region 鏈亾宸ュ簭 鐢熶骇姹囨姤
         public object SaveICMOReportBill(string InterID, string user, string BillNo, string OrganizationID)
         {
@@ -1214,9 +1472,34 @@
                     return objJsonResult;
                 }
 
+                //鑾峰彇绯荤粺鍙傛暟
+                string Ret = "";
+                if (oSystemParameter.ShowBill(ref Ret))
+                {
+                    //鍒ゆ柇瀹㈡埛涓洪緳灞辨苯閰�
+                    if (oSystemParameter.omodel.WMS_CampanyName == "榫欏北姹介厤")
+                    {
+                        //鑾峰彇闇�瑕佹嫾鎺ョ殑瀛楃涓�
+                        string sql_splice = DBUtility.ClsPub.SpliceSQL(user, "宸ュ簭姹囨姤鍗曞垪琛�");
+
+                        if (sql_splice == "娌℃湁鏌ヨ鍒扮浉鍏崇敤鎴蜂俊鎭�")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "娌℃湁鏌ヨ鍒扮浉鍏崇敤鎴蜂俊鎭�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            sWhere += sql_splice;
+                        }
+                    }
+                }
+
                 if (sWhere == null || sWhere.Equals(""))
                 {
-                    ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList  order by hmainid desc", "h_v_MES_StationOutBillList");
+                    ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList where 1 = 1" + sWhere + "order by hmainid desc", "h_v_MES_StationOutBillList");
                 }
                 else
                 {

--
Gitblit v1.9.1