From 1b7bc6d187a47b42e10b36c1d4d0215e58ed28ca Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期一, 24 三月 2025 19:44:22 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 SyntacticSugar/bin/Release/SyntacticSugar.dll                             |    0 
 WebAPI/WebAPI.csproj.user                                                 |    2 
 PayM/bin/x86/Debug/Pub_Control.pdb                                        |    0 
 WebAPI/Models/QC_POStockInCheckBill.cs                                    |   12 
 DBUtility/bin/Release/Pub_Class.dll                                       |    0 
 SyntacticSugar/bin/Release/SyntacticSugar.pdb                             |    0 
 Model/bin/Release/Pub_Control.pdb                                         |    0 
 PayM/bin/x86/Debug/Pub_Class.pdb                                          |    0 
 PayM/bin/x86/Debug/Pub_Control.dll                                        |    0 
 sdk_dingding/TopSdk/obj/Release/TopSdk.pdb                                |    0 
 Model/bin/Release/Pub_Class.pdb                                           |    0 
 DAL/质检管理/ClsQC_BackSampleCheckBill.cs                                     |    5 
 WebAPI/Models/ClsGy_Material_Model.cs                                     |    1 
 PayM/bin/x86/Debug/Pub_Class.dll                                          |    0 
 sdk_dingding/TopSdk/obj/Release/TopSdk.dll                                |    0 
 DAL/车间管理/ClsSc_StationEntrustInBill.cs                                    |   22 
 WebAPI/Controllers/品质管理/检验取样还样单/QC_TakeSampleCheckBillController.cs       |  220 +
 sdk_dingding/TopSdk/bin/Release/TopSdk.dll                                |    0 
 Model/obj/Release/Model.pdb                                               |    0 
 BLL/bin/Release/BLL.pdb                                                   |    0 
 DAL/车间管理/ClsSc_StationEntrustOutBill.cs                                   |   25 
 SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt     |    6 
 WebAPI/Controllers/生产管理/报工台工序/Sc_MESEndStepWorkBillController.cs          |  384 ++
 Model/bin/Release/Pub_Control.dll                                         |    0 
 Pub_Control/bin/Release/Pub_Class.pdb                                     |    0 
 DAL/车间管理/ClsSc_WorkBeginDotCheckBillMain.cs                               |   11 
 WebAPI/Controllers/生产管理/报工台工序/Sc_MESBeginStepWorkBillController.cs        |  386 ++
 DAL/质检管理/ClsQC_TakeSampleCheckBill.cs                                     |   70 
 sdk_dingding/TopSdk/bin/Release/TopSdk.pdb                                |    0 
 WebAPI/ListModels.cs                                                      |   15 
 WebAPI/Controllers/SCGL/日计划管理/JIT_DayPlanPlatFormBillController.cs        |   43 
 Pub_Control/bin/Release/Pub_Class.dll                                     |    0 
 WebAPI/WebAPI.csproj                                                      |    2 
 PayM/bin/x86/Debug/DBUtility.dll                                          |    0 
 SyntacticSugar/obj/Release/SyntacticSugar.csproj.AssemblyReference.cache  |    0 
 WebAPI/DLL/ClsOA_ErrMsgBackBill.cs                                        |   72 
 BLL/bin/Release/Pub_Control.pdb                                           |    0 
 Pub_Control/bin/Release/Pub_Control.dll                                   |    0 
 BLL/bin/Release/DBUtility.pdb                                             |    0 
 DAL/bin/Release/SQLHelper.dll                                             |    0 
 Model/bin/Release/DBUtility.pdb                                           |    0 
 PayM/bin/x86/Debug/DAL.dll                                                |    0 
 SQLHelper/bin/Release/SQLHelper.dll                                       |    0 
 PayM/bin/x86/Debug/DBUtility.pdb                                          |    0 
 Model/Model.csproj                                                        |    2 
 BLL/bin/Release/Pub_Control.dll                                           |    0 
 WebAPI/Controllers/生产管理/报工台工序/Sc_MESStopStepWorkBillController.cs         |  382 ++
 DAL/bin/Release/SQLHelper.pdb                                             |    0 
 DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache             |    0 
 WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs               |  790 ++++
 SQLHelper/bin/Release/SQLHelper.pdb                                       |    0 
 DBUtility/obj/Release/DBUtility.pdb                                       |    0 
 Model/bin/Release/DBUtility.dll                                           |    0 
 BLL/bin/Release/DBUtility.dll                                             |    0 
 DBUtility/obj/Release/DBUtility.csproj.ResolveComReference.cache          |    0 
 BLL/bin/Release/BLL.dll                                                   |    0 
 Pub_Control/bin/Release/Pub_Control.pdb                                   |    0 
 WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs              |  356 +
 WebAPI/Controllers/品质管理/首件检验单/QC_FirstPieceCheckBillController.cs         |  182 
 DBUtility/obj/Release/DBUtility.dll                                       |    0 
 sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb                                  |    0 
 Model/obj/Release/Model.dll                                               |    0 
 WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs                     |   37 
 BLL/bin/Release/Pub_Class.dll                                             |    0 
 WebAPI/Controllers/生产管理/报工台工序/Sc_MaterToSourceStepBillController.cs       |  459 ++
 DBUtility/业务单据/ClsXt_BaseBill.cs                                          |    7 
 DBUtility/bin/Release/SQLHelper.dll                                       |    0 
 DAL/质检管理/ClsQC_EnvironmentTestDotCheckBillMain.cs                         |   62 
 Model/obj/Release/Model.csproj.AssemblyReference.cache                    |    0 
 WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs                       |   65 
 DBUtility/bin/Release/SQLHelper.pdb                                       |    0 
 Model/bin/Release/Pub_Class.dll                                           |    0 
 Model/生产管理/生产领料/ClsKf_ProductReceiveMaterialBillMain.cs                   |   14 
 PayM/bin/x86/Debug/DAL.pdb                                                |    0 
 BLL/bin/Release/Pub_Class.pdb                                             |    0 
 WebAPI/Controllers/品质管理/车间自检单/QC_WorkSelfCheckBillController.cs           |  499 +
 DAL/MES/ClsSc_MESMaterToSourceBill .cs                                    |   62 
 WebAPI/Controllers/品质管理/工序检验单/QC_ProcessCheckBillController.cs            |  244 
 PayM/bin/x86/Debug/SQLHelper.dll                                          |    0 
 SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt       |    9 
 WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user                       |   42 
 BLL/bin/Release/DAL.dll                                                   |    0 
 BLL/bin/Release/SQLHelper.pdb                                             |    0 
 DAL/bin/Release/DBUtility.dll                                             |    0 
 DAL/bin/Release/Pub_Control.dll                                           |    0 
 DBUtility/bin/Release/Pub_Control.pdb                                     |    0 
 WebAPI/Controllers/品质管理/巡检单/QC_PatrolProcCheckOtherBillController.cs      |  462 +
 BLL/bin/Release/SQLHelper.dll                                             |    0 
 DAL/bin/Release/DBUtility.pdb                                             |    0 
 DAL/bin/Release/Model.dll                                                 |    0 
 DAL/仓库管理/ClsKf_ProductReceiveMaterialBill.cs                              |  375 ++
 WebAPI/Properties/PublishProfiles/FolderProfile1.pubxml.user              |  164 
 DBUtility/bin/Release/Pub_Control.dll                                     |    0 
 Model/bin/Release/SQLHelper.pdb                                           |    0 
 DAL/bin/Release/Pub_Control.pdb                                           |    0 
 DAL/bin/Release/DAL.pdb                                                   |    0 
 SQLHelper/obj/Release/SQLHelper.dll                                       |    0 
 WebAPI/Controllers/QC_POStockInCheckBillController.cs                     |   15 
 BLL/bin/Release/Model.dll                                                 |    0 
 WebAPI/Controllers/生产管理/班次开班单/Sc_ShiftsBeginInfoBillController.cs         |  552 ++
 WebAPI/Models/ClsGy_Supplier_Link.cs                                      |   17 
 BLL/bin/Release/DAL.pdb                                                   |    0 
 BLL/bin/Release/Model.pdb                                                 |    0 
 DAL/bin/Release/DAL.dll                                                   |    0 
 DAL/车间管理/ClsQc_PreventErrMouldCheckBillMain.cs                            |   62 
 PayM/bin/x86/Debug/SQLHelper.pdb                                          |    0 
 DAL/bin/Release/Model.pdb                                                 |    0 
 sdk_dingding/TopSdk/bin/Debug/TopSdk.dll                                  |    0 
 WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs                     |   20 
 Pub_Class/bin/Release/SyntacticSugar.pdb                                  |    0 
 PayM/bin/x86/Debug/Model.pdb                                              |    0 
 SQLHelper/obj/Release/SQLHelper.pdb                                       |    0 
 PayM/bin/x86/Debug/BLL.dll                                                |    0 
 DBUtility/bin/Release/DBUtility.pdb                                       |    0 
 DBUtility/bin/Release/DBUtility.dll                                       |    0 
 WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs                    |   68 
 sdk_dingding/TopSdk/obj/Debug/TopSdk.dll                                  |    0 
 Pub_Class/bin/Release/SyntacticSugar.dll                                  |    0 
 sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache     |    0 
 DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache            |    0 
 WebAPI/Controllers/品质管理/环境检测单/QC_EnvironmentTestDotCheckBillController.cs |  493 +
 PayM/bin/x86/Debug/BLL.pdb                                                |    0 
 WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs             |  388 +
 WebAPI/Controllers/基础资料/基础资料/Gy_DisposeWayController.cs                   |   36 
 WebAPI/Controllers/品质管理/库存检验单/QC_StockCheckBillController.cs              |  460 +
 sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt          |    9 
 sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb                                  |    0 
 DAL/DAL.csproj                                                            |    1 
 DAL/质检管理/ClsQC_WorkSelfCheckBill.cs                                       |   72 
 WebAPI/Controllers/CJGL/Qc_PreventErrMouldCheckBillController.cs          |  524 ++
 WebAPI/Controllers/CJGL/Sc_WorkBeginDotCheckBillController.cs             |  517 ++
 Pub_Class/bin/Release/Pub_Class.pdb                                       |    0 
 WebAPI/Controllers/BaseSet/Gy_MaterialController.cs                       |   48 
 SQLHelper/bin/Release/Pub_Class.pdb                                       |    0 
 WebAPI/Controllers/LMESController.cs                                      |    2 
 Pub_Class/bin/Release/Pub_Class.dll                                       |    0 
 SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache            |    0 
 WebAPI/Controllers/BaseSet/Gy_SupplierController.cs                       |   73 
 SQLHelper/bin/Release/Pub_Class.dll                                       |    0 
 DAL/bin/Release/Pub_Class.pdb                                             |    0 
 PayM/obj/x86/Debug/PayM.pdb                                               |    0 
 WarM/条码打印/Gy_BarCodeBill_automaticallyByPLC_New_Change.cs                 |   65 
 PayM/obj/x86/Debug/PayM.dll                                               |    0 
 PayM/bin/x86/Debug/Model.dll                                              |    0 
 WebAPI/Controllers/仓存管理/生产领料/Kf_ProductReceiveMaterialBillController.cs   |  945 +++++
 DAL/质检管理/ClsQC_PatrolProcCheckOtherBill.cs                                |   63 
 sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.FileListAbsolute.txt        |    6 
 WebAPI/Controllers/基础资料/基础资料/Gy_MaterTypeBillController.cs                |    2 
 Model/bin/Release/Model.pdb                                               |    0 
 DAL/质检管理/ClsQC_StockCheckBill.cs                                          |   67 
 DAL/bin/Release/Pub_Class.dll                                             |    0 
 WebAPI/Controllers/CJGL/Cj_StationInBillController.cs                     |   74 
 WebAPI/Controllers/生产管理/报工台工序/Sc_MESProductReportStepBillController.cs    |    2 
 Model/bin/Release/Model.dll                                               |    0 
 DBUtility/bin/Release/Pub_Class.pdb                                       |    0 
 Model/bin/Release/SQLHelper.dll                                           |    0 
 PayM/bin/x86/Debug/PayM.dll                                               |    0 
 Model/生产管理/生产领料/ClsKf_ProductReceiveMaterialBillSub.cs                    |   24 
 PayM/bin/x86/Debug/PayM.pdb                                               |    0 
 WebAPI/Controllers/Sc_ProcessMangementController.cs                       |  105 
 WebAPI/DLL/ClsGy_Material_Ctl.cs                                          |    5 
 161 files changed, 8,513 insertions(+), 1,691 deletions(-)

diff --git a/BLL/bin/Release/BLL.dll b/BLL/bin/Release/BLL.dll
index 322fe1e..e877260 100644
--- a/BLL/bin/Release/BLL.dll
+++ b/BLL/bin/Release/BLL.dll
Binary files differ
diff --git a/BLL/bin/Release/BLL.pdb b/BLL/bin/Release/BLL.pdb
index c59eea2..dd8699a 100644
--- a/BLL/bin/Release/BLL.pdb
+++ b/BLL/bin/Release/BLL.pdb
Binary files differ
diff --git a/BLL/bin/Release/DAL.dll b/BLL/bin/Release/DAL.dll
index 28f26de..14ff17c 100644
--- a/BLL/bin/Release/DAL.dll
+++ b/BLL/bin/Release/DAL.dll
Binary files differ
diff --git a/BLL/bin/Release/DAL.pdb b/BLL/bin/Release/DAL.pdb
index a7b3ed9..e3de975 100644
--- a/BLL/bin/Release/DAL.pdb
+++ b/BLL/bin/Release/DAL.pdb
Binary files differ
diff --git a/BLL/bin/Release/DBUtility.dll b/BLL/bin/Release/DBUtility.dll
index 45d4353..ca1dbe5 100644
--- a/BLL/bin/Release/DBUtility.dll
+++ b/BLL/bin/Release/DBUtility.dll
Binary files differ
diff --git a/BLL/bin/Release/DBUtility.pdb b/BLL/bin/Release/DBUtility.pdb
index ef67b9b..4b82f03 100644
--- a/BLL/bin/Release/DBUtility.pdb
+++ b/BLL/bin/Release/DBUtility.pdb
Binary files differ
diff --git a/BLL/bin/Release/Model.dll b/BLL/bin/Release/Model.dll
index 9f8b23d..dcf1e09 100644
--- a/BLL/bin/Release/Model.dll
+++ b/BLL/bin/Release/Model.dll
Binary files differ
diff --git a/BLL/bin/Release/Model.pdb b/BLL/bin/Release/Model.pdb
index 32810b7..ea4f0cc 100644
--- a/BLL/bin/Release/Model.pdb
+++ b/BLL/bin/Release/Model.pdb
Binary files differ
diff --git a/BLL/bin/Release/Pub_Class.dll b/BLL/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/BLL/bin/Release/Pub_Class.dll
+++ b/BLL/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/BLL/bin/Release/Pub_Class.pdb b/BLL/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/BLL/bin/Release/Pub_Class.pdb
+++ b/BLL/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/BLL/bin/Release/Pub_Control.dll b/BLL/bin/Release/Pub_Control.dll
index 3ea2b96..20c44a0 100644
--- a/BLL/bin/Release/Pub_Control.dll
+++ b/BLL/bin/Release/Pub_Control.dll
Binary files differ
diff --git a/BLL/bin/Release/Pub_Control.pdb b/BLL/bin/Release/Pub_Control.pdb
index ab08c90..48a788b 100644
--- a/BLL/bin/Release/Pub_Control.pdb
+++ b/BLL/bin/Release/Pub_Control.pdb
Binary files differ
diff --git a/BLL/bin/Release/SQLHelper.dll b/BLL/bin/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/BLL/bin/Release/SQLHelper.dll
+++ b/BLL/bin/Release/SQLHelper.dll
Binary files differ
diff --git a/BLL/bin/Release/SQLHelper.pdb b/BLL/bin/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/BLL/bin/Release/SQLHelper.pdb
+++ b/BLL/bin/Release/SQLHelper.pdb
Binary files differ
diff --git a/DAL/DAL.csproj b/DAL/DAL.csproj
index 512f960..b9d8a7c 100644
--- a/DAL/DAL.csproj
+++ b/DAL/DAL.csproj
@@ -83,6 +83,7 @@
     <Compile Include="鍩虹璧勬枡\鍏敤鍩虹璧勬枡\ClsGy_MaintainClass_Ctl.cs" />
     <Compile Include="鍩虹璧勬枡\鍏敤鍩虹璧勬枡\ClsGy_RepairClass_Ctl.cs" />
     <Compile Include="鍩虹璧勬枡\鍏敤鍩虹璧勬枡\ClsGy_RepairCheckClass_Ctl.cs" />
+    <Compile Include="浠撳簱绠$悊\ClsKf_ProductReceiveMaterialBill.cs" />
     <Compile Include="鐢熶骇绠$悊\ClsSc_ShiftsBeginInfoBill.cs" />
     <Compile Include="ClsPay_AbsentBill.cs" />
     <Compile Include="ClsPay_EarlyLateErrBill.cs" />
diff --git a/DAL/MES/ClsSc_MESMaterToSourceBill .cs b/DAL/MES/ClsSc_MESMaterToSourceBill .cs
index d13ee07..55ec397 100644
--- a/DAL/MES/ClsSc_MESMaterToSourceBill .cs
+++ b/DAL/MES/ClsSc_MESMaterToSourceBill .cs
@@ -38,6 +38,20 @@
             {
                 //
                 oCn.BeginTran();
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Sc_MaterToSourceBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_MaterToSourceBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate Sc_MaterToSourceBillMain set  " +
                 //鍥哄畾璧嬪��===============
@@ -89,6 +103,21 @@
                       ") ");
                 }
                 sReturn = omodel.HInterID.ToString();
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Sc_MaterToSourceBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Sc_MaterToSourceBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
                 oCn.Commit();
                 return true;
             }
@@ -104,10 +133,25 @@
         {
             try
             {
+                DataSet ds;
                 //寰楀埌mainid
                 omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
                 oCn.BeginTran();
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                ds = oCn.RunProcReturn("Exec h_p_Sc_MaterToSourceBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_MaterToSourceBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
                 //涓昏〃
                 oCn.RunProc("Insert Into Sc_MaterToSourceBillMain   " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
@@ -139,8 +183,24 @@
                       ",'" + oSub.HBarCode + "','" + oSub.HBarCode_Pack + "','" + oSub.HBillNo_bak + "'" +
                       ") ");
                 }
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Sc_MaterToSourceBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Sc_MaterToSourceBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 //鍐嶆楠岃瘉 淇濆瓨鏄惁 鍚堢悊
-                DataSet ds = oCn.RunProcReturn("exec h_p_Sc_MaterToSourceBill_SaveCtrl @HInterId=" + omodel.HInterID + "", "h_p_Sc_MaterToSourceBill_SaveCtrl");
+                 ds = oCn.RunProcReturn("exec h_p_Sc_MaterToSourceBill_SaveCtrl @HInterId=" + omodel.HInterID + "", "h_p_Sc_MaterToSourceBill_SaveCtrl");
                 if (ds == null || ds.Tables[0].Rows.Count <= 0)
                 {
                     sReturn = "鏃犻獙璇佹暟鎹紒";
diff --git a/DAL/bin/Release/DAL.dll b/DAL/bin/Release/DAL.dll
index 28f26de..14ff17c 100644
--- a/DAL/bin/Release/DAL.dll
+++ b/DAL/bin/Release/DAL.dll
Binary files differ
diff --git a/DAL/bin/Release/DAL.pdb b/DAL/bin/Release/DAL.pdb
index a7b3ed9..e3de975 100644
--- a/DAL/bin/Release/DAL.pdb
+++ b/DAL/bin/Release/DAL.pdb
Binary files differ
diff --git a/DAL/bin/Release/DBUtility.dll b/DAL/bin/Release/DBUtility.dll
index 45d4353..ca1dbe5 100644
--- a/DAL/bin/Release/DBUtility.dll
+++ b/DAL/bin/Release/DBUtility.dll
Binary files differ
diff --git a/DAL/bin/Release/DBUtility.pdb b/DAL/bin/Release/DBUtility.pdb
index ef67b9b..4b82f03 100644
--- a/DAL/bin/Release/DBUtility.pdb
+++ b/DAL/bin/Release/DBUtility.pdb
Binary files differ
diff --git a/DAL/bin/Release/Model.dll b/DAL/bin/Release/Model.dll
index 9f8b23d..dcf1e09 100644
--- a/DAL/bin/Release/Model.dll
+++ b/DAL/bin/Release/Model.dll
Binary files differ
diff --git a/DAL/bin/Release/Model.pdb b/DAL/bin/Release/Model.pdb
index 32810b7..ea4f0cc 100644
--- a/DAL/bin/Release/Model.pdb
+++ b/DAL/bin/Release/Model.pdb
Binary files differ
diff --git a/DAL/bin/Release/Pub_Class.dll b/DAL/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/DAL/bin/Release/Pub_Class.dll
+++ b/DAL/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/DAL/bin/Release/Pub_Class.pdb b/DAL/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/DAL/bin/Release/Pub_Class.pdb
+++ b/DAL/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/DAL/bin/Release/Pub_Control.dll b/DAL/bin/Release/Pub_Control.dll
index 3ea2b96..20c44a0 100644
--- a/DAL/bin/Release/Pub_Control.dll
+++ b/DAL/bin/Release/Pub_Control.dll
Binary files differ
diff --git a/DAL/bin/Release/Pub_Control.pdb b/DAL/bin/Release/Pub_Control.pdb
index ab08c90..48a788b 100644
--- a/DAL/bin/Release/Pub_Control.pdb
+++ b/DAL/bin/Release/Pub_Control.pdb
Binary files differ
diff --git a/DAL/bin/Release/SQLHelper.dll b/DAL/bin/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/DAL/bin/Release/SQLHelper.dll
+++ b/DAL/bin/Release/SQLHelper.dll
Binary files differ
diff --git a/DAL/bin/Release/SQLHelper.pdb b/DAL/bin/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/DAL/bin/Release/SQLHelper.pdb
+++ b/DAL/bin/Release/SQLHelper.pdb
Binary files differ
diff --git "a/DAL/\344\273\223\345\272\223\347\256\241\347\220\206/ClsKf_ProductReceiveMaterialBill.cs" "b/DAL/\344\273\223\345\272\223\347\256\241\347\220\206/ClsKf_ProductReceiveMaterialBill.cs"
new file mode 100644
index 0000000..a02bf52
--- /dev/null
+++ "b/DAL/\344\273\223\345\272\223\347\256\241\347\220\206/ClsKf_ProductReceiveMaterialBill.cs"
@@ -0,0 +1,375 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Data;
+
+namespace DAL
+{
+    public  class ClsKf_ProductReceiveMaterialBill : DBUtility.ClsXt_BaseBill
+    {
+        public Model.ClsKf_ProductReceiveMaterialBillMain omodel = new Model.ClsKf_ProductReceiveMaterialBillMain();
+        public List<Model.ClsKf_ProductReceiveMaterialBillSub> DetailColl = new List<Model.ClsKf_ProductReceiveMaterialBillSub>();
+
+        public ClsKf_ProductReceiveMaterialBill()
+        {
+            base.MvarItemKeySub = "Kf_ProductReceiveMaterialBillSub";
+            base.MvarItemKeySub2 = "";
+            base.MvarItemKeySub3 = "";
+            base.MvarItemKeySub4 = "";
+            base.MvarItemKey= "Kf_ProductReceiveMaterialBillMain";
+            base.MvarReportTitle="鐢熶骇棰嗘枡鍗�";
+            base.BillType="1256";
+            base.HBillSubType = "1256";
+
+        }
+
+        #region 鍥哄畾浠g爜
+
+        ~ClsKf_ProductReceiveMaterialBill()
+        {
+            DetailColl = null;
+        }
+       
+        #endregion   鑷畾涔夋柟娉�
+
+
+
+
+
+        //鍒犻櫎鍏宠仈
+        public override void DeleteRelation(ref string sReturn, Int64 lngBillKey)
+        {
+            
+        }
+
+        //鏂板鍏宠仈
+        public override void AddNewRelation(ref string sReturn, Int64 lngBillKey)
+        {
+          
+        }
+
+
+
+        //淇敼鍗曟嵁
+        public override bool ModifyBill(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Kf_ProductReceiveMaterialBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Kf_ProductReceiveMaterialBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+
+                //
+                oCn.BeginTran();
+                //鏇存柊涓昏〃
+                oCn.RunProc("UpDate Kf_ProductReceiveMaterialBillMain set  " +
+                " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
+                ",HDate='" + omodel.HDate + "'" +
+                ",HYear='" + omodel.HYear + "'" +
+                ",HPeriod='" + omodel.HPeriod + "'" +
+                ",HRemark='" + omodel.HRemark + "'" +
+                ",HUpDater='" + omodel.HUpDater + "'" +
+                ",HUpDateDate=getdate()" +
+                //========================================
+                ",HDeptID=" + omodel.HDeptID + "" +
+                ",HEmpID=" + omodel.HEmpID + "" +
+                ",HKeeperID=" + omodel.HKeeperID + "" +
+                " where HInterID=" + lngBillKey
+                );
+                //鍒犻櫎鍏宠仈
+                DeleteRelation(ref sReturn, lngBillKey);
+                //鍒犻櫎瀛愯〃
+                DeleteBillSub(lngBillKey);
+                //鎻掑叆瀛愯〃
+                omodel.HInterID = lngBillKey;
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsKf_ProductReceiveMaterialBillSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into Kf_ProductReceiveMaterialBillSub " +
+                      " (HInterID,HEntryID,HRemark" +
+                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                      ",HMaterID,HUnitID,HQtyMust,HQty,HWHID,HSCWHID,HSPID,HSCSPID" +
+                      ",HSPGroupID,HBatchNo,HPropertyID,HSecUnitID" +
+                      ") " +
+                      " values(" +
+                      "" + omodel.HInterID.ToString() + "" +
+                      "," + oSub.HEntryID.ToString() + "" +
+                      ",'" + oSub.HRemark + "'" +
+                      "," + oSub.HSourceInterID.ToString() + "" +
+                      "," + oSub.HSourceEntryID.ToString() + "" +
+                      ",'" + oSub.HSourceBillNo + "'" +
+                      ",'" + oSub.HSourceBillType + "'" +
+                      "," + oSub.HRelationQty.ToString() + "" +
+                      "," + oSub.HRelationMoney.ToString() +
+
+                      "," + oSub.HMaterID.ToString() + "" +
+                      "," + oSub.HUnitID.ToString() + "" +
+                      "," + oSub.HQtyMust.ToString() +
+                      "," + oSub.HQty.ToString() + "" +
+                      "," + oSub.HWHID.ToString() + "" +
+                      "," + oSub.HSCWHID.ToString() + "" +
+                      "," + oSub.HSPID.ToString() +
+                      "," + oSub.HSCSPID.ToString() + "" +
+                      "," + oSub.HSPGroupID.ToString() + "" +
+                      ",'" + oSub.HBatchNo + "'" +
+                      "," + oSub.HPropertyID.ToString() + "" +
+                      "," + oSub.HSecUnitID.ToString() + "" +
+                      ") ");
+                }
+                //鏇存柊璁㈠崟鍏宠仈鏁伴噺
+                AddNewRelation(ref sReturn, omodel.HInterID);
+                //鎺у埗鍏宠仈鏁伴噺
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Kf_ProductReceiveMaterialBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_YS_ReceiveBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.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
+            {
+                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
+                while (IsExistMainID(ref DBUtility.ClsPub.sExeReturnInfo, omodel.HInterID, Pub_Class.ClsPub.Enum_BillStatus.BillStatus_AddNew))
+                {
+                    omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Kf_ProductReceiveMaterialBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Kf_ProductReceiveMaterialBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+                oCn.BeginTran();
+                //涓昏〃
+                oCn.RunProc("Insert Into Kf_ProductReceiveMaterialBillMain   " +
+                "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
+                ",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType" +
+                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
+                ",HEmpID,HDeptID,HKeeperID,HOrgID) " +
+                " values(" +
+                "'" + this.BillType + "'" +
+                ",'" + this.HBillSubType + "'" +
+                "," + omodel.HInterID.ToString() + "" +
+                ",'" + omodel.HBillNo + "'" +
+                ",'" + omodel.HDate + "'" +
+                "," + omodel.HMainSourceInterID + "" +
+                "," + omodel.HMainSourceEntryID + "" +
+                ",'" + omodel.HMainSourceBillNo + "'" +
+                ",'" + omodel.HMainSourceBillType + "'" +
+                ", " + omodel.HYear.ToString() + "" +
+                "," + omodel.HPeriod.ToString() + "" +
+                ",'" + omodel.HRemark + "'" +
+                ",'" + omodel.HMaker + "'" +
+                ",getdate()" +
+                "," + omodel.HEmpID + "" +
+                "," + omodel.HDeptID + "" +
+                "," + omodel.HKeeperID + "" +
+                "," + omodel.HOrgID + "" +
+                ") ");
+                //鎻掑叆瀛愯〃
+                foreach (Model.ClsKf_ProductReceiveMaterialBillSub oSub in DetailColl)
+                {
+                    oCn.RunProc("Insert into Kf_ProductReceiveMaterialBillSub " +
+                      " (HInterID,HEntryID,HRemark" +
+                      ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
+                      ",HMaterID,HUnitID,HQtyMust,HQty,HWHID,HSCWHID,HSPID,HSCSPID" +
+                      ",HSPGroupID,HBatchNo,HPropertyID,HSecUnitID" +
+                      ") " +
+                      " values(" +
+                      "" + omodel.HInterID.ToString() + "" +
+                      "," + oSub.HEntryID.ToString() + "" +
+                      ",'" + oSub.HRemark + "'" +
+                      "," + oSub.HSourceInterID.ToString() + "" +
+                      "," + oSub.HSourceEntryID.ToString() + "" +
+                      ",'" + oSub.HSourceBillNo + "'" +
+                      ",'" + oSub.HSourceBillType + "'" +
+                      "," + oSub.HRelationQty.ToString() + "" +
+                      "," + oSub.HRelationMoney.ToString() +
+
+                      "," + oSub.HMaterID.ToString() + "" +
+                      "," + oSub.HUnitID.ToString() + "" +
+                      "," + oSub.HQtyMust.ToString() +
+                      "," + oSub.HQty.ToString() + "" +
+                      "," + oSub.HWHID.ToString() + "" +
+                      "," + oSub.HSCWHID.ToString() + "" +
+                      "," + oSub.HSPID.ToString() +
+                      "," + oSub.HSCSPID.ToString() + "" +
+                      "," + oSub.HSPGroupID.ToString() + "" +
+                      ",'" + oSub.HBatchNo + "'" +
+                      "," + oSub.HPropertyID.ToString() + "" +
+                      "," + oSub.HSecUnitID.ToString() + "" +
+                      ") ");
+                }
+                //鏇存柊璁㈠崟鍏宠仈鏁伴噺
+                AddNewRelation(ref sReturn, omodel.HInterID);
+                //鎺у埗鍏宠仈鏁伴噺
+                //
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Kf_ProductReceiveMaterialBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Kf_ProductReceiveMaterialBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.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 Kf_ProductReceiveMaterialBillMain Where HInterID=" + lngBillKey.ToString(), "Kf_ProductReceiveMaterialBillMain");
+                if(Ds.Tables[0].Rows.Count==0)
+                {
+                    sReturn = "鍗曟嵁鏈壘鍒帮紒";
+                    return false;
+                }
+                //鍥哄畾璧嬪��===========================================
+                omodel.HMainSourceBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMainSourceBillType"]);
+                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 = Ds.Tables[0].Rows[0]["HBillNo"].ToString().Trim();
+                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.HCheckFlowID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HCheckFlowID"]);
+                omodel.HRemark = Ds.Tables[0].Rows[0]["HRemark"].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.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.HCloseDate = Ds.Tables[0].Rows[0]["HCloseDate"].ToString().Trim();
+                omodel.HCloseMan = Ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();
+                omodel.HCloseType = DBUtility.ClsPub.isBool(Ds.Tables[0].Rows[0]["HCloseType"]);
+                omodel.HDeleteDate = Ds.Tables[0].Rows[0]["HDeleteDate"].ToString().Trim();
+                omodel.HDeleteMan = Ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();
+                //========================================================
+                omodel.HEmpID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HEmpID"]);
+                omodel.HDeptID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HDeptID"]);
+                omodel.HKeeperID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HKeeperID"]);
+                //
+
+                //寰幆
+                DataSet DsSub ;
+                DsSub = oCn.RunProcReturn("Select * from Kf_ProductReceiveMaterialBillSub Where HInterID=" + lngBillKey.ToString(), "Kf_ProductReceiveMaterialBillSub");
+                DetailColl.Clear();//娓呯┖
+                for (int i = 0; i < DsSub.Tables[0].Rows.Count; i++)
+                {
+                    Model.ClsKf_ProductReceiveMaterialBillSub oSub = new Model.ClsKf_ProductReceiveMaterialBillSub();
+                    // 鍥哄畾璧嬪��===============================================
+                    oSub.HInterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HInterID"]);
+                    oSub.HEntryID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HEntryID"]);
+                    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.HCloseMan =  DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HCloseMan"]);
+                    oSub.HCloseType = DBUtility.ClsPub.isBool(DsSub.Tables[0].Rows[i]["HCloseType"]);
+                    oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DsSub.Tables[0].Rows[i]["HEntryCloseDate"]);
+                    oSub.HRemark = DsSub.Tables[0].Rows[i]["HRemark"].ToString().Trim();
+                    //===================================================
+                    oSub.HMaterID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HMaterID"]);
+                    oSub.HUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HUnitID"]);
+                    oSub.HQty = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQty"]);
+                    oSub.HQtyMust = DBUtility.ClsPub.isDoule(DsSub.Tables[0].Rows[i]["HQtyMust"]);
+                    oSub.HWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HWHID"]);
+                    oSub.HSCWHID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCWHID"]);
+                    oSub.HSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPID"]);
+                    oSub.HSCSPID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSCSPID"]);
+                    
+                    oSub.HSPGroupID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSPGroupID"]);
+                    oSub.HBatchNo = DBUtility.ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HBatchNo"]);
+                    oSub.HPropertyID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HPropertyID"]);
+                    oSub.HSecUnitID = DBUtility.ClsPub.isLong(DsSub.Tables[0].Rows[i]["HSecUnitID"]);
+                    DetailColl.Add(oSub);
+                }
+                sReturn = "鏄剧ず鍗曟嵁鎴愬姛锛�";
+                return true;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }        
+    }
+}
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_BackSampleCheckBill.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_BackSampleCheckBill.cs"
index def9c1f..fd30338 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_BackSampleCheckBill.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_BackSampleCheckBill.cs"
@@ -125,6 +125,8 @@
             try
             {
 
+                oCn.BeginTran();
+
                 //淇濆瓨鍓嶆帶鍒�=========================================
                 string HBillNote = "";
                 DataSet ds = oCn.RunProcReturn("Exec h_p_QC_BackSampleCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_QC_BackSampleCheckBill_BeforeSaveCtrl");
@@ -140,8 +142,7 @@
                 }
                 //=========================================================
 
-                oCn.BeginTran();
-
+              
                 string sql = "";
 
                 sql = "Insert Into QC_BackSampleCheckBillMain" +
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
index aac4bcb..d2a89f8 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_EnvironmentTestDotCheckBillMain.cs"
@@ -38,6 +38,21 @@
             {
 
                 oCn.BeginTran();
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_EnvironmentTestDotCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_QC_EnvironmentTestDotCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate QC_EnvironmentTestDotCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  
@@ -88,6 +103,22 @@
                 }
 
 
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_EnvironmentTestDotCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_QC_EnvironmentTestDotCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
                 return true;
@@ -108,6 +139,21 @@
                 DataSet ds;
 
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                ds = oCn.RunProcReturn("Exec h_p_QC_EnvironmentTestDotCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_QC_EnvironmentTestDotCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
 
                 //妫�鏌ヤ富琛ㄥ唴鐮佹槸鍚﹂噸澶嶏紝鑻ラ噸澶嶅垯閲嶆柊鐢熸垚骞剁户缁鏌ワ紝鐩村埌涓嶅啀閲嶅
                 while (true)
@@ -174,6 +220,22 @@
                     oCn.RunProc(subSql);
                 }
 
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_EnvironmentTestDotCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_QC_EnvironmentTestDotCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
                 return true;
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_PatrolProcCheckOtherBill.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_PatrolProcCheckOtherBill.cs"
index 5f8a05c..61e56be 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_PatrolProcCheckOtherBill.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_PatrolProcCheckOtherBill.cs"
@@ -38,6 +38,22 @@
             {
               
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_PatrolProcCheckOtherBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_QC_PatrolProcCheckOtherBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate QC_PatrolProcCheckOtherBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
@@ -94,6 +110,21 @@
                       "','" + oSub.HUpOffSet + "','" + oSub.HDownOffSet + "'," + Convert.ToString(oSub.HKeyInspect ? 1 : 0) + ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ") ");
                 }
 
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_PatrolProcCheckOtherBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_QC_PatrolProcCheckOtherBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
 
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
@@ -115,6 +146,20 @@
                 //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
 
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Sc_WorkBeginDotCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_QualityReportBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
 
                 oCn.BeginTran();
                 //涓昏〃
@@ -154,7 +199,23 @@
                       "'," + oSub.HUnitID + ",'" + oSub.HInspectValB + "','" + oSub.HInspectVal + "','" + oSub.HTargetValB + "','" + oSub.HTargetVal + "','" + oSub.HUpLimit + "','" + oSub.HDownLimit +
                       "','" + oSub.HUpOffSet + "','" + oSub.HDownOffSet + "'," + Convert.ToString(oSub.HKeyInspect ? 1 : 0)+ ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ") ");
                 }
-              
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Sc_WorkBeginDotCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Sc_QualityReportBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
                 return true;
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_StockCheckBill.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_StockCheckBill.cs"
index c68fb5a..0369eb4 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_StockCheckBill.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_StockCheckBill.cs"
@@ -38,6 +38,23 @@
             {
               
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_StockCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_QC_StockCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate QC_StockCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
@@ -92,6 +109,21 @@
                       "','" + oSub.HUpOffSet + "','" + oSub.HDownOffSet + "'," + oSub.HKeyInspect + ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ") ");
                 }
 
+                //========================= 淇濆瓨鍚庢帶鍒�
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_StockCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_QC_StockCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
 
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
@@ -109,12 +141,23 @@
         {
             try
             {
-                //寰楀埌mainid
-                //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
-                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
-
+              
               
                 oCn.BeginTran();
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_StockCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_QC_StockCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
                 //涓昏〃
                 oCn.RunProc("Insert Into QC_StockCheckBillMain " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
@@ -153,6 +196,22 @@
                       "','" + oSub.HUpOffSet + "','" + oSub.HDownOffSet + "'," + oSub.HKeyInspect + ",'" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ") ");
                 }
               
+                 //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_StockCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_QC_StockCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
                 return true;
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_TakeSampleCheckBill.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_TakeSampleCheckBill.cs"
index 5766882..7ebe5b1 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_TakeSampleCheckBill.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_TakeSampleCheckBill.cs"
@@ -35,8 +35,25 @@
         {
             try
             {
-                //
+
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_TakeSampleCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_QC_TakeSampleCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate QC_TakeSampleCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
@@ -81,8 +98,24 @@
                 //鍒犻櫎瀛愯〃
                 //DeleteBillSub(lngBillKey);
 
-               
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_TakeSampleCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_QC_TakeSampleCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 oCn.Commit();
                 return true;
             }
@@ -102,6 +135,22 @@
                 omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+               DataSet  ds = oCn.RunProcReturn("Exec h_p_QC_TakeSampleCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_QC_TakeSampleCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //涓昏〃
                 oCn.RunProc("Insert Into QC_TakeSampleCheckBillMain " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
@@ -117,6 +166,23 @@
                 "','" + omodel.HCheckEmp.ToString() + "','" + omodel.HProcID.ToString() + "','" + omodel.HGroupID.ToString() + "','" + omodel.HShiftsID.ToString() + "','" + omodel.HQty.ToString() + "','" + omodel.HSourceOrgID.ToString() + "','" +omodel.HInspectOrgID.ToString()+
               "','" + omodel.HSampleDamageQty.ToString() + "','" + omodel.HBadNote + "','" + omodel.HProdWeight1.ToString() + "','" + omodel.HProdWeight2.ToString() + "','" + omodel.HProdWeight3.ToString() + "','" + omodel.TestType.ToString() + "') ");              
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_TakeSampleCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_QC_TakeSampleCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 oCn.Commit();
                 return true;
             }
diff --git "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_WorkSelfCheckBill.cs" "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_WorkSelfCheckBill.cs"
index 3fd6c8b..577c94f 100644
--- "a/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_WorkSelfCheckBill.cs"
+++ "b/DAL/\350\264\250\346\243\200\347\256\241\347\220\206/ClsQC_WorkSelfCheckBill.cs"
@@ -38,6 +38,23 @@
             {
               
                 oCn.BeginTran();
+
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_QC_WorkSelfCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_QC_WorkSelfCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate QC_WorkSelfCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
@@ -93,6 +110,21 @@
                       "','" + oSub.HUpOffSet + "','" + oSub.HDownOffSet + "','" + oSub.HKeyInspect + "','" + oSub.HAnalysisMethod + "'," + oSub.HInspectInstruMentID + ",'" + oSub.HInspectResult + "'" + ") ");
                 }
 
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_WorkSelfCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_QC_WorkSelfCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
 
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
@@ -110,12 +142,24 @@
         {
             try
             {
-                //寰楀埌mainid
-                //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
-                //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
-
-              
+                DataSet ds;
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                ds = oCn.RunProcReturn("Exec h_p_QC_WorkSelfCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_QC_WorkSelfCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //涓昏〃
                 oCn.RunProc("Insert Into QC_WorkSelfCheckBillMain " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
@@ -154,6 +198,24 @@
                 }
               
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
+
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_QC_WorkSelfCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_QC_WorkSelfCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 oCn.Commit();
                 return true;
             }
diff --git "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsQc_PreventErrMouldCheckBillMain.cs" "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsQc_PreventErrMouldCheckBillMain.cs"
index fde391f..cfd96bb 100644
--- "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsQc_PreventErrMouldCheckBillMain.cs"
+++ "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsQc_PreventErrMouldCheckBillMain.cs"
@@ -38,6 +38,23 @@
             {
 
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Qc_PreventErrMouldCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2 ", "h_p_Qc_PreventErrMouldCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate Qc_PreventErrMouldCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  
@@ -80,6 +97,21 @@
                         "')";
                     oCn.RunProc(subSql);
                 }
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Qc_PreventErrMouldCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_Qc_PreventErrMouldCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
 
 
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
@@ -102,6 +134,21 @@
                 DataSet ds;
 
                 oCn.BeginTran();
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                ds = oCn.RunProcReturn("Exec h_p_Qc_PreventErrMouldCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Qc_PreventErrMouldCheckBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
 
                 //妫�鏌ヤ富琛ㄥ唴鐮佹槸鍚﹂噸澶嶏紝鑻ラ噸澶嶅垯閲嶆柊鐢熸垚骞剁户缁鏌ワ紝鐩村埌涓嶅啀閲嶅
                 while (true)
@@ -165,6 +212,21 @@
                         "')";
                     oCn.RunProc(subSql);
                 }
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_Qc_PreventErrMouldCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Qc_PreventErrMouldCheckBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
 
                 sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
                 oCn.Commit();
diff --git "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustInBill.cs" "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustInBill.cs"
index 1ebff10..c6e696c 100644
--- "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustInBill.cs"
+++ "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustInBill.cs"
@@ -812,11 +812,13 @@
             return true;
 
         }
-        public bool DeleteBill(long HInterID, long HProcExchInterID, long HProcExchEntryID, ref string sReturn)
+        public bool DeleteBill(long HInterID, long HProcExchInterID, long HProcExchEntryID, string HBillNo, string procName, string user, ref string sReturn)
         {
             try
             {
                 oCn.BeginTran();
+
+
                 //鍐欏叆鍒犻櫎鏃ュ織
                 //oCn.RunProc("exec h_p_Sc_StationInBillMain_DropLog " + HInterID+",'"+DBUtility.ClsPub.CurUserName+"'");
 
@@ -836,6 +838,24 @@
                 //鍥炲~娴佽浆鍗¤繘绔欐椂闂�
                 //oCn.RunProc("update Sc_ProcessExchangeBillsub set HRelBeginDate=null where HInterID=" + HProcExchInterID + " and HEntryID=" + HProcExchEntryID);
 
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec " + procName + " " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                DataSet ds = oCn.RunProcReturn(sql2, procName);
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+
+                    sReturn = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCn.RollBack();
+                    return false;
+                }
+                //==============================================================================================
+
                 oCn.Commit();
                 return true;
             }
diff --git "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustOutBill.cs" "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustOutBill.cs"
index 37c8bf9..d5b2abf 100644
--- "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustOutBill.cs"
+++ "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_StationEntrustOutBill.cs"
@@ -1042,7 +1042,7 @@
         }
 
 
-        public bool DeleteBill(long HInterID, long HProcExchInterID, long HProcExchEntryID, ref string sReturn)
+        public bool DeleteBill(long HInterID, long HProcExchInterID, long HProcExchEntryID, string HBillNo, string procName, string user, ref string sReturn)
         {
             try
             {
@@ -1050,7 +1050,6 @@
                 //鍒犻櫎鍏宠仈
 
 
-                //////
                 oCn.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Out " + HInterID.ToString() + ",-1");
                 oCn.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_Out " + HInterID.ToString() + ",-1");
                 //
@@ -1058,8 +1057,26 @@
                 //鍒犻櫎鍗曟嵁
                 oCn.RunProc("delete Sc_StationOutBillMain   where HInterID=" + HInterID);
                 oCn.RunProc("delete Sc_StationOutBillSub   where HInterID=" + HInterID);
-               // oCn.RunProc("delete Sc_StationOutBillSub_Item   where HInterID=" + HInterID);
-              //oCn.RunProc("update Sc_ProcessExchangeBillsub set HRelEndDate=null where HInterID=" + HProcExchInterID + " and HEntryID=" + HProcExchEntryID);
+                // oCn.RunProc("delete Sc_StationOutBillSub_Item   where HInterID=" + HInterID);
+                //oCn.RunProc("update Sc_ProcessExchangeBillsub set HRelEndDate=null where HInterID=" + HProcExchInterID + " and HEntryID=" + HProcExchEntryID);
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec " + procName + " " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                DataSet ds = oCn.RunProcReturn(sql2, procName);
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+
+                    sReturn = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCn.RollBack();
+                    return false;
+                }
+                //==============================================================================================
 
                 oCn.Commit();
                 return true;
diff --git "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_WorkBeginDotCheckBillMain.cs" "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_WorkBeginDotCheckBillMain.cs"
index 9aa9d87..ede7491 100644
--- "a/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_WorkBeginDotCheckBillMain.cs"
+++ "b/DAL/\350\275\246\351\227\264\347\256\241\347\220\206/ClsSc_WorkBeginDotCheckBillMain.cs"
@@ -37,9 +37,11 @@
             try
             {
 
+                oCn.BeginTran();
+
                 //淇濆瓨鍓嶆帶鍒�=========================================
                 string HBillNote = "";
-                DataSet ds = oCn.RunProcReturn("Exec h_p_Sc_WorkBeginDotCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_QualityReportBill_BeforeSaveCtrl");
+                DataSet ds = oCn.RunProcReturn("Exec h_p_Sc_WorkBeginDotCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_Sc_QualityReportBill_BeforeSaveCtrl");
                 if (ds == null)
                 {
                     sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
@@ -52,7 +54,7 @@
                 }
                 //=========================================================
 
-                oCn.BeginTran();
+              
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate Sc_WorkBeginDotCheckBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  
@@ -107,7 +109,7 @@
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
 
                 //=========================淇濆瓨鍚庢帶鍒�  
-                DataSet ds2 = oCn.RunProcReturn("h_p_Sc_WorkBeginDotCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_Sc_QualityReportBill_AfterSaveCtrl");
+                DataSet ds2 = oCn.RunProcReturn("h_p_Sc_WorkBeginDotCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_Sc_QualityReportBill_AfterSaveCtrl");
                 if (ds2 == null)
                 {
                     sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
@@ -139,6 +141,7 @@
             {
 
                 DataSet ds;
+                oCn.BeginTran();
 
                 //淇濆瓨鍓嶆帶鍒�=========================================
                 string HBillNote = "";
@@ -155,7 +158,7 @@
                 }
                 //=========================================================
 
-                oCn.BeginTran();
+            
 
                 //妫�鏌ヤ富琛ㄥ唴鐮佹槸鍚﹂噸澶嶏紝鑻ラ噸澶嶅垯閲嶆柊鐢熸垚骞剁户缁鏌ワ紝鐩村埌涓嶅啀閲嶅
                 while (true)
diff --git a/DBUtility/bin/Release/DBUtility.dll b/DBUtility/bin/Release/DBUtility.dll
index 45d4353..ca1dbe5 100644
--- a/DBUtility/bin/Release/DBUtility.dll
+++ b/DBUtility/bin/Release/DBUtility.dll
Binary files differ
diff --git a/DBUtility/bin/Release/DBUtility.pdb b/DBUtility/bin/Release/DBUtility.pdb
index ef67b9b..4b82f03 100644
--- a/DBUtility/bin/Release/DBUtility.pdb
+++ b/DBUtility/bin/Release/DBUtility.pdb
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Class.dll b/DBUtility/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/DBUtility/bin/Release/Pub_Class.dll
+++ b/DBUtility/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Class.pdb b/DBUtility/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/DBUtility/bin/Release/Pub_Class.pdb
+++ b/DBUtility/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Control.dll b/DBUtility/bin/Release/Pub_Control.dll
index 3ea2b96..20c44a0 100644
--- a/DBUtility/bin/Release/Pub_Control.dll
+++ b/DBUtility/bin/Release/Pub_Control.dll
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Control.pdb b/DBUtility/bin/Release/Pub_Control.pdb
index ab08c90..48a788b 100644
--- a/DBUtility/bin/Release/Pub_Control.pdb
+++ b/DBUtility/bin/Release/Pub_Control.pdb
Binary files differ
diff --git a/DBUtility/bin/Release/SQLHelper.dll b/DBUtility/bin/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/DBUtility/bin/Release/SQLHelper.dll
+++ b/DBUtility/bin/Release/SQLHelper.dll
Binary files differ
diff --git a/DBUtility/bin/Release/SQLHelper.pdb b/DBUtility/bin/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/DBUtility/bin/Release/SQLHelper.pdb
+++ b/DBUtility/bin/Release/SQLHelper.pdb
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache b/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
index 6cb04aa..07ae845 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache b/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
index 0e5831b..d4f0c96 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.csproj.ResolveComReference.cache b/DBUtility/obj/Release/DBUtility.csproj.ResolveComReference.cache
index abd5f74..59940f0 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.ResolveComReference.cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.ResolveComReference.cache
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.dll b/DBUtility/obj/Release/DBUtility.dll
index 45d4353..ca1dbe5 100644
--- a/DBUtility/obj/Release/DBUtility.dll
+++ b/DBUtility/obj/Release/DBUtility.dll
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.pdb b/DBUtility/obj/Release/DBUtility.pdb
index ef67b9b..4b82f03 100644
--- a/DBUtility/obj/Release/DBUtility.pdb
+++ b/DBUtility/obj/Release/DBUtility.pdb
Binary files differ
diff --git "a/DBUtility/\344\270\232\345\212\241\345\215\225\346\215\256/ClsXt_BaseBill.cs" "b/DBUtility/\344\270\232\345\212\241\345\215\225\346\215\256/ClsXt_BaseBill.cs"
index 254c550..b805e7c 100644
--- "a/DBUtility/\344\270\232\345\212\241\345\215\225\346\215\256/ClsXt_BaseBill.cs"
+++ "b/DBUtility/\344\270\232\345\212\241\345\215\225\346\215\256/ClsXt_BaseBill.cs"
@@ -524,7 +524,8 @@
                 string sql1 = "select b.HInterID,b.HCheckItemID from Xt_CheckFlowMain as a " +
                                 "inner join Xt_CheckFlowSub as b on a.HInterID = b.HInterID " +
                                 "where a.HBillTypeID = '" + this.BillType + "' " +
-                                "and a.HInterID = " + HCheckFlowID_select + " " +
+                                //"and a.HInterID = " + HCheckFlowID_select + " " +
+                                "and a.HStandard = 1 " + 
                                 "order by b.HFlowNo asc";
                 DataSet ds1 = oCn.RunProcReturn(sql1, "Xt_CheckFlowMain");
                 if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
@@ -696,7 +697,7 @@
                 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                 {
                     string HBillType = ds.Tables[0].Rows[0]["HBillType"].ToString();
-                    if (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1247" || HBillType == "1244" || HBillType == "1251" || HBillType == "1210" || HBillType == "1205" || HBillType == "1250" || HBillType == "1206" || HBillType == "1245" || HBillType == "1239")
+                    if (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1247" || HBillType == "1244" || HBillType == "1251" || HBillType == "1210" || HBillType == "1205" || HBillType == "1250" || HBillType == "1206" || HBillType == "1245" || HBillType == "1239"|| HBillType == "1256")
                     {
                         //鍙嶅鏍告洿鏂� 鍙婃椂搴撳瓨琛� 澧炲姞搴撳瓨 1201 1202 1203 1247 1244 1251 1210
                         //鍙嶅鏍告洿鏂� 鍙婃椂搴撳瓨琛� 鍑忓皯搴撳瓨 1205 1250 1206 1245 1239 
@@ -900,7 +901,7 @@
                 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                 {
                     string HBillType = ds.Tables[0].Rows[0]["HBillType"].ToString();
-                    if (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1247" || HBillType == "1244" || HBillType == "1251" || HBillType == "1210" || HBillType == "1250" || HBillType == "1206" || HBillType == "1245" || HBillType == "1239")
+                    if (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1247" || HBillType == "1244" || HBillType == "1251" || HBillType == "1210" || HBillType == "1250" || HBillType == "1206" || HBillType == "1245" || HBillType == "1239" || HBillType == "1256")
                     {
                         //瀹℃牳鏇存柊 鍙婃椂搴撳瓨琛� 澧炲姞搴撳瓨 1201 1202 1203 1247 1244 1251 1210
                         //瀹℃牳鏇存柊 鍙婃椂搴撳瓨琛� 鍑忓皯搴撳瓨 1204 1250 1206 1245 1239 
diff --git a/Model/Model.csproj b/Model/Model.csproj
index 1ef7a56..8483623 100644
--- a/Model/Model.csproj
+++ b/Model/Model.csproj
@@ -160,6 +160,8 @@
     <Compile Include="鐢熶骇绠$悊\鎺掍骇閿佸畾鐢宠鍗昞ClsJIT_LockRequestBillMain.cs" />
     <Compile Include="鐢熶骇绠$悊\鎺掍骇閿佸畾鐢宠鍗昞ClsJIT_LockRequestBillSub.cs" />
     <Compile Include="鐢熶骇绠$悊\妯″叿绠$悊\ClsSc_MouldMaintainPlanBillSub_Plan.cs" />
+    <Compile Include="鐢熶骇绠$悊\鐢熶骇棰嗘枡\ClsKf_ProductReceiveMaterialBillMain.cs" />
+    <Compile Include="鐢熶骇绠$悊\鐢熶骇棰嗘枡\ClsKf_ProductReceiveMaterialBillSub.cs" />
     <Compile Include="绯荤粺鍏敤\ClsXt_DefineBillMainSetSub.cs" />
     <Compile Include="绯荤粺鍏敤\ClsXt_DefineBillMainSetMain.cs" />
     <Compile Include="璁″垝绠$悊\ClsGy_SourceMouldBillMain.cs" />
diff --git a/Model/bin/Release/DBUtility.dll b/Model/bin/Release/DBUtility.dll
index 45d4353..ca1dbe5 100644
--- a/Model/bin/Release/DBUtility.dll
+++ b/Model/bin/Release/DBUtility.dll
Binary files differ
diff --git a/Model/bin/Release/DBUtility.pdb b/Model/bin/Release/DBUtility.pdb
index ef67b9b..4b82f03 100644
--- a/Model/bin/Release/DBUtility.pdb
+++ b/Model/bin/Release/DBUtility.pdb
Binary files differ
diff --git a/Model/bin/Release/Model.dll b/Model/bin/Release/Model.dll
index 9f8b23d..dcf1e09 100644
--- a/Model/bin/Release/Model.dll
+++ b/Model/bin/Release/Model.dll
Binary files differ
diff --git a/Model/bin/Release/Model.pdb b/Model/bin/Release/Model.pdb
index 32810b7..ea4f0cc 100644
--- a/Model/bin/Release/Model.pdb
+++ b/Model/bin/Release/Model.pdb
Binary files differ
diff --git a/Model/bin/Release/Pub_Class.dll b/Model/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/Model/bin/Release/Pub_Class.dll
+++ b/Model/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/Model/bin/Release/Pub_Class.pdb b/Model/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/Model/bin/Release/Pub_Class.pdb
+++ b/Model/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/Model/bin/Release/Pub_Control.dll b/Model/bin/Release/Pub_Control.dll
index 3ea2b96..20c44a0 100644
--- a/Model/bin/Release/Pub_Control.dll
+++ b/Model/bin/Release/Pub_Control.dll
Binary files differ
diff --git a/Model/bin/Release/Pub_Control.pdb b/Model/bin/Release/Pub_Control.pdb
index ab08c90..48a788b 100644
--- a/Model/bin/Release/Pub_Control.pdb
+++ b/Model/bin/Release/Pub_Control.pdb
Binary files differ
diff --git a/Model/bin/Release/SQLHelper.dll b/Model/bin/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/Model/bin/Release/SQLHelper.dll
+++ b/Model/bin/Release/SQLHelper.dll
Binary files differ
diff --git a/Model/bin/Release/SQLHelper.pdb b/Model/bin/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/Model/bin/Release/SQLHelper.pdb
+++ b/Model/bin/Release/SQLHelper.pdb
Binary files differ
diff --git a/Model/obj/Release/Model.csproj.AssemblyReference.cache b/Model/obj/Release/Model.csproj.AssemblyReference.cache
index 5bbfdc3..3883600 100644
--- a/Model/obj/Release/Model.csproj.AssemblyReference.cache
+++ b/Model/obj/Release/Model.csproj.AssemblyReference.cache
Binary files differ
diff --git a/Model/obj/Release/Model.dll b/Model/obj/Release/Model.dll
index 9f8b23d..dcf1e09 100644
--- a/Model/obj/Release/Model.dll
+++ b/Model/obj/Release/Model.dll
Binary files differ
diff --git a/Model/obj/Release/Model.pdb b/Model/obj/Release/Model.pdb
index 32810b7..ea4f0cc 100644
--- a/Model/obj/Release/Model.pdb
+++ b/Model/obj/Release/Model.pdb
Binary files differ
diff --git "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillMain.cs" "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillMain.cs"
new file mode 100644
index 0000000..5fc244b
--- /dev/null
+++ "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillMain.cs"
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsKf_ProductReceiveMaterialBillMain : DBUtility.ClsXt_BaseBillMain
+    {
+        public Int64 HEmpID;                        //业务员
+        public Int64 HDeptID;                       //部门
+        public Int64 HKeeperID;                     //仓管员
+        public Int64 HOrgID;
+    }
+}
diff --git "a/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillSub.cs" "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillSub.cs"
new file mode 100644
index 0000000..69421c9
--- /dev/null
+++ "b/Model/\347\224\237\344\272\247\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/ClsKf_ProductReceiveMaterialBillSub.cs"
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Model
+{
+    public class ClsKf_ProductReceiveMaterialBillSub : DBUtility.ClsXt_BaseBillSub
+    { 
+        public Int64 HMaterID;                      //      int                 --物料ID
+        public Int64 HUnitID;                       //      int      			--计量单位
+        public double HQtyMust;                     //      dec(18,8)           --应领数量
+        public double HQty;                         //      dec(18,8)      		--实领数量
+        public Int64 HWHID;                         //      int      			--收料仓库
+        public Int64 HSCWHID;                       //      int                 --调出仓库ID 
+        public Int64 HSPID;                         //		int			        --仓位ID		 
+        public Int64 HSCSPID;                       //		int 			    --调出仓位ID	
+
+
+        public Int64 HPropertyID;                   //      int    			    --辅助属性
+        public Int64 HSecUnitID;                    //      int    			    --辅助计量单位
+        public Int64 HSPGroupID;                    //	    int			        --仓位组ID(仓库选择完自动带出)
+        public string HBatchNo;                     //	    varchar(50)		    --批次
+    }
+}
diff --git a/PayM/bin/x86/Debug/BLL.dll b/PayM/bin/x86/Debug/BLL.dll
index 5126fd5..2127c3b 100644
--- a/PayM/bin/x86/Debug/BLL.dll
+++ b/PayM/bin/x86/Debug/BLL.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/BLL.pdb b/PayM/bin/x86/Debug/BLL.pdb
index 0abd577..6752251 100644
--- a/PayM/bin/x86/Debug/BLL.pdb
+++ b/PayM/bin/x86/Debug/BLL.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/DAL.dll b/PayM/bin/x86/Debug/DAL.dll
index ac0a677..2c4bcb9 100644
--- a/PayM/bin/x86/Debug/DAL.dll
+++ b/PayM/bin/x86/Debug/DAL.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/DAL.pdb b/PayM/bin/x86/Debug/DAL.pdb
index c81fa11..f7c5554 100644
--- a/PayM/bin/x86/Debug/DAL.pdb
+++ b/PayM/bin/x86/Debug/DAL.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/DBUtility.dll b/PayM/bin/x86/Debug/DBUtility.dll
index fd8aeba..07e01d0 100644
--- a/PayM/bin/x86/Debug/DBUtility.dll
+++ b/PayM/bin/x86/Debug/DBUtility.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/DBUtility.pdb b/PayM/bin/x86/Debug/DBUtility.pdb
index 7a75819..f96d5e1 100644
--- a/PayM/bin/x86/Debug/DBUtility.pdb
+++ b/PayM/bin/x86/Debug/DBUtility.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/Model.dll b/PayM/bin/x86/Debug/Model.dll
index ef97573..b7423d8 100644
--- a/PayM/bin/x86/Debug/Model.dll
+++ b/PayM/bin/x86/Debug/Model.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/Model.pdb b/PayM/bin/x86/Debug/Model.pdb
index 8d52961..c1c1d54 100644
--- a/PayM/bin/x86/Debug/Model.pdb
+++ b/PayM/bin/x86/Debug/Model.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/PayM.dll b/PayM/bin/x86/Debug/PayM.dll
index 3328631..4f5927c 100644
--- a/PayM/bin/x86/Debug/PayM.dll
+++ b/PayM/bin/x86/Debug/PayM.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/PayM.pdb b/PayM/bin/x86/Debug/PayM.pdb
index 387fb2d..f63a246 100644
--- a/PayM/bin/x86/Debug/PayM.pdb
+++ b/PayM/bin/x86/Debug/PayM.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/Pub_Class.dll b/PayM/bin/x86/Debug/Pub_Class.dll
index 11d0ca3..bebe98b 100644
--- a/PayM/bin/x86/Debug/Pub_Class.dll
+++ b/PayM/bin/x86/Debug/Pub_Class.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/Pub_Class.pdb b/PayM/bin/x86/Debug/Pub_Class.pdb
index bb751ac..abca571 100644
--- a/PayM/bin/x86/Debug/Pub_Class.pdb
+++ b/PayM/bin/x86/Debug/Pub_Class.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/Pub_Control.dll b/PayM/bin/x86/Debug/Pub_Control.dll
index da89026..012a72e 100644
--- a/PayM/bin/x86/Debug/Pub_Control.dll
+++ b/PayM/bin/x86/Debug/Pub_Control.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/Pub_Control.pdb b/PayM/bin/x86/Debug/Pub_Control.pdb
index c63db4a..3969309 100644
--- a/PayM/bin/x86/Debug/Pub_Control.pdb
+++ b/PayM/bin/x86/Debug/Pub_Control.pdb
Binary files differ
diff --git a/PayM/bin/x86/Debug/SQLHelper.dll b/PayM/bin/x86/Debug/SQLHelper.dll
index ce0cd25..6f5c6fe 100644
--- a/PayM/bin/x86/Debug/SQLHelper.dll
+++ b/PayM/bin/x86/Debug/SQLHelper.dll
Binary files differ
diff --git a/PayM/bin/x86/Debug/SQLHelper.pdb b/PayM/bin/x86/Debug/SQLHelper.pdb
index c2b701a..d7b618e 100644
--- a/PayM/bin/x86/Debug/SQLHelper.pdb
+++ b/PayM/bin/x86/Debug/SQLHelper.pdb
Binary files differ
diff --git a/PayM/obj/x86/Debug/PayM.dll b/PayM/obj/x86/Debug/PayM.dll
index 3328631..4f5927c 100644
--- a/PayM/obj/x86/Debug/PayM.dll
+++ b/PayM/obj/x86/Debug/PayM.dll
Binary files differ
diff --git a/PayM/obj/x86/Debug/PayM.pdb b/PayM/obj/x86/Debug/PayM.pdb
index 387fb2d..f63a246 100644
--- a/PayM/obj/x86/Debug/PayM.pdb
+++ b/PayM/obj/x86/Debug/PayM.pdb
Binary files differ
diff --git a/Pub_Class/bin/Release/Pub_Class.dll b/Pub_Class/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/Pub_Class/bin/Release/Pub_Class.dll
+++ b/Pub_Class/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/Pub_Class/bin/Release/Pub_Class.pdb b/Pub_Class/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/Pub_Class/bin/Release/Pub_Class.pdb
+++ b/Pub_Class/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/Pub_Class/bin/Release/SyntacticSugar.dll b/Pub_Class/bin/Release/SyntacticSugar.dll
index 609cfaf..9a5be6e 100644
--- a/Pub_Class/bin/Release/SyntacticSugar.dll
+++ b/Pub_Class/bin/Release/SyntacticSugar.dll
Binary files differ
diff --git a/Pub_Class/bin/Release/SyntacticSugar.pdb b/Pub_Class/bin/Release/SyntacticSugar.pdb
index f3f20ec..310ad83 100644
--- a/Pub_Class/bin/Release/SyntacticSugar.pdb
+++ b/Pub_Class/bin/Release/SyntacticSugar.pdb
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Class.dll b/Pub_Control/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/Pub_Control/bin/Release/Pub_Class.dll
+++ b/Pub_Control/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Class.pdb b/Pub_Control/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/Pub_Control/bin/Release/Pub_Class.pdb
+++ b/Pub_Control/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Control.dll b/Pub_Control/bin/Release/Pub_Control.dll
index 3ea2b96..20c44a0 100644
--- a/Pub_Control/bin/Release/Pub_Control.dll
+++ b/Pub_Control/bin/Release/Pub_Control.dll
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Control.pdb b/Pub_Control/bin/Release/Pub_Control.pdb
index ab08c90..48a788b 100644
--- a/Pub_Control/bin/Release/Pub_Control.pdb
+++ b/Pub_Control/bin/Release/Pub_Control.pdb
Binary files differ
diff --git a/SQLHelper/bin/Release/Pub_Class.dll b/SQLHelper/bin/Release/Pub_Class.dll
index 6c41ee2..cec933d 100644
--- a/SQLHelper/bin/Release/Pub_Class.dll
+++ b/SQLHelper/bin/Release/Pub_Class.dll
Binary files differ
diff --git a/SQLHelper/bin/Release/Pub_Class.pdb b/SQLHelper/bin/Release/Pub_Class.pdb
index ef676f7..915a3dd 100644
--- a/SQLHelper/bin/Release/Pub_Class.pdb
+++ b/SQLHelper/bin/Release/Pub_Class.pdb
Binary files differ
diff --git a/SQLHelper/bin/Release/SQLHelper.dll b/SQLHelper/bin/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/SQLHelper/bin/Release/SQLHelper.dll
+++ b/SQLHelper/bin/Release/SQLHelper.dll
Binary files differ
diff --git a/SQLHelper/bin/Release/SQLHelper.pdb b/SQLHelper/bin/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/SQLHelper/bin/Release/SQLHelper.pdb
+++ b/SQLHelper/bin/Release/SQLHelper.pdb
Binary files differ
diff --git a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
index a801974..afce845 100644
--- a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
+++ b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
Binary files differ
diff --git a/SQLHelper/obj/Release/SQLHelper.dll b/SQLHelper/obj/Release/SQLHelper.dll
index 34d8892..a37e462 100644
--- a/SQLHelper/obj/Release/SQLHelper.dll
+++ b/SQLHelper/obj/Release/SQLHelper.dll
Binary files differ
diff --git a/SQLHelper/obj/Release/SQLHelper.pdb b/SQLHelper/obj/Release/SQLHelper.pdb
index 6fe9783..b13b3ae 100644
--- a/SQLHelper/obj/Release/SQLHelper.pdb
+++ b/SQLHelper/obj/Release/SQLHelper.pdb
Binary files differ
diff --git a/SyntacticSugar/bin/Release/SyntacticSugar.dll b/SyntacticSugar/bin/Release/SyntacticSugar.dll
index 609cfaf..9a5be6e 100644
--- a/SyntacticSugar/bin/Release/SyntacticSugar.dll
+++ b/SyntacticSugar/bin/Release/SyntacticSugar.dll
Binary files differ
diff --git a/SyntacticSugar/bin/Release/SyntacticSugar.pdb b/SyntacticSugar/bin/Release/SyntacticSugar.pdb
index f3f20ec..310ad83 100644
--- a/SyntacticSugar/bin/Release/SyntacticSugar.pdb
+++ b/SyntacticSugar/bin/Release/SyntacticSugar.pdb
Binary files differ
diff --git a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
index 9d2d0b2..04b54c7 100644
--- a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
+++ b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -1,3 +1,11 @@
+<<<<<<< HEAD
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
+=======
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
@@ -10,3 +18,4 @@
 D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
 D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
+>>>>>>> f43f81342e3babe5cc119dab8e53d573b4800547
diff --git a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache b/SyntacticSugar/obj/Release/SyntacticSugar.csproj.AssemblyReference.cache
similarity index 100%
rename from SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache
rename to SyntacticSugar/obj/Release/SyntacticSugar.csproj.AssemblyReference.cache
Binary files differ
diff --git a/SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt b/SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..0e5a197
--- /dev/null
+++ b/SyntacticSugar/obj/Release/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -0,0 +1,6 @@
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Release\SyntacticSugar.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\bin\Release\SyntacticSugar.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Release\SyntacticSugar.csproj.CoreCompileInputs.cache
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Release\SyntacticSugar.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Release\SyntacticSugar.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\SyntacticSugar\obj\Release\SyntacticSugar.csproj.AssemblyReference.cache
diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New_Change.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New_Change.cs"
index 7786c33..2bcc8d5 100644
--- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New_Change.cs"
+++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New_Change.cs"
@@ -1356,16 +1356,49 @@
         }
         #endregion
 
+        //#region MQTT鎺ユ敹鍒颁俊鎭悗鐨勫洖璋冩柟娉�
+        //public void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
+        //{
+        //    try
+        //    {
+        //        string message = Encoding.UTF8.GetString(e.Message);
+        //        List<MQTT_MainEntity_New> mQTT_MainEntity = getObjectByJson_Xs_OutDoorBillMain_New(message);
+        //        for (int i = 0; i < mQTT_MainEntity[0].data.Count; i++)
+        //        {
+        //            if (mQTT_MainEntity[0].data[i].id == textBox_WorkPositionParams.Text && mQTT_MainEntity[0].data[i].value == 1)
+        //            {
+        //                produceQty += 1;
+        //            }
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        MessageBox.Show(ex.Message);
+
+        //        string msg = "";
+        //        if (disConnect(ref msg) == true)
+        //        {
+        //            MessageBox.Show(msg);
+        //        }
+        //        else
+        //        {
+        //            MessageBox.Show(msg);
+        //        }
+        //    }
+        //}
+        //#endregion
+
+
         #region MQTT鎺ユ敹鍒颁俊鎭悗鐨勫洖璋冩柟娉�
         public void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
         {
             try
             {
                 string message = Encoding.UTF8.GetString(e.Message);
-                List<MQTT_MainEntity> mQTT_MainEntity = getObjectByJson_Xs_OutDoorBillMain(message);
-                for(int i = 0; i < mQTT_MainEntity[0].values.Count; i++)
+                List<MQTT_MainEntity_New> mQTT_MainEntity = getObjectByJson_Xs_OutDoorBillMain_New(message);
+                for(int i = 0; i < mQTT_MainEntity[0].data.Count; i++)
                 {
-                    if (mQTT_MainEntity[0].values[i].id == textBox_WorkPositionParams.Text && mQTT_MainEntity[0].values[i].v == true)
+                    if (mQTT_MainEntity[0].data[i].id == textBox_WorkPositionParams.Text && mQTT_MainEntity[0].data[i].value == 1)
                     {
                         produceQty += 1;
                     }
@@ -2627,6 +2660,15 @@
             return list;
         }
         #endregion
+
+        #region json杞负瀵硅薄
+        public List<MQTT_MainEntity_New> getObjectByJson_Xs_OutDoorBillMain_New(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<MQTT_MainEntity_New> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MQTT_MainEntity_New>>(jsonString);
+            return list;
+        }
+        #endregion
         #endregion
     }
 
@@ -2644,4 +2686,21 @@
         public long t;                              //鏃堕棿鎴�
     }
     #endregion
+
+    #region MQTT鍙戦�佹暟鎹ā鍨�1
+    public class MQTT_MainEntity_New
+    {
+        public string id;
+        public string name;
+        public List<MQTT_SubEntity_New> data;
+    }
+    public class MQTT_SubEntity_New
+    {
+        public string id;                                   //宸ヤ綅
+        public string name;                                 //缁撴灉
+        public string updatetime;
+        public string address;
+        public long value;                              //鏃堕棿鎴�
+    }
+    #endregion
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
index 15da306..4d4d311 100644
--- a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
@@ -1120,11 +1120,11 @@
         [HttpGet]
         public object DeltetGy_Material(string HItemID, string user)
         {
+            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            oCN.BeginTran();//寮�濮嬩簨鍔�
             DataSet ds;
             try
             {
-                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
-
                 if (user == "10000")//api鍚屾鏂瑰紡
                 {
                     oCN.RunProc("delete from Gy_Material where HERPItemID=" + HItemID);
@@ -1152,7 +1152,7 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                
                 ds = oCN.RunProcReturn("select * from Gy_Material where HItemID=" + HItemID, "Gy_Material");
                 if (ds == null || ds.Tables[0].Rows.Count == 0)
                 {
@@ -1386,7 +1386,49 @@
         }
         #endregion
 
+        #region 鑾峰彇褰撳墠鍏徃鍚�
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
+        /// <param name="CurUserName">瀹℃牳浜�</param>
+        /// <returns></returns>
+        [Route("Xt_getInfo/getCompanyName")]
+        [HttpGet]
+        public object getCompanyName()
+        {
+            try
+            {
+                string sErr = "";
+                if(oSystemParameter.ShowBill(ref sErr))
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = oSystemParameter.omodel.WMS_CampanyName;
+                    objJsonResult.data = oSystemParameter.omodel.WMS_CampanyName;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "褰撳墠鍏徃鍚嶈幏鍙栧け璐ワ紒" ;
+                    objJsonResult.data = null;
+                }
 
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
 
 
         /// <summary>
diff --git a/WebAPI/Controllers/BaseSet/Gy_SupplierController.cs b/WebAPI/Controllers/BaseSet/Gy_SupplierController.cs
index 240b2f4..030c263 100644
--- a/WebAPI/Controllers/BaseSet/Gy_SupplierController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_SupplierController.cs
@@ -261,8 +261,10 @@
                 string sql = string.Format(@"select  * from h_v_Gy_SupplierEdit where HItemID='" + HInterID + "'");
                 ds = oCN.RunProcReturn(sql, "h_v_Gy_SupplierEdit");
                 DataSet cs = oCN.RunProcReturn("select * from Gy_Supplier_PayPlan where HSupID = '"+ HInterID + "'", "Gy_Supplier_PayPlan");
+                DataSet cs1 = oCN.RunProcReturn("select * from Gy_Supplier_Link where HSupID = '" + HInterID + "'", "Gy_Supplier_Link");
                 List<Object> list = new List<object>();
                 list.Add(cs);
+                list.Add(cs1);
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "";
@@ -297,6 +299,7 @@
                 string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                 string msg2 = sArray[0].ToString(); //涓昏〃鏁版嵁
                 string msg3 = sArray[1].ToString(); //瀛愯〃鏁版嵁
+                string msg4 = sArray[2].ToString(); //瀛愯〃鏁版嵁
                 //涓昏〃鍙嶅簭鍒楀寲
                 msg2 = "[" + msg2.ToString() + "]";
 
@@ -318,7 +321,7 @@
                 string HAddress = list[0].HAddress;
                 string HLinkMan = list[0].HLinkMan;
                 string HLinkPhone = list[0].HLinkPhone;
-                string HBankAccount = list[0].HMobilePhone;
+                string HBankAccount = list[0].HBankAccount;
                 string HFax = list[0].HFax;
                 string HPostalCode = list[0].HPostalCode;
                 string HEmail = list[0].HEmail;
@@ -370,20 +373,34 @@
               "') ");
                 //淇敼涓婄骇涓洪潪鏈骇浠g爜
                 oCN.RunProc("Update Gy_Supplier set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
-                //瀛愯〃娣诲姞
-                List<ClsGy_Supplier_PayPlan> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_Supplier_PayPlan>>(msg3);
-                int i = 0;
+
+                //鍒犻櫎瀛愯〃鎿嶄綔 闃叉鍑洪敊
                 DataSet Cs;
                 Cs = oCN.RunProcReturn("select MAX(HItemID)HItemID from Gy_Supplier", "Gy_Supplier");
                 string MaxHItemID = Cs.Tables[0].Rows[0]["HItemID"].ToString();
-                //鍒犻櫎瀛愯〃鎿嶄綔 闃叉鍑洪敊
                 oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + MaxHItemID + "'");
+                oCN.RunProc("delete from Gy_Supplier_Link where HSupID='" + MaxHItemID + "'");
+
+                //瀛愯〃娣诲姞
+                List<ClsGy_Supplier_PayPlan> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_Supplier_PayPlan>>(msg3);
+                int i = 0;
                 foreach (ClsGy_Supplier_PayPlan oSub in DetailColl)
                 {
                     i++;
                     oCN.RunProc($@"Insert into Gy_Supplier_PayPlan 
                 (HSupID,HSubID,HPayType,HPayRate,HPayTime,HPayRemark) 
                  values({MaxHItemID},{i} ,'{oSub.HPayType}',{oSub.HPayRate},{oSub.HPayTime},'{oSub.HPayRemark}')");
+                }
+
+                //瀛愯〃娣诲姞
+                List<ClsGy_Supplier_Link> DetailCol2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_Supplier_Link>>(msg4);
+                int i2 = 0;
+                foreach (ClsGy_Supplier_Link oSub in DetailCol2)
+                {
+                    i2++;
+                    oCN.RunProc($@"Insert into Gy_Supplier_Link 
+                (HSupID,HSubID,HLinkMan,HLinkPhone,HRemark) 
+                 values({MaxHItemID},{i2} ,'{oSub.HLinkMan}','{oSub.HLinkPhone}','{oSub.HRemark}')");
                 }
 
                 oCN.Commit();
@@ -478,10 +495,11 @@
                 string msg1 = _value.ToString();
                 string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                 string msg2 = sArray[0].ToString();   //琛ㄥご鏁版嵁
-                string msg3 = sArray[1].ToString();   //瀛愯〃鏁版嵁
+                string msg3 = sArray[1].ToString();   //瀛愯〃鏁版嵁-浠樻璁″垝
                 string msg4 = sArray[2].ToString();   //鍒楄〃涓籌D
                 string msg5 = sArray[3].ToString();   //鐧诲綍浜哄憳
                 string msg6 = sArray[4].ToString();   //鏉冮檺妯″潡浠g爜
+                string msg7 = sArray[5].ToString();   //瀛愯〃鏁版嵁-鑱旂郴浜�
                 //鍙嶅簭鍒楀寲
                 msg2 = "[" + msg2.ToString() + "]";
                 List<Supplier> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Supplier>>(msg2);
@@ -499,7 +517,7 @@
                 string HAddress = list[0].HAddress;
                 string HLinkMan = list[0].HLinkMan;
                 string HLinkPhone = list[0].HLinkPhone;
-                string HBankAccount = list[0].HMobilePhone;
+                string HBankAccount = list[0].HBankAccount;
                 string HFax = list[0].HFax;
                 string HPostalCode = list[0].HPostalCode;
                 string HEmail = list[0].HEmail;
@@ -588,17 +606,30 @@
                 oCN.RunProc("Update Gy_Supplier set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                 //
 
+                //鍒犻櫎瀛愯〃鎿嶄綔 闃叉鍑洪敊
+                oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + HItemID + "'");
+                oCN.RunProc("delete from Gy_Supplier_Link where HSupID='" + HItemID + "'");
+
                 //瀛愯〃娣诲姞
                 List<ClsGy_Supplier_PayPlan> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_Supplier_PayPlan>>(msg3);
                 int i = 0;
-                //鍒犻櫎瀛愯〃鎿嶄綔 闃叉鍑洪敊
-                oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + HItemID + "'");
                 foreach (ClsGy_Supplier_PayPlan oSub in DetailColl)
                 {
                     i++;
                     oCN.RunProc($@"Insert into Gy_Supplier_PayPlan 
                 (HSupID,HSubID,HPayType,HPayRate,HPayTime,HPayRemark) 
                  values({HItemID},{i} ,'{oSub.HPayType}',{oSub.HPayRate},{oSub.HPayTime},'{oSub.HPayRemark}')");
+                }
+
+                //瀛愯〃娣诲姞
+                List<ClsGy_Supplier_Link> DetailCol2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_Supplier_Link>>(msg7);
+                int i2 = 0;
+                foreach (ClsGy_Supplier_Link oSub in DetailCol2)
+                {
+                    i2++;
+                    oCN.RunProc($@"Insert into Gy_Supplier_Link 
+                (HSupID,HSubID,HLinkMan,HLinkPhone,HRemark) 
+                 values({HItemID},{i2} ,'{oSub.HLinkMan}','{oSub.HLinkPhone}','{oSub.HRemark}')");
                 }
 
 
@@ -663,12 +694,36 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
+
+                    //鍒犻櫎鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Gy_Supplier_BeforeDelCtrl " + HItemID + ",'" + User + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Gy_Supplier_BeforeDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================  
+
                     oCN.BeginTran();
                     //
                     if (oGroup.DeleteByID(HItemID))
                     {
                         //鍒犻櫎瀛愯〃
                         oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + HItemID + "'");
+                        oCN.RunProc("delete from Gy_Supplier_Link where HSupID='" + HItemID + "'");
                         oCN.Commit();
                         //鍐欏叆鏃ュ織
                         ClsPub.Add_Log("", "鍒犻櫎椤圭洰锛屼唬鐮侊細" + oGroupHlp.omodel.HNumber + ",鍚嶇О锛�" + oGroupHlp.omodel.HName, ClsPub.CurUserName);
diff --git a/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs b/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
index 7432842..386af06 100644
--- a/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
+++ b/WebAPI/Controllers/CGGL/Cg_POInStockBillController.cs
@@ -646,10 +646,22 @@
                     }
 
                     string sql= $@"update Cg_POInStockBillMain  set " +
-                                "HRemark='" + HRemark + "', HUpDater ='" + HMaker + "', HUpDateDate=getdate()"+ ",HBillNo='" + HBillNo + "'" +
-                                ",HSupID=" + HSupID + ",HCurID=" + HCurID
-                                 + ",HExRate=" + HExRate + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID
-                                 + ",HAddress='" + HAddress + "',HInnerBillNo='" + HInnerBillNo + "',HProjectID="+ HProjectID + ",HInvoiceBillNo='"+ HInvoiceBillNo + "' where HInterID=" + HInterID;
+                                "HRemark='" + HRemark + "'" +
+                                ", HUpDater ='" + HMaker + "'" +
+                                ", HUpDateDate=getdate()"+ "" +
+                                ",HBillNo='" + HBillNo + "'" +
+                                ",HWHID=" + HWHID + "" +
+                                ",HSupID=" + HSupID + "" +
+                                ",HCurID=" + HCurID + "" +
+                                ",HExRate=" + HExRate + "" +
+                                ",HEmpID=" + HEmpID + "" +
+                                ",HManagerID=" + HManagerID + "" +
+                                ",HDeptID=" + HDeptID + "" +
+                                ",HAddress='" + HAddress + "'" +
+                                ",HInnerBillNo='" + HInnerBillNo + "'" +
+                                ",HProjectID="+ HProjectID + "" +
+                                ",HInvoiceBillNo='"+ HInvoiceBillNo + "' " +
+                                " where HInterID=" + HInterID;
 
                     oCN.RunProc(sql);
 
diff --git a/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs b/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
index 0db6ff1..b5e58ab 100644
--- a/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
+++ b/WebAPI/Controllers/CGGL/Cg_POOrderBillController.cs
@@ -44,12 +44,25 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-                //鍒ゆ柇鏄惁鏈夐噰璐粡鐞嗘潈闄愶紙瀹夌憺锛�
-                bool isCgjl = Security_Log("Cg_POOrderBill_PurchasManager", 1, true, user);
-                if (!isCgjl)
+
+                string sErr = "";
+                if (oSystemParameter.ShowBill(ref sErr))
                 {
-                    sWhere += $" and HEmpID in (select HEmpID from Gy_Czygl where Czymc='{user}' and HEmpID >0  )";
+                    if (oSystemParameter.omodel.WMS_CampanyName == "涔斾竴")
+                    {
+
+                    }
+                    else
+                    {
+                        //鍒ゆ柇鏄惁鏈夐噰璐粡鐞嗘潈闄愶紙瀹夌憺锛�
+                        bool isCgjl = Security_Log("Cg_POOrderBill_PurchasManager", 1, true, user);
+                        if (!isCgjl)
+                        {
+                            sWhere += $" and HEmpID in (select HEmpID from Gy_Czygl where Czymc='{user}' and HEmpID >0  )";
+                        }
+                    }
                 }
+                
 
 
                 sWhere = sWhere.Replace("'", "''");
@@ -1374,9 +1387,11 @@
         {
             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
 
-            string sql = "select a.HItemID HMaterID,a.HNumber HMaterNumber,a.HName HMaterName,a.HMaterRuleType,a.HModel HMaterModel,a.HUnitID, b.HNumber HUnitNumber, b.HName HUnitName" +
+            string sql = "select a.HItemID HMaterID,a.HNumber HMaterNumber,a.HName HMaterName,a.HMaterRuleType,a.HModel HMaterModel,a.HUnitID, b.HNumber HUnitNumber, b.HName HUnitName,a.HWHID,w.HName 榛樿浠撳簱,a.HPOUnitID,u.HName HPOUnitName " +
                 " from Gy_Material AS a " +
                 " LEFT OUTER JOIN Gy_Unit AS b on a.HUnitID = b.HItemID " +
+                " left outer join Gy_Warehouse as w on a.HWHID = w.HItemID " +
+                " left outer join Gy_Unit As u on a.HPOUnitID = u.HItemID" +
                 " where a.HItemID =" + HMaterID;
 
             var dataSet = oCN.RunProcReturn(sql, "Gy_Material");
@@ -3277,6 +3292,46 @@
         }
         #endregion
 
+
+        #region 閲囪喘璁㈠崟 鏍规嵁鐢ㄦ埛鑾峰彇鐢ㄦ埛鍏宠仈渚涘簲鍟嗚繃婊ゆ潯浠�
+        [Route("Cg_POOrderBill/getSupIDListByUser")]
+        [HttpGet]
+        public object getSupIDListByUser(string CurUserID, string CurUserName)
+        {
+            string sWhere = "";
+            string ModRightNameCheck = "Gy_UserLookAllSup";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //鏉冮檺鍒ゆ柇锛氭槸鍚﹀彲浠ユ煡鐪嬫墍鏈変緵搴斿晢
+                if (DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    sWhere = "";
+                }
+                else
+                {
+                    sWhere = " and HSupID in (select HSupID from Gy_UserSupplierRelation Where HUserID = '" + CurUserID + "')";
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = sWhere;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                sWhere = " and 1=0 ";
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = sWhere;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
     }
 
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
index 51816bb..30b3ee1 100644
--- a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
+++ b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
@@ -1388,6 +1388,43 @@
         }
         #endregion
 
+        #region 閲囪喘鍏ュ簱鍗�  鏍规嵁涓诲唴鐮佷笌瀛愬唴鐮佽幏鍙栭噰璐叆搴撳崟鏁版嵁
+        [Route("Kf_POStockInBill/loadKf_POStockInBillEdit_Push")]
+        [HttpGet]
+        public object loadKf_POStockInBillEdit_Push(long HInterID, long HSubID)
+        {
+            try
+            {
+
+                ds = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillEdit where hmainid =" + HInterID + " and hsubid = " + HSubID, "h_v_Kf_POStockInBillEdit");
+                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;
+            }
+        }
+        #endregion
+
         #region 閲囪喘鍏ュ簱椹冲洖
         [Route("Kf_POStockInBill/RejectCheckFlow_POOrderBill")]
         [HttpGet]
diff --git a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
index b2cc2e5..d47a47c 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -48,7 +49,7 @@
                 else
                 {
                     string sql1 = "select * from h_v_MES_StationEntrustInBillList where 1 = 1  ";
-                    string sql = sql1 + sWhere+ " order by hmainid desc";
+                    string sql = sql1 + sWhere + " order by hmainid desc";
                     ds = oCN.RunProcReturn(sql, "h_v_MES_StationEntrustInBillList");
                 }
 
@@ -60,23 +61,13 @@
                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
                 }
 
-                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
-                //{
+
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "Sucess锛�";
                 objJsonResult.list = columnNameList;
                 objJsonResult.data = ds.Tables[0];
                 return objJsonResult;
-                //}
-                //else
-                //{
-                //objJsonResult.code = "0";
-                //objJsonResult.count = 0;
-                //objJsonResult.Message = "鏃犳暟鎹�";
-                //objJsonResult.data = null;
-                //return objJsonResult;
-                //}
             }
             catch (Exception e)
             {
@@ -88,6 +79,63 @@
             }
         }
         #endregion
+
+        #region 濮斿鍙戝嚭鍗� 鍒嗛〉鍒楄〃
+        [Route("Cj_StationEntrustInBill/getStationEntrustInBillPage")]
+        [HttpGet]
+        public json getStationEntrustInBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustInBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_StationEntrustInBillList " + page + "," + size + ",''", "h_p_Sc_StationEntrustInBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_StationEntrustInBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_StationEntrustInBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
+
 
         #region 濮斿宸ュ簭鍙戝嚭鍗曟祦姘村彿鍥炶溅鑾峰彇娴佽浆鍗′俊鎭紙濮斿宸ュ簭鎺ユ敹銆佸伐搴忚繘绔欐帴鏀堕�氱敤锛�
         [Route("Cj_StationEntrustInBill/txtHBarCode_KeyDown")]
@@ -2012,7 +2060,8 @@
                     return objJsonResult;
                 }
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
-                oCN.BeginTran();
+                oCN.BeginTran();               
+
                 if ("Add".Equals(eventType))
                 {
                     if (!AllowbillNo(HBillNo))
@@ -2024,6 +2073,28 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
+
+                    //淇濆瓨鍓嶆帶鍒�=========================================
+                    string HBillNote = "";
+                    ds = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_BeforeSaveCtrl  " + HInterID.ToString() + ", '" + HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_StationInBill_WW_BeforeSaveCtrl ");
+                    if (ds == null)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=========================================================
+
                     //涓昏〃
                     oCN.RunProc("Insert Into Sc_StationInBillMain " +
                     "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
@@ -2042,9 +2113,54 @@
                     "," + HSupID + "," + HTaxRate + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty +
                     ",'" + HProcNo + "','" + HOrderProcNO + "'" + ",'" + HWWWorkOrderBillNo + "'" + "," + HWWWorkOrderInterID + "" + "," + HWWWorkOrderEntryID + "," + HMainInterID + "," + HPRDOrgID +
                     ") ");
+
+                    //=========================淇濆瓨鍚庢帶鍒�  ============================
+                    DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',2 ", "h_p_Sc_StationInBill_WW_AfterSaveCtrl");
+                    if (ds2 == null)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=======================================================
+
                 }
                 else if ("Modify".Equals(eventType))
                 {
+
+                    //淇濆瓨鍓嶆帶鍒�=========================================
+                    string HBillNote = "";
+                    ds = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_BeforeSaveCtrl  " + HInterID.ToString() + ", '" + HBillNo + "','" + HBillNote + "',2 ", "h_p_Sc_StationInBill_WW_BeforeSaveCtrl ");
+                    if (ds == null)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=========================================================
 
                     //鍒犻櫎鍏宠仈
                     oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID + ",-1");
@@ -2069,6 +2185,30 @@
                     ",HProcNo=" + HProcNo +
                     ",HOrderProcNO='" + HOrderProcNO + "'" +
                     " where HInterID=" + HInterID);
+
+                    //=========================淇濆瓨鍚庢帶鍒�  ============================
+                    DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',2", "h_p_Sc_StationInBill_WW_AfterSaveCtrl");
+                    if (ds2 == null)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=======================================================
+
                 }
                 else
                 {
@@ -2109,6 +2249,9 @@
                 }
                 oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID.ToString() + ",1");
                 oCN.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_In " + HInterID.ToString() + ",1");
+
+               
+
                 oCN.Commit();
                 string sReturn = "";
                 if (oSystemParameter.ShowBill(ref sReturn) == true)
@@ -2237,24 +2380,7 @@
         {
             try
             {
-                //ds = oCN.RunProcReturn("exec h_p_MES_StationInBill_DelCtrl  '" + HBillNo + "'", "h_p_MES_StationInBill_DelCtrl");
-                //if (ds == null || ds.Tables[0].Rows.Count == 0)
-                //{
-                //    objJsonResult.code = "0";
-                //    objJsonResult.count = 0;
-                //    objJsonResult.Message = "鍒ゆ柇鍏宠仈澶辫触锛�";
-                //    objJsonResult.data = null;
-                //    return objJsonResult;
-                //}
-                //else if (ds.Tables[0].Rows.Count > 0 && Pub_Class.ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 2)
-                //{
-                //    objJsonResult.code = "0";
-                //    objJsonResult.count = 0;
-                //    objJsonResult.Message = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]);
-                //    objJsonResult.data = null;
-                //    return objJsonResult;
-                //}
-
+                
                 //鍒ゆ柇鏉冮檺
                 if (!ClsPub.Security_Log_second("MES_StationEntrustInBill_Edit", 1, false, CurUserName))
                 {
@@ -2359,8 +2485,31 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+
+                //瀹℃牳鍓嶆帶鍒�================================================================================
+                string sql = "exec h_p_Sc_StationInBill_WW_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_WW_BeforeCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //================================================================================
+
                 //瀹℃牳
-                if (Cj_StationEntrustInBillCheckBill(HInterID, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
+                if (Cj_StationEntrustInBillCheckBill(HInterID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
                     objJsonResult.code = "1";
                     objJsonResult.count = 1;
@@ -2389,7 +2538,7 @@
         }
 
         //瀹℃牳
-        public bool Cj_StationEntrustInBillCheckBill(Int64 lngBillKey, string CurUserName, ref string sReturn)
+        public bool Cj_StationEntrustInBillCheckBill(Int64 lngBillKey, string HBillNo, string CurUserName, ref string sReturn)
         {
             try
             {
@@ -2405,6 +2554,26 @@
 
                 oCN.RunProc(" Update Sc_StationInBillMain set HChecker='" + HChecker + "',HCheckDate='" + HCheckDate + "' Where HInterID=" + lngBillKey.ToString());
                 oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Check_In " + lngBillKey.ToString() + ",1");
+               
+
+
+                //瀹℃牳鍚庢帶鍒�================================================================================
+                string sql = "exec h_p_Sc_StationInBill_WW_AfterCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_WW_AfterCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    sReturn = "瀹℃牳杩囩▼涓嚭閿欙紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCN.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return false;
+                }
+                //================================================================================
+
                 sReturn = sReturn + " 瀹℃牳鍔熻兘锛�";
                 oCN.Commit();
                 return true;
@@ -2464,8 +2633,31 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+
+                //鍙嶅鏍稿墠鎺у埗=============================================================
+                string sql = "exec h_p_Sc_StationInBill_WW_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_WW_BeforeUnCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //================================================================================
+
                 //鍙嶅鏍�
-                if (Cj_StationEntrustInBillAbandonCheckBill(HInterID, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
+                if (Cj_StationEntrustInBillAbandonCheckBill(HInterID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
                     objJsonResult.code = "1";
                     objJsonResult.count = 1;
@@ -2493,7 +2685,7 @@
         }
 
         //鍙嶅鏍�
-        public bool Cj_StationEntrustInBillAbandonCheckBill(Int64 lngBillKey, string CurUserName, ref string sReturn)
+        public bool Cj_StationEntrustInBillAbandonCheckBill(Int64 lngBillKey,string HBillNo, string CurUserName, ref string sReturn)
         {
             try
             {
@@ -2509,6 +2701,24 @@
 
                 oCN.RunProc(" Update Sc_StationInBillMain set HChecker='',HCheckDate=null Where HInterID=" + lngBillKey.ToString());
                 //oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Check_In " + lngBillKey.ToString() + ",-1");
+
+
+                //鍙嶅鏍稿悗鎺у埗=============================================================================
+                string sql = "exec h_p_Sc_StationInBill_WW_AfterUnCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_WW_AfterUnCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    sReturn = "鍙嶅鏍歌繃绋嬩腑鍑洪敊锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                    oCN.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return false;
+                }
+                //=============================================================================
                 sReturn = sReturn + "鍙嶅鏍稿姛鑳斤紒";
                 oCN.Commit();
                 return true;
@@ -2571,8 +2781,31 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_StationInBill_WW_BeforeCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_WW_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鍗曟嵁
-                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CloseBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationInBill_WW_AfterCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -2598,8 +2831,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_StationInBill_WW_BeforeUnCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_WW_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂崟鎹�
-                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CancelClose(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationInBill_WW_AfterUnCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -2686,9 +2943,32 @@
                         return objJsonResult;
                     }
 
+                    //鍒犻櫎鍓嶆帶鍒�=========================================      
+                    string HBillNo = oBill.omodel.HBillNo;
+                    string sql1 = "exec h_p_Sc_StationInBill_WW_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + HDeleteMan + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_WW_BeforeDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍐欏叆鍒犻櫎鏃ュ織 
                     string WorkList = "鍒犻櫎濮斿鍙戝嚭鍗曪細" + oBill.omodel.HBillNo;
-                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, ref DBUtility.ClsPub.sExeReturnInfo))
+                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, HBillNo, "h_p_Sc_StationInBill_WW_AfterDelCtrl", HDeleteMan, ref DBUtility.ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
diff --git a/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
index 7f62e74..457c125 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -59,25 +60,13 @@
                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
                 }
-
-
-                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
-                //{
+               
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "Sucess锛�";
                 objJsonResult.list = columnNameList;
                 objJsonResult.data = ds.Tables[0];
-                return objJsonResult;
-                //}
-                //else
-                //{
-                //objJsonResult.code = "0";
-                //objJsonResult.count = 0;
-                //objJsonResult.Message = "鏃犳暟鎹�";
-                //objJsonResult.data = null;
-                //return objJsonResult;
-                //}
+                return objJsonResult;               
             }
             catch (Exception e)
             {
@@ -86,6 +75,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 濮斿鎺ユ敹鍗� 鍒嗛〉鍒楄〃
+        [Route("Cj_StationEntrustOutBill/getStationEntrustOutBillPage")]
+        [HttpGet]
+        public json getStationEntrustInBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("MES_StationEntrustOutBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_StationEntrustOutBillList " + page + "," + size + ",''", "h_p_Sc_StationEntrustOutBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_StationEntrustOutBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_StationEntrustOutBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -260,6 +304,8 @@
                 }
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
                 oCN.BeginTran();
+
+
                 if ("Add".Equals(eventType))
                 {
                     //楠岃瘉鍗曟嵁鍙锋槸鍚﹂噸澶�
@@ -272,6 +318,29 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
+
+
+                    //淇濆瓨鍓嶆帶鍒�=========================================
+                    string HBillNote = "";
+                    ds = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_BeforeSaveCtrl  " + HInterID.ToString() + ", '" + HBillNo + "','" + HBillNote + "',1 ", "h_p_Sc_StationInBill_WW_BeforeSaveCtrl ");
+                    if (ds == null)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=========================================================
+
                     //涓昏〃
                     oCN.RunProc("Insert Into Sc_StationOutBillMain " +
                     "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
@@ -279,7 +348,8 @@
                     ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" +
                     ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationOutTime,HSourceID" +
                     ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" +
-                    ",HSupID,HTaxRate,HQty,HPrice,HMoney,HPrice_BHS,HMoney_BHS,HBadCount" +               ",HMainSourceInterID,HMainSourceBillNo,HMainSourceBillType,HProcNo,HOrderProcNO,HLastSubProc,HWWWorkOrderBillNo,HWWWorkOrderInterID,HWWWorkOrderEntryID,HMainInterID,HPRDOrgID" +
+                    ",HSupID,HTaxRate,HQty,HPrice,HMoney,HPrice_BHS,HMoney_BHS,HBadCount" +
+                    ",HMainSourceInterID,HMainSourceBillNo,HMainSourceBillType,HProcNo,HOrderProcNO,HLastSubProc,HWWWorkOrderBillNo,HWWWorkOrderInterID,HWWWorkOrderEntryID,HMainInterID,HPRDOrgID" +
                     ") " +
                     " values('" + BillType + "','" + BillType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" +
                     "," + HYear + "," + HPeriod + ",'" + HRemark + "','" + HInnerBillNo + "','" + HSourceName + "'," + HPieceQty + "," + HWasterQty + "," + HPlanPieceQty + "," + HBadPNL +
@@ -289,9 +359,56 @@
                     "," + HSupID + "," + HTaxRate + "," + HQty + "," + HPrice + "," + HMoney + "," + HPrice_BHS + "," + HMoney_BHS + "," + HBadCount +
                     "," + HMainSourceInterID + ",'" + HMainSourceBillNo + "','" + HMainSourceBillType + "'," + HProcNo + ",'" + HOrderProcNO + "'," + Convert.ToString(HLastSubProc ? 1 : 0) + ",'" + HWWWorkOrderBillNo + "'," + HWWWorkOrderInterID + "," + HWWWorkOrderEntryID + "," + HMainInterID + "," + HPRDOrgID +
                     ") ");
+
+                    //=========================淇濆瓨鍚庢帶鍒�  ============================
+                    DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',1 ", "h_p_Sc_StationInBill_WW_AfterSaveCtrl");
+                    if (ds2 == null)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=======================================================
+
                 }
                 else if ("Modify".Equals(eventType))
                 {
+
+
+                    //淇濆瓨鍓嶆帶鍒�=========================================
+                    string HBillNote = "";
+                    ds = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_BeforeSaveCtrl  " + HInterID.ToString() + ", '" + HBillNo + "','" + HBillNote + "',2 ", "h_p_Sc_StationInBill_WW_BeforeSaveCtrl ");
+                    if (ds == null)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=========================================================
+
                     oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Out " + HInterID + ",-1");
                     oCN.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_Out " + HInterID + ",-1");
                     //鏇存柊涓昏〃
@@ -318,6 +435,30 @@
                     ",HBadPNL=" + HBadPNL +
                     ",HWasterQty=" + HWasterQty +
                     " where HInterID=" + HInterID);
+
+                    //=========================淇濆瓨鍚庢帶鍒�  ============================
+                    DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_WW_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',2 ", "h_p_Sc_StationInBill_WW_AfterSaveCtrl");
+                    if (ds2 == null)
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //=======================================================
+
                 }
                 else
                 {
@@ -358,6 +499,9 @@
                 }
                 oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_Out " + HInterID.ToString() + ",1");
                 oCN.RunProc("exec h_p_WW_EntrustWorkOrderRelationQty_Out " + HInterID.ToString() + ",1");
+
+               
+
                 oCN.Commit();
                 string sReturn = "";
                 if (oSystemParameter.ShowBill(ref sReturn) == true)
@@ -491,10 +635,32 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
+                    //鍒犻櫎鍓嶆帶鍒�=========================================      
+                    string HBillNo = oBill.omodel.HBillNo;
+                    string sql1 = "exec h_p_StationEntrustOutBill_WW_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + HDeleteMan + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_StationEntrustOutBill_WW_BeforeDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
 
                     //鍐欏叆鍒犻櫎鏃ュ織 
                     string WorkList = "鍒犻櫎濮斿鎺ユ敹鍗曪細" + oBill.omodel.HBillNo;
-                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, ref DBUtility.ClsPub.sExeReturnInfo))
+                    if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, HBillNo, "h_p_StationEntrustOutBill_WW_AfterDelCtrl", HDeleteMan, ref DBUtility.ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
@@ -661,8 +827,31 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+
+                //瀹℃牳鍓嶆帶鍒�================================================================================
+                string sql = "exec h_p_StationEntrustOutBill_WW_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_StationEntrustOutBill_WW_BeforeCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //================================================================================
+
                 //瀹℃牳
-                if (Cj_StationEntrustOutBillCheckBill(HInterID, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
+                if (Cj_StationEntrustOutBillCheckBill(HInterID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
                     objJsonResult.code = "1";
                     objJsonResult.count = 1;
@@ -691,7 +880,7 @@
         }
 
         //瀹℃牳
-        public bool Cj_StationEntrustOutBillCheckBill(Int64 lngBillKey, string CurUserName, ref string sReturn)
+        public bool Cj_StationEntrustOutBillCheckBill(Int64 lngBillKey, string HBillNo, string CurUserName, ref string sReturn)
         {
             try
             {
@@ -718,6 +907,25 @@
                 else if (Pub_Class.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "鏄�")
                 {
                 }
+
+                //瀹℃牳鍚庢帶鍒�================================================================================
+                string sql = "exec h_p_StationEntrustOutBill_WW_AfterCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_StationEntrustOutBill_WW_AfterCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    sReturn = "瀹℃牳杩囩▼涓嚭閿欙紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    oCN.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return false;
+                }
+                //================================================================================
+
+
                 sReturn = sReturn + " 瀹℃牳鍔熻兘锛�";
                 oCN.Commit();
                 return true;
@@ -778,8 +986,30 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+                //鍙嶅鏍稿墠鎺у埗=============================================================
+                string sql = "exec h_p_StationEntrustOutBill_WW_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_StationEntrustOutBill_WW_BeforeUnCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //================================================================================
+
                 //鍙嶅鏍�
-                if (Cj_StationEntrustOutBillAbandonCheckBill(HInterID, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
+                if (Cj_StationEntrustOutBillAbandonCheckBill(HInterID, oBill.omodel.HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
                     objJsonResult.code = "1";
                     objJsonResult.count = 1;
@@ -807,7 +1037,7 @@
         }
 
         //鍙嶅鏍�
-        public bool Cj_StationEntrustOutBillAbandonCheckBill(Int64 lngBillKey, string CurUserName, ref string sReturn)
+        public bool Cj_StationEntrustOutBillAbandonCheckBill(Int64 lngBillKey, string HBillNo, string CurUserName, ref string sReturn)
         {
             if (Cj_StationEntrustOutBillisUse(lngBillKey, ref sReturn))
             {
@@ -840,6 +1070,24 @@
                 else if (Pub_Class.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "鏄�")
                 {
                 }
+
+                //鍙嶅鏍稿悗鎺у埗=============================================================================
+                string sql = "exec h_p_StationEntrustOutBill_WW_AfterUnCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
+                ds = oCN.RunProcReturn(sql, "h_p_StationEntrustOutBill_WW_AfterUnCheckCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    sReturn = "鍙嶅鏍歌繃绋嬩腑鍑洪敊锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                    oCN.RollBack();
+                    return false;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    sReturn = ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    oCN.RollBack();
+                    return false;
+                }
+                //=============================================================================
+
                 sReturn = sReturn + "鍙嶅鏍稿姛鑳斤紒";
                 oCN.Commit();
                 return true;
@@ -851,7 +1099,31 @@
                 return false; ;
             }
         }
+        #endregion
 
+        #region //鏄惁琚叧鑱�
+        public bool Cj_StationEntrustOutBillisUse(Int64 lngBillKey, ref string sReturn)
+        {
+            try
+            {
+                //鏌ヨ涓昏〃
+                DataSet Ds;
+                Ds = oCN.RunProcReturn("Select HinterID from Sc_StationOutBillSub  Where HInterID=" + lngBillKey.ToString() + " and isnull(HRelationQty,0)<>0 ", "Sc_StationOutBillSub");
+                if (Ds.Tables[0].Rows.Count != 0)
+                {
+                    sReturn = "鍗曟嵁宸茶鍏宠仈,涓嶈兘鎿嶄綔锛�";
+                    return true;
+                }
+                sReturn = "";
+                return false;
+            }
+            catch (Exception e)
+            {
+                sReturn = e.Message;
+                throw (e);
+            }
+        }
+        #endregion
 
         #region 宸ュ簭濮斿鎺ユ敹鍗曞叧闂�/鍙嶅叧闂姛鑳�
         [Route("Cj_StationEntrustOutBill/CloseCj_StationEntrustOutBill")]
@@ -901,8 +1173,31 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_StationEntrustOutBill_WW_BeforeCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_StationEntrustOutBill_WW_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鍗曟嵁
-                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CloseBill(Int64.Parse(HInterID), HBillNo, "h_p_StationEntrustOutBill_WW_AfterCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -928,8 +1223,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_StationEntrustOutBill_WW_BeforeUnCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_StationEntrustOutBill_WW_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂崟鎹�
-                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CancelClose(Int64.Parse(HInterID), HBillNo, "h_p_StationEntrustOutBill_WW_AfterUnCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -955,31 +1274,6 @@
                 objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
-            }
-        }
-        #endregion
-
-
-        //鏄惁琚叧鑱�
-        public bool Cj_StationEntrustOutBillisUse(Int64 lngBillKey, ref string sReturn)
-        {
-            try
-            {
-                //鏌ヨ涓昏〃
-                DataSet Ds;
-                Ds = oCN.RunProcReturn("Select HinterID from Sc_StationOutBillSub  Where HInterID=" + lngBillKey.ToString() + " and isnull(HRelationQty,0)<>0 ", "Sc_StationOutBillSub");
-                if (Ds.Tables[0].Rows.Count != 0)
-                {
-                    sReturn = "鍗曟嵁宸茶鍏宠仈,涓嶈兘鎿嶄綔锛�";
-                    return true;
-                }
-                sReturn = "";
-                return false;
-            }
-            catch (Exception e)
-            {
-                sReturn = e.Message;
-                throw (e);
             }
         }
         #endregion
diff --git a/WebAPI/Controllers/CJGL/Cj_StationInBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationInBillController.cs
index e34643b..4834bcb 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationInBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationInBillController.cs
@@ -389,7 +389,7 @@
 
                 }
 
-                //=========================淇濆瓨鍚庢帶鍒�  
+                //=========================淇濆瓨鍚庢帶鍒�  ============================
                 DataSet ds2 = oCN.RunProcReturn("Exec h_p_Sc_StationInBill_AfterSaveCtrl " + HInterID.ToString() + ", '" + HBillNo + "',1 ", "h_p_Sc_StationInBill_AfterSaveCtrl");
                 if (ds2 == null)
                 {
@@ -410,7 +410,7 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-                //============================
+                //=======================================================
 
                 oCN.Commit();
                
@@ -990,8 +990,6 @@
         {
             try
             {
-                string ModRightNameCheck = "";
-
                 if (HBillSubType == "SUB")
                 {
                     //瀹℃牳鏉冮檺
@@ -1046,7 +1044,7 @@
                     return objJsonResult;
                 }
 
-                //瀹℃牳鍓嶆帶鍒�
+                //瀹℃牳鍓嶆帶鍒�==========================================================================
                 string HBillNo = oBill.omodel.HBillNo;
                 string sql = "exec h_p_Sc_StationInBill_BeforeCheckCtrl " + HInterID + ",'" + HBillNo + "','" + CurUserName + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_BeforeCheckCtrl");
@@ -1067,7 +1065,7 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                //=============================================================================
                 //瀹℃牳
                 if (Cj_StationInBillCheckBill(HInterID, HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
@@ -1127,7 +1125,7 @@
                 {
                 }
 
-                //瀹℃牳鍚庢帶鍒�
+                //瀹℃牳鍚庢帶鍒�=======================================================
                 string sql = "exec h_p_Sc_StationInBill_AfterCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_AfterCheckCtrl");
                 if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
@@ -1142,7 +1140,7 @@
                     oCN.RollBack();
                     return false;
                 }
-
+                //====================================================================
                 sReturn = sReturn + " 瀹℃牳鍔熻兘锛�";
                 oCN.Commit();
                 return true;
@@ -1220,7 +1218,7 @@
                     return objJsonResult;
                 }
 
-                //鍙嶅鏍稿墠鎺у埗
+                //鍙嶅鏍稿墠鎺у埗=============================================================================
                 string HBillNo = oBill.omodel.HBillNo;
                 string sql = "exec h_p_Sc_StationInBill_BeforeUnCheckCtrl " + HInterID + ",'" + HBillNo + "','" + CurUserName + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_BeforeUnCheckCtrl");
@@ -1241,7 +1239,7 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                //============================================================================================
                 //鍙嶅鏍�
                 if (Cj_StationInBillAbandonCheckBill(HInterID, HBillNo, CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                 {
@@ -1305,7 +1303,7 @@
                 {
                 }
 
-                //鍙嶅鏍稿悗鎺у埗
+                //鍙嶅鏍稿悗鎺у埗========================================================================
                 string sql = "exec h_p_Sc_StationInBill_AfterUnCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Sc_StationInBill_AfterUnCheckCtrl");
                 if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
@@ -1320,7 +1318,7 @@
                     oCN.RollBack();
                     return false;
                 }
-
+                //============================================================================================
                 sReturn = sReturn + "鍙嶅鏍稿姛鑳斤紒";
                 oCN.Commit();
                 return true;
@@ -1420,8 +1418,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl " + HInterID + ",'" +HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鍗曟嵁
-                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CloseBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterCloseCtrl", user,ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -1447,8 +1469,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_StationInBill_BeforeUnCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationInBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂崟鎹�
-                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CancelClose(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationInBill_AfterUnCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
diff --git a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
index ceb4d6b..4721bd1 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -2754,7 +2754,7 @@
                 int j = 0;
                 for (int i = 0; i < HInterIDs.Length; i++)
                 {
-                    //瀹℃牳鍓嶆帶鍒�
+                    //瀹℃牳鍓嶆帶鍒�================================================================================
                     string sql = "exec h_p_Sc_StationOutBill_BeforeCheckCtrl " + HInterIDs[i] + ",'" + HBillNo[i] + "','" + CurUserName + "'";
                     ds = oCN.RunProcReturn(sql, "h_p_Sc_StationOutBill_BeforeCheckCtrl");
                     if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
@@ -2774,7 +2774,7 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-
+                    //================================================================================
 
                     //瀹℃牳
                     if (Cj_StationOutBillCheckBill(long.Parse(HInterIDs[i]), HBillNo[i], CurUserName, oBill.omodel.HLastSubProc, ref DBUtility.ClsPub.sExeReturnInfo))
@@ -2850,7 +2850,7 @@
                     LogService.Write("鍑虹珯鍗曟嵁瀹℃牳鏇存敼娴佽浆鍗℃暟閲�,娴佽浆鍗�:" + HProcExchBillNo + ",鍑虹珯鍗曞彿锛�" + HBillNo + ",鍘熸祦杞崱鏁伴噺:" + HProcExchQty + ",鏂版祦杞崱鏁伴噺:" + HQty);
                 }
 
-                //瀹℃牳鍚庢帶鍒�
+                //瀹℃牳鍚庢帶鍒�================================================================================
                 string sql = "exec h_p_Sc_StationOutBill_AfterCheckCtrl " + lngBillKey + ",'" + HBillNo + "','" + CurUserName + "'";
                 ds = oCN.RunProcReturn(sql, "h_p_Sc_StationOutBill_AfterCheckCtrl");
                 if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
@@ -2865,7 +2865,7 @@
                     oCN.RollBack();
                     return false;
                 }
-               
+                //================================================================================
 
                 sReturn = sReturn + " 瀹℃牳鍔熻兘锛�";
                 oCN.Commit();
@@ -2972,7 +2972,7 @@
                 int j = 0;
                 for (int i = 0; i < HInterIDs.Length; i++)
                 {
-                    //鍙嶅鏍稿墠鎺у埗
+                    //鍙嶅鏍稿墠鎺у埗=============================================================
                     string sql = "exec h_p_Sc_StationOutBill_BeforeUnCheckCtrl " + HInterIDs[i] + ",'" + HBillNo[i] + "','" + CurUserName + "'";
                     ds = oCN.RunProcReturn(sql, "h_p_Sc_StationOutBill_BeforeUnCheckCtrl");
                     if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
@@ -2992,7 +2992,7 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-
+                    //================================================================================
                     //鍙嶅鏍�
                     if (Cj_StationOutBillAbandonCheckBill(long.Parse(HInterIDs[i]),HBillNo[i], CurUserName, oBill.omodel.HLastSubProc, ref DBUtility.ClsPub.sExeReturnInfo))
                     {
@@ -3086,7 +3086,7 @@
                 return false; ;
             }
         }
-
+        #endregion
 
         #region 宸ュ簭鍑虹珯鍏抽棴/鍙嶅叧闂姛鑳�
         [Route("Cj_StationOutBill/CloseCj_StationOutBill")]
@@ -3151,8 +3151,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_StationOutBill_BeforeCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationOutBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鍗曟嵁
-                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CloseBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationOutBill_AfterCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -3178,8 +3202,32 @@
                             return objJsonResult;
                         }
                     }
+                    var HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_StationOutBill_BeforeUnCloseCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_StationOutBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂崟鎹�
-                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                    if (!BillOld.CancelClose(Int64.Parse(HInterID), HBillNo, "h_p_Sc_StationOutBill_AfterUnCloseCtrl", user, ref ClsPub.sExeReturnInfo))
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 1;
@@ -3211,7 +3259,7 @@
 
 
 
-        //鏄惁琚叧鑱�
+        #region //鏄惁琚叧鑱�
         public bool Cj_StationInBillisUse(Int64 lngBillKey, ref string sReturn)
         {
             try
diff --git a/WebAPI/Controllers/CJGL/Qc_PreventErrMouldCheckBillController.cs b/WebAPI/Controllers/CJGL/Qc_PreventErrMouldCheckBillController.cs
index dec3bdd..a4fe018 100644
--- a/WebAPI/Controllers/CJGL/Qc_PreventErrMouldCheckBillController.cs
+++ b/WebAPI/Controllers/CJGL/Qc_PreventErrMouldCheckBillController.cs
@@ -2,6 +2,7 @@
 using Model;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using SyntacticSugar.constant;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -79,6 +80,62 @@
             }
         }
         #endregion
+
+        #region 闃查敊楠岃瘉妫�鏌� 鍒嗛〉鍒楄〃
+        [Route("Qc_PreventErrMouldCheckBill/get锘縌c_PreventErrMouldCheckBillListPage")]
+        [HttpGet]
+        public json get锘縎c_WorkBeginDotCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Qc_PreventErrMouldCheckBillMain_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Qc_PreventErrMouldCheckBillList " + page + "," + size + ",''", "h_p_Qc_PreventErrMouldCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Qc_PreventErrMouldCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Qc_PreventErrMouldCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
 
         #region 闃查敊楠岃瘉妫�鏌ュ垪琛� 鑾峰彇缂栬緫鍒楄〃鏁版嵁
         [Route("Qc_PreventErrMouldCheckBill/锘縌c_PreventErrMouldCheckBillMainEditList")]
@@ -313,9 +370,78 @@
                     return objJsonResult;
                 }
 
+                string s = "";
+                DAL.ClsQc_PreventErrMouldCheckBillMain BillOld = new DAL.ClsQc_PreventErrMouldCheckBillMain();
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙垹闄�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+
+
                 oCN.BeginTran();
 
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_Qc_PreventErrMouldCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_Qc_PreventErrMouldCheckBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
+
                 oCN.RunProc("delete from Qc_PreventErrMouldCheckBillMain where HInterID = " + HInterID);
+                oCN.RunProc("delete from Qc_PreventErrMouldCheckBillSub where HInterID = " + HInterID);
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_Qc_PreventErrMouldCheckBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_Qc_PreventErrMouldCheckBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================     
+
+
 
                 oCN.Commit();
 
@@ -362,44 +488,32 @@
                     return objJsonResult;
                 }
 
-                ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Qc_PreventErrMouldCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+               
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                DAL.ClsQc_PreventErrMouldCheckBillMain oBill = new DAL.ClsQc_PreventErrMouldCheckBillMain();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -407,42 +521,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -450,25 +532,117 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "Qc_PreventErrMouldCheckBillMain";
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Qc_PreventErrMouldCheckBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Qc_PreventErrMouldCheckBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Qc_PreventErrMouldCheckBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_Qc_PreventErrMouldCheckBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Qc_PreventErrMouldCheckBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Qc_PreventErrMouldCheckBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+
 
             }
             catch (Exception e)
@@ -508,58 +682,48 @@
                     return objJsonResult;
                 }
 
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Qc_PreventErrMouldCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQc_PreventErrMouldCheckBillMain oBill = new DAL.ClsQc_PreventErrMouldCheckBillMain();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -567,55 +731,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Qc_PreventErrMouldCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Qc_PreventErrMouldCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Qc_PreventErrMouldCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Qc_PreventErrMouldCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Qc_PreventErrMouldCheckBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Qc_PreventErrMouldCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
diff --git a/WebAPI/Controllers/CJGL/Sc_WorkBeginDotCheckBillController.cs b/WebAPI/Controllers/CJGL/Sc_WorkBeginDotCheckBillController.cs
index d1480d4..880b697 100644
--- a/WebAPI/Controllers/CJGL/Sc_WorkBeginDotCheckBillController.cs
+++ b/WebAPI/Controllers/CJGL/Sc_WorkBeginDotCheckBillController.cs
@@ -86,6 +86,62 @@
         }
         #endregion
 
+        #region 鍚姩鐐规鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_WorkBeginDotCheckBill/get锘縎c_WorkBeginDotCheckBillListPage")]
+        [HttpGet]
+        public json get锘縎c_WorkBeginDotCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_WorkBeginDotCheckBillMain_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_WorkBeginDotCheckBillList " + page + "," + size + ",''", "h_p_Sc_WorkBeginDotCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_WorkBeginDotCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_WorkBeginDotCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
+
         #region 鍚姩鐐规鍒楄〃 鑾峰彇缂栬緫鍒楄〃鏁版嵁
         [Route("Sc_WorkBeginDotCheckBill/锘縎c_WorkBeginDotCheckBillMainEditList")]
         [HttpGet]
@@ -318,11 +374,78 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+                string s = "";
+                DAL.ClsSc_WorkBeginDotCheckBillMain BillOld = new DAL.ClsSc_WorkBeginDotCheckBillMain();
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙垹闄�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+
 
                 oCN.BeginTran();
 
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
+
                 oCN.RunProc("delete from Sc_WorkBeginDotCheckBillMain where HInterID = " + HInterID);
                 oCN.RunProc("delete from Sc_WorkBeginDotCheckBillSub where HInterID = " + HInterID);
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_Sc_WorkBeginDotCheckBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_Sc_WorkBeginDotCheckBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================     
+
+            
 
                 oCN.Commit();
 
@@ -368,45 +491,32 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Sc_WorkBeginDotCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                DAL.ClsSc_WorkBeginDotCheckBillMain oBill = new DAL.ClsSc_WorkBeginDotCheckBillMain();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -414,42 +524,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -457,25 +535,113 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
+               
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -514,59 +680,48 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Sc_WorkBeginDotCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsSc_WorkBeginDotCheckBillMain oBill = new DAL.ClsSc_WorkBeginDotCheckBillMain();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -574,55 +729,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
diff --git a/WebAPI/Controllers/LMESController.cs b/WebAPI/Controllers/LMESController.cs
index 1eda302..ffce074 100644
--- a/WebAPI/Controllers/LMESController.cs
+++ b/WebAPI/Controllers/LMESController.cs
@@ -192,7 +192,7 @@
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
 
 
-                ds = oCN.RunProcReturn("select top 1000 * from h_v_Sc_ProcessExchangeBillList_Query where 1 = 1 " + sWhere + " order by 鍗曟嵁鍙� desc ", "h_v_Sc_ProcessExchangeBillList_Query");
+                ds = oCN.RunProcReturn("select top 3000 * from h_v_Sc_ProcessExchangeBillList_Query where 1 = 1 " + sWhere + " order by 鍗曟嵁鍙� desc ", "h_v_Sc_ProcessExchangeBillList_Query");
 
 
                 //娣诲姞鍒楀悕
diff --git a/WebAPI/Controllers/QC_POStockInCheckBillController.cs b/WebAPI/Controllers/QC_POStockInCheckBillController.cs
index 4932707..837df64 100644
--- a/WebAPI/Controllers/QC_POStockInCheckBillController.cs
+++ b/WebAPI/Controllers/QC_POStockInCheckBillController.cs
@@ -93,8 +93,9 @@
             if (string.IsNullOrEmpty(HID))
                 return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+            string sql = "select top 1 * from h_v_QC_POStockInCheckBillList_Edit  where hmainid= " + HID + " ";
 
-            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_QC_Edit_POStockInCheckBillList  where hmainid= " + HID + " ", "h_v_QC_Edit_POStockInCheckBillList");
+            var dataSet = oCN.RunProcReturn(sql, "h_v_QC_Edit_POStockInCheckBillList");
             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                 return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄧ粨绠楀崟鍙�" };
 
@@ -111,9 +112,7 @@
             try
             {
                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
-                string sql1 = "SELECT 鏃ユ湡,鍗曟嵁鍙�,琛ㄥご澶囨敞, 渚涘簲鍟嗗悕绉�,渚涘簲鍟嗕唬鐮�,浜у搧鍐呯爜" +
-                    ", 浜у搧鍚嶇О, 浜у搧鍨嬪彿, 妫�楠屽憳浠g爜, 妫�楠屽憳鍚嶇О, 鍒跺崟浜�, 鍒跺崟鏃ユ湡, 瀹℃牳浜�" +
-                    ", 瀹℃牳鏃ユ湡, 淇敼浜�, 淇敼鏃ユ湡, 鍏抽棴浜�, 鍏抽棴鏃ユ湡 FROM h_v_QC_Edit_POStockInCheckBillList where 1 = 1 ";
+                string sql1 = "SELECT * FROM h_v_QC_POStockInCheckBillList_Edit where 1 = 1 ";
                 string sql = sql1 + sqlWhere;
                 ds = oCN.RunProcReturn(sql, "h_v_QC_Edit_POStockInCheckBillList");
                 objJsonResult.code = "0";
@@ -140,7 +139,7 @@
         [HttpPost]
         public object AddBill([FromBody] JObject sMainSub)
         {
-            var _value = sMainSub["sMainSub"].ToString();
+            var _value = sMainSub["msg"].ToString();
             string msg1 = _value.ToString();
             oCN.BeginTran();
             //淇濆瓨涓昏〃
@@ -192,12 +191,12 @@
                 long HBillStatus = mainList[0].HBillStatus;
                 string HRemark = mainList[0].HRemark;//澶囨敞
                 string HBacker = mainList[0].HBacker;
-                DateTime HBackDate = mainList[0].HBackDate;
+                //DateTime HBackDate = mainList[0].HBackDate;
                 string HBackRemark = mainList[0].HBackRemark;
                 string HChecker = mainList[0].HChecker;
-                DateTime HCheckDate = mainList[0].HCheckDate;
+                //DateTime HCheckDate = mainList[0].HCheckDate;
                 string HMaker = mainList[0].HMaker;
-                DateTime HMakeDate = mainList[0].HMakeDate;
+                //DateTime HMakeDate = mainList[0].HMakeDate;
                 long HSupID = mainList[0].HSupID;
                 long HMaterID = mainList[0].HMaterID;
                 decimal HInStockQty = mainList[0].HInStockQty;
diff --git a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
index 6cf5e4b..f06aed1 100644
--- a/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
@@ -14,6 +14,7 @@
 using System.Web.Http;
 using WebAPI.Models;
 using System.Threading;
+using SyntacticSugar.constant;
 
 namespace WebAPI.Controllers.SCGL
 {
@@ -249,14 +250,7 @@
         }
         #endregion
 
-        #region [鎶ュ伐鍙板紓甯稿弽棣堝崟瀹℃牳銆佸弽瀹℃牳]
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="HInterID">鍗曟嵁ID</param>
-        /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
-        /// <param name="CurUserName">瀹℃牳浜�</param>
-        /// <returns></returns>
+        #region [鎶ュ伐鍙板紓甯稿弽棣堝崟瀹℃牳銆佸弽瀹℃牳]      
         [Route("Sc_MESTransFerWorkBill/AuditTransFerReportList")]
         [HttpGet]
         public object AuditTransFerReportList(int HInterID, int IsAudit, string CurUserName)
@@ -337,8 +331,31 @@
                 }
                 if (IsAudit == 0) //瀹℃牳鎻愪氦
                 {
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;                     
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;            
+                        return objJsonResult;
+                    }
+                    //==================================================================================  
+
                     //瀹℃牳鎻愪氦
-                    if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CheckBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -357,8 +374,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅鏍告彁浜�
                 {
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_OA_ErrMsgBackBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================     
+
                     //鍙嶅鏍告彁浜bandonCheck
-                    if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.AbandonCheck(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -382,6 +421,188 @@
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "瀹℃牳澶辫触鎴栬�呭弽瀹℃牳澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮傚父鍙嶉鍗� 鍏抽棴/鍙嶅叧闂姛鑳�
+        [Route("Sc_MESTransFerWorkBill/CloseOA_ErrMsgBackBill")]
+        [HttpGet]
+        public object CloseOA_ErrMsgBackBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("OA_ErrMsgBackBill_Close", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬叧闂�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
+                ClsPub.CurUserName = user;
+                DLL.ClsOA_ErrMsgBackBill oBill = new DLL.ClsOA_ErrMsgBackBill();          //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
             }
@@ -447,8 +668,7 @@
 
         public static DataSet Get_TransFerBillList(string sWhere)
         {
-            //var sql = "select A.HInterID,b.HEntryID,A.HBillNo,A.HContext,A.HDeptID,D.HName HDeptName, A.HSendMan, B.HReceiveMan,A.HLevel,A.HDescription,case when B.HReadFlag=0 then '鏈槄' when B.HReadFlag=1 then '宸查槄' end HReadFlag, A.HMaker,A.HMakeDate,A.HUpDater,A.HUpDateDate" +
-            //   " from OA_InformBillMain A inner join  OA_InformBillSub B on A.HInterID=B.HInterID left join Gy_Department D on A.HDeptID=D.HItemID where 1=1 " + sWhere;
+          
             var sql = string.Format(@"select A.HInterID,b.HEntryID,A.HBillStatus,A.HBillNo,A.HDate,A.HContext,A.HDescription,A.HRemark,A.HQty,case when A.HSendType=0 then '鍏叡' when B.HReadFlag=1 then '涓汉' end HSendType,
                                       A.HDeptID,D.HName HDeptName, A.HSendMan, 
                                       A.HReceiveMan,B.HReceiveMan HCopyMan,A.HHasten, case when A.HLevel=0 then '鏅��' when B.HReadFlag=1 then '绱ф��' end HLevel,A.HMaterName,A.HMaterModel,
@@ -460,6 +680,61 @@
             return new SQLHelper.ClsCN().RunProcReturn(sql, "OA_ErrMsgBackBillMain");
         }
 
+        #endregion
+
+        #region 寮傚父鍙嶉鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESTransFerWorkBill/Get_TransFerBillListPage")]
+        [HttpGet]
+        public json Get_TransFerBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_WorkBeginDotCheckBillMain_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackBillList " + page + "," + size + ",''", "h_p_OA_ErrMsgBackBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_OA_ErrMsgBackBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
         #endregion
 
         #region 寮傚父鍙嶉鍒楄〃PDA
@@ -527,26 +802,7 @@
             if (string.IsNullOrEmpty(HID))
                 return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
-            string sql =string.Format(@"select A.HInterID,b.HEntryID,A.HBillStatus,A.HBillNo,A.HDate,A.HContext,A.HDescription,A.HRemark,
-                                      A.HQty,A.HSendType,a.HForm,a.HChangeNote,a.HNote,a.HBadProcMan,f1.HName HBadProcManName,
-										a.HQEMan,f2.HName HQEManName,a.HSourceID,s.HName HSourceName,a.HShiftsID,s1.HName HShiftsName,
-                                        A.HDeptID,D.HName HDeptName, A.HSendMan,a.HCenterID HCenterID,wo.HName HCenterName, 
-                                        A.HReceiveMan,A.HCopyMan,A.HHasten,
-                                        A.HLevel,A.HMaterNumber,A.HMaterName,A.HMaterModel,
-                                        B.HReadFlag, A.HMaker,A.HMakeDate,A.HUpDater,A.HUpDateDate,A.HChecker,A.HCheckDate,A.HCloseMan,A.HCloseDate,A.HDeleteMan,A.HDeleteDate,
-                                        A.HSourceInterID,A.HSourceEntryID,A.HSourceBillNo,A.HSourceBillType,
-										A.HHandleEmpID,f.HName HHandleEmpName,A.HErrMsgBackTypeID,g.HName HErrMsgBackTypeName
-                                        from OA_ErrMsgBackBillMain A 
-                                        inner join  OA_ErrMsgBackBillSub2 B on A.HInterID=B.HInterID 
-                                        left join Gy_Department D on A.HDeptID=D.HItemID
-										left join Gy_Employee f on A.HHandleEmpID=f.HItemID     
-                                        left join Gy_ErrMsgBackType g on A.HErrMsgBackTypeID=g.HItemID
-                                        left join Gy_Employee f1 on a.HBadProcMan=f1.HItemID
-										left join Gy_Employee f2 on a.HQEMan=f2.HItemID
-										left join Gy_Source s on a.HSourceID=s.HItemID
-										left join Gy_Shifts s1 on a.HShiftsID=s1.HItemID
-                                        left join Gy_WorkCenter wo on a.HCenterID=wo.HItemID
-                                        where A.HInterID='" + HID + "' and b.HEntryID='" + HEntryID + "'");
+            string sql =string.Format(@"select * from h_v_OA_ErrMsgBackBillEdit  where HInterID='" + HID + "' and HEntryID='" + HEntryID + "'");
             var dataSet = oCN.RunProcReturn(sql, "OA_ErrMsgBackBillMain");
             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                 return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄥ崟鍙�" };
@@ -571,11 +827,8 @@
         }
         #endregion
 
-        #region [妯″叿鏀瑰埗鐢宠鍗曞垹闄ゅ姛鑳絔
-        /// <summary>
-        /// 妯″叿鏀瑰埗鐢宠鍗曞垹闄ゅ姛鑳�
-        /// </summary>
-        /// <returns></returns>
+        #region [寮傚父鍙嶉鍗曞垹闄ゅ姛鑳絔
+      
         [Route("Sc_MESTransFerWorkBill/Get_DeleteTransFerBill")]
         [HttpGet]
         public object Get_DeleteTransFerBill(string HInterID,string HEntryID, string user)
@@ -629,7 +882,30 @@
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    bool IsDete = oBill.DeleteBill(lngBillKey, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo);
+
+                    //鍒犻櫎鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackBill_BeforeDelCtrl  " + BillOld1.omodel.HInterID + ",'" + BillOld1.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackBill_BeforeDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================  
+
+                    bool IsDete = oBill.DeleteBill(lngBillKey, HEntryID, "h_p_OA_ErrMsgBackBill_AfterDelCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo);
                     if (IsDete)
                     {
                         objJsonResult.code = "1";
@@ -1082,8 +1358,8 @@
             {
                 List<object> columnNameList = new List<object>();
 
-                string sql = "select * from h_v_OA_ErrMsgBackReceiveBillMainList where hmainid='"+HID+"'";
-                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackReceiveBillMainList");
+                string sql = "select * from h_v_OA_ErrMsgBackReceiveBillMainEdit where hmainid='" + HID+"'";
+                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackReceiveBillMainEdit");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -1165,6 +1441,61 @@
                 objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮傚父鍙嶉鎺ユ敹鍗曞垪琛� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESTransFerWorkBill/Get_OA_ErrMsgBackReceiveBillListPage")]
+        [HttpGet]
+        public json Get_OA_ErrMsgBackReceiveBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("OA_ErrMsgBackReceiveBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackReceiveBillList " + page + "," + size + ",''", "h_p_OA_ErrMsgBackReceiveBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackReceiveBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_OA_ErrMsgBackReceiveBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -1648,8 +1979,30 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackReceiveBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackReceiveBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================   
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackReceiveBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -1668,8 +2021,31 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackReceiveBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackReceiveBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackReceiveBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -2077,8 +2453,8 @@
             {
                 List<object> columnNameList = new List<object>();
 
-                string sql = "select * from h_v_OA_ErrMsgBackSignBillMainList where hmainid='" + HID + "'";
-                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackSignBillMainList");
+                string sql = "select * from h_v_OA_ErrMsgBackSignBillMainEdit where hmainid='" + HID + "'";
+                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackSignBillMainEdit");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -2160,6 +2536,61 @@
                 objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮傚父鍙嶉绛惧埌鍗曞垪琛� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESTransFerWorkBill/Get_OA_ErrMsgBackSignBillListPage")]
+        [HttpGet]
+        public json Get_OA_ErrMsgBackSignBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("OA_ErrMsgBackSignBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackSignBillList " + page + "," + size + ",''", "h_p_OA_ErrMsgBackSignBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackSignBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_OA_ErrMsgBackSignBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -2643,8 +3074,31 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackSignBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackSignBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackSignBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -2663,8 +3117,32 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackSignBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackSignBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackSignBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -2994,8 +3472,8 @@
             {
                 List<object> columnNameList = new List<object>();
 
-                string sql = "select * from h_v_OA_ErrMsgBackHandleBillMainList where hmainid='" + HID + "'";
-                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackHandleBillMainList");
+                string sql = "select * from h_v_OA_ErrMsgBackHandleBillMainEdit where hmainid='" + HID + "'";
+                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackHandleBillMainEdit");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -3080,6 +3558,63 @@
             }
         }
         #endregion
+
+        #region 寮傚父鍙嶉澶勭悊鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESTransFerWorkBill/Get_OA_ErrMsgBackHandleBillListPage")]
+        [HttpGet]
+        public json Get_OA_ErrMsgBackHandleBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("OA_ErrMsgBackHandleBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackHandleBillList " + page + "," + size + ",''", "h_p_OA_ErrMsgBackHandleBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackHandleBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_OA_ErrMsgBackHandleBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
+
         #region 寮傚父鍙嶉澶勭悊鍗曞垪琛≒DA
 
         [Route("Sc_MESTransFerWorkBill/Get_OA_ErrMsgBackHandleBillList_PDA")]
@@ -3557,8 +4092,31 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackHandleBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackHandleBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackHandleBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -3577,8 +4135,31 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackHandleBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackHandleBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackHandleBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -3908,8 +4489,8 @@
             {
                 List<object> columnNameList = new List<object>();
 
-                string sql = "select * from h_v_OA_ErrMsgBackCheckBillMainList where hmainid='" + HID + "'";
-                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackCheckBillMainList");
+                string sql = "select * from h_v_OA_ErrMsgBackCheckBillMainEdit where hmainid='" + HID + "'";
+                ds = oCN.RunProcReturn(sql, "h_v_OA_ErrMsgBackCheckBillMainEdit");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -3991,6 +4572,61 @@
                 objJsonResult.Message = "鏌ヨ鏁版嵁寮傚父锛岃涓庣鐞嗗憳鑱旂郴锛�" + ex.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮傚父鍙嶉楠屾敹鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESTransFerWorkBill/Get_OA_ErrMsgBackCheckBillListPage")]
+        [HttpGet]
+        public json Get_OA_ErrMsgBackCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("OA_ErrMsgBackCheckBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackCheckBillList " + page + "," + size + ",''", "h_p_OA_ErrMsgBackCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_OA_ErrMsgBackCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_OA_ErrMsgBackCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -4471,8 +5107,30 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackCheckBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -4491,8 +5149,32 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+
+
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_OA_ErrMsgBackCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_OA_ErrMsgBackCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_OA_ErrMsgBackCheckBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
diff --git "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs" "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
index fa11602..6e89700 100644
--- "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
+++ "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/JIT_DayPlanPlatFormBillController.cs"
@@ -3455,5 +3455,48 @@
         }
         #endregion
 
+        #region 宸ュ簭璐熻嵎鍒嗘瀽姹囨�绘姤琛� 鏌ヨ
+        /// <summary>
+        /// 杩斿洖椤圭洰闃舵鍒楄〃
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("JIT_DayPlanPlatFormBill/JIT_FuHeFenXiReport")]
+        [HttpGet]
+        public object JIT_FuHeFenXiReport(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                string sql = "exec h_p_JIT_FuHeFenXiReport   '" + sWhere + "','" + user + "'";
+
+                ds = oCN.RunProcReturn(sql, "h_p_JIT_FuHeFenXiReport");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/Sc_ProcessMangementController.cs b/WebAPI/Controllers/Sc_ProcessMangementController.cs
index b8babff..5c7bdef 100644
--- a/WebAPI/Controllers/Sc_ProcessMangementController.cs
+++ b/WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -12,6 +12,7 @@
 using WebAPI.Models;
 using WebAPI.Service;
 using Kingdee.BOS.WebApi.Client;
+using SyntacticSugar.constant;
 
 namespace WebAPI.Controllers
 {
@@ -6121,6 +6122,61 @@
         }
         #endregion
 
+        #region 涓嶈壇鍝佽瘎瀹″鐞嗗崟 鍒嗛〉鍒楄〃
+        [Route("Sc_ProcessMangement/get锘縂et_QC_NoPassProdDisposeBillListPage")]
+        [HttpGet]
+        public json Get_QC_NoPassProdDisposeBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_NoPassProdDisposeBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_NoPassProdDisposeBillList " + page + "," + size + ",''", "h_p_QC_NoPassProdDisposeBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_NoPassProdDisposeBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_NoPassProdDisposeBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
         #region 涓嶈壇鍝佽瘎瀹″鐞嗗崟 鍒犻櫎
 
         [Route("Sc_ProcessMangement/DeleteQC_NoPassProdDisposeBill")]
@@ -6539,8 +6595,30 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -6559,8 +6637,31 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_WorkBeginDotCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_WorkBeginDotCheckBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_WorkBeginDotCheckBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
diff --git "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/Kf_ProductReceiveMaterialBillController.cs" "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/Kf_ProductReceiveMaterialBillController.cs"
new file mode 100644
index 0000000..cb9f2de
--- /dev/null
+++ "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\347\224\237\344\272\247\351\242\206\346\226\231/Kf_ProductReceiveMaterialBillController.cs"
@@ -0,0 +1,945 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using Pub_Class;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Net;
+using System.Web.Http;
+using System.Windows.Forms;
+using WebAPI.Models;
+
+namespace WebAPI.Controllers
+{
+    //鍑洪棬纭鍗旵ontroller
+    public class Kf_ProductReceiveMaterialBillController : ApiController
+    {
+        //鑾峰彇绯荤粺鍙傛暟
+        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
+        public DAL.ClsKf_ProductReceiveMaterialBill BillOld = new DAL.ClsKf_ProductReceiveMaterialBill();
+        public DAL.ClsKf_ProductReceiveMaterialBill BillNew0 = new DAL.ClsKf_ProductReceiveMaterialBill();
+
+        private json objJsonResult = new json();
+        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+        DataSet ds;
+
+        #region 鐢熶骇棰嗘枡鍗曞垪琛� 鏌ヨ
+        /// <summary>
+        ///鍙傛暟锛歴tring sql銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Kf_ProductReceiveMaterialBill/list")]
+        [HttpGet]
+        public object getKf_ProductReceiveMaterialBill(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Kf_ProductReceiveMaterialBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳煡鐪嬫潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("select * from h_v_Kf_ProductReceiveMaterialBillList_Query order by 鍗曟嵁鍙� desc", "h_v_Kf_ProductReceiveMaterialBillList_Query");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_Kf_ProductReceiveMaterialBillList_Query where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鍗曟嵁鍙� desc";
+                    ds = oCN.RunProcReturn(sql, "h_v_Kf_ProductReceiveMaterialBillList_Query");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗曚繚瀛� 鏂板/缂栬緫
+        [Route("Kf_ProductReceiveMaterialBill/SaveKf_ProductReceiveMaterialBill")]
+        [HttpPost]
+        public object SaveXs_OutDoorBill([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();                             //瀛愯〃1鏁版嵁
+            string refSav = sArray[2].ToString();                           //鎿嶄綔鏂瑰紡
+            string msg4 = sArray[3].ToString();                             //鐢ㄦ埛
+
+            DBUtility.ClsPub.CurUserName = msg4;
+
+            string UserName = "";
+            string s = "";
+            ListModels oListModels = new ListModels();
+            try
+            {
+                //缂栬緫鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second("Kf_ProductReceiveMaterialBill_Edit", 1, false, msg4))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                DAL.ClsKf_ProductReceiveMaterialBill oBill = new DAL.ClsKf_ProductReceiveMaterialBill();
+                List<Model.ClsKf_ProductReceiveMaterialBillMain> lsmain = new List<Model.ClsKf_ProductReceiveMaterialBillMain>();
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");  //\n
+                lsmain = oListModels.getObjectByJson_Kf_ProductReceiveMaterialBillMain(msg2);
+                foreach (Model.ClsKf_ProductReceiveMaterialBillMain oItem in lsmain)
+                {
+                    if (refSav == "Add")
+                    {
+                        //鍗曟嵁鍙锋槸鍚﹂噸澶�
+                        if (BillNew0.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鍙烽噸澶嶏紒涓嶅厑璁镐繚瀛橈紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+                    if (refSav == "Update")
+                    {
+                        if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        //鍒ゆ柇鏄惁鍙紪杈�
+                        if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽淇敼锛�";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (BillOld.omodel.HBillStatus > 1)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "姝ゅ崟鎹浜庝笉鍙紪杈戠姸鎬侊紝涓嶅厑璁镐慨鏀癸紒";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = s + "锛屼笉鍏佽淇敼";
+                            objJsonResult.data = 1;
+                            return objJsonResult;
+                        }
+                    }
+
+                    oItem.HMaker = msg4;
+                    oItem.HUpDater = msg4;
+
+                    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.ClsKf_ProductReceiveMaterialBillSub> ls = new List<Model.ClsKf_ProductReceiveMaterialBillSub>();
+                ls = oListModels.getObjectByJson_Kf_ProductReceiveMaterialBillSub(msg3);
+                int i = 0;
+                foreach (Model.ClsKf_ProductReceiveMaterialBillSub oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+                    //oItemSub.HCloseMan = "";       //琛屽叧闂�
+                    //oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    //oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+                    //oItemSub.HRemark = "";         //澶囨敞
+
+                    //oItemSub.HSourceInterID = 0;     // 婧愬崟涓诲唴鐮�
+                    //oItemSub.HSourceEntryID = 0;   //婧愬崟瀛愬唴鐮�
+                    //oItemSub.HSourceBillNo = "";  //婧愬崟鍗曞彿
+                    //oItemSub.HSourceBillType = ""; //婧愬崟绫诲瀷
+                    //oItemSub.HRelationQty = 0;     //鍏宠仈鏁伴噺
+                    //oItemSub.HRelationMoney = 0;   //鍏宠仈閲戦 
+                    oBill.DetailColl.Add(oItemSub);
+
+                }
+
+                //杩涜 浼氳鏈熼棿 缁撹处 鐨勫垽鏂拰鎺у埗
+                int sYear = 0;
+                int sPeriod = 0;
+                DateTime HDate = DateTime.Now;
+                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                {
+                    objJsonResult.Message = s;
+                    return objJsonResult;
+                }
+
+                //淇濆瓨
+                //淇濆瓨瀹屾瘯鍚庡鐞�
+                bool bResult;
+                if (refSav == "Add")
+                {
+                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else if (refSav == "Update")
+                {
+                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                }
+                else
+                {
+                    bResult = false;
+                }
+                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;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗� 缂栬緫椤甸潰鍒濆鍖�
+        [Route("Kf_ProductReceiveMaterialBill/cx")]
+        [HttpGet]
+        public object cx(long HInterID)
+        {
+            try
+            {
+                ds = oCN.RunProcReturn("select * from h_v_Kf_ProductReceiveMaterialBillList_Edit where hmainid=" + HInterID, "h_v_Kf_ProductReceiveMaterialBillList_Edit");
+                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;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗� 鍒犻櫎
+        /// <summary>
+        ///鍙傛暟锛歴tring HInterID銆�
+        ///杩斿洖鍊硷細object銆�
+        /// </summary>
+        [Route("Kf_ProductReceiveMaterialBill/delete")]
+        [HttpGet]
+        public object deleteKf_ProductReceiveMaterialBill(string HInterID, string user)
+        {
+            try
+            {
+                string s = "";
+
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Kf_ProductReceiveMaterialBill_Drop", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犲垹闄ゆ潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (HInterID == null || HInterID.Equals(""))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓嶈兘涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙紪杈�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_Kf_ProductReceiveMaterialBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_Kf_ProductReceiveMaterialBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
+
+                //杩涜 浼氳鏈熼棿 缁撹处 鐨勫垽鏂拰鎺у埗
+                int sYear = 0;
+                int sPeriod = 0;
+                DateTime HDate = DateTime.Now;
+                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                {
+                    objJsonResult.Message = s;
+                    return objJsonResult;
+                }
+
+                oCN.BeginTran();
+
+                oCN.RunProc("delete from Kf_ProductReceiveMaterialBillMain where HInterID = " + HInterID);
+                oCN.RunProc("delete from Kf_ProductReceiveMaterialBillSub where HInterID= " + HInterID);
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_Kf_ProductReceiveMaterialBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_Kf_ProductReceiveMaterialBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    s = "鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + s;
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    s = ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + s;
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================
+
+                oCN.Commit();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍒犻櫎鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗� 瀹℃牳/鍙嶅鏍�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">瀹℃牳(0),鍙嶅鏍�(1)</param>
+        /// <param name="CurUserName">瀹℃牳浜�</param>
+        /// <returns></returns>
+        [Route("Kf_ProductReceiveMaterialBill/AuditKf_ProductReceiveMaterialBill")]
+        [HttpGet]
+        public object AuditKf_ProductReceiveMaterialBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "Kf_ProductReceiveMaterialBill_Check";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //瀹℃牳鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsKf_ProductReceiveMaterialBill oBill = new DAL.ClsKf_ProductReceiveMaterialBill();                              //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HCloseMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘鍐嶆瀹℃牳锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅鏍稿垽鏂�
+                    {
+                        if (oBill.omodel.HChecker.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶉渶瑕佸弽瀹℃牳!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑瀹℃牳/鍙嶅鏍告搷浣�
+                if (IsAudit == 0) //瀹℃牳鎻愪氦
+                {
+                    //杩涜 浼氳鏈熼棿 缁撹处 鐨勫垽鏂拰鎺у埗
+                    string s = "";
+                    int sYear = 0;
+                    int sPeriod = 0;
+                    DateTime HDate = DateTime.Now;
+                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                    {
+                        objJsonResult.Message = s;
+                        return objJsonResult;
+                    }                    
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Kf_ProductReceiveMaterialBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Kf_ProductReceiveMaterialBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================    
+
+                    oCN.BeginTran();
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oCN,oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_ProductReceiveMaterialBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅鏍告彁浜�
+                {
+                    //杩涜 浼氳鏈熼棿 缁撹处 鐨勫垽鏂拰鎺у埗
+                    string s = "";
+                    int sYear = 0;
+                    int sPeriod = 0;
+                    DateTime HDate = DateTime.Now;
+                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
+                    {
+                        objJsonResult.Message = s;
+                        return objJsonResult;
+                    }
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_Kf_ProductReceiveMaterialBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Kf_ProductReceiveMaterialBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================     
+
+                    oCN.BeginTran();
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oCN,oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_ProductReceiveMaterialBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "瀹℃牳澶辫触鎴栬�呭弽瀹℃牳澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗� 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("Kf_ProductReceiveMaterialBill/CloseKf_ProductReceiveMaterialBill")]
+        [HttpGet]
+        public object CloseKf_ProductReceiveMaterialBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "Kf_ProductReceiveMaterialBill_Close";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍏抽棴澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsKf_ProductReceiveMaterialBill oBill = new DAL.ClsKf_ProductReceiveMaterialBill();              //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (IsAudit == 0) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇棰嗘枡鍗� 浣滃簾/鍙嶄綔搴�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">浣滃簾(0),鍙嶄綔搴�(1)</param>
+        /// <param name="CurUserName">浣滃簾浜�</param>
+        /// <returns></returns>
+        [Route("Kf_ProductReceiveMaterialBill/DeleteKf_ProductReceiveMaterialBill")]
+        [HttpGet]
+        public object DeleteXs_OutDoorBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "Kf_ProductReceiveMaterialBill_Delete";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "浣滃簾澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsKf_ProductReceiveMaterialBill oBill = new DAL.ClsKf_ProductReceiveMaterialBill();              //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HChecker.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //浣滃簾鍒ゆ柇
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶄綔搴燂紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶄綔搴熷垽鏂�
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸弽浣滃簾锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑浣滃簾/鍙嶄綔搴熸搷浣�
+                if (IsAudit == 0) //浣滃簾鎻愪氦
+                {
+                    //浣滃簾鎻愪氦
+                    if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "浣滃簾鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶄綔搴熸垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "浣滃簾澶辫触鎴栬�呭弽浣滃簾澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+    }
+}
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\241\346\243\200\345\215\225/QC_PatrolProcCheckOtherBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\241\346\243\200\345\215\225/QC_PatrolProcCheckOtherBillController.cs"
index 47fd9f6..7738e52 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\241\346\243\200\345\215\225/QC_PatrolProcCheckOtherBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\241\346\243\200\345\215\225/QC_PatrolProcCheckOtherBillController.cs"
@@ -504,42 +504,33 @@
 
                 ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_PatrolProcCheckOtherBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                ClsPub.CurUserName = user;
+
+                DAL.ClsQC_PatrolProcCheckOtherBill oBill = new DAL.ClsQC_PatrolProcCheckOtherBill();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -547,42 +538,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -590,25 +549,114 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_PatrolProcCheckOtherBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_PatrolProcCheckOtherBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_PatrolProcCheckOtherBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_QC_PatrolProcCheckOtherBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_PatrolProcCheckOtherBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_PatrolProcCheckOtherBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+
 
             }
             catch (Exception e)
@@ -647,59 +695,49 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_PatrolProcCheckOtherBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_PatrolProcCheckOtherBill oBill = new DAL.ClsQC_PatrolProcCheckOtherBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -707,55 +745,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_PatrolProcCheckOtherBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_PatrolProcCheckOtherBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_PatrolProcCheckOtherBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_PatrolProcCheckOtherBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_PatrolProcCheckOtherBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_PatrolProcCheckOtherBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -929,15 +1013,79 @@
                     return objJsonResult;
                 }
 
+                string s = "";
+                DAL.ClsQC_PatrolProcCheckOtherBill BillOld = new DAL.ClsQC_PatrolProcCheckOtherBill();
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙垹闄�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
 
                 //寮�濮嬩簨鐗�
-                oCN.BeginTran();    
+                oCN.BeginTran();
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_QC_PatrolProcCheckOtherBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_QC_PatrolProcCheckOtherBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
 
                 oCN.RunProc("Delete From QC_PatrolProcCheckOtherBillMain where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_PatrolProcCheckOtherBillSub where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_PatrolProcCheckOtherBillSub_ValueGrid where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_PatrolProcCheckOtherBillSub_Result where HInterID = " + HInterID);
-            
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_QC_PatrolProcCheckOtherBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_QC_PatrolProcCheckOtherBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================     
+
+
                 //鎻愪氦浜嬪姟
                 oCN.Commit();
                 objJsonResult.code = "1";
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\245\345\272\217\346\243\200\351\252\214\345\215\225/QC_ProcessCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\245\345\272\217\346\243\200\351\252\214\345\215\225/QC_ProcessCheckBillController.cs"
index 6852cbf..959bb87 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\245\345\272\217\346\243\200\351\252\214\345\215\225/QC_ProcessCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\267\245\345\272\217\346\243\200\351\252\214\345\215\225/QC_ProcessCheckBillController.cs"
@@ -22,58 +22,7 @@
         public DAL.ClsQC_ProcessCheckBill BillOld = new DAL.ClsQC_ProcessCheckBill();
         DataSet ds;
         //鑾峰彇绯荤粺鍙傛暟
-        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
-
-        //#region 宸ュ簭妫�楠屽崟鍒楄〃
-        //[Route("QC_ProcessCheckBill/QC_ProcessCheckBillList")]
-        //[HttpGet]
-        //public object QC_ProcessCheckBillList(string sWhere, string user)
-        //{
-        //    try
-        //    {
-        //        List<object> columnNameList = new List<object>();
-
-        //        string sql1 = "select * from h_v_QC_ProcessCheckBill where 1 = 1  ";
-        //        string sql = sql1 + sWhere + " order by hmainid desc";
-        //        ds = oCN.RunProcReturn(sql, "h_v_QC_ProcessCheckBill");
-
-        //        //娣诲姞鍒楀悕
-        //        foreach (DataColumn col in ds.Tables[0].Columns)
-        //        {
-        //            Type dataType = col.DataType;
-        //            string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
-        //            columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
-        //        }
-
-        //        if (ds.Tables[0].Rows.Count > 0)
-        //        {
-        //            objJsonResult.code = "1";
-        //            objJsonResult.count = 1;
-        //            objJsonResult.Message = "Sucess锛�";
-        //            objJsonResult.list = columnNameList;
-        //            objJsonResult.data = ds.Tables[0];
-        //            return objJsonResult;
-        //        }
-        //        else
-        //        {
-        //            objJsonResult.code = "0";
-        //            objJsonResult.count = 0;
-        //            objJsonResult.Message = "娌℃湁鏌ヨ鍒版暟鎹�";
-        //            objJsonResult.list = columnNameList;
-        //            objJsonResult.data = ds.Tables[0];
-        //            return objJsonResult;
-        //        }               
-        //    }
-        //    catch (Exception e)
-        //    {
-        //        objJsonResult.code = "0";
-        //        objJsonResult.count = 0;
-        //        objJsonResult.Message = "Exception锛�" + e.ToString();
-        //        objJsonResult.data = null;
-        //        return objJsonResult;
-        //    }
-        //}
-        //#endregion
+        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();     
 
         #region 宸ュ簭妫�楠屽崟鍒楄〃
         [Route("QC_ProcessCheckBill/QC_ProcessCheckBillList")]
@@ -508,52 +457,49 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_ProcessCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_ProcessCheckBill oBill = new DAL.ClsQC_ProcessCheckBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -561,49 +507,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_ProcessCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_ProcessCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
 
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_ProcessCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_ProcessCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_ProcessCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_ProcessCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -784,22 +782,12 @@
                     ds = oCN.RunProcReturn(sql, "h_v_QC_ProcessCheckBillListDetail");
                 }
 
-                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
-                //{
+
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "Sucess锛�";
                 objJsonResult.data = ds.Tables[0];
                 return objJsonResult;
-                //}
-                //else
-                //{
-                //objJsonResult.code = "0";
-                //objJsonResult.count = 0;
-                //objJsonResult.Message = "鏃犳暟鎹�";
-                //objJsonResult.data = null;
-                //return objJsonResult;
-                //}
             }
             catch (Exception e)
             {
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\272\223\345\255\230\346\243\200\351\252\214\345\215\225/QC_StockCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\272\223\345\255\230\346\243\200\351\252\214\345\215\225/QC_StockCheckBillController.cs"
index 3ba86c6..a9d71ae 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\272\223\345\255\230\346\243\200\351\252\214\345\215\225/QC_StockCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\345\272\223\345\255\230\346\243\200\351\252\214\345\215\225/QC_StockCheckBillController.cs"
@@ -507,42 +507,30 @@
 
                 ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_StockCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_StockCheckBill oBill = new DAL.ClsQC_StockCheckBill();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -550,42 +538,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -593,25 +549,113 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_StockCheckBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_StockCheckBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_StockCheckBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_QC_StockCheckBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_StockCheckBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_StockCheckBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -651,58 +695,49 @@
                     return objJsonResult;
                 }
 
-                ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_StockCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
+                ClsPub.CurUserName = user;
+                DAL.ClsQC_StockCheckBill oBill = new DAL.ClsQC_StockCheckBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -710,55 +745,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_StockCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_StockCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_StockCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_StockCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_StockCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_StockCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -931,16 +1012,79 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                string s = "";
+                DAL.ClsQC_StockCheckBill BillOld = new DAL.ClsQC_StockCheckBill();
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙垹闄�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
 
                 //寮�濮嬩簨鐗�
-                oCN.BeginTran();    
+                oCN.BeginTran();
+
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_QC_StockCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_QC_StockCheckBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
 
                 oCN.RunProc("Delete From QC_StockCheckBillMain where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_StockCheckBillSub where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_StockCheckBillSub_ValueGrid where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_StockCheckBillSub_Result where HInterID = " + HInterID);
-            
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_QC_StockCheckBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_QC_StockCheckBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================   
+
                 //鎻愪氦浜嬪姟
                 oCN.Commit();
                 objJsonResult.code = "1";
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\346\243\200\351\252\214\345\217\226\346\240\267\350\277\230\346\240\267\345\215\225/QC_TakeSampleCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\346\243\200\351\252\214\345\217\226\346\240\267\350\277\230\346\240\267\345\215\225/QC_TakeSampleCheckBillController.cs"
index c2fed8d..9817ffe 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\346\243\200\351\252\214\345\217\226\346\240\267\350\277\230\346\240\267\345\215\225/QC_TakeSampleCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\346\243\200\351\252\214\345\217\226\346\240\267\350\277\230\346\240\267\345\215\225/QC_TakeSampleCheckBillController.cs"
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -81,6 +82,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 妫�楠屽彇鏍峰崟鍒楄〃 鍒嗛〉鍒楄〃
+        [Route("QC_TakeSampleCheckBill/getQC_TakeSampleCheckBillListPage")]
+        [HttpGet]
+        public json getQC_TakeSampleCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_TakeSampleCheckBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_TakeSampleCheckBillList " + page + "," + size + ",''", "h_p_QC_TakeSampleCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_TakeSampleCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_TakeSampleCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -342,6 +398,9 @@
                         return objJsonResult;
                     }
 
+
+                    oCN.BeginTran();
+
                     //鍒犻櫎鍓嶆帶鍒�=========================================      
                     string sql1 = "exec h_p_QC_TakeSampleCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
                     ds = oCN.RunProcReturn(sql1, "h_p_QC_TakeSampleCheckBill_BeforeDelCtrl");
@@ -364,9 +423,6 @@
                     }
                     //==================================================================================  
 
-
-
-                    oCN.BeginTran();
 
                     oCN.RunProc("delete from QC_TakeSampleCheckBillMain where HInterID = " + HInterID);
                     oCN.RunProc("delete from QC_TakeSampleCheckBillSub where HInterID= " + HInterID);
@@ -732,8 +788,30 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_TakeSampleCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_TakeSampleCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_TakeSampleCheckBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -752,8 +830,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_TakeSampleCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_TakeSampleCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_TakeSampleCheckBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -1002,6 +1102,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 妫�楠岃繕鏍峰崟鍒楄〃 鍒嗛〉鍒楄〃
+        [Route("QC_TakeSampleCheckBill/get_QC_BackSampleCheckBillListPage")]
+        [HttpGet]
+        public json get_QC_BackSampleCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_BackSampleCheckBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_BackSampleCheckBillList " + page + "," + size + ",''", "h_p_QC_BackSampleCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_BackSampleCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_BackSampleCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -1281,6 +1436,9 @@
                         return objJsonResult;
                     }
 
+
+                    oCN.BeginTran();
+
                     //鍒犻櫎鍓嶆帶鍒�=========================================      
                     string sql1 = "exec h_p_QC_BackSampleCheckBill_BeforeDelCtrl " + BillOld1.omodel.HInterID + ",'" + BillOld1.omodel.HBillNo + "','" + user + "'";
                     ds = oCN.RunProcReturn(sql1, "h_p_QC_BackSampleCheckBill_BeforeDelCtrl");
@@ -1302,10 +1460,6 @@
                         return objJsonResult;
                     }
                     //==================================================================================  
-
-
-
-                    oCN.BeginTran();
 
                     oCN.RunProc("delete from QC_BackSampleCheckBillMain where HInterID = " + HInterID);
                     oCN.RunProc("delete from QC_BackSampleCheckBillSub where HInterID= " + HInterID);
@@ -1671,8 +1825,30 @@
                 //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
                 if (IsAudit == 0) //鍏抽棴鎻愪氦
                 {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_BackSampleCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_BackSampleCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================
+
                     //鍏抽棴鎻愪氦
-                    if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_BackSampleCheckBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -1691,8 +1867,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅叧闂彁浜�
                 {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_BackSampleCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_BackSampleCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
                     //鍙嶅叧闂彁浜�
-                    if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_BackSampleCheckBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs"
index f65b335..fd20749 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\347\216\257\345\242\203\346\243\200\346\265\213\345\215\225/QC_EnvironmentTestDotCheckBillController.cs"
@@ -2,6 +2,7 @@
 using Model;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using SyntacticSugar.constant;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -77,6 +78,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐜妫�娴嬮」鐩� 鍒嗛〉鍒楄〃
+        [Route("QC_EnvironmentTestDotCheckBill/get锘縌C_EnvironmentTestDotCheckBillListPage")]
+        [HttpGet]
+        public json QC_EnvironmentTestDotCheckBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_EnvironmentTestDotCheckBillMain_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_EnvironmentTestDotCheckBillList " + page + "," + size + ",''", "h_p_QC_EnvironmentTestDotCheckBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_QC_EnvironmentTestDotCheckBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_QC_EnvironmentTestDotCheckBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -315,7 +371,55 @@
 
                 oCN.BeginTran();
 
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_QC_EnvironmentTestDotCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_QC_EnvironmentTestDotCheckBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
+
                 oCN.RunProc("delete from QC_EnvironmentTestDotCheckBillMain where HInterID = " + HInterID);
+                oCN.RunProc("delete from QC_EnvironmentTestDotCheckBillSub where HInterID = " + HInterID);
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_QC_EnvironmentTestDotCheckBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_QC_EnvironmentTestDotCheckBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================     
+
+             
 
                 oCN.Commit();
 
@@ -364,42 +468,30 @@
 
                 ClsPub.CurUserName = user;
                 BillOld.MvarItemKey = "QC_EnvironmentTestDotCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_EnvironmentTestDotCheckBillMain oBill = new DAL.ClsQC_EnvironmentTestDotCheckBillMain();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -407,42 +499,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -450,26 +510,113 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
 
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_EnvironmentTestDotCheckBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_EnvironmentTestDotCheckBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_EnvironmentTestDotCheckBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_QC_EnvironmentTestDotCheckBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_EnvironmentTestDotCheckBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_EnvironmentTestDotCheckBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -507,59 +654,48 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "QC_EnvironmentTestDotCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_EnvironmentTestDotCheckBillMain oBill = new DAL.ClsQC_EnvironmentTestDotCheckBillMain();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -567,56 +703,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_EnvironmentTestDotCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_EnvironmentTestDotCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
 
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_EnvironmentTestDotCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_EnvironmentTestDotCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_EnvironmentTestDotCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_EnvironmentTestDotCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
             }
             catch (Exception e)
             {
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\275\246\351\227\264\350\207\252\346\243\200\345\215\225/QC_WorkSelfCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\275\246\351\227\264\350\207\252\346\243\200\345\215\225/QC_WorkSelfCheckBillController.cs"
index e8b06ec..b31da58 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\275\246\351\227\264\350\207\252\346\243\200\345\215\225/QC_WorkSelfCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\350\275\246\351\227\264\350\207\252\346\243\200\345\215\225/QC_WorkSelfCheckBillController.cs"
@@ -24,7 +24,7 @@
         //鑾峰彇绯荤粺鍙傛暟
         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
 
-        #region 杞﹂棿鑷鍗曞垪琛�  涓�  缂栬緫鍥炴樉
+        #region 杞﹂棿鑷鍗曞垪琛�  
         [Route("QC_WorkSelfCheckBill/QC_WorkSelfCheckBillList")]
         [HttpGet]
         public object QC_FirstPieceCheckBillList(string sWhere, string user)
@@ -43,9 +43,59 @@
                     return objJsonResult;
                 }
 
-                string sql1 = "select * from h_v_QC_WorkSelfCheckBill where 1 = 1  ";
+                string sql1 = "select * from h_v_QC_WorkSelfCheckBillList where 1 = 1  ";
                 string sql = sql1 + sWhere + " order by hmainid desc";
-                ds = oCN.RunProcReturn(sql, "h_v_QC_WorkSelfCheckBill");
+                ds = oCN.RunProcReturn(sql, "h_v_QC_WorkSelfCheckBillList");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.list = columnNameList;
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+
+        #region 杞﹂棿鑷鍗�  缂栬緫鍥炴樉
+        [Route("QC_WorkSelfCheckBill/QC_WorkSelfCheckBillEdit")]
+        [HttpGet]
+        public object QC_WorkSelfCheckBillEdit(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("QC_WorkSelfCheckBill_Query", 3, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎮ㄦ病鏈夎妯″潡鏉冮檺,璇蜂笌绠$悊鍛樿仈绯伙紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                string sql1 = "select * from h_v_QC_WorkSelfCheckBillEdit where 1 = 1  ";
+                string sql = sql1 + sWhere + " order by hmainid desc";
+                ds = oCN.RunProcReturn(sql, "h_v_QC_WorkSelfCheckBillEdit");
 
                 //娣诲姞鍒楀悕
                 foreach (DataColumn col in ds.Tables[0].Columns)
@@ -461,44 +511,32 @@
                     return objJsonResult;
                 }
 
-                ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "QC_WorkSelfCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                ClsPub.CurUserName = user;             
+                DAL.ClsQC_WorkSelfCheckBill oBill = new DAL.ClsQC_WorkSelfCheckBill();
+                oBill.MvarItemKey = "QC_WorkSelfCheckBillMain";
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(long.Parse(HInterID), ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -506,42 +544,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -549,25 +555,113 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //Type 1 瀹℃牳  2  鍙嶅鏍�
+                if (Type == 1)
+                {
+                    oCN.BeginTran();
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_WorkSelfCheckBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_WorkSelfCheckBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_WorkSelfCheckBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_QC_WorkSelfCheckBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_WorkSelfCheckBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_QC_WorkSelfCheckBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -608,57 +702,47 @@
                 }
 
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "QC_WorkSelfCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);              
+                DAL.ClsQC_WorkSelfCheckBill oBill = new DAL.ClsQC_WorkSelfCheckBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -666,55 +750,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_WorkSelfCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_WorkSelfCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_WorkSelfCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_WorkSelfCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_WorkSelfCheckBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_WorkSelfCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
@@ -890,13 +1020,58 @@
 
 
                 //寮�濮嬩簨鐗�
-                oCN.BeginTran();    
+                oCN.BeginTran();                   
+
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                string sql1 = "exec h_p_QC_WorkSelfCheckBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql1, "h_p_QC_WorkSelfCheckBill_BeforeDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //==================================================================================  
 
                 oCN.RunProc("Delete From QC_WorkSelfCheckBillMain where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_WorkSelfCheckBillSub where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_WorkSelfCheckBillSub_ValueGrid where HInterID = " + HInterID);
                 oCN.RunProc("Delete From QC_WorkSelfCheckBillSub_Result where HInterID = " + HInterID);
-            
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_QC_WorkSelfCheckBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                ds = oCN.RunProcReturn(sql2, "h_p_QC_WorkSelfCheckBill_AfterDelCtrl");
+                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================   
+
                 //鎻愪氦浜嬪姟
                 oCN.Commit();
                 objJsonResult.code = "1";
diff --git "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs" "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
index 2217daa..fd67d27 100644
--- "a/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
+++ "b/WebAPI/Controllers/\345\223\201\350\264\250\347\256\241\347\220\206/\351\246\226\344\273\266\346\243\200\351\252\214\345\215\225/QC_FirstPieceCheckBillController.cs"
@@ -769,52 +769,49 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                 ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "QC_FirstPieceCheckBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
+                DAL.ClsQC_FirstPieceCheckBill oBill = new DAL.ClsQC_FirstPieceCheckBill();
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+                BillOld.MvarItemKey = "QC_FirstPieceCheckBillMain";
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                       
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -822,48 +819,101 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                      
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_QC_FirstPieceCheckBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_FirstPieceCheckBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_FirstPieceCheckBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_QC_FirstPieceCheckBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_QC_FirstPieceCheckBill_BeforeUnCloseCtrl    ");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_QC_FirstPieceCheckBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
 
             }
             catch (Exception e)
diff --git "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_DisposeWayController.cs" "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_DisposeWayController.cs"
index 95c2fcc..144a73d 100644
--- "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_DisposeWayController.cs"
+++ "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_DisposeWayController.cs"
@@ -55,32 +55,20 @@
                     ds = oCN.RunProcReturn(sql, "h_v_Gy_DisposeWayList");
                 }
 
-                if (ds.Tables[0].Rows.Count != 0 && ds != null)
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
                 {
-                    //娣诲姞鍒楀悕
-                    foreach (DataColumn col in ds.Tables[0].Columns)
-                    {
-                        Type dataType = col.DataType;
-                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
-                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
-                    }
-
-                    objJsonResult.code = "1";
-                    objJsonResult.count = 1;
-                    objJsonResult.Message = "Sucess锛�";
-                    objJsonResult.data = ds.Tables[0];
-                    objJsonResult.list = columnNameList;
-                    return objJsonResult;
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
                 }
-                else
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "娌℃湁鏌ヨ鍒版暟鎹紒";
-                    objJsonResult.data = ds.Tables[0];
-                    objJsonResult.list = columnNameList;
-                    return objJsonResult;
-                }                              
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
             }
             catch (Exception e)
             {
diff --git "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_MaterTypeBillController.cs" "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_MaterTypeBillController.cs"
index 498d545..670382b 100644
--- "a/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_MaterTypeBillController.cs"
+++ "b/WebAPI/Controllers/\345\237\272\347\241\200\350\265\204\346\226\231/\345\237\272\347\241\200\350\265\204\346\226\231/Gy_MaterTypeBillController.cs"
@@ -872,7 +872,7 @@
         {
             try
             {
-                string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_MaterType where HUSEORGID = '" + HOrgID + "' order by hnumber");
+                string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel,hhelpcode from Gy_MaterType where HUSEORGID = '" + HOrgID + "' order by hhelpcode");
 
                 ds = oCN.RunProcReturn(sql1, "Gy_MaterType");
 
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
index 13636b3..9c6f0e4 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
@@ -3,6 +3,7 @@
 using NPOI.HSSF.UserModel;
 using NPOI.SS.UserModel;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -95,6 +96,62 @@
             }
 
         }
+
+
+        #region 寮�宸ュ崟 鍒嗛〉鍒楄〃
+        [Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBillPage")]
+        [HttpGet]
+        public json GetMESBeginStepWorkBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("MES_MESBeginWorkBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESBeginWorkBillList " + page + "," + size + ",''", "h_p_Sc_MESBeginWorkBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESBeginWorkBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_MESBeginWorkBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
 
         #endregion
 
@@ -406,6 +463,333 @@
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "瀹℃牳澶辫触鎴栬�呭弽瀹℃牳澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮�宸ュ崟 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESBeginStepWorkBill/CloseSc_MESBeginWorkBill")]
+        [HttpGet]
+        public object CloseSc_MESBeginWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESBeginWorkBill_Close";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍏抽棴澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();             //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (IsAudit == 0) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_MESBeginWorkBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESBeginWorkBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_MESBeginWorkBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESBeginWorkBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 寮�宸ュ崟 浣滃簾/鍙嶄綔搴�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">浣滃簾(0),鍙嶄綔搴�(1)</param>
+        /// <param name="CurUserName">浣滃簾浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESBeginStepWorkBill/DeleteSc_MESBeginWorkBill")]
+        [HttpGet]
+        public object DeleteSc_MESBeginWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESBeginWorkBill_Delete";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "浣滃簾澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();             //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HChecker.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //浣滃簾鍒ゆ柇
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶄綔搴燂紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶄綔搴熷垽鏂�
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸弽浣滃簾锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑浣滃簾/鍙嶄綔搴熸搷浣�
+                if (IsAudit == 0) //浣滃簾鎻愪氦
+                {
+                    //浣滃簾鎻愪氦
+                    if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "浣滃簾鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶄綔搴熸垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "浣滃簾澶辫触鎴栬�呭弽浣滃簾澶辫触锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
             }
@@ -1207,7 +1591,7 @@
                 oCN.Commit();
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
-                objJsonResult.Message = "鍒犻櫎浜ч噺姹囨姤鍗曟垚鍔燂紒";
+                objJsonResult.Message = "鍒犻櫎鎴愬姛锛�";
                 objJsonResult.data = ds;
                 return objJsonResult;
             }
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESEndStepWorkBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESEndStepWorkBillController.cs"
index 4382e02..252156a 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESEndStepWorkBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESEndStepWorkBillController.cs"
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -87,6 +88,62 @@
         }
 
         #endregion
+
+        #region 瀹屽伐鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESEndStepWorkBill/GetSc_MESEndWorkBillPage")]
+        [HttpGet]
+        public json GetSc_MESEndWorkBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("MES_MESEndWorkBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESEndWorkBillList " + page + "," + size + ",''", "h_p_Sc_MESEndWorkBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESEndWorkBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_MESEndWorkBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
+            }
+        }
+        #endregion
+
 
         #region[瀹屽伐鍗曠紪杈戞椂鑾峰彇琛ㄥご鏁版嵁]
         [Route("Sc_MESEndStepWorkBill/Sc_MESEndWorkBillListCheckDetai")]
@@ -505,6 +562,333 @@
         }
         #endregion
 
+        #region 瀹屽伐鍗� 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESEndStepWorkBill/CloseSc_MESEndWorkBill")]
+        [HttpGet]
+        public object CloseSc_MESEndWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESEndWorkBill_Close";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍏抽棴澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESEndWorkBill oBill = new DLL.ClsSc_MESEndWorkBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (IsAudit == 0) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_MESEndWorkBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESEndWorkBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESEndWorkBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_MESEndWorkBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESEndWorkBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESEndWorkBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 瀹屽伐鍗� 浣滃簾/鍙嶄綔搴�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">浣滃簾(0),鍙嶄綔搴�(1)</param>
+        /// <param name="CurUserName">浣滃簾浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESEndStepWorkBill/DeleteSc_MESEndWorkBill")]
+        [HttpGet]
+        public object DeleteSc_MESEndWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESEndWorkBill_Delete";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "浣滃簾澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESEndWorkBill oBill = new DLL.ClsSc_MESEndWorkBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HChecker.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //浣滃簾鍒ゆ柇
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶄綔搴燂紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶄綔搴熷垽鏂�
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸弽浣滃簾锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑浣滃簾/鍙嶄綔搴熸搷浣�
+                if (IsAudit == 0) //浣滃簾鎻愪氦
+                {
+                    //浣滃簾鎻愪氦
+                    if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "浣滃簾鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶄綔搴熸垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "浣滃簾澶辫触鎴栬�呭弽浣滃簾澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         #endregion
 
 
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESProductReportStepBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESProductReportStepBillController.cs"
index 62ca1aa..9aba3c2 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESProductReportStepBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESProductReportStepBillController.cs"
@@ -145,7 +145,7 @@
         #endregion
 
 
-        #region 璐ㄩ噺姹囨姤鍗� 鍒嗛〉鍒楄〃
+        #region 浜ч噺姹囨姤鍗� 鍒嗛〉鍒楄〃
         [Route("Sc_MESProductReportStepBill/Get_Sc_MESProductReportBillPage")]
         [HttpGet]
         public json Get_Sc_MESProductReportBillPage(string sWhere, string user, int page, int size)
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESStopStepWorkBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESStopStepWorkBillController.cs"
index a68007b..a196ff6 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESStopStepWorkBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESStopStepWorkBillController.cs"
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Pub_Class;
+using SyntacticSugar.constant;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -76,6 +77,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鍋滃伐鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MESStopStepWorkBill/GetSc_MESStopStepWorkBillPage")]
+        [HttpGet]
+        public json GetSc_MESStopStepWorkBillPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("MES_MESStopWorkBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESStopWorkBillList " + page + "," + size + ",''", "h_p_Sc_MESStopWorkBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MESStopWorkBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_MESStopWorkBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -497,6 +553,332 @@
         }
         #endregion
 
+        #region 鍋滃伐鍗� 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESStopStepWorkBill/CloseSc_MESStopStepWorkBill")]
+        [HttpGet]
+        public object CloseSc_MESStopStepWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESStopWorkBill_Close";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍏抽棴澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESStopWorkBill oBill = new DLL.ClsSc_MESStopWorkBill();            //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (IsAudit == 0) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_MESStopStepWorkBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESStopStepWorkBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESStopStepWorkBill_AfterCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_MESStopStepWorkBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESStopStepWorkBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESStopStepWorkBill_AfterUnCloseCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鍋滃伐鍗� 浣滃簾/鍙嶄綔搴�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="IsAudit">浣滃簾(0),鍙嶄綔搴�(1)</param>
+        /// <param name="CurUserName">浣滃簾浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MESStopStepWorkBill/DeleteSc_MESStopStepWorkBill")]
+        [HttpGet]
+        public object DeleteSc_MESStopStepWorkBill(int HInterID, int IsAudit, string CurUserName)
+        {
+            string ModRightNameCheck = "MES_MESStopWorkBill_Delete";
+            DBUtility.ClsPub.CurUserName = CurUserName;
+            try
+            {
+                //妫�鏌ユ潈闄�
+                if (!DBUtility.ClsPub.Security_Log_second(ModRightNameCheck, 1, false, CurUserName))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "浣滃簾澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //HInterID鏁版嵁鍒ゆ柇
+                if (HInterID <= 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID灏忎簬0锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DLL.ClsSc_MESStopWorkBill oBill = new DLL.ClsSc_MESStopWorkBill();             //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HChecker.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (IsAudit == 0)  //浣滃簾鍒ゆ柇
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶄綔搴燂紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (IsAudit == 1) //鍙嶄綔搴熷垽鏂�
+                    {
+                        if (oBill.omodel.HDeleteMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸弽浣滃簾锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑浣滃簾/鍙嶄綔搴熸搷浣�
+                if (IsAudit == 0) //浣滃簾鎻愪氦
+                {
+                    //浣滃簾鎻愪氦
+                    if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "浣滃簾鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (IsAudit == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶄綔搴熸垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "浣滃簾澶辫触鎴栬�呭弽浣滃簾澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
         #endregion
 
         #region 鎶ュ伐骞冲彴鍋滃伐鍗�(璧板伐搴�)淇濆瓨/缂栬緫
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MaterToSourceStepBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MaterToSourceStepBillController.cs"
index bb8c150..cf29208 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MaterToSourceStepBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MaterToSourceStepBillController.cs"
@@ -8,6 +8,8 @@
 using System.Data.SqlClient;
 using System.Web.Http;
 using WebAPI.Models;
+using Newtonsoft.Json;
+using SyntacticSugar.constant;
 
 namespace WebAPI.Controllers
 {
@@ -83,6 +85,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 涓婃枡闃查敊鍗� 鍒嗛〉鍒楄〃
+        [Route("Sc_MaterToSourceStepBill/get锘縎c_MaterToSourceStepBillListPage")]
+        [HttpGet]
+        public json Sc_MaterToSourceStepBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_MaterToSourceStepBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MaterToSourceBillList " + page + "," + size + ",''", "h_p_Sc_MaterToSourceBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_MaterToSourceBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_MaterToSourceBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -197,7 +254,33 @@
                     return objJsonResult;
                 }
 
-                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                DataSet Ds;
+
+                string sql1 = "exec h_p_Sc_MaterToSourceBill_BeforeDelCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + UserName + "'";
+                Ds = oCN.RunProcReturn(sql1, "h_p_Sc_MaterToSourceBill_BeforeDelCtrl");
+                if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==================================================================================   
+
+                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_MaterToSourceBill_AfterDelCtrl", UserName, ref DBUtility.ClsPub.sExeReturnInfo);
                 if (IsDete)
                 {
                     objJsonResult.code = "0";
@@ -729,9 +812,33 @@
                 }
                 if (IsAudit == 0) //瀹℃牳鎻愪氦
                 {
-                    //瀹℃牳鎻愪氦
-                    if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_MaterToSourceBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MaterToSourceBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                     {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_MaterToSourceBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {                    
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
                         objJsonResult.Message = "瀹℃牳鎴愬姛";
@@ -749,8 +856,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅鏍告彁浜�
                 {
+                        //鍙嶅鏍稿墠鎺у埗=========================================        
+                        string sql1 = "exec h_p_Sc_MaterToSourceBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                        ds = oCN.RunProcReturn(sql1, "h_p_Sc_MaterToSourceBill_BeforeUnCheckCtrl");
+                        if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+
+                        }
+                        if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    //===========================================================          
+
                     //鍙嶅鏍告彁浜bandonCheck
-                    if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_MaterToSourceBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -779,5 +908,327 @@
             }
         }
         #endregion
+
+        #region 涓婃枡闃查敊鍗� 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="Type">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
+        [Route("Sc_MaterToSourceStepBill/CloseSc_MaterToSourceBill")]
+        [HttpGet]
+        public object CloseSc_MaterToSourceBill(string HInterID, int Type, string user)
+        {
+
+            try
+            {
+                //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Sc_MaterToSourceStepBill_Close", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愬叧闂�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();          //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
+                {
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (oBill.omodel.HChecker.Trim() == "")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 0)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    if (Type == 1) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 0) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_MaterToSourceBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MaterToSourceBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MaterToSourceBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 1) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_MaterToSourceBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_MaterToSourceBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MaterToSourceBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 涓婃枡闃查敊鍗� 浣滃簾/鍙嶄綔搴熷姛鑳�
+        [Route("Sc_MaterToSourceStepBill/DropSc_MaterToSourceBill")]
+        [HttpGet]
+        public object DropSc_MaterToSourceBill(string HInterID, int Type, string user)
+        {
+            try
+            {
+                //鍒ゆ柇鏄惁鏈変綔搴熸潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Sc_MaterToSourceStepBill_Delete", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愪綔搴�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (string.IsNullOrWhiteSpace(HInterID))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "HInterID涓虹┖锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                ClsPub.CurUserName = user;
+                BillOld.MvarItemKey = "Sc_MaterToSourceBillMain";
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //Type 0 浣滃簾  1  鍙嶄綔搴�
+                if (Type == 0)
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡浣滃簾
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶉渶瑕佸啀浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //浣滃簾鍗曟嵁
+                        if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "浣滃簾澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+                else
+                {
+                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶄綔搴�
+                    DataSet ds;
+                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
+                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
+                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    {
+                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁宸插鏍�!涓嶈兘杩涜浣滃簾!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "鍗曟嵁鏈綔搴�!涓嶉渶瑕佸啀鍙嶄綔搴�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //鍙嶄綔搴熷崟鎹�
+                        if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鍙嶄綔搴熷け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                }
+
+                oCN.Commit();//鎻愪氦浜嬪姟
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎵ц鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult; ;
+
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion     
+
+
     }
 }
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\217\255\346\254\241\345\274\200\347\217\255\345\215\225/Sc_ShiftsBeginInfoBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\217\255\346\254\241\345\274\200\347\217\255\345\215\225/Sc_ShiftsBeginInfoBillController.cs"
index 11658ca..6ccab38 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\217\255\346\254\241\345\274\200\347\217\255\345\215\225/Sc_ShiftsBeginInfoBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\347\217\255\346\254\241\345\274\200\347\217\255\345\215\225/Sc_ShiftsBeginInfoBillController.cs"
@@ -2,6 +2,7 @@
 using Model;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using SyntacticSugar.constant;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -76,6 +77,61 @@
                 objJsonResult.Message = "Exception锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐝寮�鐝崟 鍒嗛〉鍒楄〃
+        [Route("Sc_ShiftsBeginInfoBill/get锘縎c_ShiftsBeginInfoBillListPage")]
+        [HttpGet]
+        public json Sc_ShiftsBeginInfoBillListPage(string sWhere, string user, int page, int size)
+        {
+            DataSet ds;
+            json res = new json();
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鍒ゆ柇鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Sc_ShiftsBeginInfoBill_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳潈闄愭煡璇紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                sWhere = sWhere.Replace("'", "''");
+                if (sWhere == null || sWhere.Equals(""))
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_ShiftsBeginInfoBillList " + page + "," + size + ",''", "h_p_Sc_ShiftsBeginInfoBillList");
+                }
+                else
+                {
+                    ds = oCN.RunProcReturn("exec h_p_Sc_ShiftsBeginInfoBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Sc_ShiftsBeginInfoBillList");
+                }
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                res.code = CodeConstant.SUCCEED;
+                res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString());
+                res.Message = "Sucess锛�";
+                res.list = columnNameList;
+                res.data = ds.Tables[0];
+                return res;
+            }
+            catch (Exception e)
+            {
+                res.code = CodeConstant.FAIL;
+                res.count = CountConstant.FAIL;
+                res.Message = "Exception锛�" + e.ToString();
+                res.data = null;
+                return res;
             }
         }
         #endregion
@@ -293,6 +349,7 @@
         {
             try
             {
+                string s = "";
                 //鏌ョ湅鏉冮檺
                 if (!DBUtility.ClsPub.Security_Log("Sc_ShiftsBeginInfoBill_Delete", 1, false, user))
                 {
@@ -311,13 +368,80 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
+                DAL.ClsSc_ShiftsBeginInfoBill BillOld = new DAL.ClsSc_ShiftsBeginInfoBill();
+                if (BillOld.ShowBill(long.Parse(HInterID), ref s) == false)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹湁璇紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鍙垹闄�
+                if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "姝ゅ崟鎹凡缁忚瀹℃牳锛屼笉鍏佽鍒犻櫎锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
+                //鍒ゆ柇鏄惁鏄垱寤虹姸鎬佽繘琛屽垹闄�
+                if (int.Parse(BillOld.omodel.HBillStatus.ToString()) <= 1)
+                {
+                    oCN.BeginTran();
 
-                oCN.BeginTran();
+                    //鍒犻櫎鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
 
-                oCN.RunProc("delete from Sc_ShiftsBeginInfoBillMain where HInterID = " + HInterID);
-                oCN.RunProc("delete from Sc_ShiftsBeginInfoBillSub where HInterID = " + HInterID);
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================  
 
-                oCN.Commit();
+
+                    oCN.RunProc("delete from Sc_ShiftsBeginInfoBillMain where HInterID = " + HInterID);
+                    oCN.RunProc("delete from Sc_ShiftsBeginInfoBillSub where HInterID = " + HInterID);
+
+                    //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                    string sql2 = "exec h_p_Sc_ShiftsBeginInfoBill_AfterDelCtrl " + BillOld.omodel.HInterID + ",'" + BillOld.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql2, "h_p_Sc_ShiftsBeginInfoBill_AfterDelCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍚庡垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {                      
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString();
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==============================================================================================                                
+
+                    oCN.Commit();
+                }
 
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
@@ -334,13 +458,15 @@
                 return objJsonResult;
             }
         }
-        #endregion
+        #endregion    
 
-        #region 鐝寮�鐝崟 瀹℃牳/鍙嶅鏍�     
+        #region 鐝寮�鐝崟 瀹℃牳/鍙嶅鏍�       
         [Route("Sc_ShiftsBeginInfoBill/AuditSc_ShiftsBeginInfoBill")]
         [HttpGet]
-        public object AuditSc_ShiftsBeginInfoBill(string HInterID, int Type, string user)
+        public object AuditXs_SeQuotationBillMain(string HInterID, int Type, string user)
         {
+          
+            DBUtility.ClsPub.CurUserName = user;
             try
             {
                 //鍒ゆ柇鏄惁鏈夊鏍告潈闄�
@@ -362,44 +488,33 @@
                     return objJsonResult;
                 }
 
-                ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Sc_ShiftsBeginInfoBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
 
-                //Type 1 瀹℃牳  2  鍙嶅鏍�
-                if (Type == 1)
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsSc_ShiftsBeginInfoBill oBill = new DAL.ClsSc_ShiftsBeginInfoBill();                   //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡瀹℃牳
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HCloseMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //瀹℃牳鍒ゆ柇
+                    {
+                        if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -407,42 +522,10 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //瀹℃牳鍗曟嵁
-                        if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
-                }
-                else
-                {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅鏍�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (Type == 2) //鍙嶅鏍稿垽鏂�
                     {
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍙嶅鏍革紒";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                        if (oBill.omodel.HChecker.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
@@ -450,43 +533,140 @@
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        //鍙嶅鏍稿崟鎹�
-                        if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
                     }
                 }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑瀹℃牳/鍙嶅鏍告搷浣�
+                if (Type == 1) //瀹℃牳鎻愪氦
+                {                  
 
+                    oCN.BeginTran();
+
+                    //瀹℃牳鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //瀹℃牳鎻愪氦
+                    if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        oCN.Commit();
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳鎴愬姛锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅鏍告彁浜�
+                {
+                    
+                    //鍙嶅鏍稿墠鎺у埗=========================================        
+                    string sql1 = "exec h_p_Xs_SeQuotationBill_BeforeUnCheckCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //===========================================================          
+
+                    //鍙嶅鏍告彁浜bandonCheck
+                    if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterUnCheckCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅鏍告垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅鏍稿け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
             }
             catch (Exception e)
             {
+                oCN.RollBack();
+
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
-                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.Message = "瀹℃牳澶辫触鎴栬�呭弽瀹℃牳澶辫触锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
             }
         }
         #endregion
 
-        #region 鐝寮�鐝崟 鍏抽棴/鍙嶅叧闂姛鑳�
+        #region 鐝寮�鐝崟 鍏抽棴/鍙嶅叧闂�
+        /// <summary>
+        /// </summary>
+        /// <param name="HInterID">鍗曟嵁ID</param>
+        /// <param name="Type">鍏抽棴(0),鍙嶅叧闂�(1)</param>
+        /// <param name="CurUserName">鍏抽棴浜�</param>
+        /// <returns></returns>
         [Route("Sc_ShiftsBeginInfoBill/CloseSc_ShiftsBeginInfoBill")]
         [HttpGet]
         public object CloseSc_ShiftsBeginInfoBill(string HInterID, int Type, string user)
         {
+           
             try
             {
                 //鍒ゆ柇鏄惁鏈夊垹闄ゆ潈闄�
@@ -508,58 +688,49 @@
                     return objJsonResult;
                 }
 
-                ClsPub.CurUserName = user;
-                BillOld.MvarItemKey = "Sc_ShiftsBeginInfoBillMain";
-                oCN.BeginTran();//寮�濮嬩簨鍔�
 
-                //Type 1 鍏抽棴  2  鍙嶅叧闂�
-                if (Type == 1)
+
+                Int64 lngBillKey = 0;
+                lngBillKey = DBUtility.ClsPub.isLong(HInterID);                                         //瀵笻InterID杩涜绫诲瀷鐨勮浆鎹�
+                DAL.ClsSc_ShiftsBeginInfoBill oBill = new DAL.ClsSc_ShiftsBeginInfoBill();           //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
+
+                //閽堝闇�瑕佽繘琛岀殑鎿嶄綔锛屾楠屽綋鍓嶅崟鎹殑鐘舵�佹槸鍚︽敮鎸侀渶瑕佽繘琛岀殑鎿嶄綔
+                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //鏍规嵁HInterID鑾峰彇璇ュ崟鎹殑鏁版嵁
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍏抽棴
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds == null || ds.Tables[0].Rows.Count == 0)
+                    if (oBill.omodel.HDeleteMan.Trim() != "")
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦紒";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴锛�";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
+                    if (oBill.omodel.HChecker.Trim() == "")
                     {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴锛�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    if (Type == 1)  //鍏抽棴鍒ゆ柇
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() != "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
+                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                    }
+                    if (Type == 2) //鍙嶅叧闂垽鏂�
+                    {
+                        if (oBill.omodel.HCloseMan.Trim() == "")
                         {
                             objJsonResult.code = "0";
                             objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍏抽棴鍗曟嵁
-                        if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ClsPub.sExeReturnInfo;
+                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸弽鍏抽棴锛�";
                             objJsonResult.data = null;
                             return objJsonResult;
                         }
@@ -567,62 +738,107 @@
                 }
                 else
                 {
-                    //鍒ゆ柇鍗曟嵁鏄惁宸茬粡鍙嶅叧闂�
-                    DataSet ds;
-                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
-                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
-                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
-                    {
-                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈鏍�!涓嶈兘杩涜鍏抽棴!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 0;
-                            objJsonResult.Message = "鍗曟嵁鏈叧闂�!涓嶉渶瑕佸啀鍙嶅叧闂�!";
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                        //鍙嶅叧闂崟鎹�
-                        if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
-                        {
-                            objJsonResult.code = "0";
-                            objJsonResult.count = 1;
-                            objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ClsPub.sExeReturnInfo;
-                            objJsonResult.data = null;
-                            return objJsonResult;
-                        }
-                    }
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                    objJsonResult.data = null;
+                    return objJsonResult;
                 }
 
-                oCN.Commit();//鎻愪氦浜嬪姟
 
-                objJsonResult.code = "0";
-                objJsonResult.count = 1;
-                objJsonResult.Message = "鎵ц鎴愬姛锛�";
-                objJsonResult.data = null;
-                return objJsonResult; ;
+                //杩涜闇�瑕佽繘琛岀殑鍏抽棴/鍙嶅叧闂搷浣�
+                if (Type == 1) //鍏抽棴鎻愪氦
+                {
+                    //鍏抽棴鍓嶆帶鍒�=========================================      
+                    string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:鍏抽棴鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
 
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+                    //鍏抽棴鎻愪氦
+                    if (oBill.CloseBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍏抽棴鎴愬姛";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍏抽棴澶辫触!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                if (Type == 2) //鍙嶅叧闂彁浜�
+                {
+                    //鍙嶅叧闂墠鎺у埗=========================================      
+                    string sql1 = "exec h_p_Sc_ShiftsBeginInfoBill_BeforeUnCloseCtrl " + oBill.omodel.HInterID + ",'" + oBill.omodel.HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql1, "h_p_Sc_ShiftsBeginInfoBill_BeforeUnCloseCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:鍙嶅叧闂墠鍒ゆ柇澶辫触锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //==================================================================================      
+
+
+                    //鍙嶅叧闂彁浜�
+                    if (oBill.CancelClose(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ShiftsBeginInfoBill_AfterUnCloseCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙嶅叧闂垚鍔�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍙嶅叧闂け璐�!鍘熷洜:" + DBUtility.ClsPub.sExeReturnInfo;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                return objJsonResult;
             }
             catch (Exception e)
             {
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
-                objJsonResult.Message = "鎵ц澶辫触锛�" + e.ToString();
+                objJsonResult.Message = "鍏抽棴澶辫触鎴栬�呭弽鍏抽棴澶辫触锛�" + e.ToString();
                 objJsonResult.data = null;
                 return objJsonResult;
             }
diff --git a/WebAPI/DLL/ClsGy_Material_Ctl.cs b/WebAPI/DLL/ClsGy_Material_Ctl.cs
index abc62a5..300ac4d 100644
--- a/WebAPI/DLL/ClsGy_Material_Ctl.cs
+++ b/WebAPI/DLL/ClsGy_Material_Ctl.cs
@@ -25,7 +25,7 @@
                     ",HHighStock,HLowStock,HSafeStock,HOrderPrice,HSalePrice" +
                     ",HKeepDays,HPlanPrice,HstdPrice,HQtyMin,HQtyMax" +
                     ",HSubjoin,HSubjoin2,HColor,HVersion,HEngName,HEngModel,HPropertyTypeID,HSPGroupID,HSPID,HMinPickQty,HUSEORGID,HERPItemID" +
-                    ",HSALEUNITID,HSALEPRICEUNITID,HBASEUNITID,HSTOREUNITID,HCHECKINCOMING,HCHECKPRODUCT,HPERUNITSTANDHOUR" +
+                    ",HSALEUNITID,HSALEPRICEUNITID,HBASEUNITID,HSTOREUNITID,HPOUnitID,HCHECKINCOMING,HCHECKPRODUCT,HPERUNITSTANDHOUR" +
                     ",HSTDLABORPREPARETIME,HSTDMACHINEPREPARETIME,HWidth,HWeight,HColorRemark,HQCSchemeID_Fst,HQCSchemeID_Proc,HQCSchemeID_Patrol" +
                     ",HMaterRuleType,HColorNo,HPieceMaxQty,HCommonUseFlag,HAvgStockPrice,HFootPrice,HTaxCost,HNoTaxCost,HOnceRightRate" +
                     ",HHeight_M,HInches_M,HAl1Long_M,HDensity_M,HTela_M,HUnderTela_M,HSizing_M,HQtyDec,HPriceDec,HMoneyDec,HTaxRate,HProfitRate" +
@@ -38,7 +38,7 @@
                     ", " + oModel.HWhID.ToString() + "," + oModel.HRoutingID.ToString() + "," + oModel.HBomID.ToString() + "," + oModel.HSecUnitID.ToString() + "," + oModel.HSecUnitRate.ToString() +
                     ", " + oModel.HHighStock.ToString() + "," + oModel.HLowStock.ToString() + "," + oModel.HSafeStock.ToString() + "," + oModel.HOrderPrice.ToString() + ",'" + oModel.HSalePrice + "'" +
                     ", " + oModel.HKeepDays.ToString() + "," + oModel.HPlanPrice.ToString() + "," + oModel.HstdPrice.ToString() + "," + oModel.HQtyMin.ToString() + "," + oModel.HQtyMax.ToString() +
-                    ",'" + oModel.HSubjoin + "','" + oModel.HSubjoin2 + "','" + oModel.HColor + "','" + oModel.HVersion + "','" + oModel.HEngName + "','" + oModel.HEngModel + "'," + oModel.HPropertyTypeID.ToString() + "," + oModel.HSPGroupID.ToString() + "," + oModel.HSPID.ToString() + "," + oModel.HMinPickQty.ToString() + "," + oModel.HUSEORGID + "," + oModel.HERPItemID + "," + oModel.HSALEUNITID + "," + oModel.HSALEPRICEUNITID + "," + oModel.HBASEUNITID + "," + oModel.HSTOREUNITID + "," + oModel.HCHECKINCOMING + "," + oModel.HCHECKPRODUCT + "," + oModel.HPERUNITSTANDHOUR + "," + oModel.HSTDLABORPREPARETIME + "," + oModel.HSTDMACHINEPREPARETIME + ","+ oModel.HWidth + "," + oModel.HWeight + ",'"+ oModel.HColorRemark + "'," + oModel.HQCSchemeID_Fst + ","
+                    ",'" + oModel.HSubjoin + "','" + oModel.HSubjoin2 + "','" + oModel.HColor + "','" + oModel.HVersion + "','" + oModel.HEngName + "','" + oModel.HEngModel + "'," + oModel.HPropertyTypeID.ToString() + "," + oModel.HSPGroupID.ToString() + "," + oModel.HSPID.ToString() + "," + oModel.HMinPickQty.ToString() + "," + oModel.HUSEORGID + "," + oModel.HERPItemID + "," + oModel.HSALEUNITID + "," + oModel.HSALEPRICEUNITID + "," + oModel.HBASEUNITID + "," + oModel.HSTOREUNITID + "," + oModel.HPOUnitID + "," + oModel.HCHECKINCOMING + "," + oModel.HCHECKPRODUCT + "," + oModel.HPERUNITSTANDHOUR + "," + oModel.HSTDLABORPREPARETIME + "," + oModel.HSTDMACHINEPREPARETIME + ","+ oModel.HWidth + "," + oModel.HWeight + ",'"+ oModel.HColorRemark + "'," + oModel.HQCSchemeID_Fst + ","
                        + oModel.HQCSchemeID_Proc + "," + oModel.HQCSchemeID_Patrol + "" +
                        ",'"+ oModel.HMaterRuleType + "','"+ oModel.HColorNo + "','" + oModel.HPieceMaxQty.ToString() + "','" + oModel.HCommonUseFlag.ToString() + "','" + oModel.HAvgStockPrice.ToString() + "','" + oModel.HFootPrice.ToString() + "','" + oModel.HTaxCost.ToString() + "','" + oModel.HNoTaxCost.ToString() + "'," + oModel.HOnceRightRate + "" +
                        ",'" + oModel.HHeight_M + "'" +
@@ -193,6 +193,7 @@
                     ",HSALEPRICEUNITID=" + oModel.HSALEPRICEUNITID.ToString() +
                     ",HBASEUNITID=" + oModel.HBASEUNITID.ToString() +
                     ",HSTOREUNITID=" + oModel.HSTOREUNITID.ToString() +
+                    ",HPOUnitID=" + oModel.HPOUnitID.ToString() + 
                     ",HCHECKINCOMING=" + oModel.HCHECKINCOMING.ToString() +
                     ",HCHECKPRODUCT=" + oModel.HCHECKPRODUCT.ToString() +
                     ",HPERUNITSTANDHOUR=" + oModel.HPERUNITSTANDHOUR.ToString() +
diff --git a/WebAPI/DLL/ClsOA_ErrMsgBackBill.cs b/WebAPI/DLL/ClsOA_ErrMsgBackBill.cs
index 06a336f..e3eab55 100644
--- a/WebAPI/DLL/ClsOA_ErrMsgBackBill.cs
+++ b/WebAPI/DLL/ClsOA_ErrMsgBackBill.cs
@@ -40,6 +40,23 @@
             {
                 //
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                DataSet ds = oCn.RunProcReturn("Exec h_p_OA_ErrMsgBackBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2", "h_p_OA_ErrMsgBackBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
+
                 //鏇存柊涓昏〃
                 oCn.RunProc("UpDate OA_ErrMsgBackBillMain set  " +
                 " HBillNo='" + omodel.HBillNo + "'" +  //鍥哄畾璧嬪��===============
@@ -121,6 +138,23 @@
                 //    }
                 //}
                 sReturn = "淇敼鍗曟嵁鎴愬姛锛�";
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_OA_ErrMsgBackBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',2 ", "h_p_OA_ErrMsgBackBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 oCn.Commit();
                 return true;
             }
@@ -136,10 +170,26 @@
         {
             try
             {
-                //寰楀埌mainid
-                //omodel.HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                DataSet ds;
+               
                 //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
                 oCn.BeginTran();
+
+                //淇濆瓨鍓嶆帶鍒�=========================================
+                string HBillNote = "";
+                ds = oCn.RunProcReturn("Exec h_p_OA_ErrMsgBackBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',1 ", "h_p_OA_ErrMsgBackBill_BeforeSaveCtrl");
+                if (ds == null)
+                {
+                    sReturn = "淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
+                    return false;
+                }
+                //=========================================================
+
                 //涓昏〃
                 oCn.RunProc("Insert Into OA_ErrMsgBackBillMain   " +
                 "(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
@@ -196,6 +246,24 @@
                 //}
                 //
                 sReturn = omodel.HInterID.ToString();
+
+
+                //=========================淇濆瓨鍚庢帶鍒�  
+                DataSet ds2 = oCn.RunProcReturn("h_p_OA_ErrMsgBackBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "',1 ", "h_p_OA_ErrMsgBackBill_AfterSaveCtrl");
+                if (ds2 == null)
+                {
+                    sReturn = "淇濆瓨鍚庢帶鍒跺垽鏂け璐ワ紒";
+                    oCn.RollBack();
+                    return false;
+                }
+                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
+                {
+                    sReturn = "淇濆瓨澶辫触2锛�" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
+                    oCn.RollBack();
+                    return false;
+                }
+                //============================
+
                 oCn.Commit();
                 return true;
             }
diff --git a/WebAPI/ListModels.cs b/WebAPI/ListModels.cs
index f8a2596..7c4cd79 100644
--- a/WebAPI/ListModels.cs
+++ b/WebAPI/ListModels.cs
@@ -4487,6 +4487,21 @@
         }
         #endregion
 
+        #region 鐢熶骇棰嗘枡鍗�
+        public List<Model.ClsKf_ProductReceiveMaterialBillMain> getObjectByJson_Kf_ProductReceiveMaterialBillMain(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsKf_ProductReceiveMaterialBillMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsKf_ProductReceiveMaterialBillMain>>(jsonString);
+            return list;
+        }
+        public List<Model.ClsKf_ProductReceiveMaterialBillSub> getObjectByJson_Kf_ProductReceiveMaterialBillSub(string jsonString)
+        {
+            jsonString = "[" + jsonString.ToString() + "]";
+            List<Model.ClsKf_ProductReceiveMaterialBillSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsKf_ProductReceiveMaterialBillSub>>(jsonString);
+            return list;
+        }
+        #endregion
+
         #region 搴旀敹閫�娆惧崟
         /// <summary>
         /// 搴旀敹閫�娆惧崟涓昏〃json
diff --git a/WebAPI/Models/ClsGy_Material_Model.cs b/WebAPI/Models/ClsGy_Material_Model.cs
index 3493e85..341573b 100644
--- a/WebAPI/Models/ClsGy_Material_Model.cs
+++ b/WebAPI/Models/ClsGy_Material_Model.cs
@@ -56,6 +56,7 @@
         public int HSALEPRICEUNITID; //閿�鍞浠疯閲忓崟浣�(gy_unit)
         public int HBASEUNITID; //鍩烘湰璁¢噺鍗曚綅(gy_unit)
         public int HSTOREUNITID; //搴撳瓨璁¢噺鍗曚綅(gy_unit)
+        public int HPOUnitID;       //閲囪喘璁¢噺鍗曚綅(gy_unit)
         public int HCHECKINCOMING; //鏄惁鏉ユ枡妫�楠�
         public int HAuxPropFlag;  
         public int HCHECKPRODUCT; //鏄惁浜у搧妫�楠�
diff --git a/WebAPI/Models/ClsGy_Supplier_Link.cs b/WebAPI/Models/ClsGy_Supplier_Link.cs
new file mode 100644
index 0000000..b29da3a
--- /dev/null
+++ b/WebAPI/Models/ClsGy_Supplier_Link.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WebAPI.Models
+{
+    public class ClsGy_Supplier_Link
+    {
+
+        public Int64 HSupID;                //      int             --供应商 (Gy_Supplier)
+        public Int64 HSubID;                //      int             子内码
+        public Int64 HSubItemID;            //      int             自增列
+        public string HLinkMan;             //      varchar(50)     联系人
+        public string HLinkPhone;           //      varchar(50)     联系电话
+        public string HRemark;              //      varchar(500)    备注说明
+    }
+}
diff --git a/WebAPI/Models/QC_POStockInCheckBill.cs b/WebAPI/Models/QC_POStockInCheckBill.cs
index 76a2ea4..bcb068a 100644
--- a/WebAPI/Models/QC_POStockInCheckBill.cs
+++ b/WebAPI/Models/QC_POStockInCheckBill.cs
@@ -20,18 +20,18 @@
         public long HCheckFlowID { get; set; }
         public string HRemark { get; set; }
         public string HBacker { get; set; }
-        public DateTime HBackDate { get; set; }
+        //public DateTime HBackDate { get; set; }
         public string HBackRemark { get; set; }
         public string HChecker { get; set; }
-        public DateTime HCheckDate { get; set; }
+        //public DateTime HCheckDate { get; set; }
         public string HMaker { get; set; }
-        public DateTime HMakeDate { get; set; }
+        //public DateTime HMakeDate { get; set; }
         public string HUpDater { get; set; }
-        public DateTime HUpDateDate { get; set; }
+        //public DateTime HUpDateDate { get; set; }
         public string HCloseMan { get; set; }
-        public DateTime HCloseDate { get; set; }
+        //public DateTime HCloseDate { get; set; }
         public string HDeleteMan { get; set; }
-        public DateTime HDeleteDate { get; set; }
+        //public DateTime HDeleteDate { get; set; }
         public string HMainSourceBillType { get; set; }
         public long HMainSourceInterID { get; set; }
         public long HMainSourceEntryID { get; set; }
diff --git a/WebAPI/Properties/PublishProfiles/FolderProfile1.pubxml.user b/WebAPI/Properties/PublishProfiles/FolderProfile1.pubxml.user
index 9cc6f30..6af46dd 100644
--- a/WebAPI/Properties/PublishProfiles/FolderProfile1.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -9,7 +9,7 @@
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="bin/AlibabaCloud.EndpointUtil.dll">
       <publishTime>04/07/2020 16:33:48</publishTime>
@@ -45,28 +45,28 @@
       <publishTime>02/22/2013 16:43:40</publishTime>
     </File>
     <File Include="bin/BLL.dll">
-      <publishTime>02/12/2025 14:04:56</publishTime>
+      <publishTime>03/22/2025 14:12:34</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>02/12/2025 14:04:56</publishTime>
+      <publishTime>03/22/2025 14:12:34</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>02/12/2025 14:04:53</publishTime>
+      <publishTime>03/22/2025 14:12:31</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>02/12/2025 14:04:53</publishTime>
+      <publishTime>03/22/2025 14:12:31</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
     </File>
     <File Include="bin/DBUtility.dll">
-      <publishTime>02/12/2025 14:04:51</publishTime>
+      <publishTime>03/22/2025 14:12:23</publishTime>
     </File>
     <File Include="bin/DBUtility.pdb">
-      <publishTime>02/12/2025 14:04:51</publishTime>
+      <publishTime>03/22/2025 14:12:23</publishTime>
     </File>
     <File Include="bin/Grpc.Core.Api.dll">
       <publishTime>03/22/2022 13:17:26</publishTime>
@@ -93,7 +93,7 @@
       <publishTime>05/09/2021 01:08:30</publishTime>
     </File>
     <File Include="bin/Kingdee.BOS.WebApi.Client.dll">
-      <publishTime>02/08/2023 09:47:46</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="bin/libgrpc_csharp_ext.x64.dylib">
       <publishTime>03/19/2022 07:38:44</publishTime>
@@ -111,13 +111,13 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>02/12/2025 14:04:51</publishTime>
+      <publishTime>03/22/2025 14:12:25</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>02/12/2025 14:04:51</publishTime>
+      <publishTime>03/22/2025 14:12:25</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="bin/Newtonsoft.Json.dll">
       <publishTime>03/08/2023 15:09:56</publishTime>
@@ -147,34 +147,34 @@
       <publishTime>10/23/2021 17:07:54</publishTime>
     </File>
     <File Include="bin/Pub_Class.dll">
-      <publishTime>02/12/2025 14:04:49</publishTime>
+      <publishTime>03/22/2025 14:12:20</publishTime>
     </File>
     <File Include="bin/Pub_Class.pdb">
-      <publishTime>02/12/2025 14:04:49</publishTime>
+      <publishTime>03/22/2025 14:12:20</publishTime>
     </File>
     <File Include="bin/Pub_Control.dll">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:21</publishTime>
     </File>
     <File Include="bin/Pub_Control.pdb">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:21</publishTime>
     </File>
     <File Include="bin/RestSharp.dll">
       <publishTime>08/31/2012 06:22:50</publishTime>
     </File>
     <File Include="bin/SQLHelper.dll">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:22</publishTime>
     </File>
     <File Include="bin/SQLHelper.pdb">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:22</publishTime>
     </File>
     <File Include="bin/Swashbuckle.Core.dll">
       <publishTime>02/16/2015 01:57:08</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.dll">
-      <publishTime>02/12/2025 14:04:48</publishTime>
+      <publishTime>03/22/2025 14:12:17</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.pdb">
-      <publishTime>02/12/2025 14:04:48</publishTime>
+      <publishTime>03/22/2025 14:12:17</publishTime>
     </File>
     <File Include="bin/System.Buffers.dll">
       <publishTime>07/19/2017 18:01:28</publishTime>
@@ -252,7 +252,7 @@
       <publishTime>11/28/2018 21:01:00</publishTime>
     </File>
     <File Include="bin/System.Web.Http.WebHost.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="bin/System.Web.Mvc.dll">
       <publishTime>01/28/2015 12:02:18</publishTime>
@@ -285,22 +285,22 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:22</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>02/12/2025 14:04:50</publishTime>
+      <publishTime>03/22/2025 14:12:22</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>02/12/2025 14:05:00</publishTime>
+      <publishTime>03/22/2025 14:12:45</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>02/12/2025 14:05:00</publishTime>
+      <publishTime>03/22/2025 14:12:45</publishTime>
     </File>
     <File Include="bin/WebAPI.XmlSerializers.dll">
-      <publishTime>02/12/2025 14:05:04</publishTime>
+      <publishTime>03/22/2025 14:12:50</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
@@ -312,58 +312,58 @@
       <publishTime>11/29/2018 21:26:30</publishTime>
     </File>
     <File Include="Config/kdapi.config">
-      <publishTime>08/15/2022 15:46:13</publishTime>
+      <publishTime>04/06/2023 15:57:01</publishTime>
     </File>
     <File Include="Content/bootstrap.css">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:01</publishTime>
     </File>
     <File Include="Content/bootstrap.min.css">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:01</publishTime>
     </File>
     <File Include="Content/Site.css">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:01</publishTime>
     </File>
     <File Include="DLL/BLL.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/DAL.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/DBUtility.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/Kingdee.BOS.WebApi.Client.dll">
-      <publishTime>02/08/2023 09:47:46</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/Model.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/Newtonsoft.Json.Net35.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/Pub_Class.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/Pub_Control.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="DLL/SQLHelper.dll">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="fonts/glyphicons-halflings-regular.eot">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="fonts/glyphicons-halflings-regular.svg">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="fonts/glyphicons-halflings-regular.ttf">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="fonts/glyphicons-halflings-regular.woff">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Global.asax">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="grpc_csharp_ext.x64.dll">
       <publishTime>03/22/2022 13:17:22</publishTime>
@@ -372,7 +372,7 @@
       <publishTime>03/22/2022 13:17:22</publishTime>
     </File>
     <File Include="Index.html">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="libgrpc_csharp_ext.x64.dylib">
       <publishTime>03/19/2022 07:38:44</publishTime>
@@ -381,121 +381,121 @@
       <publishTime>03/19/2022 07:38:42</publishTime>
     </File>
     <File Include="libman.json">
-      <publishTime>07/18/2023 17:26:29</publishTime>
+      <publishTime>07/12/2023 08:14:21</publishTime>
     </File>
     <File Include="Metadata/deploymentTemplates/apiappconfig.azureresource.json">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="packages.config">
-      <publishTime>09/19/2024 08:47:56</publishTime>
+      <publishTime>09/19/2024 10:10:46</publishTime>
     </File>
     <File Include="Views/Scripts/bootstrap.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/bootstrap.min.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery-1.10.2.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery-1.10.2.min.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery-1.10.2.min.map">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery.validate.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery.validate.min.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery.validate.unobtrusive.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/jquery.validate.unobtrusive.min.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Scripts/modernizr-2.6.2.js">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Shared/Error.cshtml">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/Shared/_Layout.cshtml">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/web.config">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Views/_ViewStart.cshtml">
-      <publishTime>03/15/2022 10:06:42</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_Customer_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_Department_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_Employee_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_StockPlace_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_Supplier_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsCLD_Warehouse_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_BadReason_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model_View.datasource">
-      <publishTime>03/31/2023 09:57:09</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Customer_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Department_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Employee_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Group_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Item30JiTai_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Source_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_StockPlace_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Supplier_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsGy_Warehouse_Model.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsKf_ICStockBill_Mould.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/ClsKf_ICStockBill_WMS.datasource">
-      <publishTime>03/31/2023 09:57:08</publishTime>
+      <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web References/WebS/Reference.map">
       <publishTime>05/06/2024 13:47:57</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>02/12/2025 14:05:05</publishTime>
+      <publishTime>03/22/2025 14:13:07</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user b/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
index 21584cc..bcdf625 100644
--- a/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/JFAPI.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
-    <History>True|2025-03-19T05:45:31.7138375Z;True|2025-03-19T11:09:17.0875638+08:00;False|2025-03-19T11:05:00.7852430+08:00;True|2025-03-18T17:07:26.8842323+08:00;False|2025-03-18T17:02:33.5857720+08:00;False|2025-03-17T11:09:34.0681444+08:00;True|2025-03-17T10:50:21.9158331+08:00;True|2025-03-17T09:42:47.9252167+08:00;False|2025-03-17T09:31:53.1872136+08:00;True|2025-03-14T17:46:56.2806627+08:00;True|2025-03-14T16:26:15.6828252+08:00;True|2025-03-14T16:14:53.0710942+08:00;True|2025-03-14T16:08:09.5365263+08:00;True|2025-03-14T15:59:01.3358337+08:00;True|2025-03-14T14:22:42.7725023+08:00;True|2025-03-14T09:54:22.0848434+08:00;False|2025-03-14T09:51:59.6649411+08:00;True|2025-03-14T09:36:17.1134782+08:00;False|2025-03-14T09:31:58.5198805+08:00;True|2025-03-13T13:08:01.9024847+08:00;False|2025-03-13T13:03:35.7160929+08:00;True|2025-03-12T15:37:13.4111189+08:00;True|2025-03-12T15:23:55.5422176+08:00;True|2025-03-12T15:16:21.2123980+08:00;True|2025-03-12T14:49:24.9895017+08:00;True|2025-03-12T14:41:41.5663090+08:00;False|2025-03-12T14:39:27.3156286+08:00;True|2025-03-12T14:10:23.4204108+08:00;False|2025-03-12T14:08:08.4985635+08:00;True|2025-03-12T13:34:39.8492928+08:00;False|2025-03-12T13:31:34.8359622+08:00;True|2025-03-12T11:39:34.2976894+08:00;False|2025-03-12T09:22:45.9334513+08:00;True|2025-03-10T15:59:42.1283263+08:00;False|2025-03-10T15:53:57.2115226+08:00;True|2025-03-07T16:23:25.1589274+08:00;True|2025-03-07T16:18:46.0202723+08:00;True|2025-03-07T15:59:34.8313474+08:00;True|2025-03-07T15:37:59.1693363+08:00;True|2025-03-07T14:05:40.7253978+08:00;True|2025-03-07T11:21:14.9610137+08:00;False|2025-03-07T11:15:41.4171028+08:00;True|2025-03-07T10:23:24.0437379+08:00;True|2025-03-07T10:07:03.4231550+08:00;False|2025-03-07T10:04:32.6854924+08:00;True|2025-03-06T16:32:23.7096239+08:00;True|2025-03-06T15:45:46.0345284+08:00;True|2025-03-06T15:40:00.7026164+08:00;True|2025-03-06T15:20:20.3523488+08:00;True|2025-03-06T14:19:37.2403331+08:00;True|2025-03-06T13:49:03.6420821+08:00;False|2025-03-06T13:46:35.7037619+08:00;True|2025-03-06T11:03:29.5882789+08:00;True|2025-03-06T09:59:53.3080173+08:00;True|2025-03-06T09:43:48.4337079+08:00;False|2025-03-06T09:35:05.3462434+08:00;True|2025-03-05T18:25:35.2595591+08:00;True|2025-03-05T18:03:37.5687895+08:00;True|2025-03-05T17:48:08.3418269+08:00;False|2025-03-05T17:44:40.0721881+08:00;True|2025-03-05T17:23:30.5871011+08:00;True|2025-03-05T16:31:12.2285816+08:00;True|2025-03-05T16:00:25.5496303+08:00;True|2025-03-05T15:11:30.9434230+08:00;True|2025-03-05T14:22:08.4650724+08:00;True|2025-03-05T13:29:42.9306833+08:00;True|2025-03-05T11:28:17.5541196+08:00;True|2025-03-05T11:10:22.3318023+08:00;True|2025-03-05T10:55:33.6796527+08:00;True|2025-03-05T10:08:26.7761472+08:00;True|2025-03-05T10:02:32.8701262+08:00;False|2025-03-05T09:59:55.0044057+08:00;True|2025-03-04T17:48:24.6869079+08:00;True|2025-03-04T17:42:05.0276293+08:00;False|2025-03-04T17:39:53.6208557+08:00;False|2025-03-04T17:39:30.0759309+08:00;False|2025-03-04T17:05:37.2163588+08:00;True|2025-03-04T16:51:15.6884461+08:00;True|2025-03-04T16:49:03.3836181+08:00;True|2025-03-04T16:31:36.5847402+08:00;True|2025-03-04T15:52:09.1977151+08:00;True|2025-03-04T15:24:25.0194954+08:00;True|2025-03-04T15:12:44.1606138+08:00;False|2025-03-04T15:10:47.3915404+08:00;True|2025-03-04T14:31:42.7483906+08:00;True|2025-03-04T11:28:36.6001869+08:00;False|2025-02-27T19:55:43.0462466+08:00;True|2025-02-24T16:03:00.5507258+08:00;False|2025-02-24T16:00:00.9104160+08:00;True|2025-02-19T16:55:31.8966125+08:00;True|2025-02-19T14:51:19.5866770+08:00;False|2025-02-19T14:49:16.2857645+08:00;True|2025-02-19T14:11:03.8109482+08:00;False|2025-02-19T14:08:17.7243950+08:00;True|2025-02-19T11:16:48.1875981+08:00;False|2025-02-19T11:14:24.0571589+08:00;True|2025-02-19T10:17:34.3257301+08:00;False|2025-02-19T10:14:49.0730325+08:00;True|2025-02-18T09:38:54.9616937+08:00;True|2025-02-18T09:16:03.1196071+08:00;False|2025-02-18T09:13:52.5022130+08:00;True|2025-02-17T17:28:38.1103164+08:00;True|2025-02-17T17:06:19.1494960+08:00;True|2025-02-17T16:58:21.8893871+08:00;False|2025-02-17T16:56:34.0012780+08:00;True|2025-02-17T15:56:45.9560949+08:00;False|2025-02-17T15:29:32.9323141+08:00;False|2025-02-17T15:27:54.6615301+08:00;False|2025-02-17T15:25:42.7179137+08:00;True|2025-02-12T10:48:39.4029671+08:00;True|2025-02-12T10:45:09.8138793+08:00;False|2025-02-12T10:43:37.5751112+08:00;False|2025-02-12T10:43:24.8201898+08:00;False|2025-02-12T10:42:58.2736984+08:00;False|2025-02-12T10:42:46.1482594+08:00;False|2025-02-12T10:42:01.5427330+08:00;False|2025-02-12T10:41:48.3761346+08:00;False|2025-02-12T10:41:29.3367142+08:00;True|2025-02-11T15:41:34.0746843+08:00;True|2025-02-11T15:39:37.3374891+08:00;False|2025-02-11T15:39:27.0449176+08:00;False|2025-02-11T15:08:35.2970100+08:00;True|2025-02-11T14:59:59.6539416+08:00;True|2025-02-11T14:56:20.5954601+08:00;False|2025-02-11T14:55:35.6700921+08:00;True|2025-02-10T09:39:38.7399451+08:00;False|2025-02-10T09:39:10.1358642+08:00;True|2025-02-08T16:00:23.1136903+08:00;False|2025-02-08T15:59:50.0414065+08:00;True|2025-01-17T10:17:41.6850215+08:00;False|2025-01-17T10:16:20.3202054+08:00;True|2025-01-17T09:00:26.6966310+08:00;False|2025-01-17T08:59:59.9527727+08:00;True|2025-01-16T11:06:57.1014257+08:00;True|2025-01-16T10:27:57.2742426+08:00;False|2025-01-16T10:27:27.5197746+08:00;True|2025-01-15T11:05:17.5523582+08:00;True|2025-01-15T09:37:34.6118980+08:00;False|2025-01-15T09:36:27.7987949+08:00;True|2025-01-14T12:52:06.2234405+08:00;True|2025-01-14T12:50:08.8487446+08:00;False|2025-01-14T12:49:45.2743330+08:00;True|2025-01-14T10:31:18.6477403+08:00;False|2025-01-14T10:29:30.1534049+08:00;True|2025-01-13T15:27:00.4497527+08:00;True|2025-01-13T15:01:33.6142160+08:00;True|2025-01-13T10:29:49.4772980+08:00;True|2025-01-13T10:11:15.7993265+08:00;True|2025-01-13T10:08:58.9378828+08:00;False|2025-01-13T10:08:44.9869073+08:00;True|2025-01-13T10:02:17.5175561+08:00;False|2025-01-13T10:02:00.9991870+08:00;True|2025-01-08T17:50:21.7468469+08:00;True|2025-01-08T16:38:48.8592252+08:00;True|2025-01-08T10:44:42.9161086+08:00;False|2025-01-08T10:44:09.4840640+08:00;True|2025-01-08T10:34:31.5982265+08:00;False|2025-01-08T10:33:57.3576390+08:00;True|2025-01-03T17:19:09.1765100+08:00;True|2025-01-03T17:10:41.8794009+08:00;True|2025-01-03T17:10:11.4245485+08:00;True|2025-01-03T15:54:22.3387906+08:00;True|2025-01-03T15:41:44.9897120+08:00;False|2025-01-03T15:40:42.1357112+08:00;False|2025-01-03T15:39:09.0564197+08:00;True|2025-01-03T14:58:31.5701467+08:00;True|2025-01-03T14:29:13.4456304+08:00;False|2025-01-03T14:27:18.9925263+08:00;True|2025-01-02T16:08:24.1819376+08:00;True|2025-01-02T16:07:01.1636705+08:00;True|2025-01-02T16:03:02.6520904+08:00;True|2025-01-02T10:03:56.0551738+08:00;False|2025-01-02T10:03:34.8632732+08:00;True|2024-12-31T15:27:01.3180960+08:00;True|2024-12-31T11:17:12.2977529+08:00;True|2024-12-31T10:48:14.7205535+08:00;True|2024-12-31T10:18:45.6669875+08:00;False|2024-12-31T10:18:21.6706557+08:00;True|2024-12-30T09:32:44.3898729+08:00;True|2024-12-30T09:31:24.5771941+08:00;False|2024-12-30T09:30:52.4031391+08:00;True|2024-12-27T16:12:20.2836752+08:00;False|2024-12-27T16:11:04.6614343+08:00;True|2024-12-27T15:07:23.0750147+08:00;True|2024-12-27T15:04:52.7876532+08:00;True|2024-12-27T14:37:54.3154829+08:00;False|2024-12-27T14:37:26.9546174+08:00;True|2024-12-26T16:33:56.0452167+08:00;True|2024-12-26T16:29:21.4115458+08:00;True|2024-12-26T16:29:02.0242815+08:00;True|2024-12-26T15:17:24.7390981+08:00;False|2024-12-26T15:13:26.8863189+08:00;True|2024-12-26T15:06:35.4541902+08:00;True|2024-12-26T11:35:42.2760106+08:00;False|2024-12-26T11:35:08.9255789+08:00;True|2024-12-26T10:10:29.7487991+08:00;True|2024-12-26T09:27:40.2637311+08:00;False|2024-12-26T09:25:52.1339136+08:00;True|2024-12-24T15:11:48.9968778+08:00;True|2024-12-24T15:06:55.0283993+08:00;True|2024-12-24T14:36:29.6466740+08:00;True|2024-12-24T10:28:42.7489880+08:00;False|2024-12-24T10:28:08.6809715+08:00;True|2024-12-24T10:06:05.9449103+08:00;False|2024-12-24T10:05:32.8409161+08:00;True|2024-12-23T14:56:40.3416256+08:00;True|2024-12-23T14:50:50.2677378+08:00;True|2024-12-23T14:48:27.8169391+08:00;True|2024-12-23T14:45:25.5341474+08:00;True|2024-12-23T14:42:23.7825087+08:00;True|2024-12-23T14:35:53.8876449+08:00;True|2024-12-23T14:14:00.4257926+08:00;True|2024-12-23T11:10:54.5874876+08:00;True|2024-12-23T11:08:44.0250304+08:00;False|2024-12-23T11:08:18.5757850+08:00;True|2024-12-20T12:51:29.2354841+08:00;True|2024-12-20T12:46:13.7636932+08:00;False|2024-12-20T12:44:21.1473486+08:00;False|2024-12-20T12:44:06.5427106+08:00;True|2024-12-20T12:29:33.9971940+08:00;False|2024-12-20T12:29:01.0285205+08:00;True|2024-12-19T15:49:19.9906264+08:00;True|2024-12-19T14:55:54.3323405+08:00;True|2024-12-19T14:17:50.5086161+08:00;True|2024-12-19T14:08:16.0919011+08:00;True|2024-12-19T14:02:50.3092759+08:00;True|2024-12-19T13:54:41.2332165+08:00;False|2024-12-19T13:54:07.6973483+08:00;True|2024-12-19T09:34:54.5332110+08:00;True|2024-12-19T08:49:05.5690428+08:00;False|2024-12-19T08:48:51.0618113+08:00;True|2024-12-18T15:45:34.7174246+08:00;False|2024-12-18T15:45:10.3226822+08:00;True|2024-12-18T15:32:03.5983267+08:00;True|2024-12-18T15:31:20.1219502+08:00;True|2024-12-18T11:57:09.1595607+08:00;True|2024-12-18T11:13:37.4765697+08:00;True|2024-12-18T10:07:54.1294714+08:00;True|2024-12-18T10:04:16.0967342+08:00;False|2024-12-18T10:04:04.1561560+08:00;True|2024-12-16T17:07:07.3386872+08:00;True|2024-12-16T16:34:59.1101964+08:00;True|2024-12-16T16:19:07.9287470+08:00;False|2024-12-16T16:18:46.4617432+08:00;True|2024-12-13T18:06:11.0778539+08:00;True|2024-12-13T16:53:52.2283177+08:00;True|2024-12-13T16:23:15.9531944+08:00;True|2024-12-13T13:58:03.7464045+08:00;True|2024-12-13T10:40:33.9285602+08:00;True|2024-12-13T10:38:03.8494063+08:00;False|2024-12-13T10:37:52.4251132+08:00;True|2024-12-13T10:31:07.4994631+08:00;False|2024-12-13T10:30:40.8021885+08:00;True|2024-12-12T10:01:42.4944750+08:00;False|2024-12-12T10:01:15.7147977+08:00;True|2024-12-11T17:21:58.0453583+08:00;True|2024-12-11T10:59:15.3836831+08:00;True|2024-12-11T09:49:19.4060272+08:00;False|2024-12-11T09:48:51.7603525+08:00;True|2024-12-11T08:58:41.4567855+08:00;False|2024-12-11T08:58:09.2160433+08:00;True|2024-12-10T17:25:49.3068154+08:00;True|2024-12-10T17:21:30.0155027+08:00;True|2024-12-10T17:16:56.7587487+08:00;False|2024-12-10T17:16:34.7816611+08:00;True|2024-12-10T16:55:40.3777585+08:00;False|2024-12-10T16:55:13.2621448+08:00;False|2024-12-09T13:59:27.6362265+08:00;True|2024-12-06T16:55:30.6422980+08:00;True|2024-12-06T15:08:49.5834939+08:00;True|2024-12-06T14:31:56.0968616+08:00;False|2024-12-06T14:31:44.2264009+08:00;True|2024-12-06T13:59:52.8150929+08:00;False|2024-12-06T13:48:22.6073939+08:00;True|2024-12-05T17:33:27.9247467+08:00;True|2024-12-05T17:30:23.1740838+08:00;False|2024-12-05T17:30:03.9977311+08:00;True|2024-12-04T15:18:41.4963816+08:00;True|2024-12-04T15:16:45.1121101+08:00;True|2024-12-04T15:14:33.5954776+08:00;True|2024-12-04T15:12:27.2913137+08:00;True|2024-12-04T14:10:19.6190673+08:00;False|2024-12-04T14:10:02.0319713+08:00;True|2024-12-03T16:08:46.6721098+08:00;True|2024-12-03T15:16:04.1754554+08:00;True|2024-12-03T15:13:25.4927626+08:00;True|2024-12-03T14:55:09.4413291+08:00;True|2024-12-03T14:43:11.8243897+08:00;True|2024-12-03T14:29:16.1511932+08:00;True|2024-12-03T14:24:07.9561838+08:00;False|2024-12-03T14:23:55.1293602+08:00;True|2024-12-02T16:31:22.0404862+08:00;False|2024-12-02T16:28:53.1721961+08:00;True|2024-12-02T15:41:24.9462025+08:00;True|2024-12-02T14:12:12.9356193+08:00;False|2024-12-02T14:11:35.7159488+08:00;True|2024-12-02T10:59:31.5582757+08:00;True|2024-11-29T12:08:55.4868083+08:00;False|2024-11-29T12:08:37.0353185+08:00;True|2024-11-28T10:47:27.2071355+08:00;False|2024-11-28T10:47:13.6670955+08:00;True|2024-11-27T15:21:57.6747082+08:00;False|2024-11-27T15:20:07.2403056+08:00;True|2024-11-27T15:13:36.1461091+08:00;True|2024-11-27T14:34:35.5908753+08:00;False|2024-11-27T14:33:30.7118923+08:00;True|2024-11-26T15:16:44.1854927+08:00;True|2024-11-26T15:14:33.4021067+08:00;False|2024-11-26T15:14:07.9955135+08:00;True|2024-11-26T14:48:35.6408418+08:00;True|2024-11-26T14:45:00.7251556+08:00;True|2024-11-26T14:04:58.4232988+08:00;False|2024-11-26T14:04:28.1286675+08:00;True|2024-11-25T13:45:07.6935933+08:00;True|2024-11-25T13:43:59.0788650+08:00;False|2024-11-25T13:43:44.2225194+08:00;True|2024-11-25T08:54:05.5144014+08:00;False|2024-11-25T08:53:49.2284063+08:00;False|2024-11-22T09:53:13.7879664+08:00;True|2024-11-21T13:48:31.7056264+08:00;True|2024-11-21T13:46:55.0891551+08:00;True|2024-11-21T13:44:05.5221110+08:00;True|2024-11-21T13:43:39.1385899+08:00;False|2024-11-21T13:43:19.9351488+08:00;True|2024-11-20T11:33:52.0324053+08:00;True|2024-11-20T11:20:58.4917889+08:00;True|2024-11-20T11:03:46.9552623+08:00;True|2024-11-20T10:45:10.9517109+08:00;False|2024-11-20T10:44:58.3221116+08:00;False|2024-11-19T15:39:27.3889104+08:00;True|2024-11-19T14:42:32.0854561+08:00;True|2024-11-19T14:19:19.6198070+08:00;True|2024-11-19T14:13:08.2003750+08:00;False|2024-11-19T14:12:15.5442850+08:00;True|2024-11-18T13:05:41.0455534+08:00;True|2024-11-18T11:05:30.2819404+08:00;True|2024-11-18T10:51:07.1852818+08:00;False|2024-11-18T10:50:21.5098527+08:00;True|2024-11-18T10:15:38.5429366+08:00;True|2024-11-18T10:00:51.0847524+08:00;True|2024-11-18T09:34:52.1772715+08:00;True|2024-11-18T09:27:23.6013754+08:00;False|2024-11-18T09:26:00.9323551+08:00;True|2024-11-15T11:20:51.7576376+08:00;True|2024-11-15T11:11:17.5580168+08:00;True|2024-11-15T11:03:58.4142996+08:00;True|2024-11-15T10:44:50.5207827+08:00;True|2024-11-15T10:10:05.5550418+08:00;True|2024-11-15T09:49:30.6631382+08:00;False|2024-11-15T09:47:05.3973379+08:00;True|2024-11-14T18:31:54.8247681+08:00;True|2024-11-14T17:14:56.3660185+08:00;True|2024-11-14T16:49:44.7526912+08:00;True|2024-11-14T16:49:09.3427608+08:00;True|2024-11-14T15:59:00.2572264+08:00;True|2024-11-14T11:21:03.5110818+08:00;True|2024-11-14T10:51:10.7864658+08:00;False|2024-11-14T10:50:55.5384248+08:00;True|2024-11-14T10:29:13.6760158+08:00;False|2024-11-14T10:28:09.8622863+08:00;True|2024-11-13T17:48:46.4827219+08:00;True|2024-11-13T17:45:13.0659280+08:00;True|2024-11-13T16:01:55.2278671+08:00;False|2024-11-13T16:01:03.0040446+08:00;True|2024-11-12T17:24:06.3763535+08:00;True|2024-11-12T17:21:51.8459552+08:00;True|2024-11-12T17:11:57.9239909+08:00;True|2024-11-12T17:09:04.4322824+08:00;True|2024-11-12T17:07:12.1839548+08:00;True|2024-11-12T17:04:27.4579152+08:00;True|2024-11-12T17:03:59.6843282+08:00;True|2024-11-12T16:40:44.0714862+08:00;True|2024-11-12T16:36:27.7792764+08:00;True|2024-11-12T16:32:36.5262040+08:00;False|2024-11-12T16:32:23.9550194+08:00;True|2024-11-12T10:58:16.1987697+08:00;False|2024-11-12T10:58:04.8469631+08:00;True|2024-11-11T13:40:53.2582255+08:00;True|2024-11-11T13:37:45.0401833+08:00;True|2024-11-11T12:35:13.2429166+08:00;True|2024-11-11T11:27:29.0530688+08:00;False|2024-11-11T11:27:12.2765506+08:00;True|2024-11-08T15:52:17.1278870+08:00;False|2024-11-08T15:52:04.4379380+08:00;True|2024-11-07T18:27:41.8163960+08:00;False|2024-11-07T18:27:30.6037983+08:00;True|2024-11-06T15:55:27.6450488+08:00;True|2024-11-06T15:54:13.5957004+08:00;True|2024-11-06T15:25:33.3862531+08:00;True|2024-11-06T13:33:57.8502278+08:00;False|2024-11-06T13:33:39.2337086+08:00;True|2024-11-06T11:33:12.6755239+08:00;True|2024-11-05T18:34:17.7048247+08:00;True|2024-11-05T18:30:08.5724471+08:00;True|2024-11-05T18:24:35.5372980+08:00;True|2024-11-05T18:06:29.7644779+08:00;True|2024-11-05T17:53:50.9554703+08:00;True|2024-11-05T17:50:05.6376900+08:00;True|2024-11-05T11:13:46.2906508+08:00;True|2024-11-05T10:35:55.5423834+08:00;False|2024-11-05T10:35:20.4104039+08:00;True|2024-11-01T10:22:05.7636122+08:00;False|2024-11-01T10:21:33.2954398+08:00;True|2024-10-31T20:03:37.9075888+08:00;True|2024-10-31T18:35:31.6618415+08:00;True|2024-10-31T18:34:56.2479021+08:00;True|2024-10-31T09:43:29.0841188+08:00;False|2024-10-31T09:43:04.8780818+08:00;True|2024-10-30T18:42:11.0523067+08:00;True|2024-10-30T18:07:05.5603627+08:00;True|2024-10-30T18:03:15.3516621+08:00;True|2024-10-30T17:58:14.3276504+08:00;False|2024-10-30T17:57:44.5353118+08:00;True|2024-10-30T17:47:41.2889491+08:00;True|2024-10-30T17:19:36.6172721+08:00;True|2024-10-30T17:10:00.4399703+08:00;False|2024-10-30T17:08:57.6500450+08:00;True|2024-10-29T16:58:15.6006676+08:00;True|2024-10-29T16:51:56.8406649+08:00;True|2024-10-29T16:05:48.4297695+08:00;True|2024-10-29T15:12:15.1522377+08:00;True|2024-10-29T15:10:51.8431754+08:00;True|2024-10-29T11:21:01.5660940+08:00;False|2024-10-29T11:20:33.3958980+08:00;True|2024-10-28T17:51:26.7156861+08:00;False|2024-10-28T17:50:41.4388196+08:00;True|2024-10-28T13:34:14.8764262+08:00;True|2024-10-28T12:44:27.2083620+08:00;False|2024-10-28T12:43:57.5942717+08:00;True|2024-10-25T11:49:47.9817458+08:00;True|2024-10-25T11:49:34.4754546+08:00;True|2024-10-25T09:59:35.6471379+08:00;True|2024-10-25T09:47:46.8035540+08:00;True|2024-10-25T09:25:57.7872618+08:00;False|2024-10-25T09:25:30.0950732+08:00;True|2024-10-24T20:39:06.1992535+08:00;False|2024-10-24T20:38:33.1009731+08:00;True|2024-10-24T11:17:46.9974483+08:00;False|2024-10-24T11:17:17.0925356+08:00;True|2024-10-23T19:16:25.5189930+08:00;True|2024-10-23T17:10:44.4267777+08:00;False|2024-10-23T17:10:10.2947971+08:00;True|2024-10-23T14:13:22.6901287+08:00;False|2024-10-23T14:12:24.3997100+08:00;True|2024-10-22T16:25:12.9514711+08:00;False|2024-10-22T16:24:42.9025167+08:00;True|2024-10-22T10:22:33.9932601+08:00;False|2024-10-22T10:22:05.3030308+08:00;True|2024-10-21T17:53:29.9552741+08:00;True|2024-10-21T16:37:31.4159544+08:00;True|2024-10-21T16:35:43.6207036+08:00;True|2024-10-21T16:00:05.5040651+08:00;False|2024-10-21T15:59:35.9279259+08:00;True|2024-10-21T12:06:42.5768961+08:00;False|2024-10-21T12:06:16.6344662+08:00;True|2024-10-18T10:44:02.6495536+08:00;True|2024-10-18T09:55:47.9769914+08:00;True|2024-10-18T09:47:46.6365831+08:00;True|2024-10-18T09:46:40.4036657+08:00;True|2024-10-18T09:44:25.4598960+08:00;True|2024-10-18T09:30:07.6972377+08:00;False|2024-10-18T09:28:18.9251743+08:00;True|2024-10-17T12:13:34.8639685+08:00;True|2024-10-17T12:02:26.5251711+08:00;False|2024-10-17T12:01:31.3822430+08:00;True|2024-10-17T11:49:09.2395208+08:00;False|2024-10-17T11:48:38.0189241+08:00;True|2024-10-16T19:35:29.2047484+08:00;False|2024-10-16T19:32:43.0637947+08:00;True|2024-10-16T11:27:13.1263407+08:00;False|2024-10-16T11:25:49.8688677+08:00;True|2024-10-15T18:26:50.9948482+08:00;False|2024-10-15T18:26:23.6998750+08:00;True|2024-08-26T14:17:37.8502046+08:00;False|2024-08-26T14:16:09.8501361+08:00;True|2024-08-22T11:12:48.4249984+08:00;</History>
+    <History>True|2025-03-24T08:49:42.0663422Z;True|2025-03-24T13:12:18.9244375+08:00;False|2025-03-24T13:07:19.8409939+08:00;False|2025-03-24T12:48:52.4860847+08:00;False|2025-03-24T11:39:21.1805195+08:00;False|2025-03-24T11:37:43.6802081+08:00;False|2025-03-24T11:33:57.1454920+08:00;False|2025-03-24T11:30:14.3844034+08:00;False|2025-03-24T11:28:02.5067052+08:00;False|2025-03-21T12:21:29.9136433+08:00;True|2025-03-20T16:39:21.8390481+08:00;True|2025-03-20T14:41:37.0419379+08:00;False|2025-03-20T14:37:15.3728461+08:00;True|2025-03-20T12:27:20.0312759+08:00;True|2025-03-20T10:42:53.0161637+08:00;True|2025-03-20T09:30:05.5790815+08:00;False|2025-03-20T09:25:15.2327164+08:00;True|2025-03-19T17:06:57.7672924+08:00;True|2025-03-19T15:46:30.3411577+08:00;True|2025-03-19T13:45:31.7138375+08:00;True|2025-03-19T11:09:17.0875638+08:00;False|2025-03-19T11:05:00.7852430+08:00;True|2025-03-18T17:07:26.8842323+08:00;False|2025-03-18T17:02:33.5857720+08:00;False|2025-03-17T11:09:34.0681444+08:00;True|2025-03-17T10:50:21.9158331+08:00;True|2025-03-17T09:42:47.9252167+08:00;False|2025-03-17T09:31:53.1872136+08:00;True|2025-03-14T17:46:56.2806627+08:00;True|2025-03-14T16:26:15.6828252+08:00;True|2025-03-14T16:14:53.0710942+08:00;True|2025-03-14T16:08:09.5365263+08:00;True|2025-03-14T15:59:01.3358337+08:00;True|2025-03-14T14:22:42.7725023+08:00;True|2025-03-14T09:54:22.0848434+08:00;False|2025-03-14T09:51:59.6649411+08:00;True|2025-03-14T09:36:17.1134782+08:00;False|2025-03-14T09:31:58.5198805+08:00;True|2025-03-13T13:08:01.9024847+08:00;False|2025-03-13T13:03:35.7160929+08:00;True|2025-03-12T15:37:13.4111189+08:00;True|2025-03-12T15:23:55.5422176+08:00;True|2025-03-12T15:16:21.2123980+08:00;True|2025-03-12T14:49:24.9895017+08:00;True|2025-03-12T14:41:41.5663090+08:00;False|2025-03-12T14:39:27.3156286+08:00;True|2025-03-12T14:10:23.4204108+08:00;False|2025-03-12T14:08:08.4985635+08:00;True|2025-03-12T13:34:39.8492928+08:00;False|2025-03-12T13:31:34.8359622+08:00;True|2025-03-12T11:39:34.2976894+08:00;False|2025-03-12T09:22:45.9334513+08:00;True|2025-03-10T15:59:42.1283263+08:00;False|2025-03-10T15:53:57.2115226+08:00;True|2025-03-07T16:23:25.1589274+08:00;True|2025-03-07T16:18:46.0202723+08:00;True|2025-03-07T15:59:34.8313474+08:00;True|2025-03-07T15:37:59.1693363+08:00;True|2025-03-07T14:05:40.7253978+08:00;True|2025-03-07T11:21:14.9610137+08:00;False|2025-03-07T11:15:41.4171028+08:00;True|2025-03-07T10:23:24.0437379+08:00;True|2025-03-07T10:07:03.4231550+08:00;False|2025-03-07T10:04:32.6854924+08:00;True|2025-03-06T16:32:23.7096239+08:00;True|2025-03-06T15:45:46.0345284+08:00;True|2025-03-06T15:40:00.7026164+08:00;True|2025-03-06T15:20:20.3523488+08:00;True|2025-03-06T14:19:37.2403331+08:00;True|2025-03-06T13:49:03.6420821+08:00;False|2025-03-06T13:46:35.7037619+08:00;True|2025-03-06T11:03:29.5882789+08:00;True|2025-03-06T09:59:53.3080173+08:00;True|2025-03-06T09:43:48.4337079+08:00;False|2025-03-06T09:35:05.3462434+08:00;True|2025-03-05T18:25:35.2595591+08:00;True|2025-03-05T18:03:37.5687895+08:00;True|2025-03-05T17:48:08.3418269+08:00;False|2025-03-05T17:44:40.0721881+08:00;True|2025-03-05T17:23:30.5871011+08:00;True|2025-03-05T16:31:12.2285816+08:00;True|2025-03-05T16:00:25.5496303+08:00;True|2025-03-05T15:11:30.9434230+08:00;True|2025-03-05T14:22:08.4650724+08:00;True|2025-03-05T13:29:42.9306833+08:00;True|2025-03-05T11:28:17.5541196+08:00;True|2025-03-05T11:10:22.3318023+08:00;True|2025-03-05T10:55:33.6796527+08:00;True|2025-03-05T10:08:26.7761472+08:00;True|2025-03-05T10:02:32.8701262+08:00;False|2025-03-05T09:59:55.0044057+08:00;True|2025-03-04T17:48:24.6869079+08:00;True|2025-03-04T17:42:05.0276293+08:00;False|2025-03-04T17:39:53.6208557+08:00;False|2025-03-04T17:39:30.0759309+08:00;False|2025-03-04T17:05:37.2163588+08:00;True|2025-03-04T16:51:15.6884461+08:00;True|2025-03-04T16:49:03.3836181+08:00;True|2025-03-04T16:31:36.5847402+08:00;True|2025-03-04T15:52:09.1977151+08:00;True|2025-03-04T15:24:25.0194954+08:00;True|2025-03-04T15:12:44.1606138+08:00;False|2025-03-04T15:10:47.3915404+08:00;True|2025-03-04T14:31:42.7483906+08:00;True|2025-03-04T11:28:36.6001869+08:00;False|2025-02-27T19:55:43.0462466+08:00;True|2025-02-24T16:03:00.5507258+08:00;False|2025-02-24T16:00:00.9104160+08:00;True|2025-02-19T16:55:31.8966125+08:00;True|2025-02-19T14:51:19.5866770+08:00;False|2025-02-19T14:49:16.2857645+08:00;True|2025-02-19T14:11:03.8109482+08:00;False|2025-02-19T14:08:17.7243950+08:00;True|2025-02-19T11:16:48.1875981+08:00;False|2025-02-19T11:14:24.0571589+08:00;True|2025-02-19T10:17:34.3257301+08:00;False|2025-02-19T10:14:49.0730325+08:00;True|2025-02-18T09:38:54.9616937+08:00;True|2025-02-18T09:16:03.1196071+08:00;False|2025-02-18T09:13:52.5022130+08:00;True|2025-02-17T17:28:38.1103164+08:00;True|2025-02-17T17:06:19.1494960+08:00;True|2025-02-17T16:58:21.8893871+08:00;False|2025-02-17T16:56:34.0012780+08:00;True|2025-02-17T15:56:45.9560949+08:00;False|2025-02-17T15:29:32.9323141+08:00;False|2025-02-17T15:27:54.6615301+08:00;False|2025-02-17T15:25:42.7179137+08:00;True|2025-02-12T10:48:39.4029671+08:00;True|2025-02-12T10:45:09.8138793+08:00;False|2025-02-12T10:43:37.5751112+08:00;False|2025-02-12T10:43:24.8201898+08:00;False|2025-02-12T10:42:58.2736984+08:00;False|2025-02-12T10:42:46.1482594+08:00;False|2025-02-12T10:42:01.5427330+08:00;False|2025-02-12T10:41:48.3761346+08:00;False|2025-02-12T10:41:29.3367142+08:00;True|2025-02-11T15:41:34.0746843+08:00;True|2025-02-11T15:39:37.3374891+08:00;False|2025-02-11T15:39:27.0449176+08:00;False|2025-02-11T15:08:35.2970100+08:00;True|2025-02-11T14:59:59.6539416+08:00;True|2025-02-11T14:56:20.5954601+08:00;False|2025-02-11T14:55:35.6700921+08:00;True|2025-02-10T09:39:38.7399451+08:00;False|2025-02-10T09:39:10.1358642+08:00;True|2025-02-08T16:00:23.1136903+08:00;False|2025-02-08T15:59:50.0414065+08:00;True|2025-01-17T10:17:41.6850215+08:00;False|2025-01-17T10:16:20.3202054+08:00;True|2025-01-17T09:00:26.6966310+08:00;False|2025-01-17T08:59:59.9527727+08:00;True|2025-01-16T11:06:57.1014257+08:00;True|2025-01-16T10:27:57.2742426+08:00;False|2025-01-16T10:27:27.5197746+08:00;True|2025-01-15T11:05:17.5523582+08:00;True|2025-01-15T09:37:34.6118980+08:00;False|2025-01-15T09:36:27.7987949+08:00;True|2025-01-14T12:52:06.2234405+08:00;True|2025-01-14T12:50:08.8487446+08:00;False|2025-01-14T12:49:45.2743330+08:00;True|2025-01-14T10:31:18.6477403+08:00;False|2025-01-14T10:29:30.1534049+08:00;True|2025-01-13T15:27:00.4497527+08:00;True|2025-01-13T15:01:33.6142160+08:00;True|2025-01-13T10:29:49.4772980+08:00;True|2025-01-13T10:11:15.7993265+08:00;True|2025-01-13T10:08:58.9378828+08:00;False|2025-01-13T10:08:44.9869073+08:00;True|2025-01-13T10:02:17.5175561+08:00;False|2025-01-13T10:02:00.9991870+08:00;True|2025-01-08T17:50:21.7468469+08:00;True|2025-01-08T16:38:48.8592252+08:00;True|2025-01-08T10:44:42.9161086+08:00;False|2025-01-08T10:44:09.4840640+08:00;True|2025-01-08T10:34:31.5982265+08:00;False|2025-01-08T10:33:57.3576390+08:00;True|2025-01-03T17:19:09.1765100+08:00;True|2025-01-03T17:10:41.8794009+08:00;True|2025-01-03T17:10:11.4245485+08:00;True|2025-01-03T15:54:22.3387906+08:00;True|2025-01-03T15:41:44.9897120+08:00;False|2025-01-03T15:40:42.1357112+08:00;False|2025-01-03T15:39:09.0564197+08:00;True|2025-01-03T14:58:31.5701467+08:00;True|2025-01-03T14:29:13.4456304+08:00;False|2025-01-03T14:27:18.9925263+08:00;True|2025-01-02T16:08:24.1819376+08:00;True|2025-01-02T16:07:01.1636705+08:00;True|2025-01-02T16:03:02.6520904+08:00;True|2025-01-02T10:03:56.0551738+08:00;False|2025-01-02T10:03:34.8632732+08:00;True|2024-12-31T15:27:01.3180960+08:00;True|2024-12-31T11:17:12.2977529+08:00;True|2024-12-31T10:48:14.7205535+08:00;True|2024-12-31T10:18:45.6669875+08:00;False|2024-12-31T10:18:21.6706557+08:00;True|2024-12-30T09:32:44.3898729+08:00;True|2024-12-30T09:31:24.5771941+08:00;False|2024-12-30T09:30:52.4031391+08:00;True|2024-12-27T16:12:20.2836752+08:00;False|2024-12-27T16:11:04.6614343+08:00;True|2024-12-27T15:07:23.0750147+08:00;True|2024-12-27T15:04:52.7876532+08:00;True|2024-12-27T14:37:54.3154829+08:00;False|2024-12-27T14:37:26.9546174+08:00;True|2024-12-26T16:33:56.0452167+08:00;True|2024-12-26T16:29:21.4115458+08:00;True|2024-12-26T16:29:02.0242815+08:00;True|2024-12-26T15:17:24.7390981+08:00;False|2024-12-26T15:13:26.8863189+08:00;True|2024-12-26T15:06:35.4541902+08:00;True|2024-12-26T11:35:42.2760106+08:00;False|2024-12-26T11:35:08.9255789+08:00;True|2024-12-26T10:10:29.7487991+08:00;True|2024-12-26T09:27:40.2637311+08:00;False|2024-12-26T09:25:52.1339136+08:00;True|2024-12-24T15:11:48.9968778+08:00;True|2024-12-24T15:06:55.0283993+08:00;True|2024-12-24T14:36:29.6466740+08:00;True|2024-12-24T10:28:42.7489880+08:00;False|2024-12-24T10:28:08.6809715+08:00;True|2024-12-24T10:06:05.9449103+08:00;False|2024-12-24T10:05:32.8409161+08:00;True|2024-12-23T14:56:40.3416256+08:00;True|2024-12-23T14:50:50.2677378+08:00;True|2024-12-23T14:48:27.8169391+08:00;True|2024-12-23T14:45:25.5341474+08:00;True|2024-12-23T14:42:23.7825087+08:00;True|2024-12-23T14:35:53.8876449+08:00;True|2024-12-23T14:14:00.4257926+08:00;True|2024-12-23T11:10:54.5874876+08:00;True|2024-12-23T11:08:44.0250304+08:00;False|2024-12-23T11:08:18.5757850+08:00;True|2024-12-20T12:51:29.2354841+08:00;True|2024-12-20T12:46:13.7636932+08:00;False|2024-12-20T12:44:21.1473486+08:00;False|2024-12-20T12:44:06.5427106+08:00;True|2024-12-20T12:29:33.9971940+08:00;False|2024-12-20T12:29:01.0285205+08:00;True|2024-12-19T15:49:19.9906264+08:00;True|2024-12-19T14:55:54.3323405+08:00;True|2024-12-19T14:17:50.5086161+08:00;True|2024-12-19T14:08:16.0919011+08:00;True|2024-12-19T14:02:50.3092759+08:00;True|2024-12-19T13:54:41.2332165+08:00;False|2024-12-19T13:54:07.6973483+08:00;True|2024-12-19T09:34:54.5332110+08:00;True|2024-12-19T08:49:05.5690428+08:00;False|2024-12-19T08:48:51.0618113+08:00;True|2024-12-18T15:45:34.7174246+08:00;False|2024-12-18T15:45:10.3226822+08:00;True|2024-12-18T15:32:03.5983267+08:00;True|2024-12-18T15:31:20.1219502+08:00;True|2024-12-18T11:57:09.1595607+08:00;True|2024-12-18T11:13:37.4765697+08:00;True|2024-12-18T10:07:54.1294714+08:00;True|2024-12-18T10:04:16.0967342+08:00;False|2024-12-18T10:04:04.1561560+08:00;True|2024-12-16T17:07:07.3386872+08:00;True|2024-12-16T16:34:59.1101964+08:00;True|2024-12-16T16:19:07.9287470+08:00;False|2024-12-16T16:18:46.4617432+08:00;True|2024-12-13T18:06:11.0778539+08:00;True|2024-12-13T16:53:52.2283177+08:00;True|2024-12-13T16:23:15.9531944+08:00;True|2024-12-13T13:58:03.7464045+08:00;True|2024-12-13T10:40:33.9285602+08:00;True|2024-12-13T10:38:03.8494063+08:00;False|2024-12-13T10:37:52.4251132+08:00;True|2024-12-13T10:31:07.4994631+08:00;False|2024-12-13T10:30:40.8021885+08:00;True|2024-12-12T10:01:42.4944750+08:00;False|2024-12-12T10:01:15.7147977+08:00;True|2024-12-11T17:21:58.0453583+08:00;True|2024-12-11T10:59:15.3836831+08:00;True|2024-12-11T09:49:19.4060272+08:00;False|2024-12-11T09:48:51.7603525+08:00;True|2024-12-11T08:58:41.4567855+08:00;False|2024-12-11T08:58:09.2160433+08:00;True|2024-12-10T17:25:49.3068154+08:00;True|2024-12-10T17:21:30.0155027+08:00;True|2024-12-10T17:16:56.7587487+08:00;False|2024-12-10T17:16:34.7816611+08:00;True|2024-12-10T16:55:40.3777585+08:00;False|2024-12-10T16:55:13.2621448+08:00;False|2024-12-09T13:59:27.6362265+08:00;True|2024-12-06T16:55:30.6422980+08:00;True|2024-12-06T15:08:49.5834939+08:00;True|2024-12-06T14:31:56.0968616+08:00;False|2024-12-06T14:31:44.2264009+08:00;True|2024-12-06T13:59:52.8150929+08:00;False|2024-12-06T13:48:22.6073939+08:00;True|2024-12-05T17:33:27.9247467+08:00;True|2024-12-05T17:30:23.1740838+08:00;False|2024-12-05T17:30:03.9977311+08:00;True|2024-12-04T15:18:41.4963816+08:00;True|2024-12-04T15:16:45.1121101+08:00;True|2024-12-04T15:14:33.5954776+08:00;True|2024-12-04T15:12:27.2913137+08:00;True|2024-12-04T14:10:19.6190673+08:00;False|2024-12-04T14:10:02.0319713+08:00;True|2024-12-03T16:08:46.6721098+08:00;True|2024-12-03T15:16:04.1754554+08:00;True|2024-12-03T15:13:25.4927626+08:00;True|2024-12-03T14:55:09.4413291+08:00;True|2024-12-03T14:43:11.8243897+08:00;True|2024-12-03T14:29:16.1511932+08:00;True|2024-12-03T14:24:07.9561838+08:00;False|2024-12-03T14:23:55.1293602+08:00;True|2024-12-02T16:31:22.0404862+08:00;False|2024-12-02T16:28:53.1721961+08:00;True|2024-12-02T15:41:24.9462025+08:00;True|2024-12-02T14:12:12.9356193+08:00;False|2024-12-02T14:11:35.7159488+08:00;True|2024-12-02T10:59:31.5582757+08:00;True|2024-11-29T12:08:55.4868083+08:00;False|2024-11-29T12:08:37.0353185+08:00;True|2024-11-28T10:47:27.2071355+08:00;False|2024-11-28T10:47:13.6670955+08:00;True|2024-11-27T15:21:57.6747082+08:00;False|2024-11-27T15:20:07.2403056+08:00;True|2024-11-27T15:13:36.1461091+08:00;True|2024-11-27T14:34:35.5908753+08:00;False|2024-11-27T14:33:30.7118923+08:00;True|2024-11-26T15:16:44.1854927+08:00;True|2024-11-26T15:14:33.4021067+08:00;False|2024-11-26T15:14:07.9955135+08:00;True|2024-11-26T14:48:35.6408418+08:00;True|2024-11-26T14:45:00.7251556+08:00;True|2024-11-26T14:04:58.4232988+08:00;False|2024-11-26T14:04:28.1286675+08:00;True|2024-11-25T13:45:07.6935933+08:00;True|2024-11-25T13:43:59.0788650+08:00;False|2024-11-25T13:43:44.2225194+08:00;True|2024-11-25T08:54:05.5144014+08:00;False|2024-11-25T08:53:49.2284063+08:00;False|2024-11-22T09:53:13.7879664+08:00;True|2024-11-21T13:48:31.7056264+08:00;True|2024-11-21T13:46:55.0891551+08:00;True|2024-11-21T13:44:05.5221110+08:00;True|2024-11-21T13:43:39.1385899+08:00;False|2024-11-21T13:43:19.9351488+08:00;True|2024-11-20T11:33:52.0324053+08:00;True|2024-11-20T11:20:58.4917889+08:00;True|2024-11-20T11:03:46.9552623+08:00;True|2024-11-20T10:45:10.9517109+08:00;False|2024-11-20T10:44:58.3221116+08:00;False|2024-11-19T15:39:27.3889104+08:00;True|2024-11-19T14:42:32.0854561+08:00;True|2024-11-19T14:19:19.6198070+08:00;True|2024-11-19T14:13:08.2003750+08:00;False|2024-11-19T14:12:15.5442850+08:00;True|2024-11-18T13:05:41.0455534+08:00;True|2024-11-18T11:05:30.2819404+08:00;True|2024-11-18T10:51:07.1852818+08:00;False|2024-11-18T10:50:21.5098527+08:00;True|2024-11-18T10:15:38.5429366+08:00;True|2024-11-18T10:00:51.0847524+08:00;True|2024-11-18T09:34:52.1772715+08:00;True|2024-11-18T09:27:23.6013754+08:00;False|2024-11-18T09:26:00.9323551+08:00;True|2024-11-15T11:20:51.7576376+08:00;True|2024-11-15T11:11:17.5580168+08:00;True|2024-11-15T11:03:58.4142996+08:00;True|2024-11-15T10:44:50.5207827+08:00;True|2024-11-15T10:10:05.5550418+08:00;True|2024-11-15T09:49:30.6631382+08:00;False|2024-11-15T09:47:05.3973379+08:00;True|2024-11-14T18:31:54.8247681+08:00;True|2024-11-14T17:14:56.3660185+08:00;True|2024-11-14T16:49:44.7526912+08:00;True|2024-11-14T16:49:09.3427608+08:00;True|2024-11-14T15:59:00.2572264+08:00;True|2024-11-14T11:21:03.5110818+08:00;True|2024-11-14T10:51:10.7864658+08:00;False|2024-11-14T10:50:55.5384248+08:00;True|2024-11-14T10:29:13.6760158+08:00;False|2024-11-14T10:28:09.8622863+08:00;True|2024-11-13T17:48:46.4827219+08:00;True|2024-11-13T17:45:13.0659280+08:00;True|2024-11-13T16:01:55.2278671+08:00;False|2024-11-13T16:01:03.0040446+08:00;True|2024-11-12T17:24:06.3763535+08:00;True|2024-11-12T17:21:51.8459552+08:00;True|2024-11-12T17:11:57.9239909+08:00;True|2024-11-12T17:09:04.4322824+08:00;True|2024-11-12T17:07:12.1839548+08:00;True|2024-11-12T17:04:27.4579152+08:00;True|2024-11-12T17:03:59.6843282+08:00;True|2024-11-12T16:40:44.0714862+08:00;True|2024-11-12T16:36:27.7792764+08:00;True|2024-11-12T16:32:36.5262040+08:00;False|2024-11-12T16:32:23.9550194+08:00;True|2024-11-12T10:58:16.1987697+08:00;False|2024-11-12T10:58:04.8469631+08:00;True|2024-11-11T13:40:53.2582255+08:00;True|2024-11-11T13:37:45.0401833+08:00;True|2024-11-11T12:35:13.2429166+08:00;True|2024-11-11T11:27:29.0530688+08:00;False|2024-11-11T11:27:12.2765506+08:00;True|2024-11-08T15:52:17.1278870+08:00;False|2024-11-08T15:52:04.4379380+08:00;True|2024-11-07T18:27:41.8163960+08:00;False|2024-11-07T18:27:30.6037983+08:00;True|2024-11-06T15:55:27.6450488+08:00;True|2024-11-06T15:54:13.5957004+08:00;True|2024-11-06T15:25:33.3862531+08:00;True|2024-11-06T13:33:57.8502278+08:00;False|2024-11-06T13:33:39.2337086+08:00;True|2024-11-06T11:33:12.6755239+08:00;True|2024-11-05T18:34:17.7048247+08:00;True|2024-11-05T18:30:08.5724471+08:00;True|2024-11-05T18:24:35.5372980+08:00;True|2024-11-05T18:06:29.7644779+08:00;True|2024-11-05T17:53:50.9554703+08:00;True|2024-11-05T17:50:05.6376900+08:00;True|2024-11-05T11:13:46.2906508+08:00;True|2024-11-05T10:35:55.5423834+08:00;False|2024-11-05T10:35:20.4104039+08:00;True|2024-11-01T10:22:05.7636122+08:00;False|2024-11-01T10:21:33.2954398+08:00;True|2024-10-31T20:03:37.9075888+08:00;True|2024-10-31T18:35:31.6618415+08:00;True|2024-10-31T18:34:56.2479021+08:00;True|2024-10-31T09:43:29.0841188+08:00;False|2024-10-31T09:43:04.8780818+08:00;True|2024-10-30T18:42:11.0523067+08:00;True|2024-10-30T18:07:05.5603627+08:00;True|2024-10-30T18:03:15.3516621+08:00;True|2024-10-30T17:58:14.3276504+08:00;False|2024-10-30T17:57:44.5353118+08:00;True|2024-10-30T17:47:41.2889491+08:00;True|2024-10-30T17:19:36.6172721+08:00;True|2024-10-30T17:10:00.4399703+08:00;False|2024-10-30T17:08:57.6500450+08:00;True|2024-10-29T16:58:15.6006676+08:00;True|2024-10-29T16:51:56.8406649+08:00;True|2024-10-29T16:05:48.4297695+08:00;True|2024-10-29T15:12:15.1522377+08:00;True|2024-10-29T15:10:51.8431754+08:00;True|2024-10-29T11:21:01.5660940+08:00;False|2024-10-29T11:20:33.3958980+08:00;True|2024-10-28T17:51:26.7156861+08:00;False|2024-10-28T17:50:41.4388196+08:00;True|2024-10-28T13:34:14.8764262+08:00;True|2024-10-28T12:44:27.2083620+08:00;False|2024-10-28T12:43:57.5942717+08:00;True|2024-10-25T11:49:47.9817458+08:00;True|2024-10-25T11:49:34.4754546+08:00;True|2024-10-25T09:59:35.6471379+08:00;True|2024-10-25T09:47:46.8035540+08:00;True|2024-10-25T09:25:57.7872618+08:00;False|2024-10-25T09:25:30.0950732+08:00;True|2024-10-24T20:39:06.1992535+08:00;False|2024-10-24T20:38:33.1009731+08:00;True|2024-10-24T11:17:46.9974483+08:00;False|2024-10-24T11:17:17.0925356+08:00;True|2024-10-23T19:16:25.5189930+08:00;True|2024-10-23T17:10:44.4267777+08:00;False|2024-10-23T17:10:10.2947971+08:00;True|2024-10-23T14:13:22.6901287+08:00;False|2024-10-23T14:12:24.3997100+08:00;True|2024-10-22T16:25:12.9514711+08:00;False|2024-10-22T16:24:42.9025167+08:00;True|2024-10-22T10:22:33.9932601+08:00;False|2024-10-22T10:22:05.3030308+08:00;True|2024-10-21T17:53:29.9552741+08:00;True|2024-10-21T16:37:31.4159544+08:00;True|2024-10-21T16:35:43.6207036+08:00;True|2024-10-21T16:00:05.5040651+08:00;False|2024-10-21T15:59:35.9279259+08:00;True|2024-10-21T12:06:42.5768961+08:00;False|2024-10-21T12:06:16.6344662+08:00;True|2024-10-18T10:44:02.6495536+08:00;True|2024-10-18T09:55:47.9769914+08:00;True|2024-10-18T09:47:46.6365831+08:00;True|2024-10-18T09:46:40.4036657+08:00;True|2024-10-18T09:44:25.4598960+08:00;True|2024-10-18T09:30:07.6972377+08:00;False|2024-10-18T09:28:18.9251743+08:00;True|2024-10-17T12:13:34.8639685+08:00;True|2024-10-17T12:02:26.5251711+08:00;False|2024-10-17T12:01:31.3822430+08:00;True|2024-10-17T11:49:09.2395208+08:00;False|2024-10-17T11:48:38.0189241+08:00;True|2024-10-16T19:35:29.2047484+08:00;False|2024-10-16T19:32:43.0637947+08:00;True|2024-10-16T11:27:13.1263407+08:00;False|2024-10-16T11:25:49.8688677+08:00;True|2024-10-15T18:26:50.9948482+08:00;False|2024-10-15T18:26:23.6998750+08:00;True|2024-08-26T14:17:37.8502046+08:00;False|2024-08-26T14:16:09.8501361+08:00;True|2024-08-22T11:12:48.4249984+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
@@ -45,28 +45,28 @@
       <publishTime>02/22/2013 16:43:40</publishTime>
     </File>
     <File Include="bin/BLL.dll">
-      <publishTime>03/19/2025 13:43:28</publishTime>
+      <publishTime>03/24/2025 16:47:39</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>03/19/2025 13:43:28</publishTime>
+      <publishTime>03/24/2025 16:47:39</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>03/19/2025 13:43:15</publishTime>
+      <publishTime>03/24/2025 16:46:53</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>03/19/2025 13:43:15</publishTime>
+      <publishTime>03/24/2025 16:46:53</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
     </File>
     <File Include="bin/DBUtility.dll">
-      <publishTime>03/19/2025 13:43:07</publishTime>
+      <publishTime>03/24/2025 16:46:44</publishTime>
     </File>
     <File Include="bin/DBUtility.pdb">
-      <publishTime>03/19/2025 13:43:07</publishTime>
+      <publishTime>03/24/2025 16:46:44</publishTime>
     </File>
     <File Include="bin/Grpc.Core.Api.dll">
       <publishTime>03/22/2022 13:17:26</publishTime>
@@ -111,10 +111,10 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>03/19/2025 13:43:12</publishTime>
+      <publishTime>03/24/2025 16:46:49</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>03/19/2025 13:43:12</publishTime>
+      <publishTime>03/24/2025 16:46:49</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
       <publishTime>02/12/2025 09:59:05</publishTime>
@@ -147,34 +147,34 @@
       <publishTime>10/23/2021 17:07:54</publishTime>
     </File>
     <File Include="bin/Pub_Class.dll">
-      <publishTime>03/19/2025 13:42:56</publishTime>
+      <publishTime>03/24/2025 16:46:26</publishTime>
     </File>
     <File Include="bin/Pub_Class.pdb">
-      <publishTime>03/19/2025 13:42:56</publishTime>
+      <publishTime>03/24/2025 16:46:26</publishTime>
     </File>
     <File Include="bin/Pub_Control.dll">
-      <publishTime>03/19/2025 13:43:00</publishTime>
+      <publishTime>03/24/2025 16:46:37</publishTime>
     </File>
     <File Include="bin/Pub_Control.pdb">
-      <publishTime>03/19/2025 13:43:00</publishTime>
+      <publishTime>03/24/2025 16:46:37</publishTime>
     </File>
     <File Include="bin/RestSharp.dll">
       <publishTime>08/31/2012 06:22:50</publishTime>
     </File>
     <File Include="bin/SQLHelper.dll">
-      <publishTime>03/19/2025 13:43:01</publishTime>
+      <publishTime>03/24/2025 16:46:38</publishTime>
     </File>
     <File Include="bin/SQLHelper.pdb">
-      <publishTime>03/19/2025 13:43:01</publishTime>
+      <publishTime>03/24/2025 16:46:38</publishTime>
     </File>
     <File Include="bin/Swashbuckle.Core.dll">
       <publishTime>02/16/2015 01:57:08</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.dll">
-      <publishTime>03/19/2025 13:36:04</publishTime>
+      <publishTime>03/24/2025 16:19:23</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.pdb">
-      <publishTime>03/19/2025 13:36:04</publishTime>
+      <publishTime>03/24/2025 16:19:23</publishTime>
     </File>
     <File Include="bin/System.Buffers.dll">
       <publishTime>07/19/2017 18:01:28</publishTime>
@@ -285,19 +285,19 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>03/19/2025 13:36:07</publishTime>
+      <publishTime>03/24/2025 16:20:16</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>03/19/2025 13:36:07</publishTime>
+      <publishTime>03/24/2025 16:20:16</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>03/19/2025 13:43:45</publishTime>
+      <publishTime>03/24/2025 16:48:10</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>03/19/2025 13:43:45</publishTime>
+      <publishTime>03/24/2025 16:48:10</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index a909977..af515ea 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -455,6 +455,7 @@
     <Compile Include="Controllers\ZLGL\BaseSet\Gy_QualityController.cs" />
     <Compile Include="Controllers\浜轰簨绠$悊\浜哄憳灞ュ巻\HR_PersonnelResumeController.cs" />
     <Compile Include="Controllers\浠撳瓨绠$悊\Kf_MoveStockBillController.cs" />
+    <Compile Include="Controllers\浠撳瓨绠$悊\鐢熶骇棰嗘枡\Kf_ProductReceiveMaterialBillController.cs" />
     <Compile Include="Controllers\鍝佽川绠$悊\鍩虹璧勬枡\Gy_BaseInformationController.cs" />
     <Compile Include="Controllers\鍝佽川绠$悊\鐜妫�娴嬪崟\QC_EnvironmentTestDotCheckBillController.cs" />
     <Compile Include="Controllers\鍝佽川绠$悊\璐ㄩ噺鏈堝害鐩爣鍗昞QC_MonthTarGetBillController.cs" />
@@ -825,6 +826,7 @@
     <Compile Include="HttpClient.cs" />
     <Compile Include="InvokeHelper.cs" />
     <Compile Include="Log.cs" />
+    <Compile Include="Models\ClsGy_Supplier_Link.cs" />
     <Compile Include="Models\ClsGy_Supplier_PayPlan.cs" />
     <Compile Include="Models\ClsGy_MouldFileBillSub_DotCheckRule.cs" />
     <Compile Include="Models\ClsGy_MouldFileBillSub_MaintainRule.cs" />
diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user
index 3da6a2a..19ab9de 100644
--- a/WebAPI/WebAPI.csproj.user
+++ b/WebAPI/WebAPI.csproj.user
@@ -3,7 +3,7 @@
   <PropertyGroup>
     <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
     <NameOfLastUsedPublishProfile>D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
-    <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
+    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
     <NameOfLastUsedPublishProfile>C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfilewtt.pubxml</NameOfLastUsedPublishProfile>
     <NameOfLastUsedPublishProfile>C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfilewtt.pubxml</NameOfLastUsedPublishProfile>
     <NameOfLastUsedPublishProfile>D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\WebAPI\Properties\PublishProfiles\JFAPI.pubxml</NameOfLastUsedPublishProfile>
diff --git a/sdk_dingding/TopSdk/bin/Debug/TopSdk.dll b/sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
index 1859bc9..518b7c9 100644
--- a/sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
+++ b/sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
Binary files differ
diff --git a/sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb b/sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
index a352999..d84bbc9 100644
--- a/sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
+++ b/sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
Binary files differ
diff --git a/sdk_dingding/TopSdk/bin/Release/TopSdk.dll b/sdk_dingding/TopSdk/bin/Release/TopSdk.dll
index 8f13cb9..8c2875c 100644
--- a/sdk_dingding/TopSdk/bin/Release/TopSdk.dll
+++ b/sdk_dingding/TopSdk/bin/Release/TopSdk.dll
Binary files differ
diff --git a/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb b/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
index b6175ec..0d27a14 100644
--- a/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
+++ b/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt b/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt
index 0482fc8..39d4b14 100644
--- a/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt
+++ b/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt
@@ -1,3 +1,11 @@
+<<<<<<< HEAD
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.CoreCompileInputs.cache
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.AssemblyReference.cache
+=======
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.dll
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.pdb
 C:\Users\86130\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.AssemblyReference.cache
@@ -10,3 +18,4 @@
 D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.CoreCompileInputs.cache
 D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.dll
 D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.pdb
+>>>>>>> f43f81342e3babe5cc119dab8e53d573b4800547
diff --git a/sdk_dingding/TopSdk/obj/Debug/TopSdk.dll b/sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
index 1859bc9..518b7c9 100644
--- a/sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
+++ b/sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb b/sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
index a352999..d84bbc9 100644
--- a/sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
+++ b/sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..b3a6f35
--- /dev/null
+++ b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.FileListAbsolute.txt b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..35ce590
--- /dev/null
+++ b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.FileListAbsolute.txt
@@ -0,0 +1,6 @@
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\bin\Release\TopSdk.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\bin\Release\TopSdk.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Release\TopSdk.csproj.CoreCompileInputs.cache
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Release\TopSdk.dll
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Release\TopSdk.pdb
+D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\sdk_dingding\TopSdk\obj\Release\TopSdk.csproj.AssemblyReference.cache
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.dll b/sdk_dingding/TopSdk/obj/Release/TopSdk.dll
new file mode 100644
index 0000000..8c2875c
--- /dev/null
+++ b/sdk_dingding/TopSdk/obj/Release/TopSdk.dll
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb b/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb
new file mode 100644
index 0000000..0d27a14
--- /dev/null
+++ b/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb
Binary files differ

--
Gitblit v1.9.1