From 611aa0de379591132a470759382fbc55b13c7e46 Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期四, 26 三月 2026 15:40:25 +0800
Subject: [PATCH] 1

---
 SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt      |    6 
 WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs                      |    2 
 WebAPI/Controllers/条码管理/WEBSController.cs                                |   15 +
 WebAPI/WebAPI.csproj.user                                                |    4 
 OAM/OAM.csproj                                                           |   18 -
 WebAPI/Controllers/MJGL/Sc_MouldProdOutBillController.cs                 |    6 
 WebAPI/Controllers/MJGL/Sc_MouldOutRequestBillController.cs              |    4 
 WebAPI/App_Start/WebApiConfig.cs                                         |    6 
 DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache            |    0 
 SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache           |    0 
 WebAPI/Global.asax.cs                                                    |    1 
 sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache      |    0 
 WebAPI/Service/JwtAuthorizeAttribute.cs                                  |   94 ++++++-
 WebAPI/Controllers/MJGL/Sc_MouldProdBackBillController.cs                |    6 
 WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs             |   53 ++--
 NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs                    |    4 
 WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs             |    3 
 WebAPI/Service/TokenAppendHandler.cs                                     |   65 +++++
 WebAPI/Controllers/MJGL/Sc_MouldInRequestBillController.cs               |    8 
 WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs                   |  110 +++++++++
 WebAPI/Utility/JWTHelper.cs                                              |   27 ++
 Model/obj/Release/Model.csproj.AssemblyReference.cache                   |    0 
 WebAPI/Controllers/WebAPIController.cs                                   |   18 +
 WarM/条码打印/Gy_BarCodeBill_Rework.cs                                       |   14 
 DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache           |    0 
 WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs            |   22 +-
 WebAPI/Controllers/仓存管理/调拨盘点/Kf_MoveStockRequestBillController.cs        |    4 
 SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache   |    0 
 WebAPI/Controllers/仓存管理/领料发货/Kf_StockOutRequestBillController.cs         |    4 
 WebAPI/Controllers/BaseSet/Gy_DriverController.cs                        |    7 
 WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user             |   12 
 sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt         |    6 
 OAM/OAM.csproj.user                                                      |    2 
 WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user                  |   57 +++--
 WebAPI/WebAPI.csproj                                                     |    2 
 WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs                    |   67 ++++++
 37 files changed, 508 insertions(+), 139 deletions(-)

diff --git a/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache b/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
index eab4eff..b388d5e 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 a98803e..e2df193 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
Binary files differ
diff --git a/Model/obj/Release/Model.csproj.AssemblyReference.cache b/Model/obj/Release/Model.csproj.AssemblyReference.cache
index bf0bcf7..6ee274b 100644
--- a/Model/obj/Release/Model.csproj.AssemblyReference.cache
+++ b/Model/obj/Release/Model.csproj.AssemblyReference.cache
Binary files differ
diff --git a/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 22d2128..4f6d8de 100644
--- a/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/OAM/OAM.csproj b/OAM/OAM.csproj
index 7bc31a7..1961575 100644
--- a/OAM/OAM.csproj
+++ b/OAM/OAM.csproj
@@ -95,18 +95,6 @@
     <Compile Include="Form2.Designer.cs">
       <DependentUpon>Form2.cs</DependentUpon>
     </Compile>
-    <Compile Include="OA_EmpMessageBill.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="OA_EmpMessageBill.designer.cs">
-      <DependentUpon>OA_EmpMessageBill.cs</DependentUpon>
-    </Compile>
-    <Compile Include="OA_EmpMessageBillList.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="OA_EmpMessageBillList.designer.cs">
-      <DependentUpon>OA_EmpMessageBillList.cs</DependentUpon>
-    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="淇℃伅骞冲彴\OA_ComFileBill.cs">
       <SubType>Form</SubType>
@@ -695,12 +683,6 @@
     <EmbeddedResource Include="Form2.resx">
       <SubType>Designer</SubType>
       <DependentUpon>Form2.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="OA_EmpMessageBill.resx">
-      <DependentUpon>OA_EmpMessageBill.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="OA_EmpMessageBillList.resx">
-      <DependentUpon>OA_EmpMessageBillList.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="淇℃伅骞冲彴\OA_ComFileBill.resx">
       <DependentUpon>OA_ComFileBill.cs</DependentUpon>
diff --git a/OAM/OAM.csproj.user b/OAM/OAM.csproj.user
index 23bc47a..474bb5d 100644
--- a/OAM/OAM.csproj.user
+++ b/OAM/OAM.csproj.user
@@ -9,6 +9,6 @@
     <ErrorReportUrlHistory />
     <FallbackCulture>zh-CN</FallbackCulture>
     <VerifyUploadedFiles>false</VerifyUploadedFiles>
-    <ProjectView>ShowAllFiles</ProjectView>
+    <ProjectView>ProjectFiles</ProjectView>
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
index d4a33f2..5fa8201 100644
--- a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
+++ b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
Binary files differ
diff --git a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache
index fea44e6..f5e894a 100644
--- a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache
+++ b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.AssemblyReference.cache
Binary files differ
diff --git a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
index 9082937..7862f67 100644
--- a/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
+++ b/SyntacticSugar/obj/Debug/SyntacticSugar.csproj.FileListAbsolute.txt
@@ -4,3 +4,9 @@
 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
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.dll
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\bin\Debug\SyntacticSugar.pdb
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.AssemblyReference.cache
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.csproj.CoreCompileInputs.cache
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.dll
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\SyntacticSugar\obj\Debug\SyntacticSugar.pdb
diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_Rework.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_Rework.cs"
index 29150cc..afa5a6c 100644
--- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_Rework.cs"
+++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_Rework.cs"
@@ -600,14 +600,20 @@
                 string Ret = "";
                 if (oSystemParameter.ShowBill(ref Ret))
                 {
-                    //鍒ゆ柇瀹㈡埛涓洪緳灞辨苯閰�
-                    if (oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl != "")//鐢熸垚鐗╂枡鏉$爜鏃讹紝鏈哄瀷鐮佷笉鍏佽涓虹┖,濡傝嫢鐗╂枡浠g爜鍓嶇紑涓嶄负G鎴朙鐨勶紝鍙烦杩囨帶鍒�
+                    //鐢熸垚鐗╂枡鏉$爜鏃讹紝鏈哄瀷鐮佷笉鍏佽涓虹┖,濡傝嫢鐗╂枡浠g爜鍓嶇紑涓嶄负G鎴朙鐨勶紝鍙烦杩囨帶鍒�
+                    if (oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl != "")
                     {
                         string[] HMaterNumberPrefix = oSystemParameter.omodel.Gy_BarCodeBill_Rework_Ctrl.Split(',');
-
+                        
                         for (int j = 0; j < grdMain.Rows.Count; j++)
                         {
-                            char HMaterfirstChar = grdMain.Rows[j].Cells[HSubjoin2Col].Value.ToString()[0];
+                            if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) == 0)
+                            {
+                                continue;
+                            }
+
+                            char HMaterfirstChar = grdMain.Rows[j].Cells[HMaterNumberCol].Value.ToString()[0];
+
                             if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0 && grdMain.Rows[j].Cells[HSubjoin2Col].Value.ToString() == "" && HMaterNumberPrefix.Contains(HMaterfirstChar.ToString()))
                             {
                                 MessageBox.Show("绗�" + (j + 1) + "琛岋紝鏈哄瀷鐮佹湭缁存姢锛屼笉鍏佽鐢熸垚鏉$爜");
diff --git a/WebAPI/App_Start/WebApiConfig.cs b/WebAPI/App_Start/WebApiConfig.cs
index 511fe89..7ddc912 100644
--- a/WebAPI/App_Start/WebApiConfig.cs
+++ b/WebAPI/App_Start/WebApiConfig.cs
@@ -29,6 +29,12 @@
                 routeTemplate: "actionapi/{controller}/{action}/{id}",
                 defaults: new { id = RouteParameter.Optional }
             );
+
+            // 鍏ㄥ眬鍚敤 JWT 璁よ瘉
+            // config.Filters.Add(new JwtAuthorizeAttribute());
+
+            // 鍚敤JWT鍝嶅簲鎷︽埅鍣紝鑷姩鍒锋柊JWT
+            // config.MessageHandlers.Add(new TokenAppendHandler());
         }
     }
 }
diff --git a/WebAPI/Controllers/BaseSet/Gy_DriverController.cs b/WebAPI/Controllers/BaseSet/Gy_DriverController.cs
index 90c2023..e0909ac 100644
--- a/WebAPI/Controllers/BaseSet/Gy_DriverController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_DriverController.cs
@@ -501,7 +501,7 @@
                 string HHelpCode = list[0].HHelpCode;
                 string HModifyEmp = msg3;
                 string HMakeEmp = msg3;
-                bool HStopflag = list[0].HStopflag==null?false:true;
+                int  HStopflag = list[0].HStopflag==0?0:1;
                 long HCREATEORGID = list[0].HCREATEORGID;
                 long HUSEORGID = HUSEORGID_1;
                 long HCompID = list[0].HCompID;
@@ -577,7 +577,7 @@
                         " (HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                         ",HLevel,HEndFlag,HStopflag,HRemark,HUSEORGID,HCREATEORGID,HMakeEmp,HMakeTime,HIDCard,HPhone,HDriverCardPic,HDriverCardType,HIDCardPic,HEmpType,HCompID) " +
                         " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() +
-                        "," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'"   +
+                        "," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + HStopflag + ",'" + HRemark + "'"   +
                           "," + HUSEORGID + "," + HCREATEORGID + ",'" + msg3 + "',getdate()," +"'"+ HIDCard +"',"+  
                           "'"+ HPhone+"','"+ HDriverCardPic+"','"+ HDriverCardType + "','"+ HIDCardPic +"','"+ HEmpType+"',"+ HCompID+
                           ")", ref DBUtility.ClsPub.sExeReturnInfo);
@@ -611,7 +611,7 @@
                         ",HParentID=" + HParentID +
                         ",HUSEORGID=" + HUSEORGID.ToString() +
                         ",HCREATEORGID=" + HCREATEORGID.ToString() +
-                        ",HStopflag=" + Convert.ToString(HStopflag ? 1 : 0) +
+                        ",HStopflag=" + HStopflag +
                         ",HModifyEmp='" + HModifyEmp + "'" +
                         ",HModifyTime='" + DateTime.Now + "'" +
                         ",HIDCard='" + HIDCard + "'" +
@@ -621,7 +621,6 @@
                         ",HIDCardPic='" + HIDCardPic + "'" +
                         ",HEmpType='" + HEmpType + "'" +
                         ",HCompID=" + HCompID + "" +
-
 
                         ",HRemark= '" + HRemark + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                     //淇敼瀛愰」鐩唬鐮�
diff --git a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
index 0607669..5e7acd7 100644
--- a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
+++ b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
@@ -12,6 +12,7 @@
 using WebAPI.Models;
 namespace WebAPI.Controllers.BaseSet
 {
+    [AllowAnonymous]
     public class Xt_grdAlignment_WMESController : ApiController
     {
         private json objJsonResult = new json();
@@ -875,6 +876,8 @@
         #region 鎶ラ敊淇℃伅 鏌ヨ
         [Route("Xt_grdAlignment_WMES/SelectMessageError")]
         [HttpGet]
+        [AllowAnonymous]
+
         public object SelectMessageError(string ErrorCode)
         {
             try
diff --git a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
index bf5a886..57900c6 100644
--- a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
+++ b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
@@ -631,8 +631,8 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
 
 
diff --git a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
index a9fd522..5d1b277 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -219,6 +219,15 @@
                     sBillBarCode = NewBarCode[0];
                 }
                 string sBillNo = sBillBarCode;
+                //鎴彇鏉$爜绫诲瀷 鍓嶄袱浣�
+                string BillNoType1 = sBillNo.Substring(0, Math.Min(2, sBillNo.Length));
+                switch (BillNoType1)
+                {
+                    case "OP"://娴佽浆鍗�
+                        //鍚屾宸ュ簭娴佽浆鍗�
+                        oCN.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_ProcExchAndRouting '" + sBillNo + "'");
+                        break;
+                }
                 //寰楀埌淇℃伅
                 ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where 鍗曟嵁鍙�= '" + sBillNo + "'", "h_v_Sc_ProcessExchangeBillList");
                 //鍐欏叆淇℃伅
@@ -3389,7 +3398,7 @@
                 sRemark = sRemark + " 锛涗繚瀛樺悗鎺у埗" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
 
                 //杩斿洖API閫掑叆鎵�闇�鏁版嵁
-                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_ProdMateRequest_CLD " + oMain.HProcExchInterID.ToString() + "," + oMain.HProcExchEntryID.ToString() + "," + oMain.HProcNo.ToString() + "," + oMain.HQty.ToString(), "h_p_MES_StationEntrustInBill_ProdMateRequest_CLD");
+                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_ProdMateRequest_CLD '" + oMain.HBillNo + "'," + oMain.HProcExchInterID.ToString() + "," + oMain.HProcExchEntryID.ToString() + "," + oMain.HProcNo.ToString() + "," + oMain.HQty.ToString(), "h_p_MES_StationEntrustInBill_ProdMateRequest_CLD");
                 if (Ds == null || Ds.Tables[0].Rows.Count == 0)
                 {
                     sErrMsg = "鏈幏鍙栧埌API鎵�闇�閫掑叆鏁版嵁锛�";
@@ -3476,10 +3485,10 @@
                 "\"FOutProcessId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutProcessId"]) + "\" }," +
                 //"FOutEmpId": {"FSTAFFNUMBER": ""},
                 "\"FOutOperDescr\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutOperDescr"]) + "\"," +
-                //"FOutPurOrgId": {"FNumber": ""},
+                "\"FOutPurOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutPurOrgId"]) + "\" }," +
                 "\"FInProOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInProOrgId"]) + "\" }," +
                 "\"FInOPBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInOPBillNo"]) + "\"," +
-                //"FOutSupplier": {"FNUMBER": ""},
+                "\"FOutSupplier\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutSupplier"]) + "\" }," +
                 "\"FOutOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutOperId"]) + "\"," +
                 "\"FInProcessId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInProcessId"]) + "\" }," +
                 "\"FInDeptId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInDeptId"]) + "\" }," +
@@ -3517,12 +3526,12 @@
                 "\"FIsInspect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsInspect"]) + "\"," +
                 "\"FQCSchemeId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FQCSchemeId"]) + "\" }," +
                 "\"FSendProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailPrice"]) + "\"," +
-                //"FReceiveCurrency": {"FNUMBER": ""},
-                //"FReceiveQualifiedPrice": 0,
-                //"FReceiveProFailPrice": 0,
-                //"FReceiveMatFailPrice": 0,
+                "\"FReceiveCurrency\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCurrency"]) + "\" }," +
+                "\"FReceiveQualifiedPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedPrice"]) + "\"," +
+                "\"FReceiveProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailPrice"]) + "\"," +
+                "\"FReceiveMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailPrice"]) + "\"," +
                 "\"FReceiveValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveValuationUnitId"]) + "\" }," +
-                //"FReceiveTaxRate": 0,
+                "\"FReceiveTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveTaxRate"]) + "\"," +
                 "\"FSendMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailPrice"]) + "\"," +
                 //"FOperInspectSelectQty": 0,
                 "\"FSendValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendValuationUnitId"]) + "\" }," +
@@ -3580,9 +3589,9 @@
                 "\"FDemandBillEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandBillEntryId"]) + "\"," +
                 //"FInspectEntryId": 0,
                 "\"FConvertType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConvertType"]) + "\"," +
-                //"FReceiveQualifiedTaxPrice": 0,
-                //"FReceiveProFailTaxPrice": 0,
-                //"FReceiveMatFailTaxPrice": 0,
+                "\"FReceiveQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedTaxPrice"]) + "\"," +
+                "\"FReceiveProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailTaxPrice"]) + "\"," +
+                "\"FReceiveMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailTaxPrice"]) + "\"," +
                 "\"FSendQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedTaxPrice"]) + "\"," +
                 "\"FSendProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailTaxPrice"]) + "\"," +
                 "\"FSendMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailTaxPrice"]) + "\"," +
@@ -3762,7 +3771,7 @@
             try
             {
                 //杩斿洖API閫掑叆鎵�闇�鏁版嵁
-                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_ProdMateRequest_CLD " + HProcExchInterID.ToString() + "," + HProcExchEntryID.ToString() + "," + HProcNo.ToString() + "," + HQty.ToString(), "h_p_MES_StationEntrustInBill_ProdMateRequest_CLD");
+                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_ProdMateRequest_CLD '" + HBillNo + "'," + HProcExchInterID.ToString() + "," + HProcExchEntryID.ToString() + "," + HProcNo.ToString() + "," + HQty.ToString(), "h_p_MES_StationEntrustInBill_ProdMateRequest_CLD");
                 if (Ds == null || Ds.Tables[0].Rows.Count == 0)
                 {
                     sErrMsg = "鏈幏鍙栧埌API鎵�闇�閫掑叆鏁版嵁锛�";
@@ -3849,10 +3858,10 @@
                 "\"FOutProcessId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutProcessId"]) + "\" }," +
                 //"FOutEmpId": {"FSTAFFNUMBER": ""},
                 "\"FOutOperDescr\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutOperDescr"]) + "\"," +
-                //"FOutPurOrgId": {"FNumber": ""},
+                "\"FOutPurOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutPurOrgId"]) + "\" }," +
                 "\"FInProOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInProOrgId"]) + "\" }," +
                 "\"FInOPBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInOPBillNo"]) + "\"," +
-                //"FOutSupplier": {"FNUMBER": ""},
+                "\"FOutSupplier\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutSupplier"]) + "\" }," +
                 "\"FOutOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutOperId"]) + "\"," +
                 "\"FInProcessId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInProcessId"]) + "\" }," +
                 "\"FInDeptId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInDeptId"]) + "\" }," +
@@ -3890,12 +3899,12 @@
                 "\"FIsInspect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsInspect"]) + "\"," +
                 "\"FQCSchemeId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FQCSchemeId"]) + "\" }," +
                 "\"FSendProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailPrice"]) + "\"," +
-                //"FReceiveCurrency": {"FNUMBER": ""},
-                //"FReceiveQualifiedPrice": 0,
-                //"FReceiveProFailPrice": 0,
-                //"FReceiveMatFailPrice": 0,
+                "\"FReceiveCurrency\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCurrency"]) + "\" }," +
+                "\"FReceiveQualifiedPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedPrice"]) + "\"," +
+                "\"FReceiveProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailPrice"]) + "\"," +
+                "\"FReceiveMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailPrice"]) + "\"," +
                 "\"FReceiveValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveValuationUnitId"]) + "\" }," +
-                //"FReceiveTaxRate": 0,
+                "\"FReceiveTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveTaxRate"]) + "\"," +
                 "\"FSendMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailPrice"]) + "\"," +
                 //"FOperInspectSelectQty": 0,
                 "\"FSendValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendValuationUnitId"]) + "\" }," +
@@ -3953,9 +3962,9 @@
                 "\"FDemandBillEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandBillEntryId"]) + "\"," +
                 //"FInspectEntryId": 0,
                 "\"FConvertType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConvertType"]) + "\"," +
-                //"FReceiveQualifiedTaxPrice": 0,
-                //"FReceiveProFailTaxPrice": 0,
-                //"FReceiveMatFailTaxPrice": 0,
+                "\"FReceiveQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedTaxPrice"]) + "\"," +
+                "\"FReceiveProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailTaxPrice"]) + "\"," +
+                "\"FReceiveMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailTaxPrice"]) + "\"," +
                 "\"FSendQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedTaxPrice"]) + "\"," +
                 "\"FSendProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailTaxPrice"]) + "\"," +
                 "\"FSendMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailTaxPrice"]) + "\"," +
diff --git a/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
index a124c09..612daac 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationEntrustOutBillController.cs
@@ -1556,7 +1556,7 @@
             try
             {
                 //杩斿洖API閫掑叆鎵�闇�鏁版嵁
-                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustOutBill_ProdMateRequest_CLD " + HProcExchInterID.ToString() + "," + HProcExchEntryID.ToString() + "," + HProcNo.ToString() + "," + HQty.ToString(), "h_p_MES_StationEntrustOutBill_ProdMateRequest_CLD");
+                DataSet Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustOutBill_ProdMateRequest_CLD '" + HBillNo + "'," + HProcExchInterID.ToString() + "," + HProcExchEntryID.ToString() + "," + HProcNo.ToString() + "," + HQty.ToString(), "h_p_MES_StationEntrustOutBill_ProdMateRequest_CLD");
                 if (Ds == null || Ds.Tables[0].Rows.Count == 0)
                 {
                     sErrMsg = "鏈幏鍙栧埌API鎵�闇�閫掑叆鏁版嵁锛�";
@@ -1655,11 +1655,11 @@
                 "\"FInOperDescr\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInOperDescr"]) + "\"," +
                 "\"FOutIsOutSrc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOutIsOutSrc"]) + "\"," +
                 "\"FInSeqNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInSeqNumber"]) + "\"," +
-                //"\"FInPurOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInPurOrgId"]) + "\" }," +
+                "\"FInPurOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInPurOrgId"]) + "\" }," +
                 "\"FInOperNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInOperNumber"]) + "\"," +
                 "\"FInWorkCenterId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInWorkCenterId"]) + "\" }," +
                 //"FInEmpId": {"FSTAFFNUMBER": ""},
-                //"\"FInSupplier\":{ \"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInSupplier"]) + "\" }," +
+                "\"FInSupplier\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FInSupplier"]) + "\" }," +
                 "\"FOperApplyQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOperApplyQty"]) + "\"," +
                 "\"FTransferQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferQty"]) + "\"," +
                 "\"FApplyQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FApplyQty"]) + "\"," +
@@ -1680,22 +1680,22 @@
                 //"FPreReworkQty": 0,
                 //"FMatFailQty": 0,
                 //"FValMatFailQty": 0,
-                //"\"FSendCurrency\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendCurrency"]) + "\" }," +
+                "\"FSendCurrency\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendCurrency"]) + "\" }," +
                 "\"FIsInspect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsInspect"]) + "\"," +
                 "\"FQCSchemeId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FQCSchemeId"]) + "\" }," +
-                //"\"FSendProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailPrice"]) + "\"," +
+                "\"FSendProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailPrice"]) + "\"," +
                 "\"FReceiveCurrency\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCurrency"]) + "\" }," +
                 "\"FReceiveQualifiedPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedPrice"]) + "\"," +
                 "\"FReceiveProFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailPrice"]) + "\"," +
                 "\"FReceiveMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailPrice"]) + "\"," +
                 "\"FReceiveValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveValuationUnitId"]) + "\" }," +
                 "\"FReceiveTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveTaxRate"]) + "\"," +
-                //"\"FSendMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailPrice"]) + "\"," +
+                "\"FSendMatFailPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailPrice"]) + "\"," +
                 //"FOperInspectSelectQty": 0,
                 "\"FSendValuationUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendValuationUnitId"]) + "\" }," +
                 //"FInspectSelectQty": 0,
-                //"\"FSendTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendTaxRate"]) + "\"," +
-                //"\"FSendQualifiedPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedPrice"]) + "\"," +
+                "\"FSendTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendTaxRate"]) + "\"," +
+                "\"FSendQualifiedPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedPrice"]) + "\"," +
                 //"FOperQuaSettleSelQty": 0,
                 //"FValQuaSettleSelQty": 0,
                 //"FQuaSettleSelQty": 0,
@@ -1750,9 +1750,9 @@
                 "\"FReceiveQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveQualifiedTaxPrice"]) + "\"," +
                 "\"FReceiveProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveProFailTaxPrice"]) + "\"," +
                 "\"FReceiveMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveMatFailTaxPrice"]) + "\"," +
-                //"\"FSendQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedTaxPrice"]) + "\"," +
-                //"\"FSendProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailTaxPrice"]) + "\"," +
-                //"\"FSendMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailTaxPrice"]) + "\"," +
+                "\"FSendQualifiedTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendQualifiedTaxPrice"]) + "\"," +
+                "\"FSendProFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendProFailTaxPrice"]) + "\"," +
+                "\"FSendMatFailTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSendMatFailTaxPrice"]) + "\"," +
                 "\"FRateOperQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRateOperQty"]) + "\"," +
                 "\"FRateProQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRateProQty"]) + "\"," +
                 "\"FRateValQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRateValQty"]) + "\"," +
diff --git a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
index c55dcbc..dbe680e 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -3792,15 +3792,15 @@
         #region 宸ュ簭姹囨姤鍗曡幏鍙栧搴旀墍浠ュ簭鍒�
         [Route("Cj_StationOutBill/getAllHSEQ")]
         [HttpGet]
-        public object getAllHSEQ(string HInterID)
+        public object getAllHSEQ(int HInterID)
         {
             try
             {
                 //寰楀埌淇℃伅锛堝澶栨爣璁颁负0鏃讹紝娴佽浆鏍囪涓�1鏃�
-                ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillSEQ  where HInterID= " + HInterID, "Sc_ProcessExchangeBillSEQ");
+                DataSet DS = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillSEQ  where HInterID= " + HInterID, "Sc_ProcessExchangeBillSEQ");
                 
                 //鍐欏叆淇℃伅
-                if (ds == null || ds.Tables[0].Rows.Count == 0)
+                if (DS == null || DS.Tables[0].Rows.Count == 0)
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -3811,7 +3811,7 @@
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "[0000-1-037]Sucess锛�";
-                objJsonResult.data = ds.Tables[0];
+                objJsonResult.data = DS.Tables[0];
                 return objJsonResult;
             }
             catch (Exception e)
@@ -4879,6 +4879,7 @@
 
         #endregion
 
+        #region 宸ュ簭姹囨姤锛屽鏍稿墠淇敼
         //瀹℃牳锛屽甫缂栬緫鍔熻兘
         [Route("Cj_StationOutBill/setOtherProperty")]
         [HttpPost]
@@ -5031,5 +5032,106 @@
                 return objJsonResult;
             }
         }
+        #endregion
+
+        #region 宸ュ簭姹囨姤鑷姩鐢熸垚杩涚珯鎺ユ敹鍗�
+        //宸ュ簭姹囨姤寮�宸ユ寜閽嚜鍔ㄥ紑宸�
+        [Route("Cj_StationOutBill/startTranslating")]
+        [HttpGet]
+        public object startTranslating(int HProcExchInterID,int HProcExchEntryID,int HOrgID,int HProcNo,string user)
+        {
+            try
+            {
+                oCN.BeginTran();
+                //鍒ゆ柇鏄惁鏈夌紪杈戞潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "[3790-2-003]寮�宸ュ崟鏃犵紪杈戞潈闄�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                string HBillType = "3790";
+                string HBillNo = "";
+                Int64 HInterID = 0;//鏄剧ず鐨勫瓧娈�
+                HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo);
+                HBillNo = DBUtility.ClsPub.CreateBillCode(HBillType, ref DBUtility.ClsPub.sExeReturnInfo, true);
+                int HBillStatus = 0;
+                string HMaker = user;
+                int HYear = DateTime.Now.Year;
+                double HPeriod = DateTime.Now.Month;
+                string HRemark = "鍑烘垬姹囨姤鍗曡嚜鍔ㄥ紑宸�";//澶囨敞
+                long HICMOInterID = 0;//浠诲姟鍗旾D
+                string HICMOBillNo = "";//浠诲姟鍗�
+                long HProcPlanInterID = 0;
+                long HProcPlanEntryID = 0;
+                string HProcPlanBillNo = "";
+                long HMaterID = 1;//浜у搧ID
+                long HProcID = 1;//褰撳墠宸ュ簭
+                double HICMOQty = 0;//浠诲姟鍗曟暟閲�
+                double HPlanQty = 0;//娴佽浆鍗℃暟閲�
+                long HSourceID = 0;//鐢熶骇璧勬簮ID
+                long HGroupID = 0;//鐝粍ID
+                long HDeptID = 0;
+                long HEmpID = 0;//鎺ユ敹浜篒D
+                string HBarCode = "";//鏉″舰鐮�
+                string HAddr = "";
+                string HBarCodeMaker = "";
+                long HSupID = 0;
+                double HQty = 0;//鎺ユ敹鏁伴噺
+                double HPrice = 0;
+                double HMoney = 0;
+                double HPieceQty = 0;//鎺ユ敹浠舵暟
+                string HSourceName = "";//鐢熶骇璧勬簮鍚嶇О
+                long HCenterID = 0;//宸ヤ綔涓績ID
+                string HOrderProcNO = "";//璁㈠崟璺熻釜鍙�
+                long HPRDOrgID = HOrgID;//缁勭粐ID
+                double HmaterOutqty = 0;//鐧藉澂鍙戝竷
+                string HProcExchBillNo = "";//涓婃枡闃查敊鍗曞崟鎹彿
+                int HMainInterID = 0;//鐧藉澂鍙戝竷
+                oCN.RunProc("Insert Into Sc_StationInBillMain " +
+                    "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" +
+                    ",HYear,HPeriod,HRemark" +
+                    ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" +
+                    ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" +
+                    ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" +
+                    ",HSupID,HQty,HPrice,HMoney,HPieceQty,HSourceName,HCenterID" +
+                    ",HProcNo,HOrderProcNO,HMainInterID,HPRDOrgID" +
+                    ",HmaterOutqty" +
+                    ") " +
+                    " values('" + HBillType + "','" + (HBillType) + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" +
+                    "," + HYear + "," + HPeriod + ",'" + HRemark + "'" +
+                    "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID +
+                    ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID +
+                    "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" +
+                    "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty + ",'" + HSourceName + "'," + HCenterID +
+                    ",'" + HProcNo + "','" + HOrderProcNO + "','" + HMainInterID + "'," + HPRDOrgID +
+                    "," + HmaterOutqty + ") ");
+
+
+                oCN.Commit();
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                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
+
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs b/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
index 07728a3..b248bff 100644
--- a/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
+++ b/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -2648,6 +2648,8 @@
         #region 宸ヨ壓璺嚎闇�瑕佹垜瀹℃壒娴佸鎵圭殑
         [Route("Gy_Routing/NeedChecklist")]
         [HttpGet]
+        [AllowAnonymous]
+
         public object NeedChecklist(string user, string userid)
         {
             try
diff --git a/WebAPI/Controllers/MJGL/Sc_MouldInRequestBillController.cs b/WebAPI/Controllers/MJGL/Sc_MouldInRequestBillController.cs
index c049f50..2c1d421 100644
--- a/WebAPI/Controllers/MJGL/Sc_MouldInRequestBillController.cs
+++ b/WebAPI/Controllers/MJGL/Sc_MouldInRequestBillController.cs
@@ -350,11 +350,11 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
-       
-              
+
+
 
                 // 鐩存帴鏇存柊鎵樻暟
                 string updateSql = $@"
diff --git a/WebAPI/Controllers/MJGL/Sc_MouldOutRequestBillController.cs b/WebAPI/Controllers/MJGL/Sc_MouldOutRequestBillController.cs
index 54fb7d7..720e776 100644
--- a/WebAPI/Controllers/MJGL/Sc_MouldOutRequestBillController.cs
+++ b/WebAPI/Controllers/MJGL/Sc_MouldOutRequestBillController.cs
@@ -515,8 +515,8 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
                 // 鐩存帴鏇存柊鎵樻暟
                 string updateSql = $@"
diff --git a/WebAPI/Controllers/MJGL/Sc_MouldProdBackBillController.cs b/WebAPI/Controllers/MJGL/Sc_MouldProdBackBillController.cs
index 64170c5..b428abf 100644
--- a/WebAPI/Controllers/MJGL/Sc_MouldProdBackBillController.cs
+++ b/WebAPI/Controllers/MJGL/Sc_MouldProdBackBillController.cs
@@ -410,11 +410,11 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
 
-         
+
                 string updateSql = $@"
                     UPDATE Sc_MouldStockBillMain  
                     SET HPackQtys = {newPallet} 
diff --git a/WebAPI/Controllers/MJGL/Sc_MouldProdOutBillController.cs b/WebAPI/Controllers/MJGL/Sc_MouldProdOutBillController.cs
index b1bec67..3b424e0 100644
--- a/WebAPI/Controllers/MJGL/Sc_MouldProdOutBillController.cs
+++ b/WebAPI/Controllers/MJGL/Sc_MouldProdOutBillController.cs
@@ -352,11 +352,11 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
 
-     
+
 
                 // 鐩存帴鏇存柊鎵樻暟
                 string updateSql = $@"
diff --git a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
index 37de902..b8491fd 100644
--- a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
+++ b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
@@ -1322,6 +1322,73 @@
         }
         #endregion
 
+        #region 璁惧杩愯鎶ヨ〃(鍒嗛〉)
+        [Route("SB_EquipRunningStatus/ReportPage")]
+        [HttpGet]
+        public object ReportPage(string sWhere, string user, int page=1, int size=50)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileList", 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_Sb_EquipRunningStatusReport " + sWhere + " order by 鎵�灞炴棩鏈� desc", "h_v_Sb_EquipRunningStatusReport");
+                }
+                else
+                {
+                    string sql1 = "select * from h_v_Sb_EquipRunningStatusReport where 1 = 1 ";
+                    string sql = sql1 + sWhere + " order by 鎵�灞炴棩鏈� desc";
+                    sql += $" offset {(page - 1) * size} rows fetch next {size} rows only";
+                    ds = oCN.RunProcReturn(sql, "h_v_Sb_EquipRunningStatusReport");
+                }
+
+                //娣诲姞鍒楀悕
+                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;
+
+                //if (ds.Tables[0].Rows.Count != 0 && ds != null)
+                //{
+
+                //}
+                //else
+                //{
+                //    objJsonResult.code = "0";
+                //    objJsonResult.count = 0;
+                //    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 璁惧杩愯鐘舵�佹姤琛�
 
         [Route("SB_EquipRunningStatus/Report")]
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 14e054b..6a78309 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -340,6 +340,7 @@
         /// <returns></returns>
         [Route("Web/GetUser")]
         [HttpGet]
+        [AllowAnonymous]
         public object GetUser(string UserName, string PassWord, string HOrgName)
         {
             try
@@ -384,11 +385,23 @@
                     }
                 }
 
+                if (!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鐧诲綍寮傚父锛乀oken 鐢熸垚寮傚父锛屾棤娉曡幏鍙栧叕鍙镐俊鎭紒";
+                }
+
+                string tokenStr = Utility.JWTHelper.GenerateToken(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
+
+
                 objjson.code = "0";
                 objjson.count = 1;
                 objjson.Message = "[0000-1-073]鐧诲綍鎴愬姛锛�";
                 objjson.data = ds.Tables[0];
-                return objjson;
+                JObject jobjJsonResult = JObject.FromObject(objjson);
+                jobjJsonResult["token"] = tokenStr;
+                return jobjJsonResult;
 
             }
             catch (Exception e)
@@ -2619,6 +2632,7 @@
         /// <returns></returns>
         [Route("Web/GetDataBases")]
         [HttpGet]
+        [AllowAnonymous]
         public object GetDataBases()
         {
             try
@@ -18965,6 +18979,7 @@
         /// <returns></returns>
         [Route("Web/GetOrganizations")]
         [HttpGet]
+        [AllowAnonymous]
         public object GetOrganizations()
         {
             try
@@ -18997,6 +19012,7 @@
         /// <returns></returns>
         [Route("Web/BaseInfo")]
         [HttpGet]
+        [AllowAnonymous]
         public object GetBaseInfo()
         {
             try
diff --git "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\350\260\203\346\213\250\347\233\230\347\202\271/Kf_MoveStockRequestBillController.cs" "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\350\260\203\346\213\250\347\233\230\347\202\271/Kf_MoveStockRequestBillController.cs"
index 8799c5d..7c37f51 100644
--- "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\350\260\203\346\213\250\347\233\230\347\202\271/Kf_MoveStockRequestBillController.cs"
+++ "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\350\260\203\346\213\250\347\233\230\347\202\271/Kf_MoveStockRequestBillController.cs"
@@ -429,8 +429,8 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
 
 
diff --git "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\351\242\206\346\226\231\345\217\221\350\264\247/Kf_StockOutRequestBillController.cs" "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\351\242\206\346\226\231\345\217\221\350\264\247/Kf_StockOutRequestBillController.cs"
index 0413d3c..4d28779 100644
--- "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\351\242\206\346\226\231\345\217\221\350\264\247/Kf_StockOutRequestBillController.cs"
+++ "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\351\242\206\346\226\231\345\217\221\350\264\247/Kf_StockOutRequestBillController.cs"
@@ -319,8 +319,8 @@
                 if (hmainid <= 0)
                     return new { code = "0", count = 0, Message = "鍗曟嵁ID涓嶈兘涓虹┖锛�" };
 
-                if (newPallet <= 0)
-                    return new { code = "0", count = 0, Message = "鎵樻暟蹇呴』澶т簬0锛�" };
+                if (newPallet < 0)
+                    return new { code = "0", count = 0, Message = "鎵樻暟涓嶈兘涓鸿礋鏁帮紒" };
 
 
 
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index f77c62f..5a74ab9 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -46,6 +46,7 @@
         /// <returns></returns>
         [Route("WEBSController/GetUser_Json")]
         [HttpGet]
+        [AllowAnonymous]
         public object GetUser_Json(string HUserNumber, string HPassWord, Int64 HStockOrgID, string HStockOrgName)
         {
             try
@@ -91,11 +92,23 @@
                         return objJsonResult;
                     }
 
+                    if(!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鐧诲綍寮傚父锛乀oken 鐢熸垚寮傚父锛屾棤娉曡幏鍙栧叕鍙镐俊鎭紒";
+                    }
+
+                    string tokenStr = JWTHelper.GenerateToken(ds.Tables[0].Rows[0]["Czybm"].ToString(), ds.Tables[0].Rows[0]["Czmm"].ToString());
+
+
                     objJsonResult.code = "0";
                     objJsonResult.count = 1;
                     objJsonResult.Message = "鐧诲綍鎴愬姛锛�";
                     objJsonResult.data = ds.Tables[0];
-                    return objJsonResult;
+                    JObject jobjJsonResult = JObject.FromObject(objJsonResult);
+                    jobjJsonResult["token"] = tokenStr;
+                    return jobjJsonResult;
                 }
             }
             catch (Exception e)
diff --git a/WebAPI/Global.asax.cs b/WebAPI/Global.asax.cs
index f7e6570..912ff30 100644
--- a/WebAPI/Global.asax.cs
+++ b/WebAPI/Global.asax.cs
@@ -11,6 +11,7 @@
     {
         protected void Application_Start()
         {
+
             GlobalConfiguration.Configure(WebApiConfig.Register);
         }
     }
diff --git a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user b/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
index dc7debd..1475ff2 100644
--- a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/FolderProfile4.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|2026-03-24T13:53:34.2448116Z;False|2026-03-24T21:52:53.6918631+08:00;True|2026-03-24T20:58:50.8913155+08:00;True|2026-03-24T20:39:40.2513260+08:00;True|2026-03-24T19:59:00.3631663+08:00;True|2026-03-24T18:57:21.2378761+08:00;True|2026-03-24T15:05:40.6505074+08:00;True|2026-03-24T11:23:13.8880292+08:00;False|2026-03-24T11:22:35.7477227+08:00;True|2026-03-24T08:11:40.8167004+08:00;False|2026-03-24T08:10:24.5227115+08:00;True|2026-03-23T16:52:06.1962112+08:00;True|2026-03-23T10:48:43.9146974+08:00;False|2026-03-23T10:47:37.6567528+08:00;True|2026-03-23T10:21:45.2785227+08:00;False|2026-03-23T10:21:38.6946638+08:00;True|2026-03-20T13:20:00.4199413+08:00;False|2026-03-20T13:19:48.2280600+08:00;True|2026-03-19T16:53:44.5050326+08:00;True|2026-03-19T10:10:35.5101923+08:00;False|2026-03-19T10:10:15.7270659+08:00;True|2026-03-18T19:51:55.1022153+08:00;True|2026-03-18T19:41:13.5178535+08:00;False|2026-03-18T19:40:38.2085412+08:00;True|2026-03-18T09:40:21.0697989+08:00;True|2026-03-18T09:34:25.1335941+08:00;False|2026-03-18T09:33:56.8767961+08:00;False|2026-03-17T11:45:46.0943251+08:00;True|2026-03-16T14:55:19.5092172+08:00;True|2026-03-16T14:39:12.2885876+08:00;True|2026-03-16T13:20:59.6155796+08:00;True|2026-03-16T12:53:38.9806066+08:00;False|2026-03-16T12:53:28.1149911+08:00;True|2026-03-16T10:21:54.6583129+08:00;False|2026-03-16T10:20:22.8166196+08:00;True|2026-03-13T13:56:44.7436815+08:00;True|2026-03-13T13:48:09.2962246+08:00;True|2026-03-13T10:01:06.8006672+08:00;False|2026-03-13T09:59:31.4203821+08:00;True|2026-03-09T01:54:24.1336085+08:00;False|2026-03-09T01:53:17.3398700+08:00;True|2026-03-09T01:28:43.0746681+08:00;True|2026-03-09T00:35:43.7572081+08:00;False|2026-03-09T00:34:44.1380553+08:00;True|2026-03-02T10:58:08.4918461+08:00;True|2026-02-28T14:36:37.1813756+08:00;True|2026-02-28T09:10:06.2035727+08:00;True|2026-02-28T08:45:06.8758170+08:00;False|2026-02-28T08:45:00.2780485+08:00;True|2026-02-27T16:29:24.9278951+08:00;False|2026-02-27T16:29:01.8985145+08:00;True|2026-02-27T15:25:58.1156917+08:00;False|2026-02-27T15:25:50.1203408+08:00;True|2026-02-27T08:48:32.3741487+08:00;False|2026-02-27T08:47:49.7647299+08:00;True|2026-02-26T13:55:29.1843761+08:00;True|2026-02-26T10:17:02.6775428+08:00;False|2026-02-26T10:15:56.8080083+08:00;True|2026-02-25T16:35:36.1616346+08:00;False|2026-02-25T16:35:02.7930400+08:00;True|2026-02-25T15:14:31.7665279+08:00;True|2026-02-25T15:06:38.2831461+08:00;True|2026-02-25T14:53:16.9553043+08:00;True|2026-02-25T14:18:12.0055193+08:00;True|2026-02-25T14:11:45.2316738+08:00;True|2026-02-25T14:02:16.3161429+08:00;True|2026-02-25T13:47:25.4930099+08:00;False|2026-02-25T13:46:34.1837894+08:00;True|2026-02-24T10:25:01.2146652+08:00;True|2026-02-24T10:16:06.3505078+08:00;True|2026-02-24T10:08:41.7064926+08:00;False|2026-02-24T10:07:25.4868308+08:00;True|2026-02-21T14:56:37.2206752+08:00;True|2026-02-21T14:53:44.6277903+08:00;True|2026-02-21T14:40:10.4687091+08:00;False|2026-02-21T14:39:13.1736140+08:00;True|2026-02-11T11:45:25.6746436+08:00;True|2026-02-11T11:44:47.3185555+08:00;True|2026-02-11T10:54:59.0679758+08:00;True|2026-02-11T10:43:35.2341241+08:00;True|2026-02-11T10:36:26.6768242+08:00;True|2026-02-11T10:26:54.7470684+08:00;True|2026-02-11T10:26:14.5696000+08:00;True|2026-02-11T10:19:17.3267746+08:00;True|2026-02-11T10:03:08.9096446+08:00;True|2026-02-11T10:00:03.1731421+08:00;False|2026-02-11T09:58:47.2916714+08:00;True|2026-02-10T15:11:02.0203382+08:00;True|2026-02-10T15:07:21.6761915+08:00;True|2026-02-10T14:56:44.3660951+08:00;True|2026-02-10T14:42:24.1573010+08:00;True|2026-02-10T14:17:49.6012996+08:00;True|2026-02-10T10:54:27.8849732+08:00;True|2026-02-10T10:37:09.4615737+08:00;True|2026-02-10T10:32:50.2882198+08:00;True|2026-02-10T10:16:38.5004114+08:00;True|2026-02-10T10:04:58.3653257+08:00;False|2026-02-10T10:04:05.6938724+08:00;True|2026-02-09T11:58:12.9122757+08:00;True|2026-02-09T11:52:51.2402774+08:00;True|2026-02-09T11:47:15.5230979+08:00;True|2026-02-09T10:53:15.6587025+08:00;False|2026-02-09T10:52:01.4586729+08:00;True|2026-02-05T12:04:14.1139398+08:00;True|2026-02-05T10:00:41.8883921+08:00;False|2026-02-05T09:59:49.2086159+08:00;True|2026-02-04T13:30:53.8564398+08:00;True|2026-02-04T13:30:06.5486103+08:00;True|2026-02-04T13:21:44.7322601+08:00;True|2026-02-04T13:15:45.0093895+08:00;True|2026-02-04T13:06:30.4891537+08:00;False|2026-02-04T13:05:35.5287589+08:00;True|2026-02-04T12:39:42.2682329+08:00;True|2026-02-04T12:21:52.9722100+08:00;True|2026-02-04T12:16:07.8303016+08:00;True|2026-02-04T12:08:43.8268899+08:00;True|2026-02-04T12:03:26.1174616+08:00;True|2026-02-04T10:33:15.5394044+08:00;False|2026-02-04T10:32:30.7038502+08:00;True|2026-02-02T15:42:04.9554792+08:00;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
+    <History>True|2026-03-25T08:35:08.8050103Z;True|2026-03-25T15:37:15.6317912+08:00;True|2026-03-25T15:27:23.3932111+08:00;True|2026-03-25T15:11:11.1967438+08:00;True|2026-03-25T15:00:30.5147369+08:00;True|2026-03-25T14:52:56.0204639+08:00;True|2026-03-25T14:47:51.3529176+08:00;True|2026-03-25T14:46:04.5196908+08:00;True|2026-03-25T14:40:04.4992796+08:00;True|2026-03-25T14:38:45.0508837+08:00;True|2026-03-25T13:40:00.6412255+08:00;True|2026-03-25T13:17:17.5126232+08:00;True|2026-03-25T13:05:28.8923666+08:00;True|2026-03-25T11:16:11.6477493+08:00;True|2026-03-25T10:56:54.5866590+08:00;False|2026-03-25T10:55:40.1765744+08:00;True|2026-03-24T08:56:28.1340424+08:00;True|2026-03-24T08:11:40.8167004+08:00;False|2026-03-24T08:10:24.5227115+08:00;True|2026-03-23T16:52:06.1962112+08:00;True|2026-03-23T10:48:43.9146974+08:00;False|2026-03-23T10:47:37.6567528+08:00;True|2026-03-23T10:21:45.2785227+08:00;False|2026-03-23T10:21:38.6946638+08:00;True|2026-03-20T13:20:00.4199413+08:00;False|2026-03-20T13:19:48.2280600+08:00;True|2026-03-19T16:53:44.5050326+08:00;True|2026-03-19T10:10:35.5101923+08:00;False|2026-03-19T10:10:15.7270659+08:00;True|2026-03-18T19:51:55.1022153+08:00;True|2026-03-18T19:41:13.5178535+08:00;False|2026-03-18T19:40:38.2085412+08:00;True|2026-03-18T09:40:21.0697989+08:00;True|2026-03-18T09:34:25.1335941+08:00;False|2026-03-18T09:33:56.8767961+08:00;False|2026-03-17T11:45:46.0943251+08:00;True|2026-03-16T14:55:19.5092172+08:00;True|2026-03-16T14:39:12.2885876+08:00;True|2026-03-16T13:20:59.6155796+08:00;True|2026-03-16T12:53:38.9806066+08:00;False|2026-03-16T12:53:28.1149911+08:00;True|2026-03-16T10:21:54.6583129+08:00;False|2026-03-16T10:20:22.8166196+08:00;True|2026-03-13T13:56:44.7436815+08:00;True|2026-03-13T13:48:09.2962246+08:00;True|2026-03-13T10:01:06.8006672+08:00;False|2026-03-13T09:59:31.4203821+08:00;True|2026-03-09T01:54:24.1336085+08:00;False|2026-03-09T01:53:17.3398700+08:00;True|2026-03-09T01:28:43.0746681+08:00;True|2026-03-09T00:35:43.7572081+08:00;False|2026-03-09T00:34:44.1380553+08:00;True|2026-03-02T10:58:08.4918461+08:00;True|2026-02-28T14:36:37.1813756+08:00;True|2026-02-28T09:10:06.2035727+08:00;True|2026-02-28T08:45:06.8758170+08:00;False|2026-02-28T08:45:00.2780485+08:00;True|2026-02-27T16:29:24.9278951+08:00;False|2026-02-27T16:29:01.8985145+08:00;True|2026-02-27T15:25:58.1156917+08:00;False|2026-02-27T15:25:50.1203408+08:00;True|2026-02-27T08:48:32.3741487+08:00;False|2026-02-27T08:47:49.7647299+08:00;True|2026-02-26T13:55:29.1843761+08:00;True|2026-02-26T10:17:02.6775428+08:00;False|2026-02-26T10:15:56.8080083+08:00;True|2026-02-25T16:35:36.1616346+08:00;False|2026-02-25T16:35:02.7930400+08:00;True|2026-02-25T15:14:31.7665279+08:00;True|2026-02-25T15:06:38.2831461+08:00;True|2026-02-25T14:53:16.9553043+08:00;True|2026-02-25T14:18:12.0055193+08:00;True|2026-02-25T14:11:45.2316738+08:00;True|2026-02-25T14:02:16.3161429+08:00;True|2026-02-25T13:47:25.4930099+08:00;False|2026-02-25T13:46:34.1837894+08:00;True|2026-02-24T10:25:01.2146652+08:00;True|2026-02-24T10:16:06.3505078+08:00;True|2026-02-24T10:08:41.7064926+08:00;False|2026-02-24T10:07:25.4868308+08:00;True|2026-02-21T14:56:37.2206752+08:00;True|2026-02-21T14:53:44.6277903+08:00;True|2026-02-21T14:40:10.4687091+08:00;False|2026-02-21T14:39:13.1736140+08:00;True|2026-02-11T11:45:25.6746436+08:00;True|2026-02-11T11:44:47.3185555+08:00;True|2026-02-11T10:54:59.0679758+08:00;True|2026-02-11T10:43:35.2341241+08:00;True|2026-02-11T10:36:26.6768242+08:00;True|2026-02-11T10:26:54.7470684+08:00;True|2026-02-11T10:26:14.5696000+08:00;True|2026-02-11T10:19:17.3267746+08:00;True|2026-02-11T10:03:08.9096446+08:00;True|2026-02-11T10:00:03.1731421+08:00;False|2026-02-11T09:58:47.2916714+08:00;True|2026-02-10T15:11:02.0203382+08:00;True|2026-02-10T15:07:21.6761915+08:00;True|2026-02-10T14:56:44.3660951+08:00;True|2026-02-10T14:42:24.1573010+08:00;True|2026-02-10T14:17:49.6012996+08:00;True|2026-02-10T10:54:27.8849732+08:00;True|2026-02-10T10:37:09.4615737+08:00;True|2026-02-10T10:32:50.2882198+08:00;True|2026-02-10T10:16:38.5004114+08:00;True|2026-02-10T10:04:58.3653257+08:00;False|2026-02-10T10:04:05.6938724+08:00;True|2026-02-09T11:58:12.9122757+08:00;True|2026-02-09T11:52:51.2402774+08:00;True|2026-02-09T11:47:15.5230979+08:00;True|2026-02-09T10:53:15.6587025+08:00;False|2026-02-09T10:52:01.4586729+08:00;True|2026-02-05T12:04:14.1139398+08:00;True|2026-02-05T10:00:41.8883921+08:00;False|2026-02-05T09:59:49.2086159+08:00;True|2026-02-04T13:30:53.8564398+08:00;True|2026-02-04T13:30:06.5486103+08:00;True|2026-02-04T13:21:44.7322601+08:00;True|2026-02-04T13:15:45.0093895+08:00;True|2026-02-04T13:06:30.4891537+08:00;False|2026-02-04T13:05:35.5287589+08:00;True|2026-02-04T12:39:42.2682329+08:00;True|2026-02-04T12:21:52.9722100+08:00;True|2026-02-04T12:16:07.8303016+08:00;True|2026-02-04T12:08:43.8268899+08:00;True|2026-02-04T12:03:26.1174616+08:00;True|2026-02-04T10:33:15.5394044+08:00;False|2026-02-04T10:32:30.7038502+08:00;True|2026-02-02T15:42:04.9554792+08:00;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
@@ -339,13 +339,13 @@
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>03/24/2026 21:53:27</publishTime>
+      <publishTime>03/25/2026 16:34:51</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>03/24/2026 21:53:27</publishTime>
+      <publishTime>03/25/2026 16:34:51</publishTime>
     </File>
     <File Include="bin/WebAPI.XmlSerializers.dll">
-      <publishTime>03/24/2026 21:53:32</publishTime>
+      <publishTime>03/25/2026 16:35:05</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
@@ -450,7 +450,7 @@
       <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="packages.config">
-      <publishTime>03/24/2026 21:43:36</publishTime>
+      <publishTime>03/24/2026 16:14:20</publishTime>
     </File>
     <File Include="Properties/PublishProfiles/JFAPI.pubxml.user">
       <publishTime>12/08/2025 16:05:47</publishTime>
@@ -570,7 +570,7 @@
       <publishTime>04/06/2023 15:57:02</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>03/24/2026 21:53:33</publishTime>
+      <publishTime>03/25/2026 10:56:54</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user b/WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user
index a9d3628..125b6c6 100644
--- a/WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\API</_PublishTargetUrl>
-    <History>True|2026-03-23T14:27:05.9947039Z;True|2026-03-23T22:17:02.8820923+08:00;True|2026-03-23T21:52:15.7333002+08:00;True|2026-03-23T21:47:32.5007616+08:00;True|2026-03-23T21:40:56.5048061+08:00;True|2026-03-23T13:19:40.2829571+08:00;True|2026-03-23T12:21:19.4345768+08:00;True|2026-03-23T12:18:14.1029044+08:00;True|2026-03-23T12:14:30.8931394+08:00;True|2026-03-23T11:21:56.8156303+08:00;True|2026-03-23T11:12:41.0316561+08:00;True|2026-03-23T11:08:54.1270716+08:00;True|2026-03-23T09:56:08.8942090+08:00;True|2026-03-20T10:11:11.2023901+08:00;True|2026-03-17T09:33:58.4998522+08:00;True|2026-03-13T14:39:56.2046419+08:00;True|2026-03-13T10:45:44.5969827+08:00;False|2026-03-13T10:45:39.0031185+08:00;True|2026-03-13T10:33:50.6454960+08:00;True|2026-03-13T10:13:54.8054151+08:00;False|2026-03-13T10:13:48.7433858+08:00;True|2026-03-13T08:27:44.0365848+08:00;False|2026-03-13T08:27:15.7236925+08:00;True|2026-03-10T13:21:23.4020454+08:00;False|2026-03-10T13:20:37.7978257+08:00;True|2026-03-09T16:23:37.1957075+08:00;False|2026-03-09T16:23:09.1793900+08:00;True|2026-03-08T19:14:49.7700862+08:00;False|2026-03-08T19:13:57.9637951+08:00;True|2026-03-07T15:31:56.3119377+08:00;True|2026-03-07T15:27:26.3686205+08:00;True|2026-03-07T15:20:44.8497962+08:00;True|2026-03-07T15:16:09.1126972+08:00;True|2026-03-07T15:13:14.8502726+08:00;True|2026-03-07T15:00:35.5106409+08:00;True|2026-03-06T09:17:38.4826562+08:00;False|2026-03-06T09:17:12.2137124+08:00;True|2026-03-04T10:37:38.3542826+08:00;True|2026-03-04T10:35:38.0033181+08:00;False|2026-03-04T10:35:21.6139985+08:00;True|2026-03-04T10:10:33.7184690+08:00;False|2026-03-04T10:10:13.6608297+08:00;True|2026-02-28T14:44:48.8921146+08:00;True|2026-02-28T13:49:09.3417790+08:00;True|2026-02-28T13:36:36.7808689+08:00;True|2026-02-28T13:07:59.4097968+08:00;True|2026-02-28T11:22:16.2244092+08:00;False|2026-02-28T11:21:50.3452184+08:00;True|2026-02-27T15:15:26.7008273+08:00;False|2026-02-27T15:15:03.5165987+08:00;True|2026-02-24T13:26:35.7198126+08:00;True|2026-02-24T13:17:50.6475487+08:00;False|2026-02-24T13:17:16.4754994+08:00;True|2026-02-09T09:03:02.9552827+08:00;False|2026-02-09T09:02:19.7888361+08:00;True|2026-01-23T16:43:00.5233443+08:00;True|2026-01-23T15:52:34.0578166+08:00;True|2026-01-23T15:18:26.9929522+08:00;True|2026-01-23T14:54:41.7989523+08:00;True|2026-01-23T14:20:36.5052445+08:00;False|2026-01-23T13:57:17.0723425+08:00;True|2026-01-23T08:08:55.5799949+08:00;False|2026-01-23T08:08:18.0965301+08:00;True|2026-01-21T13:46:11.7257946+08:00;True|2026-01-20T09:22:33.7255529+08:00;False|2026-01-20T08:33:10.2890987+08:00;True|2026-01-19T13:53:48.2079321+08:00;False|2026-01-19T13:53:24.9464993+08:00;True|2026-01-16T15:23:46.2649561+08:00;True|2026-01-16T09:00:43.1528772+08:00;</History>
+    <History>True|2026-03-25T08:10:29.4610079Z;False|2026-03-25T16:10:15.2610463+08:00;True|2026-03-25T16:05:31.2437927+08:00;False|2026-03-25T16:04:42.8165129+08:00;True|2026-03-25T15:51:12.3488143+08:00;True|2026-03-25T15:41:15.4809614+08:00;True|2026-03-25T15:36:47.6377104+08:00;True|2026-03-25T15:24:05.9533971+08:00;True|2026-03-25T15:08:09.4213443+08:00;True|2026-03-25T15:02:35.5966546+08:00;True|2026-03-25T14:39:57.1426058+08:00;True|2026-03-23T22:27:05.9947039+08:00;True|2026-03-23T22:17:02.8820923+08:00;True|2026-03-23T21:52:15.7333002+08:00;True|2026-03-23T21:47:32.5007616+08:00;True|2026-03-23T21:40:56.5048061+08:00;True|2026-03-23T13:19:40.2829571+08:00;True|2026-03-23T12:21:19.4345768+08:00;True|2026-03-23T12:18:14.1029044+08:00;True|2026-03-23T12:14:30.8931394+08:00;True|2026-03-23T11:21:56.8156303+08:00;True|2026-03-23T11:12:41.0316561+08:00;True|2026-03-23T11:08:54.1270716+08:00;True|2026-03-23T09:56:08.8942090+08:00;True|2026-03-20T10:11:11.2023901+08:00;True|2026-03-17T09:33:58.4998522+08:00;True|2026-03-13T14:39:56.2046419+08:00;True|2026-03-13T10:45:44.5969827+08:00;False|2026-03-13T10:45:39.0031185+08:00;True|2026-03-13T10:33:50.6454960+08:00;True|2026-03-13T10:13:54.8054151+08:00;False|2026-03-13T10:13:48.7433858+08:00;True|2026-03-13T08:27:44.0365848+08:00;False|2026-03-13T08:27:15.7236925+08:00;True|2026-03-10T13:21:23.4020454+08:00;False|2026-03-10T13:20:37.7978257+08:00;True|2026-03-09T16:23:37.1957075+08:00;False|2026-03-09T16:23:09.1793900+08:00;True|2026-03-08T19:14:49.7700862+08:00;False|2026-03-08T19:13:57.9637951+08:00;True|2026-03-07T15:31:56.3119377+08:00;True|2026-03-07T15:27:26.3686205+08:00;True|2026-03-07T15:20:44.8497962+08:00;True|2026-03-07T15:16:09.1126972+08:00;True|2026-03-07T15:13:14.8502726+08:00;True|2026-03-07T15:00:35.5106409+08:00;True|2026-03-06T09:17:38.4826562+08:00;False|2026-03-06T09:17:12.2137124+08:00;True|2026-03-04T10:37:38.3542826+08:00;True|2026-03-04T10:35:38.0033181+08:00;False|2026-03-04T10:35:21.6139985+08:00;True|2026-03-04T10:10:33.7184690+08:00;False|2026-03-04T10:10:13.6608297+08:00;True|2026-02-28T14:44:48.8921146+08:00;True|2026-02-28T13:49:09.3417790+08:00;True|2026-02-28T13:36:36.7808689+08:00;True|2026-02-28T13:07:59.4097968+08:00;True|2026-02-28T11:22:16.2244092+08:00;False|2026-02-28T11:21:50.3452184+08:00;True|2026-02-27T15:15:26.7008273+08:00;False|2026-02-27T15:15:03.5165987+08:00;True|2026-02-24T13:26:35.7198126+08:00;True|2026-02-24T13:17:50.6475487+08:00;False|2026-02-24T13:17:16.4754994+08:00;True|2026-02-09T09:03:02.9552827+08:00;False|2026-02-09T09:02:19.7888361+08:00;True|2026-01-23T16:43:00.5233443+08:00;True|2026-01-23T15:52:34.0578166+08:00;True|2026-01-23T15:18:26.9929522+08:00;True|2026-01-23T14:54:41.7989523+08:00;True|2026-01-23T14:20:36.5052445+08:00;False|2026-01-23T13:57:17.0723425+08:00;True|2026-01-23T08:08:55.5799949+08:00;False|2026-01-23T08:08:18.0965301+08:00;True|2026-01-21T13:46:11.7257946+08:00;True|2026-01-20T09:22:33.7255529+08:00;False|2026-01-20T08:33:10.2890987+08:00;True|2026-01-19T13:53:48.2079321+08:00;False|2026-01-19T13:53:24.9464993+08:00;True|2026-01-16T15:23:46.2649561+08:00;True|2026-01-16T09:00:43.1528772+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/23/2026 22:26:49</publishTime>
+      <publishTime>03/25/2026 16:09:20</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>03/23/2026 22:26:49</publishTime>
+      <publishTime>03/25/2026 16:09:20</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>03/23/2026 22:26:44</publishTime>
+      <publishTime>03/25/2026 16:09:15</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>03/23/2026 22:26:44</publishTime>
+      <publishTime>03/25/2026 16:09:15</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
     </File>
     <File Include="bin/DBUtility.dll">
-      <publishTime>03/23/2026 22:26:39</publishTime>
+      <publishTime>03/25/2026 16:09:10</publishTime>
     </File>
     <File Include="bin/DBUtility.pdb">
-      <publishTime>03/23/2026 22:26:39</publishTime>
+      <publishTime>03/25/2026 16:09:10</publishTime>
     </File>
     <File Include="bin/Fleck.dll">
       <publishTime>04/22/2021 11:48:12</publishTime>
@@ -125,6 +125,15 @@
     <File Include="bin/Microsoft.CSharp.dll">
       <publishTime>09/26/2012 03:16:08</publishTime>
     </File>
+    <File Include="bin/Microsoft.IdentityModel.JsonWebTokens.dll">
+      <publishTime>11/21/2023 06:59:58</publishTime>
+    </File>
+    <File Include="bin/Microsoft.IdentityModel.Logging.dll">
+      <publishTime>11/21/2023 07:01:42</publishTime>
+    </File>
+    <File Include="bin/Microsoft.IdentityModel.Tokens.dll">
+      <publishTime>11/21/2023 07:08:26</publishTime>
+    </File>
     <File Include="bin/Microsoft.Owin.Cors.dll">
       <publishTime>01/19/2019 04:50:50</publishTime>
     </File>
@@ -141,10 +150,10 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>03/23/2026 22:26:42</publishTime>
+      <publishTime>03/25/2026 16:09:13</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>03/23/2026 22:26:42</publishTime>
+      <publishTime>03/25/2026 16:09:13</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
       <publishTime>08/18/2025 16:11:18</publishTime>
@@ -180,34 +189,34 @@
       <publishTime>11/13/2012 20:19:34</publishTime>
     </File>
     <File Include="bin/Pub_Class.dll">
-      <publishTime>03/23/2026 22:26:36</publishTime>
+      <publishTime>03/25/2026 16:09:07</publishTime>
     </File>
     <File Include="bin/Pub_Class.pdb">
-      <publishTime>03/23/2026 22:26:36</publishTime>
+      <publishTime>03/25/2026 16:09:07</publishTime>
     </File>
     <File Include="bin/Pub_Control.dll">
-      <publishTime>03/23/2026 22:26:38</publishTime>
+      <publishTime>03/25/2026 16:09:08</publishTime>
     </File>
     <File Include="bin/Pub_Control.pdb">
-      <publishTime>03/23/2026 22:26:38</publishTime>
+      <publishTime>03/25/2026 16:09:08</publishTime>
     </File>
     <File Include="bin/RestSharp.dll">
       <publishTime>08/31/2012 06:22:50</publishTime>
     </File>
     <File Include="bin/SQLHelper.dll">
-      <publishTime>03/23/2026 22:26:37</publishTime>
+      <publishTime>03/25/2026 16:09:08</publishTime>
     </File>
     <File Include="bin/SQLHelper.pdb">
-      <publishTime>03/23/2026 22:26:37</publishTime>
+      <publishTime>03/25/2026 16:09:08</publishTime>
     </File>
     <File Include="bin/Swashbuckle.Core.dll">
       <publishTime>02/16/2015 01:57:08</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.dll">
-      <publishTime>03/23/2026 20:26:56</publishTime>
+      <publishTime>03/25/2026 16:08:11</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.pdb">
-      <publishTime>03/23/2026 20:26:56</publishTime>
+      <publishTime>03/25/2026 16:08:11</publishTime>
     </File>
     <File Include="bin/System.Buffers.dll">
       <publishTime>07/19/2017 18:01:28</publishTime>
@@ -234,7 +243,7 @@
       <publishTime>09/26/2012 03:16:08</publishTime>
     </File>
     <File Include="bin/System.IdentityModel.Tokens.Jwt.dll">
-      <publishTime>08/19/2014 18:03:34</publishTime>
+      <publishTime>11/21/2023 06:58:04</publishTime>
     </File>
     <File Include="bin/System.Memory.dll">
       <publishTime>04/18/2019 00:24:34</publishTime>
@@ -321,19 +330,19 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>03/23/2026 20:26:59</publishTime>
+      <publishTime>03/25/2026 16:08:11</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>03/23/2026 20:26:59</publishTime>
+      <publishTime>03/25/2026 16:08:11</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>03/23/2026 22:26:57</publishTime>
+      <publishTime>03/25/2026 16:10:25</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>03/23/2026 22:26:57</publishTime>
+      <publishTime>03/25/2026 16:10:25</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
@@ -438,7 +447,7 @@
       <publishTime>08/18/2025 16:11:18</publishTime>
     </File>
     <File Include="packages.config">
-      <publishTime>03/06/2026 09:14:06</publishTime>
+      <publishTime>03/25/2026 16:08:11</publishTime>
     </File>
     <File Include="Properties/PublishProfiles/JFAPI.pubxml.user">
       <publishTime>12/08/2025 10:29:30</publishTime>
@@ -558,7 +567,7 @@
       <publishTime>10/27/2025 08:51:29</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>03/23/2026 22:27:02</publishTime>
+      <publishTime>03/25/2026 16:10:26</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/WebAPI/Service/JwtAuthorizeAttribute.cs b/WebAPI/Service/JwtAuthorizeAttribute.cs
index d641d3b..ca96e21 100644
--- a/WebAPI/Service/JwtAuthorizeAttribute.cs
+++ b/WebAPI/Service/JwtAuthorizeAttribute.cs
@@ -7,37 +7,64 @@
 using System.Web.Http;
 using System.Web.Http.Controllers;
 using System.Web.Http.Filters;
+using WebAPI.Models;
 using WebAPI.Utility;
 
 public class JwtAuthorizeAttribute : AuthorizationFilterAttribute
 {
+    private json objjson = new json();
+    private SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+    private Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+    private string campanyName = "";
+
+    public JwtAuthorizeAttribute()
+    {
+        if (oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+        {
+            campanyName = oSystemParameter.omodel.WMS_CampanyName;
+        }
+    }
+
+
     // 鍚屾閴存潈
     public override void OnAuthorization(HttpActionContext actionContext)
     {
-        // 妫�鏌ュ尶鍚嶈闂�
-        if (IsAnonymousAllowed(actionContext)) return;
-
-        // 鑾峰彇Token
-        var token = GetTokenFromHeader(actionContext);
-        if (string.IsNullOrEmpty(token))
+        try
         {
-            HandleUnauthorized(actionContext);
-            return;
-        }
+            // 妫�鏌ュ尶鍚嶈闂�
+            if (IsAnonymousAllowed(actionContext)) return;
 
-        // 楠岃瘉Token
-        var principal = JWTHelper.ValidateToken(token, "123");
-        if (principal == null)
+            // 鑾峰彇Token
+            var token = GetTokenFromHeader(actionContext);
+            if (string.IsNullOrEmpty(token))
+            {
+                HandleUnauthorized(actionContext);
+                return;
+            }
+            
+            // 楠岃瘉Token 
+            // 鍙互澧炲姞鏇寸粏绮掑害鐨勬帶鍒讹紝娣诲姞 鏍规嵁缁勭粐ID 鍒ゆ柇锛堥棶棰�: 鍏徃鍚嶄笉鑳戒娇鐢ㄤ腑鏂囷紝鍙兘闇�瑕佹坊鍔犺嫳鏂囧瓧娈碉級
+            var principal = JWTHelper.ValidateToken(token);
+            if (principal == null)
+            {
+                HandleUnauthorized(actionContext);
+                return;
+            }
+
+            // 楠岃瘉鏄惁鎷ユ湁璁块棶妯″潡鐨勬潈闄�
+            // 鏈変袱绉嶅垽鏂柟寮� 涓�绉嶆槸閫氳繃瑙掕壊鍘诲垽鏂紝涓�绉嶆槸閫氳繃鐢ㄦ埛鍘诲垽鏂� 鐩墠鏆傛椂涓嶅仛鍖哄垎锛屽悗缁彲澧炲姞绯荤粺鍙傛暟鏉ヨ繘琛屽尯鍒�
+            
+
+            // 璁剧疆鐢ㄦ埛
+            actionContext.RequestContext.Principal = principal;
+        }
+        catch (Exception e)
         {
-            HandleUnauthorized(actionContext);
-            return;
+            HandleError(actionContext, e.Message);
         }
-
-        // 璁剧疆鐢ㄦ埛
-        actionContext.RequestContext.Principal = principal;
     }
 
-    // 寮傛閴存潈锛堟弧瓒砏ebAPI 2瑕佹眰锛屽吋瀹�.NET4.5锛�
+    // 寮傛閴存潈
     public override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
     {
         OnAuthorization(actionContext);
@@ -45,7 +72,7 @@
         return Task.FromResult(0);
     }
 
-    // 鏄惁鍏佽鍖垮悕璁块棶
+    // 鏄惁鍏佽鍖垮悕璁块棶(鎺у埗鍣ㄧ骇鍒拰鍔ㄤ綔绾у埆閮藉彲鐢�)
     private bool IsAnonymousAllowed(HttpActionContext context)
     {
         return
@@ -70,7 +97,34 @@
     private void HandleUnauthorized(HttpActionContext context)
     {
         var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
-        response.Content = new StringContent("鏈巿鏉冿紝璇风櫥褰曞悗閲嶈瘯");
+        objjson.code = "0";
+        objjson.count = 0;
+        objjson.Message = "鏈巿鏉冿紝璇风櫥褰曞悗閲嶈瘯";
+        response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+            System.Text.Encoding.UTF8, "application/json");
+        context.Response = response;
+    }
+
+    // 403 鏃犳潈闄�
+    private void HandleForbidden(HttpActionContext context)
+    {
+        var response = new HttpResponseMessage(HttpStatusCode.Forbidden);
+        objjson.code = "0";
+        objjson.count = 0;
+        objjson.Message = "褰撳墠瑙掕壊鏃犳潈闄�";
+        response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+            System.Text.Encoding.UTF8, "application/json");
+        context.Response = response;
+    }
+
+    private void HandleError(HttpActionContext context, string ErrorInfo)
+    {
+        var response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
+        objjson.code = "0";
+        objjson.count = 0;
+        objjson.Message = "鏈嶅姟鍣ㄥ紓甯�: " + ErrorInfo;
+        response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+            System.Text.Encoding.UTF8, "application/json");
         context.Response = response;
     }
 }
\ No newline at end of file
diff --git a/WebAPI/Service/TokenAppendHandler.cs b/WebAPI/Service/TokenAppendHandler.cs
new file mode 100644
index 0000000..11409de
--- /dev/null
+++ b/WebAPI/Service/TokenAppendHandler.cs
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Linq;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Web.Http;
+using Newtonsoft.Json.Linq;
+using WebAPI.Utility;
+
+
+public class TokenAppendHandler : DelegatingHandler
+    {
+        protected override async Task<HttpResponseMessage> SendAsync(
+       HttpRequestMessage request,
+       CancellationToken cancellationToken)
+        {
+            // 1. 鍏堣璇锋眰姝e父鎵ц鍒� Action
+            var response = await base.SendAsync(request, cancellationToken);
+
+            try
+            {
+                // 2. 鍙鐞嗘垚鍔熺殑璇锋眰
+                if (response.IsSuccessStatusCode && response.Content != null)
+                {
+                    // 3. 鑾峰彇鏃� token
+                    var oldToken = request.Headers.GetValues("token")?.FirstOrDefault();
+                    if (string.IsNullOrEmpty(oldToken))
+                        return response;
+
+                    // 4. 鍒ゆ柇鏄惁闇�瑕佺画鏈�
+                    bool needRenew = JWTHelper.TokenAboutToExpire(oldToken);
+                    if (!needRenew)
+                        return response;
+
+                    // 5. 鐢熸垚鏂� token
+                    string newToken = JWTHelper.refreshToken(oldToken);
+
+                    // 6. 璇诲彇鍘熸湰鐨勮繑鍥炴暟鎹�
+                    var json = await response.Content.ReadAsStringAsync();
+                    JObject obj;
+
+                    if (string.IsNullOrWhiteSpace(json))
+                        obj = new JObject();
+                    else
+                        obj = JObject.Parse(json);
+
+                    // 7. 鍏抽敭锛氳拷鍔� token 瀛楁鍒拌繑鍥炰綋
+                    obj["token"] = newToken;
+
+                    // 8. 鏇挎崲鎴愭柊鐨勮繑鍥炲唴瀹�
+                    response.Content = new StringContent(
+                        obj.ToString(),
+                        System.Text.Encoding.UTF8,
+                        "application/json");
+                }
+            }
+            catch
+            {
+                
+            }
+
+            return response;
+        }
+
+    }
diff --git a/WebAPI/Utility/JWTHelper.cs b/WebAPI/Utility/JWTHelper.cs
index 824a5b9..e0a2400 100644
--- a/WebAPI/Utility/JWTHelper.cs
+++ b/WebAPI/Utility/JWTHelper.cs
@@ -22,7 +22,7 @@
         new SymmetricSecurityKey(Encoding.UTF8.GetBytes(SecretKey));
 
         // 绛惧彂 Token
-        public static string GenerateToken(string userId, string userName, string HCampanyName)
+        public static string GenerateToken(string userId, string userName, string HCampanyName= "zjzyms")
         {
             var claims = new[]
             {
@@ -45,7 +45,7 @@
         }
 
         // 楠岃瘉 Token 骞惰繑鍥� ClaimsPrincipal
-        public static ClaimsPrincipal ValidateToken(string token, string HCampanyName)
+        public static ClaimsPrincipal ValidateToken(string token, string HCampanyName= "zjzyms")
         {
             var handler = new JwtSecurityTokenHandler();
 
@@ -75,5 +75,28 @@
                 return null;
             }
         }
+
+        // 鍒锋柊Token
+        public static string refreshToken(string token)
+        {
+            var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
+            var czybm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
+            var zymm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
+            // 閫氳繃涓婁竴涓猼oken鐨勫�煎埛鏂皌oken
+            return GenerateToken(czybm, zymm);
+        }
+
+        // 鍒ゆ柇Token 鏄惁鍗冲皢杩囨湡
+        public static bool TokenAboutToExpire(string token)
+        {
+            var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
+            var validTo = jwt.ValidTo;
+
+            if(validTo.Subtract(DateTime.UtcNow).TotalMinutes < 5)
+            {
+                return true;
+            }
+            return false;
+        }
     }
 }
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 4522743..2ab3dd5 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -1251,7 +1251,7 @@
     </Compile>
     <Compile Include="Utility\JWTHelper.cs" />
     <Compile Include="Utility\ServerTools.cs" />
-    <Compile Include="Utility\TreeUtil.cs" />
+    <Compile Include="Service\TokenAppendHandler.cs" />
     <Compile Include="Utility\Util.cs" />
     <Compile Include="Code\Common.cs" />
     <Compile Include="Code\Test2.cs" />
diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user
index 31018e2..14ef3ec 100644
--- a/WebAPI/WebAPI.csproj.user
+++ b/WebAPI/WebAPI.csproj.user
@@ -2,7 +2,7 @@
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
-    <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
+    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
     <UseIISExpress>true</UseIISExpress>
     <Use64BitIISExpress />
     <IISExpressSSLPort />
@@ -14,7 +14,7 @@
     <NameOfLastUsedPublishProfile>D:\gz\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile8.pubxml</NameOfLastUsedPublishProfile>
     <NameOfLastUsedPublishProfile>D:\WorkBench\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
     <ProjectView>ShowAllFiles</ProjectView>
-    <NameOfLastUsedPublishProfile>D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
+    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
   </PropertyGroup>
   <ProjectExtensions>
     <VisualStudio>
diff --git a/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache b/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache
index f6c481e..35e5324 100644
--- a/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache
+++ b/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.AssemblyReference.cache
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 cdbf68a..70c98f4 100644
--- a/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt
+++ b/sdk_dingding/TopSdk/obj/Debug/TopSdk.csproj.FileListAbsolute.txt
@@ -4,3 +4,9 @@
 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
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.dll
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\bin\Debug\TopSdk.pdb
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.AssemblyReference.cache
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.csproj.CoreCompileInputs.cache
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.dll
+C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\sdk_dingding\TopSdk\obj\Debug\TopSdk.pdb

--
Gitblit v1.9.1