From 85d8c8056694645f34e2a346f1efbb63314a6ef3 Mon Sep 17 00:00:00 2001
From: yangle <admin@YINMOU>
Date: 星期五, 10 三月 2023 13:31:10 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 Pub_Class/CustomerCls/ClsXt_SystemParameter.cs               |   66 ++++
 WebAPI/Controllers/WebAPIController.cs                       |    4 
 Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs           |   88 +++---
 WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs      |  253 +++++++++++++++++++
 WebAPI/ListModels.cs                                         |   18 +
 Model/销售管理/ClsXs_SeOutStockBillMain.cs                       |   13 +
 WebAPI/Controllers/BaseSet/Gy_CustomerController.cs          |   24 +
 Model/基础资料/基础资料/ClsGy_COMMONCONTACT_Model.cs                 |    1 
 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 
 15 files changed, 698 insertions(+), 59 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/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_COMMONCONTACT_Model.cs" "b/Model/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_COMMONCONTACT_Model.cs"
index d06ee9a..33ffb5b 100644
--- "a/Model/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_COMMONCONTACT_Model.cs"
+++ "b/Model/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/ClsGy_COMMONCONTACT_Model.cs"
@@ -16,5 +16,6 @@
         public string HStopEmp { get; set; }
         public int HUSEORGID { get; set; }
         public int HCREATEORGID { get; set; }
+        public int HCUSTID { get; set; }        
     }
 }
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..c9b1726 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1313,7 +1313,19 @@
                     {
                         omodel.MES_StationInBill_LineBindCtl = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                     }
-                    
+                    //进站接收单是否自动匹配对应流水号
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationInBill_AutoFindSNO")
+                    {
+                        omodel.MES_StationInBill_AutoFindSNO = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //进站接收单只显示用户对应工序
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationInBill_ShowUSERProcess")
+                    {
+                        omodel.MES_StationInBill_ShowUSERProcess = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+
+
+
                     //===============出站单
                     //出站数量不能大于本道进站汇总数
                     if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_QtyCtl")
@@ -1330,6 +1342,39 @@
                     {
                         omodel.MES_StationOutBill_DeleteCtl = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                     }
+                    //首道工序出站后自动生成ERP生产汇报单
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_FstAutoICMOReport")
+                    {
+                        omodel.MES_StationOutBill_FstAutoICMOReport = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //末道工序出站后自动生成ERP生产汇报单
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_LastAutoICMOReport")
+                    {
+                        omodel.MES_StationOutBill_LastAutoICMOReport = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //末道工序出站后自动生成ERP生产入库单
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_AutoStockIn")
+                    {
+                        omodel.MES_StationOutBill_AutoStockIn = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //末道工序自动入库时仓库取值类型(物料、工序、工艺路线)
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_InStockType")
+                    {
+                        omodel.MES_StationOutBill_InStockType = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //出站汇报单是否自动匹配对应流水号
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_AutoFindSNO")
+                    {
+                        omodel.MES_StationOutBill_AutoFindSNO = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+                    //出站汇报单只显示用户对应工序
+                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_ShowUSERProcess")
+                    {
+                        omodel.MES_StationOutBill_ShowUSERProcess = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
+                    }
+
+
+
 
                     //=====不良评审单
                     //不良品数不能大于出站单报废数量
@@ -1494,12 +1539,19 @@
                         omodel.Sc_MESProceReportWorkBill_AutoCheck = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                     }
 
-                    //=========工序进站单
-                    //自动匹配流水号
-                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNo")
-                    {
-                        omodel.MES_StationBill_ProcNo = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
-                    }
+                    ////=========工序进站单
+                    ////自动匹配流水号
+                    //if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNo")
+                    //{
+                    //    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..fd26771 100644
--- a/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
+++ b/Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
@@ -10,7 +10,7 @@
 
         //生产汇报单
         public string Sc_ICMOReportBill_AutoCheck;              //是否自动审核
-        public string Sc_ICMOReportBill_ERPMode;                //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Sc_ICMOReportBill_ERPMode;                //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Sc_ICMOReportBill_MustQtyCtl;             //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Sc_ICMOReportBill_MulSourceBill;          //多源单模式
         public string Sc_ICMOReportBill_BillTypeOneScan;        //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -21,15 +21,16 @@
         public string Sc_ICMOReportBill_SourceWHSPCtl;          //是否取源单中仓库仓位('Y'为是)
         public string Sc_ICMOReportBill_UpdateSourceInterID;    //上传后回填条码档案源单信息
         public string Sc_ICMOReportBill_MESFlag;                //生产汇报单同步MES标记,Y为同步
+        public string Sc_ICMOReportBill_FirstCheckOut;          //必须首件检验通过才能保存单据
 
         //收料通知单(送货单、到货确认)
         public string Cg_POInStockBill_AutoCheck;       //是否自动审核
-        public string Cg_POInStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Cg_POInStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Cg_POInStockBill_BarCodeCtl;                 //到货确认必须扫码箱条码
 
         //采购入库
         public string Kf_POStockInBill_AutoCheck;       //是否自动审核
-        public string Kf_POStockInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_POStockInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_POStockInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_POStockInBill_MulSourceBill;   //多源单模式
         public string Kf_POStockInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -42,7 +43,7 @@
 
         //产品入库
         public string Kf_ProductInBill_AutoCheck;       //是否自动审核
-        public string Kf_ProductInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_ProductInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_ProductInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_ProductInBill_MulSourceBill;   //多源单模式
         public string Kf_ProductInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -55,7 +56,7 @@
 
         //其他入库
         public string Kf_OtherInBill_AutoCheck;       //是否自动审核
-        public string Kf_OtherInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_OtherInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_OtherInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_OtherInBill_MulSourceBill;   //多源单模式
         public string Kf_OtherInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -71,7 +72,7 @@
 
         //委外入库
         public string Kf_EntrustInBill_AutoCheck;       //是否自动审核
-        public string Kf_EntrustInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_EntrustInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_EntrustInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_EntrustInBill_MulSourceBill;   //多源单模式
         public string Kf_EntrustInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -83,7 +84,7 @@
 
         //生产领料
         public string Kf_MateOutBill_AutoCheck;         //是否自动审核
-        public string Kf_MateOutBill_ERPMode;           //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MateOutBill_ERPMode;           //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MateOutBill_MustQtyCtl;        //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MateOutBill_MulSourceBill;     //多源单模式
         public string Kf_MateOutBill_BillTypeOneScan;   //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -102,7 +103,7 @@
 
         //销售出库
         public string Kf_SellOutBill_AutoCheck;             //是否自动审核
-        public string Kf_SellOutBill_ERPMode;               //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_SellOutBill_ERPMode;               //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_SellOutBill_MustQtyCtl;            //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_SellOutBill_MulSourceBill;         //多源单模式
         public string Kf_SellOutBill_BillTypeOneScan;       //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -122,7 +123,7 @@
 
         //其他出库
         public string Kf_OtherOutBill_AutoCheck;       //是否自动审核
-        public string Kf_OtherOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_OtherOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_OtherOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_OtherOutBill_MulSourceBill;   //多源单模式
         public string Kf_OtherOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -139,7 +140,7 @@
 
         //委外出库
         public string Kf_EntrustOutBill_AutoCheck;       //是否自动审核
-        public string Kf_EntrustOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_EntrustOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_EntrustOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_EntrustOutBill_MulSourceBill;   //多源单模式
         public string Kf_EntrustOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -157,7 +158,7 @@
 
         //生产补料
         public string Kf_MateReplenishOutBill_AutoCheck;       //是否自动审核
-        public string Kf_MateReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MateReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MateReplenishOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MateReplenishOutBill_MulSourceBill;   //多源单模式
         public string Kf_MateReplenishOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -172,7 +173,7 @@
 
         //委外补料
         public string Kf_EntrustReplenishOutBill_AutoCheck;       //是否自动审核
-        public string Kf_EntrustReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_EntrustReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_EntrustReplenishOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_EntrustReplenishOutBill_MulSourceBill;   //多源单模式
         public string Kf_EntrustReplenishOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -187,7 +188,7 @@
 
         //直接调拨
         public string Kf_MoveStockBill_AutoCheck;       //是否自动审核
-        public string Kf_MoveStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MoveStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MoveStockBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MoveStockBill_MulSourceBill;   //多源单模式
         public string Kf_MoveStockBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -205,7 +206,7 @@
 
         //分步式调出单
         public string Kf_MoveStockStepOutBill_AutoCheck;       //是否自动审核
-        public string Kf_MoveStockStepOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MoveStockStepOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MoveStockStepOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MoveStockStepOutBill_MulSourceBill;   //多源单模式
         public string Kf_MoveStockStepOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -218,7 +219,7 @@
 
         //分步式调入单
         public string Kf_MoveStockStepInBill_AutoCheck;       //是否自动审核
-        public string Kf_MoveStockStepInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MoveStockStepInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MoveStockStepInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MoveStockStepInBill_MulSourceBill;   //多源单模式
         public string Kf_MoveStockStepInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -232,7 +233,7 @@
 
         //采购退料
         public string Kf_POStockInBackBill_AutoCheck;       //是否自动审核
-        public string Kf_POStockInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_POStockInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_POStockInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_POStockInBackBill_MulSourceBill;   //多源单模式
         public string Kf_POStockInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -243,7 +244,7 @@
 
         //产品退库
         public string Kf_ProductInBackBill_AutoCheck;       //是否自动审核
-        public string Kf_ProductInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_ProductInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_ProductInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_ProductInBackBill_MulSourceBill;   //多源单模式
         public string Kf_ProductInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -254,7 +255,7 @@
 
         //其他入库红字
         public string Kf_OtherInBackBill_AutoCheck;       //是否自动审核
-        public string Kf_OtherInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_OtherInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_OtherInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_OtherInBackBill_MulSourceBill;   //多源单模式
         public string Kf_OtherInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -265,7 +266,7 @@
 
         //委外退库
         public string Kf_EntrustInBackBill_AutoCheck;       //是否自动审核
-        public string Kf_EntrustInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_EntrustInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_EntrustInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_EntrustInBackBill_MulSourceBill;   //多源单模式
         public string Kf_EntrustInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -276,7 +277,7 @@
 
         //生产退料
         public string Kf_MateOutBackBill_AutoCheck;       //是否自动审核
-        public string Kf_MateOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_MateOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_MateOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_MateOutBackBill_MulSourceBill;   //多源单模式
         public string Kf_MateOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -288,7 +289,7 @@
 
         //销售退库
         public string Kf_SellOutBackBill_AutoCheck;                 //是否自动审核
-        public string Kf_SellOutBackBill_ERPMode;                   //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_SellOutBackBill_ERPMode;                   //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_SellOutBackBill_MustQtyCtl;                //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_SellOutBackBill_MulSourceBill;             //多源单模式
         public string Kf_SellOutBackBill_BillTypeOneScan;           //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -300,7 +301,7 @@
 
         //其他出库红字
         public string Kf_OtherOutBackBill_AutoCheck;       //是否自动审核
-        public string Kf_OtherOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_OtherOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_OtherOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_OtherOutBackBill_MulSourceBill;   //多源单模式
         public string Kf_OtherOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -311,7 +312,7 @@
 
         //委外退料
         public string Kf_EntrustOutBackBill_AutoCheck;       //是否自动审核
-        public string Kf_EntrustOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
+        public string Kf_EntrustOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
         public string Kf_EntrustOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
         public string Kf_EntrustOutBackBill_MulSourceBill;   //多源单模式
         public string Kf_EntrustOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -346,7 +347,7 @@
         public string BarCode_UpdatePrintQtyCtl;//条码打印次数更新(打印条码时,是否更新条码打印次数,Y 更新)
 
 
-        //进站单 
+        //工序进站接收单 
         public string MES_StationInBill_FIFOCtl;                //工站或工序先进先出(本生产资源 有单据没有出站则,不能进站其他单据)
         public string MES_StationInBill_FullMoveCtl;             //上道完全出站控制(本道进站时,上道的报废+合格必须等于上道进站数量
         public string MES_StationInBill_QtyCtl;                 //进站数量不能大于上道出站汇总合格数
@@ -355,28 +356,38 @@
         public string MES_StationInBill_ProcessCheckCtl;        //进站单当前工序的上道工序是否做工序检验
         public string MES_StationInBill_DeleteCtl;              //删除单据时制单人与删除人必须一致
         public string MES_StationInBill_LineBindCtl;              //进站接收时是否绑定该工序的配件清单
-        //出站单
+        public string MES_StationInBill_AutoFindSNO;             //进站接收单是否自动匹配对应流水号
+        public string MES_StationInBill_ShowUSERProcess;         //进站接收单只显示用户对应工序
+        public string MES_StationInBill_SaveAutoAddnew;         //保存后变为新增状态
+        //工序出站汇报单
         public string MES_StationOutBill_QtyCtl;                //出站数量不能大于本道进站汇总数
         public string MES_StationOutBill_ProcessCheckOut;          //必须工序检验通过才能保存单据
         public string MES_StationOutBill_FirstCheckOut;       //出战单判断本道工序是否做首件检验 
         public string MES_StationOutBill_DeleteCtl;             //删除单据时制单人与删除人必须一致
+        public string MES_StationOutBill_FstAutoICMOReport;         //首道工序出站后自动生成ERP生产汇报单
+        public string MES_StationOutBill_LastAutoICMOReport;        //末道工序出站后自动生成ERP生产汇报单
+        public string MES_StationOutBill_AutoStockIn;               //末道工序出站后自动生成ERP生产入库单
+        public string MES_StationOutBill_InStockType;               //末道工序自动入库时仓库取值类型(物料、工序、工艺路线)
+        public string MES_StationOutBill_AutoFindSNO;             //出站汇报单是否自动匹配对应流水号
+        public string MES_StationOutBill_ShowUSERProcess;         //出站汇报单只显示用户对应工序
+        public string MES_StationOutBill_SaveAutoAddnew;            //保存后变为新增状态
+
         //不良品评审单
         public string QC_NoPassProdCheckBill_QtyCtl;            //不良品数不能大于出站单报废数量
         public string QC_NoPassProdCheckBill_BadReasonQtyCtrl;  //不良品评审单不良数量和不良原因总数必须一致
         public string QC_NoPassProdCheckBill_DeleteCtl;         //删除单据时制单人与删除人必须一致
-        //委外发出 
+        //工序委外发出单
         public string MES_StationEntrustInBill_FIFOCtl;         //工站或工序先进先出(同上)
         public string MES_StationEntrustInBill_FullMoveCtl;     //上道完全出站控制(同上)
         public string MES_StationEntrustInBill_QtyCtl;          //进站数量不能大于上道出站汇总合格数(同上)
         public string MES_StationEntrustInBill_OneCtl;          //一张流转卡只允许一次委外发出
         public string MES_StationEntrustInBill_DeleteCtl;       //删除单据时制单人与删除人必须一致
-        //委外接收
+        public string MES_StationEntrustInBill_SaveAutoAddnew; //保存后变为新增状态
+        //工序委外接收单
         public string MES_StationEntrustOutBill_QtyCtl;         //出站数量不能大于本道进站汇总数
         public string MES_StationEntrustOutBill_DeleteCtl;      //删除单据时制单人与删除人必须一致
+        public string MES_StationEntrustOutBill_SaveAutoAddnew; //保存后变为新增状态
 
-        //生产汇报单
-        public string Sc_ICMOReportBill_FirstCheckOut;          //必须首件检验通过才能保存单据
-        public string MES_StationOutBill_InStockType;           //工序末道入库仓库取值类型
 
         //JIT
 
@@ -405,15 +416,8 @@
         //QMS
 
         //首件检验单
-        public string QC_FirstPieceCheckBill_AutoCheck; //自动审核 
-        //工序进站接收单
-        public string MES_StationInBill_SaveAutoAddnew; //自动新增
-        //工序出站汇报单
-        public string MES_StationOutBill_SaveAutoAddnew; //自动新增
-        //工序委外发出单
-        public string MES_StationEntrustInBill_SaveAutoAddnew; //自动新增
-        //工序委外接收单
-        public string MES_StationEntrustOutBill_SaveAutoAddnew; //自动新增
+        public string QC_FirstPieceCheckBill_AutoCheck; //保存后变为新增状态  
+
 
 
         //EAM
@@ -427,9 +431,11 @@
 
         //工艺路线
         public string Gy_RoutingBill_SaveAutoLastProc; //保存到数据库时自动加上转工序
+        
 
-        //工序进站单
-        public string MES_StationBill_ProcNo; //自动匹配流水号
+        ////工序进站单
+        //public string MES_StationBill_ProcNo; //自动匹配流水号
+        //public string MES_StationBill_ProcNoByUser; //只显示用户对应工序
 
     }
          
diff --git a/WebAPI/Controllers/BaseSet/Gy_CustomerController.cs b/WebAPI/Controllers/BaseSet/Gy_CustomerController.cs
index b811a22..90fb06d 100644
--- a/WebAPI/Controllers/BaseSet/Gy_CustomerController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_CustomerController.cs
@@ -326,10 +326,12 @@
             {
                 var model = oMain["model"].ToString();
                 var custLocationModel = oMain["model"]["HCustLocationEntry"].ToString();
+                var custContactModel = oMain["model"]["HCustContactEntry"].ToString();
                 //鍙嶅簭鍒楀寲
                 model = "[" + model + "]";
                 List<Customer> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Customer>>(model);
                 List<Model.ClsGy_CustLocation_Model> custLocationls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_CustLocation_Model>>(custLocationModel);
+                List<Model.ClsGy_COMMONCONTACT_Model> custContactls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_COMMONCONTACT_Model>>(custContactModel);
                 string sql = string.Empty;
                 oCN.BeginTran();
                 sql = $"delete gy_Customer where HItemID = {lsmain[0].HItemID}";
@@ -379,10 +381,30 @@
                 }
                 sql = "set identity_insert Gy_CustLocation off";
                 oCN.RunProc(sql);
+
+                //瀹㈡埛_鏀惰揣鏂硅仈绯讳汉
+                sql = $"delete Gy_COMMONCONTACT where HCUSTID = {lsmain[0].HItemID}";
+                oCN.RunProc(sql);
+                sql = "set identity_insert Gy_COMMONCONTACT on";
+                oCN.RunProc(sql);
+                foreach (var item in custContactls)
+                {
+                    sql = $@"insert into Gy_COMMONCONTACT(HItemID,HCUSTID,HNumber,HName,HShortNumber,HParentID,HLevel,HEndFlag,HStopflag,
+                    HRemark,HHelpCode,HUseFlag,HMakeTime,HMakeEmp,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime,
+                    HUSEORGID,HCREATEORGID)
+                  values({item.HItemID},{item.HCUSTID},'{item.HNumber}','{item.HName}','{item.HShortNumber}',{item.HParentID},{item.HLevel}
+           ,{Convert.ToString(item.HEndFlag ? 1 : 0)},{Convert.ToString(item.HStopflag ? 1 : 0) },'{item.HRemark}','{item.HHelpCode}','{item.HUseFlag}'
+            ,'{item.HMakeTime}','{item.HMakeEmp}','{item.HCheckEmp}','{item.HCheckTime}','{item.HModifyEmp}'
+            ,'{item.HModifyTime}','{item.HStopEmp}','{item.HStopTime}',{item.HUSEORGID},{item.HCREATEORGID})";
+                    oCN.RunProc(sql);
+                }
+                sql = "set identity_insert Gy_COMMONCONTACT off";
+                oCN.RunProc(sql);
+
                 oCN.Commit();
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
-                objJsonResult.Message = "鏂板鍗曟嵁鎴愬姛锛�";
+                objJsonResult.Message = "鏂板鍩虹璧勬枡鎴愬姛锛�";
                 //objJsonResult.data = null;
                 return objJsonResult;
             }
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 e0223b8..07e7113 100644
--- a/WebAPI/Controllers/Sc_ProcessMangementController.cs
+++ b/WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -410,6 +410,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 7695066..ae5c17a 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -1538,6 +1538,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 e52d40e..ac244ed 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -403,6 +403,7 @@
     <Compile Include="Controllers\CJGL\Cj_StationInBillController.cs" />
     <Compile Include="Controllers\CJGL\Cj_StationEntrustOutBillController.cs" />
     <Compile Include="Controllers\CJGL\Sc_ProcExchRecordBackBillController.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" />
@@ -998,6 +999,7 @@
     <Folder Include="Views\Sc_MouldStatusChangeBill\" />
     <Folder Include="Views\Sc_ProcessExchangeIssueBill\" />
     <Folder Include="Views\Sc_ProcExchRecordBackBill\" />
+    <Folder Include="Views\Sc_ProcessSendWork\" />
     <Folder Include="Views\Sc_WorkBillAutoSortBillMain\" />
     <Folder Include="Views\Sc_WorkBillSortBill\" />
     <Folder Include="Views\Sc_WorkDemandPlanBill\" />

--
Gitblit v1.9.1