From a8f9f1ab0b29f22ad27bb6da013d80dd03e8de7a Mon Sep 17 00:00:00 2001
From: jingh <jingh@LAPTOP-I53VDLOO>
Date: 星期日, 28 二月 2021 20:16:16 +0800
Subject: [PATCH] 添加项目文件。

---
 WebAPI/DLL/Newtonsoft.Json.Net35.dll                                |    0 
 WebAPI/DLL/System.Web.Http.dll                                      |    0 
 WebAPI/Code/TestDAL.cs                                              |   78 
 WebAPI/Controllers/POInStockController.cs                           |  628 +++++
 WebAPI/DLL/Kingdee.BOS.WebApi.ServicesStub.dll                      |    0 
 WebAPI/App_Start/WebApiConfig.cs                                    |   30 
 WindowsFormsApp1/Properties/AssemblyInfo.cs                         |   36 
 WindowsFormsApp1/Properties/Resources.Designer.cs                   |   63 
 WebAPI/DLL/System.Net.Http.Formatting.dll                           |    0 
 WebAPI/Models/ClsCg_POInStockBill.cs                                |   82 
 WebAPI/Global.asax                                                  |    1 
 WebAPI/Index.html                                                   |   10 
 WebAPI/DLL.zip                                                      |    0 
 WebAPI/DLL/Pub_Control.dll                                          |    0 
 WebAPI/DLL/System.Web.Http.WebHost.dll                              |    0 
 输出-生成.txt                                                           |   23 
 WebAPI/Code/Test2.cs                                                |   25 
 WebAPI/App_Start/SwaggerConfig.cs                                   |  213 +
 WebAPI/packages.config                                              |   17 
 WindowsFormsApp1/TestAPI.csproj                                     |  185 +
 WebAPI/Controllers/WebAPIController.cs                              |  700 +++++
 WebAPI/DLL/DAL.dll                                                  |    0 
 WebAPI/DLL/Kingdee.BOS.WebApi.Client.dll                            |    0 
 WebAPI/DLL/DBUtility.dll                                            |    0 
 WebAPI/Models/Pensen.cs                                             |   19 
 加载失败.txt                                                            |    1 
 WebAPI/BLL/WebServer.cs                                             |  113 
 WindowsFormsApp1/TestAPI.resx                                       |  120 +
 WebAPI.sln                                                          |   41 
 WebAPI/Controllers/POInStockBackController.cs                       |   91 
 WebAPI/ListModels.cs                                                |   85 
 WebAPI/Models/JsonResult.cs                                         |   15 
 WebAPI/Controllers/POOrderController.cs                             |  271 ++
 DAL/DataBaseServices.cs                                             |   70 
 WebAPI/WebAPI.csproj                                                |  250 ++
 WebAPI/Models/json.cs                                               |   15 
 WindowsFormsApp1/Properties/Resources.resx                          |  117 
 WindowsFormsApp1/App.config                                         |    6 
 DAL/POInStockBillServices.cs                                        |  185 +
 WebAPI/apiapp.json                                                  |   14 
 WebAPI/Controllers/ReportController.cs                              |  232 +
 WebAPI/DLL/Pub_Class.dll                                            |    0 
 WebAPI/Global.asax.cs                                               |   17 
 WebAPI/DLL/BLL.dll                                                  |    0 
 WebAPI/Metadata/deploymentTemplates/apiappconfig.azureresource.json |   10 
 WindowsFormsApp1/Properties/Settings.Designer.cs                    |   26 
 WebAPI/Web.config                                                   |   57 
 WebAPI/DLL/SQLHelper.dll                                            |    0 
 物料条码.grf                                                            |  452 +++
 WebAPI/Controllers/EntrustOrderController.cs                        |  271 ++
 WindowsFormsApp1/TestAPI.cs                                         |  152 +
 WindowsFormsApp1/TestAPI.Designer.cs                                |   74 
 WebAPI/Web.Debug.config                                             |   31 
 DAL/SQLHelpers.cs                                                   |  675 +++++
 WebAPI/DLL/Model.dll                                                |    0 
 WebAPI/Controllers/BarCodeController.cs                             | 1167 +++++++++
 WebAPI/DLL/Kingdee.BOS.WebApi.FormService.dll                       |    0 
 WebAPI/Web.Release.config                                           |   32 
 WebAPI/Properties/AssemblyInfo.cs                                   |   35 
 WindowsFormsApp1/Program.cs                                         |   22 
 WebAPI/Code/Common.cs                                               |  127 +
 WebAPI/Controllers/PODemandPlanController.cs                        |  271 ++
 WindowsFormsApp1/Properties/Settings.settings                       |    7 
 63 files changed, 7,162 insertions(+), 0 deletions(-)

diff --git a/DAL/DataBaseServices.cs b/DAL/DataBaseServices.cs
new file mode 100644
index 0000000..80dea8f
--- /dev/null
+++ b/DAL/DataBaseServices.cs
@@ -0,0 +1,70 @@
+锘縰sing Model;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.DAL
+{
+    public class DataBaseServices : DBUtility.ClsXt_BaseBill
+    {
+        public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+        /// <summary>
+        /// 鏂板閫佽揣鍗�
+        /// </summary>
+        /// <param name="GroupName">鐝骇鍚嶇О</param>
+        /// <param name="isModify">鏄惁淇敼鐘舵��</param>
+        /// <returns></returns>
+        public int SavePOInStockBill(string POInStock)
+        {
+            return 0;
+            //string sql = "";
+            //string sReturn = "";
+            //JObject job = JObject.Parse(POInStock);
+            //try
+            //{
+            //    //寰楀埌mainid
+            //    Int64 HInterID = DBUtility.ClsPub.CreateBillID("1103", ref DBUtility.ClsPub.sExeReturnInfo);
+            //    //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
+            //    oCn.BeginTran();
+            //    //涓昏〃
+            //    oCn.RunProc("Insert Into Cg_POInStockBillMain     " +
+            //    "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
+            //    ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+            //    ",HAddress,HSupID,HCurID,HWHID,HExRate" +
+            //    ",HEmpID,HManagerID,HDeptID,HExplanation,HInnerBillNo" + 
+            //    ") " +
+            //    " values('1103','11251'," + HInterID.ToString() + ",'" + job["鍗曟嵁鍙�"].ToString() + "','" + job["鏃ユ湡"].ToString() + "'" +
+            //    ",'2019',12,'" + job["琛ㄥご澶囨敞"].ToString() + "','admin',getdate()" +
+            //    ",'null'," + job["hsubid"].ToString() + "," + job["hcurid"].ToString() + ",'null','null'"+
+            //    ", " + job["HEmpID"].ToString() + "," + job["hmanagerid"].ToString() + "," + job["HDeptID"].ToString() + ",'null','null'" +  
+            //    ") ");
+            //    //鎻掑叆瀛愯〃        
+            //    foreach (Model.ClsCg_POInStockBill oSub in )
+            //    {
+            //        oCn.RunProc("Insert into Cg_POInStockBillSub " +
+            //          " (HInterID,HEntryID,HRemark,HDate" +
+            //          ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+            //          ",HMaterID,HUnitID,HQty,HPrice,HMoney,HWHID" +
+            //          ",HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo,HCheckQty,HPassQty,HBadQty" +
+            //          ") values("
+            //          + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "','" +oSub.HDate + 
+            //          "'," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
+            //          "," + oSub.HMaterID.ToString() + "," + oSub.HUnitID.ToString() + "," + oSub.HQty.ToString() + "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() + "," + oSub.HWHID.ToString() +
+            //          "," + oSub.HPOOrderInterID.ToString() + "," + oSub.HPOOrderEntryID.ToString() + ",'" + oSub.HPOOrderBillNo + "'," + oSub.HCheckQty.ToString() +","+oSub.HPassQty.ToString() +"," +oSub.HBadQty.ToString() +
+            //          ") ");
+            //    }
+            //    oCn.Commit();
+            //    return 1;
+            //}
+            //catch (Exception e)
+            //{
+            //    sReturn = e.Message;
+            //    oCn.RollBack();
+            //    throw (e);
+            //}
+            
+        }
+    }
+}
\ No newline at end of file
diff --git a/DAL/POInStockBillServices.cs b/DAL/POInStockBillServices.cs
new file mode 100644
index 0000000..69e5d9b
--- /dev/null
+++ b/DAL/POInStockBillServices.cs
@@ -0,0 +1,185 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Script.Serialization;
+using Newtonsoft.Json.Linq;
+using Model;
+using DBUtility;
+
+namespace DAL
+{
+
+    public class POInStockBillServices
+    {
+        public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+        /// <summary>
+        /// 瑕佽揣閫氱煡鍗�
+        /// </summary>
+        /// <returns></returns>
+        public DataSet GetPOInStockBill()
+        {
+            try
+            {
+                DataSet dataSet = oCn.RunProcReturn("select * from h_v_Cg_POInStockBillList ", "ClsCg_POInStockBill"); //where hmaterid=" + sqlWhere
+                return dataSet;
+            }
+            catch (Exception)
+            {
+
+                throw;
+            }
+        }
+        /// <summary>
+        /// 閲囪喘璁㈠崟鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public DataSet GetPOOrderBill()
+        {
+            try
+            {
+                DataSet dataSet = oCn.RunProcReturn("select * from h_v_Cg_POOrderBillList ", "h_v_Cg_POOrderBillList"); //where hmaterid=" + sqlWhere
+                return dataSet;
+            }
+            catch (Exception)
+            {
+
+                throw;
+            }
+        }
+        /// <summary>
+        /// 濮斿璁㈠崟鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public DataSet GetICSubContractBill()
+        {
+            try
+            {
+                DataSet dataSet = oCn.RunProcReturn("select * from h_v_Kf_EntrustInBillList ", "h_v_Kf_EntrustInBillList"); //where hmaterid=" + sqlWhere
+                return dataSet;
+            }
+            catch (Exception)
+            {
+
+                throw;
+            }
+        }
+        /// <summary>
+        /// 鏉$爜妗f鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public DataSet GetBarCodeBill()
+        {
+            try
+            {
+                DataSet dataSet = oCn.RunProcReturn("select * from h_v_Gy_BarCodeBill ", "h_v_Gy_BarCodeBill"); //where hmaterid=" + sqlWhere
+                return dataSet;
+            }
+            catch (Exception)
+            {
+
+                throw;
+            }
+        }
+        public List<ClsCg_POInStockBill> GetLabelPrintDetail(long sqlWhere)
+        {
+            List<ClsCg_POInStockBill> POInStockBillList = new List<ClsCg_POInStockBill>();
+            try
+            {
+                SqlParameter[] param = new SqlParameter[] 
+                    { 
+                       //new SqlParameter("@sqlWhere", sqlWhere)
+                        //new SqlParameter("@JDInterID",""),
+                        //new SqlParameter("@JDEntryID","")
+                    };
+                SqlDataReader reader = SQLHelpers.GetReaderByProcedure("ClsCg_POInStockBill", param);
+
+                while (reader.Read())
+                {
+                    POInStockBillList.Add(new ClsCg_POInStockBill()
+                    {
+                        HInterID = DBUtility.ClsPub.isLong(reader["HInterID"]),
+                        HEntryID = DBUtility.ClsPub.isLong(reader["HEntryID"]),
+
+                        HDateForWeb = DBUtility.ClsPub.isStrNull(reader["HDateForWeb"]),
+                        HAddress = DBUtility.ClsPub.isStrNull(reader["HAddress"]),//     varchar(200)            	--浜よ揣鍦扮偣 
+                        HSupID = DBUtility.ClsPub.isLong(reader["HSupID"]),//      int     			--渚涘簲鍟� 锛圙y_Supplier锛�
+                        HCurID = DBUtility.ClsPub.isLong(reader["HCurID"]),//    int      			--甯佸埆 (Gy_Currency)
+                        HWHID = DBUtility.ClsPub.isLong(reader["HWHID"]),//      int     --浠撳簱
+                        HExRate = DBUtility.ClsPub.isLong(reader["HExRate"]),//    money      			--姹囩巼  (閫夋嫨瀹屽竵鍒甫鍑�)
+                        HEmpID = DBUtility.ClsPub.isLong(reader["HEmpID"]),//     int       			--涓氬姟鍛�  (Gy_Employee)
+                        HMangerID = DBUtility.ClsPub.isLong(reader["HMangerID"]),//  int     			--涓荤	(Gy_Employee)
+                        HDeptID = DBUtility.ClsPub.isLong(reader["HDeptID"]),//     int     			--閮ㄩ棬	(Gy_Employee)
+                        HExplanation = DBUtility.ClsPub.isStrNull(reader["HExplanation"]),//  varchar(200)     		--鎽樿 
+                        HInnerBillNo = DBUtility.ClsPub.isStrNull(reader["HInnerBillNo"]),//  varchar(50)     		--鍐呴儴鍗曟嵁鍙�
+                        HMaterID = DBUtility.ClsPub.isLong(reader["HMaterID"]),//  int      --鐗╂枡ID (Gy_Material)
+                        HUnitID = DBUtility.ClsPub.isLong(reader["HUnitID"]),//    int    --璁¢噺鍗曚綅 (Gy_Unit)
+                        HQty = DBUtility.ClsPub.isLong(reader["HQty"]),//     dec(18,8)         --瑕佽揣鏁伴噺
+                        HCheckQty = DBUtility.ClsPub.isLong(reader["HCheckQty"]),        //妫�楠屾暟
+                        HPassQty = DBUtility.ClsPub.isLong(reader["HPassQty"]),         //鍚堟牸鏁�
+                        HBadQty = DBUtility.ClsPub.isLong(reader["HBadQty"]),          //涓嶅悎鏍兼暟
+                        HPrice = DBUtility.ClsPub.isLong(reader["HPrice"]),//   dec(18,8)         --鍘熷竵鍗曚环
+                        HMoney = DBUtility.ClsPub.isLong(reader["HMoney"]),//   dec(18,8)         --鍘熷竵閲戦
+                        //  HWHID//              --鏀舵枡浠撳簱
+                        HPOOrderInterID = DBUtility.ClsPub.isLong(reader["HPOOrderInterID"]),//
+                        HPOOrderEntryID = DBUtility.ClsPub.isLong(reader["HPOOrderEntryID"]),//
+                        HPOOrderBillNo = DBUtility.ClsPub.isStrNull(reader["HPOOrderBillNo"]),//
+                        HDate = DBUtility.ClsPub.isDate(reader["HDate"]),   //瑕佽揣鏃堕棿
+                        HState = DBUtility.ClsPub.isLong(reader["HState"]),
+                        HBackDate = DBUtility.ClsPub.isStrNull(reader["HBackDate"]),
+                        HBacker = DBUtility.ClsPub.isStrNull(reader["HBacker"]),
+                        HBillerID = DBUtility.ClsPub.isLong(reader["HBillerID"]),
+                        HBillNo = DBUtility.ClsPub.isStrNull(reader["HBillNo"]),
+                        HBillStatus = DBUtility.ClsPub.isInt(reader["HBillStatus"]),
+                        HBillSubType = DBUtility.ClsPub.isStrNull(reader["HBillSubType"]),
+                        HBillType = DBUtility.ClsPub.isStrNull(reader["HBillType"]),
+                        HCheckDate = DBUtility.ClsPub.isStrNull(reader["HCheckDate"]),
+                        HChecker = DBUtility.ClsPub.isStrNull(reader["HChecker"]),
+                        HCheckFlowID = DBUtility.ClsPub.isLong(reader["HCheckFlowID"]),
+                        HCheckItemNextID = DBUtility.ClsPub.isLong(reader["HCheckItemNextID"]),
+                        HCheckItemNowID = DBUtility.ClsPub.isLong(reader["HCheckItemNowID"]),
+                        HCloseDate = DBUtility.ClsPub.isStrNull(reader["HCloseDate"]),
+                        // HCloseMan= DBUtility.ClsPub.isLong(reader["HEntryID"]),
+                        HCloseType = DBUtility.ClsPub.isBool(reader["HCloseType"]),
+                        //HDate= DBUtility.ClsPub.isLong(reader["HEntryID"]),
+                        HDeleteDate = DBUtility.ClsPub.isStrNull(reader["HDeleteDate"]),
+                        HDeleteMan = DBUtility.ClsPub.isStrNull(reader["HDeleteMan"]),
+                        HEmpCode = DBUtility.ClsPub.isStrNull(reader["HEmpCode"]),
+                        HMainSourceBillNo = DBUtility.ClsPub.isStrNull(reader["HMainSourceBillNo"]),
+                        HMainSourceBillType = DBUtility.ClsPub.isStrNull(reader["HMainSourceBillType"]),
+                        HMainSourceEntryID = DBUtility.ClsPub.isLong(reader["HMainSourceEntryID"]),
+                        HMainSourceInterID = DBUtility.ClsPub.isLong(reader["HMainSourceInterID"]),
+                        HMakeDate = DBUtility.ClsPub.isStrNull(reader["HMakeDate"]),
+                        HMaker = DBUtility.ClsPub.isStrNull(reader["HMaker"]),
+                        HPeriod = DBUtility.ClsPub.isLong(reader["HPeriod"]),
+                        HRemark = DBUtility.ClsPub.isStrNull(reader["HRemark"]),
+                        HUpDateDate = DBUtility.ClsPub.isStrNull(reader["HUpDateDate"]),
+                        HUpDater = DBUtility.ClsPub.isStrNull(reader["HUpDater"]),
+                        HYear = DBUtility.ClsPub.isLong(reader["HYear"]),
+                        // HCloseMan= DBUtility.ClsPub.isLong(reader["HEntryID"]),
+                        //  HCloseType= DBUtility.ClsPub.isLong(reader["HEntryID"]),
+                        HEntryCloseDate = DBUtility.ClsPub.isDate(reader["HEntryCloseDate"]),
+                        HRelationMoney = DBUtility.ClsPub.isLong(reader["HRelationMoney"]),
+                        HRelationQty = DBUtility.ClsPub.isLong(reader["HRelationQty"]),
+                        //  HRemark= DBUtility.ClsPub.isStrNull(reader["HEntryID"]),
+                        HSourceBillNo = DBUtility.ClsPub.isStrNull(reader["HSourceBillNo"]),
+                        HSourceBillType = DBUtility.ClsPub.isStrNull(reader["HSourceBillType"]),
+                        HSourceEntryID = DBUtility.ClsPub.isLong(reader["HSourceEntryID"]),
+                        HSourceInterID = DBUtility.ClsPub.isLong(reader["HSourceInterID"]),
+                    });
+                }
+                reader.Close();
+                return POInStockBillList;
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+       
+    }
+}
diff --git a/DAL/SQLHelpers.cs b/DAL/SQLHelpers.cs
new file mode 100644
index 0000000..aa445a7
--- /dev/null
+++ b/DAL/SQLHelpers.cs
@@ -0,0 +1,675 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace DAL
+{
+    public class SQLHelpers
+    {
+
+        /***杩炴帴鏁版嵁搴�****/
+        public static string connectionString = "User ID=HX_User;Password=lc@841022;Data Source=.;Initial Catalog=HX_APSsys_WDR";
+      //  PublicFunc publicFunc = new PublicFunc();
+        #region  鎵ц绠�鍗昐QL璇彞
+        public static SqlDataReader GetReader(string sql)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(sql, conn);
+            try
+            {
+                conn.Open();
+                SqlDataReader objReader =
+                    cmd.ExecuteReader(CommandBehavior.CloseConnection);
+                return objReader;
+            }
+            catch (Exception ex)
+            {
+                conn.Close();
+                throw ex;
+            }
+        }
+        public static SqlDataReader GetReader(string sql, SqlParameter[] param)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(sql, conn);
+            try
+            {
+                conn.Open();
+                cmd.Parameters.AddRange(param);
+                SqlDataReader objReader =
+                    cmd.ExecuteReader(CommandBehavior.CloseConnection);
+                return objReader;
+            }
+            catch (Exception ex)
+            {
+                conn.Close();
+                throw ex;
+            }
+        }
+        /// <summary>
+        /// 鎵цSQL璇彞锛岃繑鍥炲奖鍝嶇殑璁板綍鏁�
+        /// </summary>
+        /// <param name="SQLString">SQL璇彞</param>
+        /// <returns>褰卞搷鐨勮褰曟暟</returns>
+        public static int ExecuteSql(string SQLString)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
+                {
+                    try
+                    {
+                        connection.Open();
+                        int rows = cmd.ExecuteNonQuery();
+                        return rows;
+                    }
+                    catch (System.Data.SqlClient.SqlException e)
+                    {
+
+                        connection.Close();
+                        throw e;
+
+                    }
+                }
+            }
+        }
+        /// <summary>
+        /// 鏌ヨ鍗曚竴缁撴灉
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
+        public static object GetSingleResult(string sql)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(sql, conn);
+            try
+            {
+                conn.Open();
+                return cmd.ExecuteScalar();
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            finally
+            {
+                conn.Close();
+            }
+        }
+        public static object GetSingleResult(string sql, SqlParameter[] param)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand comm = new SqlCommand(sql, conn);
+            try
+            {
+                conn.Open();
+                comm.Parameters.AddRange(param);
+                return comm.ExecuteScalar();
+            }
+            catch (Exception ex)
+            {
+                WriteLog(ex.Message);
+                throw new Exception("鍦ㄨ皟鐢╬ublic static object GetSingleResult(string sql,SqlParameter[] param)鏂规硶鏃跺嚭閿欙紝閿欒淇℃伅" + ex.Message);
+            }
+            finally
+            {
+                conn.Close();
+            }
+        }
+        /// <summary>
+        /// 鎵ц澶氱粨鏋滄煡璇紙select锛�
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
+
+        public static int ExecuteSqlByTime(string SQLString, int Times)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                using (SqlCommand cmd = new SqlCommand(SQLString, connection))
+                {
+                    try
+                    {
+                        connection.Open();
+                        cmd.CommandTimeout = Times;
+                        int rows = cmd.ExecuteNonQuery();
+                        return rows;
+                    }
+                    catch (System.Data.SqlClient.SqlException e)
+                    {
+
+
+                        connection.Close();
+                        throw e;
+                    }
+                }
+            }
+        }
+
+
+        public static int ExecuteSqlTran(List<String> SQLStringList)
+        {
+            using (SqlConnection conn = new SqlConnection(connectionString))
+            {
+                conn.Open();
+                SqlCommand cmd = new SqlCommand();
+                cmd.Connection = conn;
+                SqlTransaction tx = conn.BeginTransaction();
+                cmd.Transaction = tx;
+                try
+                {
+                    int count = 0;
+                    for (int n = 0; n < SQLStringList.Count; n++)
+                    {
+                        string strsql = SQLStringList[n];
+                        if (strsql.Trim().Length > 1)
+                        {
+                            cmd.CommandText = strsql;
+                            count += cmd.ExecuteNonQuery();
+                        }
+                    }
+                    tx.Commit();
+                    return count;
+                }
+                catch
+                {
+
+                    tx.Rollback();
+                    return 0;
+                }
+            }
+        }
+        /// <summary>
+        /// 鎵ц甯︿竴涓瓨鍌ㄨ繃绋嬪弬鏁扮殑鐨凷QL璇彞銆�
+        /// </summary>
+        /// <param name="SQLString">SQL璇彞</param>
+        /// <param name="content">鍙傛暟鍐呭,姣斿涓�涓瓧娈垫槸鏍煎紡澶嶆潅鐨勬枃绔狅紝鏈夌壒娈婄鍙凤紝鍙互閫氳繃杩欎釜鏂瑰紡娣诲姞</param>
+        /// <returns>褰卞搷鐨勮褰曟暟</returns>
+        public static int ExecuteSql(string SQLString, string content)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                SqlCommand cmd = new SqlCommand(SQLString, connection);
+                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
+                myParameter.Value = content;
+                cmd.Parameters.Add(myParameter);
+                try
+                {
+                    connection.Open();
+                    int rows = cmd.ExecuteNonQuery();
+                    return rows;
+                }
+                catch (System.Data.SqlClient.SqlException e)
+                {
+
+                    throw e;
+                }
+                finally
+                {
+
+                    cmd.Dispose();
+                    connection.Close();
+                }
+            }
+        }
+        #region 鎵ц甯﹀弬鏁扮殑SQL璇彞
+
+        /// <summary>
+        /// 鎵цSQL璇彞锛岃繑鍥炲奖鍝嶇殑璁板綍鏁�
+        /// </summary>
+        /// <param name="SQLString">SQL璇彞</param>
+        /// <returns>褰卞搷鐨勮褰曟暟</returns>
+        public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                using (SqlCommand cmd = new SqlCommand())
+                {
+                    try
+                    {
+                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
+                        int rows = cmd.ExecuteNonQuery();
+                        cmd.Parameters.Clear();
+                        return rows;
+                    }
+                    catch (System.Data.SqlClient.SqlException e)
+                    {
+                        // WriteLog(e.Message);
+                        throw e;
+                    }
+                }
+            }
+        }
+        #endregion
+        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
+        {
+            if (conn.State != ConnectionState.Open)
+                conn.Open();
+            cmd.Connection = conn;
+            cmd.CommandText = cmdText;
+            if (trans != null)
+                cmd.Transaction = trans;
+            cmd.CommandType = CommandType.Text;//cmdType;
+            if (cmdParms != null)
+            {
+
+
+                foreach (SqlParameter parameter in cmdParms)
+                {
+                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
+                        (parameter.Value == null))
+                    {
+                        parameter.Value = DBNull.Value;
+                    }
+                    cmd.Parameters.Add(parameter);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鎵ц甯︿竴涓瓨鍌ㄨ繃绋嬪弬鏁扮殑鐨凷QL璇彞銆�
+        /// </summary>
+        /// <param name="SQLString">SQL璇彞</param>
+        /// <param name="content">鍙傛暟鍐呭,姣斿涓�涓瓧娈垫槸鏍煎紡澶嶆潅鐨勬枃绔狅紝鏈夌壒娈婄鍙凤紝鍙互閫氳繃杩欎釜鏂瑰紡娣诲姞</param>
+        /// <returns>褰卞搷鐨勮褰曟暟</returns>
+        public static object ExecuteSqlGet(string SQLString, string content)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                SqlCommand cmd = new SqlCommand(SQLString, connection);
+                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.VarChar);
+                myParameter.Value = content;
+                cmd.Parameters.Add(myParameter);
+                try
+                {
+                    connection.Open();
+                    object obj = cmd.ExecuteScalar();
+                    if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
+                    {
+                        return null;
+                    }
+                    else
+                    {
+                        return obj;
+                    }
+                }
+                catch (System.Data.SqlClient.SqlException e)
+                {
+
+                    throw e;
+                }
+                finally
+                {
+                    cmd.Dispose();
+                    connection.Close();
+                }
+            }
+        }
+        /// <summary>
+        /// 鍚戞暟鎹簱閲屾彃鍏ュ浘鍍忔牸寮忕殑瀛楁(鍜屼笂闈㈡儏鍐电被浼肩殑鍙︿竴绉嶅疄渚�)
+        /// </summary>
+        /// <param name="strSQL">SQL璇彞</param>
+        /// <param name="fs">鍥惧儚瀛楄妭,鏁版嵁搴撶殑瀛楁绫诲瀷涓篿mage鐨勬儏鍐�</param>
+        /// <returns>褰卞搷鐨勮褰曟暟</returns>
+        /// <summary>
+        /// 鎵ц鏌ヨ璇彞锛岃繑鍥濻qlDataReader ( 娉ㄦ剰锛氳皟鐢ㄨ鏂规硶鍚庯紝涓�瀹氳瀵筍qlDataReader杩涜Close )
+        /// </summary>
+        /// <param name="strSQL">鏌ヨ璇彞</param>
+        /// <returns>SqlDataReader</returns>
+        public static SqlDataReader ExecuteReader(string strSQL)
+        {
+            SqlConnection connection = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(strSQL, connection);
+            try
+            {
+                connection.Open();
+                SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
+
+                return myReader;
+            }
+            catch (System.Data.SqlClient.SqlException e)
+            {
+
+                throw e;
+            }
+
+        }
+        public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                SqlCommand cmd = new SqlCommand(strSQL, connection);
+                System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
+                myParameter.Value = fs;
+                cmd.Parameters.Add(myParameter);
+                try
+                {
+                    connection.Open();
+                    int rows = cmd.ExecuteNonQuery();
+                    return rows;
+                }
+                catch (System.Data.SqlClient.SqlException e)
+                {
+
+                    throw e;
+                }
+                finally
+                {
+                    cmd.Dispose();
+                    connection.Close();
+                }
+            }
+        }
+        #endregion
+
+        /// <summary>
+        /// 鎵ц鏌ヨ璇彞锛岃繑鍥濪ataSet
+        /// </summary>
+        /// <param name="SQLString">鏌ヨ璇彞</param>
+        /// <returns>DataSet</returns>
+        public static DataSet Query(string SQLString)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                DataSet ds = new DataSet();
+                try
+                {
+                    connection.Open();
+                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
+                    command.Fill(ds, "ds");
+                }
+                catch (System.Data.SqlClient.SqlException ex)
+                {
+
+                    throw new Exception(ex.Message);
+                }
+                return ds;
+            }
+        }
+        /// <summary>
+        /// 鎵ц杩斿洖缁撴灉闆嗙殑鎿嶄綔
+        /// </summary>
+        /// <returns></returns>
+        public static SqlDataReader GetReaderByProcedure(string storeProduceName, SqlParameter[] param)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand comm = new SqlCommand();
+            comm.Connection = conn;
+            comm.CommandType = CommandType.StoredProcedure;
+            comm.CommandText = storeProduceName;
+            try
+            {
+                conn.Open();
+                if (param != null)
+                {
+                    comm.Parameters.AddRange(param);
+                }
+                return comm.ExecuteReader(CommandBehavior.CloseConnection);
+            }
+            catch (Exception ex)
+            {
+                ///灏嗛敊璇俊鎭啓鍏ユ棩蹇�
+                //WriteLog("鎵цGetReaderByProcedure(string storeProduceName, SqlParameter[] param)鏃跺彂鐢熼敊璇�,閿欒淇℃伅" + ex);
+                throw ex;
+            }
+        }
+        /// <summary>
+        /// 鎵ц澧炲垹鏀规柟娉曪紙insert銆乽pdate銆乨elete绫诲瀷鐨凷QL璇彞锛�
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <returns></returns>
+        public static int Update(string sql)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(sql, conn);
+            try
+            {
+                conn.Open();
+                return cmd.ExecuteNonQuery();
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            finally
+            {
+                conn.Close();
+            }
+        }
+
+        /// <summary>
+        /// 鎵ц甯﹀弬鏁扮殑SQL璇彞鎴栧瓨鍌ㄨ繃绋�
+        /// </summary>
+        /// <param name="sqlOrProcedure">sql璇彞鎴栧瓨鍌ㄨ繃绋嬪悕绉�</param>
+        /// <param name="param">鍙傛暟</param>
+        /// <param name="isProcedure">鏄惁涓哄瓨鍌ㄨ繃绋�</param>
+        /// <returns></returns>
+        public static int Update(string sqlOrProcedure, SqlParameter[] param, bool isProcedure)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(sqlOrProcedure, conn);
+            if (isProcedure)
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
+            }
+            try
+            {
+                conn.Open();
+                cmd.Parameters.AddRange(param);
+                return cmd.ExecuteNonQuery();
+            }
+            catch (Exception ex)
+            {
+                //WriteErrLog("鎵ц public static int Update(string sqlOrProcedure,SqlParameter[] param,bool isProcedure)鏂规硶鏃跺嚭閿�,閿欒淇℃伅" + ex.Message);
+                throw ex;
+            }
+            finally
+            {
+                conn.Close();
+            }
+        }
+        /// <summary>
+        /// 鎵ц瀛樺偍杩囩▼
+        /// </summary>
+        /// <param name="storedProcName">瀛樺偍杩囩▼鍚�</param>
+        /// <param name="parameters">瀛樺偍杩囩▼鍙傛暟</param>
+        /// <param name="tableName">DataSet缁撴灉涓殑琛ㄥ悕</param>
+        /// <returns>DataSet</returns>
+        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                DataSet dataSet = new DataSet();
+                connection.Open();
+                SqlDataAdapter sqlDA = new SqlDataAdapter();
+                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
+                sqlDA.Fill(dataSet, tableName);
+                connection.Close();
+                return dataSet;
+            }
+        }
+        /// <summary>
+        /// 鏋勫缓 SqlCommand 瀵硅薄(鐢ㄦ潵杩斿洖涓�涓粨鏋滈泦锛岃�屼笉鏄竴涓暣鏁板��)
+        /// </summary>
+        /// <param name="connection">鏁版嵁搴撹繛鎺�</param>
+        /// <param name="storedProcName">瀛樺偍杩囩▼鍚�</param>
+        /// <param name="parameters">瀛樺偍杩囩▼鍙傛暟</param>
+        /// <returns>SqlCommand</returns>
+        private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
+        {
+            SqlCommand command = new SqlCommand(storedProcName, connection);
+            command.CommandType = CommandType.StoredProcedure;
+            foreach (SqlParameter parameter in parameters)
+            {
+                if (parameter != null)
+                {
+                    // 妫�鏌ユ湭鍒嗛厤鍊肩殑杈撳嚭鍙傛暟,灏嗗叾鍒嗛厤浠BNull.Value.
+                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
+                        (parameter.Value == null))
+                    {
+                        parameter.Value = DBNull.Value;
+                    }
+                    command.Parameters.Add(parameter);
+                }
+            }
+
+            return command;
+        }
+        //鐢ㄥ瓨鍌ㄨ繃绋嬫彃鍏ユ暟鎹�
+
+        public static DataSet GetDataSetByProcedure(string spName, SqlParameter[] param)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(spName, conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            try
+            {
+                conn.Open();
+                cmd.Parameters.AddRange(param);
+                SqlDataAdapter sda = new SqlDataAdapter();
+                sda.SelectCommand = cmd;
+                DataSet ds = new DataSet();
+                sda.Fill(ds, "ds");
+                cmd.Parameters.Clear();
+                return ds;
+
+            }
+            catch (Exception ex)
+            {
+                //灏嗛敊璇俊鎭啓鍏ョ郴缁熸棩蹇�
+                string info = "璋冪敤GetReaderByProcedure(string spName, SqlParameter[] param)鏂规硶鏃跺彂鐢熼敊璇細" + ex.Message;
+                WriteLog(ex.Message);
+                throw new Exception(info);
+            }
+        }
+        public static SqlDataReader MyReader(string strSQL)
+        {
+            SqlConnection connection = new SqlConnection(connectionString);
+            SqlCommand cmd = new SqlCommand(strSQL, connection);
+            try
+            {
+                connection.Open();
+                SqlDataReader myReader = cmd.ExecuteReader();
+                return myReader;
+            }
+            catch (System.Data.SqlClient.SqlException e)
+            {
+                throw new Exception(e.Message);
+            }
+            finally
+            {
+                cmd.Dispose();
+                //connection.Close();
+            }
+
+        }
+        public static int ExecuteSql1(string SQLString, params SqlParameter[] myParameter)
+        {
+            using (SqlConnection connection = new SqlConnection(connectionString))
+            {
+                SqlCommand cmd = new SqlCommand(SQLString, connection);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.Parameters.AddRange(myParameter);
+
+                try
+                {
+                    connection.Open();
+                    int rows = cmd.ExecuteNonQuery();
+                    return rows;
+                }
+                catch (System.Data.SqlClient.SqlException e)
+                {
+                    WriteLog(e.Message);
+                    throw e;
+                }
+                finally
+                {
+
+                    cmd.Dispose();
+                    connection.Close();
+                }
+            }
+        }
+        /// <summary>
+        /// 浣跨敤浜嬪姟鎻愪氦甯﹀弬鏁扮殑SQL璇彞
+        /// </summary>
+        /// <param name="mainSql">涓籗QL璇彞</param>
+        /// <param name="mainparam">涓籗QL鍙傛暟</param>
+        /// <param name="detailSql">鏄庣粏SQL</param>
+        /// <param name="detailparam">鏄庣粏SQL璇彞瀵瑰簲鐨勫弬鏁版暟缁勯泦鍚�</param>
+        /// <returns>杩斿洖浜嬪姟鏄惁鎴愬姛</returns>
+        public static bool UpdateByTran(string mainSql, SqlParameter[] mainparam, string detailSql, List<SqlParameter[]> detailparam)
+        {
+            SqlConnection conn = new SqlConnection(connectionString);
+            SqlCommand comm = new SqlCommand();
+            comm.Connection = conn;
+            try
+            {
+                conn.Open();
+                comm.Transaction = conn.BeginTransaction();//寮�鍚簨鍔�
+                if (mainSql != null && mainSql.Length != 0)
+                {
+                    comm.CommandText = mainSql;
+                    if (mainparam != null)
+                        comm.Parameters.AddRange(mainparam);
+                    comm.ExecuteNonQuery();
+                }
+                if (detailparam != null)
+                {
+                    foreach (SqlParameter[] param in detailparam)
+                    {
+                        comm.CommandText = detailSql;
+                        comm.Parameters.Clear();//娓呯┖鍙傛暟
+                        comm.Parameters.AddRange(param);
+                        comm.ExecuteNonQuery();
+                    }
+                }
+                comm.Transaction.Commit();//鎻愪氦浜嬪姟
+                return true;
+            }
+            catch (Exception ex)
+            {
+                if (comm.Transaction != null)
+                {
+                    comm.Transaction.Rollback();//鍥炴粴浜嬪姟
+                }
+                WriteLog(ex.Message);
+                throw new Exception("鍦ㄨ皟鐢� public static bool UpdateByTran(string mainSql,SqlParameter[] mainparam,string detailSql,List<SqlParameter[]> detailparam)鏂规硶鏃跺嚭閿欙紝閿欒淇℃伅" + ex.Message);
+            }
+            finally
+            {
+                if (comm.Transaction != null)
+                {
+                    comm.Transaction = null;
+                }
+            }
+        }
+        #region SQL閿欒鏃ュ織璁板綍
+        /// <summary>
+        /// SQL閿欒鏃ュ織璁板綍
+        /// </summary>
+        public static void WriteLog(string loginfo)
+        {
+            FileStream fs = new FileStream("SQLHelper.Log", FileMode.Append);
+            StreamWriter sw = new StreamWriter(fs);
+            string Log = GetDBSqlDateTime() + "  閿欒淇℃伅: " + loginfo;
+            sw.WriteLine(Log);
+            sw.Close();
+            fs.Close();
+        }
+        #endregion
+        /// <summary>
+        /// 鑾峰彇鏈嶅姟鍣ㄦ椂闂�
+        /// </summary>
+        /// <returns></returns>
+        public static DateTime GetDBSqlDateTime()
+        {
+            return Convert.ToDateTime(GetSingleResult("select getdate()"));
+        }
+    }
+}
diff --git a/WebAPI.sln b/WebAPI.sln
new file mode 100644
index 0000000..67fcc42
--- /dev/null
+++ b/WebAPI.sln
@@ -0,0 +1,41 @@
+锘�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.40629.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAPI", "WebAPI\WebAPI.csproj", "{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestAPI", "WindowsFormsApp1\TestAPI.csproj", "{FFED17B5-612D-404C-A9B8-628BA6DC3257}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Debug|x86.ActiveCfg = Debug|x86
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Debug|x86.Build.0 = Debug|x86
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Release|Any CPU.Build.0 = Release|Any CPU
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Release|x86.ActiveCfg = Release|x86
+		{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}.Release|x86.Build.0 = Release|x86
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Debug|x86.ActiveCfg = Debug|x86
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Debug|x86.Build.0 = Debug|x86
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Release|x86.ActiveCfg = Release|x86
+		{FFED17B5-612D-404C-A9B8-628BA6DC3257}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {489992F1-3AD6-473D-8B4C-DBEB71452F7B}
+	EndGlobalSection
+EndGlobal
diff --git a/WebAPI/App_Start/SwaggerConfig.cs b/WebAPI/App_Start/SwaggerConfig.cs
new file mode 100644
index 0000000..2c4cfd4
--- /dev/null
+++ b/WebAPI/App_Start/SwaggerConfig.cs
@@ -0,0 +1,213 @@
+using System.Web.Http;
+using WebActivatorEx;
+using WebAPI;
+using Swashbuckle.Application;
+
+[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
+
+namespace WebAPI
+{
+    public class SwaggerConfig
+    {
+        public static void Register()
+        {
+            var thisAssembly = typeof(SwaggerConfig).Assembly;
+
+            GlobalConfiguration.Configuration 
+                .EnableSwagger(c =>
+                    {
+                        // By default, the service root url is inferred from the request used to access the docs.
+                        // However, there may be situations (e.g. proxy and load-balanced environments) where this does not
+                        // resolve correctly. You can workaround this by providing your own code to determine the root URL.
+                        //
+                        //c.RootUrl(req => GetRootUrlFromAppConfig());
+
+                        // If schemes are not explicitly provided in a Swagger 2.0 document, then the scheme used to access
+                        // the docs is taken as the default. If your API supports multiple schemes and you want to be explicit
+                        // about them, you can use the "Schemes" option as shown below.
+                        //
+                        //c.Schemes(new[] { "http", "https" });
+
+                        // Use "SingleApiVersion" to describe a single version API. Swagger 2.0 includes an "Info" object to
+                        // hold additional metadata for an API. Version and title are required but you can also provide
+                        // additional fields by chaining methods off SingleApiVersion.
+                        //
+                        c.SingleApiVersion("v1", "WebAPI");
+
+                        // If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
+                        // In this case, you must provide a lambda that tells Swashbuckle which actions should be
+                        // included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
+                        // returns an "Info" builder so you can provide additional metadata per API version.
+                        //
+                        //c.MultipleApiVersions(
+                        //    (apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
+                        //    (vc) =>
+                        //    {
+                        //        vc.Version("v2", "Swashbuckle Dummy API V2");
+                        //        vc.Version("v1", "Swashbuckle Dummy API V1");
+                        //    });
+
+                        // You can use "BasicAuth", "ApiKey" or "OAuth2" options to describe security schemes for the API.
+                        // See https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md for more details.
+                        // NOTE: These only define the schemes and need to be coupled with a corresponding "security" property
+                        // at the document or operation level to indicate which schemes are required for an operation. To do this,
+                        // you'll need to implement a custom IDocumentFilter and/or IOperationFilter to set these properties
+                        // according to your specific authorization implementation
+                        //
+                        //c.BasicAuth("basic")
+                        //    .Description("Basic HTTP Authentication");
+                        //
+                        //c.ApiKey("apiKey")
+                        //    .Description("API Key Authentication")
+                        //    .Name("apiKey")
+                        //    .In("header");
+                        //
+                        //c.OAuth2("oauth2")
+                        //    .Description("OAuth2 Implicit Grant")
+                        //    .Flow("implicit")
+                        //    .AuthorizationUrl("http://petstore.swagger.wordnik.com/api/oauth/dialog")
+                        //    //.TokenUrl("https://tempuri.org/token")
+                        //    .Scopes(scopes =>
+                        //    {
+                        //        scopes.Add("read", "Read access to protected resources");
+                        //        scopes.Add("write", "Write access to protected resources");
+                        //    });
+
+                        // Set this flag to omit descriptions for any actions decorated with the Obsolete attribute
+                        //c.IgnoreObsoleteActions();
+
+                        // Each operation be assigned one or more tags which are then used by consumers for various reasons.
+                        // For example, the swagger-ui groups operations according to the first tag of each operation.
+                        // By default, this will be controller name but you can use the "GroupActionsBy" option to
+                        // override with any value.
+                        //
+                        //c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());
+
+                        // You can also specify a custom sort order for groups (as defined by "GroupActionsBy") to dictate
+                        // the order in which operations are listed. For example, if the default grouping is in place
+                        // (controller name) and you specify a descending alphabetic sort order, then actions from a
+                        // ProductsController will be listed before those from a CustomersController. This is typically
+                        // used to customize the order of groupings in the swagger-ui.
+                        //
+                        //c.OrderActionGroupsBy(new DescendingAlphabeticComparer());
+
+                        // Swashbuckle makes a best attempt at generating Swagger compliant JSON schemas for the various types
+                        // exposed in your API. However, there may be occasions when more control of the output is needed.
+                        // This is supported through the "MapType" and "SchemaFilter" options:
+                        //
+                        // Use the "MapType" option to override the Schema generation for a specific type.
+                        // It should be noted that the resulting Schema will be placed "inline" for any applicable Operations.
+                        // While Swagger 2.0 supports inline definitions for "all" Schema types, the swagger-ui tool does not.
+                        // It expects "complex" Schemas to be defined separately and referenced. For this reason, you should only
+                        // use the "MapType" option when the resulting Schema is a primitive or array type. If you need to alter a
+                        // complex Schema, use a Schema filter.
+                        //
+                        //c.MapType<ProductType>(() => new Schema { type = "integer", format = "int32" });
+                        //
+                        // If you want to post-modify "complex" Schemas once they've been generated, across the board or for a
+                        // specific type, you can wire up one or more Schema filters.
+                        //
+                        //c.SchemaFilter<ApplySchemaVendorExtensions>();
+
+                        // Set this flag to omit schema property descriptions for any type properties decorated with the
+                        // Obsolete attribute 
+                        //c.IgnoreObsoleteProperties();
+
+                        // In a Swagger 2.0 document, complex types are typically declared globally and referenced by unique
+                        // Schema Id. By default, Swashbuckle does NOT use the full type name in Schema Ids. In most cases, this
+                        // works well because it prevents the "implementation detail" of type namespaces from leaking into your
+                        // Swagger docs and UI. However, if you have multiple types in your API with the same class name, you'll
+                        // need to opt out of this behavior to avoid Schema Id conflicts.
+                        //
+                        //c.UseFullTypeNameInSchemaIds();
+
+                        // In accordance with the built in JsonSerializer, Swashbuckle will, by default, describe enums as integers.
+                        // You can change the serializer behavior by configuring the StringToEnumConverter globally or for a given
+                        // enum type. Swashbuckle will honor this change out-of-the-box. However, if you use a different
+                        // approach to serialize enums as strings, you can also force Swashbuckle to describe them as strings.
+                        // 
+                        //c.DescribeAllEnumsAsStrings();
+
+                        // Similar to Schema filters, Swashbuckle also supports Operation and Document filters:
+                        //
+                        // Post-modify Operation descriptions once they've been generated by wiring up one or more
+                        // Operation filters.
+                        //
+                        //c.OperationFilter<AddDefaultResponse>();
+                        //
+                        // If you've defined an OAuth2 flow as described above, you could use a custom filter
+                        // to inspect some attribute on each action and infer which (if any) OAuth2 scopes are required
+                        // to execute the operation
+                        //
+                        //c.OperationFilter<AssignOAuth2SecurityRequirements>();
+
+                        // Post-modify the entire Swagger document by wiring up one or more Document filters.
+                        // This gives full control to modify the final SwaggerDocument. You should have a good understanding of
+                        // the Swagger 2.0 spec. - https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md
+                        // before using this option.
+                        //
+                        //c.DocumentFilter<ApplyDocumentVendorExtensions>();
+
+                        // If you annonate Controllers and API Types with
+                        // Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
+                        // those comments into the generated docs and UI. You can enable this by providing the path to one or
+                        // more Xml comment files.
+                        //
+                        //c.IncludeXmlComments(GetXmlCommentsPath());
+
+                        // In contrast to WebApi, Swagger 2.0 does not include the query string component when mapping a URL
+                        // to an action. As a result, Swashbuckle will raise an exception if it encounters multiple actions
+                        // with the same path (sans query string) and HTTP method. You can workaround this by providing a
+                        // custom strategy to pick a winner or merge the descriptions for the purposes of the Swagger docs 
+                        //
+                        //c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
+                    })
+                .EnableSwaggerUi(c =>
+                    {
+                        // Use the "InjectStylesheet" option to enrich the UI with one or more additional CSS stylesheets.
+                        // The file must be included in your project as an "Embedded Resource", and then the resource's
+                        // "Logical Name" is passed to the method as shown below.
+                        //
+                        //c.InjectStylesheet(containingAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testStyles1.css");
+
+                        // Use the "InjectJavaScript" option to invoke one or more custom JavaScripts after the swagger-ui
+                        // has loaded. The file must be included in your project as an "Embedded Resource", and then the resource's
+                        // "Logical Name" is passed to the method as shown above.
+                        //
+                        //c.InjectJavaScript(thisAssembly, "Swashbuckle.Dummy.SwaggerExtensions.testScript1.js");
+
+                        // The swagger-ui renders boolean data types as a dropdown. By default, it provides "true" and "false"
+                        // strings as the possible choices. You can use this option to change these to something else,
+                        // for example 0 and 1.
+                        //
+                        //c.BooleanValues(new[] { "0", "1" });
+
+                        // Use this option to control how the Operation listing is displayed.
+                        // It can be set to "None" (default), "List" (shows operations for each resource),
+                        // or "Full" (fully expanded: shows operations and their details).
+                        //
+                        //c.DocExpansion(DocExpansion.List);
+
+                        // Use the CustomAsset option to provide your own version of assets used in the swagger-ui.
+                        // It's typically used to instruct Swashbuckle to return your version instead of the default
+                        // when a request is made for "index.html". As with all custom content, the file must be included
+                        // in your project as an "Embedded Resource", and then the resource's "Logical Name" is passed to
+                        // the method as shown below.
+                        //
+                        //c.CustomAsset("index", containingAssembly, "YourWebApiProject.SwaggerExtensions.index.html");
+
+                        // If your API has multiple versions and you've applied the MultipleApiVersions setting
+                        // as described above, you can also enable a select box in the swagger-ui, that displays
+                        // a discovery URL for each version. This provides a convenient way for users to browse documentation
+                        // for different API versions.
+                        //
+                        //c.EnableDiscoveryUrlSelector();
+
+                        // If your API supports the OAuth2 Implicit flow, and you've described it correctly, according to
+                        // the Swagger 2.0 specification, you can enable UI support as shown below.
+                        //
+                        //c.EnableOAuth2Support("test-client-id", "test-realm", "Swagger UI");
+                    });
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/App_Start/WebApiConfig.cs b/WebAPI/App_Start/WebApiConfig.cs
new file mode 100644
index 0000000..059fbdc
--- /dev/null
+++ b/WebAPI/App_Start/WebApiConfig.cs
@@ -0,0 +1,30 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web.Http;
+
+namespace WebAPI
+{
+    public static class WebApiConfig
+    {
+        public static void Register(HttpConfiguration config)
+        {
+            // Web API 閰嶇疆鍜屾湇鍔�
+            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
+            // Web API 璺敱
+            config.MapHttpAttributeRoutes();
+
+            config.Routes.MapHttpRoute(
+                name: "DefaultApi",
+                routeTemplate: "api/{controller}/{id}",
+                defaults: new { id = RouteParameter.Optional }
+            );
+            //鑷畾涔夎矾鐢憋細鍖归厤鍒癮ction
+            config.Routes.MapHttpRoute(
+                name: "ActionApi",
+                routeTemplate: "actionapi/{controller}/{action}/{id}",
+                defaults: new { id = RouteParameter.Optional }
+            );
+        }
+    }
+}
diff --git a/WebAPI/BLL/WebServer.cs b/WebAPI/BLL/WebServer.cs
new file mode 100644
index 0000000..e209cbb
--- /dev/null
+++ b/WebAPI/BLL/WebServer.cs
@@ -0,0 +1,113 @@
+锘縰sing DAL;
+using Kingdee.BOS.WebApi.Client;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Web;
+
+
+namespace WebAPI.BLL
+{
+    public class WebServer
+    {
+        SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+
+        #region  鍩虹璧勬枡
+        /// <summary>
+        /// 鑾峰彇浠撳簱鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetWarehouseList(string sWhere, ref string sErr)
+        {
+
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_Warehouse " + sWhere, "h_v_IF_Warehouse");
+            //DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View();
+            return ds;
+        }
+        /// <summary>
+        /// 鑾峰彇浠撲綅鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetStockPlaceList(string sWhere, ref string sErr)
+        {
+            
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_StockPlace " + sWhere, "h_v_IF_StockPlace");
+            //DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View();
+            return ds;
+        }
+        /// <summary>
+        /// 鑾峰彇閮ㄩ棬鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetDepartmentList(string sWhere, ref string sErr)
+        {
+            
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_Department " + sWhere, "h_v_IF_Department");
+            //DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View();
+            return ds;
+        }
+        /// <summary>
+        /// 鑱屽憳鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetEmployeeList(string sWhere, ref string sErr)
+        {
+           
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_Emp " + sWhere, "h_v_IF_Emp");
+            //DAL.ClsIF_Employee_View dal = new DAL.ClsIF_Employee_View();
+            return ds;
+        }
+        /// <summary>
+        /// 渚涘簲鍟嗗垪琛�
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetSupplierList(string sWhere, ref string sErr)
+        {
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_Supplier " + sWhere, "h_v_IF_Supplier");
+            //DAL.ClsIF_Supplier_View dal = new DAL.ClsIF_Supplier_View();
+            return ds;
+        }
+        /// <summary>
+        /// 瀹㈡埛鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetCustomerList(string sWhere, ref string sErr)
+        {
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_Customer " + sWhere, "h_v_IF_Customer");
+            //DAL.ClsIF_Customer_View dal = new DAL.ClsIF_Customer_View();
+            return ds;
+        }
+        #endregion
+        /// <summary>
+        /// 鎵撳嵃妯℃澘鍒楄〃
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <param name="sErr"></param>
+        /// <returns></returns>
+        public DataSet GetOpenTmpList(string sWhere, ref string sErr)
+        {
+            DataSet ds = new DataSet();
+            ds = oCn.RunProcReturn("select * from h_v_IF_OpenTmpList " + sWhere, "h_v_IF_OpenTmpList");
+            return ds;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Code/Common.cs b/WebAPI/Code/Common.cs
new file mode 100644
index 0000000..2ddbfe4
--- /dev/null
+++ b/WebAPI/Code/Common.cs
@@ -0,0 +1,127 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Web;
+
+/// <summary>
+/// Common 鐨勬憳瑕佽鏄�
+/// </summary>
+public class Common
+{
+	public Common()
+	{
+		//
+		// TODO: 鍦ㄦ澶勬坊鍔犳瀯閫犲嚱鏁伴�昏緫
+		//
+	}
+
+    public static string DataTableToJSON(DataTable dt)
+    {
+        try
+        {
+            string rowsjson = JsonConvert.SerializeObject(dt, new DataTableConverter());
+            string json = @"{""Rows"":" + rowsjson + @",""Total"":""" + dt.Rows.Count.ToString() + @"""}";
+            return json;
+        }
+        catch (Exception err)
+        {
+            return "{Rows:[],Total:0}";
+        }
+    }
+
+    public static string DataTableToJSON(DataTable dt,Int64 HRows)
+    {
+        try
+        {
+            string rowsjson = JsonConvert.SerializeObject(dt, new DataTableConverter());
+            string json = @"{""Rows"":" + rowsjson + @",""Total"":""" + HRows.ToString() + @"""}";
+            return json;
+        }
+        catch (Exception err)
+        {
+            return "{Rows:[],Total:0}";
+        }
+    }
+
+    public static Int64 GetRowTotal(string ViewName,string sWhere,ref string sErr)
+    {
+        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+        DataSet dsTotal;
+        try
+        {
+            Int64 RowTotal = 0;
+            dsTotal = oCn.RunProcReturn("select count(1) HRows from " + ViewName + " " + sWhere + " ", "gy_czygl");
+            if (dsTotal == null || dsTotal.Tables[0].Rows.Count == 0)
+            {
+                RowTotal = 0;
+            }
+            else
+            {
+                RowTotal = DBUtility.ClsPub.isLong(dsTotal.Tables[0].Rows[0][0]);
+            }
+            return RowTotal;
+        }
+        catch (Exception err)
+        {
+            sErr = err.Message;
+            return 0;
+        }
+    }
+
+    /// <summary>
+    /// SQL瀛楃杞崲 鍘绘帀 鐗规畩瀛楃
+    /// </summary>
+    /// <returns></returns>
+    public static bool SQLtoChange(string OldSQL,ref string ViewSQL,ref string ProcSQL)
+    {
+        try
+        {
+            ViewSQL = OldSQL.Replace("^^", "'");
+            ViewSQL = ViewSQL.Replace("^*", "%");
+            ///////////////////////////
+            ProcSQL = OldSQL.Replace("^^", "''");
+            ProcSQL = ProcSQL.Replace("^*", "%");
+            return true;
+        }
+        catch (Exception e)
+        {
+            return false;
+        }
+    }
+
+    public static string GetSession()
+    {
+        try
+        {
+            string s = System.Web.HttpContext.Current.Session["HUserName"].ToString();
+            return s;
+        }
+        catch (Exception e)
+        {
+            return e.Message;
+        }
+    }
+
+    public static bool HasSession()
+    {
+        try
+        {
+            string s = System.Web.HttpContext.Current.Session["HUserName"].ToString();
+            if (s.Trim().Length == 0)
+            {
+                return false;
+            }
+            else
+            {
+                return true;
+            }
+        }
+        catch (Exception e)
+        {
+            return false;
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Code/Test2.cs b/WebAPI/Code/Test2.cs
new file mode 100644
index 0000000..4eaabd0
--- /dev/null
+++ b/WebAPI/Code/Test2.cs
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Code
+{
+    public class Test2
+    {
+        public int SOrderid;
+        public long HMainid;
+        public long HSupid;
+        public string HDate;
+        public string HMaterNumber;
+        public string HMaterName;
+        public string HMaterModel;
+        public string HUnitName;
+        public long HQty;
+        public long HPrice;
+        public long HMoney;
+        public string HMTONO;
+        public string HDate2;
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Code/TestDAL.cs b/WebAPI/Code/TestDAL.cs
new file mode 100644
index 0000000..be37466
--- /dev/null
+++ b/WebAPI/Code/TestDAL.cs
@@ -0,0 +1,78 @@
+锘縰sing SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Code
+{
+    public class TestDAL : DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsCg_POInStockBillMain omodel = new Model.ClsCg_POInStockBillMain();
+        public List<Model.ClsCg_POInStockBillSub> DetailColl = new List<Model.ClsCg_POInStockBillSub>();
+        public override bool AddBill(ref string sReturn)
+        {
+            try
+            {
+                //寰楀埌mainid
+                omodel.HInterID = DBUtility.ClsPub.CreateBillID("1103", ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
+                oCn.BeginTran();
+                //涓昏〃
+                oCn.RunProc("Insert Into Cg_POInStockBillMain     " +
+                        "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
+                        ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+                        ",HAddress,HSupID,HCurID,HWHID,HExRate" +
+                        ",HEmpID,HManagerID,HDeptID,HExplanation,HInnerBillNo,HMainSourceBillType,HMainSourceBillNo,HMainSourceEntryID,HMainSourceInterID" +
+                        ",HBillStatus,HCheckItemNowID,HCheckItemNextID,HCheckFlowID,HBacker,HBackDate) " +
+                        " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
+                        ", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + DBUtility.ClsPub.CurUserName + "',getdate()" +
+                        ",'" + omodel.HAddress + "'," + omodel.HSupID.ToString() + "," + omodel.HCurID.ToString() + "," + omodel.HWHID.ToString() + "," + omodel.HExRate.ToString() +
+                        ", " + omodel.HEmpID.ToString() + "," + omodel.HManagerID.ToString() + "," + omodel.HDeptID.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HInnerBillNo + "','" + omodel.HMainSourceBillType + "','" + omodel.HMainSourceBillNo + "'," + omodel.HMainSourceInterID + "," + omodel.HMainSourceEntryID +
+                        "," + omodel.HBillStatus + "," + omodel.HCheckItemNowID + "," + omodel.HCheckItemNextID + "," + omodel.HCheckFlowID + ",'','" + omodel.HBackDate + "') ");
+                //鎻掑叆瀛愯〃        
+                foreach (Model.ClsCg_POInStockBillSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into Cg_POInStockBillSub " +
+                      " (HInterID,HEntryID,HMaterID,HUnitID" +
+                      ",HDate,HQty,HCheckQty,HPassQty,HBadQty,HPrice" +
+                      ",HMoney,HWHID,HStatus,HSPID,HCloseMan,HEntryCloseDate" +
+                      ",HCloseType,HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
+                      ",HPOOrderInterID,HPOOrderEntryID,HPOOrderBillNo,HRelationQty,HRelationMoney" +
+                      ",HPropertyID,HSecUnitID,HSecUnitRate,HTaxPrice,HTaxMoney,HMainSourceInterID,HBatChNo" +
+                      ",HAuxPropID,HMTONo,HPlanMode,HERPInterID,HERPEntryID,HReturnedQty,HDetailID) values("
+                      + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + "," + oSub.HMaterID + "," + oSub.HUnitID +
+                      ",'" + oSub.HDate.ToString() + "'," + oSub.HQty + "," + oSub.HCheckQty + "," + oSub.HPassQty + "," + oSub.HBadQty.ToString() + "," + oSub.HPrice +
+                      "," + oSub.HMoney + "," + oSub.HWHID + "," + oSub.HStatus + "," + oSub.HSPID + ",'','" + oSub.HEntryCloseDate.ToString() +
+                      "',0,''," + oSub.HSourceInterID + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo.ToString() + "','" + oSub.HSourceBillType.ToString() +
+                      "'," + oSub.HPOOrderInterID + ","+ oSub.HPOOrderEntryID + ",'" + oSub.HPOOrderBillNo.ToString() + "'," + oSub.HRelationQty + "," + oSub.HRelationMoney +
+                      "," + oSub.HPropertyID + ",0," + oSub.HSecUnitRate + "," + oSub.HTaxPrice + "," + oSub.HTaxMoney + "," + oSub.HMainSourceInterID + ",'" + oSub.HBatChNo +
+                      "'," + oSub.HAuxPropID + ",'" + oSub.HMTONo.ToString() + "'," + oSub.HPlanMode + "," + oSub.HERPInterID + "," + oSub.HERPEntryID + "," + oSub.HReturnedQty + "," + oSub.HDetailID +
+                      ") ");
+                }
+                //
+                //foreach (Model.ClsCg_POInStockBillSub oSub in DetailColl)
+                //{
+                //    Ds = oCn.RunProcReturn("exec h_p_Cg_POInStockBill_Qty " + oSub.HICMOInterID, "");
+                //    if (Ds.Tables[0].Rows.Count == 0)
+                //        return;
+                //    if (DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBool"]) == "Y")
+                //    {
+                //        sReturn = "姹囨姤鏁伴噺瓒呰繃璁″垝鏁伴噺锛佷笉鍏佽淇濆瓨";
+                //        return false;
+                //    }
+                //}
+                //
+                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/BarCodeController.cs b/WebAPI/Controllers/BarCodeController.cs
new file mode 100644
index 0000000..6b3e18b
--- /dev/null
+++ b/WebAPI/Controllers/BarCodeController.cs
@@ -0,0 +1,1167 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using System.Web.Script.Serialization;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+
+    public class BarCodeController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+
+        public T ScriptDeserialize<T>(string strJson)
+        {
+            JavaScriptSerializer js = new JavaScriptSerializer();
+            return js.Deserialize<T>(strJson);
+
+        }
+
+        /// <summary>
+        /// 鏇存柊鎵撳嵃娆℃暟
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        [Route("UpdateBarcodePrintQty")]
+        [HttpPost]
+        public object UpdateBarcodePrintQty([FromBody]JObject msg)
+        {
+            var _value = msg["msg"].ToString();
+            string msg1 = _value.ToString();
+            try
+            {
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                oCn.RunProc("exec H_p_SRM_BarCodeBill_PrintQty '" + msg1 + "'");
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏇存柊鎵撳嵃娆℃暟鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏇存柊鎵撳嵃娆℃暟澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+        [Route("GetBarcodeSaveBillVarieties")]
+        [HttpPost]
+        /// <summary>
+        /// 鐢熸垚鏉$爜锛堝搧绉嶇爜锛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        public object GetBarcodeSaveBill_Varieties([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 UserName = "";            
+            ListModels oListModels = new ListModels();
+            try
+            {
+                List<Model.ClsCg_POInStockBillMain> lsmain = new List<Model.ClsCg_POInStockBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_POInStockMain(msg2);
+                foreach (Model.ClsCg_POInStockBillMain oItem in lsmain)
+                {
+                    UserName = oItem.HMaker;
+                }
+                DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill();
+
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                List<Model.ClsGy_MaterialList_WMS_Model> ls = new List<Model.ClsGy_MaterialList_WMS_Model>();
+                List<Model.ClsGy_BarCodeBill_WMS_Model> ls2 = new List<Model.ClsGy_BarCodeBill_WMS_Model>();
+                ls = oListModels.getObjectByJson_MaterialList(msg3);
+                foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+                {
+                    if (oBill.CheckBarCode(oItemSub.HSourceInterID, oItemSub.HSourceEntryID) == false)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "宸插瓨鍦ㄦ潯鐮侊紝涓嶅厑璁搁噸澶嶇敓鎴愶紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (msg2 != string.Empty)
+                    {
+                        if (oItemSub.HBQty == 0 || oItemSub.HMinQty == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鏉$爜寮犳暟涓嶈兘涓�0锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo);
+                string TM = "";             //鏉$爜
+                string HNumber = "";        //鐗╂枡浠g爜
+                double HSumQty = 0;         //浜у搧鏁伴噺
+                double HMinQty = 0;         //鏈�灏忓寘瑁呮暟
+                int HBQty = 0;              //绠辨暟
+                double HQty = 0;            //鏁伴噺
+                string HMTONO = "";
+                string WeiShu = ""; //灏炬暟
+                //string sKFDate = DateTime.Now.ToString("yyyy-MM-dd");
+                DataSet Ds;
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+                {
+                    if (ClsPub.isLong(oItemSub.HMaterID) != 0)
+                    {
+                        HNumber = oItemSub.HMaterID.ToString();
+                        HMTONO=ClsPub.isStrNull(oItemSub.HMTONO);
+                        //
+
+                        HQty = ClsPub.isDoule(oItemSub.HQty);
+                        HBQty = ClsPub.isInt(oItemSub.HBQty);
+                        HMinQty = ClsPub.isDoule(oItemSub.HMinQty);
+                        HSumQty = ClsPub.isDoule(oItemSub.HQty);
+                        for (int i = 0; i < HBQty; i++)
+                        {
+                            //==================================
+                            TM = "SRM" + HNumber + ";" + HMTONO;
+                            if (HSumQty - HMinQty > 0)
+                            {
+                                WeiShu = "";
+                                HSumQty = HSumQty - HMinQty;
+                            }
+                            else
+                            {
+                                if (HSumQty == HMinQty)
+                                {
+                                    WeiShu = "";
+                                }
+                                else
+                                {
+                                    WeiShu = "灏炬暟";
+                                }
+                                HMinQty = HSumQty;
+                            }
+
+                            Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model();
+
+                            bar.HBarCode = TM;
+                            bar.HMaterID = oItemSub.HMaterID;
+                            bar.HUnitID = oItemSub.HUnitID;
+                            bar.HQty = HMinQty;
+                            bar.HEndQty = WeiShu;
+                            bar.HBatchNo = oItemSub.HBatchNo;
+                            bar.HKFDate = oItemSub.HKFDate;
+                            bar.HKFDQDate = oItemSub.HKFDQDate;
+                            bar.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub.HKFPeriod);
+                            bar.HSourceBillNo = oItemSub.HSourceBillNo;
+                            bar.HSourceInterID = oItemSub.HSourceInterID;
+                            bar.HSourceEntryID = oItemSub.HSourceEntryID;
+                            bar.HSourceBillType = oItemSub.HSourceBillType;
+                            bar.HSupID = oItemSub.HSupID;
+                            bar.HMinQty = oItemSub.HMinQty;
+                            bar.HMTONO = oItemSub.HMTONO;
+
+                            ls2.Add(bar);
+                        }
+                    }
+                }
+
+                string HBarCode = "";
+                string HBarCodeType = "";
+                Int64 HMaterID = 0;
+                Int64 HUnitID = 0;
+                double HQty2 = 0;
+                string HBatchNo = "";
+                Int64 HSupID = 0;
+                Int64 HGroupID = 0;
+                Int64 HPrintQty = 0;
+                Int64 HSourceInterID = 0;
+                Int64 HSourceEntryID = 0;
+                string HSourceBillNo = "";
+                string HSourceBillType = "";
+                Int64 HKFPeriod = 0;
+                string HKFDate = "";
+                string HKFDQDate = "";
+                string HWei = "";
+                string HMTONO2 = "";
+                oCn.BeginTran();
+                foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2)
+                {
+                    HBarCode = ClsPub.isStrNull(oItemSub.HBarCode);
+                    HMTONO2 = ClsPub.isStrNull(oItemSub.HMTONO);
+                    HBarCodeType = "鍝佺鐮�";
+                    HMaterID = ClsPub.isLong(oItemSub.HMaterID);
+                    HUnitID = ClsPub.isLong(oItemSub.HUnitID);
+                    HQty2 = ClsPub.isDoule(oItemSub.HQty);
+                    HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo);
+                    HSupID = ClsPub.isInt(oItemSub.HSupID);
+                    HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod);
+                    HKFDate = ClsPub.isStrNull(oItemSub.HKFDate);
+                    HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate);
+                    HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID);
+                    HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID);
+                    HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo);
+                    HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType);
+                    HWei = ClsPub.isStrNull(oItemSub.HEndQty);
+                    oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" +
+                                ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" +
+                                ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " +
+                                ") values ("
+                                + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate
+                                + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1"
+                                + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO2 + "')");
+                    //oBill.SaveBarCode(DBUtility.ClsPub.isLong(oItemSub.HMaterID), DBUtility.ClsPub.isLong(oItemSub.HUnitID), DBUtility.ClsPub.isLong(oItemSub.HSupID), DBUtility.ClsPub.isLong(oItemSub.HBQty)
+                    //, DBUtility.ClsPub.isLong(oItemSub.HMinQty), DBUtility.ClsPub.isLong(oItemSub.HSourceInterID), DBUtility.ClsPub.isLong(oItemSub.HSourceEntryID)
+                    //, DBUtility.ClsPub.isStrNull(oItemSub.HSourceBillNo), DBUtility.ClsPub.isStrNull(oItemSub.HSourceBillType), DBUtility.ClsPub.isStrNull(oItemSub.HMTONO), DBUtility.ClsPub.isLong(oItemSub.HQty));
+                }
+                //鏆傛椂鍙洖濉叧鑱旀暟閲�
+                oCn.RunProc("exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString());
+                oCn.Commit();
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+
+            objJsonResult.code = "0";
+            objJsonResult.count = 1;
+            objJsonResult.Message = "鐢熸垚鏉$爜鎴愬姛锛�";
+            WebAPIController.Add_Log("鏉$爜涓嬫帹", UserName, "鐢熸垚鏉$爜");
+            objJsonResult.data = null;
+            return objJsonResult;
+        }
+
+        [Route("GetBarcodeSaveBillOnly")]
+        [HttpPost]
+        /// <summary>
+        /// 鐢熸垚鏉$爜鍞竴鐮�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        public object GetBarcodeSaveBill_Only([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 UserName = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                List<Model.ClsCg_POInStockBillMain> lsmain = new List<Model.ClsCg_POInStockBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_POInStockMain(msg2);
+                foreach (Model.ClsCg_POInStockBillMain oItem in lsmain)
+                {
+                    UserName = oItem.HMaker;
+                }
+                DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill();
+
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+
+                List<Model.ClsGy_MaterialList_WMS_Model> ls = new List<Model.ClsGy_MaterialList_WMS_Model>();
+                List<Model.ClsGy_BarCodeBill_WMS_Model> ls2 = new List<Model.ClsGy_BarCodeBill_WMS_Model>();
+                ls = oListModels.getObjectByJson_MaterialList(msg3);
+
+                foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+                {
+                    if (oBill.CheckBarCode(oItemSub.HSourceInterID, oItemSub.HSourceEntryID) == false)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "宸插瓨鍦ㄦ潯鐮侊紝涓嶅厑璁搁噸澶嶇敓鎴愶紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (msg2 != string.Empty)
+                    {
+                        if (oItemSub.HBQty == 0 || oItemSub.HMinQty == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鏉$爜寮犳暟涓嶈兘涓�0锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                //int i = 1;
+                long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo);    
+                int LSHlen = 6;             //娴佹按鍙烽暱搴�
+                int SumLen = 10;            //鎬婚暱搴�
+                string TM = "";             //鏉$爜
+                string HNumber = "";        //鐗╂枡浠g爜
+                double HSumQty = 0;         //浜у搧鏁伴噺
+                double HMinQty = 0;         //鏈�灏忓寘瑁呮暟
+                int HBQty = 0;              //绠辨暟
+                double HQty = 0;            //鏁伴噺
+                int LSH = 0;                //娴佹按鍙�
+                string LSH2 = "";           //娴佹按鍙疯浆鎹㈡垚瀛楃
+                string sDate = "";            //鏃ユ湡
+                string sYear = "";          //骞�
+                string sPeriod = "";        //鏈�
+                string sDay = "";            //鏃�
+                int k = 0;
+                string WeiShu = ""; //灏炬暟
+                //string sKFDate = DateTime.Now.ToString("yyyy-MM-dd");
+                DataSet Ds;
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH");
+                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+                {
+                    if (ClsPub.isLong(oItemSub.HMaterID) != 0)
+                    {
+                        HNumber = oItemSub.HMaterID.ToString();
+                        //
+
+                        HQty =ClsPub.isDoule(oItemSub.HQty);
+                        HBQty =  ClsPub.isInt(oItemSub.HBQty);
+                        HMinQty = ClsPub.isDoule(oItemSub.HMinQty);
+                        HSumQty = ClsPub.isDoule(oItemSub.HQty);
+                        for (int i = 0; i < HBQty; i++)
+                        {
+                            LSH = LSH + 1;
+                            LSH2 = LSH.ToString();
+                            while (LSH2.Length < LSHlen)  //濡傛灉娴佹按鍙峰皬浜�6浣嶆暟鍓嶉潰琛�0
+                            {
+                                LSH2 = "0" + LSH2;
+                            }
+                            sDate = ClsPub.GetServerDate(0);
+                            sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2);
+                            sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString();
+                            sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
+                            sDay = "0" + ClsPub.isDate(sDate).Day.ToString();
+                            sDay = sDay.Substring(sDay.Length - 2, 2);
+                            //==================================
+                            TM = HNumber + sYear + sPeriod + sDay + LSH2;
+                            while (TM.Length < SumLen)  //濡傛灉鏉$爜灏忎簬12浣嶆暟鍓嶉潰琛�0
+                            {
+                                TM = "0" + TM;
+                            }
+                           TM = "SRM" + TM; 
+                            //TM = "B" + TM;
+                            if (HSumQty - HMinQty > 0)
+                            {
+                                WeiShu = "";
+                                HSumQty = HSumQty - HMinQty;
+                            }
+                            else
+                            {
+                                if (HSumQty == HMinQty)
+                                {
+                                    WeiShu = "";
+                                }
+                                else
+                                {
+                                    WeiShu = "灏炬暟";
+                                }
+                                HMinQty = HSumQty;
+                            }
+
+
+                            Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model();
+
+                            bar.HBarCode = TM;
+                            bar.HMaterID = oItemSub.HMaterID;
+                            bar.HUnitID = oItemSub.HUnitID;
+                            bar.HQty = HMinQty;
+                            bar.HEndQty = WeiShu;
+                            bar.HBatchNo = oItemSub.HBatchNo;
+                            bar.HKFDate = oItemSub.HKFDate;
+                            bar.HKFDQDate = oItemSub.HKFDQDate;
+                            bar.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub.HKFPeriod);
+                            bar.HSourceBillNo = oItemSub.HSourceBillNo;
+                            bar.HSourceInterID = oItemSub.HSourceInterID;
+                            bar.HSourceEntryID = oItemSub.HSourceEntryID;
+                            bar.HSourceBillType = oItemSub.HSourceBillType;
+                            bar.HSupID = oItemSub.HSupID;
+                            bar.HMinQty = oItemSub.HMinQty;
+                            bar.HMTONO = oItemSub.HMTONO;
+                            
+                            ls2.Add(bar);
+                        }
+                    }
+                }
+                string HBarCode = "";
+                string HBarCodeType = "";
+                Int64 HMaterID = 0;
+                Int64 HUnitID = 0;
+                double HQty2 = 0;
+                string HBatchNo = "";
+                Int64 HSupID = 0;
+                Int64 HGroupID = 0;
+                Int64 HPrintQty = 0;
+                Int64 HSourceInterID = 0;
+                Int64 HSourceEntryID = 0;
+                string HSourceBillNo = "";
+                string HSourceBillType = "";
+                Int64 HKFPeriod = 0;
+                string HKFDate = "";
+                string HKFDQDate = "";
+                string HWei = "";
+                string HMTONO = "";
+                oCn.BeginTran();
+                foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2)
+                {
+                    if (ClsPub.isLong(oItemSub2.HMaterID) != 0)
+                    {
+                        HBarCode = oItemSub2.HBarCode;
+                        HMTONO = oItemSub2.HMTONO;
+                        HBarCodeType = "鍞竴鐮�";
+                        HMaterID = ClsPub.isLong(oItemSub2.HMaterID);
+                        HUnitID = ClsPub.isLong(oItemSub2.HUnitID);
+                        HQty2 = ClsPub.isDoule(oItemSub2.HQty);
+                        HBatchNo = ClsPub.isStrNull(oItemSub2.HBatchNo);
+                        HSupID = ClsPub.isInt(oItemSub2.HSupID);
+                        HKFPeriod = ClsPub.isInt(oItemSub2.HKFPeriod);
+                        HKFDate = ClsPub.isStrNull(oItemSub2.HKFDate);
+                        HKFDQDate = ClsPub.isStrNull(oItemSub2.HKFDQDate);
+                        HSourceInterID = ClsPub.isLong(oItemSub2.HSourceInterID);
+                        HSourceEntryID = ClsPub.isLong(oItemSub2.HSourceEntryID);
+                        HSourceBillNo = ClsPub.isStrNull(oItemSub2.HSourceBillNo);
+                        HSourceBillType = ClsPub.isStrNull(oItemSub2.HSourceBillType);
+                        HWei = ClsPub.isStrNull(oItemSub2.HEndQty);
+                        oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" +
+                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" +
+                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " +
+                                    ") values ("
+                                    + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate
+                                    + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1"
+                                    + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')");
+                        oCn.RunProc("exec setLSH '" + DateTime.Today + "'");
+                    }
+                }
+                //鏆傛椂鍙洖濉叧鑱旀暟閲�
+                oCn.RunProc("exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString());
+                
+                oCn.Commit();
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鐢熸垚鏉$爜鎴愬姛锛�";
+                WebAPIController.Add_Log("鏉$爜涓嬫帹", UserName, "鐢熸垚鏉$爜");
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+
+        [Route("GetBarcodeSaveBillBox")]
+        [HttpPost]
+        /// <summary>
+        /// 鐢熸垚鏉$爜 鍐呭绠�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        public object GetBarcodeSaveBill_Box([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 UserName = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                List<Model.ClsCg_POInStockBillMain> lsmain = new List<Model.ClsCg_POInStockBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_POInStockMain(msg2);
+                foreach (Model.ClsCg_POInStockBillMain oItem in lsmain)
+                {
+                    UserName = oItem.HMaker;
+                }
+                DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill();
+
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+
+                List<Model.ClsGy_MaterialList_WMS_Model> ls = new List<Model.ClsGy_MaterialList_WMS_Model>();
+                List<Model.ClsGy_BarCodeBill_WMS_Model> ls2 = new List<Model.ClsGy_BarCodeBill_WMS_Model>();
+                List<Model.ClsGy_BarCodeBill_WMS_Model> ls3 = new List<Model.ClsGy_BarCodeBill_WMS_Model>();
+                ls = oListModels.getObjectByJson_MaterialList(msg3);
+
+                foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+                {
+                    if (oBill.CheckBarCode(oItemSub.HSourceInterID, oItemSub.HSourceEntryID) == false)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "宸插瓨鍦ㄦ潯鐮侊紝涓嶅厑璁搁噸澶嶇敓鎴愶紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (msg2 != string.Empty)
+                    {
+                        if (oItemSub.HBQty == 0 || oItemSub.HMinQty == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍐呯鍖呰鏁颁笉鑳戒负0锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (oItemSub.HWBQty == 0 || oItemSub.HWXQty == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "澶栫鍖呰鏁颁笉鑳戒负0锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo);
+            int LSHlen = 6;             //娴佹按鍙烽暱搴�
+            int SumLen = 10;            //鎬婚暱搴�
+            string TM = "";             //鏉$爜
+            string HNumber = "";        //鐗╂枡浠g爜
+            double HSumQty = 0;         //浜у搧鏁伴噺
+            double HMinQty = 0;         //鏈�灏忓寘瑁呮暟
+            int HBQty = 0;              //绠辨暟
+            double HQty = 0;            //鏁伴噺
+            int LSH = 0;                //娴佹按鍙�
+            string LSH2 = "";           //娴佹按鍙疯浆鎹㈡垚瀛楃
+            string sDate = "";            //鏃ユ湡
+            string sYear = "";          //骞�
+            string sPeriod = "";        //鏈�
+            string sDay = "";            //鏃�
+            string WeiShu = ""; //灏炬暟
+            DataSet Ds;
+            SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+            Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH");
+            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+             foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls)
+            {
+                if (ClsPub.isLong(oItemSub.HMaterID) != 0)
+                {
+                    HNumber = oItemSub.HMaterID.ToString();
+                    //HNumber = HNumber.Replace(".", "");
+                    //
+
+                        //HQty = Math.Ceiling(HBQty + ClsPub.isDoule(oItemSub.HWBQty));
+
+                    HQty = ClsPub.isDoule(oItemSub.HWBQty);
+                    HBQty = ClsPub.isInt(oItemSub.HWBQty);
+                    HMinQty = ClsPub.isDoule(oItemSub.HWXQty);
+                    HSumQty = ClsPub.isDoule(oItemSub.HQty);  //HWXQtyCol
+                    for (int i = 0; i < HBQty; i++)
+                    {
+                        LSH = LSH + 1;
+                        LSH2 = LSH.ToString();
+                        while (LSH2.Length < LSHlen)  //濡傛灉娴佹按鍙峰皬浜�6浣嶆暟鍓嶉潰琛�0
+                        {
+                            LSH2 = "0" + LSH2;
+                        }
+                        sDate = ClsPub.GetServerDate(0);
+                        sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2);
+                        sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString();
+                        sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
+                        sDay = "0" + ClsPub.isDate(sDate).Day.ToString();
+                        sDay = sDay.Substring(sDay.Length - 2, 2);
+                        //==================================
+                        TM = HNumber + sYear + sPeriod + sDay + LSH2;
+                        while (TM.Length < SumLen)  //濡傛灉鏉$爜灏忎簬12浣嶆暟鍓嶉潰琛�0
+                        {
+                            TM = "0" + TM;
+                        }
+                            //TM = "B" + TM;
+                            TM = "SRM" + "B" + TM;
+                        
+                            if (HSumQty - HMinQty > 0)
+                            {
+                                WeiShu = "";
+                                HSumQty = HSumQty - HMinQty;
+                            }
+                            else
+                            {
+                                if (HSumQty == HMinQty)
+                                {
+                                    WeiShu = "";
+                                }
+                                else
+                                {
+                                    WeiShu = "灏炬暟";
+                                }
+                                HMinQty = HSumQty;
+                            }
+ 
+                        Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model();
+                        bar.HBarCode = TM;
+                        bar.HMaterID = oItemSub.HMaterID;
+                        //bar.HMaterNumber = oItemSub.HMaterNumber;
+                        //bar.HMaterName = oItemSub.HMaterName;
+                        //bar.HMaterModel = oItemSub.HMaterModel;
+                      //  bar.HModel2 = oItemSub.HModel;
+
+                        bar.HUnitID = oItemSub.HUnitID;
+                        //bar.HUnitNumber2 = oItemSub.HUnitNumber;
+                        //bar.HUnitName2 = oItemSub.HUnitName;
+
+                        bar.HQty = HMinQty;
+                        bar.HBatchNo = oItemSub.HBatchNo; 
+                        bar.HKFDate = oItemSub.HKFDate;
+                        bar.HKFPeriod = oItemSub.HKFPeriod;
+                        bar.HKFDQDate = oItemSub.HKFDQDate;
+                        bar.HSourceInterID = oItemSub.HSourceInterID;
+                        bar.HSourceEntryID = oItemSub.HSourceEntryID;
+                        bar.HSourceBillNo = oItemSub.HSourceBillNo;
+                        bar.HSourceBillType = oItemSub.HSourceBillType;
+                        bar.HMinQty = oItemSub.HMinQty;
+                        bar.HSupID = oItemSub.HSupID;
+                        bar.HEndQty = WeiShu;
+                        bar.HMTONO = oItemSub.HMTONO;
+                        ls2.Add(bar);
+                    }
+                }
+            }
+            foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2)
+            {
+                if (ClsPub.isLong(oItemSub2.HMaterID) != 0)
+                {
+                    long sMaterID = ClsPub.isLong(oItemSub2.HMaterID);
+                    Ds = oCn.RunProcReturn("exec GetLSH " + sMaterID.ToString(), "GetLSH");
+                    string WeiShu1 = ""; //灏炬暟
+                    int SumLen2 = 4;
+                    string TM2 = "";
+                    double HWXQty = 0;
+     
+                    LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1;
+                    //
+                    HNumber = oItemSub2.HMaterID.ToString();
+                    //HMinQty = ClsPub.isDoule(oItemSub2.HMinQtyCol2].Value);
+                    HWXQty = ClsPub.isDoule(oItemSub2.HMinQty);
+                    HSumQty = ClsPub.isDoule(oItemSub2.HQty);
+                    HBQty = ClsPub.isInt(Math.Ceiling(HSumQty / HWXQty));
+                    double NXTMQTY = 0;
+                    for (int i = 0; i < HBQty; i++)
+                    {
+                        if (HSumQty <= 0 || HWXQty <= 0)
+                        {
+                            break;
+                        }
+                        if (HSumQty - HWXQty > 0)
+                        {
+                            WeiShu1 = "";
+                            NXTMQTY = HWXQty;
+                            HSumQty = HSumQty - HWXQty;
+                        }
+                        else
+                        {
+                            if (HSumQty == HWXQty)
+                            {
+                                WeiShu1 = "";
+                            }
+                            else
+                            {
+                                WeiShu1 = "灏炬暟";
+                            }
+                            NXTMQTY = HSumQty;  //HWXQty
+                            HWXQty = HSumQty;
+                            HSumQty = 0;
+                        }
+                        sDate = ClsPub.GetServerDate(0);
+                        sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2);
+                        sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString();
+                        sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
+                        sDay = "0" + ClsPub.isDate(sDate).Day.ToString();
+                        sDay = sDay.Substring(sDay.Length - 2, 2);
+                        //
+                     //   TM = HNumber + sYear + sPeriod + sDay; //鏉$爜
+                        //
+                        Model.ClsGy_BarCodeBill_WMS_Model bar2 = new Model.ClsGy_BarCodeBill_WMS_Model();
+                        TM2 = (i + 1).ToString();
+                        while (TM2.Length < SumLen2)  //濡傛灉鏉$爜灏忎簬12浣嶆暟鍓嶉潰琛�0
+                        {
+                            TM2 = "0" + TM2;
+                        }                        
+                        bar2.HMaterID = oItemSub2.HMaterID;
+
+
+                        bar2.HBarCode = oItemSub2.HBarCode + "-" + TM2;
+
+                        bar2.HUnitID = oItemSub2.HUnitID;
+                        bar2.HQty = HWXQty;
+                        bar2.HBatchNo = DBUtility.ClsPub.isStrNull(oItemSub2.HBatchNo);
+                        bar2.HKFDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDate);
+                        bar2.HKFDQDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDQDate);
+                        bar2.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub2.HKFPeriod);
+                        bar2.HSourceInterID = oItemSub2.HSourceInterID;
+                        bar2.HSourceEntryID = oItemSub2.HSourceEntryID;
+                        bar2.HSourceBillNo = oItemSub2.HSourceBillNo;
+                        bar2.HSourceBillType = oItemSub2.HSourceBillType;
+                        bar2.HSupID = oItemSub2.HSupID;
+                        bar2.HEndQty = WeiShu1;
+                        bar2.HMTONO = oItemSub2.HMTONO;
+                        ls3.Add(bar2);
+                    }
+                }
+            }     
+            string HBarCode = "";
+            string HBarCodeType = "";
+            Int64 HMaterID = 0;
+            Int64 HUnitID = 0;
+            double HQty2 = 0;
+            string HBatchNo = "";
+            Int64 HSupID = 0;
+            Int64 HGroupID = 0;
+            int HPrintQty = 0;
+            Int64 HSourceInterID = 0;
+            Int64 HSourceEntryID = 0;
+            string HSourceBillNo = "";
+            string HSourceBillType = "";
+            Int64 HKFPeriod = 0;
+            string HKFDate = "";
+            string HKFDQDate = "";
+            string HWei = "";
+            string HMTONO = "";
+                oCn.BeginTran();
+                foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2)
+                {
+                    if (ClsPub.isLong(oItemSub.HMaterID) != 0)
+                    {
+                        HBarCode = oItemSub.HBarCode.ToString();
+                        HMTONO = ClsPub.isStrNull(oItemSub.HMTONO);
+                        HBarCodeType = "绠卞彿鏉$爜";
+                        HMaterID = ClsPub.isLong(oItemSub.HMaterID);
+                        HUnitID = ClsPub.isLong(oItemSub.HUnitID);
+                        HQty2 = ClsPub.isDoule(oItemSub.HQty);
+                        HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo);
+                        HSupID = ClsPub.isInt(oItemSub.HSupID);
+                        HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod);
+                        HKFDate = ClsPub.isStrNull(oItemSub.HKFDate);
+                        HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate);
+                        HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID);
+                        HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID);
+                        HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo);
+                        HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType);
+                        HWei = ClsPub.isStrNull(oItemSub.HEndQty);
+                        oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" +
+                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" +
+                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " +
+                                    ") values ("
+                                    + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate
+                                    + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1"
+                                    + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')");
+                        oCn.RunProc("exec setLSH '" + DateTime.Today + "'");
+                    }
+                }
+                foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls3)
+                {
+                    if (ClsPub.isLong(oItemSub.HMaterID) != 0)
+                    {
+                        HBarCode = oItemSub.HBarCode.ToString();
+                        HMTONO = ClsPub.isStrNull(oItemSub.HMTONO);
+                        HBarCodeType = "绠卞彿鍐呮潯鐮�";
+                        HMaterID = ClsPub.isLong(oItemSub.HMaterID);
+                        HUnitID = ClsPub.isLong(oItemSub.HUnitID);
+                        HQty2 = ClsPub.isDoule(oItemSub.HQty);
+                        HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo);
+                        HSupID = ClsPub.isInt(oItemSub.HSupID);
+                        HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod);
+                        HKFDate = ClsPub.isStrNull(oItemSub.HKFDate);
+                        HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate);
+                        HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID);
+                        HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID);
+                        HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo);
+                        HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType);
+                        HWei = ClsPub.isStrNull(oItemSub.HEndQty);
+                        oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" +
+                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" +
+                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " +
+                                    ") values ("
+                                    + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate
+                                    + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1"
+                                    + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')");
+                    }
+                }
+                //鏆傛椂鍙洖濉叧鑱旀暟閲�
+                oCn.RunProc("exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString());
+                oCn.Commit();
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+
+            objJsonResult.code = "0";
+            objJsonResult.count = 1;
+            objJsonResult.Message = "鐢熸垚鏉$爜鎴愬姛锛�";
+            WebAPIController.Add_Log("鏉$爜涓嬫帹", UserName, "鐢熸垚鏉$爜");
+            objJsonResult.data = null;
+            return objJsonResult;
+        }
+        [Route("GetHBarCodeShowBillSub2")]
+        [HttpGet]
+        /// <summary>
+        /// 鏉$爜鍒楄〃
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        public object GetHBarCodeShowBillSub2(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill();
+                ds = oClsWeb_BarCodeBill.ShowBillSub4(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛锛�";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇鍗曟嵁琛ㄤ綋澶辫触:" + e.Message;
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        [Route("GetHBarCodeShowBillSub3")]
+        [HttpGet]
+        /// <summary>
+        /// 鏉$爜鍒楄〃
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        public object GetHBarCodeShowBillSub3(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill();
+                ds = oClsWeb_BarCodeBill.ShowBillSub5(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛锛�";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇鍗曟嵁琛ㄤ綋澶辫触:" + e.Message;
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        [Route("GetHBarCodeShowBillSub4")]
+        [HttpGet]
+        /// <summary>
+        /// 鏉$爜鍒楄〃
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        public object GetHBarCodeShowBillSub4(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill();
+                ds = oClsWeb_BarCodeBill.ShowBillSub6(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛锛�";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇鍗曟嵁琛ㄤ綋澶辫触:" + e.Message;
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        [Route("GetHBarCodeShowBillMain")]
+        [HttpGet]
+        /// <summary>
+        /// 鏉$爜鐢熸垚琛ㄥご
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        public object GetHBarCodeShowBillMain(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill();
+                ds = oClsWeb_BarCodeBill.ShowBillMain1(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        [Route("GetHBarCodeShowBillSub")]
+        [HttpGet]
+        /// <summary>
+        /// 鏉$爜鐢熸垚琛ㄤ綋
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        public object GetHBarCodeShowBillSub(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill();
+                ds = oClsWeb_BarCodeBill.ShowBillSub(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鏉$爜妗f鍒楄〃
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetBarCodeShowList")]
+        [HttpGet]
+        public object GetBarCodeShowList(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=''" + HSupNo.Trim() + "'') " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=''" + HSupNo.Trim() + "'') " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_BarCodeBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_BarCodeBillList '" + PcWhere + "'", "h_v_SRM_BarCodeBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+
+
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/EntrustOrderController.cs b/WebAPI/Controllers/EntrustOrderController.cs
new file mode 100644
index 0000000..bf2fdb3
--- /dev/null
+++ b/WebAPI/Controllers/EntrustOrderController.cs
@@ -0,0 +1,271 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+    public class EntrustOrderController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+        /// <summary>
+        /// 閲囪喘鍗曞垪琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetEntrustOrderBill")]
+        [HttpGet]
+        //閲囪喘璁㈠崟鍒楄〃
+        public object GetEntrustOrderBill(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("H_v_SRM_EntrustOrderBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec H_p_SRM_EntrustOrderBillList '" + PcWhere + "'", "H_p_SRM_EntrustOrderBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 濮斿璁㈠崟琛ㄥご淇℃伅
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetEntrustOrderShowBillMain")]
+        [HttpGet]
+        public object GetEntrustOrderShowBillMain(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWW_EntrustOrderBill oClsWW_EntrustOrderBill = new DAL.ClsWW_EntrustOrderBill();
+                ds = oClsWW_EntrustOrderBill.ShowBillMainTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 濮斿璁㈠崟鏄庣粏琛ㄤ綋淇℃伅
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <param name="sMsg2"></param>
+        /// <returns></returns>
+        [Route("GetEntrustOrderShowBillSub")]
+        [HttpGet]
+        public object GetEntrustOrderShowBillSub(string sMsg)
+        {
+            try
+            {
+                DataSet ds = null;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsWW_EntrustOrderBill oClsWW_EntrustOrderBill = new DAL.ClsWW_EntrustOrderBill();
+                ds = oClsWW_EntrustOrderBill.ShowBillSubTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    //return DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+                //return s;
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
+
+
+        [Route("EntrustOrderAccept")]
+        [HttpGet]
+        /// <summary>
+        /// 璁㈠崟鎺ュ彈
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <returns></returns>
+        public object EntrustOrderAccept(string HInterID, string HBillNo, string HUser)
+        {
+            try
+            {
+                if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎺ュ彈澶辫触锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                DAL.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill();
+                oBill.WebAccept(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo);
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎺ュ彈鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎺ュ彈澶辫触锛�"+e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+            [Route("EntrustOrderRefuse")]
+            [HttpGet]
+            /// <summary>
+            /// 璁㈠崟鎷掔粷
+            /// </summary>
+            /// <param name="HInterID"></param>
+            /// <returns></returns>
+        public object EntrustOrderRefuse(string HInterID, string HBillNo, string HUser, string HBackRemark)
+            {
+                try
+                {
+                    if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    DAL.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill();
+                    oBill.WebRefuse(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), DBUtility.ClsPub.isStrNull(HBackRemark), ref DBUtility.ClsPub.sExeReturnInfo);
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鎷掔粷鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                catch (Exception e)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "澶辫触锛�" + e.ToString();
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/PODemandPlanController.cs b/WebAPI/Controllers/PODemandPlanController.cs
new file mode 100644
index 0000000..ad24e71
--- /dev/null
+++ b/WebAPI/Controllers/PODemandPlanController.cs
@@ -0,0 +1,271 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+    public class PODemandPlanController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+        /// <summary>
+        /// 閲囪喘鍗曞垪琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetPODemandPlanBill")]
+        [HttpGet]
+        //閲囪喘璁㈠崟鍒楄〃
+        public object GetPODemandPlanBill(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("H_v_SRM_PODemandPlanBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec H_p_SRM_PODemandPlanBillList '" + PcWhere + "'", "H_p_SRM_PODemandPlanBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 瑕佽揣閫氱煡鍗曡〃澶翠俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetPODemandPlanShowBillMain")]
+        [HttpGet]
+        public object GetPODemandPlanShowBillMain(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsSRM_PODemandPlanBill oClsSRM_PODemandPlanBill = new DAL.ClsSRM_PODemandPlanBill();
+                ds = oClsSRM_PODemandPlanBill.ShowBillMainTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 瑕佽揣閫氱煡鍗曟槑缁嗚〃浣撲俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <param name="sMsg2"></param>
+        /// <returns></returns>
+        [Route("GetPODemandPlanShowBillSub")]
+        [HttpGet]
+        public object GetPODemandPlanShowBillSub(string sMsg)
+        {
+            try
+            {
+                DataSet ds = null;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsSRM_PODemandPlanBill oClsSRM_PODemandPlanBill = new DAL.ClsSRM_PODemandPlanBill();
+                ds = oClsSRM_PODemandPlanBill.ShowBillSubTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    //return DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+                //return s;
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
+
+
+        [Route("PODemandPlanAccept")]
+        [HttpGet]
+        /// <summary>
+        /// 璁㈠崟鎺ュ彈
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <returns></returns>
+        public object PODemandPlanAccept(string HInterID, string HEntryID, string HBillNo, string HUser)
+        {
+            try
+            {
+                if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎺ュ彈澶辫触锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                DAL.ClsSRM_PODemandPlanBill oBill = new DAL.ClsSRM_PODemandPlanBill();
+                oBill.WebAccept(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo);
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎺ュ彈鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎺ュ彈澶辫触锛�"+e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+            [Route("PODemandPlanRefuse")]
+            [HttpGet]
+            /// <summary>
+            /// 璁㈠崟鎷掔粷
+            /// </summary>
+            /// <param name="HInterID"></param>
+            /// <returns></returns>
+        public object PODemandPlanRefuse(string HInterID, string HEntryID, string HBillNo, string HUser, string HBackRemark)
+            {
+                try
+                {
+                    if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    DAL.ClsSRM_PODemandPlanBill oBill = new DAL.ClsSRM_PODemandPlanBill();
+                    oBill.WebRefuse(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), DBUtility.ClsPub.isStrNull(HBackRemark), ref DBUtility.ClsPub.sExeReturnInfo);
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鎷掔粷鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                catch (Exception e)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "澶辫触锛�" + e.ToString();
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/POInStockBackController.cs b/WebAPI/Controllers/POInStockBackController.cs
new file mode 100644
index 0000000..a07c93a
--- /dev/null
+++ b/WebAPI/Controllers/POInStockBackController.cs
@@ -0,0 +1,91 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+    public class POInStockBackController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+        /// <summary>
+        /// 閫�璐у崟鍒楄〃
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetPOInStockBackBillList")]
+        [HttpGet]
+        public object GetPOInStockBackBillList(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                if (msg == null)
+                {
+                    msg = "";
+                }
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=''" + HSupNo.Trim() + "'') " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=''" + HSupNo.Trim() + "'') " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    return "";
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_POInStockBackBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_POInStockBackBillList '" + PcWhere + "'", "h_p_SRM_POInStockBackBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs
new file mode 100644
index 0000000..a668c3f
--- /dev/null
+++ b/WebAPI/Controllers/POInStockController.cs
@@ -0,0 +1,628 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+    public class POInStockController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+        /// <summary>
+        /// 鏇存柊鎵撳嵃娆℃暟
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        [Route("UpdatePOInStockBillPrintQty")]
+        [HttpPost]
+        public object UpdatePOInStockBillPrintQty([FromBody]JObject msg)
+        {
+            var _value = msg["msg"].ToString();
+            string msg1 = _value.ToString();
+            try
+            {
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                oCn.RunProc("exec H_p_SRM_POInStockBill_PrintQty " + msg1.ToString());
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏇存柊鎵撳嵃娆℃暟鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鏇存柊鎵撳嵃娆℃暟澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+
+        /// <summary>
+        /// 鐢熸垚閫佽揣鍗曞崟鎹彿銆佹棩鏈�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetNewPOInStockBillNo")]
+        [HttpGet]
+        public object GetNewPOInStockBillNo(string sMsg, string sMsg3)
+        {
+            try
+            {
+                DataSet ds = new DataSet();
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑涓婚敭";
+                    objjson.data = null;
+                    return objjson;
+                }
+                if (DBUtility.ClsPub.isStrNull(sMsg3) == "")
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑鍗曟嵁绫诲瀷";
+                    objjson.data = null;
+                    return objjson;
+                }
+                string HBillNo,HDate;
+                HBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo,true);
+                HDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+                //鍒涘缓涓存椂琛�
+                DataTable dt = new DataTable();
+                //鍒涘缓琛ㄤ腑鐨勫垪
+                dt.Columns.Add("HBillNo", typeof(string));//娣诲姞鍒�
+                dt.Columns.Add("HDate", typeof(string));//娣诲姞鍒�
+                DataRow row = dt.NewRow();
+                //缁欏垪璧嬪��
+                row["HBillNo"] = HBillNo;
+                row["HDate"] = HDate;
+                //鎶婃湁鍊肩殑鍒楁坊鍔犲埌琛�
+                dt.Rows.Add(row);
+                //鎶婅〃娣诲姞鍒癲ataset
+                ds.Tables.Add(dt);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇澶辫触锛佹病鏈夎繑鍥炰换浣曡褰�";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鐢熸垚閫佽揣鍗曡〃澶翠俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetNewPOInStockShowBillMain")]
+        [HttpGet]
+        public object GetNewPOInStockShowBillMain(string sMsg, string sMsg3)
+        {
+            try
+            {
+                DataSet ds;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑涓婚敭";
+                    objjson.data = null;
+                    return objjson;
+                }
+                if (DBUtility.ClsPub.isStrNull(sMsg3) == "")
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑鍗曟嵁绫诲瀷";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill();
+                ds = oClsCg_POInStockBill.ShowNewBillMainTo(DBUtility.ClsPub.isLong(sMsg), DBUtility.ClsPub.isStrNull(sMsg3), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇澶辫触锛佹病鏈夎繑鍥炰换浣曡褰�";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鐢熸垚閫佽揣鍗曟槑缁嗚〃浣撲俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <param name="sMsg2"></param>
+        /// <returns></returns>
+        [Route("GetNewPOInStockShowBillSub")]
+        [HttpGet]
+        public object GetNewPOInStockShowBillSub(string sMsg, string sMsg2, string sMsg3)
+        {
+
+            try
+            {
+                DataSet ds = null;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑涓婚敭";
+                    objjson.data = null;
+                    return objjson;
+                }
+                if (DBUtility.ClsPub.isStrNull(sMsg3) == "")
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触锛佹棤鏁堢殑鍗曟嵁绫诲瀷";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill();
+                ds = oClsCg_POInStockBill.ShowNewBillSubTo(DBUtility.ClsPub.isLong(sMsg), DBUtility.ClsPub.isStrNull(sMsg2), DBUtility.ClsPub.isStrNull(sMsg3), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+                //return s;
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 淇濆瓨閫佽揣鍗�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="msg2"></param>
+        /// <returns></returns>
+        [Route("SaverPOInStock")]
+        [HttpPost]
+        public object SaverPOInStock([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 UserName="";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();
+                List<Model.ClsCg_POInStockBillMain> lsmain = new List<Model.ClsCg_POInStockBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_POInStockMain(msg2);
+                foreach (Model.ClsCg_POInStockBillMain oItem in lsmain)
+                {
+                    //oItem.HMaker = "";
+                    UserName=oItem.HMaker;
+                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    //oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
+                    oItem.HCurID = 1;
+                    oItem.HExRate = 1;
+                    oItem.HMainSourceInterID = oItem.HInterID;
+                    oItem.HInterID = 0;
+                    //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDHDate)=="")
+                    {
+                        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.ClsCg_POInStockBillSub> ls = new List<Model.ClsCg_POInStockBillSub>();
+                ls = oListModels.getObjectByJson_POInStockSub(msg3);
+                int i = 0;
+                foreach (Model.ClsCg_POInStockBillSub oItemSub in ls)
+                {
+                    i++;
+                    if (oItemSub.HQty<=0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺"+ i.ToString()+"琛屾暟閲忎笉澶т簬0鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    if (oItemSub.HQty > oItemSub.HRQty)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屾暟閲忎笉鑳藉ぇ浜庢湭鍏宠仈鏁伴噺锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(oItemSub.HBatChNo)=="")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屾湭濉啓鎵瑰彿锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+
+                    oItemSub.HEntryID = i;
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HRemark = "";
+                    oItemSub.HCloseMan = "";
+                    oItemSub.HCloseType = false;
+                    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 = "淇濆瓨鎴愬姛锛�";
+                    WebAPIController.Add_Log("閫佽揣鍗曚笅鎺�", UserName, "鐢熸垚閫佽揣鍗�");
+                    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;
+            }
+        }
+        /// <summary>
+        /// 閫佽揣鍗曞垪琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetPOInStockBill")]
+        [HttpGet]
+        //閫佽揣鍗曞垪琛�
+        public object GetPOInStockBill(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec H_p_SRM_POInStockBillList '" + PcWhere + "'", "H_p_SRM_POInStockBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 閫佽揣鍗曡〃澶翠俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetPOInStockShowBillMain")]
+        [HttpGet]
+        public object GetPOInStockShowBillMain(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string s = "";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill();
+                ds = oClsCg_POInStockBill.ShowBillMainTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 閫佽揣鍗曟槑缁嗚〃浣撲俊鎭�
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <param name="sMsg2"></param>
+        /// <returns></returns>
+        [Route("GetPOInStockShowBillSub")]
+        [HttpGet]
+        public object GetPOInStockShowBillSub(string sMsg)
+        {
+            //string sMsg="28";
+            //string sMsg2 = "28,5;"
+            try
+            {
+                DataSet ds = null;
+                //string s = "";
+                //string sMsg3 = "'" + sMsg2 + "'";
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill();
+                ds = oClsCg_POInStockBill.ShowBillSubTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    //return DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+                //return s;
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
+
+
+        //[Route("POInStockAccept")]
+        //[HttpGet]
+        ///// <summary>
+        ///// 璁㈠崟鎺ュ彈
+        ///// </summary>
+        ///// <param name="HInterID"></param>
+        ///// <returns></returns>
+        //public object POInStockAccept(string HInterID,string HEntryID,long HBillType,string HUser)
+        //{
+        //    try
+        //    {
+        //        if (DBUtility.ClsPub.isLong(HInterID) == 0)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "鎺ュ彈澶辫触锛�";
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        DAL.ClsSRM_POInStockBill oBill = new DAL.ClsSRM_POInStockBill();
+        //        oBill.WebAccept_Sub(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isLong(HBillType), DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo);
+        //        objJsonResult.code = "0";
+        //        objJsonResult.count = 1;
+        //        objJsonResult.Message = "鎺ュ彈鎴愬姛锛�";
+        //        objJsonResult.data = 1;
+        //        return objJsonResult;
+        //    }
+        //    catch (Exception e)
+        //    {
+        //        objJsonResult.code = "0";
+        //        objJsonResult.count = 0;
+        //        objJsonResult.Message = "鎺ュ彈澶辫触锛�"+e.ToString();
+        //        objJsonResult.data = null;
+        //        return objJsonResult;
+        //    }
+        //}
+        //    [Route("POInStockRefuse")]
+        //    [HttpGet]
+        //    /// <summary>
+        //    /// 璁㈠崟鎷掔粷
+        //    /// </summary>
+        //    /// <param name="HInterID"></param>
+        //    /// <returns></returns>
+        //    public object POInStockRefuse(string HInterID, string HEntryID,string HBackRemark, long HBillType,string HUser)
+        //    {
+        //        try
+        //        {
+        //            if (DBUtility.ClsPub.isLong(HInterID) == 0)
+        //            {
+        //                objJsonResult.code = "0";
+        //                objJsonResult.count = 0;
+        //                objJsonResult.Message = "澶辫触锛�";
+        //                objJsonResult.data = null;
+        //                return objJsonResult;
+        //            }
+        //            DAL.ClsSRM_POInStockBill oBill = new DAL.ClsSRM_POInStockBill();
+        //            oBill.WebRefuse_Sub(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isStrNull(HBackRemark), DBUtility.ClsPub.isLong(HBillType),DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo);
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 1;
+        //            objJsonResult.Message = "鎷掔粷鎴愬姛锛�";
+        //            objJsonResult.data = 1;
+        //            return objJsonResult;
+        //        }
+        //        catch (Exception e)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "澶辫触锛�" + e.ToString();
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //    }
+
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/POOrderController.cs b/WebAPI/Controllers/POOrderController.cs
new file mode 100644
index 0000000..db417df
--- /dev/null
+++ b/WebAPI/Controllers/POOrderController.cs
@@ -0,0 +1,271 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+namespace WebAPI.Controllers
+{
+    public class POOrderController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+        /// <summary>
+        /// 閲囪喘鍗曞垪琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetPOOrderBill")]
+        [HttpGet]
+        //閲囪喘璁㈠崟鍒楄〃
+        public object GetPOOrderBill(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POOrderBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec H_p_SRM_POOrderBillList '" + PcWhere + "'", "H_p_SRM_POOrderBillList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 閲囪喘璁㈠崟琛ㄥご淇℃伅
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <returns></returns>
+        [Route("GetPOOrderShowBillMain")]
+        [HttpGet]
+        public object GetPOOrderShowBillMain(string sMsg)
+        {
+            try
+            {
+                DataSet ds;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POOrderBill oClsCg_POOrderBill = new DAL.ClsCg_POOrderBill();
+                ds = oClsCg_POOrderBill.ShowBillMainTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 閲囪喘璁㈠崟鏄庣粏琛ㄤ綋淇℃伅
+        /// </summary>
+        /// <param name="sMsg"></param>
+        /// <param name="sMsg2"></param>
+        /// <returns></returns>
+        [Route("GetPOOrderShowBillSub")]
+        [HttpGet]
+        public object GetPOOrderShowBillSub(string sMsg)
+        {
+            try
+            {
+                DataSet ds = null;
+                string ShowItem = " * ";//鏄剧ず鐨勫瓧娈�
+                if (DBUtility.ClsPub.isLong(sMsg) == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                DAL.ClsCg_POOrderBill oClsCg_POOrderBill = new DAL.ClsCg_POOrderBill();
+                ds = oClsCg_POOrderBill.ShowBillSubTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo);
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    //return DBUtility.ClsPub.sExeReturnInfo;
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+                //return s;
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
+
+
+        [Route("POOrderAccept")]
+        [HttpGet]
+        /// <summary>
+        /// 璁㈠崟鎺ュ彈
+        /// </summary>
+        /// <param name="HInterID"></param>
+        /// <returns></returns>
+        public object POOrderAccept(string HInterID, string HBillNo,string HUser)
+        {
+            try
+            {
+                if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎺ュ彈澶辫触锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();
+                oBill.WebAccept(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo);
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎺ュ彈鎴愬姛锛�";
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎺ュ彈澶辫触锛�"+e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+            [Route("POOrderRefuse")]
+            [HttpGet]
+            /// <summary>
+            /// 璁㈠崟鎷掔粷
+            /// </summary>
+            /// <param name="HInterID"></param>
+            /// <returns></returns>
+        public object POOrderRefuse(string HInterID, string HBillNo, string HUser, string HBackRemark)
+            {
+                try
+                {
+                    if (DBUtility.ClsPub.isLong(HInterID) == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "澶辫触锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    DAL.ClsCg_POOrderBill oBill = new DAL.ClsCg_POOrderBill();
+                    oBill.WebRefuse(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isStrNull(HBillNo), DBUtility.ClsPub.isStrNull(HUser), DBUtility.ClsPub.isStrNull(HBackRemark), ref DBUtility.ClsPub.sExeReturnInfo);
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鎷掔粷鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                catch (Exception e)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "澶辫触锛�" + e.ToString();
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+            }
+
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/ReportController.cs b/WebAPI/Controllers/ReportController.cs
new file mode 100644
index 0000000..dada4f0
--- /dev/null
+++ b/WebAPI/Controllers/ReportController.cs
@@ -0,0 +1,232 @@
+锘縰sing DBUtility;
+using Newtonsoft.Json.Linq;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web;
+using System.Web.Http;
+using WebAPI.Code;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    public class ReportController : ApiController
+    {
+
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+
+
+        /// <summary>
+        /// 閲囪喘璁㈠崟璺熻釜琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetPOOrderBillProcReport")]
+        [HttpGet]
+        //閲囪喘璁㈠崟璺熻釜琛�
+        public object GetPOOrderBillProcReport(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_POOrderBillProcReport", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_POOrderBillProcReport '" + PcWhere + "'", "h_p_SRM_POOrderBillProcReport");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 濮斿璁㈠崟璺熻釜琛�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetEntrustBillProcReport")]
+        [HttpGet]
+        //濮斿璁㈠崟璺熻釜琛�
+        public object GetEntrustBillProcReport(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_EntrustBillProcReport", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_EntrustBillProcReport '" + PcWhere + "'", "h_p_SRM_EntrustBillProcReport");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+
+
+        /// <summary>
+        /// 閫佽揣鍗曡窡韪〃
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetSendGoodsProcReport")]
+        [HttpGet]
+        //閫佽揣鍗曡窡韪〃
+        public object GetSendGoodsProcReport(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                else
+                {
+                    msg = msg + " and   hsupid in (select HItemID from h_v_IF_Supplier where hnumber=^^" + HSupNo.Trim() + "^^) " + sqlWhere;
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_SendGoodsProcReport", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_SendGoodsProcReport '" + PcWhere + "'", "h_p_SRM_POOrderBillProcReport");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+    }
+}
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
new file mode 100644
index 0000000..1ecfa5b
--- /dev/null
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -0,0 +1,700 @@
+锘縰sing DAL;
+using Model;
+using SQLHelper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Web.Http;
+using WebAPI.BLL;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    public class WebAPIController : ApiController
+    {
+        private JsonResult objJsonResult = new JsonResult();
+        private json objjson = new json();
+      //  private POInStockBillServices oclscg_poinstockbillmain = new POInStockBillServices();
+        public string sWhere = "";
+        public WebServer webserver = new WebServer();
+        public DataSet ds = new DataSet();
+
+        public static string GetSession(string sMsg)
+        {
+            try
+            {
+                string s = Common.GetSession();
+                return s;
+            }
+            catch (Exception e)
+            {
+                return "";
+            }
+        }
+        /// <summary>
+        /// 鍐欏叆鏃ュ織
+        /// </summary>
+        public static bool Add_Log(string WorkList, string CurUserName, string State)
+        {
+
+                DBUtility.ClsPub.SetIPAddress();
+               string IPAddress;
+               string ComputerName;
+               IPAddress = DBUtility.ClsPub.IPAddress;
+               ComputerName = DBUtility.ClsPub.ComputerName;
+                ClsCNSRM oCnLoc = new ClsCNSRM();
+                try
+                {
+                    oCnLoc.RunProc("Insert into  System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
+                        "(getdate(),'" + CurUserName + "','" + ComputerName + "','" + WorkList + "','SRM绯荤粺','" + IPAddress + "','" + State + "')"
+                        );
+
+                    return true;
+                }
+                catch (Exception e)
+                {
+                    return false;
+
+                }
+
+        }
+        /// <summary>
+        /// 鏃ュ織鍒楄〃
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="NowPage"></param>
+        /// <param name="OnePage"></param>
+        /// <returns></returns>
+        [Route("GetSystemLog")]
+        [HttpGet]
+        //閫佽揣鍗曞垪琛�
+        public object GetSystemLog(string HSupNo, string sqlWhere)
+        {
+            string msg = "";
+            try
+            {
+                string VsWhere = "";
+                string PcWhere = "";
+                SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM();
+                DataSet ds;
+                //鍏朵粬杩囨护
+                if (msg.Trim() == "")
+                {
+                    msg = " Where 鐢ㄦ埛鍚�=^^" + HSupNo.Trim() + "^^ " + sqlWhere;
+                    // msg = " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                else
+                {
+                    msg = msg + " and   鐢ㄦ埛鍚�=^^" + HSupNo.Trim() + "^^" + sqlWhere;
+                    // msg = msg + " Where   hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)";
+                }
+                //杞崲鐗规畩瀛楃
+                if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                //鑾峰彇鎬昏鏁�
+                Int64 RowTotal = Common.GetRowTotal("h_v_SRM_SystemLogList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑾峰彇杩斿洖鏁版嵁
+                ds = oCn.RunProcReturn("exec h_p_SRM_SystemLogList '" + PcWhere + "'", "h_p_SRM_SystemLogList");
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触";
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 10000;
+                    objjson.Message = "鑾峰彇鎴愬姛";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception e)
+            {
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        /// <summary>
+        /// 鐧诲綍
+        /// </summary>
+        /// <param name="UserName">鐢ㄦ埛鍚�</param>
+        /// <param name="PassWord">瀵嗙爜</param>
+        /// <returns></returns>
+        [Route("GetUser")]
+        [HttpGet]
+        public object GetUser(string UserName, string PassWord)
+        {
+            try
+            {
+                DataSet ds = null;
+                ClsCNSRM oCnLoc = new ClsCNSRM();
+                DAL.ClsUser oUser = new DAL.ClsUser();
+                ds = oUser.CheckCzymc(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀵嗙爜閿欒锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鐧诲綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    Add_Log("涓荤晫闈�", UserName, "鐧诲綍");
+                    return objJsonResult;
+                }
+            }
+            catch (Exception)
+            {
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鐧诲綍寮傚父锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+            }
+        }
+        /// <summary>
+        /// 淇敼瀵嗙爜
+        /// </summary>
+        /// <param name="UserName"></param>
+        /// <param name="PassWord"></param>
+        /// <returns></returns>
+        [Route("GetXGPassword")]
+        [HttpGet]
+        public object GetXGPassword(string UserName, string oldPassword, string PassWord, string Repassword)
+        {
+            try
+            {
+                ClsCNSRM oCn = new ClsCNSRM();
+                DataSet oDs = new DataSet();
+                //==========
+                if (PassWord.Trim() != Repassword.Trim())
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "2娆″瘑鐮佷笉涓�鑷达紒";
+                    objJsonResult.data = null;
+                    return objJsonResult; ;
+                }
+                //===========
+                oDs = oCn.RunProcReturn("select Czmm from  Gy_Czygl where Czybm='" + UserName + "'", "Gy_Czygl");
+                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "娌℃湁杩欎釜鐢ㄦ埛锛屼笉鑳戒慨鏀瑰瘑鐮侊紒";
+                    objJsonResult.data = null;
+                    return objJsonResult; ;
+                }
+                else
+                {
+                    oCn.RunProc("update  Gy_Czygl set Czmm='" + DBUtility.ClsPub.StrToPsd(PassWord.Trim()) + "' where Czybm='" + UserName.Trim() + "'");
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "* 瀵嗙爜淇敼鎴愬姛锛�";
+                    objJsonResult.data = null;
+                    Add_Log("涓荤晫闈�", UserName, "淇敼瀵嗙爜");
+                    return objJsonResult; ;
+                }
+            }
+            catch (Exception)
+            {
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇敼瀵嗙爜寮傚父锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+            }
+        }
+        ///// <summary>
+        ///// 纭浜ゆ湡
+        ///// </summary>
+        ///// <param name="HInterID"></param>
+        ///// <param name="HEntryID"></param>
+        ///// <param name="HState"></param>
+        ///// <returns></returns>
+        //[Route("UpdateBill")]
+        //[HttpGet]
+        //public object UpdateBill(int HInterID, int HEntryID, int HState)
+        //{
+        //    try
+        //    {
+        //        if (DBUtility.ClsPub.isLong(HInterID) == 0)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "N,椤圭洰涓嶅瓨鍦紒";
+        //            objJsonResult.data = 1;
+        //            return objJsonResult;
+        //        }
+        //        DAL.ClsKf_POStockInBill_K3 oBill = new DAL.ClsKf_POStockInBill_K3();
+        //        if (oBill.UpdateBill(HInterID, HEntryID, HState) == "Y")
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 1;
+        //            objJsonResult.Message = "纭鎴愬姛锛�";
+        //            objJsonResult.data = 1;
+        //            return objJsonResult;
+        //        }
+        //        else
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "纭澶辫触锛�";
+        //            objJsonResult.data = 1;
+        //            return objJsonResult;
+        //        }
+        //    }
+        //    catch (Exception e)
+        //    {
+        //        objJsonResult.code = "0";
+        //        objJsonResult.count = 0;
+        //        objJsonResult.Message = "纭澶辫触锛�" + e.ToString();
+        //        objJsonResult.data = 1;
+        //        return objJsonResult;
+        //    }
+        //}
+
+        /// <summary>
+        /// 鑾峰彇鎵撳嵃妯℃澘鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetOpenTmpList_Json")]
+        [HttpGet]
+        public object GetOpenTmpList_Json(string HNumber)
+        {
+            sWhere = " Where 1=1 ";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (HNumber != "")
+            {
+                sWhere = sWhere + " and ( HNumber = '" + HNumber + "') ";
+            }
+            try
+            {
+                ds = webserver.GetOpenTmpList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 淇濆瓨鎵撳嵃妯℃澘
+        /// </summary>
+        /// <returns></returns>
+        [Route("SaveOpenTmp")]
+        [HttpGet]
+        public object SaveOpenTmp(string HNumber, string HName)
+        {
+            ClsCNSRM oCn = new ClsCNSRM();
+            try
+            {
+
+                oCn.BeginTran();
+                oCn.RunProc("Insert into SRM_OpenTmp " +
+                    " (HNumber,HModel,HName) " +
+                    " Values('" + HNumber + "','" + HName + "','" + HName + "')", ref DBUtility.ClsPub.sExeReturnInfo);
+                //淇敼涓婄骇涓洪潪鏈骇浠g爜
+                //oCn.RunProc("Update Gy_OpenTmp set HEndflag=0 where HItemID=" + oModel.HParentID, ref ClsPub.sExeReturnInfo);
+                oCn.Commit();
+                objjson.code = "0";
+                objjson.count = 1;
+                objjson.Message = "淇濆瓨鎴愬姛!";
+                objjson.data = null;
+                return objjson;
+            }
+            catch (Exception e)
+            {
+                oCn.RollBack();
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "淇濆瓨澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+
+        }
+        /// <summary>
+        /// 鍒犻櫎鍗版ā鏉�
+        /// </summary>
+        /// <returns></returns>
+        [Route("DelOpenTmp")]
+        [HttpGet]
+        public object DelOpenTmp(string HItemID)
+        {
+            ClsCNSRM oCn = new ClsCNSRM();
+            try
+            {
+                oCn.BeginTran();
+                oCn.RunProc("Delete from SRM_OpenTmp where HItemID='" + DBUtility.ClsPub.isLong(HItemID) + "'", ref DBUtility.ClsPub.sExeReturnInfo);
+                oCn.Commit();
+                objjson.code = "0";
+                objjson.count = 1;
+                objjson.Message = "鍒犻櫎鎴愬姛!";
+                objjson.data = null;
+                return objjson;
+            }
+            catch (Exception e)
+            {
+                oCn.RollBack();
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鍒犻櫎澶辫触" + e.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+
+        }
+        #region 鍩虹璧勬枡
+        /// <summary>
+        /// 鑾峰彇浠撳簱鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetWarehouseList_Json")]
+        [HttpGet]
+        public object GetWarehouseList_Json(string Warehouse)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (Warehouse != "")
+            {
+                sWhere = sWhere + " and ( HNumber like '%" + Warehouse + "%' or HName like '%" + Warehouse + "%' ) ";
+            }
+            try
+            {
+                ds = webserver.GetWarehouseList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇浠撲綅鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetStockPlaceList_Json")]
+        [HttpGet]
+        public object GetStockPlaceList_Json(string StockPlace, Int64 HWhID)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (HWhID == 0)
+            {
+                if (StockPlace != "")
+                {
+                    sWhere = " Where HStopFlag=0  and ( HNumber like '%" + StockPlace + "%' or HName like '%" + StockPlace + "%' ) ";
+                }
+                else
+                {
+                    sWhere = " Where HStopFlag=0 ";
+                }
+            }
+            else
+            {
+                if (StockPlace != "")
+                {
+                    sWhere = " Where HStopFlag=0 and HWHID=" + HWhID.ToString() + " and ( HNumber like '%" + StockPlace + "%' or HName like '%" + StockPlace + "%' ) ";
+                }
+                else
+                {
+                    sWhere = " Where HStopFlag=0 and HWHID=" + HWhID.ToString();
+                }
+            }
+            try
+            {
+                ds = webserver.GetStockPlaceList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇渚涘簲鍟嗗垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetSupplierList_Json")]
+        [HttpGet]
+        public object GetSupplierList_Json(string Supplier)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (Supplier != "")
+            {
+                sWhere = sWhere + " and ( HNumber like '%" + Supplier + "%' or HName like '%" + Supplier + "%' ) ";
+            }
+            try
+            {
+                ds = webserver.GetSupplierList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇瀹㈡埛鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetCustomerList_Json")]
+        [HttpGet]
+        public object GetCustomerList_Json(string Customer)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (Customer != "")
+            {
+                sWhere = sWhere + " and ( HNumber like '%" + Customer + "%' or HName like '%" + Customer + "%' ) ";
+            }
+            try
+            {
+                ds = webserver.GetCustomerList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鑱屽憳鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetEmployeeList_Json")]
+        [HttpGet]
+        public object GetEmployeeList_Json(string Employee, Int64 HGroupID)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (HGroupID == 0)
+            {
+                if (Employee != "")
+                {
+                    sWhere = " Where HStopFlag=0  and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' ) ";
+                }
+                else
+                {
+                    sWhere = " Where HStopFlag=0 ";
+                }
+            }
+            else
+            {
+                if (Employee != "")
+                {
+                    sWhere = " Where HStopFlag=0 and HWHID=" + HGroupID.ToString() + " and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' ) ";
+                }
+                else
+                {
+                    sWhere = " Where HStopFlag=0 and HWHID=" + HGroupID.ToString();
+                }
+            }
+            try
+            {
+                ds = webserver.GetEmployeeList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇閮ㄩ棬鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("GetDepartmentList_Json")]
+        [HttpGet]
+        public object GetDepartmentList_Json(string Department)
+        {
+            sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (Department != "")
+            {
+                sWhere = sWhere + " and ( HNumber like '%" + Department + "%' or HName like '%" + Department + "%' ) ";
+            }
+            try
+            {
+                ds = webserver.GetDepartmentList(sWhere, ref DBUtility.ClsPub.sErrInfo);
+                if (ds == null || ds.Tables[0].Rows.Count <= 0)
+                {
+                    objjson.code = "0";
+                    objjson.count = 0;
+                    objjson.Message = "鑾峰彇澶辫触" + DBUtility.ClsPub.sErrInfo;
+                    objjson.data = null;
+                    return objjson;
+                }
+                else
+                {
+                    objjson.code = "0";
+                    objjson.count = 1;
+                    objjson.Message = "鑾峰彇鎴愬姛!";
+                    objjson.data = ds.Tables[0];
+                    return objjson;
+                }
+            }
+            catch (Exception ex)
+            {
+
+                objjson.code = "0";
+                objjson.count = 0;
+                objjson.Message = "鑾峰彇澶辫触" + ex.ToString();
+                objjson.data = null;
+                return objjson;
+            }
+        }
+        #endregion
+
+
+  
+    }
+}
diff --git a/WebAPI/DLL.zip b/WebAPI/DLL.zip
new file mode 100644
index 0000000..9e79f25
--- /dev/null
+++ b/WebAPI/DLL.zip
Binary files differ
diff --git a/WebAPI/DLL/BLL.dll b/WebAPI/DLL/BLL.dll
new file mode 100644
index 0000000..26d157d
--- /dev/null
+++ b/WebAPI/DLL/BLL.dll
Binary files differ
diff --git a/WebAPI/DLL/DAL.dll b/WebAPI/DLL/DAL.dll
new file mode 100644
index 0000000..3ff4c3e
--- /dev/null
+++ b/WebAPI/DLL/DAL.dll
Binary files differ
diff --git a/WebAPI/DLL/DBUtility.dll b/WebAPI/DLL/DBUtility.dll
new file mode 100644
index 0000000..2c249f3
--- /dev/null
+++ b/WebAPI/DLL/DBUtility.dll
Binary files differ
diff --git a/WebAPI/DLL/Kingdee.BOS.WebApi.Client.dll b/WebAPI/DLL/Kingdee.BOS.WebApi.Client.dll
new file mode 100644
index 0000000..25dd347
--- /dev/null
+++ b/WebAPI/DLL/Kingdee.BOS.WebApi.Client.dll
Binary files differ
diff --git a/WebAPI/DLL/Kingdee.BOS.WebApi.FormService.dll b/WebAPI/DLL/Kingdee.BOS.WebApi.FormService.dll
new file mode 100644
index 0000000..2117fef
--- /dev/null
+++ b/WebAPI/DLL/Kingdee.BOS.WebApi.FormService.dll
Binary files differ
diff --git a/WebAPI/DLL/Kingdee.BOS.WebApi.ServicesStub.dll b/WebAPI/DLL/Kingdee.BOS.WebApi.ServicesStub.dll
new file mode 100644
index 0000000..8db034f
--- /dev/null
+++ b/WebAPI/DLL/Kingdee.BOS.WebApi.ServicesStub.dll
Binary files differ
diff --git a/WebAPI/DLL/Model.dll b/WebAPI/DLL/Model.dll
new file mode 100644
index 0000000..f07ae29
--- /dev/null
+++ b/WebAPI/DLL/Model.dll
Binary files differ
diff --git a/WebAPI/DLL/Newtonsoft.Json.Net35.dll b/WebAPI/DLL/Newtonsoft.Json.Net35.dll
new file mode 100644
index 0000000..d4b80f7
--- /dev/null
+++ b/WebAPI/DLL/Newtonsoft.Json.Net35.dll
Binary files differ
diff --git a/WebAPI/DLL/Pub_Class.dll b/WebAPI/DLL/Pub_Class.dll
new file mode 100644
index 0000000..594f0e3
--- /dev/null
+++ b/WebAPI/DLL/Pub_Class.dll
Binary files differ
diff --git a/WebAPI/DLL/Pub_Control.dll b/WebAPI/DLL/Pub_Control.dll
new file mode 100644
index 0000000..3c65a5c
--- /dev/null
+++ b/WebAPI/DLL/Pub_Control.dll
Binary files differ
diff --git a/WebAPI/DLL/SQLHelper.dll b/WebAPI/DLL/SQLHelper.dll
new file mode 100644
index 0000000..d22e57c
--- /dev/null
+++ b/WebAPI/DLL/SQLHelper.dll
Binary files differ
diff --git a/WebAPI/DLL/System.Net.Http.Formatting.dll b/WebAPI/DLL/System.Net.Http.Formatting.dll
new file mode 100644
index 0000000..436d196
--- /dev/null
+++ b/WebAPI/DLL/System.Net.Http.Formatting.dll
Binary files differ
diff --git a/WebAPI/DLL/System.Web.Http.WebHost.dll b/WebAPI/DLL/System.Web.Http.WebHost.dll
new file mode 100644
index 0000000..1529df9
--- /dev/null
+++ b/WebAPI/DLL/System.Web.Http.WebHost.dll
Binary files differ
diff --git a/WebAPI/DLL/System.Web.Http.dll b/WebAPI/DLL/System.Web.Http.dll
new file mode 100644
index 0000000..3042557
--- /dev/null
+++ b/WebAPI/DLL/System.Web.Http.dll
Binary files differ
diff --git a/WebAPI/Global.asax b/WebAPI/Global.asax
new file mode 100644
index 0000000..08b3189
--- /dev/null
+++ b/WebAPI/Global.asax
@@ -0,0 +1 @@
+锘�<%@ Application Codebehind="Global.asax.cs" Inherits="WebAPI.WebApiApplication" Language="C#" %>
diff --git a/WebAPI/Global.asax.cs b/WebAPI/Global.asax.cs
new file mode 100644
index 0000000..3e4bc83
--- /dev/null
+++ b/WebAPI/Global.asax.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Http;
+using System.Web.Routing;
+
+namespace WebAPI
+{
+    public class WebApiApplication : System.Web.HttpApplication
+    {
+        protected void Application_Start()
+        {
+            GlobalConfiguration.Configure(WebApiConfig.Register);
+        }
+    }
+}
diff --git a/WebAPI/Index.html b/WebAPI/Index.html
new file mode 100644
index 0000000..18d6a8e
--- /dev/null
+++ b/WebAPI/Index.html
@@ -0,0 +1,10 @@
+锘�<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <title></title>
+</head>
+<body>
+<div>WEBAPI杩炴帴鎴愬姛锛�</div>
+</body>
+</html>
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
new file mode 100644
index 0000000..5bd2e11
--- /dev/null
+++ b/WebAPI/ListModels.cs
@@ -0,0 +1,85 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Runtime.Serialization.Json;
+using System.IO;
+using System.Text;
+using WebAPI.Code;
+
+namespace WebAPI
+{
+    public class ListModels
+    {
+        //public List<Test2> getMainObjectByJson2(string jsonString)
+        //{
+        //    // 瀹炰緥鍖朌ataContractJsonSerializer瀵硅薄锛岄渶瑕佸緟搴忓垪鍖栫殑瀵硅薄绫诲瀷  
+        //    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Test2>)); //ClsCg_POInStockBillMain_K3
+        //    //鎶奐son浼犲叆鍐呭瓨娴佷腑淇濆瓨  
+        //    jsonString = "[" + jsonString + "]";
+        //   // MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
+        //    using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
+        //    {
+        //        object ob = serializer.ReadObject(stream);
+        //        List<Test2> ls = (List<Test2>)ob;
+        //        return ls;
+        //    }
+        //    // 浣跨敤ReadObject鏂规硶鍙嶅簭鍒楀寲鎴愬璞� 
+        //}
+        public List<Model.ClsCg_POInStockBillSub> getObjectByJson_POInStockSub(string jsonString)
+        {
+            jsonString = "[" + jsonString + "]";
+            List<Model.ClsCg_POInStockBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsCg_POInStockBillSub>>(jsonString);
+            return list;
+            //// 瀹炰緥鍖朌ataContractJsonSerializer瀵硅薄锛岄渶瑕佸緟搴忓垪鍖栫殑瀵硅薄绫诲瀷  
+            //DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Model.ClsCg_POInStockBillSub>));
+            ////鎶奐son浼犲叆鍐呭瓨娴佷腑淇濆瓨  
+            //jsonString = "[" + jsonString + "]";
+            //using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
+            //{
+            //    // 浣跨敤ReadObject鏂规硶鍙嶅簭鍒楀寲鎴愬璞�  
+            //    object ob = serializer.ReadObject(stream);
+            //    List<Model.ClsCg_POInStockBillSub> ls = (List<Model.ClsCg_POInStockBillSub>)ob;
+            //    return ls;
+            //}
+        }
+        /// <summary>  
+        /// 灏唈son鏁版嵁杞崲鎴愬瓙琛ㄥ疄浣撶被     
+        /// </summary>  
+        /// <returns></returns>  
+        //public List<Model.ClsCg_POInStockBillSub_K3> getObjectByJson(string jsonString)
+        //{
+        //    // 瀹炰緥鍖朌ataContractJsonSerializer瀵硅薄锛岄渶瑕佸緟搴忓垪鍖栫殑瀵硅薄绫诲瀷  
+        //    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Model.ClsCg_POInStockBillSub_K3>));
+        //    //鎶奐son浼犲叆鍐呭瓨娴佷腑淇濆瓨  
+        //    jsonString = "[" + jsonString + "]";
+        //    using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
+        //    {
+        //        // 浣跨敤ReadObject鏂规硶鍙嶅簭鍒楀寲鎴愬璞�  
+        //        object ob = serializer.ReadObject(stream);
+        //        List<Model.ClsCg_POInStockBillSub_K3> ls = (List<Model.ClsCg_POInStockBillSub_K3>)ob;
+        //        return ls;
+        //    }
+        //}
+        public List<Model.ClsCg_POInStockBillMain> getObjectByJson_POInStockMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsCg_POInStockBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsCg_POInStockBillMain>>(jsonString);
+            return list;
+        }
+        public List<Model.ClsGy_BarCodeBill_WMS_Model> getObjectByJson_BarCode(string jsonString)
+        {
+            jsonString = "[" + jsonString + "]";
+            List<Model.ClsGy_BarCodeBill_WMS_Model> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_BarCodeBill_WMS_Model>>(jsonString);
+            return list;
+        }
+
+        public List<Model.ClsGy_MaterialList_WMS_Model> getObjectByJson_MaterialList(string jsonString)
+        {
+            jsonString = "[" + jsonString + "]";
+            List<Model.ClsGy_MaterialList_WMS_Model> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_MaterialList_WMS_Model>>(jsonString);
+            return list;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Metadata/deploymentTemplates/apiappconfig.azureresource.json b/WebAPI/Metadata/deploymentTemplates/apiappconfig.azureresource.json
new file mode 100644
index 0000000..5c5c826
--- /dev/null
+++ b/WebAPI/Metadata/deploymentTemplates/apiappconfig.azureresource.json
@@ -0,0 +1,10 @@
+锘縶
+  "$schema": "http://schemas.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
+  "contentVersion": "1.0.0.0",
+  "parameters": {
+    "$system": {
+      "type": "Object"
+    }
+  },
+  "resources": []
+}
\ No newline at end of file
diff --git a/WebAPI/Models/ClsCg_POInStockBill.cs b/WebAPI/Models/ClsCg_POInStockBill.cs
new file mode 100644
index 0000000..c668da4
--- /dev/null
+++ b/WebAPI/Models/ClsCg_POInStockBill.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsCg_POInStockBill
+    {
+        public string HDateForWeb;
+        public string HAddress;//     varchar(200)            	--交货地点 
+        public Int64 HSupID;//      int     			--供应商 (Gy_Supplier)
+        public Int64 HCurID;//    int      			--币别 (Gy_Currency)
+        public Int64 HWHID;//      int     --仓库
+        public Single HExRate;//    money      			--汇率  (选择完币别带出)
+        public Int64 HEmpID;//     int       			--业务员  (Gy_Employee)
+        public Int64 HMangerID;//  int     			--主管	(Gy_Employee)
+        public Int64 HDeptID;//     int     			--部门	(Gy_Employee)
+        public string HExplanation;//  varchar(200)     		--摘要 
+        public string HInnerBillNo;//  varchar(50)     		--内部单据号
+
+        //public DateTime HEntryCloseDate;//   datetime      --行关闭 (默认为'')		new
+        //public string HRemark;//         varchar(200)        --备注 
+        public Int64 HMaterID;//  int      --物料ID (Gy_Material)
+        public Int64 HUnitID;//    int    --计量单位 (Gy_Unit)
+        public double HQty;//     dec(18,8)         --要货数量
+        public double HCheckQty;        //检验数
+        public double HPassQty;         //合格数
+        public double HBadQty;          //不合格数
+        public double HPrice;//   dec(18,8)         --原币单价
+        public double HMoney;//   dec(18,8)         --原币金额
+       // public Int64 HWHID;//              --收料仓库
+        public Int64 HPOOrderInterID;//
+        public Int64 HPOOrderEntryID;//
+        public string HPOOrderBillNo;//
+        public DateTime HDate;   //要货时间
+        public Int64 HState;
+        public string HBackDate;
+        public string HBacker;
+        public long HBillerID;
+        public string HBillNo;
+        public int HBillStatus;
+        public string HBillSubType;
+        public string HBillType;
+        public string HCheckDate;
+        public string HChecker;
+        public long HCheckFlowID;
+        public long HCheckItemNextID;
+        public long HCheckItemNowID;
+        public string HCloseDate;
+       // public string HCloseMan;
+        public bool HCloseType;
+       // public DateTime HDate;
+        public string HDeleteDate;
+        public string HDeleteMan;
+        public string HEmpCode;
+        public string HMainSourceBillNo;
+        public string HMainSourceBillType;
+        public long HMainSourceEntryID;
+        public long HMainSourceInterID;
+        public string HMakeDate;
+        public string HMaker;
+        public long HPeriod;
+        //public string HRemark;
+        public string HUpDateDate;
+        public string HUpDater;
+        public long HYear;
+        // public string HCloseMan;
+       // public bool HCloseType;
+        public DateTime HEntryCloseDate;
+        public long HEntryID;
+        public long HInterID;
+        public double HRelationMoney;
+        public double HRelationQty;
+        public string HRemark;
+        public string HSourceBillNo;
+        public string HSourceBillType;
+        public long HSourceEntryID;
+        public long HSourceInterID;
+
+        //public ClsCg_POInStockBill();
+    }
+}
diff --git a/WebAPI/Models/JsonResult.cs b/WebAPI/Models/JsonResult.cs
new file mode 100644
index 0000000..411f417
--- /dev/null
+++ b/WebAPI/Models/JsonResult.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Models
+{
+    public class JsonResult
+    {
+        public string code { get; set; }
+        public int count { get; set; }
+        public string Message { get; set; }
+        public object data { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Models/Pensen.cs b/WebAPI/Models/Pensen.cs
new file mode 100644
index 0000000..3a7e83c
--- /dev/null
+++ b/WebAPI/Models/Pensen.cs
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Models
+{
+    public class Pensen
+    {
+        /// <summary>
+        ///濮撳悕
+        /// </summary>
+        public string Name { get; set; }
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        public string Pwd { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Models/json.cs b/WebAPI/Models/json.cs
new file mode 100644
index 0000000..3a10890
--- /dev/null
+++ b/WebAPI/Models/json.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace WebAPI.Models
+{
+    public class json
+    {
+        public string code { get; set; }
+        public int count { get; set; }
+        public string Message { get; set; }
+        public object data { get; set; }
+    }
+}
diff --git a/WebAPI/Properties/AssemblyInfo.cs b/WebAPI/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..683d383
--- /dev/null
+++ b/WebAPI/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 鏈夊叧绋嬪簭闆嗙殑甯歌淇℃伅閫氳繃涓嬪垪鐗规�ч泦
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("WebAPI")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WebAPI")]
+[assembly: AssemblyCopyright("Copyright 漏  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+// 瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕�
+// 浠� COM 璁块棶姝ょ▼搴忛泦涓殑鏌愪釜绫诲瀷锛岃閽堝璇ョ被鍨嬪皢 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬 typelib 鐨� ID
+[assembly: Guid("2b2ffe83-a979-4aab-9742-c94617729812")]
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�:
+//
+//      涓荤増鏈�
+//      娆$増鏈�
+//      鍐呴儴鐗堟湰鍙�
+//      淇鐗堟湰
+//
+// 鍙互鎸囧畾鎵�鏈夊�硷紝涔熷彲浠ヤ娇鐢ㄢ�滀慨璁㈠彿鈥濆拰鈥滃唴閮ㄧ増鏈彿鈥濈殑榛樿鍊硷紝
+// 鏂规硶鏄寜濡備笅鎵�绀轰娇鐢� "*":
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/WebAPI/Web.Debug.config b/WebAPI/Web.Debug.config
new file mode 100644
index 0000000..a26200b
--- /dev/null
+++ b/WebAPI/Web.Debug.config
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 鏈夊叧浣跨敤 web.config 杞崲鐨勮缁嗕俊鎭紝璇疯闂� http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    鍦ㄤ笅渚嬩腑锛屸�淪etAttributes鈥濊浆鎹㈠皢鏇存敼 
+    鈥渃onnectionString鈥濈殑鍊硷紝浠ヤ粎鍦ㄢ�淢atch鈥濆畾浣嶅櫒 
+    鎵惧埌鍊间负鈥淢yDB鈥濈殑鐗规�р�渘ame鈥濇椂浣跨敤鈥淩eleaseSQLServer鈥濄��
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <!--
+      
+      鍦ㄤ笅渚嬩腑锛屸�淩eplace鈥濊浆鎹㈠皢鏇挎崲 
+      web.config 鏂囦欢鐨勬暣涓� <customErrors> 鑺傘��
+      璇锋敞鎰忥紝鐢变簬 
+      鍦� <system.web> 鑺傜偣涓嬩粎鏈変竴涓� customErrors 鑺傦紝鍥犳涓嶉渶瑕佷娇鐢ㄢ�渪dt:Locator鈥濈壒鎬с��
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>
\ No newline at end of file
diff --git a/WebAPI/Web.Release.config b/WebAPI/Web.Release.config
new file mode 100644
index 0000000..59941db
--- /dev/null
+++ b/WebAPI/Web.Release.config
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- 鏈夊叧浣跨敤 web.config 杞崲鐨勮缁嗕俊鎭紝璇疯闂� http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    鍦ㄤ笅渚嬩腑锛屸�淪etAttributes鈥濊浆鎹㈠皢鏇存敼 
+    鈥渃onnectionString鈥濈殑鍊硷紝浠ヤ粎鍦ㄢ�淢atch鈥濆畾浣嶅櫒 
+    鎵惧埌鍊间负鈥淢yDB鈥濈殑鐗规�р�渘ame鈥濇椂浣跨敤鈥淩eleaseSQLServer鈥濄��
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+    <!--
+      
+      鍦ㄤ笅渚嬩腑锛屸�淩eplace鈥濊浆鎹㈠皢鏇挎崲 
+      web.config 鏂囦欢鐨勬暣涓� <customErrors> 鑺傘��
+      璇锋敞鎰忥紝鐢变簬 
+      鍦� <system.web> 鑺傜偣涓嬩粎鏈変竴涓� customErrors 鑺傦紝鍥犳涓嶉渶瑕佷娇鐢ㄢ�渪dt:Locator鈥濈壒鎬с��
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>
\ No newline at end of file
diff --git a/WebAPI/Web.config b/WebAPI/Web.config
new file mode 100644
index 0000000..6a1ec94
--- /dev/null
+++ b/WebAPI/Web.config
@@ -0,0 +1,57 @@
+锘�<?xml version="1.0"?>
+<!--
+  鏈夊叧濡備綍閰嶇疆 ASP.NET 搴旂敤绋嬪簭鐨勮缁嗕俊鎭紝璇疯闂�
+  http://go.microsoft.com/fwlink/?LinkId=301879
+  -->
+<configuration>
+  <appSettings/>
+  <!--
+    鏈夊叧 web.config 鏇存敼鐨勮鏄庯紝璇峰弬瑙� http://go.microsoft.com/fwlink/?LinkId=235367銆�
+
+    鍙湪 <httpRuntime> 鏍囪涓婅缃互涓嬬壒鎬с��
+      <system.Web>
+        <httpRuntime targetFramework="4.5" />
+      </system.Web>
+  -->
+  <system.web>
+    <compilation debug="true" targetFramework="4.5"/>
+    <httpRuntime/>
+    <pages controlRenderingCompatibilityVersion="4.0"/>
+  </system.web>
+  <system.webServer>
+    <handlers>
+      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
+      <!--<remove name="OPTIONSVerbHandler"/>-->
+      <remove name="TRACEVerbHandler"/>
+      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
+    </handlers>
+  </system.webServer>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
+        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0"/>
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+</configuration>
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
new file mode 100644
index 0000000..556e803
--- /dev/null
+++ b/WebAPI/WebAPI.csproj
@@ -0,0 +1,250 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{5B60CE0C-963C-4DC2-91B3-0B471AAC5438}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>WebAPI</RootNamespace>
+    <AssemblyName>WebAPI</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <UseIISExpress>false</UseIISExpress>
+    <IISExpressSSLPort />
+    <IISExpressAnonymousAuthentication />
+    <IISExpressWindowsAuthentication />
+    <IISExpressUseClassicPipelineMode />
+    <TargetFrameworkProfile />
+    <Use64BitIISExpress />
+    <UseGlobalApplicationHostFile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="BLL, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>E:\閲戠\椤圭洰\鑷富渚涘簲鍟嗗钩鍙癨渚涘簲鍟嗗崗鍚屽钩鍙癨DLL\BLL.dll</HintPath>
+    </Reference>
+    <Reference Include="DAL, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\DAL.dll</HintPath>
+    </Reference>
+    <Reference Include="DBUtility, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>E:\閲戠\椤圭洰\鑷富渚涘簲鍟嗗钩鍙癨渚涘簲鍟嗗崗鍚屽钩鍙癨DLL\DBUtility.dll</HintPath>
+    </Reference>
+    <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\Kingdee.BOS.WebApi.Client.dll</HintPath>
+    </Reference>
+    <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\Kingdee.BOS.WebApi.FormService.dll</HintPath>
+    </Reference>
+    <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Azure.AppService.ApiApps.Service, Version=0.9.16.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Azure.AppService.ApiApps.Service.0.9.16\lib\net45\Microsoft.Azure.AppService.ApiApps.Service.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="Model, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\Model.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\WeChat Files\shenjie1112005\FileStorage\File\2019-12\webapi鎺ュ彛\FurjaFlatFormAPI\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="Pub_Class, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>E:\閲戠\椤圭洰\鑷富渚涘簲鍟嗗钩鍙癨渚涘簲鍟嗗崗鍚屽钩鍙癨DLL\Pub_Class.dll</HintPath>
+    </Reference>
+    <Reference Include="Pub_Control, Version=1.0.6632.19241, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>E:\閲戠\椤圭洰\鑷富渚涘簲鍟嗗钩鍙癨渚涘簲鍟嗗崗鍚屽钩鍙癨DLL\Pub_Control.dll</HintPath>
+    </Reference>
+    <Reference Include="SQLHelper, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>E:\閲戠\椤圭洰\鑷富渚涘簲鍟嗗钩鍙癨渚涘簲鍟嗗崗鍚屽钩鍙癨DLL\SQLHelper.dll</HintPath>
+    </Reference>
+    <Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
+      <HintPath>..\packages\Swashbuckle.Core.5.0.0\lib\net40\Swashbuckle.Core.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.IdentityModel.Tokens.Jwt, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\System.IdentityModel.Tokens.Jwt.4.0.0\lib\net45\System.IdentityModel.Tokens.Jwt.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\System.Net.Http.Formatting.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System.ComponentModel.DataAnnotations" />
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\System.Web.Http.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>DLL\System.Web.Http.WebHost.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.EnterpriseServices" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
+      <HintPath>..\packages\WebActivatorEx.2.0.6\lib\net40\WebActivatorEx.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="DLL\BLL.dll" />
+    <Content Include="DLL\DAL.dll" />
+    <Content Include="DLL\DBUtility.dll" />
+    <Content Include="DLL\Kingdee.BOS.WebApi.Client.dll" />
+    <Content Include="DLL\Kingdee.BOS.WebApi.FormService.dll" />
+    <Content Include="DLL\Kingdee.BOS.WebApi.ServicesStub.dll" />
+    <Content Include="DLL\Model.dll" />
+    <Content Include="DLL\Newtonsoft.Json.Net35.dll" />
+    <Content Include="DLL\Pub_Class.dll" />
+    <Content Include="DLL\Pub_Control.dll" />
+    <Content Include="DLL\SQLHelper.dll" />
+    <Content Include="Global.asax" />
+    <Content Include="Index.html" />
+    <Content Include="Web.config">
+      <SubType>Designer</SubType>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="App_Start\SwaggerConfig.cs" />
+    <Compile Include="App_Start\WebApiConfig.cs" />
+    <Compile Include="BLL\WebServer.cs" />
+    <Compile Include="Code\Common.cs" />
+    <Compile Include="Code\Test2.cs" />
+    <Compile Include="Code\TestDAL.cs" />
+    <Compile Include="Controllers\BarCodeController.cs" />
+    <Compile Include="Controllers\POInStockBackController.cs" />
+    <Compile Include="Controllers\POInStockController.cs" />
+    <Compile Include="Controllers\PODemandPlanController.cs" />
+    <Compile Include="Controllers\EntrustOrderController.cs" />
+    <Compile Include="Controllers\POOrderController.cs" />
+    <Compile Include="Controllers\ReportController.cs" />
+    <Compile Include="ListModels.cs" />
+    <Compile Include="Models\ClsCg_POInStockBill.cs" />
+    <Compile Include="Models\json.cs" />
+    <Compile Include="Controllers\WebAPIController.cs" />
+    <Compile Include="Global.asax.cs">
+      <DependentUpon>Global.asax</DependentUpon>
+    </Compile>
+    <Compile Include="Models\JsonResult.cs" />
+    <Compile Include="Models\Pensen.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="packages.config" />
+    <Content Include="Metadata\deploymentTemplates\apiappconfig.azureresource.json" />
+    <Content Include="apiapp.json" />
+    <None Include="Properties\PublishProfiles\WEBAPI.pubxml" />
+    <None Include="Properties\PublishProfiles\WEBAPIConfig.pubxml" />
+    <None Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+    <None Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="App_Data\" />
+  </ItemGroup>
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>12761</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>http://localhost/WebAPI</IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>False</UseCustomServer>
+          <CustomServerUrl>
+          </CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/WebAPI/apiapp.json b/WebAPI/apiapp.json
new file mode 100644
index 0000000..60d5fb4
--- /dev/null
+++ b/WebAPI/apiapp.json
@@ -0,0 +1,14 @@
+锘縶
+  "$schema": "http://json-schema.org/schemas/2014-11-01/apiapp.json#",
+  "id": "WebAPI",
+  "namespace": "microsoft.com",
+  "gateway": "2015-01-14",
+  "version": "1.0.0",
+  "title": "WebAPI",
+  "summary": "",
+  "author": "",
+  "endpoints": {
+    "apiDefinition": "/swagger/docs/v1",
+    "status": null
+  }
+}
\ No newline at end of file
diff --git a/WebAPI/packages.config b/WebAPI/packages.config
new file mode 100644
index 0000000..78bd477
--- /dev/null
+++ b/WebAPI/packages.config
@@ -0,0 +1,17 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.3" targetFramework="net45" />
+  <package id="Microsoft.Azure.AppService.ApiApps.Service" version="0.9.16" targetFramework="net45" />
+  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
+  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
+  <package id="Swashbuckle" version="5.0.0" targetFramework="net45" />
+  <package id="Swashbuckle.Core" version="5.0.0" targetFramework="net45" />
+  <package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net45" />
+  <package id="WebActivatorEx" version="2.0.6" targetFramework="net45" />
+</packages>
\ No newline at end of file
diff --git a/WindowsFormsApp1/App.config b/WindowsFormsApp1/App.config
new file mode 100644
index 0000000..d1428ad
--- /dev/null
+++ b/WindowsFormsApp1/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
+    </startup>
+</configuration>
diff --git a/WindowsFormsApp1/Program.cs b/WindowsFormsApp1/Program.cs
new file mode 100644
index 0000000..13bc578
--- /dev/null
+++ b/WindowsFormsApp1/Program.cs
@@ -0,0 +1,22 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace WindowsFormsApp1
+{
+    static class Program
+    {
+        /// <summary>
+        /// 搴旂敤绋嬪簭鐨勪富鍏ュ彛鐐广��
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new TestAPI());
+        }
+    }
+}
diff --git a/WindowsFormsApp1/Properties/AssemblyInfo.cs b/WindowsFormsApp1/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9e1afc6
--- /dev/null
+++ b/WindowsFormsApp1/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+锘縰sing System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 鏈夊叧绋嬪簭闆嗙殑涓�鑸俊鎭敱浠ヤ笅
+// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у�煎彲淇敼
+// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭��
+[assembly: AssemblyTitle("WindowsFormsApp1")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WindowsFormsApp1")]
+[assembly: AssemblyCopyright("Copyright 漏  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 灏� ComVisible 璁剧疆涓� false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷
+//瀵� COM 缁勪欢涓嶅彲瑙併�傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷
+//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�ц缃负 true銆�
+[assembly: ComVisible(false)]
+
+// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID
+[assembly: Guid("ffed17b5-612d-404c-a9b8-628ba6dc3257")]
+
+// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�肩粍鎴�: 
+//
+//      涓荤増鏈�
+//      娆$増鏈�
+//      鐢熸垚鍙�
+//      淇鍙�
+//
+//鍙互鎸囧畾鎵�鏈夎繖浜涘�硷紝涔熷彲浠ヤ娇鐢ㄢ�滅敓鎴愬彿鈥濆拰鈥滀慨璁㈠彿鈥濈殑榛樿鍊�
+//閫氳繃浣跨敤 "*"锛屽涓嬫墍绀�:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/WindowsFormsApp1/Properties/Resources.Designer.cs b/WindowsFormsApp1/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..383bc83
--- /dev/null
+++ b/WindowsFormsApp1/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+//     杩愯鏃剁増鏈�:4.0.30319.42000
+//
+//     瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApp1.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   涓�涓己绫诲瀷鐨勮祫婧愮被锛岀敤浜庢煡鎵炬湰鍦板寲鐨勫瓧绗︿覆绛夈��
+    /// </summary>
+    // 姝ょ被鏄敱 StronglyTypedResourceBuilder
+    // 绫婚�氳繃绫讳技浜� ResGen 鎴� Visual Studio 鐨勫伐鍏疯嚜鍔ㄧ敓鎴愮殑銆�
+    // 鑻ヨ娣诲姞鎴栫Щ闄ゆ垚鍛橈紝璇风紪杈� .ResX 鏂囦欢锛岀劧鍚庨噸鏂拌繍琛� ResGen
+    // (浠� /str 浣滀负鍛戒护閫夐」)锛屾垨閲嶆柊鐢熸垚 VS 椤圭洰銆�
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   杩斿洖姝ょ被浣跨敤鐨勭紦瀛樼殑 ResourceManager 瀹炰緥銆�
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsFormsApp1.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   浣跨敤姝ゅ己绫诲瀷璧勬簮绫伙紝涓烘墍鏈夎祫婧愭煡鎵�
+        ///   閲嶅啓褰撳墠绾跨▼鐨� CurrentUICulture 灞炴�с��
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/WindowsFormsApp1/Properties/Resources.resx b/WindowsFormsApp1/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/WindowsFormsApp1/Properties/Resources.resx
@@ -0,0 +1,117 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/WindowsFormsApp1/Properties/Settings.Designer.cs b/WindowsFormsApp1/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..5d41208
--- /dev/null
+++ b/WindowsFormsApp1/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+锘�//------------------------------------------------------------------------------
+// <auto-generated>
+//     姝や唬鐮佺敱宸ュ叿鐢熸垚銆�
+//     杩愯鏃剁増鏈�:4.0.30319.42000
+//
+//     瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�
+//     閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便��
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace WindowsFormsApp1.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
diff --git a/WindowsFormsApp1/Properties/Settings.settings b/WindowsFormsApp1/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/WindowsFormsApp1/Properties/Settings.settings
@@ -0,0 +1,7 @@
+锘�<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
diff --git a/WindowsFormsApp1/TestAPI.Designer.cs b/WindowsFormsApp1/TestAPI.Designer.cs
new file mode 100644
index 0000000..cf1fcc1
--- /dev/null
+++ b/WindowsFormsApp1/TestAPI.Designer.cs
@@ -0,0 +1,74 @@
+锘縩amespace WindowsFormsApp1
+{
+    partial class TestAPI
+    {
+        /// <summary>
+        /// 蹇呴渶鐨勮璁″櫒鍙橀噺銆�
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// 娓呯悊鎵�鏈夋鍦ㄤ娇鐢ㄧ殑璧勬簮銆�
+        /// </summary>
+        /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows 绐椾綋璁捐鍣ㄧ敓鎴愮殑浠g爜
+
+        /// <summary>
+        /// 璁捐鍣ㄦ敮鎸佹墍闇�鐨勬柟娉� - 涓嶈淇敼
+        /// 浣跨敤浠g爜缂栬緫鍣ㄤ慨鏀规鏂规硶鐨勫唴瀹广��
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnCS = new System.Windows.Forms.Button();
+            this.txtTest = new System.Windows.Forms.TextBox();
+            this.SuspendLayout();
+            // 
+            // btnCS
+            // 
+            this.btnCS.Location = new System.Drawing.Point(365, 122);
+            this.btnCS.Name = "btnCS";
+            this.btnCS.Size = new System.Drawing.Size(75, 23);
+            this.btnCS.TabIndex = 0;
+            this.btnCS.Text = "娴嬭瘯";
+            this.btnCS.UseVisualStyleBackColor = true;
+            this.btnCS.Click += new System.EventHandler(this.btnCS_Click);
+            // 
+            // txtTest
+            // 
+            this.txtTest.Font = new System.Drawing.Font("瀹嬩綋", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.txtTest.Location = new System.Drawing.Point(225, 55);
+            this.txtTest.Multiline = true;
+            this.txtTest.Name = "txtTest";
+            this.txtTest.Size = new System.Drawing.Size(380, 51);
+            this.txtTest.TabIndex = 1;
+            // 
+            // TestAPI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(800, 450);
+            this.Controls.Add(this.txtTest);
+            this.Controls.Add(this.btnCS);
+            this.Name = "TestAPI";
+            this.Text = "娴嬭瘯";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnCS;
+        private System.Windows.Forms.TextBox txtTest;
+    }
+}
+
diff --git a/WindowsFormsApp1/TestAPI.cs b/WindowsFormsApp1/TestAPI.cs
new file mode 100644
index 0000000..bab09e8
--- /dev/null
+++ b/WindowsFormsApp1/TestAPI.cs
@@ -0,0 +1,152 @@
+锘縰sing Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using WebAPI;
+using WebAPI.Code;
+using WebAPI.Controllers;
+using WebAPI.Models;
+
+namespace WindowsFormsApp1
+{
+    public partial class TestAPI : Form
+    {
+        public TestAPI()
+        {
+            InitializeComponent();
+        }
+        private JsonResult objJsonResult = new JsonResult();
+        public static string GetSession(string sMsg)
+        {
+            try
+            {
+                string s = Common.GetSession();
+                return s;
+            }
+            catch (Exception e)
+            {
+                return "";
+            }
+        }
+        private void btnCS_Click(object sender, EventArgs e)
+        {
+          // // string a=string.Format(");
+          //  PayRollController web = new PayRollController();
+          //  //WebAPIController web2=new WebAPIController();
+          //  //string Json="{\"HState\":\"鏈‘璁",\"hmainid\":29,\"hdate\":\"2019-12-20\",\"hjhdate\":\"2019-12-20\",\"hbillno\":\"CGYH000000000072\",\"hbilltype\":\"1114\",\"hsupid\":2214,\"supHNumber\":\"01.001\",\"supHName\":\"鎴村皵锛堜腑鍥斤級鏈夐檺鍏徃\",\"hcurid\":0,\"curhnumber\":\"*\",\"curhname\":\"*\",\"hexrate\":0,\"HMTONO\":\"\",\"HEmpID\":0,\"hywnumber\":null,\"hywname\":null,\"hmanagerid\":0,\"hmanagerNumber\":null,\"hmanagerName\":null,\"HDeptID\":0,\"HDepNumber\":null,\"HDepName\":null,\"hexplanation\":\"\",\"hremark\":\"\",\"hinnerbillno\":\"\",\"hmaker\":\"admin\",\"hmakedate\":\"2019-12-20\",\"hchecker\":\"admin\",\"hcheckdate\":\"2019-12-20\",\"hupdater\":\"\",\"hupdatedate\":null,\"hcloseman\":\"\",\"hclosedate\":null,\"hdeleteman\":\"\",\"hdeletedate\":null,\"hsubid\":1,\"hmaterid\":178070,\"hmaterNumber\":\"CS0001\",\"hmaterName\":\"濉戞枡ABS\",\"hmaterModel\":\"榛戣壊楹婚潰閾佺毊\",\"hunitid\":2635,\"hunitNumber\":\"03\",\"hunitName\":\"kg\",\"HQty\":300,\"hprice\":0,\"hmoney\":0,\"HTaxPrice\":0,\"hEcloseman\":\"\",\"hclosetype\":false,\"hEremark\":\"\",\"HSourceInterID\":230087,\"HSourceEntryID\":1,\"HSourceBillNo\":\"POORD177806\",\"HSourceBillType\":\"71\",\"HPOOrderInterID\":230087,\"HPOOrderEntryID\":1,\"HPOOrderBillNo\":\"POORD177806\",\"sumQty\":0,\"HWsumQty\":300}";
+          //  //JObject job = JObject.Parse(Json);
+          ////  string json = "[{\"HInterID\":0,\"HEntryID\":0,\"HSourceInterID\":2213,\"HDate\":\"2017-12-12\",\"HSourceEntryID\":5,\"HRemark\":\"鎵撹崏鏈篐LT4027(56003871)\",\"HSourceBillNo\":\"NBA222\",\"SourceBillType\":\"\",\"HQty\":0,\"HPrice\":20,\"HMoney\":30,\"HPOOrderBillNo\":\"JJJJJ\"}]";
+          //  string json = "{\"HBillNo\":\"DD180730\",\"HDate\":\"2019-11-22T00:00:00\",\"HManagerName\":\"\",\"HManagerID\":\"0\",\"HSupName\":\"\",\"HSupID\":\"1034\",\"HRemark\":\"\",\"HEmpName\":\"\",\"HEmpID\":\"0\",\"HMakerDate\":\"\",\"HMaker\":\"姣涙槧鏄燶",\"HCheckDate\":\"2019-11-22T14:06:57\",\"HChecker\":\"姣涙槧鏄燶",\"HInterID\":\"55\"}";
+          ////  SaverPOInStock(json,json);//GetPOInStockShowBillSub
+          //  SaverPOInStock(json);
+          //  web2.GetPOInStockShowBillSub("28", "28,5;");
+            //if (job["hbillno"].ToString() == "CGYH000000000072")
+            //{
+            //    MessageBox.Show(job["hbillno"].ToString());
+            //}
+            //MessageBox.Show("娌″彇鍒帮紒");
+           // web.GetUser(Convert.ToInt64(txtTest.Text));
+           // web.GetUser();
+        }
+        public object SaverPOInStock(string 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();
+            //HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//鑾峰彇浼犵粺context
+            //HttpRequestBase request = context.Request;//瀹氫箟浼犵粺request瀵硅薄            
+            //string callback = request.Form["callback"];  
+
+            //using (StreamWriter sw = new StreamWriter(@"D:\log.txt"))
+            //{
+            //    sw.Write("callback:" + callback);
+            //}
+
+
+            ListModels oListModels = new ListModels();
+            try
+            {
+                DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill();
+                // TestDAL oBill = new TestDAL();
+                List<Model.ClsCg_POInStockBillMain> lsmain = new List<Model.ClsCg_POInStockBillMain>();
+                //msg2 = msg2.Substring(1, msg2.Length - 2);
+                msg = msg.Replace("\\", "");
+                msg = msg.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_POInStockMain(msg);
+                foreach (Model.ClsCg_POInStockBillMain oItem in lsmain)
+                {
+                    oItem.HMaker = GetSession("");
+                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
+                    oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
+                    oItem.HCurID = 1;
+                    oItem.HMainSourceInterID = oItem.HInterID;
+                    oItem.HInterID = DBUtility.ClsPub.CreateBillID("1103", ref DBUtility.ClsPub.sExeReturnInfo);
+                    oBill.omodel = oItem;
+                }
+                // msg2= "[{\"HMaterID\":70952,\"HMaterNumber\":\"3.02.DT127.006\",\"HMaterName\":\"鐧芥澘闈㈡澘\",\"HMaterModel\":\"榛戣壊楹婚潰閾佺毊 412 * 412 * 0.21mm 1鍑�1 468U00 - 04\n\",\"HUnitID\":249,\"HUnitName\":\"PCS\",\"HQty\":2268,\"HPrice\":0,\"HMoney\":0,\"HDate\":\"2019 / 12 / 18 0:00:00\",\"HDate2\":\"2019 / 12 / 20 8:30:22\",\"HSourceInterID\":819,\"HSourceEntryID\":4,\"HSourceBillNo\":\"CGPG000000000973\",\"HSourceBillType\":\"1114\",\"HPOOrderBillNo\":\"POORD047421\",\"HPOOrderInterID\":49365,\"HPOOrderEntryID\":5,\"HMTONO\":\"G19 - 339 - 05\"}]";
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                //  msg3 = msg3.Substring(1, msg3.Length - 2);
+                //msg3 = msg3.Replace("\\", "");
+                //msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsCg_POInStockBillSub> ls = new List<Model.ClsCg_POInStockBillSub>();
+                ls = oListModels.getObjectByJson_POInStockSub(msg);
+                int i = 1;
+                foreach (Model.ClsCg_POInStockBillSub oItemSub in ls)
+                {
+                    oItemSub.HEntryID = i;
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;
+                    oBill.DetailColl.Add(oItemSub);
+                    i++;
+                }
+                //淇濆瓨鍓嶅垽鏂�(鍗曟嵁鍙烽噸澶嶏紝绗斿綍椤圭洰)
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                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 = "淇濆瓨澶辫触锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = 1;
+                return objJsonResult;
+            }
+        }
+    }
+}
diff --git a/WindowsFormsApp1/TestAPI.csproj b/WindowsFormsApp1/TestAPI.csproj
new file mode 100644
index 0000000..58a5448
--- /dev/null
+++ b/WindowsFormsApp1/TestAPI.csproj
@@ -0,0 +1,185 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{FFED17B5-612D-404C-A9B8-628BA6DC3257}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>WindowsFormsApp1</RootNamespace>
+    <AssemblyName>WindowsFormsApp1</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+    <TargetFrameworkProfile />
+    <PublishUrl>鍙戝竷\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="BLL">
+      <HintPath>..\WebAPI\DLL\BLL.dll</HintPath>
+    </Reference>
+    <Reference Include="DAL">
+      <HintPath>..\WebAPI\DLL\DAL.dll</HintPath>
+    </Reference>
+    <Reference Include="DBUtility">
+      <HintPath>..\WebAPI\DLL\DBUtility.dll</HintPath>
+    </Reference>
+    <Reference Include="Model">
+      <HintPath>..\WebAPI\DLL\Model.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\WeChat Files\shenjie1112005\FileStorage\File\2019-12\webapi鎺ュ彛\FurjaFlatFormAPI\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
+    <Reference Include="Newtonsoft.Json.Net35">
+      <HintPath>..\WebAPI\DLL\Newtonsoft.Json.Net35.dll</HintPath>
+    </Reference>
+    <Reference Include="Pub_Class">
+      <HintPath>..\WebAPI\DLL\Pub_Class.dll</HintPath>
+    </Reference>
+    <Reference Include="Pub_Control">
+      <HintPath>..\WebAPI\DLL\Pub_Control.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\WebAPI\DLL\System.Net.Http.Formatting.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.Abstractions" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\WeChat Files\shenjie1112005\FileStorage\File\2019-12\webapi鎺ュ彛\FurjaFlatFormAPI\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>bin\Debug\System.Web.Http.WebHost.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="TestAPI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="TestAPI.Designer.cs">
+      <DependentUpon>TestAPI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <EmbeddedResource Include="TestAPI.resx">
+      <DependentUpon>TestAPI.cs</DependentUpon>
+    </EmbeddedResource>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config">
+      <SubType>Designer</SubType>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\WebAPI\WebAPI.csproj">
+      <Project>{5b60ce0c-963c-4dc2-91b3-0b471aac5438}</Project>
+      <Name>WebAPI</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include=".NETFramework,Version=v4.5">
+      <Visible>False</Visible>
+      <ProductName>Microsoft .NET Framework 4.5 %28x86 鍜� x64%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/WindowsFormsApp1/TestAPI.resx b/WindowsFormsApp1/TestAPI.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/WindowsFormsApp1/TestAPI.resx
@@ -0,0 +1,120 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git "a/\345\212\240\350\275\275\345\244\261\350\264\245.txt" "b/\345\212\240\350\275\275\345\244\261\350\264\245.txt"
new file mode 100644
index 0000000..e92a1a6
--- /dev/null
+++ "b/\345\212\240\350\275\275\345\244\261\350\264\245.txt"
@@ -0,0 +1 @@
+USEIIS 鏀逛负FALSE
\ No newline at end of file
diff --git "a/\347\211\251\346\226\231\346\235\241\347\240\201.grf" "b/\347\211\251\346\226\231\346\235\241\347\240\201.grf"
new file mode 100644
index 0000000..f310748
--- /dev/null
+++ "b/\347\211\251\346\226\231\346\235\241\347\240\201.grf"
@@ -0,0 +1,452 @@
+锘縊bject Report
+	Version='6.0.0.6'
+	Title='浣犵殑鎶ヨ〃鏍囬'
+	PrintAsDesignPaper=F
+	Object Font
+		Name='瀹嬩綋'
+		Size=105000,0
+		Weight=400
+		Charset=134
+	End
+	Object Printer
+		Size=256
+		Width=8
+		Height=6
+		LeftMargin=0
+		TopMargin=0
+		RightMargin=0
+		BottomMargin=0
+	End
+	Object DetailGrid
+		CenterView=T
+		ShowColLine=F
+		ShowRowLine=F
+		Object Border
+			Object Pen
+				Width=1.5
+			End
+		End
+		Object Recordset
+			Items Field
+				Item
+					Name='鏉$爜缂栧彿'
+				End
+				Item
+					Name='杩涙枡鏃ユ湡'
+					Type=DateTime
+					Format='yyyy//MM//dd'
+				End
+				Item
+					Name='鎵瑰彿'
+				End
+				Item
+					Name='鐗╂枡浠g爜'
+				End
+				Item
+					Name='鐗╂枡鍚嶇О'
+				End
+				Item
+					Name='瑙勬牸鍨嬪彿'
+				End
+				Item
+					Name='鏁伴噺'
+					Type=Currency
+				End
+				Item
+					Name='渚涘簲鍟嗕唬鐮�'
+				End
+				Item
+					Name='渚涘簲鍟�'
+				End
+				Item
+					Name='杞﹂棿'
+				End
+			End
+		End
+		Items Column
+			Item
+				Name='Column1'
+				Width=7.9375
+			End
+		End
+		Object ColumnContent
+			Height=5.79438
+			Items ColumnContentCell
+				Item
+					Column='Column1'
+					FreeCell=T
+					Items Control
+						Item
+							Type=Barcode
+							Name='Barcode4'
+							Left=4.89479
+							Top=0.370417
+							Width=2.59292
+							Height=2.40771
+							BarcodeType=QRCode
+							CheckSum=T
+							Text='[#鏉$爜缂栧彿#]'
+							Object Font
+								Name='榛戜綋'
+								Size=67500,0
+								Weight=400
+								Charset=134
+							End
+						End
+						Item
+							Type=Line
+							Name='Line32'
+							Left=0.15875
+							Top=1.08479
+							Width=4.58
+						End
+						Item
+							Type=Line
+							Name='Line33'
+							Left=0.15875
+							Top=0.185208
+							Height=5.45
+							U2D=F
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox18'
+							Left=1.69333
+							Top=2.06375
+							Width=2.98979
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#鐗╂枡浠g爜#]'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox20'
+							Left=0.185208
+							Top=0.47625
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='鏃ユ湡'
+						End
+						Item
+							Type=Line
+							Name='Line34'
+							Left=0.15875
+							Top=2.88396
+							Width=7.51417
+						End
+						Item
+							Type=Line
+							Name='Line35'
+							Left=0.15875
+							Top=0.185208
+							Width=7.51417
+						End
+						Item
+							Type=Line
+							Name='Line36'
+							Left=0.15875
+							Top=1.98438
+							Width=4.57729
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox21'
+							Left=0.185208
+							Top=2.27542
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='浠g爜'
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox20'
+							Left=1.69333
+							Top=0.264583
+							Width=2.98979
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#杩涙枡鏃ユ湡#]'
+						End
+						Item
+							Type=Line
+							Name='Line41'
+							Left=1.50813
+							Top=0.185208
+							Height=5.45
+							U2D=F
+						End
+						Item
+							Type=Line
+							Name='Line42'
+							Left=7.67292
+							Top=0.185208
+							Height=5.45
+							U2D=F
+						End
+						Item
+							Type=Line
+							Name='Line43'
+							Left=0.15875
+							Top=3.81
+							Width=7.51417
+						End
+						Item
+							Type=Line
+							Name='Line44'
+							Left=0.15875
+							Top=4.70958
+							Width=7.51417
+						End
+						Item
+							Type=Line
+							Name='Line45'
+							Left=0.15875
+							Top=5.60917
+							Width=7.51417
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox21'
+							Left=1.69333
+							Top=4.78896
+							Width=5.82083
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#渚涘簲鍟嗕唬鐮�#][#渚涘簲鍟�#]'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox22'
+							Left=0.185208
+							Top=5.00063
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='渚涘簲鍟�'
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox22'
+							Left=1.69333
+							Top=3.86292
+							Width=5.82083
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#鐗╂枡鍚嶇О#]'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox23'
+							Left=0.185208
+							Top=4.07458
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='鍚嶇О'
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox23'
+							Left=1.69333
+							Top=2.96333
+							Width=2.98979
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#瑙勬牸鍨嬪彿#]'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox24'
+							Left=0.185208
+							Top=3.175
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='瑙勬牸'
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox24'
+							Left=1.69333
+							Top=1.16417
+							Width=2.98979
+							Height=0.79375
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#鎵瑰彿#]'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox25'
+							Left=0.185208
+							Top=1.37583
+							Width=1.32292
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='鎵瑰彿'
+						End
+						Item
+							Type=StaticBox
+							Name='StaticBox26'
+							Left=4.70958
+							Top=3.175
+							Width=1.00542
+							Height=0.396875
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Weight=400
+								Charset=134
+							End
+							WordWrap=T
+							TextAlign=MiddleCenter
+							Text='鏁伴噺'
+						End
+						Item
+							Type=MemoBox
+							Name='MemoBox25'
+							Left=5.79438
+							Top=2.96333
+							Width=1.79917
+							Height=0.820208
+							Object Font
+								Name='榛戜綋'
+								Size=105000,0
+								Bold=T
+								Charset=134
+							End
+							ShrinkFontToFit=T
+							WordWrap=T
+							Text='[#鏁伴噺#]'
+						End
+						Item
+							Type=Line
+							Name='Line47'
+							Left=5.715
+							Top=2.88396
+							Height=0.95
+							U2D=F
+						End
+						Item
+							Type=Line
+							Name='Line46'
+							Left=4.70958
+							Top=0.185208
+							Height=3.65
+							U2D=F
+						End
+					End
+				End
+			End
+		End
+		Object ColumnTitle
+			Height=0
+			Items ColumnTitleCell
+				Item
+					GroupTitle=F
+					Column='Column1'
+					TextAlign=MiddleCenter
+					Text='Column1'
+				End
+			End
+		End
+	End
+	Items ReportHeader
+		Item
+			Name='ReportHeader1'
+			Height=0
+			RepeatOnPage=T
+		End
+	End
+	Items ReportFooter
+		Item
+			Name='ReportFooter1'
+			Height=0
+		End
+	End
+End
diff --git "a/\350\276\223\345\207\272-\347\224\237\346\210\220.txt" "b/\350\276\223\345\207\272-\347\224\237\346\210\220.txt"
new file mode 100644
index 0000000..7f2d00c
--- /dev/null
+++ "b/\350\276\223\345\207\272-\347\224\237\346\210\220.txt"
@@ -0,0 +1,23 @@
+锘�1>------ 宸插惎鍔ㄧ敓鎴�:  椤圭洰: WebAPI, 閰嶇疆: Release Any CPU ------
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3277: 鍙戠幇鍚屼竴渚濊禆绋嬪簭闆嗙殑涓嶅悓鐗堟湰闂村瓨鍦ㄦ棤娉曡В鍐崇殑鍐茬獊銆� 褰撴棩蹇楄缁嗕俊鎭缃负鈥滆缁嗏�濇椂锛岃繖浜涘紩鐢ㄥ啿绐佸皢浼氬湪鐢熸垚鏃ュ織涓垪鍑恒��
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3270: 鎵�鐢熸垚椤圭洰鐨勫鐞嗗櫒鏋舵瀯鈥淢SIL鈥濅笌寮曠敤鈥淏LL, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86鈥濈殑澶勭悊鍣ㄦ灦鏋勨�渪86鈥濅笉鍖归厤銆傝繖绉嶄笉鍖归厤鍙兘浼氬鑷磋繍琛屾椂澶辫触銆傝鑰冭檻閫氳繃閰嶇疆绠$悊鍣ㄦ洿鏀规偍鐨勯」鐩殑鐩爣澶勭悊鍣ㄦ灦鏋勶紝浠ヤ娇鎮ㄧ殑椤圭洰涓庡紩鐢ㄩ棿鐨勫鐞嗗櫒鏋舵瀯淇濇寔涓�鑷达紝鎴栬�呬负寮曠敤鍏宠仈涓�涓笌鎮ㄧ殑椤圭洰鐨勭洰鏍囧鐞嗗櫒鏋舵瀯鐩哥鐨勫鐞嗗櫒鏋舵瀯銆�
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3270: 鎵�鐢熸垚椤圭洰鐨勫鐞嗗櫒鏋舵瀯鈥淢SIL鈥濅笌寮曠敤鈥淒BUtility, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86鈥濈殑澶勭悊鍣ㄦ灦鏋勨�渪86鈥濅笉鍖归厤銆傝繖绉嶄笉鍖归厤鍙兘浼氬鑷磋繍琛屾椂澶辫触銆傝鑰冭檻閫氳繃閰嶇疆绠$悊鍣ㄦ洿鏀规偍鐨勯」鐩殑鐩爣澶勭悊鍣ㄦ灦鏋勶紝浠ヤ娇鎮ㄧ殑椤圭洰涓庡紩鐢ㄩ棿鐨勫鐞嗗櫒鏋舵瀯淇濇寔涓�鑷达紝鎴栬�呬负寮曠敤鍏宠仈涓�涓笌鎮ㄧ殑椤圭洰鐨勭洰鏍囧鐞嗗櫒鏋舵瀯鐩哥鐨勫鐞嗗櫒鏋舵瀯銆�
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3270: 鎵�鐢熸垚椤圭洰鐨勫鐞嗗櫒鏋舵瀯鈥淢SIL鈥濅笌寮曠敤鈥淧ub_Class, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86鈥濈殑澶勭悊鍣ㄦ灦鏋勨�渪86鈥濅笉鍖归厤銆傝繖绉嶄笉鍖归厤鍙兘浼氬鑷磋繍琛屾椂澶辫触銆傝鑰冭檻閫氳繃閰嶇疆绠$悊鍣ㄦ洿鏀规偍鐨勯」鐩殑鐩爣澶勭悊鍣ㄦ灦鏋勶紝浠ヤ娇鎮ㄧ殑椤圭洰涓庡紩鐢ㄩ棿鐨勫鐞嗗櫒鏋舵瀯淇濇寔涓�鑷达紝鎴栬�呬负寮曠敤鍏宠仈涓�涓笌鎮ㄧ殑椤圭洰鐨勭洰鏍囧鐞嗗櫒鏋舵瀯鐩哥鐨勫鐞嗗櫒鏋舵瀯銆�
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3270: 鎵�鐢熸垚椤圭洰鐨勫鐞嗗櫒鏋舵瀯鈥淢SIL鈥濅笌寮曠敤鈥淧ub_Control, Version=1.0.6632.19241, Culture=neutral, processorArchitecture=x86鈥濈殑澶勭悊鍣ㄦ灦鏋勨�渪86鈥濅笉鍖归厤銆傝繖绉嶄笉鍖归厤鍙兘浼氬鑷磋繍琛屾椂澶辫触銆傝鑰冭檻閫氳繃閰嶇疆绠$悊鍣ㄦ洿鏀规偍鐨勯」鐩殑鐩爣澶勭悊鍣ㄦ灦鏋勶紝浠ヤ娇鎮ㄧ殑椤圭洰涓庡紩鐢ㄩ棿鐨勫鐞嗗櫒鏋舵瀯淇濇寔涓�鑷达紝鎴栬�呬负寮曠敤鍏宠仈涓�涓笌鎮ㄧ殑椤圭洰鐨勭洰鏍囧鐞嗗櫒鏋舵瀯鐩哥鐨勫鐞嗗櫒鏋舵瀯銆�
+1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3270: 鎵�鐢熸垚椤圭洰鐨勫鐞嗗櫒鏋舵瀯鈥淢SIL鈥濅笌寮曠敤鈥淪QLHelper, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86鈥濈殑澶勭悊鍣ㄦ灦鏋勨�渪86鈥濅笉鍖归厤銆傝繖绉嶄笉鍖归厤鍙兘浼氬鑷磋繍琛屾椂澶辫触銆傝鑰冭檻閫氳繃閰嶇疆绠$悊鍣ㄦ洿鏀规偍鐨勯」鐩殑鐩爣澶勭悊鍣ㄦ灦鏋勶紝浠ヤ娇鎮ㄧ殑椤圭洰涓庡紩鐢ㄩ棿鐨勫鐞嗗櫒鏋舵瀯淇濇寔涓�鑷达紝鎴栬�呬负寮曠敤鍏宠仈涓�涓笌鎮ㄧ殑椤圭洰鐨勭洰鏍囧鐞嗗櫒鏋舵瀯鐩哥鐨勫鐞嗗櫒鏋舵瀯銆�
+1>  WebAPI -> C:\Users\lenovo\documents\visual studio 2013\Projects\WebAPI\WebAPI\bin\WebAPI.dll
+2>------ 鍙戝竷宸插惎鍔�:  椤圭洰: WebAPI, 閰嶇疆: Release Any CPU ------
+2>姝e湪杩炴帴鍒� D:\缃戠珯鍙戝竷\WebSite...
+2>宸蹭娇鐢� C:\Users\lenovo\documents\visual studio 2013\Projects\WebAPI\WebAPI\Web.Release.config 灏� Web.config 杞崲涓� obj\Release\TransformWebConfig\transformed\Web.config銆�
+2>姝e湪灏嗘墍鏈夋枃浠堕兘澶嶅埗鍒颁互涓嬩复鏃朵綅缃互杩涜鎵撳寘/鍙戝竷:
+2>obj\Release\Package\PackageTmp銆�
+2>姝e湪鍙戝竷鏂囦欢澶� /...
+2>姝e湪鍙戝竷鏂囦欢澶� bin...
+2>姝e湪鍙戝竷鏂囦欢澶� bin/zh-Hans...
+2>姝e湪鍙戝竷鏂囦欢澶� DLL...
+2>姝e湪鍙戝竷鏂囦欢澶� Metadata...
+2>姝e湪鍙戝竷鏂囦欢澶� Metadata/deploymentTemplates...
+2>Web 搴旂敤宸叉垚鍔熷彂甯� file:///D:/%E7%BD%91%E7%AB%99%E5%8F%91%E5%B8%83/WebSite
+2>
+========== 鐢熸垚:  鎴愬姛 1 涓紝澶辫触 0 涓紝鏈�鏂� 0 涓紝璺宠繃 0 涓� ==========
+========== 鍙戝竷:  鎴愬姛 1 涓紝澶辫触 0 涓紝璺宠繃 0 涓� ==========

--
Gitblit v1.9.1