chenhaozhe
2026-04-15 36189fa8b6c04c25e62c7f633f23cfc3ec3cfe60
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

# Conflicts:
# sdk_dingding/TopSdk/bin/Debug/TopSdk.dll
# sdk_dingding/TopSdk/bin/Debug/TopSdk.pdb
# sdk_dingding/TopSdk/obj/Debug/TopSdk.dll
# sdk_dingding/TopSdk/obj/Debug/TopSdk.pdb
19个文件已修改
3个文件已添加
871 ■■■■ 已修改文件
DAL/质检管理/ClsQC_POStockInCheckBill.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/车间管理/ClsSc_ProcessExchangeBill.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/Model.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/车间管理/Sc_ProcessExchangeBillSub_HRelationBack.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WarM/条码打印/Gy_CusBarCodeBill_KaiBei_HuaSan.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_UnitController.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/品质管理/首件检验单/QC_FirstPieceCheckBillController.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Cb_OtherOutBill_CostSubjectDetailController.cs 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Xt_CheckFlowBillController.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/条码管理/WEBSController.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/DLL/ClsSb_EquipRepairCheckBill.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/ListModels.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/Xt_CheckFlowSub_Proc.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/FolderProfile2.pubxml.user 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/WTTFolder.pubxml.user 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/Öʼì¹ÜÀí/ClsQC_POStockInCheckBill.cs
@@ -171,7 +171,7 @@
                ",HSourceID,HICMOInterID,HICMOBillNo,HICMOQty,HProcExchInterID,HProcExchEntryID" +
                ",HProcExchBillNo,HProcExchQty,HMaterID,HFirstCheckEmp,HLastResult" +
                ",HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo,HMainSourceBillType,HICMOEntryID,HQCSchemeID,HShiftsID,HErrTreatment,HBatchNo" +
                ",HTakeSampleCheckBillID,HTakeSampleCheckBillNo,HProcID, HRemarkSN, HCheckQty" +
                ",HTakeSampleCheckBillID,HTakeSampleCheckBillNo,HProcID, HRemarkSN, HCheckQty,HSTOCKORGID" +
                ") " +
                " values('" + this.BillType + "','" + this.HBillSubType + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'," + omodel.HBillStatus.ToString() + ",'" + omodel.HDate + "','" + omodel.HMaker + "',getdate()" +
                "," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "'" +
@@ -179,7 +179,7 @@
                ",'" + omodel.HProcExchBillNo + "'," + omodel.HProcExchQty.ToString() + "," + omodel.HMaterID.ToString() + "," + omodel.HFirstCheckEmp.ToString() + ", " + DBUtility.ClsPub.BoolToString(omodel.HLastResult) +
                "," + omodel.HMainSourceInterID + "," + omodel.HMainSourceEntryID + ",'" + omodel.HMainSourceBillNo + "','" + omodel.HMainSourceBillType + "'," + omodel.HICMOEntryID + "," + omodel.HQCSchemeID + "," + omodel.HShiftsID + ",'" + omodel.HErrTreatment + "','" + omodel.HBatchNo + "'" +
                "," + omodel.HTakeSampleCheckBillID + ",'" + omodel.HTakeSampleCheckBillNo + "','" + omodel.HProcID + "'" +
                ",'" + omodel.HRemarkSN+ "',"+ omodel.HCheckQty +") ");
                ",'" + omodel.HRemarkSN+ "',"+ omodel.HCheckQty + ",'" + omodel.HSTOCKORGID + "') ");
                //插入子表
                foreach (Model.ClsQC_POStockInCheckBillSub oSub in DetailColl)
                {
DAL/³µ¼ä¹ÜÀí/ClsSc_ProcessExchangeBill.cs
@@ -9,6 +9,7 @@
    {
        public Model.ClsSc_ProcessExchangeBillMain omodel = new Model.ClsSc_ProcessExchangeBillMain();
        public List<Model.ClsSc_ProcessExchangeBillSub> DetailColl = new List<Model.ClsSc_ProcessExchangeBillSub>();
        public List<Model.Sc_ProcessExchangeBillSub_HRelationBack> DetailColl2 = new List<Model.Sc_ProcessExchangeBillSub_HRelationBack>();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public ClsSc_ProcessExchangeBill()
@@ -476,6 +477,28 @@
                    sErr = sErr + "3;";
                }
                //插入子表 è¿”工关联信息
                foreach (Model.Sc_ProcessExchangeBillSub_HRelationBack oSub in DetailColl2)
                {
                    string sql1 = @"Insert into Sc_ProcessExchangeBillSub_HRelationBack (HInterID,HEntryID,HBillNo_bak," +
                      "HCloseMan,HEntryCloseDate,HCloseType,HRemark," +
                      "HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType," +
                      "HRelationQty,HRelationMoney," +
                      "HProcExchInterID,HProcExchEntryID,HProcExchBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo," +
                      "HStationOutInterID,HStationOutBillNo) values("
                      + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + omodel.HBillNo + "'" +
                      ",'" + oSub.HCloseMan + "','" + oSub.HEntryCloseDate + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'" +
                      "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "',"
                      + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                      "," + oSub.HProcExchInterID.ToString() + "," + oSub.HProcExchEntryID.ToString() + ",'" + oSub.HProcExchBillNo + "'," + oSub.HICMOInterID.ToString() +
                      "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'," + oSub.HStationOutInterID.ToString() + ",'" + oSub.HStationOutBillNo + "'" +
                      ") ";
                    sErr = sErr + sql1 + "3.1;";
                    oCn.RunProc(sql1);
                    sErr = sErr + "3.2;";
                }
                oCn.RunProc("exec h_p_Sc_ProcessExchangeBill_SetRemark " + omodel.HInterID.ToString()); //设置 å¤‡æ³¨ ä¸º å·¥è‰ºæµ
                sErr = sErr + "4;";
                oCn.RunProc("exec h_p_Sc_ProcessExchangeBill_SetUpdate " + omodel.HInterID.ToString()); //设置 æœ«é“ é¦–道 è½¬ ç­‰ä¿¡æ¯   å™¨å…·æ¸…单  å·¥è‰ºå‚数清单;
Model/Model.csproj
@@ -788,6 +788,7 @@
    <Compile Include="车间管理\ClsGy_WorkBeginDotCheckListBillMain.cs" />
    <Compile Include="车间管理\ClsCJ_WIPBeginStockBillMain.cs" />
    <Compile Include="车间管理\ClsCJ_WIPBeginStockBillSub.cs" />
    <Compile Include="车间管理\Sc_ProcessExchangeBillSub_HRelationBack.cs" />
    <Compile Include="车间管理\ClsSc_ProcessExchangeBillSub_BatchSplit.cs" />
    <Compile Include="车间管理\ClsSc_WorkBeginDotCheckBillMain.cs" />
    <Compile Include="车间管理\ClsGy_MaterPreventErrMouldBillSub.cs" />
Model/³µ¼ä¹ÜÀí/Sc_ProcessExchangeBillSub_HRelationBack.cs
New file
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Model
{
    public class Sc_ProcessExchangeBillSub_HRelationBack : DBUtility.ClsXt_BaseBillSub
    {
        public Int64 HProcExchInterID;      // int                 --工序流转卡ID
        public Int64 HProcExchEntryID;      // int                 --工序流转卡子ID
        public string HProcExchBillNo;      // varchar(50)           --工序流转卡号
        public Int64 HICMOInterID;          // int                 --任务单ID
        public Int64 HICMOEntryID;          // int                 --任务单子ID
        public string HICMOBillNo;          // varchar(50)          --任务单号
        public Int64 HStationOutInterID;    // int                 --出站单ID
        public string HStationOutBillNo;    // varchar(50)          --出站单号
    }
}
WarM/ÌõÂë´òÓ¡/Gy_CusBarCodeBill_KaiBei_HuaSan.cs
@@ -674,20 +674,28 @@
                {
                    if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0)
                    {
                        HCusModelName = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelNameCol].Value);            // å®¢æˆ·æ–™å·
                        HMaterModel = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterModelCol].Value);      //物料规格型号
                        HMaterNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterNumberCol].Value);    // ç‰©æ–™ä»£ç 
                        HCode3 = HMaterNumber.Substring(HMaterNumber.Length - 2, 2);  //版本  å–物料代码后两位
                        HCustom3 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom3Col].Value);                      // ç•Œé¢ä¸Šè¾“å…¥   MPN
                        //界面上MPN值输入为/的,版本取物料代码后两位,不为/的则为改制,取00
                        if (HCustom3!="/")
                        {
                            HCode3 = "00";
                        }
                        if (cmbHCusName.Text.Contains("紫光华智"))
                        {
                            //条码前缀 = ç‰©æ–™è§„格型号+供应商代码(固定'151003')+年月日(YYMMDD)
                            sTMNumber = HMaterModel + "151003" + sYear + sPeriod2 + sDay;
                            sTMNumber = HCusModelName + "151003" + sYear + sPeriod2 + sDay;
                        }
                        //新华三、东方通信、统合
                        else
                        {
                            //条码前缀 = ç‰©æ–™è§„格型号+供应商代码(固定'151091')+年月日(YYMMDD)
                            sTMNumber = HMaterModel + "151091" + sYear + sPeriod2 + sDay;
                            sTMNumber = HCusModelName + "151091" + sYear + sPeriod2 + sDay;
                        }
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
@@ -742,7 +750,6 @@
                            HAuxPropID = ClsPub.isLong(grdMain.Rows[j].Cells[HAuxPropIDCol].Value);
                            HQty = HMinQty;
                            HCusID = ClsPub.isLong(cmbHCusName.SelectedValue);
                            HCusModelName = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelNameCol].Value);
                            HCusModel = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelCol].Value);
                            HGiveAwayFlag = ClsPub.isBool(grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value);
                            HISKFPERIOD = ClsPub.isBool(grdMain.Rows[j].Cells[HISKFPERIODCol].Value);
@@ -762,7 +769,6 @@
                            sHBaNo = ClsPub.isStrNull(grdMain.Rows[j].Cells[HBaNoCol].Value);                        // ç•Œé¢ä¸Šè¾“入的批次位
                            HCustom1 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom1Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            HCustom2 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom2Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            HCustom3 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom3Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            //版本号HCode3、产品代码HCustom1、料号HCustom2、MPNHCustom3、销售订单号HInnerBillNo、规格型号HSupNumber
                            oCn.RunProc("insert into Gy_BarCodeBill_Cus" +
@@ -806,28 +812,36 @@
                {
                    if (ClsPub.isLong(grdMain.Rows[j].Cells[HMaterIDCol].Value) != 0)
                    {
                        HCusModelName = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelNameCol].Value);            // å®¢æˆ·æ–™å·
                        HMaterModel = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterModelCol].Value);      //物料规格型号
                        HMaterNumber = DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterNumberCol].Value);    // ç‰©æ–™ä»£ç 
                        HCode3 = HMaterNumber.Substring(HMaterNumber.Length - 2, 2);                    //版本  å–物料代码后两位
                        HInnerBillNo = ClsPub.isStrNull(grdMain.Rows[j].Cells[HInnerBillNoCol].Value);  //销售订单号
                        HCustom3 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom3Col].Value);          // ç•Œé¢ä¸Šè¾“å…¥   MPN
                        //界面上MPN值输入为/的,版本取物料代码后两位,不为/的则为改制,取0
                        if (HCustom3 != "/")
                        {
                            HCode3 = "0";
                        }
                        //获取最大流水号
                        if (cmbHCusName.Text.Contains("东方通信"))
                        {
                            //条码前缀 = 2位固定码('09') + CPN客户编码(规格型号)+ 2位预留码(固定'01')+ 5位年年月日日(YYMDD) + 3位09码流水号(固定'001') + ä¾›åº”商代码(固定'105652')
                            sWTMNumber = "09" + HMaterModel + "01" + sYear + sPeriod + sDay + "001105652";
                            sWTMNumber = "09" + HCusModelName + "01" + sYear + sPeriod + sDay + "001105652";
                        }
                        //紫光华智
                        else if (cmbHCusName.Text.Contains("紫光华智"))
                        {
                            //条码前缀 = 2位固定码('09') + CPN客户编码(规格型号)+ 2位预留码(固定'01')+ 5位年年月日日(YYMDD) + 3位09码流水号(固定'001') + ä¾›åº”商代码(固定'151003')
                            sWTMNumber = "09" + HMaterModel + "01" + sYear + sPeriod + sDay + "001151003";
                            sWTMNumber = "09" + HCusModelName + "01" + sYear + sPeriod + sDay + "001151003";
                        }
                        //新华三、统合
                        else
                        {
                            //条码前缀 = 2位固定码('09') + CPN客户编码(规格型号)+ 2位预留码(固定'01')+ 5位年年月日日(YYMDD) + 3位09码流水号(固定'001') + ä¾›åº”商代码(固定'151091')
                            sWTMNumber = "09" + HMaterModel + "01" + sYear + sPeriod + sDay + "001151091";
                            sWTMNumber = "09" + HCusModelName + "01" + sYear + sPeriod + sDay + "001151091";
                        }
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sWTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                        LWSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
@@ -882,7 +896,6 @@
                            HAuxPropID = ClsPub.isLong(grdMain.Rows[j].Cells[HAuxPropIDCol].Value);
                            HQty = HWMinQty;
                            HCusID = ClsPub.isLong(cmbHCusName.SelectedValue);
                            HCusModelName = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelNameCol].Value);
                            HCusModel = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCusModelCol].Value);
                            HGiveAwayFlag = ClsPub.isBool(grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value);
                            HISKFPERIOD = ClsPub.isBool(grdMain.Rows[j].Cells[HISKFPERIODCol].Value);
@@ -902,7 +915,6 @@
                            sHBaNo = ClsPub.isStrNull(grdMain.Rows[j].Cells[HBaNoCol].Value);                        // ç•Œé¢ä¸Šè¾“入的批次位
                            HCustom1 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom1Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            HCustom2 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom2Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            HCustom3 = ClsPub.isStrNull(grdMain.Rows[j].Cells[HCustom3Col].Value);                   // ç•Œé¢ä¸Šè¾“å…¥
                            //版本号HCode3、产品代码HCustom1、料号HCustom2、MPNHCustom3、销售订单号HInnerBillNo、规格型号HSupNumber
                            oCn.RunProc("insert into Gy_BarCodeBill_Cus" +
@@ -958,7 +970,7 @@
        private void Display()
        {
            //刷新内箱码列表
            DataSet DSet = oCn.RunProcReturn("select * from h_v_Gy_BarCodeBill_CusList where HInterID=" + HInterID.ToString() + " and (条码类型 in ('新华三内箱码','东方通信内箱码','统合内箱码','紫光华智内箱码') order by HItemID", "h_v_Gy_BarCodeBill_CusList", ref DBUtility.ClsPub.sExeReturnInfo);
            DataSet DSet = oCn.RunProcReturn("select * from h_v_Gy_BarCodeBill_CusList where HInterID=" + HInterID.ToString() + " and æ¡ç ç±»åž‹ in ('新华三内箱码','东方通信内箱码','统合内箱码','紫光华智内箱码') order by HItemID", "h_v_Gy_BarCodeBill_CusList", ref DBUtility.ClsPub.sExeReturnInfo);
            //生成首行标题
            if (DSet == null)
            {
@@ -969,7 +981,7 @@
            grdSub.DataSource = DSet.Tables[0].DefaultView;
            //刷新外箱码列表
            DataSet DWSet = oCn.RunProcReturn("select * from h_v_Gy_BarCodeBill_CusList where HInterID=" + HInterID.ToString() + " and (条码类型 in ('新华三外箱码','东方通信外箱码','统合外箱码','紫光华智外箱码') order by HItemID", "h_v_Gy_BarCodeBill_CusList", ref DBUtility.ClsPub.sExeReturnInfo);
            DataSet DWSet = oCn.RunProcReturn("select * from h_v_Gy_BarCodeBill_CusList where HInterID=" + HInterID.ToString() + " and æ¡ç ç±»åž‹ in ('新华三外箱码','东方通信外箱码','统合外箱码','紫光华智外箱码') order by HItemID", "h_v_Gy_BarCodeBill_CusList", ref DBUtility.ClsPub.sExeReturnInfo);
            //生成首行标题
            if (DWSet == null)
            {
WebAPI/Controllers/BaseSet/Gy_UnitController.cs
@@ -49,11 +49,11 @@
                }
                string sql1 = string.Format(@"select * from h_v_Gy_UnitList where ç»„织名称='" + Organization + "'");
                if (oSystemParameter.omodel.WMS_CampanyName.Contains("四维尔"))
                {
                     sql1 = string.Format(@"select * from h_v_Gy_UnitList where 1=1 ");
                //if (oSystemParameter.omodel.WMS_CampanyName.Contains("四维尔"))
                //{
                //     sql1 = string.Format(@"select * from h_v_Gy_UnitList where 1=1 ");
                }
                //}
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn(sql1 + sWhere + "order by è®¡é‡å•位代码 ", "h_v_Gy_UnitList");
WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -1409,12 +1409,12 @@
                    return objJsonResult;
                }
                if (totalWeight <= 0)
                if (totalWeight < 0)
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!重量必须大于0";
                    objJsonResult.Message = "保存失败!重量必须大于等于0";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
WebAPI/Controllers/CJGL/Sc_ProcessExchangeBillController.cs
@@ -10,6 +10,7 @@
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using System.Linq;
namespace WebAPI.Controllers
{
@@ -51,6 +52,7 @@
            string msg4 = sArray[2].ToString();
            string msg5 = sArray[3].ToString();
            string HBillSubType = sArray[4].ToString();
            string msg6 = sArray.Length > 5 ? sArray[5] : ""; // è¿™é‡Œå®‰å…¨äº†
            string HComputerName = SystemInformation.ComputerName; //设备名称    
            string UserName = "";
@@ -90,7 +92,7 @@
                {
                    UserName = oItem.HMaker;  //制单人
                    oItem.HBillType = "3772";
                    oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : "3772";
                    oItem.HBillSubType = HBillSubType == "SUB" ? HBillSubType : oItem.HBillSubType;
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    oItem.HDate = HBillSubType == "SUB" ? DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")) : oItem.HDate;
@@ -123,59 +125,65 @@
                    oBill.DetailColl.Add(oItemSub);
                }
                //返工表体数据
                //按 },{来拆分数组 //去掉【和】
                List<Model.Sc_ProcessExchangeBillSub_HRelationBack> ls2 = new List<Model.Sc_ProcessExchangeBillSub_HRelationBack>();
                if (!string.IsNullOrEmpty(msg6))
                {
                    // åªæœ‰ msg6 ä¸ä¸ºç©ºæ‰èµ°è¿™é‡Œ
                    msg6 = msg6.Substring(1, msg6.Length - 2);
                    msg6 = msg6.Replace("\\", "");
                    msg6 = msg6.Replace("\n", "");
                    // è¿™é‡Œå¿…须传 msg6,不是 msg3!!!
                    ls2 = oListModels.getObjectByJson_Sc_ProcessExchangeBillSub_HRelationBack(msg6);
                }
                int i2 = 0;
                foreach (Model.Sc_ProcessExchangeBillSub_HRelationBack oItemSub2 in ls2)
                {
                    i2++;
                    oItemSub2.HEntryID = i2;
                    oItemSub2.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    // åœ¨è¿™é‡Œç›´æŽ¥ç»™é»˜è®¤å€¼ï¼
                    // ======================
                    oItemSub2.HProcExchInterID = oItemSub2.HProcExchInterID > 0 ? oItemSub2.HProcExchInterID : 0;
                    oItemSub2.HProcExchEntryID = oItemSub2.HProcExchEntryID > 0 ? oItemSub2.HProcExchEntryID : 0;
                    oItemSub2.HProcExchBillNo = string.IsNullOrEmpty(oItemSub2.HProcExchBillNo) ? "" : oItemSub2.HProcExchBillNo;
                    oItemSub2.HICMOInterID = oItemSub2.HICMOInterID > 0 ? oItemSub2.HICMOInterID : 0;
                    oItemSub2.HICMOEntryID = oItemSub2.HICMOEntryID > 0 ? oItemSub2.HICMOEntryID : 0;
                    oItemSub2.HICMOBillNo = string.IsNullOrEmpty(oItemSub2.HICMOBillNo) ? "" : oItemSub2.HICMOBillNo;
                    oItemSub2.HStationOutInterID = oItemSub2.HStationOutInterID > 0 ? oItemSub2.HStationOutInterID : 0;
                    oItemSub2.HStationOutBillNo = string.IsNullOrEmpty(oItemSub2.HStationOutBillNo) ? "" : oItemSub2.HStationOutBillNo;
                    oBill.DetailColl2.Add(oItemSub2);
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (msg5 == "xz")
                {
                    LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",新增工序流转卡单据:" + oBill.omodel.HBillNo);
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    //测试语句===========================================================================================================
                    string msg_str = "";
                    string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " +
                                "from Sc_ProcessExchangeBillMain as a " +
                                "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " +
                                "where a.HInterID = " + oBill.omodel.HInterID;
                    DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain");
                    if (ds_str.Tables[0].Rows.Count > 0)
                    {
                        msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:";
                        for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++)
                        {
                            msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ",";
                        }
                    }
                    //==============================================================================================================
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "新增工序流转卡单据:" + oBill.omodel.HBillNo  + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    LogService.Write("用户:" + msg4 + ",日期:" + DateTime.Now + ",修改工序流转卡单据:" + oBill.omodel.HBillNo);
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //测试语句===========================================================================================================
                    string msg_str = "";
                    string sql_str = "select a.HQty HQty_Main,b.HQty HQty_Sub " +
                                "from Sc_ProcessExchangeBillMain as a " +
                                "inner join Sc_ProcessExchangeBillSub as b on a.HInterID = b.HInterID " +
                                "where a.HInterID = " + oBill.omodel.HInterID;
                    DataSet ds_str = oCN.RunProcReturn(sql_str, "Sc_ProcessExchangeBillMain");
                    if (ds_str.Tables[0].Rows.Count > 0)
                    {
                        msg_str = "HQty_Main:" + ds_str.Tables[0].Rows[0]["HQty_Main"].ToString() + ";HQty_Sub:";
                        for (int j = 0; j < ds_str.Tables[0].Rows.Count; j++)
                        {
                            msg_str += ds_str.Tables[0].Rows[j]["HQty_Sub"].ToString() + ",";
                        }
                    }
                    //==============================================================================================================
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + msg_str + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + msg4 + "','" + HComputerName + "','" + "修改工序流转卡单据:" + oBill.omodel.HBillNo + "','LMES-工序流转卡模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
@@ -207,7 +215,6 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "[0000-1-050]保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
@@ -2846,5 +2853,54 @@
        }
        #endregion
        #region[新增时获取表体数据(返工申请单)]
        [Route("Sc_ProcessExchangeBill/GetProcExchangeWorkBackList")]
        [HttpGet]
        public object GetProcExchangeWorkBackList(string HInterID)
        {
            DataSet ds;
            try
            {
                //拆分并过滤出有效数字ID
                var idList = HInterID.Split(',')  // 1. æŒ‰é€—号分割字符串
                      .Select(s => s.Trim())  // 2. åŽ»é™¤æ¯ä¸ªå…ƒç´ çš„ç©ºæ ¼
                      .Where(s => int.TryParse(s, out _))  // 3. åªä¿ç•™èƒ½è½¬æˆæ•°å­—的字符串
                      .ToList();  // 4. è½¬æˆList集合
                // æž„建安全的 IN å­å¥
                string inClause = string.Join(",", idList);
                List<object> columnNameList = new List<object>();
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcExchWorkBackBillList_Query where 1=1 and hmainid in (" + inClause + ")", "h_v_Sc_ProcExchWorkBackBillList_Query");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.list = columnNameList;
                objJsonResult.Message = "[0000-1-037]获取信息成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "[0000-1-038]没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/SBGL/Sb_EquipRepairSendWorkBillController.cs
@@ -49,22 +49,11 @@
                    ds = oCN.RunProcReturn(sql + sWhere+ " order by hmainid desc ", "h_v_Sb_EquipRepairSendWorkBill_Edit");
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = ds.Tables[0].Rows.Count;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
                //else
                //{
                //objJsonResult.code = "0";
                //objJsonResult.count = 0;
                //objJsonResult.Message = "无数据";
                //objJsonResult.data = null;
                //return objJsonResult;
                //}
            }
            catch (Exception e)
            {
WebAPI/Controllers/SCGL/Sc_MESTransFerWorkBillController.cs
@@ -8869,14 +8869,14 @@
                {
                    HSourceBill = HSourceBill.Split('-')[0];
                    //华舟做末件发起安灯的时候 ä¼ è¿‡æ¥çš„æ˜¯å‡ºç«™å•的单据号
                    sql = @"select a.HProcExchInterID æµè½¬å¡ä¸»å†…码,a.HProcExchEntryID æµè½¬å¡å­å†…码,a.HProcExchBillNo æµè½¬å¡å·,a.HSourceID,b.HName ç”Ÿäº§èµ„源, c.HNumber ç‰©æ–™ä»£ç , c.HName ç‰©æ–™åç§°, c.HModel è§„格型号, a.HPlanQty è®¡åˆ’数量
                    sql = @"SELECT ISNULL(a.HProcExchInterID,0) æµè½¬å¡ä¸»å†…码,ISNULL(a.HProcExchEntryID,0) æµè½¬å¡å­å†…码,ISNULL(a.HProcExchBillNo,'') æµè½¬å¡å·,ISNULL(a.HSourceID,0) HSourceID,ISNULL(b.HName,'') ç”Ÿäº§èµ„源,ISNULL(c.HNumber,'') ç‰©æ–™ä»£ç ,ISNULL(c.HName,'') ç‰©æ–™åç§°,ISNULL(c.HModel,'') è§„格型号,ISNULL(a.HPlanQty,0) è®¡åˆ’数量,ISNULL(a.HICMOInterID,0) HICMOInterID,ISNULL(a.HICMOEntryID,0) HICMOEntryID,ISNULL(a.HICMOBillNo,'') HICMOBillNo
                            from Sc_StationOutBillMain a  left  join Gy_Source b on a.HSourceID = b.HItemID  left  join Gy_Material c on a.HMaterID = c.HItemID  where a.HBillNo = '" + HSourceBill + "'";
                }
                else
                {
                    //报工台传过来的是流转卡的
                    sql = "select a.HSourceBillNo æµè½¬å¡å·,a.HSourceBillType æµè½¬å¡ç±»åž‹,a.HSourceInterID æµè½¬å¡ä¸»å†…码,a.HSourceEntryID æµè½¬å¡å­å†…码,b.HNumber ç‰©æ–™ä»£ç ,b.HName ç‰©æ–™åç§°,b.HModel è§„格型号,a.HDatePlanQty è®¡åˆ’数量,a.HSourceID,c.HName ç”Ÿäº§èµ„源 from Sc_ICMOBillStatus_Tmp a " +
                    "left join Gy_Material b on a.HMaterID=b.HItemID  left join Gy_Source c on a.HSourceID=c.HItemID where HSourceBillNo='" + HSourceBill + "' and a.HICMOStatus=1";
                    sql = @"SELECT ISNULL(a.HSourceBillNo,'') æµè½¬å¡å·,ISNULL(a.HSourceBillType,'') æµè½¬å¡ç±»åž‹,ISNULL(a.HSourceInterID,0) æµè½¬å¡ä¸»å†…码,ISNULL(a.HSourceEntryID,0) æµè½¬å¡å­å†…码,ISNULL(b.HNumber,'') ç‰©æ–™ä»£ç ,ISNULL(b.HName,'') ç‰©æ–™åç§°,ISNULL(b.HModel,'') è§„格型号,ISNULL(a.HDatePlanQty,0) è®¡åˆ’数量,ISNULL(a.HSourceID,0) HSourceID,ISNULL(c.HName,'') ç”Ÿäº§èµ„源,ISNULL(a.HICMOInterID,0) HICMOInterID,ISNULL(a.HICMOEntryID,0) HICMOEntryID,ISNULL(a.HICMOBillNo,'') HICMOBillNo
                           from Sc_ICMOBillStatus_Tmp a left join Gy_Material b on a.HMaterID=b.HItemID  left join Gy_Source c on a.HSourceID=c.HItemID where HSourceBillNo='" + HSourceBill + "' and a.HICMOStatus=1";
                }
                 
                ds = oCN.RunProcReturn(sql, "Sc_ICMOBillStatus_Tmp");
WebAPI/Controllers/Sb_CheckEqpRepairWorkBillController.cs
@@ -1068,9 +1068,7 @@
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);    
                    //反写维修记录单关闭
                    string sql = "Update Sb_EquipRepairWorkBillMain set HCloseMan='关联验收单自动关闭',HCloseDate=GETDATE(),HBillStatus=3,HCloseType = 1 Where HInterID=" + oBill.omodel.HMainSourceInterID.ToString();
                    ds = oCN.RunProcReturn(sql, "Sb_EquipRepairWorkBillMain");
                    //部门,发现人,负责人,设备
                    _ = SendDingDingAsync(oBill.omodel.HDeptID, oBill.omodel.HEmpID, oBill.omodel.HManagerID, oBill.omodel.HEquipID, 3);
                }
@@ -1563,7 +1561,7 @@
                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sb_EquipConkBookBill_AfterDelCtrl", user, ref DBUtility.ClsPub.sExeReturnInfo);
                var oDelDs = oCN.RunProcReturn($"exec h_p_Sb_EquipConkBookBill_AfterDelCtrl {lngBillKey},{oBill.omodel.HBillNo}, {user}, {oBill.omodel.HEquipID}", "h_p_Sb_EquipConkBookBill_AfterDelCtrl");
                var oDelDs = oCN.RunProcReturn($"exec h_p_Sb_EquipConkBookBill_AfterDelCtrl {lngBillKey},{oBill.omodel.HBillNo}, {user}", "h_p_Sb_EquipConkBookBill_AfterDelCtrl");
                if (!IsDete || oDelDs == null)
                {
                    objJsonResult.code = "0";
@@ -1574,7 +1572,7 @@
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
WebAPI/Controllers/WebAPIController.cs
@@ -21169,12 +21169,12 @@
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select ManagerFlag from gy_czygl where czymc='" + user.Trim() + "'", "gy_czygl");
                if (!(bool)ds.Tables[0].Rows[0]["ManagerFlag"])  //是否管理员
                {
                    //不是管理员
                    sWhere += " and åˆ¶å•人 = '" + user + "'";
                }
                //ds = oCN.RunProcReturn("select ManagerFlag from gy_czygl where czymc='" + user.Trim() + "'", "gy_czygl");
                //if (!(bool)ds.Tables[0].Rows[0]["ManagerFlag"])  //是否管理员
                //{
                //    //不是管理员
                //    sWhere += " and åˆ¶å•人 = '" + user + "'";
                //}
                string sql = string.Format(@"select * from " + HView + " where 1 = 1 " + sWhere + " order by æ—¥æœŸ desc, hmainid desc");
WebAPI/Controllers/Æ·ÖʹÜÀí/Ê×¼þ¼ìÑéµ¥/QC_FirstPieceCheckBillController.cs
@@ -2234,6 +2234,14 @@
                                "and a.HInterID = " + HCheckFlowID + " " +
                                "order by b.HFlowNo asc";
                        DataSet ds03 = oCN.RunProcReturn(sql03, "Xt_CheckFlowMain");
                        if (ds03 == null || ds03.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = CodeConstant.FAIL;
                            objJsonResult.count = CountConstant.FAIL;
                            objJsonResult.Message = "审核失败!原因:未找到对应审批流!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //获取新的当前审核项目和待审核项目
                        for (int i = 0; i < ds03.Tables[0].Rows.Count; i++)
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Cb_OtherOutBill_CostSubjectDetailController.cs
New file
@@ -0,0 +1,359 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Http;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
using WebAPI.Service;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Cb_OtherOutBill_CostSubjectDetailController : ApiController
    {
        // GET: Cb_OtherOutBill_CostSubjectDetail
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        [Route("Cb_OtherOutBill_CostSubjectDetail/list")]
        [HttpGet]
        public object list(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_CostAverageType_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Cb_OtherOutBill_CostSubjectDetail where 1=1 order by æ—¥æœŸ desc ", "h_v_Cb_OtherOutBill_CostSubjectDetail");
                }
                else
                {
                    string sql1 = "select * from h_v_Cb_OtherOutBill_CostSubjectDetail where 1=1 ";
                    string sql = sql1 + sWhere + " order by æ—¥æœŸ desc";
                    ds = oCN.RunProcReturn(sql, "h_v_Cb_OtherOutBill_CostSubjectDetail");
                }
                //添加列名
                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));//获取到DataColumn列对象的列名
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
                //}
                //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;
            }
        }
        #region æ–‡ä»¶ä¸Šä¼ 
        [Route("Cb_OtherOutBill_CostSubjectDetail/CB_WipProcessTable_Excel")]
        [HttpPost]
        public json CB_WipProcessTable_Excel()
        {
            json res = new json();
            try
            {
                //获取文件名称
                var file = HttpContext.Current.Request.Files[0];
                //获取文件物理路径
                string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
                //保存文件
                file.SaveAs(ExcelPath);
                SCGL.日计划管理.NpoiHelper np = new NpoiHelper();
                DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
                //删除文件
                File.Delete(ExcelPath);
                //创建临时表
                DataTable provisional = new DataTable("dt2");
                //添加列名
                for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
                {
                    provisional.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
                }
                //provisional.Columns.Add("单据号", typeof(string));
                //添加数据
                for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
                {
                    DataRow row = provisional.NewRow();
                    for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
                    {
                        row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
                    }
                    provisional.Rows.Add(row);
                }
                //判断列
                string error = JudgmentColumns(provisional);
                if (error.Length > 0)
                {
                    res.code = "0";
                    res.count = 0;
                    res.Message = $"Excel模板存在错误,{error}\r\n";
                    res.data = null;
                    return res;
                }
                for (int i = 0; i <= provisional.Rows.Count - 1; i++)
                {
                    string HDate = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["日期"].ToString());
                    string HBillNo = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["单据编号"].ToString());
                    string HWareHouse = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["发货仓库"].ToString());
                    string HStockPlace = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["仓位"].ToString());
                    string HUseType = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["领料类型"].ToString());
                    string HUseDepartment = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["领料部门"].ToString());
                    string HCostSubject = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["成本科目"].ToString());
                    string HCostSubjectSon = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["成本科目二级"].ToString());
                    string HSubjectProc = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["科目+工序"].ToString());
                    string HMaterNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["物料编码"].ToString());
                    string HMaterName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["物料名称"].ToString());
                    string HModel = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["规格型号"].ToString());
                    string HUnit = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["单位"].ToString());
                    string HQty = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["实发数量"].ToString());
                    string HCostPrice = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["成本价"].ToString());
                    string HTotalPrice = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["总成本"].ToString());
                    string HLOT = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["批号"].ToString());
                    string HRemark2 = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["备注"].ToString());
                    string HUsePerson = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["领料人"].ToString());
                    string HWareHousePerson = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["仓管员"].ToString());
                    string HAssetName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["资产名称"].ToString());
                    string HAssetNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["资产编号"].ToString());
                    string HSearchProject = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["研发项目"].ToString());
                    string HVerify = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["核对"].ToString());
                    //string remark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["备注"].ToString());
                    //获取真实行数
                    int line = i + 1;
                }
                res.code = "1";
                res.count = 1;
                res.Message = error;
                res.data = provisional;
                return res;
            }
            catch (Exception e)
            {
                res.code = "0";
                res.count = 0;
                res.Message = "Exception!" + e.ToString();
                res.data = null;
                return res;
            }
        }
        /// <summary>
        /// åˆ¤æ–­åˆ—
        /// </summary>
        /// <param name="provisional"></param>
        /// <returns></returns>
        private static string JudgmentColumns(DataTable provisional)
        {
            var error = "";
            ////查询没有的列
            //if (!provisional.Columns.Contains("客户"))
            //    error += "没有找到【客户】的标题,";
            //if (!provisional.Columns.Contains("成品料号"))
            //    error += "没有找到【成品料号】的标题,";
            return error;
        }
        #endregion
        #region ä¸Šä¼ ä¿å­˜
        [Route("Cb_OtherOutBill_CostSubjectDetail/Excel_btnSave")]
        [HttpPost]
        public object Excel_btnSave([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { "&和" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            string organ = sArray[2].ToString();
            json res = new json();
            try
            {
                oCN.BeginTran();
                List<object> Excel = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(msg2);
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                foreach (JObject item in Excel)
                {
                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    foreach (var itm in item.Properties())
                    {
                        dic.Add(itm.Name, itm.Value.ToString());
                    }
                    list.Add(dic);
                }
                // 4. æŸ¥è¯¢ç”¨æˆ·ä¿¡æ¯
                DataSet emp = oCN.RunProcReturn($"SELECT Czybm FROM Gy_Czygl WHERE Czymc = '{user.Replace("'", "''")}'", "Gy_Czygl");
                if (emp.Tables[0].Rows.Count == 0)
                {
                    res.code = "0";
                    res.count = 0;
                    res.Message = "用户不存在!";
                    res.data = null;
                    return res;
                }
                string HUserID = emp.Tables[0].Rows[0]["Czybm"].ToString();
                StringBuilder errorMessage = new StringBuilder();
                StringBuilder insertSql = new StringBuilder();
                StringBuilder updateSql = new StringBuilder();
                string currentDate = DateTime.Today.ToString("yyyy-MM-dd");
                int HEntryID = 1;
                // éåŽ†æ•°æ®å¹¶éªŒè¯
                for (int i = 0; i < list.Count; i++)
                {
                    var item = list[i];
                    List<string> intFields = new List<string>
                    {
                    };
                    bool hasError = false;
                    foreach (var field in intFields)
                    {
                        if (item.ContainsKey(field))
                        {
                            string value = item[field];
                            // æ£€æŸ¥æ˜¯å¦ä¸ºæ•´æ•°
                            if (!string.IsNullOrWhiteSpace(value))
                            {
                                if (!int.TryParse(value, out _))
                                {
                                    errorMessage.AppendLine($"第{i + 1}行数据错误:字段 '{field}' çš„值 '{value}' ä¸æ˜¯æœ‰æ•ˆçš„æ•´æ•°");
                                    hasError = true;
                                }
                            }
                        }
                    }
                    // å¦‚果有错误,跳过插入
                    if (hasError)
                    {
                        continue;
                    }
                    insertSql.AppendLine($"INSERT INTO [Cb_OtherOutBill_CostSubjectDetail] ([HYear], [HPeriod], [HBillType], [HBillSubType], [HDate], [HBillNo], [HBillStatus], [HCheckItemNowID], [HCheckItemNextID], [HCheckFlowID], [HRemark], [HBacker], [HBackDate], [HChecker], [HCheckDate], [HMaker], [HMakeDate], [HUpDater], [HUpDateDate], [HCloseMan], [HCloseDate], [HCloseType], [HDeleteMan], [HDeleteDate], [HWareHouse], [HStockPlace], [HUseType], [HUseDepartment], [HCostSubject], [HCostSubjectSon], [HSubjectProc], [HMaterNumber], [HMaterName], [HModel], [HUnit], [HQty], [HCostPrice], [HTotalPrice], [HLOT], [HRemark2], [HUsePerson], [HWareHousePerson], [HAssetName], [HAssetNumber], [HSearchProject], [HVerify])  VALUES (");
                    insertSql.AppendLine($" {item["年份"]}, {item["月份"]}, {1}, '{1}', '{item["日期"]}',  '{item["单据编号"]}', '{1}', '{1}', '{1}', '{1}', '{item["备注"]}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{""}', '{DateTime.Now}', '{"0"}', '{""}', '{DateTime.Now}', '{item["发货仓库"]}', '{item["仓位"]}', '{item["领料类型"]}', '{item["领料部门"]}', '{item["成本科目"]}', '{item["成本科目二级"]}', '{item["科目+工序"]}', '{item["物料编码"]}', '{item["物料名称"]}', '{item["规格型号"]}', '{item["单位"]}', '{item["实发数量"]}', '{item["成本价"]}', '{item["总成本"]}', '{item["批号"]}', '{"excel导入"}', '{item["领料人"]}', '{item["仓管员"]}', '{item["资产名称"]}', '{item["资产编号"]}', '{item["研发项目"]}', '{item["核对"]}');");
                }
                if (errorMessage.Length > 0)
                {
                    //oCN.Rollback();
                    res.code = "0";
                    res.count = 0;
                    res.Message = "数据验证失败:\n" + errorMessage.ToString();
                    res.data = null;
                    return res;
                }
                if (insertSql.Length == 0)
                {
                    // oCN.Rollback();
                    res.code = "0";
                    res.count = 0;
                    res.Message = "没有有效的整数数据可以导入";
                    res.data = null;
                    return res;
                }
                // æ‰§è¡Œæ‰¹é‡æ“ä½œ
                if (insertSql.Length > 0)
                {
                    oCN.RunProc(insertSql.ToString());
                }
                //if (updateSql.Length > 0)
                //{
                //    oCN.RunProc(updateSql.ToString());
                //    oCN.RunProc(updateSql_sub.ToString());
                //}
                oCN.Commit();
                res.code = "1";
                res.count = 1;
                res.Message = "导入成功!";
                res.data = null;
                return res;
            }
            catch (Exception e)
            {
                //oCN.Rollback();
                LogService.Write(e);
                res.code = "0";
                res.count = 0;
                res.Message = "Exception!" + e.ToString();
                res.data = null;
                return res;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Xt_CheckFlowBillController.cs
@@ -73,14 +73,15 @@
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
             msg3 = sArray[2].ToString();
            string msg4 = sArray[3].ToString();
            string msg1 = sArray[0].ToString();      //主表
            string msg2 = sArray[1].ToString();      //审批项目子表
            string msg4 = sArray[2].ToString();      //工序子表
            string msg5 = sArray[3].ToString();      //操作类型
            string msg6 = sArray[4].ToString();      //用户名
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckFlow_Edit", 1, false, msg4))
            if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckFlow_Edit", 1, false, msg6))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
@@ -94,7 +95,7 @@
                List<Models.Xt_CheckFlowSub> lsmain = new List<Models.Xt_CheckFlowSub>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain =JsonConvert.DeserializeObject<List<Xt_CheckFlowSub>>(msg2);
                lsmain = JsonConvert.DeserializeObject<List<Xt_CheckFlowSub>>(msg2);
                foreach (Xt_CheckFlowSub oItem in lsmain)
                {
                    if (oItem.HCheckItemID == 0)
@@ -114,9 +115,19 @@
                        return objJsonResult;
                    }
                }
                //工序子表数据
                List<Models.Xt_CheckFlowSub_Proc> lsProc = new List<Models.Xt_CheckFlowSub_Proc>();
                if (!string.IsNullOrEmpty(msg4) && msg4 != "[]")
                {
                    msg4 = msg4.Replace("\\", "");
                    msg4 = msg4.Replace("\n", "");
                    lsProc = JsonConvert.DeserializeObject<List<Xt_CheckFlowSub_Proc>>(msg4);
                }
                ds = oCN.RunProcReturn("select  *  from h_v_Xt_CheckFlowList where Hmainid= " + main.HInterID, "h_v_Xt_CheckFlowList");
                //保存前控制判断
                string sql = "select * from Xt_CheckFlowMain where  HBillTypeID = '" + main.HBillTypeID.ToString() + "' and HDeptID = " + main.HDeptID.ToString() + " and HStandard = 1 and HInterID <> "+ main.HInterID.ToString();
                string sql = "select * from Xt_CheckFlowMain where  HBillTypeID = '" + main.HBillTypeID.ToString() + "' and HDeptID = " + main.HDeptID.ToString() + " and HStandard = 1 and HInterID <> " + main.HInterID.ToString();
                DataSet ds2 = oCN.RunProcReturn(sql, "Xt_CheckFlowMain");
                if (ds2.Tables[0].Rows.Count > 0 && main.HStandard)
                {
@@ -129,7 +140,7 @@
                //保存
                //保存完毕后处理
                oCN.BeginTran();
                if (msg3 == "1" && ds.Tables[0].Rows.Count == 0)
                if (msg5 == "1" && ds.Tables[0].Rows.Count == 0)
                {
                    oCN.RunProc("Insert Into Xt_CheckFlowMain   " +
                         "(HBillTypeID,HInterID,HDeptID" +
@@ -149,8 +160,12 @@
                    " where HInterID=" + main.HInterID.ToString());
                    //删除子表
                    oCN.RunProc("delete from Xt_CheckFlowSub where HInterID=" + main.HInterID.ToString());
                    //删除工序子表
                    oCN.RunProc("delete from Xt_CheckFlowSub_Proc where HInterID=" + main.HInterID.ToString());
                }
                AddBillSub(lsmain, main.HInterID);
                //保存工序子表
                AddBillProcSub(lsProc, main.HInterID);
                oCN.Commit();
@@ -192,6 +207,56 @@
            return objJsonResult;
        }
        //保存工序子表
        public json AddBillProcSub(List<Xt_CheckFlowSub_Proc> DetailColl, long HInterID)
        {
            int i = 1;
            foreach (Xt_CheckFlowSub_Proc oSub in DetailColl)
            {
                oCN.RunProc("Insert into Xt_CheckFlowSub_Proc " +
                             " (HInterID,HEntryID,HProcID,HRemark" +
                             " )values("
                             + HInterID + "," + i + "," + oSub.HProcID + ",'" + oSub.HRemark + "') ");
                i++;
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #region å·¥åºå­è¡¨æŸ¥è¯¢
        [Route("Xt_CheckFlowBill/Xt_CheckFlowProcList")]
        [HttpGet]
        public object Xt_CheckFlowProcList(string sWhere)
        {
            try
            {
                string sql1 = string.Format(@"select a.HInterID,a.HEntryID,a.HProcID,b.HNumber as å·¥åºä»£ç ,b.HName as å·¥åº,a.HRemark as å¤‡æ³¨
                    from Xt_CheckFlowSub_Proc a
                    left join Gy_Process b on a.HProcID = b.HItemID
                    where 1=1 ");
                ds = oCN.RunProcReturn(sql1 + sWhere + " order by a.HEntryID", "Xt_CheckFlowSub_Proc");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region  å®¡æ ¸æµç¨‹å• åˆ é™¤
WebAPI/Controllers/ÌõÂë¹ÜÀí/WEBSController.cs
@@ -14748,8 +14748,8 @@
            {
                string sErrMsg = "";
                oSystemParameter.ShowBill(ref sErrMsg);
                // åŽèˆŸå®¢æˆ·
                if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                // åŽèˆŸå®¢æˆ·   å·¥åºè¿›ç«™æŽ¥æ”¶å•  å·¥åºå§”外接收单 ç”Ÿäº§è®¢å• å·¥åºæµè½¬å¡
                if (oSystemParameter.omodel.WMS_CampanyName == "华舟" && HSourceBillType != 3790 && HSourceBillType != 3793 && HSourceBillType != 3710 && HSourceBillType != 3772)
                {
                    if (!string.IsNullOrWhiteSpace(HBarCode))
                    {
@@ -14803,6 +14803,14 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (ds.Tables[0].Columns.Contains("HBack") && DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                {
WebAPI/DLL/ClsSb_EquipRepairCheckBill.cs
@@ -34,7 +34,21 @@
        {
            try
            {
                //
                //保存前控制=========================================
                string HBillNote = "";
                DataSet ds = oCn.RunProcReturn("Exec h_p_Sb_EquipRepairCheckBill_BeforeSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2 ,2 ", "h_p_Sb_EquipRepairCheckBill_BeforeSaveCtrl");
                if (ds == null)
                {
                    sReturn = "保存前判断失败!";
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    return false;
                }
                //=========================================================
                oCn.BeginTran();
                //更新主表
                oCn.RunProc("UpDate Sb_EquipRepairCheckBillMain set  " +
@@ -79,6 +93,24 @@
                      ") ");
                }
                sReturn = "修改单据成功!";
                //=========================保存后控制
                DataSet ds2 = oCn.RunProcReturn("Exec h_p_Sb_EquipRepairCheckBill_AfterSaveCtrl " + omodel.HInterID.ToString() + ", '" + omodel.HBillNo + "','" + HBillNote + "',2,2 ", "h_p_Sb_EquipRepairCheckBill_AfterSaveCtrl");
                if (ds2 == null)
                {
                    sReturn = "保存后控制判断失败!";
                    oCn.RollBack();
                    return false;
                }
                if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBack"]) != "0")
                {
                    sReturn = "保存失败2!" + DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBackRemark"]);
                    oCn.RollBack();
                    return false;
                }
                //============================
                oCn.Commit();
                return true;
            }
WebAPI/ListModels.cs
@@ -961,6 +961,18 @@
        }
        /// <summary>
        /// å¤„理新增工序流转卡子表3的json
        /// </summary>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public List<Model.Sc_ProcessExchangeBillSub_HRelationBack> getObjectByJson_Sc_ProcessExchangeBillSub_HRelationBack(string jsonString)
        {
            jsonString = "[" + jsonString.ToString() + "]";
            List<Model.Sc_ProcessExchangeBillSub_HRelationBack> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.Sc_ProcessExchangeBillSub_HRelationBack>>(jsonString);
            return list;
        }
        /// <summary>
        /// å¤„理新增出站汇报单主表的json
        /// </summary>
        /// <param name="jsonString"></param>
WebAPI/Models/Xt_CheckFlowSub_Proc.cs
New file
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class Xt_CheckFlowSub_Proc
    {
        public Int64 HInterID;
        public Int64 HEntryID;
        public int HProcID;
        public string HRemark;
    }
}
WebAPI/Properties/PublishProfiles/FolderProfile2.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-04-07T07:38:09.8395315Z;False|2026-04-07T15:27:46.9278409+08:00;False|2026-04-07T15:27:02.6775164+08:00;True|2026-04-07T09:31:26.2712477+08:00;False|2026-04-07T09:29:57.2360264+08:00;True|2026-04-03T15:06:46.9708068+08:00;False|2026-04-03T15:03:51.9971348+08:00;True|2026-03-27T14:26:07.9321307+08:00;False|2026-03-27T14:25:22.5010392+08:00;True|2026-03-27T13:35:36.8292396+08:00;False|2026-03-27T13:31:46.3527084+08:00;True|2026-03-24T15:10:02.2143243+08:00;True|2026-03-24T14:44:30.5286229+08:00;True|2026-03-24T10:24:40.8361153+08:00;False|2026-03-24T10:23:42.4160796+08:00;True|2026-03-23T19:05:41.2442007+08:00;False|2026-03-23T19:05:02.6358374+08:00;True|2026-03-23T15:35:21.7391934+08:00;False|2026-03-23T15:33:14.3621736+08:00;True|2026-03-21T11:27:25.8485662+08:00;True|2026-03-21T10:51:07.0416520+08:00;False|2026-03-21T10:50:30.0808809+08:00;True|2026-03-20T15:21:25.3928861+08:00;False|2026-03-20T15:20:18.7323151+08:00;True|2026-03-19T17:53:04.0599612+08:00;False|2026-03-19T17:49:34.2586338+08:00;True|2026-03-18T16:36:39.3459012+08:00;False|2026-03-18T16:33:44.2834015+08:00;True|2026-03-18T09:14:46.8169365+08:00;False|2026-03-18T09:11:29.5956354+08:00;True|2026-03-17T21:02:32.6298438+08:00;False|2026-03-17T21:01:51.7259809+08:00;True|2026-03-17T17:42:17.6095943+08:00;True|2026-03-17T17:22:22.7829010+08:00;True|2026-03-17T17:07:30.0424197+08:00;True|2026-03-17T17:00:25.9496446+08:00;True|2026-03-17T16:57:34.7454437+08:00;False|2026-03-17T16:55:25.6389756+08:00;True|2026-03-16T17:53:15.9567970+08:00;False|2026-03-16T17:52:38.5476276+08:00;True|2026-03-14T17:08:45.9696477+08:00;False|2026-03-14T17:07:54.0759419+08:00;True|2026-03-13T15:56:58.9781226+08:00;True|2026-03-13T14:54:12.0380800+08:00;True|2026-03-13T14:45:10.9471893+08:00;True|2026-03-13T14:34:35.7792308+08:00;True|2026-03-13T13:28:54.0165676+08:00;True|2026-03-13T13:04:26.7960852+08:00;True|2026-03-13T12:32:40.4056776+08:00;True|2026-03-13T12:00:38.5403236+08:00;True|2026-03-13T11:58:15.7212751+08:00;False|2026-03-13T11:56:03.1608711+08:00;True|2026-03-12T12:56:09.1798557+08:00;True|2026-03-12T12:10:38.6579078+08:00;True|2026-03-12T12:00:41.1216693+08:00;True|2026-03-12T10:49:25.6657932+08:00;True|2026-03-12T10:34:42.0132081+08:00;False|2026-03-12T10:34:21.1374537+08:00;True|2026-03-12T09:49:04.2791476+08:00;False|2026-03-12T09:48:32.0226441+08:00;True|2026-03-11T21:37:22.2202127+08:00;False|2026-03-11T21:35:48.4959239+08:00;True|2026-03-11T20:47:52.7636338+08:00;False|2026-03-11T20:47:20.3374534+08:00;True|2026-03-10T09:03:48.7681627+08:00;False|2026-03-10T09:02:36.0583806+08:00;True|2026-03-09T22:57:55.3577018+08:00;False|2026-03-09T22:55:54.8997804+08:00;True|2026-03-09T17:08:10.5420450+08:00;True|2026-03-09T16:57:28.4177680+08:00;True|2026-03-09T16:50:59.8251070+08:00;True|2026-03-09T10:23:55.4999880+08:00;False|2026-03-09T10:23:00.0281682+08:00;True|2026-03-06T09:15:06.5024218+08:00;True|2026-03-06T08:54:38.7087070+08:00;False|2026-03-06T08:53:23.6823346+08:00;True|2026-03-05T17:26:43.5908847+08:00;False|2026-03-05T17:25:48.2804326+08:00;True|2026-03-05T16:04:43.1077406+08:00;False|2026-03-05T16:02:11.7881116+08:00;True|2026-03-03T16:16:26.8635275+08:00;True|2026-03-03T15:54:24.2283621+08:00;True|2026-03-03T12:32:30.4495356+08:00;False|2026-03-03T12:31:06.0560910+08:00;True|2026-03-02T12:18:24.6587456+08:00;True|2026-03-02T09:35:22.6172462+08:00;False|2026-03-02T09:32:04.1416982+08:00;True|2026-02-28T12:04:01.7406133+08:00;True|2026-02-28T08:47:36.7167331+08:00;False|2026-02-28T08:46:49.1748795+08:00;True|2026-02-27T17:21:35.6897064+08:00;True|2026-02-27T17:00:03.2447893+08:00;True|2026-02-27T14:26:49.0714379+08:00;True|2026-02-27T13:57:50.9161682+08:00;False|2026-02-27T13:54:58.3092086+08:00;True|2026-02-26T16:30:22.6331887+08:00;True|2026-02-26T15:56:54.4778359+08:00;False|2026-02-26T15:55:53.2808802+08:00;False|2026-02-26T15:55:27.7501008+08:00;True|2026-02-26T12:42:10.3734658+08:00;True|2026-02-26T12:01:13.4363491+08:00;True|2026-02-26T10:24:02.2555254+08:00;True|2026-02-03T11:56:14.3086755+08:00;True|2026-02-03T11:51:19.6091315+08:00;True|2026-02-03T10:42:35.4774950+08:00;False|2026-02-03T10:40:57.1735351+08:00;True|2026-02-03T09:30:22.5235073+08:00;False|2026-02-03T09:27:21.6917147+08:00;True|2026-02-02T15:31:07.3762944+08:00;True|2026-02-02T14:13:20.5690146+08:00;True|2026-02-02T10:42:22.4804584+08:00;False|2026-02-02T10:41:48.7402434+08:00;True|2026-02-01T17:40:21.0538069+08:00;True|2026-02-01T15:44:12.2393909+08:00;False|2026-02-01T15:40:37.6456544+08:00;True|2026-01-31T12:05:50.6946479+08:00;False|2026-01-31T12:04:44.5273342+08:00;True|2026-01-29T17:14:07.3795568+08:00;True|2026-01-29T17:11:48.4286289+08:00;True|2026-01-29T16:10:42.7141082+08:00;True|2026-01-29T14:41:38.0583611+08:00;True|2026-01-29T14:36:18.1975177+08:00;True|2026-01-29T14:34:43.7423264+08:00;True|2026-01-29T14:09:16.2701844+08:00;True|2026-01-29T13:17:37.0708838+08:00;True|2026-01-29T10:21:51.3074443+08:00;False|2026-01-29T10:20:12.1418198+08:00;True|2026-01-28T13:52:59.2210650+08:00;True|2026-01-28T10:34:06.8152564+08:00;False|2026-01-28T10:32:51.4478083+08:00;True|2026-01-27T12:19:58.2090999+08:00;True|2026-01-27T12:18:40.9255150+08:00;True|2026-01-27T12:10:45.0784359+08:00;True|2026-01-27T11:45:58.2218602+08:00;True|2026-01-27T08:54:11.2473398+08:00;False|2026-01-27T08:50:52.3900508+08:00;True|2026-01-25T16:51:10.8469862+08:00;True|2026-01-25T16:15:55.3063785+08:00;False|2026-01-25T16:13:47.1609576+08:00;False|2026-01-25T16:10:27.3797138+08:00;True|2026-01-22T19:26:11.1120981+08:00;False|2026-01-22T19:21:59.7591077+08:00;True|2026-01-21T20:10:38.2264542+08:00;True|2026-01-21T20:05:52.6769930+08:00;False|2026-01-21T20:04:52.2864808+08:00;True|2026-01-20T10:09:22.6558754+08:00;True|2026-01-20T09:43:16.9535139+08:00;False|2026-01-20T09:40:14.5080297+08:00;True|2026-01-19T17:23:36.9963060+08:00;True|2026-01-19T17:18:41.7602029+08:00;True|2026-01-19T17:05:35.1663057+08:00;True|2026-01-19T16:49:48.9497194+08:00;True|2026-01-19T12:35:09.4063486+08:00;False|2026-01-19T12:33:25.3260660+08:00;True|2026-01-17T20:21:42.3497625+08:00;True|2026-01-17T20:17:40.8631870+08:00;True|2026-01-17T20:13:16.6618986+08:00;False|2026-01-17T20:10:39.7099356+08:00;False|2026-01-17T20:10:01.5198461+08:00;False|2026-01-17T20:09:07.5632818+08:00;True|2026-01-17T20:06:07.7085249+08:00;True|2026-01-17T17:50:38.6295526+08:00;False|2026-01-17T17:48:59.9531552+08:00;True|2026-01-16T16:22:22.3525933+08:00;True|2026-01-16T14:14:39.4187185+08:00;False|2026-01-16T14:10:47.6350779+08:00;True|2026-01-15T17:33:04.8867687+08:00;True|2026-01-15T17:13:07.4827420+08:00;False|2026-01-15T17:11:32.8298249+08:00;True|2026-01-15T16:34:04.8984638+08:00;True|2026-01-15T14:12:39.3677563+08:00;False|2026-01-15T14:10:25.0842475+08:00;True|2026-01-14T19:47:01.2486856+08:00;False|2026-01-14T19:46:15.5380497+08:00;True|2026-01-14T15:49:22.6528911+08:00;True|2026-01-14T10:24:06.5942562+08:00;False|2026-01-14T10:22:32.4884475+08:00;False|2026-01-12T09:27:01.9297704+08:00;True|2026-01-11T14:27:58.9407325+08:00;False|2026-01-11T14:26:47.1324504+08:00;True|2026-01-11T13:54:38.7697615+08:00;True|2026-01-11T12:39:56.1396008+08:00;False|2026-01-11T12:37:59.5059421+08:00;True|2026-01-09T15:34:00.7959753+08:00;False|2026-01-09T15:32:33.3223847+08:00;True|2026-01-09T10:27:04.4418230+08:00;False|2026-01-09T10:24:55.6104648+08:00;True|2026-01-08T18:05:09.8950096+08:00;False|2026-01-08T18:03:49.6828377+08:00;True|2026-01-08T15:53:31.8458993+08:00;True|2026-01-08T15:43:35.4452984+08:00;True|2026-01-08T15:16:09.2797564+08:00;True|2026-01-08T15:09:12.1761272+08:00;False|2026-01-08T15:08:31.8053125+08:00;True|2026-01-08T12:28:32.3839432+08:00;False|2026-01-08T12:28:06.4930402+08:00;False|2026-01-06T13:05:41.4537127+08:00;True|2026-01-04T11:27:03.6003486+08:00;True|2026-01-04T11:16:09.0856233+08:00;True|2026-01-04T11:09:33.9721372+08:00;True|2026-01-04T10:59:57.5111892+08:00;False|2026-01-04T10:57:57.5312203+08:00;True|2025-12-30T14:23:14.0889784+08:00;True|2025-12-29T09:12:05.7081903+08:00;False|2025-12-29T09:11:27.9082848+08:00;True|2025-07-01T16:53:57.8492332+08:00;True|2025-07-01T16:14:28.8419744+08:00;True|2025-07-01T15:15:43.3121091+08:00;True|2025-07-01T14:48:00.3454856+08:00;True|2025-07-01T09:17:46.2541717+08:00;False|2025-07-01T09:17:07.0648196+08:00;True|2025-06-23T14:30:28.6691264+08:00;False|2025-06-23T14:27:45.6002040+08:00;True|2025-06-23T11:02:08.3020700+08:00;True|2025-06-23T10:47:44.4654541+08:00;True|2025-06-23T09:46:24.9049910+08:00;False|2025-06-23T09:45:40.5195919+08:00;True|2025-06-20T14:33:10.9210583+08:00;True|2025-06-20T13:22:54.5321865+08:00;False|2025-06-20T13:21:30.8643897+08:00;True|2025-06-20T08:36:32.6695266+08:00;False|2025-06-20T08:35:57.8274069+08:00;True|2025-06-19T08:14:35.0623669+08:00;False|2025-06-19T08:12:57.2451557+08:00;True|2025-06-18T16:56:03.4555368+08:00;True|2025-06-18T16:42:43.2441845+08:00;False|2025-06-18T16:42:02.6907205+08:00;True|2025-06-16T16:13:03.2956026+08:00;False|2025-06-16T16:12:23.8438917+08:00;True|2025-06-16T15:21:32.7370852+08:00;True|2025-06-16T15:08:57.7166003+08:00;True|2025-06-16T14:02:18.4224630+08:00;True|2025-06-16T11:00:03.6375429+08:00;False|2025-06-16T10:59:26.0956296+08:00;True|2025-06-09T16:45:52.0865612+08:00;True|2025-06-09T16:38:47.2182194+08:00;True|2025-06-09T16:17:50.9170601+08:00;False|2025-06-09T16:17:43.0333396+08:00;True|2025-06-09T15:25:17.0429161+08:00;True|2025-06-09T15:00:15.0058791+08:00;True|2025-06-09T14:50:02.1370115+08:00;True|2025-06-09T14:38:10.9037045+08:00;True|2025-06-09T14:34:53.2826267+08:00;True|2025-06-09T14:07:24.5341951+08:00;True|2025-06-09T13:39:17.5042542+08:00;True|2025-06-09T09:30:31.8197114+08:00;True|2025-01-10T13:10:47.2046185+08:00;True|2025-01-10T11:11:49.4016910+08:00;True|2025-01-10T10:59:12.3481721+08:00;False|2025-01-10T10:58:24.5033898+08:00;True|2025-01-04T14:35:42.2792864+08:00;</History>
    <History>True|2026-04-14T09:44:13.9129368Z;False|2026-04-14T17:43:10.9470044+08:00;True|2026-04-13T17:34:21.0068989+08:00;True|2026-04-13T17:29:12.3668426+08:00;True|2026-04-13T17:27:24.2468537+08:00;True|2026-04-13T16:51:44.5690995+08:00;True|2026-04-13T15:40:26.5455121+08:00;True|2026-04-13T15:37:00.3253516+08:00;False|2026-04-13T15:36:08.3193913+08:00;True|2026-04-13T14:26:43.8572642+08:00;False|2026-04-13T14:24:30.4581523+08:00;True|2026-04-09T12:05:26.1103917+08:00;False|2026-04-09T12:04:05.8895069+08:00;True|2026-04-08T17:18:07.8587581+08:00;False|2026-04-08T17:14:50.0331021+08:00;True|2026-04-07T15:38:09.8395315+08:00;False|2026-04-07T15:27:46.9278409+08:00;False|2026-04-07T15:27:02.6775164+08:00;True|2026-04-07T09:31:26.2712477+08:00;False|2026-04-07T09:29:57.2360264+08:00;True|2026-04-03T15:06:46.9708068+08:00;False|2026-04-03T15:03:51.9971348+08:00;True|2026-03-27T14:26:07.9321307+08:00;False|2026-03-27T14:25:22.5010392+08:00;True|2026-03-27T13:35:36.8292396+08:00;False|2026-03-27T13:31:46.3527084+08:00;True|2026-03-24T15:10:02.2143243+08:00;True|2026-03-24T14:44:30.5286229+08:00;True|2026-03-24T10:24:40.8361153+08:00;False|2026-03-24T10:23:42.4160796+08:00;True|2026-03-23T19:05:41.2442007+08:00;False|2026-03-23T19:05:02.6358374+08:00;True|2026-03-23T15:35:21.7391934+08:00;False|2026-03-23T15:33:14.3621736+08:00;True|2026-03-21T11:27:25.8485662+08:00;True|2026-03-21T10:51:07.0416520+08:00;False|2026-03-21T10:50:30.0808809+08:00;True|2026-03-20T15:21:25.3928861+08:00;False|2026-03-20T15:20:18.7323151+08:00;True|2026-03-19T17:53:04.0599612+08:00;False|2026-03-19T17:49:34.2586338+08:00;True|2026-03-18T16:36:39.3459012+08:00;False|2026-03-18T16:33:44.2834015+08:00;True|2026-03-18T09:14:46.8169365+08:00;False|2026-03-18T09:11:29.5956354+08:00;True|2026-03-17T21:02:32.6298438+08:00;False|2026-03-17T21:01:51.7259809+08:00;True|2026-03-17T17:42:17.6095943+08:00;True|2026-03-17T17:22:22.7829010+08:00;True|2026-03-17T17:07:30.0424197+08:00;True|2026-03-17T17:00:25.9496446+08:00;True|2026-03-17T16:57:34.7454437+08:00;False|2026-03-17T16:55:25.6389756+08:00;True|2026-03-16T17:53:15.9567970+08:00;False|2026-03-16T17:52:38.5476276+08:00;True|2026-03-14T17:08:45.9696477+08:00;False|2026-03-14T17:07:54.0759419+08:00;True|2026-03-13T15:56:58.9781226+08:00;True|2026-03-13T14:54:12.0380800+08:00;True|2026-03-13T14:45:10.9471893+08:00;True|2026-03-13T14:34:35.7792308+08:00;True|2026-03-13T13:28:54.0165676+08:00;True|2026-03-13T13:04:26.7960852+08:00;True|2026-03-13T12:32:40.4056776+08:00;True|2026-03-13T12:00:38.5403236+08:00;True|2026-03-13T11:58:15.7212751+08:00;False|2026-03-13T11:56:03.1608711+08:00;True|2026-03-12T12:56:09.1798557+08:00;True|2026-03-12T12:10:38.6579078+08:00;True|2026-03-12T12:00:41.1216693+08:00;True|2026-03-12T10:49:25.6657932+08:00;True|2026-03-12T10:34:42.0132081+08:00;False|2026-03-12T10:34:21.1374537+08:00;True|2026-03-12T09:49:04.2791476+08:00;False|2026-03-12T09:48:32.0226441+08:00;True|2026-03-11T21:37:22.2202127+08:00;False|2026-03-11T21:35:48.4959239+08:00;True|2026-03-11T20:47:52.7636338+08:00;False|2026-03-11T20:47:20.3374534+08:00;True|2026-03-10T09:03:48.7681627+08:00;False|2026-03-10T09:02:36.0583806+08:00;True|2026-03-09T22:57:55.3577018+08:00;False|2026-03-09T22:55:54.8997804+08:00;True|2026-03-09T17:08:10.5420450+08:00;True|2026-03-09T16:57:28.4177680+08:00;True|2026-03-09T16:50:59.8251070+08:00;True|2026-03-09T10:23:55.4999880+08:00;False|2026-03-09T10:23:00.0281682+08:00;True|2026-03-06T09:15:06.5024218+08:00;True|2026-03-06T08:54:38.7087070+08:00;False|2026-03-06T08:53:23.6823346+08:00;True|2026-03-05T17:26:43.5908847+08:00;False|2026-03-05T17:25:48.2804326+08:00;True|2026-03-05T16:04:43.1077406+08:00;False|2026-03-05T16:02:11.7881116+08:00;True|2026-03-03T16:16:26.8635275+08:00;True|2026-03-03T15:54:24.2283621+08:00;True|2026-03-03T12:32:30.4495356+08:00;False|2026-03-03T12:31:06.0560910+08:00;True|2026-03-02T12:18:24.6587456+08:00;True|2026-03-02T09:35:22.6172462+08:00;False|2026-03-02T09:32:04.1416982+08:00;True|2026-02-28T12:04:01.7406133+08:00;True|2026-02-28T08:47:36.7167331+08:00;False|2026-02-28T08:46:49.1748795+08:00;True|2026-02-27T17:21:35.6897064+08:00;True|2026-02-27T17:00:03.2447893+08:00;True|2026-02-27T14:26:49.0714379+08:00;True|2026-02-27T13:57:50.9161682+08:00;False|2026-02-27T13:54:58.3092086+08:00;True|2026-02-26T16:30:22.6331887+08:00;True|2026-02-26T15:56:54.4778359+08:00;False|2026-02-26T15:55:53.2808802+08:00;False|2026-02-26T15:55:27.7501008+08:00;True|2026-02-26T12:42:10.3734658+08:00;True|2026-02-26T12:01:13.4363491+08:00;True|2026-02-26T10:24:02.2555254+08:00;True|2026-02-03T11:56:14.3086755+08:00;True|2026-02-03T11:51:19.6091315+08:00;True|2026-02-03T10:42:35.4774950+08:00;False|2026-02-03T10:40:57.1735351+08:00;True|2026-02-03T09:30:22.5235073+08:00;False|2026-02-03T09:27:21.6917147+08:00;True|2026-02-02T15:31:07.3762944+08:00;True|2026-02-02T14:13:20.5690146+08:00;True|2026-02-02T10:42:22.4804584+08:00;False|2026-02-02T10:41:48.7402434+08:00;True|2026-02-01T17:40:21.0538069+08:00;True|2026-02-01T15:44:12.2393909+08:00;False|2026-02-01T15:40:37.6456544+08:00;True|2026-01-31T12:05:50.6946479+08:00;False|2026-01-31T12:04:44.5273342+08:00;True|2026-01-29T17:14:07.3795568+08:00;True|2026-01-29T17:11:48.4286289+08:00;True|2026-01-29T16:10:42.7141082+08:00;True|2026-01-29T14:41:38.0583611+08:00;True|2026-01-29T14:36:18.1975177+08:00;True|2026-01-29T14:34:43.7423264+08:00;True|2026-01-29T14:09:16.2701844+08:00;True|2026-01-29T13:17:37.0708838+08:00;True|2026-01-29T10:21:51.3074443+08:00;False|2026-01-29T10:20:12.1418198+08:00;True|2026-01-28T13:52:59.2210650+08:00;True|2026-01-28T10:34:06.8152564+08:00;False|2026-01-28T10:32:51.4478083+08:00;True|2026-01-27T12:19:58.2090999+08:00;True|2026-01-27T12:18:40.9255150+08:00;True|2026-01-27T12:10:45.0784359+08:00;True|2026-01-27T11:45:58.2218602+08:00;True|2026-01-27T08:54:11.2473398+08:00;False|2026-01-27T08:50:52.3900508+08:00;True|2026-01-25T16:51:10.8469862+08:00;True|2026-01-25T16:15:55.3063785+08:00;False|2026-01-25T16:13:47.1609576+08:00;False|2026-01-25T16:10:27.3797138+08:00;True|2026-01-22T19:26:11.1120981+08:00;False|2026-01-22T19:21:59.7591077+08:00;True|2026-01-21T20:10:38.2264542+08:00;True|2026-01-21T20:05:52.6769930+08:00;False|2026-01-21T20:04:52.2864808+08:00;True|2026-01-20T10:09:22.6558754+08:00;True|2026-01-20T09:43:16.9535139+08:00;False|2026-01-20T09:40:14.5080297+08:00;True|2026-01-19T17:23:36.9963060+08:00;True|2026-01-19T17:18:41.7602029+08:00;True|2026-01-19T17:05:35.1663057+08:00;True|2026-01-19T16:49:48.9497194+08:00;True|2026-01-19T12:35:09.4063486+08:00;False|2026-01-19T12:33:25.3260660+08:00;True|2026-01-17T20:21:42.3497625+08:00;True|2026-01-17T20:17:40.8631870+08:00;True|2026-01-17T20:13:16.6618986+08:00;False|2026-01-17T20:10:39.7099356+08:00;False|2026-01-17T20:10:01.5198461+08:00;False|2026-01-17T20:09:07.5632818+08:00;True|2026-01-17T20:06:07.7085249+08:00;True|2026-01-17T17:50:38.6295526+08:00;False|2026-01-17T17:48:59.9531552+08:00;True|2026-01-16T16:22:22.3525933+08:00;True|2026-01-16T14:14:39.4187185+08:00;False|2026-01-16T14:10:47.6350779+08:00;True|2026-01-15T17:33:04.8867687+08:00;True|2026-01-15T17:13:07.4827420+08:00;False|2026-01-15T17:11:32.8298249+08:00;True|2026-01-15T16:34:04.8984638+08:00;True|2026-01-15T14:12:39.3677563+08:00;False|2026-01-15T14:10:25.0842475+08:00;True|2026-01-14T19:47:01.2486856+08:00;False|2026-01-14T19:46:15.5380497+08:00;True|2026-01-14T15:49:22.6528911+08:00;True|2026-01-14T10:24:06.5942562+08:00;False|2026-01-14T10:22:32.4884475+08:00;False|2026-01-12T09:27:01.9297704+08:00;True|2026-01-11T14:27:58.9407325+08:00;False|2026-01-11T14:26:47.1324504+08:00;True|2026-01-11T13:54:38.7697615+08:00;True|2026-01-11T12:39:56.1396008+08:00;False|2026-01-11T12:37:59.5059421+08:00;True|2026-01-09T15:34:00.7959753+08:00;False|2026-01-09T15:32:33.3223847+08:00;True|2026-01-09T10:27:04.4418230+08:00;False|2026-01-09T10:24:55.6104648+08:00;True|2026-01-08T18:05:09.8950096+08:00;False|2026-01-08T18:03:49.6828377+08:00;True|2026-01-08T15:53:31.8458993+08:00;True|2026-01-08T15:43:35.4452984+08:00;True|2026-01-08T15:16:09.2797564+08:00;True|2026-01-08T15:09:12.1761272+08:00;False|2026-01-08T15:08:31.8053125+08:00;True|2026-01-08T12:28:32.3839432+08:00;False|2026-01-08T12:28:06.4930402+08:00;False|2026-01-06T13:05:41.4537127+08:00;True|2026-01-04T11:27:03.6003486+08:00;True|2026-01-04T11:16:09.0856233+08:00;True|2026-01-04T11:09:33.9721372+08:00;True|2026-01-04T10:59:57.5111892+08:00;False|2026-01-04T10:57:57.5312203+08:00;True|2025-12-30T14:23:14.0889784+08:00;True|2025-12-29T09:12:05.7081903+08:00;False|2025-12-29T09:11:27.9082848+08:00;True|2025-07-01T16:53:57.8492332+08:00;True|2025-07-01T16:14:28.8419744+08:00;True|2025-07-01T15:15:43.3121091+08:00;True|2025-07-01T14:48:00.3454856+08:00;True|2025-07-01T09:17:46.2541717+08:00;False|2025-07-01T09:17:07.0648196+08:00;True|2025-06-23T14:30:28.6691264+08:00;False|2025-06-23T14:27:45.6002040+08:00;True|2025-06-23T11:02:08.3020700+08:00;True|2025-06-23T10:47:44.4654541+08:00;True|2025-06-23T09:46:24.9049910+08:00;False|2025-06-23T09:45:40.5195919+08:00;True|2025-06-20T14:33:10.9210583+08:00;True|2025-06-20T13:22:54.5321865+08:00;False|2025-06-20T13:21:30.8643897+08:00;True|2025-06-20T08:36:32.6695266+08:00;False|2025-06-20T08:35:57.8274069+08:00;True|2025-06-19T08:14:35.0623669+08:00;False|2025-06-19T08:12:57.2451557+08:00;True|2025-06-18T16:56:03.4555368+08:00;True|2025-06-18T16:42:43.2441845+08:00;False|2025-06-18T16:42:02.6907205+08:00;True|2025-06-16T16:13:03.2956026+08:00;False|2025-06-16T16:12:23.8438917+08:00;True|2025-06-16T15:21:32.7370852+08:00;True|2025-06-16T15:08:57.7166003+08:00;True|2025-06-16T14:02:18.4224630+08:00;True|2025-06-16T11:00:03.6375429+08:00;False|2025-06-16T10:59:26.0956296+08:00;True|2025-06-09T16:45:52.0865612+08:00;True|2025-06-09T16:38:47.2182194+08:00;True|2025-06-09T16:17:50.9170601+08:00;False|2025-06-09T16:17:43.0333396+08:00;True|2025-06-09T15:25:17.0429161+08:00;True|2025-06-09T15:00:15.0058791+08:00;True|2025-06-09T14:50:02.1370115+08:00;True|2025-06-09T14:38:10.9037045+08:00;True|2025-06-09T14:34:53.2826267+08:00;True|2025-06-09T14:07:24.5341951+08:00;True|2025-06-09T13:39:17.5042542+08:00;True|2025-06-09T09:30:31.8197114+08:00;True|2025-01-10T13:10:47.2046185+08:00;True|2025-01-10T11:11:49.4016910+08:00;True|2025-01-10T10:59:12.3481721+08:00;False|2025-01-10T10:58:24.5033898+08:00;True|2025-01-04T14:35:42.2792864+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>04/07/2026 15:27:40</publishTime>
      <publishTime>04/14/2026 20:46:49</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>04/07/2026 15:27:40</publishTime>
      <publishTime>04/14/2026 20:46:49</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>04/07/2026 15:27:35</publishTime>
      <publishTime>04/14/2026 20:46:45</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>04/07/2026 15:27:35</publishTime>
      <publishTime>04/14/2026 20:46:45</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>04/07/2026 15:27:30</publishTime>
      <publishTime>04/08/2026 17:16:06</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>04/07/2026 15:27:30</publishTime>
      <publishTime>04/08/2026 17:16:06</publishTime>
    </File>
    <File Include="bin/Fleck.dll">
      <publishTime>04/22/2021 11:48:12</publishTime>
@@ -150,10 +150,10 @@
      <publishTime>07/25/2012 19:48:56</publishTime>
    </File>
    <File Include="bin/Model.dll">
      <publishTime>04/07/2026 15:27:33</publishTime>
      <publishTime>04/14/2026 20:39:04</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>04/07/2026 15:27:33</publishTime>
      <publishTime>04/14/2026 20:39:04</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>05/23/2025 10:00:25</publishTime>
@@ -189,25 +189,25 @@
      <publishTime>11/13/2012 20:19:34</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>04/07/2026 15:27:26</publishTime>
      <publishTime>04/08/2026 17:15:47</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>04/07/2026 15:27:26</publishTime>
      <publishTime>04/08/2026 17:15:47</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>04/07/2026 15:27:28</publishTime>
      <publishTime>04/08/2026 17:15:58</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>04/07/2026 15:27:28</publishTime>
      <publishTime>04/08/2026 17:15:58</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>04/07/2026 15:27:28</publishTime>
      <publishTime>04/08/2026 17:15:59</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>04/07/2026 15:27:28</publishTime>
      <publishTime>04/08/2026 17:15:59</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/16/2015 01:57:08</publishTime>
@@ -339,10 +339,10 @@
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>04/07/2026 17:46:01</publishTime>
      <publishTime>04/14/2026 20:46:56</publishTime>
    </File>
    <File Include="bin/WebAPI.pdb">
      <publishTime>04/07/2026 17:46:01</publishTime>
      <publishTime>04/14/2026 20:46:56</publishTime>
    </File>
    <File Include="bin/WebAPI.XmlSerializers.dll">
      <publishTime>07/01/2025 16:53:56</publishTime>
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-04-10T06:40:32.9638263Z;True|2026-04-10T14:09:17.8938591+08:00;True|2026-04-10T09:43:03.1496594+08:00;False|2026-04-10T09:42:48.1357703+08:00;True|2026-04-04T14:02:29.0801567+08:00;False|2026-04-04T14:02:19.7271116+08:00;True|2026-04-02T15:43:33.7777154+08:00;False|2026-04-02T15:43:18.7956363+08:00;True|2026-03-27T14:21:25.0796115+08:00;True|2026-03-26T11:06:46.4787179+08:00;False|2026-03-26T11:06:35.4166660+08:00;True|2026-03-25T16:10:29.4610079+08:00;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>
    <History>True|2026-04-15T02:09:40.2224711Z;True|2026-04-15T10:01:41.2211939+08:00;False|2026-04-15T10:01:33.5163195+08:00;True|2026-04-10T14:40:32.9638263+08:00;True|2026-04-10T14:09:17.8938591+08:00;True|2026-04-10T09:43:03.1496594+08:00;False|2026-04-10T09:42:48.1357703+08:00;True|2026-04-04T14:02:29.0801567+08:00;False|2026-04-04T14:02:19.7271116+08:00;True|2026-04-02T15:43:33.7777154+08:00;False|2026-04-02T15:43:18.7956363+08:00;True|2026-03-27T14:21:25.0796115+08:00;True|2026-03-26T11:06:46.4787179+08:00;False|2026-03-26T11:06:35.4166660+08:00;True|2026-03-25T16:10:29.4610079+08:00;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>04/10/2026 15:03:57</publishTime>
      <publishTime>04/15/2026 10:09:07</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>04/10/2026 15:03:57</publishTime>
      <publishTime>04/15/2026 10:09:07</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>04/10/2026 15:03:53</publishTime>
      <publishTime>04/15/2026 10:09:03</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>04/10/2026 15:03:53</publishTime>
      <publishTime>04/15/2026 10:09:03</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>04/10/2026 15:03:48</publishTime>
      <publishTime>04/15/2026 10:08:58</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>04/10/2026 15:03:48</publishTime>
      <publishTime>04/15/2026 10:08:58</publishTime>
    </File>
    <File Include="bin/Fleck.dll">
      <publishTime>04/22/2021 11:48:12</publishTime>
@@ -150,10 +150,10 @@
      <publishTime>07/25/2012 19:48:56</publishTime>
    </File>
    <File Include="bin/Model.dll">
      <publishTime>04/10/2026 15:03:51</publishTime>
      <publishTime>04/15/2026 10:09:01</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>04/10/2026 15:03:51</publishTime>
      <publishTime>04/15/2026 10:09:01</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>08/18/2025 16:11:18</publishTime>
@@ -189,25 +189,25 @@
      <publishTime>11/13/2012 20:19:34</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>04/10/2026 15:03:44</publishTime>
      <publishTime>04/15/2026 10:08:54</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>04/10/2026 15:03:44</publishTime>
      <publishTime>04/15/2026 10:08:54</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:56</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:56</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:57</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:57</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/16/2015 01:57:08</publishTime>
@@ -330,19 +330,19 @@
      <publishTime>05/09/2023 10:43:40</publishTime>
    </File>
    <File Include="bin/TopSdk.dll">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:56</publishTime>
    </File>
    <File Include="bin/TopSdk.pdb">
      <publishTime>04/10/2026 15:03:46</publishTime>
      <publishTime>04/15/2026 10:08:56</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>04/10/2026 15:04:05</publishTime>
      <publishTime>04/15/2026 10:09:15</publishTime>
    </File>
    <File Include="bin/WebAPI.pdb">
      <publishTime>04/10/2026 15:04:05</publishTime>
      <publishTime>04/15/2026 10:09:15</publishTime>
    </File>
    <File Include="bin/WebGrease.dll">
      <publishTime>07/18/2013 01:03:52</publishTime>
@@ -567,7 +567,7 @@
      <publishTime>10/27/2025 08:51:29</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>04/10/2026 15:04:16</publishTime>
      <publishTime>04/15/2026 10:09:38</publishTime>
    </File>
  </ItemGroup>
</Project>
WebAPI/WebAPI.csproj
@@ -685,6 +685,7 @@
    <Compile Include="Controllers\品质管理\车间自检单\QC_WorkSelfCheckBillController.cs" />
    <Compile Include="Controllers\华远datamapping\Gy_BarCodeBill_PNL_TempController.cs" />
    <Compile Include="Controllers\华远datamapping\Gy_BarCodeBill_Set_TempController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Cb_OtherOutBill_CostSubjectDetailController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_AssistantDataEntryController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_BilloriginController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_CostAverageTypeController.cs" />
@@ -1003,6 +1004,7 @@
    <Compile Include="Models\ClsQC_RequestCheckBillSub.cs" />
    <Compile Include="Models\WorkStationSub.cs" />
    <Compile Include="Models\Xs_SendGoodsPlanBillMain.cs" />
    <Compile Include="Models\Xt_CheckFlowSub_Proc.cs" />
    <Compile Include="Models\基础资料\ClsGy_EmployeeSub.cs" />
    <Compile Include="Models\基础资料\Gy_ColorClass.cs" />
    <Compile Include="Models\Employee.cs" />
@@ -1320,6 +1322,7 @@
    <Folder Include="Controllers\项目管理\基础建模\" />
    <Folder Include="DLL\SBGL\SBBB\" />
    <Folder Include="obj\x86\Debug\" />
    <Folder Include="Views\Cb_OtherOutBill_CostSubjectDetail\" />
    <Folder Include="Views\CB_WipProcessTable\" />
    <Folder Include="Views\Cg_ContractTransportBillList\" />
    <Folder Include="Views\Cg_PODemandPlanBill\" />