From 8e36d179829288e44676e3427fbfb5a77b4b053a Mon Sep 17 00:00:00 2001
From: zgq <519541279@qq.com>
Date: 星期二, 20 四月 2021 21:43:40 +0800
Subject: [PATCH] 新增委外工序接收单模块

---
 WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs       |   75 +
 WebAPI/Models/Sc_ProcessPlanViewModel.cs                    |    3 
 WebAPI/Controllers/BaseSet/Gy_MaterialController.cs         |   47 
 WebAPI/DLL/ClsQC_NoPassProdCheckBill.cs                     |  554 ++++++++++
 WebAPI/Models/Sc_ProcessSendWorkViewModel.cs                |  286 +++++
 WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs  |   75 +
 WebAPI.v12.suo                                              |    0 
 WebAPI/Controllers/WebAPIController.cs                      |  124 ++
 WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs         |   75 +
 WebAPI/DLL/ClsSc_ProcessReport.cs                           |  445 ++++++++
 WebAPI/Controllers/XSGL/Xs_SeOrderBillController.cs         |   75 +
 WebAPI/ListModels.cs                                        |   66 +
 WebAPI/Controllers/Sc_CheckToolsRepairWorkBillController.cs |  445 ++++++++
 WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs   |   75 +
 WebAPI/Controllers/Sc_ProcessMangementController.cs         |  519 +++++++++
 WebAPI/Properties/PublishProfiles/API.pubxml.user           |   11 
 WebAPI/Controllers/CGGL/WW_EntrustOrderBillController.cs    |   75 +
 WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs      |   75 +
 WebAPI/WebAPI.csproj                                        |   12 
 WebAPI/Models/Sc_ProcessReportViewModel.cs                  |  170 ++
 20 files changed, 3,171 insertions(+), 36 deletions(-)

diff --git a/WebAPI.v12.suo b/WebAPI.v12.suo
index 9e74e9c..6338a71 100644
--- a/WebAPI.v12.suo
+++ b/WebAPI.v12.suo
Binary files differ
diff --git a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
index bf6b618..4578cc0 100644
--- a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
@@ -165,6 +165,53 @@
             }
         }
 
+        /// <summary>
+        /// 杩斿洖鏉$爜妗f鍒楄〃
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Gy_BarCodeBillList/GetBarCodeBillList")]
+        [HttpGet]
+        public object GetBarCodeBillList(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_BarCodeBillList " + sWhere, "h_v_IF_BarCodeBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_BarCodeBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_BarCodeBillList");
+                }
+                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "false锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
 
 
         //
diff --git a/WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs b/WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs
new file mode 100644
index 0000000..8973803
--- /dev/null
+++ b/WebAPI/Controllers/CGGL/Cg_POInStockBackBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //閫�鏂欓�氱煡鍗旵ontroller
+    public class Cg_POInStockBackBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖閫�鏂欓�氱煡鍗曞垪琛�
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Cg_POInStockBackBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBackBillList " + sWhere, "h_v_IF_POInStockBackBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_POInStockBackBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBackBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs b/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
new file mode 100644
index 0000000..e48d969
--- /dev/null
+++ b/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //鏀舵枡閫氱煡鍗旵ontroller
+    public class Cg_POInStockBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖鏀舵枡閫氱煡鍗曞垪琛�
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Cg_POInStockBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_POInStockBillList " + sWhere, "h_v_IF_POInStockBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_POInStockBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_POInStockBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs b/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
new file mode 100644
index 0000000..964cfac
--- /dev/null
+++ b/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //閲囪喘璁㈠崟Controller
+    public class Cg_POOrderBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖閲囪喘璁㈠崟鍒楄〃
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Cg_POOrderBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_POOrderBillList " + sWhere, "h_v_IF_POOrderBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_POOrderBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_POOrderBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/CGGL/WW_EntrustOrderBillController.cs b/WebAPI/Controllers/CGGL/WW_EntrustOrderBillController.cs
new file mode 100644
index 0000000..a2e6028
--- /dev/null
+++ b/WebAPI/Controllers/CGGL/WW_EntrustOrderBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //濮斿璁㈠崟Controller
+    public class WW_EntrustOrderBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖濮斿璁㈠崟鍒楄〃
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("WW_EntrustOrderBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_EntrustOrderBillList " + sWhere, "h_v_IF_EntrustOrderBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_EntrustOrderBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_EntrustOrderBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/Sc_CheckToolsRepairWorkBillController.cs b/WebAPI/Controllers/Sc_CheckToolsRepairWorkBillController.cs
index 8971041..30b672e 100644
--- a/WebAPI/Controllers/Sc_CheckToolsRepairWorkBillController.cs
+++ b/WebAPI/Controllers/Sc_CheckToolsRepairWorkBillController.cs
@@ -68,6 +68,10 @@
         }
 
 
+
+      
+
+
         /// <summary>
         /// 妫�鍏风偣妫�璁″垝琛ㄥ垪琛�
         /// </summary>
@@ -712,6 +716,447 @@
         #endregion
 
 
+        /// <summary>
+        /// 璋冩嫧鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_MoveStockBill/GetMoveStockBillList")]
+        [HttpGet]
+        public object GetMoveStockBillList(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetMoveStockBillList(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetMoveStockBillList(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_MoveStockBillList ", "h_v_IF_MoveStockBillList");
+        }
+        #endregion
+
+        /// <summary>
+        /// 鐢熶骇棰嗘枡鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_MateOutBill/GetMateOutBillList")]
+        [HttpGet]
+        public object GetMateOutBillList(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetMateOutBillList(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetMateOutBillList(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_MateOutBillList ", "h_v_IF_MateOutBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 閿�鍞嚭搴撳崟鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_SellOutBill/GetSellOutBillList")]
+        [HttpGet]
+        public object GetSellOutBillList(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetSellOutBillList(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetSellOutBillList(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_SellOutBillList ", "h_v_IF_SellOutBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 鍏朵粬鍑哄簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_OtherOutBill/GetOtherOutBillList")]
+        [HttpGet]
+        public object GetOtherOutBillList(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetOtherOutBillList(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetOtherOutBillList(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Kf_OtherOutBillList ", "h_v_Kf_OtherOutBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 濮斿鍑哄簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_EntrustOutBill/GetEntrustOutBill")]
+        [HttpGet]
+        public object GetEntrustOutBill(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetEntrustOutBill(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetEntrustOutBill(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Kf_EntrustOutBillList ", "h_v_Kf_EntrustOutBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 閲囪喘鍏ュ簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_POStockInBill/GetPOStockInBill")]
+        [HttpGet]
+        public object GetPOStockInBill(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetPOStockInBill(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetPOStockInBill(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_POStockInBillList ", "h_v_IF_POStockInBillList");
+        }
+        #endregion
+
+
+
+        /// <summary>
+        /// 浜у搧鍏ュ簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_ProductInBill/GetProductInBill")]
+        [HttpGet]
+        public object GetProductInBill(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetProductInBill(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetProductInBill(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_IF_ProductInBillList ", "h_v_IF_ProductInBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 鍏朵粬鍏ュ簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_OtherInBill/GetOtherInBill")]
+        [HttpGet]
+        public object GetOtherInBill(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetOtherInBill(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetOtherInBill(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Kf_OtherInBillList ", "h_v_Kf_OtherInBillList");
+        }
+        #endregion
+
+
+        /// <summary>
+        /// 濮斿鍏ュ簱鍗曞垪琛�
+        /// </summary>
+        /// <returns></returns>
+        [Route("Kf_EntrustInBill/GetEntrustInBill")]
+        [HttpGet]
+        public object GetEntrustInBill(string sWhere)
+        {
+            try
+            {
+
+                ds = Sc_GetEntrustInBill(sWhere);
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception ex)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + ex.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #region sql璇彞
+
+
+        public static DataSet Sc_GetEntrustInBill(string sWhere)
+        {
+            return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Kf_EntrustInBillList ", "h_v_Kf_EntrustInBillList");
+        }
+        #endregion
+
+
         //娴嬭瘯涓撶敤鎺ュ彛
         [Route("LookingFor/Test")]
         [HttpGet]
diff --git a/WebAPI/Controllers/Sc_ProcessMangementController.cs b/WebAPI/Controllers/Sc_ProcessMangementController.cs
index b2b315a..2a2139f 100644
--- a/WebAPI/Controllers/Sc_ProcessMangementController.cs
+++ b/WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -444,6 +444,42 @@
             return GetObjectJson(ds);
         }
 
+
+        /// <summary>
+        /// 杩斿洖涓嶅悎鏍艰瘎瀹″垪琛�
+        /// </summary>
+        /// <param name="sWhere"></param>
+        /// <returns></returns>
+        [Route("Sc_ProcessMangement/MES_QC_NoPassProdCheckBill_Json")]
+        [HttpGet]
+        public object MES_QC_NoPassProdCheckBill_Json(string sWhere)
+        {
+            DataSet ds;
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select top 500 * from h_v_QC_NoPassProdCheckBillList ", "h_v_QC_NoPassProdCheckBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_QC_NoPassProdCheckBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_QC_NoPassProdCheckBillList");
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "娌℃湁杩斿洖浠讳綍璁板綍锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            return GetObjectJson(ds);
+        }
+
         /// <summary>
         /// PDA宸ュ簭姹囨姤鍗曚繚瀛�
         /// </summary>
@@ -458,25 +494,50 @@
             ListModels oListModels = new ListModels();
             try
             {
-                DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
+                WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport();
                 List<WebAPI.Models.Sc_ProcessReportViewModel> ls = new List<WebAPI.Models.Sc_ProcessReportViewModel>();
                 ls = oListModels.getObjectByJson_Report(msg1);
                 int i = 0;
-                Model.ClsSc_ProcessReportMain ReportMain = new Model.ClsSc_ProcessReportMain();
-                Model.ClsSc_ProcessReportSub ReportSub = new Model.ClsSc_ProcessReportSub();
+              
                 foreach (Models.Sc_ProcessReportViewModel ItemView in ls)
                 {
                     i++;
+                    Model.ClsSc_ProcessReportMain ReportMain = new Model.ClsSc_ProcessReportMain();
+                    Model.ClsSc_ProcessReportSub ReportSub = new Model.ClsSc_ProcessReportSub();
                     //宸ュ簭姹囨姤鍗曚富琛ㄤ繚瀛�
                     ReportMain.HBillType = "3714";
                     ReportMain.HBillNo = ItemView.HBillNo;
                     ReportMain.HMakeDate=DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
                     ReportMain.HYear=DBUtility.ClsPub.isLong(DateTime.Now.Year);
                     ReportMain.HDate = DateTime.Now;
-                    ReportMain.HInterID = ItemView.HInterID;
                     ReportMain.HMaker = ItemView.HEmp;
                     ReportMain.HCloseType = false;
                     ReportMain.HPlanQty = (double)ItemView.HQty;
+                    ReportMain.HMainSourceInterID = ItemView.HInterID;
+                    ReportMain.HInterID =0;
+                    ReportMain.HPeriod = 1;
+                    ReportMain.HBillSubType = "3714";
+                    ReportMain.HBillStatus = 0;
+                    ReportMain.HCheckItemNowID = 0;
+                    ReportMain.HCheckItemNextID = 0;
+                    ReportMain.HICMOInterID= (long)ItemView.HICMOInterID;
+                    ReportMain.HICMOBillNo=ItemView.HICMOBillNo;
+                    ReportMain.HDeptID = (long)ItemView.HDeptID;
+                    ReportMain.HDeptNumber =ItemView.HDeptNumber;
+                    ReportMain.HGroupID = (long)ItemView.HGroupID;
+                    ReportMain.HGroupNumber = ItemView.HGroupNumber;
+                    ReportMain.HMaterID = (long)ItemView.HMaterID;
+                    ReportMain.HMaterNumber = ItemView.HMaterNumber;
+                    ReportMain.HUnitID = ItemView.HUnitID;
+                    ReportMain.HUnitNumber = ItemView.HUnitNumber;
+                    ReportMain.HInStockQty = 0;
+                    ReportMain.HSumTimes = 0;
+                    ReportMain.HExplanation = "";
+                    ReportMain.HInnerBillNo = "";
+                    ReportMain.HSupID = 0;
+                   
+
+
                     //淇濆瓨鍒版眹鎶ュ崟涓昏〃
                     ReportModel.omodel = ReportMain;
 
@@ -491,6 +552,64 @@
                     ReportSub.HCloseType = false;
                     ReportSub.HSourceBillType = "3712";
                     ReportSub.HQty = (double)ItemView.HQty;
+                    ReportSub.HProcID = ItemView.HProcID;
+                    ReportSub.HProcNumber = ItemView.HProcNumber;
+                    ReportSub.HOutPrice =0;
+                    ReportSub.HOutMoney = 0;
+                    ReportSub.HSourceID = (long)ItemView.HSourceID;
+                    ReportSub.HEmpNumber = "";
+                    ReportSub.HRelBeginDate = DateTime.Now;
+                    ReportSub.HRelEndDate = DateTime.Now;
+                    ReportSub.HTimes =3;
+                    ReportSub.HSeOrderInterID = 0;
+                    ReportSub.HSeOrderEntryID =0;
+                    ReportSub.HSeOrderBillNo = "";
+                    ReportSub.HProcPlanInterID = 0;
+                    ReportSub.HProcPlanBillNo = "";
+                    ReportSub.HSourceInterID = 0;
+                    ReportSub.HSourceBillNo = "";
+                    ReportSub.HRelationQty = 0;
+                    ReportSub.HRelationMoney = 0;
+                    ReportSub.HMaterID = (long)ItemView.HMaterID;
+                    ReportSub.HMaterNumber = ItemView.HMaterNumber;
+                    ReportSub.HCheckQty =0;
+                    ReportSub.HBadCount =0;
+                    ReportSub.HWasterQty =0;
+                    ReportSub.HWasterQty2 =0;
+                    ReportSub.HPrice =0;
+                    ReportSub.HMoney =0;
+                    ReportSub.HProcPlanInterID =0;
+                    ReportSub.HProcPlanEntryID =0;
+                    ReportSub.HProcPlanBillNo ="";
+                    ReportSub.HSourceEntryID =0;
+                    ReportSub.HSourceBillType ="";
+                    ReportSub.HRelationQty =0;
+                    ReportSub.HRelationMoney =0;
+                    ReportSub.HBadPrirce =0;
+                    ReportSub.HBadMoney =0;
+                    ReportSub.HWasterPrice =0;
+                    ReportSub.HWasterMoney =0;
+                    ReportSub.HQualityRate =0;
+                    ReportSub.HSecUnitQty1 =0;
+                    ReportSub.HSecUnitRate1=0;
+                    ReportSub.HSecUnitQty2=0;
+                    ReportSub.HSecUnitRate2=0;
+                    ReportSub.HUsingQty=0;
+                    ReportSub.HSelfBadCount=0;
+                    ReportSub.HPreBadCount=0;
+                    ReportSub.HPayMentQty=0;
+                    ReportSub.HOtherDeduct=0;
+                    ReportSub.HRelPay=0;
+                    ReportSub.HOtherItem1="";
+                    ReportSub.HOtherItem2="";
+                    ReportSub.HOtherItem3="";
+                    ReportSub.HOtherItem4="";
+                    ReportSub.HOtherItem5="";
+                    ReportSub.HPackType="";
+                    ReportSub.HCheckEmpID=0;
+                    ReportSub.HWeight=0;
+                    ReportSub.HBatchNo="";
+                   
                     //淇濆瓨鍒版眹鎶ュ崟瀛愯〃
                     ReportModel.DetailColl.Add(ReportSub);
                 }
@@ -559,7 +678,397 @@
             return model;
         }
 
+        /// <summary>
+        /// 淇濆瓨宸ュ簭姹囨姤鍗曚俊鎭�
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        [Route("SaveProcessReportList")]
+        [HttpPost]
+        public object SaveProcessReportList([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();
+            
+            ListModels oListModels = new ListModels();
+            try
+            {
+                WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport();
+                List<Model.ClsSc_ProcessReportMain> lsmain = new List<Model.ClsSc_ProcessReportMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_Reportlist(msg2);
+                foreach (Model.ClsSc_ProcessReportMain 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.HBillType = "3714";
+                    //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.HPlanQty) == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊~鍐欐淳宸ユ暟閲忥紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    ReportModel.omodel = oItem;
+                }
 
-        //
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                msg2 = msg2.Replace("'", "鈥�");
+                List<WebAPI.Models.Sc_ProcessSendWorkViewModel> ls = new List<WebAPI.Models.Sc_ProcessSendWorkViewModel>();
+                ls = oListModels.getObjectByJson_ViewReportlist(msg3);
+                int i = 0;
+                //瀹氫箟姹囨姤鍗曞瓙琛ㄩ泦鍚堢敤浜庡瓨鏀句笅鎺ㄦ淳宸ュ崟鐨勫琛屾暟鎹�
+                List<Model.ClsSc_ProcessReportSub> lsReportSub = new List<Model.ClsSc_ProcessReportSub>();
+                foreach (WebAPI.Models.Sc_ProcessSendWorkViewModel ItemView in ls)
+                {
+                   
+                    i++;
+                    Model.ClsSc_ProcessReportSub reportSub = new Model.ClsSc_ProcessReportSub();
+                    if (ItemView.鏁伴噺 <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屾暟閲忎笉澶т簬0鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    if ((double)ItemView.鏁伴噺 < ReportModel.omodel.HPlanQty)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佸伐搴忔眹鎶ュ崟绱姹囨姤鏁伴噺涓嶈兘澶т簬婧愬崟鏁伴噺锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+
+
+                    reportSub.HEntryID = i;
+                    reportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    reportSub.HRemark = "";
+                    reportSub.HCloseMan = "";
+                    reportSub.HCloseType = false;
+                    reportSub.HEmpID =0;
+                    reportSub.HICMOBillNo ="";
+                    reportSub.HICMOInterID = (long)ItemView.HICMOInterID;
+                    reportSub.HEntryID = i;
+                    reportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    reportSub.HRemark = "";
+                    reportSub.HCloseMan = "";
+                    reportSub.HCloseType = false;
+                    reportSub.HSourceBillType = "3712";
+                    reportSub.HQty = (double)ItemView.鏁伴噺;
+                    reportSub.HProcID = (long)ItemView.HprocID;
+                    reportSub.HProcNumber = ItemView.宸ュ簭浠g爜;
+                    reportSub.HOutPrice = 0;
+                    reportSub.HOutMoney = 0;
+                    reportSub.HSourceID = (long)ItemView.HSourceID;
+                    reportSub.HEmpNumber = "";
+                    reportSub.HRelBeginDate = DateTime.Now;
+                    reportSub.HRelEndDate = DateTime.Now;
+                    reportSub.HTimes = 3;
+                    reportSub.HSeOrderInterID = 0;
+                    reportSub.HSeOrderEntryID = 0;
+                    reportSub.HSeOrderBillNo = "";
+                    reportSub.HProcPlanInterID = 0;
+                    reportSub.HProcPlanBillNo = "";
+                    reportSub.HSourceInterID = 0;
+                    reportSub.HSourceBillNo = "";
+                    reportSub.HRelationQty = 0;
+                    reportSub.HRelationMoney = 0;
+                    reportSub.HMaterID = (long)ItemView.HMaterID;
+                    reportSub.HMaterNumber = ItemView.鐗╂枡浠g爜;
+                    reportSub.HCheckQty = 0;
+                    reportSub.HBadCount = 0;
+                    reportSub.HWasterQty = 0;
+                    reportSub.HWasterQty2 = 0;
+                    reportSub.HPrice = 0;
+                    reportSub.HMoney = 0;
+                    reportSub.HProcPlanInterID = 0;
+                    reportSub.HProcPlanEntryID = 0;
+                    reportSub.HProcPlanBillNo = "";
+                    reportSub.HSourceEntryID = 0;
+                    reportSub.HSourceBillType = "";
+                    reportSub.HRelationQty = 0;
+                    reportSub.HRelationMoney = 0;
+                    reportSub.HBadPrirce = 0;
+                    reportSub.HBadMoney = 0;
+                    reportSub.HWasterPrice = 0;
+                    reportSub.HWasterMoney = 0;
+                    reportSub.HQualityRate = 0;
+                    reportSub.HSecUnitQty1 = 0;
+                    reportSub.HSecUnitRate1 = 0;
+                    reportSub.HSecUnitQty2 = 0;
+                    reportSub.HSecUnitRate2 = 0;
+                    reportSub.HUsingQty = 0;
+                    reportSub.HSelfBadCount = 0;
+                    reportSub.HPreBadCount = 0;
+                    reportSub.HPayMentQty = 0;
+                    reportSub.HOtherDeduct = 0;
+                    reportSub.HRelPay = 0;
+                    reportSub.HOtherItem1 = "";
+                    reportSub.HOtherItem2 = "";
+                    reportSub.HOtherItem3 = "";
+                    reportSub.HOtherItem4 = "";
+                    reportSub.HOtherItem5 = "";
+                    reportSub.HPackType = "";
+                    reportSub.HCheckEmpID = 0;
+                    reportSub.HWeight = 0;
+                    reportSub.HBatchNo = "";
+
+                    lsReportSub.Add(reportSub);
+
+                }
+                if (lsReportSub.Count>0)
+                {
+                    //鐒跺悗鍦ㄥ惊鐜繚瀛樺埌姹囨姤浣嗗瓙琛�
+                    foreach (Model.ClsSc_ProcessReportSub item in lsReportSub)
+                    {
+
+                        ReportModel.DetailColl.Add(item);
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛乴sReportSub闆嗗悎灏忎簬0";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                ////淇濆瓨鍓嶅垽鏂�(鍗曟嵁鍙烽噸澶嶏紝绗斿綍椤圭洰)
+                ////淇濆瓨
+                ////淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (ReportModel.omodel.HInterID == 0)
+                {
+                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = ReportModel.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = ReportModel.ModifyBill(ReportModel.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>
+        /// <returns></returns>
+        [Route("SaveBadReasonList")]
+        [HttpPost]
+        public object SaveBadReasonList([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
+            {
+                DLL.ClsQC_NoPassProdCheckBill oBill = new DLL.ClsQC_NoPassProdCheckBill();
+                List<Model.ClsQC_NoPassProdCheckBillMain> lsmain = new List<Model.ClsQC_NoPassProdCheckBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_NoPassProdCheckMain(msg2);
+                foreach (Model.ClsQC_NoPassProdCheckBillMain 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.HBillType = "7509";
+                    oItem.HBillSubType = "7509";
+                    oItem.HBillStatus = 1;
+                    oItem.HPeriod = 0;
+                    oItem.HGroupName ="";
+                    oItem.HSourceID = 0;
+                    oItem.HICMOInterID = 0;
+                    oItem.HICMOBillNo = "";
+                    oItem.HInStockQty = 0;
+                    oItem.HCheckQty = 0;
+                    oItem.HRightQty = 0;
+                    oItem.HBadPNL = 0;
+                    oItem.HPlanPNL = 0;
+                    oItem.HFirstCheckEmp = 0;
+                    oItem.HCheckerResult = "";
+                    oItem.HWorkCenterID = 0;
+                    oItem.HProcExchInterID = 0;
+                    oItem.HProcExchEntryID = 0;
+                    oItem.HProcExchBillNo = "";
+                    oItem.HOrderProcNo = "";
+                    oItem.HProcExchQty = 0;
+                    oItem.HMainSourceInterID = oItem.HInterID;
+                    oItem.HInterID = 0;
+                    //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
+                    if (DBUtility.ClsPub.isStrNull(oItem.HDate)=="")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佹病鏈夊崟鎹棩鏈燂紝鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oBill.omodel = oItem;
+                }             
+                //琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                //msg2 = msg2.Replace("'", "鈥�");
+                List<Model.ClsQC_NoPassProdCheckBillSub> ls = new List<Model.ClsQC_NoPassProdCheckBillSub>();
+                ls = oListModels.getObjectByJson_NoPassProdCheckSub(msg3);
+                int i = 0;
+                foreach (Model.ClsQC_NoPassProdCheckBillSub oItemSub in ls)
+                {
+                    i++;
+                    if (string.IsNullOrWhiteSpace(oItemSub.HWasterReasonName))
+                    {
+                        break;
+                    }
+                    //灏嗗墠鍙颁复鏃跺瓨鏀剧殑鍊间紶杩囨潵鐨勫�艰祴缁欏搴旂殑涓嶈壇鏁伴噺瀛楁
+                    oItemSub.HBadQty = Convert.ToDecimal( oItemSub.HMRBChecker);
+                    if (oItemSub.HBadQty<=0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屼笉鑹瘎瀹℃暟閲忎笉澶т簬0鏃犳硶淇濆瓨锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    if ((double)oItemSub.HBadQty >oBill.omodel.HPlanQty )
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屾暟閲忎笉鑳藉ぇ浜庝笉鑹暟閲忥紒";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(oItemSub.HWasterReasonName)=="")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛佺" + i.ToString() + "琛屾湭濉啓涓嶈壇鍘熷洜锛�";
+                        objJsonResult.data = 1;
+                        return objJsonResult;
+                    }
+                    oItemSub.HSourceEntryID = oBill.omodel.HMainSourceEntryID;
+                    oItemSub.HSourceInterID = oBill.omodel.HMainSourceInterID;
+                    oItemSub.HEntryID = i;
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;
+                    oItemSub.HBillNo_bak = oBill.omodel.HBillNo;
+                    oItemSub.HMRBChecker = "";
+                    oItemSub.HSourceBillNo = oBill.omodel.HMainSourceBillNo;
+                    oItemSub.HSourceBillType = "3715";
+                    oItemSub.HRelationQty = 0;
+                    oItemSub.HRelationMoney = 0;
+                    oItemSub.HMaterID = oBill.omodel.HMaterID;
+                    oItemSub.HUnitID = 0;
+                    oItemSub.HMustQty = 0;
+                    oItemSub.HDisposeNote = "";
+                    oItemSub.HPunishmentBillNo = "";
+                    oItemSub.HBadPCSQty = 0;
+                    oItemSub.HQCResultID = 0;
+                    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;
+            }
+        }
+
+
+
+
+     
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 28dd8da..84bae22 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -933,6 +933,130 @@
                 return objjson; ;
             }
         }
+
+        /// <summary>
+        /// 鑾峰彇涓嶈壇鍘熷洜鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [Route("Web/GetBadReasonList_Json")]
+        [HttpGet]
+        public object GetBadReasonList_Json(string BadReason)
+        {
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (BadReason != "")
+            {
+                sWhere = sWhere + " and ( HNumber like '%" + BadReason + "%' or HName like '%" + BadReason + "%' ) ";
+            }
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                if (sWhere == null || sWhere.Equals(""))
+
+                {
+                    ds = oCN.RunProcReturn("Select HItemID,HNumber ,HName  from Gy_BadReason where HStopflag=0 Order by HItemID ", "Gy_BadReason");
+                }
+                else
+                {
+                    string sql1 = "Select HItemID,HNumber ,HName  from Gy_BadReason where HStopflag=0 and HEndFlag=1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "Gy_BadReason");
+                }
+
+                //ds = webserver.GetUnitList(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("Web/GetPlanList_Json")]
+        [HttpGet]
+        public object GetPlanList_Json(string Billno)
+        {
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1";
+            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
+            if (Billno != "")
+            {
+                sWhere = sWhere + " and ( 鍗曟嵁鍙� like '%" + Billno + "%' ) ";
+            }
+            try
+            {
+                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+                if (sWhere == null || sWhere.Equals(""))
+
+                {
+                    ds = oCN.RunProcReturn("select hmainid,hsubid,鍗曟嵁鍙�,HMaterID,鐗╂枡浠g爜,鐗╂枡鍚嶇О,HCenterID,宸ヤ綔涓績,瑙勬牸鍨嬪彿,璁″垝鏁伴噺 from h_v_Sc_ProcessPlanList", "h_v_Sc_ProcessPlanList");
+                }
+                else
+                {
+                    string sql1 = "select hmainid,hsubid,鍗曟嵁鍙�,HMaterID,鐗╂枡浠g爜,鐗╂枡鍚嶇О,HCenterID,宸ヤ綔涓績,瑙勬牸鍨嬪彿,璁″垝鏁伴噺 from h_v_Sc_ProcessPlanList where 1=1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessPlanList");
+                }
+
+                //ds = webserver.GetUnitList(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/Controllers/XSGL/Xs_SeOrderBillController.cs b/WebAPI/Controllers/XSGL/Xs_SeOrderBillController.cs
new file mode 100644
index 0000000..fda1b9d
--- /dev/null
+++ b/WebAPI/Controllers/XSGL/Xs_SeOrderBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //閿�鍞鍗旵ontroller
+    public class Xs_SeOrderBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖閿�鍞鍗曞垪琛�
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Xs_SeOrderBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_SeOrderBillList " + sWhere, "h_v_IF_SeOrderBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_SeOrderBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_SeOrderBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs b/WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs
new file mode 100644
index 0000000..41086ed
--- /dev/null
+++ b/WebAPI/Controllers/XSGL/Xs_SeOutStockBackBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //閫�璐ч�氱煡鍗旵ontroller
+    public class Xs_SeOutStockBackBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖閫�璐ч�氱煡鍗曞垪琛�
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Xs_SeOutStockBackBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_SeOutStockBackBillList " + sWhere, "h_v_IF_SeOutStockBackBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_SeOutStockBackBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_SeOutStockBackBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs b/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
new file mode 100644
index 0000000..4b71ae8
--- /dev/null
+++ b/WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
@@ -0,0 +1,75 @@
+锘縰sing Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Web.Http;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //鍙戣揣閫氱煡鍗旵ontroller
+    public class Xs_SeOutStockBillController : ApiController
+    {
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+
+        /// <summary>
+        /// 杩斿洖鍙戣揣閫氱煡鍗曞垪琛�
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Xs_SeOutStockBill/list")]
+        [HttpGet]
+        public object list(string sWhere)
+        {
+            try
+            {
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_IF_SeOutStockBillList " + sWhere, "h_v_IF_SeOutStockBillList");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_IF_SeOutStockBillList where 1 = 1 ";
+                    string sql = sql1 + sWhere;
+                    ds = oCN.RunProcReturn(sql, "h_v_IF_SeOutStockBillList");
+                }
+                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 = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "Sucess锛�";
+                    objJsonResult.data = ds.Tables[0];
+                    return objJsonResult;
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+
+
+        //
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/DLL/ClsQC_NoPassProdCheckBill.cs b/WebAPI/DLL/ClsQC_NoPassProdCheckBill.cs
new file mode 100644
index 0000000..e4d3aa8
--- /dev/null
+++ b/WebAPI/DLL/ClsQC_NoPassProdCheckBill.cs
@@ -0,0 +1,554 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+namespace WebAPI.DLL
+{
+    public  class ClsQC_NoPassProdCheckBill:DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsQC_NoPassProdCheckBillMain omodel = new Model.ClsQC_NoPassProdCheckBillMain();
+        public List<Model.ClsQC_NoPassProdCheckBillSub> DetailColl = new List<Model.ClsQC_NoPassProdCheckBillSub>();
+        //public List<Model.ClsQC_NoPassProdCheckBillSub_Item> DetailColl1 = new List<Model.ClsQC_NoPassProdCheckBillSub_Item>();
+        public ClsQC_NoPassProdCheckBill()
+        {
+            base.MvarItemKeySub = "QC_NoPassProdCheckBillSub";
+            base.MvarItemKeySub2 = "";
+            base.MvarItemKeySub3 = "";
+            base.MvarItemKeySub4 = "";
+            base.MvarItemKey="QC_NoPassProdCheckBillMain";
+            base.MvarReportTitle="涓嶅悎鏍艰瘎瀹″崟";
+            base.BillType="7509";
+            base.HBillSubType = "7509";
+
+        }
+
+        #region 鍥哄畾浠g爜
+
+        ~ClsQC_NoPassProdCheckBill()
+        {
+            DetailColl = null;
+        }
+       
+        #endregion   鑷畾涔夋柟娉�
+
+
+        //鍒犻櫎鍗曟嵁
+        public override bool DeleteBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                oCn.BeginTran();
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //oCn.RunProc("exec h_p_QC_NoPassProdCheckBillToProcExch " + lngBillKey.ToString() + ",-1");//鍥犳柊澧炰笉鑹瘎瀹″崟鏃舵姤閿欎笉閫傜敤鍏堟敞閲�
+                //鍒犻櫎鏄庣粏琛�
+                DeleteBillSub(lngBillKey);
+                DeleteBillSub2(lngBillKey);
+                DeleteBillSub3(lngBillKey);
+                DeleteBillSub4(lngBillKey);
+                //鍒犻櫎涓昏〃
+                DeleteBillMain(lngBillKey);
+                sReturn = "鍒犻櫎鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+
+
+        //淇敼鍗曟嵁
+        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //
+                oCn.BeginTran();
+                //oCn.RunProc("exec h_p_QC_NoPassProdCheckBillToProcExch " + lngBillKey.ToString() + ",-1");//鍥犳柊澧炰笉鑹瘎瀹″崟鏃舵姤閿欎笉閫傜敤鍏堟敞閲�
+                //鏇存柊涓昏〃
+                oCn.RunProc("UpDate QC_NoPassProdCheckBillMain set  " +
+                " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
+                ",HDate='" + omodel.HDate + "'" +
+                ",HYear='" + omodel.HYear.ToString() + "'" +
+                ",HPeriod='" + omodel.HPeriod.ToString() + "'" +
+                ",HBillStatus='" + omodel.HBillStatus + "'" +
+                ",HRemark='" + omodel.HRemark + "'" +
+                ",HGroupName='" + omodel.HGroupName + "'" +
+                //",HBacker='"+omodel.HBacker+"'"+
+                //",HBackDate='" + omodel.HBackDate + "'" +
+                //",HBackRemark='"+omodel.HBackRemark+"'"+
+                //",HChecker='" + omodel.HChecker + "'" +
+                //",HCheckDate='" + omodel.HCheckDate + "'" +
+                //",HMaker='" + omodel.HMaker + "'" +
+                //",HMakeDate='" + omodel.HMakeDate + "'" +
+                ",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" +
+                ",HUpDateDate=getdate()" +
+                //",HCloseMan='" + omodel.HCloseMan + "'" +
+                //",HCloseDate='" + omodel.HCloseDate + "'" +
+                //",HCloseType="+omodel.HCloseType.ToString()+
+                //",HDeleteMan='" + omodel.HDeleteMan + "'" +
+                //",HDeleteDate='" + omodel.HDeleteDate + "'" +
+                ",HPrintQty="+omodel.HPrintQty.ToString()+
+                //========================================
+                //",HSupID=" + omodel.HSupID.ToString() +
+                //",HEmpID=" + omodel.HEmpID.ToString() +
+                ",HSourceID=" + omodel.HSourceID.ToString() +
+                ",HProcExchQty=" + omodel.HProcExchQty.ToString() +
+                ",HICMOInterID=" + omodel.HICMOInterID.ToString() +
+                ",HICMOBillNo='" + omodel.HICMOBillNo + "'" +
+                ",HInStockQty=" + omodel.HInStockQty.ToString() +
+                ",HCheckQty=" + omodel.HCheckQty.ToString() +
+                ",HRightQty=" + omodel.HRightQty.ToString() +
+                ",HBadQty=" + omodel.HBadQty.ToString() +
+                ",HPlanQty=" + omodel.HPlanQty.ToString() +
+                ",HBadPNL=" + omodel.HBadPNL.ToString() +
+                ",HPlanPNL=" + omodel.HPlanPNL.ToString() +
+                ",HFirstCheckEmp=" + omodel.HFirstCheckEmp.ToString() +
+                ",HOrderProcNo='" + omodel.HOrderProcNo + "'" +
+                ",HCheckerResult='" + omodel.HCheckerResult + "'" +
+                ",HNote='" + omodel.HNote + "'" +
+
+                ",HMaterID=" + omodel.HMaterID.ToString() +
+                ",HProcID=" + omodel.HProcID.ToString() +
+                //",HProcExchInterID=" + omodel.HProcExchInterID.ToString() +
+                //",HProcExchEntryID=" + omodel.HProcExchEntryID.ToString() +
+                //",HProcExchBillNo='" + omodel.HProcExchBillNo + "'" +
+
+                " where HInterID=" + lngBillKey.ToString());
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //鍒犻櫎瀛愯〃
+                DeleteBillSub(lngBillKey);
+                //鎻掑叆瀛愯〃
+                omodel.HInterID = lngBillKey;
+                foreach (Model.ClsQC_NoPassProdCheckBillSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into QC_NoPassProdCheckBillSub " +
+                      " (HInterID,HBillNo_bak,HEntryID,HCloseMan,HMRBChecker" +
+                      ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID,HSQProcName,HZRProcName,HPSProcName" +
+                      ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                      ",HMaterID,HUnitID,HMustQty,HBadQty,HBadReasonID,HDisposeNote" +
+                      ",HEmpName,HProcID,HWasterReasonName,HPunishmentBillNo,HBadPCSQty,HQCResultID" +
+                      ") values("
+                      + omodel.HInterID.ToString() + ",'" + oSub.HBillNo_bak + "'," + oSub.HEntryID.ToString() + ",'" + oSub.HCloseMan + "','" + oSub.HMRBChecker + "'" +
+                      ",getdate()," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'," + oSub.HSourceInterID.ToString() + ",'" + oSub.HSQProcName + "','" + oSub.HZRProcName + "','" + oSub.HPSProcName + "'" +
+                      "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
+                      "," + oSub.HMaterID.ToString() + "," + oSub.HUnitID.ToString() + "," + oSub.HMustQty.ToString() + "," + oSub.HBadQty.ToString() + "," + oSub.HBadReasonID.ToString() + ",'" + oSub.HDisposeNote + "'" +
+                      ",'" + oSub.HEmpName.ToString() + "'," + oSub.HProcID + ",'" + oSub.HWasterReasonName + "','" + oSub.HPunishmentBillNo + "'," + oSub.HBadPCSQty.ToString() + "," + oSub.HQCResultID.ToString() +
+                      ") ");
+                }
+                //foreach (Model.ClsQC_NoPassProdCheckBillSub_Item oSub2 in DetailColl1)
+                //{
+                //    oCn.RunProc("Insert into QC_NoPassProdCheckBillSub_Item " +
+                //      " (HInterID,HBillNo_bak,HEntryID,HCloseMan" +
+                //      ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
+                //      ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                //      ",HMaintainItemID,HMaintainItem,HMaintainPart,HClaim,HManagerID" +
+
+                //      ") values("
+                //      + omodel.HInterID.ToString() + ",'" + oSub2.HBillNo_bak + "'," + oSub2.HEntryID.ToString() + ",'" + oSub2.HCloseMan + "'" +
+                //      ",getdate()," + Convert.ToString(oSub2.HCloseType ? 1 : 0) + ",'" + oSub2.HRemark + "'," + oSub2.HSourceInterID.ToString() +
+                //      "," + oSub2.HSourceEntryID.ToString() + ",'" + oSub2.HSourceBillNo + "','" + oSub2.HSourceBillType + "'," + oSub2.HRelationQty.ToString() + "," + oSub2.HRelationMoney.ToString() +
+                //      "," + oSub2.HMaintainItemID.ToString() + ",'" + oSub2.HMaintainItem + "','" + oSub2.HMaintainPart + "','" + oSub2.HClaim + "'," + oSub2.HManagerID.ToString() +
+                //      ") ");
+                //}
+                //
+                //foreach (Model.ClsQC_NoPassProdCheckBillSub oSub in DetailColl)
+                //{
+                //    Ds = oCn.RunProcReturn("exec h_p_QC_NoPassProdCheckBill_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;
+                //    }
+                //}
+                //鏍规嵁鍐呯爜   鍥炲~瀵瑰簲娴佽浆鍗� 涓嶈壇鍏宠仈鏁伴噺
+                //oCn.RunProc("exec h_p_QC_NoPassProdCheckBillToProcExch " + omodel.HInterID.ToString() + ",1");//鍥犳柊澧炰笉鑹瘎瀹″崟鏃舵姤閿欎笉閫傜敤鍏堟敞閲�
+                //////////////////////////////
+                //DataSet Ds;
+                //Ds = oCn.RunProcReturn("exec h_p_QC_NoPassProdCheckBillQtyCtrl " + omodel.HInterID.ToString(), "h_p_QC_NoPassProdCheckBillQtyCtrl");
+                //if (Ds == null || Ds.Tables[0].Rows.Count == 0)
+                //{
+                //    oCn.RollBack();
+                //    return false;
+                //}
+                //if (DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBack"]) == "2")
+                //{
+                //    sReturn = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBackRemark"]);
+                //    oCn.RollBack();
+                //    return false;
+                //}
+                ////////////////////////
+
+
+                //
+                sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏂板鍗曟嵁
+        public override bool AddBill(ref string sReturn)
+        {
+            try
+            {
+                //寰楀埌mainid
+                omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
+                oCn.BeginTran();
+                //涓昏〃
+                oCn.RunProc("Insert Into QC_NoPassProdCheckBillMain " +
+                "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
+                ",HYear,HPeriod,HRemark,HGroupName" +
+                ",HSourceID,HICMOInterID,HICMOBillNo,HInStockQty,HCheckQty,HRightQty" +
+                ",HBadQty,HPlanQty,HBadPNL,HPlanPNL,HFirstCheckEmp" +
+                ",HCheckerResult,HNote,HWorkCenterID" +
+                ",HMaterID,HProcID,HMainSourceInterID" +
+                ",HProcExchInterID,HProcExchEntryID,HProcExchBillNo,HOrderProcNo,HProcExchQty" +
+                ") " +
+                " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'," + omodel.HBillStatus.ToString() + ",'" + omodel.HDate + "','" + DBUtility.ClsPub.CurUserName + "',getdate()" +
+                "," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HGroupName.ToString() + "'" +
+                "," + omodel.HSourceID.ToString() + "," + omodel.HICMOInterID.ToString() + ",'" + omodel.HICMOBillNo + "'," + omodel.HInStockQty.ToString() + "," + omodel.HCheckQty.ToString() + "," + omodel.HRightQty.ToString() +
+                "," + omodel.HBadQty.ToString() + "," + omodel.HPlanQty.ToString() + "," + omodel.HBadPNL.ToString() + "," + omodel.HPlanPNL.ToString() + "," + omodel.HFirstCheckEmp.ToString() +
+                ",'" + omodel.HCheckerResult + "','" + omodel.HNote + "'," + omodel.HWorkCenterID.ToString() + "" +  
+                "," + omodel.HMaterID + "," + omodel.HProcID + "," + omodel.HMainSourceInterID +
+                "," + omodel.HProcExchInterID + "," + omodel.HProcExchEntryID + ",'" + omodel.HProcExchBillNo + "','" + omodel.HOrderProcNo + "'," + omodel.HProcExchQty.ToString() + 
+                ") ");
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsQC_NoPassProdCheckBillSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into QC_NoPassProdCheckBillSub " +
+                       " (HInterID,HBillNo_bak,HEntryID,HCloseMan,HMRBChecker" +
+                       ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID,HSQProcName,HZRProcName,HPSProcName" +
+                       ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                       ",HMaterID,HUnitID,HMustQty,HBadQty,HBadReasonID,HDisposeNote" +
+                       ",HEmpName,HProcID,HWasterReasonName,HPunishmentBillNo,HBadPCSQty,HQCResultID" +
+                       ") values("
+                       + omodel.HInterID.ToString() + ",'" + oSub.HBillNo_bak + "'," + oSub.HEntryID.ToString() + ",'" + oSub.HCloseMan + "','" + oSub.HMRBChecker + "'" +
+                       ",getdate()," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'," + oSub.HSourceInterID.ToString() + ",'" + oSub.HSQProcName + "','" + oSub.HZRProcName + "','" + oSub.HPSProcName + "'" +
+                       "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
+                       "," + oSub.HMaterID.ToString() + "," + oSub.HUnitID.ToString() + "," + oSub.HMustQty.ToString() + "," + oSub.HBadQty.ToString() + "," + oSub.HBadReasonID.ToString() + ",'" + oSub.HDisposeNote + "'" +
+                       ",'" + oSub.HEmpName.ToString() + "'," + oSub.HProcID + ",'" + oSub.HWasterReasonName + "','" + oSub.HPunishmentBillNo + "'," + oSub.HBadPCSQty.ToString() + "," + oSub.HQCResultID.ToString() +
+                       ") ");
+                }
+                //foreach (Model.ClsQC_NoPassProdCheckBillSub_Item oSub2 in DetailColl1)
+                //{
+                //    oCn.RunProc("Insert into QC_NoPassProdCheckBillSub_Item " +
+                //      " (HInterID,HBillNo_bak,HEntryID,HCloseMan" +
+                //      ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
+                //      ",HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                //      ",HMaintainItemID,HMaintainItem,HMaintainPart,HClaim,HManagerID" +
+
+                //      ") values("
+                //      + omodel.HInterID.ToString() + ",'" + oSub2.HBillNo_bak + "'," + oSub2.HEntryID.ToString() + ",'" + oSub2.HCloseMan + "'" +
+                //      ",getdate()," + Convert.ToString(oSub2.HCloseType ? 1 : 0) + ",'" + oSub2.HRemark + "'," + oSub2.HSourceInterID.ToString() +
+                //      "," + oSub2.HSourceEntryID.ToString() + ",'" + oSub2.HSourceBillNo + "','" + oSub2.HSourceBillType + "'," + oSub2.HRelationQty.ToString() + "," + oSub2.HRelationMoney.ToString() +
+                //      "," + oSub2.HMaintainItemID.ToString() + ",'" + oSub2.HMaintainItem + "','" + oSub2.HMaintainPart + "','" + oSub2.HClaim + "'," + oSub2.HManagerID.ToString() +
+                //      ") ");
+                //}
+                //
+                //foreach (Model.ClsQC_NoPassProdCheckBillSub oSub in DetailColl)
+                //{
+                //    Ds = oCn.RunProcReturn("exec h_p_QC_NoPassProdCheckBill_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;
+                //    }
+                //}
+                //鏍规嵁鍐呯爜   鍥炲~瀵瑰簲娴佽浆鍗� 涓嶈壇鍏宠仈鏁伴噺
+                //oCn.RunProc("exec h_p_QC_NoPassProdCheckBillToProcExch " + omodel.HInterID.ToString() + ",1");//鍥犳柊澧炰笉鑹瘎瀹″崟鏃舵姤閿欎笉閫傜敤鍏堟敞閲�
+                //
+                //////////////////////////////
+                //DataSet Ds;
+                //Ds = oCn.RunProcReturn("exec h_p_QC_NoPassProdCheckBillQtyCtrl " + omodel.HInterID.ToString(), "h_p_QC_NoPassProdCheckBillQtyCtrl");
+                //if (Ds == null || Ds.Tables[0].Rows.Count == 0)
+                //{
+                //    oCn.RollBack();
+                //    return false;
+                //}
+                //if (DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBack"]) == "2")
+                //{
+                //    sReturn = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBackRemark"]);
+                //    oCn.RollBack();
+                //    return false;
+                //}
+                ////////////////////////
+
+                //
+                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏄剧ず鍗曟嵁
+        public override bool ShowBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet Ds ;
+                Ds = oCn.RunProcReturn("Select * from QC_NoPassProdCheckBillMain Where HInterID=" + lngBillKey.ToString(), "QC_NoPassProdCheckBillMain");
+                if(Ds.Tables[0].Rows.Count==0)
+                {
+                    sReturn = "鍗曟嵁鏈壘鍒帮紒";
+                    return false;
+                }
+                //鍥哄畾璧嬪��===========================================
+                omodel.HInterID =DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]);
+                omodel.HBillNo = Ds.Tables[0].Rows[0]["HBillNo"].ToString().Trim();
+                omodel.HDate =DBUtility.ClsPub.isDate(Ds.Tables[0].Rows[0]["HDate"]);
+                omodel.HYear = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HYear"]);
+                omodel.HPeriod = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPeriod"]);
+                omodel.HCheckItemNowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNowID"]);
+                omodel.HCheckItemNextID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNextID"]);
+                omodel.HCheckFlowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckFlowID"]);
+                omodel.HRemark = Ds.Tables[0].Rows[0]["HRemark"].ToString().Trim();
+                omodel.HBillStatus = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HBillStatus"]);
+                omodel.HBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
+                omodel.HBillSubType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillSubType"]);
+                omodel.HMaker = Ds.Tables[0].Rows[0]["HMaker"].ToString().Trim();
+                omodel.HMakeDate = Ds.Tables[0].Rows[0]["HMakeDate"].ToString().Trim();
+                omodel.HUpDateDate = Ds.Tables[0].Rows[0]["HUpDateDate"].ToString().Trim();
+                omodel.HUpDater = Ds.Tables[0].Rows[0]["HUpDater"].ToString().Trim();
+                omodel.HBackDate = Ds.Tables[0].Rows[0]["HBackDate"].ToString().Trim();
+                omodel.HBacker = Ds.Tables[0].Rows[0]["HBacker"].ToString().Trim();
+                omodel.HCheckDate = Ds.Tables[0].Rows[0]["HCheckDate"].ToString().Trim();
+                omodel.HChecker = Ds.Tables[0].Rows[0]["HChecker"].ToString().Trim();
+                omodel.HCloseDate = Ds.Tables[0].Rows[0]["HCloseDate"].ToString().Trim();
+                omodel.HCloseMan = Ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();
+                omodel.HDeleteDate = Ds.Tables[0].Rows[0]["HDeleteDate"].ToString().Trim();
+                omodel.HDeleteMan = Ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();
+                //========================================================
+                ////==
+                //omodel.HWHID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HWHID"]);
+                //omodel.HSCWHID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSCWHID"]);
+                //omodel.HSupID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSupID"]);
+                //omodel.HEmpID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"]);
+                //omodel.HMangerID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMangerID"]);
+                omodel.HSourceID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSourceID"]);
+                omodel.HICMOInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HICMOInterID"]);
+                omodel.HICMOBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HICMOBillNo"]);
+                omodel.HInStockQty = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInStockQty"]); ;
+                omodel.HCheckQty = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckQty"]);
+                omodel.HRightQty = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HRightQty"]);
+                omodel.HBadQty = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HBadQty"]);
+                omodel.HPlanQty = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPlanQty"]);
+                omodel.HBadPNL = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HBadPNL"]);
+                omodel.HPlanPNL = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPlanPNL"]);
+                omodel.HFirstCheckEmp = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HFirstCheckEmp"]);
+                omodel.HCheckerResult = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HCheckerResult"]);
+                omodel.HNote = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HNote"]);
+                //omodel.HRedBlueFlag = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[0]["HRedBlueFlag"]);
+
+                omodel.HMaterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMaterID"]);
+                omodel.HWorkCenterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HWorkCenterID"]);
+                omodel.HProcID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HProcID"]);
+                omodel.HProcExchInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HProcExchInterID"]);
+                omodel.HProcExchEntryID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HProcExchEntryID"]);
+                omodel.HProcExchBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HProcExchBillNo"]);
+                omodel.HGroupName = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HGroupName"]);
+                omodel.HOrderProcNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HOrderProcNo"]);
+                omodel.HProcExchQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HProcExchQty"]);
+                //
+                
+                //寰幆
+                DataSet DsSub ;
+                DsSub = oCn.RunProcReturn("Select * from QC_NoPassProdCheckBillSub Where HInterID=" + lngBillKey.ToString(), "QC_NoPassProdCheckBillSub");
+                DetailColl.Clear();//娓呯┖
+                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
+                {
+                    Model.ClsQC_NoPassProdCheckBillSub oSub = new Model.ClsQC_NoPassProdCheckBillSub();
+                    // 鍥哄畾璧嬪��===============================================
+                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
+                    oSub.HBillNo_bak = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HBillNo_bak"]);
+                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
+                    oSub.HCloseMan = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
+                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HEntryCloseDate"]);
+                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
+                    oSub.HRemark = DsSub.Tables[0].Rows[i]["HRemark"].ToString().Trim();
+                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceInterID"]);
+                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceEntryID"]);
+                    oSub.HSourceBillType = DsSub.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
+                    oSub.HSourceBillNo = DsSub.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
+                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationQty"]);
+                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationMoney"]);
+                    //===================================================
+                    oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMaterID"]); 
+                    oSub.HUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HUnitID"]);
+                    oSub.HMustQty = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMustQty"]);
+                    oSub.HBadQty = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HBadQty"]);
+                    oSub.HBadReasonID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HBadReasonID"]);
+                    oSub.HDisposeNote = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HDisposeNote"]);
+
+                    oSub.HEmpName = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HEmpName"]);
+                    oSub.HProcID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HProcID"]);
+                    oSub.HBadPCSQty = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HBadPCSQty"]);
+                    oSub.HWasterReasonName = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HWasterReasonName"]);
+                    oSub.HPunishmentBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HPunishmentBillNo"]);
+                    oSub.HMRBChecker = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HMRBChecker"]);
+
+                    oSub.HSQProcName = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSQProcName"]);
+                    oSub.HZRProcName = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HZRProcName"]);
+                    oSub.HPSProcName = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HPSProcName"]);
+                    oSub.HQCResultID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HQCResultID"]);
+                    
+                    DetailColl.Add(oSub);
+                }
+                //DataSet DsSub2;
+                //DsSub2 = oCn.RunProcReturn("Select * from QC_NoPassProdCheckBillSub_Item Where HInterID=" + lngBillKey.ToString(), "QC_NoPassProdCheckBillSub_Item");
+                //DetailColl1.Clear();//娓呯┖
+                //for (int i = 0; i < DsSub2.Tables[0].Rows.Count; i++)
+                //{
+                //    Model.ClsQC_NoPassProdCheckBillSub_Item oSub2 = new Model.ClsQC_NoPassProdCheckBillSub_Item();
+                //    // 鍥哄畾璧嬪��===============================================
+                //    oSub2.HInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HInterID"]);
+                //    oSub2.HEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HEntryID"]);
+                //    oSub2.HBillNo_bak = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HBillNo_bak"]);
+                //    oSub2.HCloseMan = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HCloseMan"]);
+                //    oSub2.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub2.Tables[0].Rows[i]["HEntryCloseDate"]);
+                //    oSub2.HCloseType = DBUtility.ClsPub.isBool(DsSub2.Tables[0].Rows[i]["HCloseType"]);
+                //    oSub2.HRemark = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HRemark"]);
+                //    oSub2.HSourceInterID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HSourceInterID"]);
+                //    oSub2.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HSourceEntryID"]);
+                //    oSub2.HSourceBillType = DsSub2.Tables[0].Rows[i]["HSourceBillType"].ToString().Trim();
+                //    oSub2.HSourceBillNo = DsSub2.Tables[0].Rows[i]["HSourceBillNo"].ToString().Trim();
+                //    oSub2.HRelationQty = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[i]["HRelationQty"]);
+                //    oSub2.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub2.Tables[0].Rows[i]["HRelationMoney"]);
+                //    //===================================================
+                //    //oSub.HWorkerID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HWorkerID"]);
+                //    //oSub.HWorkerNumber = DsSub.Tables[0].Rows[i]["HWorkerNumber"].ToString().Trim();
+                //    //oSub.HSourceID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceID"]);
+                //    //oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMaterID"]);
+                //    //oSub.HPropertyID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPropertyID"]);
+                //    //oSub.HSecUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSecUnitID"]);
+                //    //oSub.HSecUnitRate = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSecUnitRate"]);
+                //    //oSub.HUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HUnitID"]);
+                //    //oSub.HBatchNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HBatchNo"]);
+                //    //oSub.HQtyMust = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HQtyMust"]);
+                //    //oSub.HQty = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HQty"]);
+                //    //oSub.HPrice = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPrice"]);
+                //    //oSub.HMoney = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMoney"]);
+                //    //oSub.HDesignLife = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HDesignLife"]);
+                //    //oSub.HLeaveLife = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HLeaveLife"]);
+                //    //oSub.HUseLife = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HUseLife"]);
+                //    //oSub.HWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HWHID"]);
+                //    //oSub.HSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPID"]);
+                //    //oSub.HSCWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCWHID"]);
+                //    //oSub.HSCSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCSPID"]);
+                //    //oSub.HSPGroupID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPGroupID"]);
+                //    oSub2.HMaintainItemID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HMaintainItemID"]);
+                //    oSub2.HMaintainItem = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HMaintainItem"]);
+                //    oSub2.HMaintainPart = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HMaintainPart"]);
+                //    oSub2.HClaim = DBUtility.ClsPub.isStrNull(DsSub2.Tables[0].Rows[i]["HClaim"]);
+                //    oSub2.HManagerID = DBUtility.ClsPub.isLong(DsSub2.Tables[0].Rows[i]["HManagerID"]);
+                //    //oSub.HQtyMust = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQtyMust"]);
+                //    //oSub.HBadCount = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HBadCount"]);
+                //    //oSub.HWasterQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HWasterQty"]);
+                //    //oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderInterID"]);
+                //    //oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderEntryID"]);
+                //    //oSub.HSeOrderBillNo = DsSub.Tables[0].Rows[i]["HSeOrderBillNo"].ToString().Trim();
+
+                //    DetailColl1.Add(oSub2);
+                //}
+                sReturn = "鏄剧ず鍗曟嵁鎴愬姛锛�";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+
+        //瀹℃牳
+        public bool CheckBill(Int64 lngBillKey, ref string sReturn)
+        {
+
+            try
+            {
+                string HChecker = DBUtility.ClsPub.CurUserName;
+                string HCheckDate = DBUtility.ClsPub.GetServerDate(-1);
+                oCn.RunProc(" Update " + MvarItemKey + " set HChecker='" + HChecker + "',HCheckDate='" + HCheckDate + "' Where HInterID=" + lngBillKey.ToString());
+                //鐢熸垚璋冩嫧鍗�
+                //寰楀埌璋冩嫧鍗� mainid 鍗曟嵁鍙�
+
+                oCn.RunProc("exec h_p_QC_NoPassProdCheckBill_Check " + lngBillKey.ToString() );
+                //
+                sReturn = "";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+
+        //鍙嶅鏍�
+        public bool AbandonCheck(Int64 lngBillKey, ref string sReturn)
+        {
+
+            try
+            {
+                string HChecker = DBUtility.ClsPub.CurUserName;
+                string HCheckDate = DBUtility.ClsPub.GetServerDate(-1);
+                oCn.RunProc(" Update " + MvarItemKey + " set HChecker='',HCheckDate=null Where HInterID=" + lngBillKey.ToString());
+                //鐢熸垚璋冩嫧鍗�
+                //寰楀埌璋冩嫧鍗� mainid 鍗曟嵁鍙�
+
+                oCn.RunProc("exec h_p_QC_NoPassProdCheckBill_AbandonCheck " + lngBillKey.ToString());
+                //
+                sReturn = "";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+        //鍙嶅鏍稿墠鍒ゆ柇鍚庨潰宸ュ簭鏄惁宸茬粡杩涚珯
+        public bool UnCheck(long HInterID, ref string sReturn)
+        {
+            DataSet Ds;
+            Ds = oCn.RunProcReturn("exec h_p_QC_NoPassProdCheckBill_UnCheck " + HInterID, "h_p_QC_NoPassProdCheckBill_UnCheck");
+            if (Ds == null)
+            {
+                sReturn = "鍒ゆ柇涓嬮亾宸ュ簭鏄惁宸茬粡杩涚珯鏃跺嚭閿欙紒";
+                return false;
+            }
+            if (Ds.Tables[0].Rows.Count > 0)
+            {
+                sReturn = "涓嬮亾宸ュ簭宸茬粡杩涚珯鎵弿锛屼笉鍏佽鍙嶅鏍革紒";
+                return false;
+            }
+            return true;
+
+        }
+
+
+        
+    }
+}
diff --git a/WebAPI/DLL/ClsSc_ProcessReport.cs b/WebAPI/DLL/ClsSc_ProcessReport.cs
new file mode 100644
index 0000000..c0eb34a
--- /dev/null
+++ b/WebAPI/DLL/ClsSc_ProcessReport.cs
@@ -0,0 +1,445 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+namespace WebAPI.DLL
+{
+    public  class ClsSc_ProcessReport:DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsSc_ProcessReportMain omodel = new Model.ClsSc_ProcessReportMain();
+        public List<Model.ClsSc_ProcessReportSub> DetailColl = new List<Model.ClsSc_ProcessReportSub>();
+
+        public ClsSc_ProcessReport()
+        {
+            base.MvarItemKeySub = "Sc_ProcessReportSub";
+            base.MvarItemKeySub2 = "";
+            base.MvarItemKeySub3 = "";
+            base.MvarItemKeySub4 = "";
+            base.MvarItemKey="Sc_ProcessReportMain";
+            base.MvarReportTitle="宸ュ簭姹囨姤鍗�";
+            base.BillType="3714"; 
+        }
+
+        #region 鍥哄畾浠g爜
+
+        ~ClsSc_ProcessReport()
+        {
+            DetailColl = null;
+        }
+       
+        #endregion   鑷畾涔夋柟娉�
+        //淇敼鍗曟嵁
+        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //
+                oCn.BeginTran();
+                //鏇存柊涓昏〃
+                oCn.RunProc("UpDate Sc_ProcessReportMain set  " +
+                " HYear=" + omodel.HYear.ToString() +
+                ",HPeriod=" + omodel.HPeriod.ToString() +
+                ",HDate='" + omodel.HDate.ToShortDateString() + "'" +
+                ",HBillStatus=" + omodel.HBillStatus.ToString() +
+                ",HCheckItemNowID=" + omodel.HCheckItemNowID.ToString() +
+                ",HCheckItemNextID=" + omodel.HCheckItemNextID.ToString() +
+                ",HICMOInterID=" + omodel.HICMOInterID.ToString() +
+                ",HICMOBillNo='" + omodel.HICMOBillNo + "'" +
+                ",HMarker='" + omodel.HMarker + "'" +
+                ",HSupID=" + omodel.HSupID.ToString() +
+                ",HDeptID=" + omodel.HDeptID.ToString() +
+                ",HDeptNumber='" + omodel.HDeptNumber + "'" +
+                ",HGroupID=" + omodel.HGroupID.ToString() +
+                ",HGroupNumber='" + omodel.HGroupNumber + "'" +
+                ",HMaterID=" + omodel.HMaterID.ToString() +
+                ",HMaterNumber='" + omodel.HMaterNumber + "'" + 
+                ",HUnitID=" + omodel.HUnitID.ToString() +
+                ",HUnitNumber='" + omodel.HUnitNumber + "'" + 
+                ",HPlanQty=" + omodel.HPlanQty.ToString() +
+                ",HInStockQty=" + omodel.HInStockQty.ToString() +
+                ",HSumTimes=" + omodel.HSumTimes.ToString() +
+                ",HExplanation='" + omodel.HExplanation + "'" +
+                ",HRemark='" + omodel.HRemark + "'" +
+                ",HInnerBillNo='" + omodel.HInnerBillNo + "'" +
+                ",HUpDater='" + DBUtility.ClsPub.CurUserName + "'" +
+                ",HUpDateDate=getdate()" +
+                " where HInterID=" + lngBillKey.ToString());
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //鍒犻櫎瀛愯〃
+                DeleteBillSub(lngBillKey);
+                //鎻掑叆瀛愯〃
+                omodel.HInterID = lngBillKey;
+                foreach (Model.ClsSc_ProcessReportSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into Sc_ProcessReportSub " +
+                  " (HInterID,HEntryID,HProcID,HProcNumber,HEmpID" +
+                  ",HMaterID,HMaterNumber,HOutPrice,HOutMoney" +
+                  ",HEmpNumber,HSourceID,HRelBeginDate,HRelEndDate,HTimes" +
+                  ",HQty,HCheckQty,HBadCount,HWasterQty,HWasterQty2" +
+                  ",HPrice,HMoney,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo" +
+                  ",HICMOInterID,HICMOBillNo,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
+                  ",HCloseMan,HCloseType,HRemark" +
+                  ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                  ",HBadPrirce,HBadMoney,HWasterPrice,HWasterMoney,HQualityRate," +
+                  "HSecUnitQty1,HSecUnitRate1,HSecUnitQty2,HSecUnitRate2,HUsingQty," +
+                  "HSelfBadCount,HPreBadCount,HPayMentQty,HOtherDeduct,HRelPay," +
+                  "HOtherItem1,HOtherItem2,HOtherItem3,HOtherItem4,HOtherItem5," +
+                  "HPackType,HCheckEmpID,HBatchNo" +
+                  ") values("
+                  + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + "," + oSub.HProcID.ToString() + ",'" + oSub.HProcNumber + "'," + oSub.HEmpID.ToString() +
+                  "," + oSub.HMaterID.ToString() + ",'" + oSub.HMaterNumber + "'," + oSub.HOutPrice.ToString() + "," + oSub.HOutMoney.ToString() + 
+                  ",'" + oSub.HEmpNumber + "'," + oSub.HSourceID.ToString() + ",'" + oSub.HRelBeginDate.ToShortDateString() + "','" + oSub.HRelEndDate.ToShortDateString() + "'," + oSub.HTimes.ToString() +
+                  "," + oSub.HQty.ToString() + "," + oSub.HCheckQty.ToString() + "," + oSub.HBadCount.ToString() + "," + oSub.HWasterQty.ToString() +"," + oSub.HWasterQty2.ToString() +
+                  "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() + "," + oSub.HProcPlanInterID.ToString() + "," + oSub.HProcPlanEntryID.ToString() + ",'" + oSub.HProcPlanBillNo + "'" +
+                  "," + oSub.HICMOInterID.ToString() + ",'" + oSub.HICMOBillNo + "'," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'" +
+                  ",'" + oSub.HCloseMan + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" +
+                  "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
+                  "," + oSub.HBadPrirce.ToString() + "," + oSub.HBadMoney.ToString() + "," + oSub.HWasterPrice.ToString() + "," + oSub.HWasterMoney.ToString() + "," + oSub.HQualityRate.ToString() +
+                  "," + oSub.HSecUnitQty1.ToString() + "," + oSub.HSecUnitRate1.ToString() + "," + oSub.HSecUnitQty2.ToString() + "," + oSub.HSecUnitRate2.ToString() + "," + oSub.HUsingQty.ToString() +
+                  "," + oSub.HSelfBadCount.ToString() + "," + oSub.HPreBadCount.ToString() + "," + oSub.HPayMentQty.ToString() + "," + oSub.HOtherDeduct.ToString() + "," + oSub.HRelPay.ToString() +
+                  ",'" + oSub.HOtherItem1.ToString() + "','" + oSub.HOtherItem2.ToString() + "','" + oSub.HOtherItem3.ToString() + "','" + oSub.HOtherItem4.ToString() + "','" + oSub.HOtherItem5.ToString() +
+                  "','" + oSub.HPackType.ToString() + "'," + oSub.HCheckEmpID.ToString() + ",'" + oSub.HBatchNo + "'" + 
+                  ") ");
+                }
+                //鏇存柊鍏宠仈鏁伴噺
+                AddNewRelation(ref sReturn, omodel.HInterID);
+                //
+                sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏂板鍗曟嵁
+        public override bool AddBill(ref string sReturn)
+        {
+            try
+            {
+                //寰楀埌mainid
+                omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
+                oCn.BeginTran();
+                //涓昏〃
+                oCn.RunProc("Insert Into Sc_ProcessReportMain   " +
+                "(HYear,HPeriod,HBillType,HBillSubType,HInterID" +
+                ",HDate,HBillNo,HBillStatus,HCheckItemNowID,HCheckItemNextID" +
+                ",HICMOInterID,HICMOBillNo ,HDeptID ,HDeptNumber,HGroupID" +
+                ",HGroupNumber,HMaterID,HMaterNumber,HUnitID,HUnitNumber" +
+                ",HPlanQty,HInStockQty,HSumTimes,HExplanation,HRemark" +
+                ",HInnerBillNo,HMaker,HMakeDate,HSupID,HMarker" +
+                ") " +
+                " values(" + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + this.BillType +"','"+ omodel.HBillSubType + "'," + omodel.HInterID.ToString() +
+                ",'" + omodel.HDate.ToShortDateString() + "','" + omodel.HBillNo + "'," + omodel.HBillStatus.ToString() + "," + omodel.HCheckItemNowID.ToString() + "," + omodel.HCheckItemNextID.ToString() +
+                "," + omodel.HICMOInterID.ToString() + ",'" + omodel.HICMOBillNo + "'," + omodel.HDeptID.ToString() + ",'" + omodel.HDeptNumber + "'," + omodel.HGroupID.ToString() +
+                ",'" + omodel.HGroupNumber + "'," + omodel.HMaterID.ToString() + ",'" + omodel.HMaterNumber + "'," + omodel.HUnitID.ToString() + ",'" + omodel.HUnitNumber + "'" +
+                ", " + omodel.HPlanQty.ToString() + "," + omodel.HInStockQty.ToString() + "," + omodel.HSumTimes.ToString() + ",'" + omodel.HExplanation + "','" + omodel.HRemark + "'" +
+                ",'" + omodel.HInnerBillNo  + "','" + DBUtility.ClsPub.CurUserName + "',getdate()," + omodel.HSupID.ToString() + ",'" + omodel.HMarker + "'" +
+                ") ");
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsSc_ProcessReportSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into Sc_ProcessReportSub " +
+                  " (HInterID,HEntryID,HProcID,HProcNumber,HEmpID" +
+                  ",HMaterID,HMaterNumber,HOutPrice,HOutMoney" +
+                  ",HEmpNumber,HSourceID,HRelBeginDate,HRelEndDate,HTimes" +
+                  ",HQty,HCheckQty,HBadCount,HWasterQty,HWasterQty2" +
+                  ",HPrice,HMoney,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo" +
+                  ",HICMOInterID,HICMOBillNo,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
+                  ",HCloseMan,HCloseType,HRemark" +
+                  ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                  ",HBadPrirce,HBadMoney,HWasterPrice,HWasterMoney,HQualityRate,"+
+                  "HSecUnitQty1,HSecUnitRate1,HSecUnitQty2,HSecUnitRate2,HUsingQty,"+
+                  "HSelfBadCount,HPreBadCount,HPayMentQty,HOtherDeduct,HRelPay,"+
+                  "HOtherItem1,HOtherItem2,HOtherItem3,HOtherItem4,HOtherItem5,"+
+                  "HPackType,HCheckEmpID,HWeight,HBatchNo" +
+                  ") values("
+                  + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + "," + oSub.HProcID.ToString() + ",'" + oSub.HProcNumber + "'," + oSub.HEmpID.ToString() +
+                  "," + oSub.HMaterID.ToString() + ",'" + oSub.HMaterNumber + "'," + oSub.HOutPrice.ToString() + "," + oSub.HOutMoney.ToString() + 
+                  ",'" + oSub.HEmpNumber + "'," + oSub.HSourceID.ToString() + ",'" + oSub.HRelBeginDate.ToShortDateString() + "','" + oSub.HRelEndDate.ToShortDateString() + "'," + oSub.HTimes.ToString() +
+                  "," + oSub.HQty.ToString() + "," + oSub.HCheckQty.ToString() + "," + oSub.HBadCount.ToString() + "," + oSub.HWasterQty.ToString() + "," + oSub.HWasterQty2.ToString() +
+                  "," + oSub.HPrice.ToString() + "," + oSub.HMoney.ToString() + "," + oSub.HProcPlanInterID.ToString() + "," + oSub.HProcPlanEntryID.ToString() + ",'" + oSub.HProcPlanBillNo + "'" +
+                  "," + oSub.HICMOInterID.ToString() + ",'" + oSub.HICMOBillNo + "'," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'" +
+                  ",'" + oSub.HCloseMan + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" +
+                  "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
+
+                  "," + oSub.HBadPrirce.ToString() + "," + oSub.HBadMoney.ToString() + "," + oSub.HWasterPrice.ToString() + "," + oSub.HWasterMoney.ToString() + "," + oSub.HQualityRate.ToString() +
+                  "," + oSub.HSecUnitQty1.ToString() + "," + oSub.HSecUnitRate1.ToString() + "," + oSub.HSecUnitQty2.ToString() + "," + oSub.HSecUnitRate2.ToString() + "," + oSub.HUsingQty.ToString() +
+                  "," + oSub.HSelfBadCount.ToString() + "," + oSub.HPreBadCount.ToString() + "," + oSub.HPayMentQty.ToString() + "," + oSub.HOtherDeduct.ToString() + "," + oSub.HRelPay.ToString() +
+                  ",'" + oSub.HOtherItem1.ToString() + "','" + oSub.HOtherItem2.ToString() + "','" + oSub.HOtherItem3.ToString() + "','" + oSub.HOtherItem4.ToString() + "','" + oSub.HOtherItem5.ToString() +
+                  "','" + oSub.HPackType.ToString() + "'," + oSub.HCheckEmpID.ToString() + "," + oSub.HWeight.ToString() + ",'" + oSub.HBatchNo + "'" +
+                  ") ");
+                }
+                //鏇存柊鍏宠仈鏁伴噺
+                AddNewRelation(ref sReturn, omodel.HInterID);
+                //鍥炲~ 鐢熶骇鐘舵�佽〃  鏃ヨ鍒�  涓� 宸插畬宸� 鐘舵��
+                oCn.RunProc("exec h_p_Sc_UpDateICMOBillQualityStatus " + omodel.HICMOStatusInterID.ToString() + ",3");
+                //榛樿鍙樹负 鐢宠妫�楠岀姸鎬�
+                oCn.RunProc("exec h_p_Sc_UpDateProcessReportStatus " + omodel.HInterID.ToString() + ",15");
+                //
+                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+                oCn.Commit();
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                oCn.RollBack();
+                throw (e);
+            }
+        }
+        //鏄剧ず鍗曟嵁
+        public override bool ShowBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet Ds ;
+                Ds = oCn.RunProcReturn("Select * from Sc_ProcessReportMain Where HInterID=" + lngBillKey.ToString(), "Sc_ProcessReportMain");
+                if(Ds.Tables[0].Rows.Count==0)
+                {
+                    sReturn = "鍗曟嵁鏈壘鍒帮紒";
+                    return false;
+                }
+                //璧嬪��
+                omodel.HYear = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HYear"]);
+                omodel.HPeriod = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HPeriod"]);
+                omodel.HBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
+                omodel.HBillSubType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillSubType"]);
+                omodel.HInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]);
+                omodel.HDate = DBUtility.ClsPub.isDate(Ds.Tables[0].Rows[0]["HDate"]);
+                omodel.HBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillNo"]);
+                omodel.HBillStatus = DBUtility.ClsPub.isInt(Ds.Tables[0].Rows[0]["HBillStatus"]);
+                omodel.HCheckItemNowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNowID"]);
+                omodel.HCheckItemNextID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckItemNextID"]);
+                //
+                omodel.HICMOInterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HICMOInterID"]);
+                omodel.HICMOBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HICMOBillNo"]);
+                omodel.HSupID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HSupID"]);
+                omodel.HDeptID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"]);
+                omodel.HDeptNumber = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HDeptNumber"]);
+                omodel.HGroupID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HGroupID"]);
+                omodel.HGroupNumber = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HGroupNumber"]);
+                omodel.HMaterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMaterID"]);
+                omodel.HMaterNumber = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMaterNumber"]);
+                omodel.HUnitID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HUnitID"]);
+                omodel.HUnitNumber = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HUnitNumber"]);
+                omodel.HPlanQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HPlanQty"]);
+                omodel.HInStockQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HInStockQty"]);
+                omodel.HSumTimes = DBUtility.ClsPub.isSingle(Ds.Tables[0].Rows[0]["HSumTimes"]);
+                omodel.HExplanation = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HExplanation"]);
+                omodel.HRemark = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]);
+                omodel.HInnerBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HInnerBillNo"]);
+                omodel.HMarker = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMarker"]);
+                //
+                 omodel.HBacker = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBacker"]);
+                omodel.HBackDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBackDate"]);
+                omodel.HChecker = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HChecker"]);
+                omodel.HCheckDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HCheckDate"]);
+                omodel.HMaker = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMaker"]);
+                omodel.HMakeDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMakeDate"]);
+                omodel.HUpDater = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HUpDater"]);
+                omodel.HUpDateDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HUpDateDate"]);
+                omodel.HCloseMan = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HCloseMan"]);
+                omodel.HCloseDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HCloseDate"]);
+                omodel.HCloseType = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[0]["HCloseType"]);
+                omodel.HDeleteMan = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HDeleteMan"]);
+                omodel.HDeleteDate = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HDeleteDate"]);
+                //寰幆
+                DataSet DsSub ;
+                DsSub = oCn.RunProcReturn("Select * from Sc_ProcessReportSub Where HInterID=" + lngBillKey.ToString() + " order by HEntryID ", "Sc_ProcessReportSub");
+                DetailColl.Clear();//娓呯┖
+                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
+                {
+                    Model.ClsSc_ProcessReportSub oSub = new Model.ClsSc_ProcessReportSub();
+                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
+                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
+                    //
+                    oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMaterID"]);
+                    oSub.HMaterNumber = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HMaterNumber"]);
+                    oSub.HProcID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HProcID"]);
+                    oSub.HProcNumber = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HProcNumber"]);
+                    oSub.HEmpID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEmpID"]);
+                    oSub.HEmpNumber = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HEmpNumber"]);
+                    oSub.HSourceID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceID"]);
+                    oSub.HRelBeginDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HRelBeginDate"]);
+                    oSub.HRelEndDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HRelEndDate"]);
+                    oSub.HTimes = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HTimes"]);
+                    oSub.HQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQty"]);
+                    oSub.HCheckQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HCheckQty"]);
+                    oSub.HBadCount = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HBadCount"]);
+                    oSub.HWasterQty = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HWasterQty"]);
+                    oSub.HWasterQty2 = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HWasterQty2"]);
+                    oSub.HPrice = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HPrice"]);
+                    oSub.HMoney = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HMoney"]);
+                    oSub.HOutMoney = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HOutMoney"]);
+                    oSub.HOutPrice = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HOutPrice"]);
+                    //addnew
+                    oSub.HBadPrirce = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HBadPrirce"]);
+                    oSub.HBadMoney = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HBadMoney"]);
+                    oSub.HWasterPrice = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HWasterPrice"]);
+                    oSub.HWasterMoney = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HWasterMoney"]);
+                    oSub.HQualityRate = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HQualityRate"]);
+
+                    oSub.HSecUnitQty1 = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HSecUnitQty1"]);
+                    oSub.HSecUnitRate1 = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HSecUnitRate1"]);
+                    oSub.HSecUnitQty2 = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HSecUnitQty2"]);
+                    oSub.HSecUnitRate2 = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HSecUnitRate2"]);
+                    oSub.HUsingQty = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HUsingQty"]);
+                    oSub.HSelfBadCount = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HSelfBadCount"]);
+                    oSub.HPreBadCount = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HPreBadCount"]);
+
+                    oSub.HPayMentQty = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HPayMentQty"]);
+                    oSub.HOtherDeduct = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HOtherDeduct"]);
+                    oSub.HRelPay = DBUtility.ClsPub.isSingle(DsSub.Tables[0].Rows[i]["HRelPay"]);
+                    oSub.HBatchNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HBatchNo"]);
+
+                    oSub.HOtherItem1 = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HOtherItem1"]);
+                    oSub.HOtherItem2 = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HOtherItem2"]);
+                    oSub.HOtherItem3 = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HOtherItem3"]);
+                    oSub.HOtherItem4 = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HOtherItem4"]);
+                    oSub.HOtherItem5 = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HOtherItem5"]);
+                    oSub.HPackType = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HPackType"]);
+                    oSub.HCheckEmpID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HCheckEmpID"]);
+
+                    //
+                    oSub.HProcPlanInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HProcPlanInterID"]);
+                    oSub.HProcPlanEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HProcPlanEntryID"]);
+                    oSub.HProcPlanBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HProcPlanBillNo"]);
+                    oSub.HICMOInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HICMOInterID"]);
+                    oSub.HICMOBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HICMOBillNo"]);
+                    oSub.HSeOrderInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderInterID"]);
+                    oSub.HSeOrderEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSeOrderEntryID"]);
+                    oSub.HSeOrderBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSeOrderBillNo"]);
+                    //
+                    oSub.HCloseMan = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
+                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
+                    oSub.HRemark = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HRemark"]);
+                    oSub.HSourceInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceInterID"]);
+                    oSub.HSourceEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSourceEntryID"]);
+                    oSub.HSourceBillNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSourceBillNo"]);
+                    oSub.HSourceBillType = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HSourceBillType"]);
+                    oSub.HRelationQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationQty"]);
+                    oSub.HRelationMoney = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HRelationMoney"]);
+                    DetailColl.Add(oSub);
+                }
+                sReturn = "鏄剧ず鍗曟嵁鎴愬姛锛�";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+
+        //瀹℃牳
+        public bool CheckBill(Int64 lngBillKey, ref string sReturn)
+        {
+            DataSet oDs = new DataSet();
+            string sBillName = "";
+            sReturn = "";
+            try
+            {
+                string HChecker = DBUtility.ClsPub.CurUserName;
+                string HCheckDate = DBUtility.ClsPub.GetServerDate(-1);
+                //
+                oDs = oCn.RunProcReturn("select * from Sc_ProcessReportSub where HInterID=" + lngBillKey.ToString(), "Sc_ProcessReportSub");
+                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
+                {
+                    return false;
+                }
+                for (int i = 0; i <= oDs.Tables[0].Rows.Count - 1; i++)
+                {
+                    long ProdMoveInterID = DBUtility.ClsPub.CreateBillID("3771", ref DBUtility.ClsPub.sExeReturnInfo);
+                    string ProdMoveBillNo = DBUtility.ClsPub.CreateBillCode("3771", ref DBUtility.ClsPub.sExeReturnInfo, true);
+                    //oCn.RunProc("exec h_p_Sc_ProcProdMoveBill_Add " + lngBillKey.ToString() + "," + DBUtility.ClsPub.isLong(oDs.Tables[0].Rows[i]["HEntryID"]).ToString() + "," + ProdMoveInterID.ToString() + ",'" + ProdMoveBillNo + "','" + HChecker + "'");
+                    sBillName = sBillName + ProdMoveBillNo + ",";
+                }
+                oCn.RunProc(" Update " + MvarItemKey + " set HChecker='" + HChecker + "',HCheckDate='" + HCheckDate + "' Where HInterID=" + lngBillKey.ToString());
+
+                sReturn = sBillName;
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+
+        }
+
+        //鍒犻櫎鍏宠仈
+        public override void DeleteRelation(ref string sReturn, Int64 lngBillKey)
+        {
+            //澧炲姞
+            try
+            {
+                if (omodel.HMainSourceBillType == "宸ュ簭璁″垝鍗�")
+                {
+                    oCn.RunProc("exec h_p_Sc_UpDateProcessPlanRelation_Del " + lngBillKey.ToString());
+                }
+                else
+                {
+                    oCn.RunProc("exec h_p_Sc_UpDateICMOBillStatusRelation_Del " + lngBillKey.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                throw (e);
+            }
+        }
+
+        //鏂板鍏宠仈
+        public override void AddNewRelation(ref string sReturn, Int64 lngBillKey)
+        {
+            //澧炲姞
+            try
+            {
+                if (omodel.HMainSourceBillType == "宸ュ簭璁″垝鍗�")
+                {
+                    oCn.RunProc("exec h_p_Sc_UpDateProcessPlanRelation_Add " + lngBillKey.ToString());
+                }
+                else
+                {
+                    oCn.RunProc("exec h_p_Sc_UpDateICMOBillStatusRelation_Add " + lngBillKey.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                throw (e);
+            }
+        }
+
+        public bool CheckStatus(long HMainID, long HSubID, ref string sReturn)
+        {
+            DataSet oDs = new DataSet();
+            oDs = oCn.RunProcReturn("exec h_p_Sc_CheckProcessReportStatus " + HMainID.ToString() + "," + HSubID.ToString(), "h_p_Sc_CheckProcessReportStatus");
+            if (oDs == null || oDs.Tables[0].Rows.Count == 0)
+            {
+                sReturn = "鏈煡璇㈠埌璁板綍锛�";
+                return false;
+            }
+            if (DBUtility.ClsPub.isLong(oDs.Tables[0].Rows[0][0]) != 99)
+            {
+                sReturn = DBUtility.ClsPub.isStrNull(oDs.Tables[0].Rows[0][1]);
+                return false;
+            }
+            else
+            {
+                sReturn = "姝e父";
+                return true;
+            }
+        }
+
+
+        //
+    }
+
+}
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index 12ece20..7c1145e 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -140,7 +140,11 @@
             return list;
         }
 
-
+        /// <summary>
+        /// 娲惧伐鍗曚富琛╦son澶勭悊
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
         public List<Model.ClsSc_ProcessSendWorkMain> getObjectByJson_SendWorkMain(string jsonString)
         {
             jsonString = "[" + jsonString.ToString() + "]";
@@ -148,7 +152,11 @@
             return list;
         }
 
-
+        /// <summary>
+        /// 璁″垝鍗曡鍥炬ā鍨媕son澶勭悊
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
         public List<WebAPI.Models.Sc_ProcessPlanViewModel> getObjectByJson_SendWorkSub(string jsonString)
         {
             jsonString = "[" + jsonString.ToString() + "]";
@@ -156,11 +164,65 @@
             return list;
         }
 
+        /// <summary>
+        /// 姹囨姤鍗曠殑瑙嗗浘妯″瀷json澶勭悊
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
         public List<WebAPI.Models.Sc_ProcessReportViewModel> getObjectByJson_Report(string jsonString)
         {
             jsonString = "[" + jsonString.ToString() + "]";
             List<WebAPI.Models.Sc_ProcessReportViewModel> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WebAPI.Models.Sc_ProcessReportViewModel>>(jsonString);
             return list;
         }
+
+        /// <summary>
+        /// 澶勭悊涓嬫帹娲惧伐鍗曠殑涓昏〃json
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.ClsSc_ProcessReportMain> getObjectByJson_Reportlist(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsSc_ProcessReportMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessReportMain>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
+        /// 澶勭悊涓嬫帹娲惧伐鍗曠殑娲惧伐鍗曡鍥炬ā鍨媕son
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<WebAPI.Models.Sc_ProcessSendWorkViewModel> getObjectByJson_ViewReportlist(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<WebAPI.Models.Sc_ProcessSendWorkViewModel> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WebAPI.Models.Sc_ProcessSendWorkViewModel>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
+        /// 澶勭悊鏂板涓嶈壇璇勫涓昏〃鐨刯son
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.ClsQC_NoPassProdCheckBillMain> getObjectByJson_NoPassProdCheckMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsQC_NoPassProdCheckBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_NoPassProdCheckBillMain>>(jsonString);
+            return list;
+        }
+
+        /// <summary>
+        /// 澶勭悊鏂板涓嶈壇璇勫瀛愯〃鐨刯son
+        /// </summary>
+        /// <param name="jsonString"></param>
+        /// <returns></returns>
+        public List<Model.ClsQC_NoPassProdCheckBillSub> getObjectByJson_NoPassProdCheckSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsQC_NoPassProdCheckBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsQC_NoPassProdCheckBillSub>>(jsonString);
+            return list;
+        }
+
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Models/Sc_ProcessPlanViewModel.cs b/WebAPI/Models/Sc_ProcessPlanViewModel.cs
index c9612b7..ae64f70 100644
--- a/WebAPI/Models/Sc_ProcessPlanViewModel.cs
+++ b/WebAPI/Models/Sc_ProcessPlanViewModel.cs
@@ -5,6 +5,9 @@
 
 namespace WebAPI.Models
 {
+    /// <summary>
+    /// 宸ュ簭璁″垝鍗曡鍥炬ā鍨�
+    /// </summary>
     public class Sc_ProcessPlanViewModel
     {
         public Int64? hmainid;  //      [hmainid], 
diff --git a/WebAPI/Models/Sc_ProcessReportViewModel.cs b/WebAPI/Models/Sc_ProcessReportViewModel.cs
index abf3f06..6a38cf7 100644
--- a/WebAPI/Models/Sc_ProcessReportViewModel.cs
+++ b/WebAPI/Models/Sc_ProcessReportViewModel.cs
@@ -5,32 +5,156 @@
 
 namespace WebAPI.Models
 {
+    /// <summary>
+    /// 宸ュ簭姹囨姤鍗曟ā鍨�
+    /// </summary>
     public class Sc_ProcessReportViewModel
     {
+        /// <summary>
+        /// 鏉″舰鐮佺紪鐮�
+        /// </summary>
+        public string HBarCode; 
 
-        public string HBarCode; //鏉″舰鐮佺紪鐮�
-        public string HSendWorkBillNo; //娲惧伐鍗曟嵁鍙�
-        public string HBillNo;//姹囨姤鍗曟嵁鍙�
-        public Int64 HInterID; //涓婚敭id
-        public string HProcNo; //宸ュ簭鍙�
-        public string HProcName; //宸ュ簭鍚嶇О
-        public Int64 HProcID; //宸ュ簭id
-        public string HProc;//
-        public string HMaterModel;//瑙勬牸鍨嬪彿
-        public Int64? HEmpID; //鍒涘缓浜篿d
-        public decimal HQty; //鏁伴噺
-        public string HSource; //鐢熶骇璧勬簮
-        public Int64?  HSourceID; //鐢熶骇璧勬簮id
-        public string HGroup; //鐝粍
-        public Int64? HGroupID;//鐝粍id
-        public string HICMOBillNo;//浠诲姟鍗曞彿
-        public DateTime? HReportTime; //鍒涘缓鏃堕棿
-        public Int64? HMaterID;//浜у搧id
-        public string HMaterName;//浜у搧鍚嶇О
-        public decimal HICMOQty;//
-        public Int64? HICMOInterID;//浠诲姟鍗昳d
-        public Int64? HDeptID;//閮ㄩ棬id
-        public string HEmp;//鍒涘缓浜�
+        /// <summary>
+        /// 娲惧伐鍗曟嵁鍙�
+        /// </summary>
+        public string HSendWorkBillNo; 
+
+        /// <summary>
+        /// 姹囨姤鍗曟嵁鍙�
+        /// </summary>
+        public string HBillNo;
+
+        /// <summary>
+        /// 涓婚敭id
+        /// </summary>
+        public Int64 HInterID; 
+
+        /// <summary>
+        /// 宸ュ簭鍙�
+        /// </summary>
+        public string HProcNo; 
+
+        /// <summary>
+        /// 宸ュ簭鍚嶇О
+        /// </summary>
+        public string HProcName; 
+
+        /// <summary>
+        /// 宸ュ簭id
+        /// </summary>
+        public Int64 HProcID; 
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string HProc;
+
+        /// <summary>
+        /// 瑙勬牸鍨嬪彿
+        /// </summary>
+        public string HMaterModel;
+
+        /// <summary>
+        /// 鍒涘缓浜篿d
+        /// </summary>
+        public Int64? HEmpID; 
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public decimal HQty; 
+
+        /// <summary>
+        /// 鐢熶骇璧勬簮
+        /// </summary>
+        public string HSource; 
+
+        /// <summary>
+        /// 鐢熶骇璧勬簮id
+        /// </summary>
+        public Int64?  HSourceID; 
+
+        /// <summary>
+        /// 鐝粍
+        /// </summary>
+        public string HGroup; 
+
+        /// <summary>
+        /// 鐝粍id
+        /// </summary>
+        public Int64? HGroupID;
+
+        /// <summary>
+        /// 鐝粍浠g爜
+        /// </summary>
+        public string HGroupNumber;
+
+        /// <summary>
+        /// 浠诲姟鍗曞彿
+        /// </summary>
+        public string HICMOBillNo;
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime? HReportTime; 
+
+        /// <summary>
+        /// 浜у搧id
+        /// </summary>
+        public Int64? HMaterID;
+
+        /// <summary>
+        /// 浜у搧鍚嶇О
+        /// </summary>
+        public string HMaterName;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public decimal HICMOQty;
+
+        /// <summary>
+        /// 浠诲姟鍗昳d
+        /// </summary>
+        public Int64? HICMOInterID;
+
+        /// <summary>
+        /// 閮ㄩ棬id
+        /// </summary>
+        public Int64? HDeptID;
+
+        /// <summary>
+        /// 閮ㄩ棬浠g爜
+        /// </summary>
+        public string HDeptNumber;
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string HEmp;
+
+        /// <summary>
+        /// 鍗曚綅id
+        /// </summary>
+        public Int64 HUnitID;
+
+        /// <summary>
+        /// 璁¢噺鍗曚綅浠g爜
+        /// </summary>
+        public string HUnitNumber;
+
+        /// <summary>
+        /// 浜у搧浠g爜
+        /// </summary>
+        public string HMaterNumber;
+
+        /// <summary>
+        /// 宸ュ簭浠g爜
+        /// </summary>
+        public string HProcNumber;
+
        
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Models/Sc_ProcessSendWorkViewModel.cs b/WebAPI/Models/Sc_ProcessSendWorkViewModel.cs
new file mode 100644
index 0000000..e731a4c
--- /dev/null
+++ b/WebAPI/Models/Sc_ProcessSendWorkViewModel.cs
@@ -0,0 +1,286 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace WebAPI.Models
+{
+    /// <summary>
+    /// 宸ュ簭娲惧伐鍗曡鍥炬ā鍨�
+    /// </summary>
+    public class Sc_ProcessSendWorkViewModel
+    {
+       
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? hmainid { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鍗曟嵁鍙� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HDeptID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 閮ㄩ棬浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 閮ㄩ棬 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HMaterID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐗╂枡浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐗╂枡鍚嶇О { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 瑙勬牸鍨嬪彿 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HUnitID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 璁¢噺鍗曚綅浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 璁¢噺鍗曚綅 { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HprocID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 宸ュ簭浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 宸ュ簭 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HGroupID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐝粍浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐝粍鍚嶇О { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HSourceID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 璧勬簮浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐢熶骇璧勬簮 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HWorkerID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鑱屽憳浠g爜 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鑱屽憳 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? hsubid { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public decimal? 鏁伴噺 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 璁″垝寮�宸ユ棩鏈� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 璁″垝瀹屽伐鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public decimal? 璁″垝宸ユ椂 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 琛ㄤ綋澶囨敞 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HICMOInterID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鐢熶骇浠诲姟鍗曞彿 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HSeOrderInterID { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 閿�鍞鍗曞彿 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 琛ㄥご澶囨敞 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鍒跺崟浜� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 鍒跺崟鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 瀹℃牳浜� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 瀹℃牳鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 淇敼浜� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 淇敼鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 鍏抽棴浜� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 鍏抽棴鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 浣滃簾浜� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? 浣滃簾鏃ユ湡 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? 婧愬崟涓诲唴鐮� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? 婧愬崟瀛愬唴鐮� { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 婧愬崟鍗曞彿 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 婧愬崟绫诲瀷 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string 琛屽叧闂汉 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string HBillType { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HQtyDecimal { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public Int64? HPriceDecimal { get; set; }
+
+    }
+}
\ No newline at end of file
diff --git a/WebAPI/Properties/PublishProfiles/API.pubxml.user b/WebAPI/Properties/PublishProfiles/API.pubxml.user
index fd60e22..5ba85f4 100644
--- a/WebAPI/Properties/PublishProfiles/API.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/API.pubxml.user
@@ -7,6 +7,7 @@
   <PropertyGroup>
     <TimeStampOfAssociatedLegacyPublishXmlFile />
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
+    <History>True|2021-04-16T00:50:41.5499248Z;True|2021-04-16T08:32:59.1701708+08:00;True|2021-04-16T08:27:36.9176335+08:00;True|2021-04-15T15:56:26.8485667+08:00;True|2021-04-15T15:21:23.2875671+08:00;True|2021-04-15T14:41:16.9980034+08:00;True|2021-04-15T14:36:34.8570017+08:00;True|2021-04-13T16:15:00.7668503+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
@@ -34,10 +35,10 @@
       <publishTime>01/13/2021 21:47:30</publishTime>
     </File>
     <File Include="bin/Kingdee.BOS.WebApi.FormService.dll">
-      <publishTime>09/20/2018 19:23:20</publishTime>
+      <publishTime>04/26/2020 09:57:16</publishTime>
     </File>
     <File Include="bin/Kingdee.BOS.WebApi.ServicesStub.dll">
-      <publishTime>09/20/2018 19:28:34</publishTime>
+      <publishTime>04/26/2020 09:57:16</publishTime>
     </File>
     <File Include="bin/Microsoft.Azure.AppService.ApiApps.Service.dll">
       <publishTime>03/18/2015 17:02:50</publishTime>
@@ -163,10 +164,10 @@
       <publishTime>11/24/2014 11:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>04/20/2021 21:24:01</publishTime>
+      <publishTime>04/19/2021 15:30:26</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>04/20/2021 21:24:01</publishTime>
+      <publishTime>04/19/2021 15:30:26</publishTime>
     </File>
     <File Include="bin/WebAPI.XmlSerializers.dll">
       <publishTime>02/04/2021 21:35:21</publishTime>
@@ -340,7 +341,7 @@
       <publishTime>02/22/2021 09:25:20</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>04/20/2021 21:24:08</publishTime>
+      <publishTime>04/19/2021 15:30:33</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index f2fa65e..a33bc7c 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -325,6 +325,10 @@
     <Compile Include="Controllers\BaseSet\Gy_SourceController.cs" />
     <Compile Include="Controllers\BaseSet\Gy_SupplierController.cs" />
     <Compile Include="Controllers\BaseSet\Gy_WarehouseController.cs" />
+    <Compile Include="Controllers\CGGL\Cg_POOrderBillController.cs" />
+    <Compile Include="Controllers\CGGL\WW_EntrustOrderBillController.cs" />
+    <Compile Include="Controllers\CGGL\Cg_POInStockBillController.cs" />
+    <Compile Include="Controllers\CGGL\Cg_POInStockBackBillController.cs" />
     <Compile Include="Controllers\CJGL\Cj_NoPassProcController.cs" />
     <Compile Include="Controllers\CJGL\Cj_StationEntrustOutBillController.cs" />
     <Compile Include="Controllers\Sc_ProcessMangementController.cs" />
@@ -335,9 +339,14 @@
     <Compile Include="Controllers\SCGL\Sc_ICMOReportBillController.cs" />
     <Compile Include="Controllers\SCGL\Sc_PPBomBillController.cs" />
     <Compile Include="Controllers\Sc_CheckToolsRepairWorkBillController.cs" />
+    <Compile Include="Controllers\XSGL\Xs_SeOutStockBackBillController.cs" />
+    <Compile Include="Controllers\XSGL\Xs_SeOutStockBillController.cs" />
+    <Compile Include="Controllers\XSGL\Xs_SeOrderBillController.cs" />
     <Compile Include="Dapper\SqlHelper.cs" />
     <Compile Include="Dapper\SqlPools.cs" />
     <Compile Include="DbUntil\DataFormatUntil.cs" />
+    <Compile Include="DLL\ClsQC_NoPassProdCheckBill.cs" />
+    <Compile Include="DLL\ClsSc_ProcessReport.cs" />
     <Compile Include="Models\ApiConfig.cs" />
     <Compile Include="Models\ApiResult.cs" />
     <Compile Include="Models\DocumentsView.cs" />
@@ -348,7 +357,8 @@
     <Compile Include="Models\M_Process.cs" />
     <Compile Include="Models\Sc_ProcessPlanViewModel.cs" />
     <Compile Include="Models\Sc_ProcessReportViewModel.cs" />
-    <Compile Include="Models\StationBill.cs" />
+    <Compile Include="Models\Sc_ProcessSendWorkViewModel.cs" />
+    <Compile Include="Models\StationEntrustInBill.cs" />
     <Compile Include="Models\StationOutBillView.cs" />
     <Compile Include="Properties\Resources.Designer.cs">
       <AutoGen>True</AutoGen>

--
Gitblit v1.9.1