From 0ee98ee44a38178214d7bf14b93cec104d2b92c5 Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期四, 09 三月 2023 14:59:39 +0800
Subject: [PATCH] 工序进出站,工序派工,发货通知单审核插件

---
 Pub_Class/CustomerCls/ClsXt_SystemParameter.cs               |    7 
 WebAPI/Controllers/WebAPIController.cs                       |    4 
 Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs           |    1 
 WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs      |  253 +++++++++++++++++++++++++
 WebAPI/ListModels.cs                                         |   18 +
 Model/销售管理/ClsXs_SeOutStockBillMain.cs                       |   13 +
 WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs |  129 ++++++++++++
 WebAPI/Controllers/Sc_ProcessMangementController.cs          |    8 
 DAL/基础资料/公用基础资料/ClsGy_TaxMIX_Ctl.cs                          |   23 ++
 WebAPI/Controllers/基础资料/基础资料/Gy_TaxMIXController.cs          |    9 
 Model/销售管理/ClsXs_SeOutStockBillSub.cs                        |   36 +++
 WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs       |   83 ++++++++
 WebAPI/WebAPI.csproj                                         |    2 
 13 files changed, 576 insertions(+), 10 deletions(-)

diff --git "a/DAL/\345\237\272\347\241\200\350\265\204\346\226\231/\345\205\254\347\224\250\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_TaxMIX_Ctl.cs" "b/DAL/\345\237\272\347\241\200\350\265\204\346\226\231/\345\205\254\347\224\250\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_TaxMIX_Ctl.cs"
index c6dc48e..a980049 100644
--- "a/DAL/\345\237\272\347\241\200\350\265\204\346\226\231/\345\205\254\347\224\250\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_TaxMIX_Ctl.cs"
+++ "b/DAL/\345\237\272\347\241\200\350\265\204\346\226\231/\345\205\254\347\224\250\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_TaxMIX_Ctl.cs"
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Data;
+using DBUtility;
 
 namespace DAL
 {
@@ -27,13 +28,31 @@
                     "," + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark +
                     "','" + oModel.HUseFlag + "'," + oModel.HUSEORGID + "," + oModel.HCREATEORGID + ",'" + oModel.HMakeEmp + "','" + System.DateTime.Now + "','" + oModel.HCheckEmp + "','" + oModel.HModifyEmp + "','" + oModel.HStopEmp +  "'" + ")", ref DBUtility.ClsPub.sExeReturnInfo);
 
+
+                //鑾峰彇鏁版嵁
+                DataSet Ds;
+                Int64 ItemID = 0;
+                Ds = oCn.RunProcReturn("select MAX(HItemID) HItemID from Gy_TaxMIXMain" , "Gy_TaxMIXMain");
+                if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString()) != 0)
+                {
+                    ItemID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString());
+                }             
+
                 //鎻掑叆瀛愯〃
                 foreach (Model.ClsGy_TaxMIXSub_Model oSub in DetailColl)
                 {
+                     DataSet Cs;
+                    Int64 EntryID = 0;
+                    Cs = oCn.RunProcReturn("select MAX(HEntryID) HEntryID from Gy_TaxMIXSub", "Gy_TaxMIXSub");
+                    if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()) != 0)
+                    {
+                        EntryID = ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()) + 1;
+                    }
+
                     oCn.RunProc("Insert into Gy_TaxMIXSub " +
-                      " (HTAXBENCHMARK,FTAXRATEID,FTAXBENCHMARKCORRVALUE,HTaxMixID" +                   
+                      " (HTAXBENCHMARK,FTAXRATEID,FTAXBENCHMARKCORRVALUE,HTaxMixID,HEntryID" +                   
                       ") values("
-                      + "'" + oSub.HTAXBENCHMARK + "'," + oSub.FTAXRATEID + ",'" + oSub.FTAXBENCHMARKCORRVALUE + "'," + oModel.HItemID +
+                      + "'" + oSub.HTAXBENCHMARK + "'," + oSub.FTAXRATEID + ",'" + oSub.FTAXBENCHMARKCORRVALUE + "'," + ItemID + "," + EntryID +
                       ") ");
                 }
 
diff --git "a/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillMain.cs" "b/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillMain.cs"
index 28018b5..de72a2e 100644
--- "a/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillMain.cs"
+++ "b/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillMain.cs"
@@ -32,5 +32,18 @@
         public Int64 HERPInterID;
         public string HERPBillType;
 
+        public Int64 HSTOCKERGROUPID;
+        public Int64 HSALEGROUPID;
+        public Int64 HSALEDEPTID;
+        public string HBUSINESSTYPE;
+        public Int64 HCARRIERID;
+        public Int64 HRECEIVERID;
+        public Int64 HSETTLEID;
+        public Int64 HPAYERID;
+        public Int64 HHEADLOCID;
+        public Int64 HRECCONTACTID;
+        public Int64 HRECEIPTCONDITIONID;
+        public Int64 HCORRESPONDORGID;
+        public string HCARRIAGENO;
     }
 }
diff --git "a/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillSub.cs" "b/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillSub.cs"
index 378a743..33636bd 100644
--- "a/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillSub.cs"
+++ "b/Model/\351\224\200\345\224\256\347\256\241\347\220\206/ClsXs_SeOutStockBillSub.cs"
@@ -21,7 +21,7 @@
         public Int64 HSPID;
         public Int64 HOWNERID;
         public string HOWNERTYPEID;
-        public Int64 HSETTLEORGID;
+        public string HSETTLEORGID;
         public double HMoveStockQty;
         public Int64 HAuxPropID;
         public string HBatchNO;
@@ -29,5 +29,39 @@
         public Int64 HERPInterID;
         public Int64 HERPEntryID;
         public string HSeORderBillNo;
+
+        public string HCUSTMATID;
+        public Int64 HBASEUNITID;
+        public string HBFLOWID;
+        public Int64 HOUTCONTROL;
+        public Int64 HSTOCKUNITID;
+        public string HROWTYPE;
+        public string HROWID;
+        public string HPARENTROWID;
+        public Int64 HPARENTMATID;
+        public Int64 HTAXCOMBINATION;
+        public double HPRICECOEFFICIENT;
+        public double HSYSPRICE;
+        public double HLIMITDOWNPRICE;
+        public Int64 HPRICEUNITID;
+        public double HTAXPRICE;
+        public double HTAXRATE;
+        public double HTAXNETPRICE;
+        public double HDISCOUNTRATE;
+        public Int64 HISFREE;
+        public Int64 HLOCALCURRID;
+        public Int64 HSETTLECURRID;
+        public Int64 HEXCHANGETYPEID;
+        public Int64 HSETTLETYPEID;
+        public Int64 HRECEIPTCONDITIONID;
+        public double HEXCHANGERATE;
+        public Int64 HISINCLUDEDTAX;
+        public Int64 HISPRICEEXCLUDETAX;
+        public Int64 HTAXRATEID;
+        public double HTaxRate_TAX;
+        public double HCOSTPERCENT;
+        public Int64 HVAT;
+        public Int64 HSELLERWITHHOLDING;
+        public Int64 HBUYERWITHHOLDING;
     }
 }
diff --git a/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs b/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
index b4ff72d..3ce0ae4 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1500,6 +1500,13 @@
                     {
                         omodel.MES_StationBill_ProcNo = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                     }
+
+                    //=========工序进出站
+                    //只显示用户对应工序
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNoByUser")
+                    {
+                        omodel.MES_StationBill_ProcNoByUser = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
                 }
                 sReturn = "显示单据成功!";
                 return true;
diff --git a/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs b/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
index 3127d9a..9d7f032 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
@@ -430,6 +430,7 @@
 
         //工序进站单
         public string MES_StationBill_ProcNo; //自动匹配流水号
+        public string MES_StationBill_ProcNoByUser; //只显示用户对应工序
 
     }
          
diff --git a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
index 9f2f099..ade9d19 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -141,10 +141,131 @@
         }
         #endregion
 
+        #region 濮斿宸ュ簭鍙戝嚭鍗曟祦姘村彿鍥炶溅鑾峰彇鏉$爜淇℃伅2锛堝澶栧伐搴忔帴鏀躲�佸伐搴忚繘绔欐帴鏀堕�氱敤锛�
+        [Route("Cj_StationBill/txtHBarCode_KeyDown2")]
+        [HttpGet]
+        public object txtHBarCode_KeyDown2(string HBarCode,string HInterID,string UserID)
+        {
+            try
+            {
+                if (HBarCode == null || HBarCode.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "绌虹櫧鐮�,鏉″舰鐮佷笉鑳戒负绌猴紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //鎷嗗垎鏉″舰鐮�
+                string sBillBarCode = HBarCode.Trim();
+                string[] NewBarCode;
+                if (sBillBarCode.CompareTo("#") > 0)
+                {
+                    NewBarCode = sBillBarCode.Split(Convert.ToChar("#"));
+                    sBillBarCode = NewBarCode[0];
+                }
+                string sBillNo = sBillBarCode;
+                //鎴彇鏉$爜绫诲瀷
+                string BillNoType = sBillNo.Substring(0, Math.Min(3, sBillNo.Length));
+                //鎴彇鍐呯爜
+                string BillNo = sBillNo.Substring(3, Math.Min(sBillNo.Length - 3,sBillNo.Length));
+
+                switch (BillNoType)
+                //寰楀埌淇℃伅
+                {
+                    case "HCX"://鐢熶骇璧勬簮鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList  where 鏉$爜缂栧彿 = '" + BillNo + "'", "h_v_Gy_SourceList");
+                        break;
+                    case "SBM"://璁惧鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_EquipMentList  where HItemID = '" + BillNo + "'", "h_v_Gy_EquipMentList");
+                        break;
+                    case "JYM"://鍛樺伐鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
+                        break;
+                    case "GRM"://鍛樺伐鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
+                        break;
+                    case "CGM"://鍛樺伐鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
+                        break;
+                    case "HWH"://浠撳簱鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_WareHouseList  where 鏉$爜缂栧彿 = '" + HBarCode + "'", "h_v_Gy_WareHouseList");
+                        break;
+                    case "HSP"://浠撲綅鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_StockPlaceList  where 鏉$爜缂栧彿 = '" + HBarCode + "'", "h_v_Gy_StockPlaceList");
+                        break;
+                    case "WKM"://宸ヤ綔涓績鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_WorkCenterList  where HItemID = '" + BillNo + "'", "h_v_Gy_WorkCenterList");
+                        break;
+                    case "BZM"://鐝粍鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_GroupList  where 鏉$爜缂栧彿 = '" + BillNo + "'", "h_v_Gy_GroupList");
+                        break;
+                    case "PRO"://宸ュ簭鐮�
+                        string sReturn = "";
+                        if (oSystemParameter.ShowBill(ref sReturn) == true)
+                        {
+                            //绯荤粺鍙傛暟鏄惁涓哄彧鏄剧ず褰撳墠鐧诲綍鐢ㄦ埛鍏宠仈鐨勫伐搴忎俊鎭�,N涓哄惁锛孻涓烘槸
+                            if (oSystemParameter.omodel.MES_StationBill_ProcNoByUser == "Y")
+                            {
+                                ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNoByUser  where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and 鐢ㄦ埛缂栫爜 = '" + UserID + "'", "h_v_Gy_ProcessList_GetProcNoByUser");
+                            }
+                            else
+                            {
+                                ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo  where HItemID = '" + BillNo + "' and HInterID = '" + 
+                                  HInterID + "'", "h_v_Gy_ProcessList_GetProcNo");
+                            }
+                        }
+                        break;
+                    case "WLM"://鐗╂枡鐮�
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_MaterialList  where HItemID = '" + BillNo + "'", "h_v_Gy_MaterialList");
+                        break;
+                    case "GXL"://娴佽浆鍗�
+                        ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 鍗曟嵁鍙�= '" + sBillNo + "'", "h_v_Sc_ProcessExchangeBillList");
+                        break;
+                }
+
+                //鍐欏叆淇℃伅
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏈煡璇㈠埌鏉$爜淇℃伅锛�";
+                    objJsonResult.data = null;
+                    if(BillNoType == "PRO")
+                    {
+                        ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList where HItemID = '" + BillNo + "'", "h_v_Gy_ProcessList");
+                        if (ds == null || ds.Tables[0].Rows.Count == 0)
+                        {
+                            objJsonResult.Message = "鏈煡璇㈠埌鏉$爜淇℃伅锛�";
+                        }
+                        else
+                        {
+                            objJsonResult.Message = "鐢ㄦ埛鏈叧鑱旂浉鍏冲伐搴忔垨娴佽浆鍗℃棤姝ゅ伐搴忥紝濡傛湁闇�瑕佽缁存姢";
+                        }
+                    }
+                    return objJsonResult;
+                }
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         #region 鏍规嵁鐧诲綍鐢ㄦ埛鑾峰彇宸ュ簭
         [Route("Sc_StationInBill/autoGetProcNo")]
         [HttpGet]
-        public object autoGetProcNo(string HUserName,string HInterID)
+        public object autoGetProcNo(string HUserID, string HInterID)
         {
             string sReturn = "";
             if (oSystemParameter.ShowBill(ref sReturn) == true)
@@ -154,16 +275,16 @@
                 {
                     try
                     {
-                        if (HUserName == null || HUserName.Equals(""))
+                        if (HUserID == null || HUserID.Equals(""))
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒";
+                            objJsonResult.Message = "鐢ㄦ埛缂栫爜涓嶈兘涓虹┖锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
                         //寰楀埌淇℃伅
-                        ds = oCN.RunProcReturn("select  * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and 鐢ㄦ埛鍚嶇О ='" + HUserName + "'", "h_v_Sc_StationBill_autoGetProcNo");
+                        ds = oCN.RunProcReturn("select  * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and 鐢ㄦ埛缂栫爜 ='" + HUserID + "'", "h_v_Sc_StationBill_autoGetProcNo");
                         //鍐欏叆淇℃伅
                         if (ds == null || ds.Tables[0].Rows.Count == 0)
                         {
diff --git a/WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs b/WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs
new file mode 100644
index 0000000..b1f415a
--- /dev/null
+++ b/WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs
@@ -0,0 +1,253 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    public class Sc_ProcessSendWorkController : ApiController
+    {
+        private json objJsonResult = new json();
+        public DataSet ds = new DataSet();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+
+        #region 宸ュ簭娲惧伐鍗� 鍒楄〃
+        /// <summary>
+        /// 宸ュ簭娲惧伐鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Sc_ProcessSendWork/Sc_ProcessSendWorkList")]
+        [HttpGet]
+        public object Sc_ProcessSendWorkList(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();               
+
+                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessSendWorkList where 1=1 " + sWhere, "h_v_Sc_ProcessSendWorkList");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ュ簭娲惧伐鍗� 淇濆瓨/缂栬緫
+        /// <summary>
+        /// 宸ュ簭娲惧伐鍗� 淇濆瓨
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        [Route("Sc_ProcessSendWork/SaveProcessSendWork")]
+        [HttpPost]
+        public object SaveProcessSendWork([FromBody] JObject msg)
+        {
+            var _value = msg["msg"].ToString();
+            string msg1 = _value.ToString();
+            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string msg3 = sArray[1].ToString();
+            string msg4 = sArray[2].ToString();
+
+
+            string UserName = "";
+            ListModels oListModels = new ListModels();
+            try
+            {               
+                DAL.ClsSc_ProcessSendWork oBill = new DAL.ClsSc_ProcessSendWork();
+                List<Model.ClsSc_ProcessSendWorkMain> lsmain = new List<Model.ClsSc_ProcessSendWorkMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_ClsSc_ProcessSendWorkMain(msg2);
+                foreach (Model.ClsSc_ProcessSendWorkMain oItem in lsmain)
+                {
+                    //oItem.HMaker = "";
+                    UserName = oItem.HMaker;  //鍒跺崟浜�
+                    oItem.HBillType = "3712";
+                    oItem.HBillSubType = "3712";
+                    oItem.HBillStatus = 1;
+                    DBUtility.ClsPub.CurUserName = UserName;
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oBill.omodel = oItem;
+                }
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsSc_ProcessSendWorkSub> ls = new List<Model.ClsSc_ProcessSendWorkSub>();
+                ls = oListModels.getObjectByJson_ClsSc_ProcessSendWorkSub(msg3);
+                int i = 0;
+                foreach (Model.ClsSc_ProcessSendWorkSub oItemSub in ls)
+                {
+
+                    i++;
+                    oItemSub.HEntryID = i;
+                    //oItemSub.HCloseMan = "";       //琛屽叧闂�
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+                    //oItemSub.HRemark = "";         //澶囨敞
+                    oItemSub.HSourceInterID = 0;     // 婧愬崟涓诲唴鐮�
+                    oItemSub.HSourceEntryID = 0;   //婧愬崟瀛愬唴鐮�
+                    //oItemSub.HSourceBillNo = "";  //婧愬崟鍗曞彿
+                    //oItemSub.HSourceBillType = ""; //婧愬崟绫诲瀷
+                    oItemSub.HRelationQty = 0;     //鍏宠仈鏁伴噺
+                                                   //oItemSub.HRelationMoney = 0;   //鍏宠仈閲戦
+                                                   //HMaterID = "";//閰嶄欢浠g爜
+                                                   //HUnitID = "";//鍗曚綅浠g爜
+                                                   //HQty = "";//瀹為檯鐢ㄩ噺
+                                                   //HQtyMust = "";//鍗曚綅鐢ㄩ噺
+                                                   //HRemark = "";//澶囨敞
+
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (oBill.omodel.HInterID == 0)
+                {
+                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                if (bResult)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 宸ュ簭娲惧伐鍗� 鍒犻櫎
+        /// <summary>
+        /// 宸ュ簭娲惧伐鍗曞垹闄�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Sc_ProcessSendWork/DelProcessSendWork")]
+        [HttpGet]
+        public object DelProcessSendWork(string HInterID, string user)
+        {          
+            Int64 lngBillKey = 0;
+            lngBillKey = DBUtility.ClsPub.isLong(HInterID);
+            if (lngBillKey == 0)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁ID涓虹┖锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            DAL.ClsSc_ProcessSendWork oBill = new DAL.ClsSc_ProcessSendWork();
+            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
+            {
+                ds = oCN.RunProcReturn("select * from Sc_ProcessSendWorkMain where HInterID=" + lngBillKey, "Sc_ProcessSendWorkMain");
+                if (int.Parse(ds.Tables[0].Rows[0]["HBillStatus"].ToString()) > 1)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁褰撳墠澶勪簬涓嶈兘鍒犻櫎鐘舵��,涓嶈兘鍒犻櫎锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁宸茬粡瀹℃牳,涓嶈兘鍒犻櫎锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                bool IsDete = oBill.DeleteBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (IsDete)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+            else
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏈壘鍒�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/Sc_ProcessMangementController.cs b/WebAPI/Controllers/Sc_ProcessMangementController.cs
index 246256d..a9b75c1 100644
--- a/WebAPI/Controllers/Sc_ProcessMangementController.cs
+++ b/WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -418,6 +418,14 @@
                 string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
                 //鏍规嵁宸ュ簭姹囨姤鍗曚富ID鑾峰彇宸ュ簭姹囨姤鍏ュ簱鍗曠殑鏁版嵁
                 DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
+                if(ds.Tables[0].Rows.Count <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鐢熸垚鐢熶骇姹囨姤鍗曡繃绋嬩腑娌℃湁鏌ヨ鍒板嚭绔欏崟";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
                 DataRow dr = ds.Tables[0].Rows[0];
                 
                 //淇濆瓨
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 4d401c8..1319651 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -4049,12 +4049,12 @@
         /// <returns></returns>
         [Route("Web/GetProcNoList")]
         [HttpGet]
-        public object GetProcNoList(int HInterID,string sWhere)
+        public object GetProcNoList(int HInterID,string sWhere,string UserID)
         {
             List<object> columnNameList = new List<object>();
             try
             {
-                ds = oCN.RunProcReturn("exec h_p_Sc_ProcNoList '" + HInterID + "','" + sWhere + "'", "h_p_Sc_ProcNoList");
+                ds = oCN.RunProcReturn("exec h_p_Sc_ProcNoList '" + HInterID + "','" + sWhere + "','" + UserID + "'" , "h_p_Sc_ProcNoList");
 
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
diff --git a/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs b/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
index 1bcea7f..9f2a54d 100644
--- a/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
+++ b/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
@@ -383,6 +383,89 @@
 
         #endregion
 
+        #region [鍚屾鎻掍欢]
+        [Route("Xs_SeOutStockBill/Xs_SeOutStockBillSaveApi")]
+        [HttpPost]
+        public object Xs_SeOutStockBillSaveApi([FromBody] JObject sMainSub)
+        {
+            try
+            {
+                //LogService.Write("鍙戣揣閫氱煡鍗曞悓姝�,淇濆瓨鏂规硶鎵ц瀹屾垚寮傚父锛�" + sMainSub.ToString());
+                var model = sMainSub["model"].ToString();
+                var entry = sMainSub["model"]["HENTRY"].ToString();
+
+                model = "[" + model.ToString() + "]";
+                List<ClsXs_SeOutStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsXs_SeOutStockBillMain>>(model);
+                List<ClsXs_SeOutStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsXs_SeOutStockBillSub>>(entry);
+                string sql = string.Empty;
+                oCN.BeginTran();
+                sql = $"delete Xs_SeOutStockBillMain where HinterID = {mainList[0].HInterID}";
+                oCN.RunProc(sql);
+                sql = $"delete Xs_SeOutStockBillSub where HinterID = {mainList[0].HInterID}";
+                oCN.RunProc(sql);
+                //涓昏〃
+                oCN.RunProc(@"Insert Into Xs_SeOutStockBillMain   
+                        (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus
+                        ,HCusID,HManagerID,HDeptID,HRemark,HAddress,HSSID,HCurID,HWHID,HExRate
+                        ,HEmpID,HExplanation,HInnerBillNo,HSALEORGID,HDELIVERYORGID,HOWNERID
+                        ,HOWNERTYPEID,HERPInterID,HERPBillType,HMaker,HMakeDate,HChecker,HCheckDate
+                        ,HCloseMan,HCloseDate,HSTOCKERGROUPID,HSALEGROUPID,HSALEDEPTID,HBUSINESSTYPE
+                        ,HCARRIERID,HRECEIVERID,HSETTLEID,HPAYERID,HHEADLOCID,HRECCONTACTID
+                        ,HRECEIPTCONDITIONID,HCORRESPONDORGID,HCARRIAGENO)
+                        values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1402 + "','" +
+                    mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "'," + mainList[0].HCusID +
+                    "," + mainList[0].HManagerID + "," + mainList[0].HDeptID + ",'" + mainList[0].HRemark + "','" + mainList[0].HAddress + "'," + mainList[0].HSSID +
+                    "," + mainList[0].HCurID + "," + mainList[0].HWHID + "," + mainList[0].HExRate + "," + mainList[0].HEmpID + ",'" + mainList[0].HExplanation + "','"  + mainList[0].HInnerBillNo + "'," + mainList[0].HSALEORGID + "," + mainList[0].HDELIVERYORGID + "," + mainList[0].HOWNERID + ",'" +
+                    mainList[0].HOWNERTYPEID + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "','" + mainList[0].HMaker + "','" + mainList[0].HMakeDate + "','"
+                    + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HCloseMan + "','" + mainList[0].HCloseDate + "'," + mainList[0].HSTOCKERGROUPID + ","
+                    + mainList[0].HSALEGROUPID + "," + mainList[0].HSALEDEPTID + ",'" + mainList[0].HBUSINESSTYPE + "'," + mainList[0].HCARRIERID + "," + mainList[0].HRECEIVERID + "," + mainList[0].HSETTLEID + "," + mainList[0].HPAYERID + "," + mainList[0].HHEADLOCID + "," + mainList[0].HRECCONTACTID + "," + mainList[0].HRECEIPTCONDITIONID + "," + mainList[0].HCORRESPONDORGID + ",'" + mainList[0].HCARRIAGENO + "'" + ")");
+                //淇濆瓨涓昏〃
+                foreach (var oSub in subList)
+                {
+                    sql = $@"
+Insert into Xs_SeOutStockBillSub 
+(HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HMoney,HWHID,HSPID,HRemark,
+HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HSeOrderInterID,
+HSeOrderEntryID,HSeORderBillNo,HOWNERID,HOWNERTYPEID,HSETTLEORGID,HMoveStockQty,
+HRelationQty,HAuxPropID,HBatchNO,HMTONo,HERPInterID,HERPEntryID,HCUSTMATID,
+HBASEUNITID,HBFLOWID,HOUTCONTROL,HSTOCKUNITID,HROWTYPE,HROWID,HPARENTROWID,
+HPARENTMATID,HTAXCOMBINATION,HPRICECOEFFICIENT,HSYSPRICE,HLIMITDOWNPRICE,
+HPRICEUNITID,HTAXPRICE,HTAXRATE,HTAXNETPRICE,HDISCOUNTRATE,HISFREE,HLOCALCURRID,
+HSETTLECURRID,HEXCHANGETYPEID,HSETTLETYPEID,HRECEIPTCONDITIONID,HEXCHANGERATE,
+HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HTaxRate_TAX,HCOSTPERCENT,HVAT,
+HSELLERWITHHOLDING,HBUYERWITHHOLDING) 
+values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HMoney}','{oSub.HWHID}','{oSub.HSPID}','{oSub.HRemark}','{oSub.HSourceInterID}',
+'{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}','{oSub.HSeOrderInterID}','{oSub.HSeOrderEntryID}','{oSub.HSeORderBillNo}','{oSub.HOWNERID}','{oSub.HOWNERTYPEID}','{oSub.HSETTLEORGID}','{oSub.HMoveStockQty}',
+'{oSub.HRelationQty}','{oSub.HAuxPropID}','{oSub.HBatchNO}','{oSub.HMTONo}','{oSub.HERPInterID}',
+'{oSub.HERPEntryID}','{oSub.HCUSTMATID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HOUTCONTROL}','{oSub.HSTOCKUNITID}','{oSub.HROWTYPE}',
+'{oSub.HROWID}','{oSub.HPARENTROWID}',
+'{oSub.HPARENTMATID}','{oSub.HTAXCOMBINATION}','{oSub.HPRICECOEFFICIENT}','{oSub.HSYSPRICE}','{oSub.HLIMITDOWNPRICE}','{oSub.HPRICEUNITID}','{oSub.HTAXPRICE}','{oSub.HTAXRATE}','{oSub.HTAXNETPRICE}','{oSub.HDISCOUNTRATE}','{oSub.HISFREE}',
+'{oSub.HLOCALCURRID}','{oSub.HSETTLECURRID}','{oSub.HEXCHANGETYPEID}','{oSub.HSETTLETYPEID}','{oSub.HRECEIPTCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}',
+'{oSub.HTaxRate_TAX}','{oSub.HCOSTPERCENT}','{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}')";
+                    oCN.RunProc(sql);
+                }
+                oCN.Commit();
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍗曟嵁淇濆瓨鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+
+            }
+            catch (Exception e)
+            {
+                LogService.Write("鍙戣揣閫氱煡鍗曞悓姝ュ紓甯�,淇濆瓨鏂规硶鎵ц瀹屾垚寮傚父锛�" + e.Message.ToString());
+
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         #region [鍚屾鍗曟嵁]
         [Route("Xs_SeOutStockBill/Xs_SeOutStockBillViewApi")]
         [HttpGet]
diff --git "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_TaxMIXController.cs" "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_TaxMIXController.cs"
index 308d60f..0250671 100644
--- "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_TaxMIXController.cs"
+++ "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_TaxMIXController.cs"
@@ -110,6 +110,9 @@
             {
                 DAL.ClsGy_TaxMIX_Ctl oBill = new DAL.ClsGy_TaxMIX_Ctl();
                 List<Model.ClsGy_TaxMIXMain_Model> lsmain = new List<Model.ClsGy_TaxMIXMain_Model>();
+                //List<Model.ClsGy_TaxMIXSub_Model> lssub = new List<Model.ClsGy_TaxMIXSub_Model>();
+                List<Model.ClsGy_TaxMIXSub_Model> lssub = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_TaxMIXSub_Model>>(msg2);
+
                 msg1 = msg1.Replace("\\", "");
                 msg1 = msg1.Replace("\n", "");  //\n
                 lsmain = oListModels.getObjectByJson_Gy_TaxMIXMain(msg1);
@@ -241,6 +244,10 @@
                     oItem.HLevel = 1; //绛夌骇 DBUtility.ClsPub.GetLevel(oItem.HNumber.Trim())
                     oBill.oModel = oItem;
                 }
+                foreach (Model.ClsGy_TaxMIXSub_Model oItemSub in lssub)
+                {
+                    oBill.DetailColl.Add(oItemSub);
+                }
                 //淇濆瓨
                 //淇濆瓨瀹屾瘯鍚庡鐞�
                 bool bResult;
@@ -329,7 +336,7 @@
                 }
 
                 oCN.RunProc("delete from Gy_TaxMIXMain where HItemID=" + HItemID);
-                oCN.RunProc("delete from Gy_TaxMIXSub where HTaxMixID=" + HItemID);
+                oCN.RunProc("delete from Gy_TaxMIXSub where HItemID=" + HItemID);
                 oCN.Commit();//鎻愪氦浜嬪姟
                 objJsonResult.code = "0";
                 objJsonResult.count = 1;
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index 5b08958..9054a8d 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -1520,6 +1520,24 @@
             return list;
         }
 
+        ///宸ュ簭娲惧伐鍗� 涓昏〃
+        ///ClsSc_ProcExchWorkBackBillMain
+        public List<Model.ClsSc_ProcessSendWorkMain> getObjectByJson_ClsSc_ProcessSendWorkMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsSc_ProcessSendWorkMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessSendWorkMain>>(jsonString);
+            return list;
+        }
+
+        ///宸ュ簭娲惧伐鍗� 瀛愯〃
+        ///ClsSc_ProcExchWorkBackBillMain
+        public List<Model.ClsSc_ProcessSendWorkSub> getObjectByJson_ClsSc_ProcessSendWorkSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsSc_ProcessSendWorkSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessSendWorkSub>>(jsonString);
+            return list;
+        }
+
         ///璁惧鎶曚骇妫�楠岄獙鏀跺崟 瀛愯〃
         ///ClsSb_EquipWorkBeforeCheckBillSub
         public List<Model.ClsSb_EquipWorkBeforeCheckBillSub> getObjectByJson_ClsSb_EquipWorkBeforeCheckBillSub(string jsonString)
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 0007198..84fd031 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -395,6 +395,7 @@
     <Compile Include="Controllers\CJGL\Cj_StationOutBillController.cs" />
     <Compile Include="Controllers\CJGL\Cj_StationInBillController.cs" />
     <Compile Include="Controllers\CJGL\Cj_StationEntrustOutBillController.cs" />
+    <Compile Include="Controllers\CJGL\Sc_ProcessSendWorkController.cs" />
     <Compile Include="Controllers\CJGL\Sc_ProcExchWorkBackBillController.cs" />
     <Compile Include="Controllers\CJGL\Sc_WorkBillAutoSortBillMainController.cs" />
     <Compile Include="Controllers\Gy_MateMouldController.cs" />
@@ -982,6 +983,7 @@
     <Folder Include="Views\Sc_MouldScrapRequestBill\" />
     <Folder Include="Views\Sc_MouldStatusChangeBill\" />
     <Folder Include="Views\Sc_ProcessExchangeIssueBill\" />
+    <Folder Include="Views\Sc_ProcessSendWork\" />
     <Folder Include="Views\Sc_WorkBillAutoSortBillMain\" />
     <Folder Include="Views\Sc_WorkBillSortBill\" />
     <Folder Include="Views\Sc_WorkDemandPlanBill\" />

--
Gitblit v1.9.1