yangle
2023-07-18 2fd0e1116c1a99af7555d91728d1adc36f753464
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
6个文件已修改
6个文件已添加
6599 ■■■■■ 已修改文件
WarM/条码打印/Gy_BarCodeBill.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WarM/条码打印/Kf_WeighToBarCode.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/工资基础资料/Gy_ProcCommPriceController.cs 517 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/项目管理/业绩指标/PM_YearEmployeeMoneyBillController.cs 754 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/项目管理/工作任务/PM_WorkTaskBillController.cs 1649 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/项目管理/工程项目/PM_ProjectBillController.cs 1050 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/项目管理/项目阶段/Gy_ProjectStageController.cs 2202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user 263 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/libman.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill.cs
@@ -81,6 +81,11 @@
        public const Int16 HShowDateCol = 60;
        public const Int16 HInnerBillNoCol = 61;
        public const Int16 HMakerCol = 62;
        public const Int16 HProduceDateCol = 63;
        public const Int16 HExpiryDateCol = 64;
        public const Int16 HISKFPERIODCol = 65;
        public const Int16 HEXPUNITCol = 66;
        public const Int16 HEXPPERIODCol = 67;
        public Int16 HSelectCol = 0;
        public Int16 HSno2Col = 1;
@@ -142,6 +147,11 @@
        public Int16 HInnerBillNo2Col = 57; 
        public Int16 HMaker2Col = 58;
        public Int16 HEntryID2Col = 59;
        public Int16 HProduceDate2Col = 60;
        public Int16 HExpiryDate2Col = 61;
        public Int16 HISKFPERIOD2Col = 62;
        public Int16 HEXPUNIT2Col = 63;
        public Int16 HEXPPERIOD2Col = 64;
        //
        public  string ModName = "85";
        public  string ModCaption = "条码生成";
@@ -626,6 +636,45 @@
                    {
                        sHRemark= sHRemark+DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HRemark"]);
                    }
                    else
                    {
                        if (DBUtility.ClsPub.isBool(oDsCheck.Tables[0].Rows[0]["HISKFPERIOD"]))
                        {
                            DateTime HProduceDate;  //生产日期
                            string HEXPUNIT;        //保质期单位
                            int HEXPPERIOD;         //保质期
                            HProduceDate = dtpHDate.Value;
                            HEXPUNIT = DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HEXPUNIT"]);
                            HEXPPERIOD = DBUtility.ClsPub.isInt(oDsCheck.Tables[0].Rows[0]["HEXPPERIOD"]);
                            grdMain.Rows[j].Cells[HISKFPERIODCol].Value = 1;
                            grdMain.Rows[j].Cells[HEXPUNITCol].Value = HEXPUNIT;
                            grdMain.Rows[j].Cells[HEXPPERIODCol].Value = HEXPPERIOD.ToString();
                            grdMain.Rows[j].Cells[HProduceDateCol].Value = HProduceDate.ToShortDateString();
                            if (HEXPUNIT == "Y")
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddYears(HEXPPERIOD).ToShortDateString();
                            }
                            else if (HEXPUNIT == "M")
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddMonths(HEXPPERIOD).ToShortDateString();
                            }
                            else
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddDays(HEXPPERIOD).ToShortDateString();
                            }
                        }
                        else
                        {
                            grdMain.Rows[j].Cells[HISKFPERIODCol].Value = 0;
                            grdMain.Rows[j].Cells[HEXPUNITCol].Value = "";
                            grdMain.Rows[j].Cells[HEXPPERIODCol].Value = 0;
                            grdMain.Rows[j].Cells[HProduceDateCol].Value = "";
                            grdMain.Rows[j].Cells[HExpiryDateCol].Value = "";
                        }
                    }
                }
            }
            if(sHRemark!="")
@@ -993,12 +1042,24 @@
                        grdSub.Rows[i].Cells[HInnerBillNo2Col].Value = grdMain.Rows[j].Cells[HInnerBillNoCol].Value;
                        grdSub.Rows[i].Cells[HMaker2Col].Value = grdMain.Rows[j].Cells[HMakerCol].Value;
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value = grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value;
                        grdSub.Rows[i].Cells[HProduceDate2Col].Value = grdMain.Rows[j].Cells[HProduceDateCol].Value;
                        grdSub.Rows[i].Cells[HExpiryDate2Col].Value = grdMain.Rows[j].Cells[HExpiryDateCol].Value;
                        grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value = grdMain.Rows[j].Cells[HISKFPERIODCol].Value;
                        grdSub.Rows[i].Cells[HEXPUNIT2Col].Value = grdMain.Rows[j].Cells[HEXPUNITCol].Value;
                        grdSub.Rows[i].Cells[HEXPPERIOD2Col].Value = grdMain.Rows[j].Cells[HEXPPERIODCol].Value;
                        //网格打勾
                        //是否赠品
                        DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell();
                        oCell.ThreeState = false;
                        oCell.Value = grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value;
                        oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell;
                        //是否启用保质期
                        DataGridViewCheckBoxCell oCell2 = new DataGridViewCheckBoxCell();
                        oCell2.ThreeState = false;
                        oCell2.Value = grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value;
                        oCell2.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        grdSub.Rows[i].Cells[HISKFPERIOD2Col] = oCell2;
                        k = k + 1;
                        n = n + 1;
                        //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
@@ -1042,6 +1103,11 @@
            string HInnerBillNo = "";
            bool HGiveAwayFlag = false;
            Int64 HEntryID = 0;
            string HProduceDate;
            string HExpiryDate;
            bool HISKFPERIOD = false;
            string HEXPUNIT = "";
            double HEXPPERIOD = 0;
            try
            {
                oCn.BeginTran();
@@ -1087,6 +1153,25 @@
                        HSeOrderSEQ = ClsPub.isLong(grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value);
                        HInnerBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HInnerBillNo2Col].Value);
                        HGiveAwayFlag = ClsPub.isBool(grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value);
                        if (ClsPub.isDate(grdSub.Rows[i].Cells[HProduceDate2Col].Value) < Convert.ToDateTime("1950-01-01"))
                        {
                            HProduceDate = "";
                        }
                        else
                        {
                            HProduceDate = ClsPub.isStrNull(grdSub.Rows[i].Cells[HProduceDate2Col].Value);
                        }
                        if (ClsPub.isDate(grdSub.Rows[i].Cells[HExpiryDate2Col].Value) < Convert.ToDateTime("1950-01-01"))
                        {
                            HExpiryDate = "";
                        }
                        else
                        {
                            HExpiryDate = ClsPub.isStrNull(grdSub.Rows[i].Cells[HExpiryDate2Col].Value);
                        }
                        HISKFPERIOD = ClsPub.isBool(grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value);
                        HEXPUNIT = ClsPub.isStrNull(grdSub.Rows[i].Cells[HEXPUNIT2Col].Value);
                        HEXPPERIOD = ClsPub.isDoule(grdSub.Rows[i].Cells[HEXPPERIOD2Col].Value);
                        oCn.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" +
                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" +
                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " +
@@ -1094,6 +1179,8 @@
                                    ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " +
                                    ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " +
                                    ",HGiveAwayFlag,HSeOrderSEQ,HInitSourceEntryID " +
                                    ",HProduceDate,HExpiryDate " +
                                    ",HISKFPERIOD,HEXPUNIT,HEXPPERIOD " +
                                    ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " +
                                    ") values ("
                                    + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString()
@@ -1101,8 +1188,10 @@
                                    + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HWei + "'"
                                    + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'"
                                    + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'"
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + ""
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString()
                                    + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag) + "," + HSeOrderSEQ.ToString() + "," + HSourceEntryID.ToString()
                                    + ", " + (HProduceDate == "" ? "NULL" : "'" + HProduceDate + "'") + "," + (HExpiryDate == "" ? "NULL" : "'" + HExpiryDate + "'")
                                    + ", " + DBUtility.ClsPub.BoolToString(HISKFPERIOD) + ",'" + HEXPUNIT + "'," + HEXPPERIOD.ToString()
                                    + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')");
@@ -1509,7 +1598,7 @@
            //
            grdMain.RowCount = 0;
            grdSub.RowCount = 0;
            grdMain.ColumnCount = 63;                       //总列数
            grdMain.ColumnCount = 68;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name);
            grdMain.Columns[HSnoCol].HeaderText = "序号";
            grdMain.Columns[HMainIDCol].HeaderText = "源单主ID";
@@ -1566,6 +1655,11 @@
            grdMain.Columns[HShowDateCol].HeaderText = "日期";
            grdMain.Columns[HInnerBillNoCol].HeaderText = "内部采购订单号";
            grdMain.Columns[HMakerCol].HeaderText = "制单人";
            grdMain.Columns[HProduceDateCol].HeaderText = "生产日期";
            grdMain.Columns[HExpiryDateCol].HeaderText = "有效期至";
            grdMain.Columns[HISKFPERIODCol].HeaderText = "是否启用保质期";
            grdMain.Columns[HEXPUNITCol].HeaderText = "保质期单位";
            grdMain.Columns[HEXPPERIODCol].HeaderText = "保质期";
            ////
            //格式化 
            grdMain.Columns[HTagCol].Visible = false;                           //隐藏列
@@ -1613,7 +1707,12 @@
            grdMain.Columns[HSourceIDCol].Visible = false;
            grdMain.Columns[HSourceNumberCol].Visible = false;
            grdMain.Columns[HSourceNameCol].Visible = false;
            grdMain.Columns[HProduceDateCol].Visible = false;
            grdMain.Columns[HExpiryDateCol].Visible = false;
            grdMain.Columns[HISKFPERIODCol].Visible = false;
            grdMain.Columns[HEXPUNITCol].Visible = false;
            grdMain.Columns[HEXPPERIODCol].Visible = false;
            //设置可编辑列
            string sAllowCol =  HQtyCol.ToString()+
                                "," + HMinQtyCol.ToString() +
@@ -1643,7 +1742,7 @@
            DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol,oSumGrid);
            //----------------------------
            grdSub.ColumnCount = 60;                       //总列数
            grdSub.ColumnCount = 65;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdSub, this.Name);
            grdSub.Columns[HSelectCol].HeaderText = "选择";
            grdSub.Columns[HTMCol].HeaderText = "条码编号";
@@ -1703,6 +1802,11 @@
            grdSub.Columns[HInnerBillNo2Col].HeaderText = "内部采购订单号";
            grdSub.Columns[HMaker2Col].HeaderText = "制单人";
            grdSub.Columns[HEntryID2Col].HeaderText = "行号";
            grdSub.Columns[HProduceDate2Col].HeaderText = "生产日期";
            grdSub.Columns[HExpiryDate2Col].HeaderText = "有效期至";
            grdSub.Columns[HISKFPERIOD2Col].HeaderText = "是否启用保质期";
            grdSub.Columns[HEXPUNIT2Col].HeaderText = "保质期单位";
            grdSub.Columns[HEXPPERIOD2Col].HeaderText = "保质期";
            //格式化 
            grdSub.Columns[HMaterID2Col].Visible = false;
            grdSub.Columns[HModel2Col].Visible = false;
@@ -1751,11 +1855,18 @@
            for (int i = 0; i < grdSub.Rows.Count; i++)
            {
                //网格打勾
                //是否赠品
                DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell();
                oCell.ThreeState = false;
                oCell.Value = 0;
                oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell;
                //是否启用保质期
                DataGridViewCheckBoxCell oCell2 = new DataGridViewCheckBoxCell();
                oCell2.ThreeState = false;
                oCell2.Value = 0;
                oCell2.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grdSub.Rows[i].Cells[HISKFPERIOD2Col] = oCell2;
            }
            DBUtility.Xt_BaseBillFun.GetGrid(grdMain, this.Name);
WarM/ÌõÂë´òÓ¡/Kf_WeighToBarCode.cs
@@ -309,6 +309,19 @@
        private bool Sub_SaveBill()
        {
            //称重记录列表是否有记录判断
            bool b = false;
            for (int i = 0; i < grdMain.RowCount; i++)
            {
                    b = true;
                    break;
            }
            if (b == false)
            {
                MessageBox.Show("当前称重记录列表无数据,不允许换班生成单据!", "提示");
                return false;
            }
            //判断会计期是否合理
            string s = "";
            int sYear = 0;
WebAPI/Controllers/WebAPIController.cs
@@ -3933,11 +3933,11 @@
            {
                List<MenuLoad> mu = new List<MenuLoad>();                       //以父子级结构存放菜单清单信息
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();            //数据库操作工具
                string sql = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum from Gy_MenuDefineSet where HMakeName = '" + HMakeName + "' order by HItemID";
                string sql = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum from Gy_MenuDefineSet where HMakeName = '" + HMakeName + "' order by HPosition";
                ds = oCn.RunProcReturn(sql, "Gy_MenuDefineSet");        //查询当前用户的自定义菜单数据
                if (ds.Tables[0]==null || ds.Tables[0].Rows.Count == 0) //判断当前用户是否有设置过自定义信息,若记录数为0,则没有设置过,加载所有的菜单信息
                {
                    sql = "Select * from Gy_Menu_1 Order by HItemID ";
                    sql = "Select * from Gy_Menu_1 Order by HPosition ";
                    ds = oCn.RunProcReturn(sql, "Gy_Menu");
                }
@@ -4173,9 +4173,20 @@
                        int HLevel = int.Parse(ds.Tables[0].Rows[0]["HLevel"].ToString());
                        string Hurl = ds.Tables[0].Rows[0]["Hurl"].ToString();
                        string HType = ds.Tables[0].Rows[0]["HType"].ToString();
                        string HPicNum = ds.Tables[0].Rows[0]["HPicNum"].ToString();
                        sql = "insert into Gy_MenuDefineSet values('" + saveDataList[i].HItemID + "','" + HPartentID + "','" + HNumber + "','" + saveDataList[i].HName + "'," + HLevel + ",'" + Hurl + "','" + HType + "','" + HMakeName + "')";
                        oCN.RunProc(sql);
                        if(HPartentID == "0" || HPartentID == ds.Tables[0].Rows[0]["HItemID"])
                        {
                            string HPosition = ds.Tables[0].Rows[0]["HPosition"].ToString();
                            sql = "insert into Gy_MenuDefineSet(HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HMakeName,HPicNum,HPosition) values('" + saveDataList[i].HItemID + "','" + HPartentID + "','" + HNumber + "','" + saveDataList[i].HName + "'," + HLevel + ",'" + Hurl + "','" + HType + "','" + HMakeName + "','" + HPicNum + "','" + HPosition + "')";
                            oCN.RunProc(sql);
                        }
                        else
                        {
                            sql = "insert into Gy_MenuDefineSet(HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HMakeName,HPicNum,HPosition) values('" + saveDataList[i].HItemID + "','" + HPartentID + "','" + HNumber + "','" + saveDataList[i].HName + "'," + HLevel + ",'" + Hurl + "','" + HType + "','" + HMakeName + "','" + HPicNum + "','z')";
                            oCN.RunProc(sql);
                        }
                    }
                }
                //提交数据库操作
WebAPI/Controllers/»ù´¡×ÊÁÏ/¹¤×Ê»ù´¡×ÊÁÏ/Gy_ProcCommPriceController.cs
New file
@@ -0,0 +1,517 @@
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.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    //委外工序工价Controller
    public class Gy_ProcCommPriceController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        string user_LongShan = "";
        string HName_LongShan = "";
        #region å§”外工序工价 æ–°å¢ž/编辑-保存
        #region å§”外工序工价 è¡¨å¤´æ•°æ®
        public class Gy_ProcCommPrice_Main
        {
            public int HItemID;
            public int HProcCommID;
            public string HProcCommNumber;
            public string HProcCommName;
            public int HMaterID;
            public string HMaterNumber;
            public string HMaterName;
            public string HModel;
            public int HSupID;
            public string HSupName;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HCloseManDate;
            public string HDeleteManDate;
        }
        #endregion
        #region å§”外工序工价 å­è¡¨æ•°æ®
        public class Gy_ProcCommPrice_Sub
        {
            public int RowID;
            public int HMaterID;
            public string HMaterNumber;
            public string HMaterName;
            public string HModel;
            public int HProcCommID;
            public string HProcCommNumber;
            public string HProcCommName;
            public double HPrice;
            public string HBeginDate;
            public string HEndDate;
            public bool HCostFlag;
            public bool HFlowFlag;
            public string HRemark;
        }
        #endregion
        #region å§”外工序工价 æ–°å¢ž/编辑-保存
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProcCommPrice/Add")]
        [HttpPost]
        public object Add_ProcCommPrice([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = Add_ProcCommPrice(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  å§”外工序工价
        public json Add_ProcCommPrice(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[3].ToString();//用户名
            try
            {
                if (OperationType == 1)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_Add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if (OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_Edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //if (OperationType == 2)
                //{
                //    ds = oCN.RunProcReturn("select * from PM_WorkTaskReportBillMain where HBillNo ='" + HBillNo + "'", "PM_WorkTaskReportBillMain");
                //    if (ds.Tables[0].Rows.Count > 0)
                //    {
                //        objJsonResult.code = "0";
                //        objJsonResult.count = 0;
                //        objJsonResult.Message = "单据号重复,请重新输入!";
                //        objJsonResult.data = null;
                //        return objJsonResult;
                //    }
                //}
                msg2 = "[" + msg2.ToString() + "]";
                List<Gy_ProcCommPrice_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_ProcCommPrice_Main>>(msg2);
                List<Gy_ProcCommPrice_Sub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_ProcCommPrice_Sub>>(msg3);
                ds = oCN.RunProcReturn("select * from Gy_ProcCommPrice where HItemID = " + mainList[0].HItemID , "Gy_ProcCommPrice");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    foreach (Gy_ProcCommPrice_Sub oSub in subList)
                    {
                        int HProcCommID = oSub.HProcCommID;
                        int HMaterID = oSub.HMaterID;
                        int HStopFlag = 0;
                        double HPrice = oSub.HPrice;
                        string HRemark = oSub.HRemark;
                        int HSupID = mainList[0].HSupID;
                        string HBeginDate = oSub.HBeginDate;
                        string HEndDate = oSub.HEndDate;
                        int HCostFlag = oSub.HCostFlag ? 1 : 0;
                        int HFlowFlag = oSub.HFlowFlag ? 1 : 0;
                        string HMaker = user;
                        string HMakeDate = mainList[0].HMakerDate;
                        string sql = "insert into Gy_ProcCommPrice(HProcCommID,HMaterID,HStopFlag,HPrice,HRemark,HSupID,HBeginDate,HEndDate,HCostFlag,HFlowFlag,HMaker,HMakeDate)" +
                            " values(" +
                            "" + HProcCommID +
                            "," + HMaterID +
                            "," + HStopFlag +
                            "," + HPrice +
                            ",'" + HRemark +
                            "'," + HSupID +
                            ",'" + HBeginDate +
                            "','" + HEndDate +
                            "'," + HCostFlag +
                            "," + HFlowFlag +
                            ",'" + HMaker +
                            "','" + HMakeDate +
                            "')";
                        oCN.RunProc(sql);
                    }
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    foreach (Gy_ProcCommPrice_Sub oSub in subList)
                    {
                        int HProcCommID = oSub.HProcCommID;
                        int HMaterID = oSub.HMaterID;
                        int HStopFlag = 0;
                        double HPrice = oSub.HPrice;
                        string HRemark = oSub.HRemark;
                        int HSupID = mainList[0].HSupID;
                        string HBeginDate = oSub.HBeginDate;
                        string HEndDate = oSub.HEndDate;
                        int HCostFlag = oSub.HCostFlag ? 1 : 0;
                        int HFlowFlag = oSub.HFlowFlag ? 1 : 0;
                        string HMaker = user;
                        string HMakeDate = mainList[0].HMakerDate;
                        string HUpdater = mainList[0].HUpdater;
                        string HUpdaterDate = mainList[0].HUpdaterDate;
                        string sql = "update Gy_ProcCommPrice set " +
                            "HProcCommID = " + HProcCommID +
                            ", HMaterID = " + HMaterID +
                            ", HPrice = " + HPrice +
                            ", HRemark = '" + HRemark +
                            "', HSupID = " + HSupID +
                            ", HBeginDate = '" + HBeginDate +
                            "', HEndDate = '" + HEndDate +
                            "', HCostFlag = " + HCostFlag +
                            ", HFlowFlag = " + HFlowFlag +
                            ", HUpdater = '" + HUpdater +
                            "',HUpdateDate = '" + HUpdaterDate +
                            "' where HItemID = " + mainList[0].HItemID;
                        oCN.RunProc(sql);
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
        #region å§”外工序工价 æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProcCommPrice/list")]
        [HttpGet]
        public object getGy_ProcCommPrice(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_Gy_ProcCommPrice order by HItemID ", "Gy_ProcCommPrice");
                }
                else
                {
                    string sql1 = "select * from h_v_Gy_ProcCommPrice where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by HItemID ";
                    ds = oCN.RunProcReturn(sql, "Gy_ProcCommPrice");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å§”外工序工价 ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProcCommPrice/editInit")]
        [HttpGet]
        public object getGy_ProcCommPriceeditInit(string HInterID, string user)
        {
            try
            {
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                List<object> columnNameList = new List<object>();
                ds = oCN.RunProcReturn("select * from h_v_Gy_ProcCommPrice where HItemID = " + HInterID, "h_v_Gy_ProcCommPrice");
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å§”外工序工价 åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProcCommPrice/delete")]
        [HttpGet]
        public object deleteGy_ProcCommPrice(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_Delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from Gy_ProcCommPrice where HItemID = " + HInterID);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å§”外工序工价 å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Gy_ProcCommPrice/AuditGy_ProcCommPrice")]
        [HttpGet]
        public object AuditGy_ProcCommPrice(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "Gy_ProcCommPrice";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HItemID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            string sql1 = "update Gy_ProcCommPrice set HChecker = '" + user + "', HCheckDate = getDate() where HItemID = " + HInterID;
                            oCN.RunProc(sql1);
                        }
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HItemID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            string sql1 = "update Gy_ProcCommPrice set HChecker = '', HCheckDate = null where HItemID = " + HInterID;
                            oCN.RunProc(sql1);
                        }
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/Òµ¼¨Ö¸±ê/PM_YearEmployeeMoneyBillController.cs
New file
@@ -0,0 +1,754 @@
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.项目管理.业绩指标
{
    public class PM_YearEmployeeMoneyBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        string user_LongShan = "";
        string HName_LongShan = "";
        #region ä¸šç»©æŒ‡æ ‡å• æ–°å¢ž/编辑
        #region ä¸šç»©æŒ‡æ ‡å• è¡¨å¤´æ•°æ®
        public class PM_YearEmployeeMoneyBill_Main
        {
            public int HInterID;
            public string HBillNo;
            public string HDate;
            public int HEmpID;
            public string HEmpName;
            public double HSumMoney;
            public double HRate1;
            public double HRate2;
            public double HRate3;
            public double HRate4;
            public string HRemark;
            public string HRemarkSub;
            public int HOrgID;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• æ–°å¢ž/编辑
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_YearEmployeeMoneyBill/AddBill")]
        [HttpPost]
        public object AddBill_YearEmployeeMoneyBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain_YearEmployeeMoneyBill(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  ä¸šç»©æŒ‡æ ‡å• ä¸»è¡¨
        public json AddBillMain_YearEmployeeMoneyBill(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            int OperationType = int.Parse(sArray[1].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[2].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[2].ToString();//用户名
            try
            {
                if(OperationType == 1)
                {
                    //判断是否有新增权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if(OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_YearEmployeeMoneyBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_YearEmployeeMoneyBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4753";
                string HBillSubType = "";
                int HInterID = mainList[0].HInterID;
                string HBillNo = mainList[0].HBillNo;
                string HDate = mainList[0].HDate;
                int HEmpID = mainList[0].HEmpID;
                double HSumMoney = mainList[0].HSumMoney;
                string HRemark = mainList[0].HRemark;
                int HOrgID = mainList[0].HOrgID;
                string HMaker = mainList[0].HMaker;
                string HUpdater = mainList[0].HUpdater;
                string HChecker = mainList[0].HChecker;
                string HMakerDate = mainList[0].HMakerDate;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                string HCheckerDate = mainList[0].HCheckerDate;
                string HCloseMan = mainList[0].HCloseMan;
                string HDeleteMan = mainList[0].HDeleteMan;
                string HBacker = mainList[0].HBacker;
                string HCloseManDate = mainList[0].HCloseManDate;
                string HDeleteManDate = mainList[0].HDeleteManDate;
                string HBackerDate = mainList[0].HBackerDate;
                string HBackRemark = mainList[0].HBackRemark;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain where HBillNo ='" + HBillNo + "'", "PM_YearEmployeeMoneyBillMain");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_YearEmployeeMoneyBillMain");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_YearEmployeeMoneyBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HBillNo,HDate,HEmpID,HSumMoney,HRemark,HOrgID,HMaker,HMakeDate)" +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HBillNo +
                        "','" + HDate +
                        "'," + HEmpID +
                        "," + HSumMoney +
                        ",'" + HRemark +
                        "'," + HOrgID +
                        ",'" + HMaker +
                        "','" + HMakerDate +
                        "')";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增业绩指标单:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增业绩指标单:" + HBillNo + "','LMES-业绩指标模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_YearEmployeeMoneyBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HBillNo = '" + HBillNo +
                        "',HDate = '" + HDate +
                        "',HEmpID = " + HEmpID +
                        ",HSumMoney = " + HSumMoney +
                        ",HRemark = '" + HRemark +
                        "',HOrgID = " + HOrgID +
                        ",HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "' where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_YearEmployeeMoneyBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改工作任务:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改工作任务:" + HBillNo + "','LMES-工作任务模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //获取子表数据并插入子表
                string HRemarkSub = mainList[0].HRemarkSub;
                double HRate1 = mainList[0].HRate1;
                double HRate2 = mainList[0].HRate2;
                double HRate3 = mainList[0].HRate3;
                double HRate4 = mainList[0].HRate4;
                string sql1 = "insert into PM_YearEmployeeMoneyBillSub" +
                "(HInterID,HEntryID,HBillNo_bak,HRemark,HRate1,HRate2,HRate3,HRate4) " +
                "values(" +
                "" + HInterID +
                "," + 1 +
                ",'" + HBillNo +
                "','" + HRemarkSub +
                "'," + HRate1 +
                "," + HRate2 +
                "," + HRate3 +
                "," + HRate4 +
                ")";
                oCN.RunProc(sql1);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å•列表 æŸ¥è¯¢
        /// <summary>
        /// è¿”回业绩指标单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_YearEmployeeMoneyBill/list")]
        [HttpGet]
        public object getYearEmployeeMoneyBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_YearEmployeeMoneyBillList order by å•据号 ", "h_v_PM_YearEmployeeMoneyBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_YearEmployeeMoneyBillList where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号 ";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_YearEmployeeMoneyBillList");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_YearEmployeeMoneyBill/editInit")]
        [HttpGet]
        public object getYearEmployeeMoneyBilleditInit(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_YearEmployeeMoneyBill_EditInit " + HInterID, "h_p_PM_YearEmployeeMoneyBill_EditInit");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_YearEmployeeMoneyBill/delete")]
        [HttpGet]
        public object deleteYearEmployeeMoneyBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_YearEmployeeMoneyBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_YearEmployeeMoneyBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_YearEmployeeMoneyBill/AuditPM_YearEmployeeMoneyBill")]
        [HttpGet]
        public object AuditPM_YearEmployeeMoneyBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_YearEmployeeMoneyBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• å…³é—­/反关闭功能
        [Route("PM_YearEmployeeMoneyBill/ClosePM_YearEmployeeMoneyBill")]
        [HttpGet]
        public object ClosePM_YearEmployeeMoneyBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_YearEmployeeMoneyBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸šç»©æŒ‡æ ‡å• ä½œåºŸ/反作废功能
        [Route("PM_YearEmployeeMoneyBill/DropPM_YearEmployeeMoneyBill")]
        [HttpGet]
        public object DropPM_YearEmployeeMoneyBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_YearEmployeeMoneyBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/¹¤×÷ÈÎÎñ/PM_WorkTaskBillController.cs
New file
@@ -0,0 +1,1649 @@
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.项目管理.工作任务
{
    public class PM_WorkTaskBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        string user_LongShan = "";
        string HName_LongShan = "";
        #region å·¥ä½œä»»åŠ¡ æ–°å¢ž/编辑
        #region å·¥ä½œä»»åŠ¡ è¡¨å¤´æ•°æ®
        public class PM_WorkTaskBill_Main
        {
            public int HInterID;
            public string HBillNo;
            public string HProNumber;
            public string HProName;
            public int HProjectStageID;
            public string HProjectStageName;
            public string HName;
            public string HDate;
            public string HTaskNote;
            public double HPlanTimes;
            public double HSelfTimes;
            public string HLastDate;
            public string HSendEmp;
            public string HReceiveEmp;
            public string HType;
            public string HCopyEmp;
            public string HRemark;
            public int HOrgID;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ æ–°å¢ž/编辑
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskBill/AddBill")]
        [HttpPost]
        public object AddBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  å·¥ä½œä»»åŠ¡ ä¸»è¡¨
        public json AddBillMain(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            int OperationType = int.Parse(sArray[1].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[2].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[2].ToString();//用户名
            try
            {
                if(OperationType == 1)
                {
                    //判断是否有新增权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if(OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_WorkTaskBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_WorkTaskBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4753";
                string HBillSubType = "";
                int HInterID = mainList[0].HInterID;
                string HBillNo = mainList[0].HBillNo;
                string HProNumber = mainList[0].HProNumber;
                string HProName = mainList[0].HProName;
                int HProjectStageID = mainList[0].HProjectStageID;
                string HProjectStageName = mainList[0].HProjectStageName;
                string HName = mainList[0].HName;
                string HDate = mainList[0].HDate;
                string HTaskNote = mainList[0].HTaskNote;
                double HPlanTimes = mainList[0].HPlanTimes;
                double HSelfTimes = mainList[0].HSelfTimes;
                string HLastDate = mainList[0].HLastDate;
                string HSendEmp = mainList[0].HSendEmp;
                string HReceiveEmp = mainList[0].HReceiveEmp;
                string HType = mainList[0].HType;
                string HCopyEmp = mainList[0].HCopyEmp;
                string HRemark = mainList[0].HRemark;
                int HOrgID = mainList[0].HOrgID;
                string HMaker = mainList[0].HMaker;
                string HUpdater = mainList[0].HUpdater;
                string HChecker = mainList[0].HChecker;
                string HMakerDate = mainList[0].HMakerDate;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                string HCheckerDate = mainList[0].HCheckerDate;
                string HCloseMan = mainList[0].HCloseMan;
                string HDeleteMan = mainList[0].HDeleteMan;
                string HBacker = mainList[0].HBacker;
                string HCloseManDate = mainList[0].HCloseManDate;
                string HDeleteManDate = mainList[0].HDeleteManDate;
                string HBackerDate = mainList[0].HBackerDate;
                string HBackRemark = mainList[0].HBackRemark;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_WorkTaskBillMain where HBillNo ='" + HBillNo + "'", "PM_WorkTaskBillMain");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_WorkTaskBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_WorkTaskBill");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_WorkTaskBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HBillNo,HProNumber,HProjectStageID,HName,HDate,HTaskNote,HPlanTimes" +
                        ",HSelfTimes,HLastDate,HSendEmp,HReceiveEmp,HType,HCopyEmp,HRemark,HOrgID,HMaker,HMakeDate)" +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HBillNo +
                        "','" + HProNumber +
                        "'," + HProjectStageID +
                        ",'" + HName +
                        "','" + HDate +
                        "','" + HTaskNote +
                        "'," + HPlanTimes +
                        "," + HSelfTimes +
                        ",'" + HLastDate +
                        "','" + HSendEmp +
                        "','" + HReceiveEmp +
                        "','" + HType +
                        "','" + HCopyEmp +
                        "','" + HRemark +
                        "'," + HOrgID +
                        ",'" + HMaker +
                        "','" + HMakerDate +
                        "')";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增工作任务:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增工作任务:" + HBillNo + "','LMES-工作任务模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_WorkTaskBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HBillNo = '" + HBillNo +
                        "',HProNumber = '" + HProNumber +
                        "',HProjectStageID = " + HProjectStageID +
                        ",HName = '" + HName +
                        "',HDate = '" + HDate +
                        "',HTaskNote = '" + HTaskNote +
                        "',HPlanTimes = " + HPlanTimes +
                        ",HSelfTimes = " + HSelfTimes +
                        ",HLastDate = '" + HLastDate +
                        "',HSendEmp = '" + HSendEmp +
                        "',HReceiveEmp = '" + HReceiveEmp +
                        "',HType = '" + HType +
                        "',HCopyEmp = '" + HCopyEmp +
                        "',HRemark = '" + HRemark +
                        "',HOrgID = " + HOrgID +
                        ",HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "' where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_WorkTaskBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改工作任务:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改工作任务:" + HBillNo + "','LMES-工作任务模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存子表
                objJsonResult = AddBillSub(HInterID, HBillNo, OperationType);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ·»åŠ å·¥ä½œä»»åŠ¡ å­è¡¨
        public json AddBillSub(long HInterID, string HBillNo, int OperationType)
        {
            string sql = "insert into PM_WorkTaskBillSub" +
                "(HInterID,HEntryID,HBillNo_bak,HRemark) " +
                "values(" +
                "" + HInterID +
                "," + 1 +
                ",'" + HBillNo +
                "','" + "" +
                "')";
            oCN.RunProc(sql);
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #endregion
        #region å·¥ä½œä»»åŠ¡åˆ—è¡¨ æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskBill/list")]
        [HttpGet]
        public object getWorkTaskBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_WorkTaskBillList order by å•据号 ", "h_v_PM_WorkTaskBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_WorkTaskBillList where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号 ";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_WorkTaskBillList");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskBill/editInit")]
        [HttpGet]
        public object getWorkTaskBilleditInit(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskBill_EditInit " + HInterID, "h_p_PM_WorkTaskBill_EditInit");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskBill/delete")]
        [HttpGet]
        public object deleteWorkTaskBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_WorkTaskBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_WorkTaskBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_WorkTaskBill/AuditPM_WorkTaskBill")]
        [HttpGet]
        public object AuditPM_WorkTaskBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ å…³é—­/反关闭功能
        [Route("PM_WorkTaskBill/ClosePM_WorkTaskBill")]
        [HttpGet]
        public object ClosePM_WorkTaskBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ä½œä»»åŠ¡ ä½œåºŸ/反作废功能
        [Route("PM_WorkTaskBill/DropPM_WorkTaskBill")]
        [HttpGet]
        public object DropPM_WorkTaskBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ æ–°å¢ž/编辑-保存
        #region ä»»åŠ¡æ±‡æŠ¥ è¡¨å¤´æ•°æ®
        public class PM_WorkTaskReportBill_Main
        {
            public int HInterID;
            public int HProID;
            public int HProjectStageID;
            public string HMainSourceBillNo;
            public string HMainSourceBillType;
            public string HBillNo;
            public string HDate;
            public string HRemark;
            public int HOrgID;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
            public int HReportEmpID;
            public string HReportEmpName;
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ å­è¡¨æ•°æ®
        public class PM_WorkTaskReportBill_Sub
        {
            public int RowID;
            public string HProNumber;
            public int HProjectStageID;
            public string HProjectStageName;
            public string HName;
            public string HTaskNote;
            public string HType;
            public double HRelTimes;
            public string HReportNote;
            public string HAdv;
            public string HRemarkSub;
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 æ–°å¢ž/编辑-保存
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskReportBill/AddBill")]
        [HttpPost]
        public object AddBill_WorkTaskReportBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain_WorkTaskReportBill(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  é¡¹ç›®é˜¶æ®µæ¸…单 ä¸»è¡¨
        public json AddBillMain_WorkTaskReportBill(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[3].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[3].ToString();//用户名
            try
            {
                if (OperationType == 1)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if (OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_WorkTaskReportBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_WorkTaskReportBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4754";
                string HBillSubType = "";
                int HBillStatus = 1;
                int HInterID = mainList[0].HInterID;
                int HProID = mainList[0].HProID;
                int HProjectStageID = mainList[0].HProjectStageID;
                string HMainSourceBillNo = mainList[0].HMainSourceBillNo;
                string HMainSourceBillType = mainList[0].HMainSourceBillType;
                string HBillNo = mainList[0].HBillNo;
                string HDate = mainList[0].HDate;
                string HRemark = mainList[0].HRemark;
                int HOrgID = mainList[0].HOrgID;
                string HMaker = mainList[0].HMaker;
                string HMakerDate = mainList[0].HMakerDate;
                int HReportEmpID = mainList[0].HReportEmpID;
                string HReportEmpName = mainList[0].HReportEmpName;
                string HUpdater = mainList[0].HUpdater;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_WorkTaskReportBillMain where HBillNo ='" + HBillNo + "'", "PM_WorkTaskReportBillMain");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_WorkTaskReportBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_WorkTaskReportBillMain");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_WorkTaskReportBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HOrgID,HReportEmpID) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "'," + HOrgID +
                        "," + HReportEmpID +
                        ")";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增任务汇报:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增任务汇报:" + HBillNo + "','LMES-任务汇报模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_WorkTaskReportBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HDate = '" + HDate +
                        "',HBillNo = '" + HBillNo +
                        "',HBillStatus = " + HBillStatus +
                        ",HRemark = '" + HRemark +
                        "',HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "',HOrgID = " + HOrgID +
                        ",HReportEmpID = " + HReportEmpID +
                        " where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_WorkTaskReportBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改项目阶段清单:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改项目阶段清单:" + HBillNo + "','LMES-项目阶段清单模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }else if(OperationType == 4 && ds.Tables[0].Rows.Count == 0)        //下推
                {
                    string sql = "insert into PM_WorkTaskReportBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HOrgID,HReportEmpID,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType,HMainSourceBillNo) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "'," + HOrgID +
                        "," + HReportEmpID +
                        "," + HProID +
                        "," + HProjectStageID +
                        ",'" + HMainSourceBillType +
                        "','" + HMainSourceBillNo +
                        "')";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增任务汇报:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增任务汇报:" + HBillNo + "','LMES-任务汇报模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存子表
                objJsonResult = AddBillSub_WorkTaskReportBill(msg3, HInterID, HBillNo, OperationType, HProID, HProjectStageID, HMainSourceBillType, HMainSourceBillNo);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ·»åŠ é¡¹ç›®é˜¶æ®µæ¸…å• å­è¡¨
        public json AddBillSub_WorkTaskReportBill(string msg3, long HInterID, string HBillNo, int OperationType, int HSourceInterID, int HSourceEntryID, string HSourceBillType, string HSourceBillNo)
        {
            List<PM_WorkTaskReportBill_Sub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_WorkTaskReportBill_Sub>>(msg3);
            int i = 0;                                          //作为子表内码
            if(OperationType == 4) {
                foreach (PM_WorkTaskReportBill_Sub oSub in DetailColl)
                {
                    i++;                                            //同一个主表下的子表的内码自增
                    int HEntryID = i;
                    string HProNumber = oSub.HProNumber;
                    int HProjectStageID = oSub.HProjectStageID;
                    string HName = oSub.HName;
                    string HTaskNote = oSub.HTaskNote;
                    string HType = oSub.HType;
                    double HRelTimes = oSub.HRelTimes;
                    string HReportNote = oSub.HReportNote;
                    string HAdv = oSub.HAdv;
                    string HRemark = oSub.HRemarkSub;
                    string sql = "insert into PM_WorkTaskReportBillSub" +
                        "(HInterID,HBillNo_bak,HEntryID,HRemark,HProNumber,HProjectStageID,HName,HTaskNote,HType,HRelTimes,HReportNote,HAdv,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo) " +
                        "values(" +
                        "" + HInterID +
                        ",'" + HBillNo +
                        "'," + HEntryID +
                        ",'" + HRemark +
                        "','" + HProNumber +
                        "'," + HProjectStageID +
                        ",'" + HName +
                        "','" + HTaskNote +
                        "','" + HType +
                        "'," + HRelTimes +
                        ",'" + HReportNote +
                        "','" + HAdv +
                        "'," + HSourceInterID +
                        "," + HSourceEntryID +
                        ",'" + HSourceBillType +
                        "','" + HSourceBillNo +
                        "')";
                    oCN.RunProc(sql);
                }
            }
            else
            {
                foreach (PM_WorkTaskReportBill_Sub oSub in DetailColl)
                {
                    i++;                                            //同一个主表下的子表的内码自增
                    int HEntryID = i;
                    string HProNumber = oSub.HProNumber;
                    int HProjectStageID = oSub.HProjectStageID;
                    string HName = oSub.HName;
                    string HTaskNote = oSub.HTaskNote;
                    string HType = oSub.HType;
                    double HRelTimes = oSub.HRelTimes;
                    string HReportNote = oSub.HReportNote;
                    string HAdv = oSub.HAdv;
                    string HRemark = oSub.HRemarkSub;
                    string sql = "insert into PM_WorkTaskReportBillSub" +
                        "(HInterID,HBillNo_bak,HEntryID,HRemark,HProNumber,HProjectStageID,HName,HTaskNote,HType,HRelTimes,HReportNote,HAdv) " +
                        "values(" +
                        "" + HInterID +
                        ",'" + HBillNo +
                        "'," + HEntryID +
                        ",'" + HRemark +
                        "','" + HProNumber +
                        "'," + HProjectStageID +
                        ",'" + HName +
                        "','" + HTaskNote +
                        "','" + HType +
                        "'," + HRelTimes +
                        ",'" + HReportNote +
                        "','" + HAdv +
                        "')";
                    oCN.RunProc(sql);
                }
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskReportBill/list")]
        [HttpGet]
        public object getWorkTaskReportBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_WorkTaskReportBillList order by å•据号", "h_v_PM_ProjectStageBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_WorkTaskReportBillList where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_WorkTaskReportBillList");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskReportBill/editInit")]
        [HttpGet]
        public object getWorkTaskReportBilleditInit(string HInterID, string user)
        {
            try
            {
                List<DataTable> tableList = new List<DataTable>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_edit", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_WorkTaskReportBill_EditInit " + HInterID, "h_p_PM_WorkTaskReportBill_EditInit");
                tableList.Add(ds.Tables[0]);
                tableList.Add(ds.Tables[1]);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tableList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_WorkTaskReportBill/delete")]
        [HttpGet]
        public object deleteWorkTaskReportBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_WorkTaskReportBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_WorkTaskReportBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_WorkTaskReportBill/AuditPM_WorkTaskReportBill")]
        [HttpGet]
        public object AuditPM_WorkTaskReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ å…³é—­/反关闭功能
        [Route("PM_WorkTaskReportBill/ClosePM_WorkTaskReportBill")]
        [HttpGet]
        public object ClosePM_WorkTaskReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä»»åŠ¡æ±‡æŠ¥ ä½œåºŸ/反作废功能
        [Route("PM_WorkTaskReportBill/DropPM_WorkTaskReportBill")]
        [HttpGet]
        public object DropPM_WorkTaskReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_WorkTaskReportBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_WorkTaskReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/¹¤³ÌÏîÄ¿/PM_ProjectBillController.cs
New file
@@ -0,0 +1,1050 @@
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.项目管理.工程项目
{
    public class PM_ProjectBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        string user_LongShan = "";
        string HName_LongShan = "";
        #region å·¥ç¨‹é¡¹ç›® æ–°å¢ž/编辑
        #region å·¥ç¨‹é¡¹ç›® è¡¨å¤´æ•°æ®
        public class PM_ProjectBill_Main
        {
            public int HInterID;
            public string HBillNo;
            public string HProNumber;
            public string HProName;
            public int HCusID;
            public string HCusName;
            public string HBeginDate;
            public string HEndDate;
            public string HDate;
            public int HPMEmpID;
            public string HPMEmpName;
            public int HWorkEmpID;
            public string HWorkEmpName;
            public int HDepEmpID;
            public string HDepEmpName;
            public int HMaterID;
            public string HMaterNumber;
            public string HMaterName;
            public int HPayCusID;
            public string HPayCusName;
            public string HProType;
            public string HRemark;
            public int HOrgID;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
            public double HSumMoney;
            public double HProMoney;
            public double HWorkMoney;
            public double HOtherMoney;
            public int HConWorkDays;
            public int HDepDays;
            public double HLastMoney;
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® é¡¹ç›®é˜¶æ®µè¡¨ä½“数据
        public class PM_ProjectBill_ProjectStage
        {
            public int RowID;
            public int HProjectStageID;
            public string HProjectStageName;
            public string HStageNote;
            public int HPMGoodsID;
            public string HPMGoodsName;
            public bool HIsKey;
            public double HRate;
            public int HEmpID;
            public string HEmpName;
            public int HCheckEmpID;
            public string HCheckEmpName;
            public string HFinishDate;
            public double HWorkDays;
            public string HRemarkSub;
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® é¡¹ç›®æˆå‘˜è¡¨ä½“数据
        public class PM_ProjectBill_Employee
        {
            public int RowID;
            public int HEmployeeID;
            public string HEmployeeName;
            public bool HIsPM;
            public double HRate;
            public double HPlanAvgMoney;
            public double HPlanCountMoney;
            public string HRemarkSub;
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® æ–°å¢ž/编辑
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectBill/AddBill")]
        [HttpPost]
        public object AddBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  å·¥ç¨‹é¡¹ç›® ä¸»è¡¨
        public json AddBillMain(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string msg4 = sArray[2].ToString();
            int OperationType = int.Parse(sArray[3].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[4].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[4].ToString();//用户名
            try
            {
                if(OperationType == 1)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if(OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_ProjectBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4750";
                string HBillSubType = "";
                int HInterID = mainList[0].HInterID;
                string HDate = mainList[0].HDate;
                string HBillNo = mainList[0].HBillNo;
                int HBillStatus = 1;
                string HRemark = mainList[0].HRemark;
                string HMaker = user;
                string HMakerDate = mainList[0].HMakerDate;
                string HProNumber = mainList[0].HProNumber;
                string HProName = mainList[0].HProName;
                int HCusID = mainList[0].HCusID;
                string HBeginDate = mainList[0].HBeginDate;
                string HEndDate = mainList[0].HEndDate;
                double HSumMoney = mainList[0].HSumMoney;
                double HProMoney = mainList[0].HProMoney;
                double HWorkMoney = mainList[0].HWorkMoney;
                double HOtherMoney = mainList[0].HOtherMoney;
                string HProType = mainList[0].HProType;
                int HPMEmpID = mainList[0].HPMEmpID;
                int HWorkEmpID = mainList[0].HWorkEmpID;
                int HDepEmpID = mainList[0].HDepEmpID;
                double HConWorkDays = mainList[0].HConWorkDays;
                double HDepDays = mainList[0].HDepDays;
                double HLastMoney = mainList[0].HLastMoney;
                int HPayCusID = mainList[0].HPayCusID;
                int HOrgID = mainList[0].HOrgID;
                int HMaterID = mainList[0].HMaterID;
                string HUpdater = mainList[0].HUpdater;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_ProjectBillMain where HBillNo ='" + HBillNo + "'", "PM_ProjectBillMain");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_ProjectBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_ProjectBillMain");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_ProjectBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HProNumber,HProName,HCusID,HBeginDate,HEndDate,HSumMoney," +
                        "HProMoney,HWorkMoney,HOtherMoney,HProType,HPMEmpID,HWorkEmpID,HDepEmpID,HConWorkDays,HDepDays,HLastMoney,HPayCusID,HOrgID,HMaterID) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "','" + HProNumber +
                        "','" + HProName +
                        "'," + HCusID +
                        ",'" + HBeginDate +
                        "','" + HEndDate +
                        "'," + HSumMoney +
                        "," + HProMoney +
                        "," + HWorkMoney +
                        "," + HOtherMoney +
                        ",'" + HProType +
                        "'," + HPMEmpID +
                        "," + HWorkEmpID +
                        "," + HDepEmpID +
                        "," + HConWorkDays +
                        "," + HDepDays +
                        "," + HLastMoney +
                        "," + HPayCusID +
                        "," + HOrgID +
                        "," + HMaterID +
                        ")";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增工程项目:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增工程项目:" + HBillNo + "','LMES-工程项目模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_ProjectBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HDate = '" + HDate +
                        "',HBillNo = '" + HBillNo +
                        "',HBillStatus = " + HBillStatus +
                        ",HRemark = '" + HRemark +
                        "',HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "',HProNumber = '" + HProNumber +
                        "',HProName = '" + HProName +
                        "',HCusID = " + HCusID +
                        ",HBeginDate = '" + HBeginDate +
                        "',HEndDate = '" + HEndDate +
                        "',HSumMoney = " + HSumMoney +
                        ",HProMoney = '" + HProMoney +
                        "',HWorkMoney = " + HWorkMoney +
                        ",HOtherMoney = " + HOtherMoney +
                        ",HProType = '" + HProType +
                        "',HPMEmpID = " + HPMEmpID +
                        ",HWorkEmpID = " + HWorkEmpID +
                        ",HDepEmpID = " + HDepEmpID +
                        ",HConWorkDays = " + HConWorkDays +
                        ",HDepDays = '" + HDepDays +
                        "',HLastMoney = " + HLastMoney +
                        ",HPayCusID = " + HPayCusID +
                        ",HOrgID = " + HOrgID +
                        ",HMaterID = " + HMaterID +
                        " where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_ProjectBillSub_Emp where HInterID='" + HInterID + "'");
                    oCN.RunProc("delete from PM_ProjectBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改项目工程:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改项目工程:" + HBillNo + "','LMES-项目工程模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存子表
                objJsonResult = AddBillSub1(msg3, HInterID, HBillNo, OperationType);
                objJsonResult = AddBillSub2(msg4, HInterID, HBillNo, OperationType);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ·»åŠ å·¥ç¨‹é¡¹ç›® è¡¨ä½“:项目阶段表
        public json AddBillSub1(string msg3, long HInterID, string HBillNo, int OperationType)
        {
            List<PM_ProjectBill_ProjectStage> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_ProjectStage>>(msg3);
            int i = 0;                                          //作为子表内码
            foreach (PM_ProjectBill_ProjectStage oSub in DetailColl)
            {
                i++;                                            //同一个主表下的子表的内码自增
                int HEntryID = i;
                string HRemark = oSub.HRemarkSub;
                int HProjectStageID = oSub.HProjectStageID;
                string HStageNote = oSub.HStageNote;
                int HPMGoodsID = oSub.HPMGoodsID;
                string HRelationGoods = oSub.HPMGoodsName;
                int HIsKey = oSub.HIsKey?1:0;
                double HRate = oSub.HRate;
                int HEmpID = oSub.HEmpID;
                int HCheckEmpID = oSub.HCheckEmpID;
                string HFinishDate = oSub.HFinishDate;
                double HWorkDays = oSub.HWorkDays;
                string sql = "insert into PM_ProjectBillSub" +
                    "(HInterID,HBillNo_bak,HEntryID,HRemark,HProjectStageID,HStageNote,HPMGoodsID,HRelationGoods,HIsKey,HRate,HEmpID,HCheckEmpID,HFinishDate,HWorkDays) " +
                    "values(" +
                    "" + HInterID +
                    ",'" + HBillNo +
                    "'," + HEntryID +
                    ",'" + HRemark +
                    "'," + HProjectStageID +
                    ",'" + HStageNote +
                    "'," + HPMGoodsID +
                    ",'" + HRelationGoods +
                    "'," + HIsKey +
                    "," + HRate +
                    "," + HEmpID +
                    "," + HCheckEmpID +
                    ",'" + HFinishDate +
                    "'," + HWorkDays +
                    ")";
                oCN.RunProc(sql);
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ å·¥ç¨‹é¡¹ç›® è¡¨ä½“:项目成员表
        public json AddBillSub2(string msg3, long HInterID, string HBillNo, int OperationType)
        {
            List<PM_ProjectBill_Employee> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_Employee>>(msg3);
            int i = 0;                                          //作为子表内码
            foreach (PM_ProjectBill_Employee oSub in DetailColl)
            {
                i++;                                            //同一个主表下的子表的内码自增
                int HEntryID = i;
                string HRemark = oSub.HRemarkSub;
                int HEmpID = oSub.HEmployeeID;
                int HIsPM = oSub.HIsPM?1:0;
                double HRate = oSub.HRate;
                double HPlanAvgMoney = oSub.HPlanAvgMoney;
                double HPlanCountMoney = oSub.HPlanCountMoney;
                string sql = "insert into PM_ProjectBillSub_Emp" +
                    "(HInterID,HBillNo_bak,HEntryID,HRemark,HEmpID,HIsPM,HRate,HPlanAvgMoney,HPlanCountMoney) " +
                    "values(" +
                    "" + HInterID +
                    ",'" + HBillNo +
                    "'," + HEntryID +
                    ",'" + HRemark +
                    "'," + HEmpID +
                    "," + HIsPM +
                    "," + HRate +
                    "," + HPlanAvgMoney +
                    "," + HPlanCountMoney +
                    ")";
                oCN.RunProc(sql);
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #endregion
        #region å·¥ç¨‹é¡¹ç›® æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectBill/list")]
        [HttpGet]
        public object getProjectBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_ProjectBillList order by å•据号 ", "h_v_PM_ProjectBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_ProjectBillList where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号 ";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_ProjectBillList");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectBill/editInit")]
        [HttpGet]
        public object getProjectBilleditInit(string HInterID, string user)
        {
            try
            {
                List<DataTable> tableList = new List<DataTable>();
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_ProjectBill_EditInit " + HInterID, "h_p_PM_ProjectBill_EditInit");
                tableList.Add(ds.Tables[0]);
                tableList.Add(ds.Tables[1]);
                tableList.Add(ds.Tables[2]);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tableList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectBill/delete")]
        [HttpGet]
        public object deleteProjectBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if(HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_ProjectBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_ProjectBillSub_Emp where HInterID='" + HInterID + "'");
                oCN.RunProc("delete from PM_ProjectBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_ProjectBill/AuditPM_ProjectBill")]
        [HttpGet]
        public object AuditPM_ProjectBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® å…³é—­/反关闭功能
        [Route("PM_ProjectBill/ClosePM_ProjectBill")]
        [HttpGet]
        public object ClosePM_ProjectBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® ä½œåºŸ/反作废功能
        [Route("PM_ProjectBill/DropPM_ProjectBill")]
        [HttpGet]
        public object DropPM_ProjectBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® ä¸‹æŽ¨(阶段汇报)-页面显示
        [Route("PM_ProjectBill/set_ProjectReport")]
        [HttpGet]
        public object ProjectBill_ProjectReport(string HInterID, string HProjectStageID, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                List<DataTable> tables = new List<DataTable>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_Query", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //获取表头信息
                string sql = "exec h_p_PM_ProjectBill_setProjectReport " + HInterID + "," + HProjectStageID;
                ds = oCN.RunProcReturn(sql, "h_p_PM_ProjectBill_setProjectReport");
                tables.Add(ds.Tables[0]);
                tables.Add(ds.Tables[1]);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "对应项目阶段不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //添加列名
                foreach (DataColumn col in ds.Tables[1].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tables;
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥ç¨‹é¡¹ç›® ä¸‹æŽ¨(任务汇报)-页面显示
        [Route("PM_ProjectBill/set_WorkTaskReport")]
        [HttpGet]
        public object ProjectBill_WorkTaskReport(string HInterID, string HProjectStageID, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                List<DataTable> tables = new List<DataTable>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_Query", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //获取表头信息
                string sql = "exec h_p_PM_ProjectBill_setWorkTaskReport " + HInterID + "," + HProjectStageID;
                ds = oCN.RunProcReturn(sql, "h_p_PM_ProjectBill_setWorkTaskReport");
                tables.Add(ds.Tables[0]);
                tables.Add(ds.Tables[1]);
                //添加列名
                foreach (DataColumn col in ds.Tables[1].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tables;
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/ÏîÄ¿¹ÜÀí/ÏîÄ¿½×¶Î/Gy_ProjectStageController.cs
New file
@@ -0,0 +1,2202 @@
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.项目管理.项目阶段
{
    public class Gy_ProjectStageController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill();
        string user_LongShan = "";
        string HName_LongShan = "";
        #region é¡¹ç›®é˜¶æ®µ æ–°å¢ž/编辑
        #region é¡¹ç›®é˜¶æ®µ æ–°å¢ž/编辑 ä¿¡æ¯åˆ—表
        public class Gy_ProjectStage_eidt_add
        {
            public long HItemID;
            public string HNumber;
            public string HName;
            public long HParentID;
            public bool HStopflag;
            public string HRemark;
            public string HHelpCode;
            public int HUSEORGID;
            public string HStageNote;
            public string HRelationGoods;
            public bool HIsKey;
            public double HRate;
        }
        #endregion
        /// <summary>
        /// ä¿å­˜æŒ‰é’®
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProjectStage/AddNewProjectStage")]
        [HttpPost]
        public object AddNewProjectStage([FromBody] JObject oMain)
        {
            try
            {
                //DAL.ClsGy_Process_Ctl oDept = new DAL.ClsGy_Process_Ctl();
                //DAL.ClsGy_Process_View oDeptHlp = new DAL.ClsGy_Process_View();
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string user = sArray[1].ToString();//用户名
                //判断是否有编辑权限
                if (!DBUtility.ClsPub.Security_Log("PM_ProjectStage_edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限编辑!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //string msg3 = sArray[1].ToString();
                //string msg4 = sArray[2].ToString();
                //string msg5 = sArray[3].ToString();
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<Gy_ProjectStage_eidt_add> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_ProjectStage_eidt_add>>(msg2);
                long HItemID = list[0].HItemID;
                string HNumber = list[0].HNumber;
                string HName = list[0].HName;
                string HShortNumber = list[0].HNumber;
                long HParentID = list[0].HParentID;
                long HLevel = ClsPub.GetLevel(list[0].HNumber.Trim());
                bool HEndFlag = true;
                bool HStopflag = list[0].HStopflag;
                string HRemark = list[0].HRemark;
                string HHelpCode = list[0].HHelpCode;
                string HMakeEmp = user;
                string HModifyEmp = user;
                int HUSEORGID = list[0].HUSEORGID;
                string HStageNote = list[0].HStageNote;
                string HRelationGoods = list[0].HRelationGoods;
                bool HIsKey = list[0].HIsKey;
                double HRate = list[0].HRate;
                //保存
                //保存完毕后处理
                if (HItemID == 0)
                {
                    oCN.BeginTran();
                    string sql = "Insert into  Gy_ProjectStage" +
                        " (HNumber,HName,HShortNumber,HParentID,HLevel,HEndFlag,HStopflag,HRemark,HHelpCode,HMakeEmp,HCREATEORGID,HStageNote,HRelationGoods,HIsKey,HRate) " +
                        " Values(" +
                        "'" + HNumber + "'" +
                        ",'" + HName + "'" +
                        ",'" + HShortNumber + "'" +
                        "," + HParentID.ToString() + "" +
                        "," + HLevel.ToString() + "" +
                        "," + Convert.ToString(HEndFlag ? 1 : 0) + "" +
                        "," + Convert.ToString(HStopflag ? 1 : 0) + "" +
                        ",'" + HRemark + "'" +
                        ",'" + HHelpCode + "'" +
                        ",'" + HMakeEmp + "'" +
                        "," + HUSEORGID + "" +
                        ",'" + HStageNote + "'" +
                        ",'" + HRelationGoods + "'" +
                        "," + Convert.ToString(HIsKey ? 1 : 0) + "" +
                        "," + HRate + "" +
                        ")";
                    oCN.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改上级为非末级代码
                    oCN.RunProc("Update Gy_ProjectStage set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.Commit();
                }
                else
                {
                    ////若MAINDI重复则重新获取
                    oCN.BeginTran();
                    string sql = "Update Gy_ProjectStage set " +
                        "HNumber='" + HNumber + "'" +
                        ",HName='" + HName + "'" +
                        ",HShortNumber='" + HShortNumber + "'" +
                        ",HParentID=" + HParentID.ToString() + "" +
                        ",HLevel=" + HLevel.ToString() + "" +
                        ",HEndFlag=" + Convert.ToString(HEndFlag ? 1 : 0) + "" +
                        ",HStopflag=" + Convert.ToString(HStopflag ? 1 : 0) + "" +
                        ",HRemark='" + HRemark + "'" +
                        ",HHelpCode='" + HHelpCode + "'" +
                        ",HMakeEmp='" + HMakeEmp + "'" +
                        ",HModifyEmp = '" + HModifyEmp + "'" +
                        ",HModifyTime = getDate()" +
                        ",HCREATEORGID=" + HUSEORGID + "" +
                        ",HStageNote='" + HStageNote + "'" +
                        ",HRelationGoods='" + HRelationGoods + "'" +
                        ",HIsKey=" + Convert.ToString(HIsKey ? 1 : 0) + "" +
                        ",HRate=" + HRate + "" +
                        " where HItemID=" + HItemID;
                    oCN.RunProc(sql, ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改上级为非末级代码
                    oCN.RunProc("Update Gy_ProjectStage set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //
                    oCN.Commit();
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µ æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProjectStage/list")]
        [HttpGet]
        public object getProjectStageList(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_Gy_ProjectStage order by é˜¶æ®µç¼–码 ", "h_v_Gy_ProjectStage");
                }
                else
                {
                    string sql1 = "select * from h_v_Gy_ProjectStage where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by é˜¶æ®µç¼–码 ";
                    ds = oCN.RunProcReturn(sql, "h_v_Gy_ProjectStage");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µ æŸ¥è¯¢æŒ‡å®šé¡¹ç›®é˜¶æ®µè®°å½•
        /// <summary>
        /// æ ¹æ®åŸºç¡€èµ„æ–™ID æŸ¥æ‰¾è®°å½•
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_ProjectStage/cx")]
        [HttpGet]
        public object cx(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from Gy_ProjectStage where HitemID=" + HInterID, "Gy_ProjectStage");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µ åˆ é™¤
        /// <summary>
        /// é¡¹ç›®é˜¶æ®µåˆ—表删除功能
        /// </summary>
        /// <returns></returns>
        [Route("DeltetGy_ProjectStage")]
        [HttpGet]
        public object DeltetGy_ProjectStage(string HItemID, string user)
        {
            DataSet ds;
            DataSet ds1;
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log("PM_ProjectStage_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (string.IsNullOrWhiteSpace(HItemID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HItemID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                ds = oCN.RunProcReturn("select * from Gy_ProjectStage where HItemID=" + HItemID, "Gy_ProjectStage");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有数据,无法删除!";
                    objJsonResult.data = null;
                    return objJsonResult; ;
                }
                //var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]);
                //if (HStopflag)
                //{
                //    oCN.RollBack();//回滚事务
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "数据已删除无法再次删除!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                ds1 = oCN.RunProcReturn("Select HItemID from  Gy_ProjectStage  Where HParentID='" + HItemID + "'", " Gy_ProjectStage");
                if (ds1.Tables[0].Rows.Count != 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "此项目存在子项目,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string HUseFlag = Convert.ToString(ds.Tables[0].Rows[0]["HUseFlag"]);
                if (HUseFlag == "已使用")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "此项目已使用,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("delete from  Gy_ProjectStage  where HItemID=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "* æ•°æ®åˆ é™¤æˆåŠŸï¼";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µ å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Gy_ProjectStage/AuditGy_ProjectStage")]
        [HttpGet]
        public object AuditGy_ProjectStage(int HInterID, int IsAudit, string CurUserName)
        {
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log_second("Pm_ProjectStage_Check", 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "审核失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                var ds = oCN.RunProcReturn("select * from Gy_ProjectStage where HItemID=" + HInterID, "Gy_ProjectStage");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (IsAudit == 0)  //审核判断
                    {
                        if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    if (IsAudit == 1) //反审核判断
                    {
                        if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核!不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                if (IsAudit == 0)  //审核判断
                {
                    oCN.RunProc("update Gy_ProjectStage set HCheckEmp='" + CurUserName + "',HCheckTime=getdate() where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "审核成功";
                    objJsonResult.data = null;
                }
                if (IsAudit == 1) //反审核判断
                {
                    oCN.RunProc("update Gy_ProjectStage set HCheckEmp='',HCheckTime=null where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "反审核成功";
                    objJsonResult.data = null;
                }
                oCN.Commit();
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µ ç¦ç”¨ã€åç¦ç”¨
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsStop">禁用(0),反禁用(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Gy_ProjectStage/StopGy_ProjectStage")]
        [HttpGet]
        public object StopGy_ProjectStage(int HInterID, int IsStop, string CurUserName)
        {
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log_second("Pm_ProjectStage_Stop", 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "禁用失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                var ds = oCN.RunProcReturn("select * from Gy_ProjectStage where HItemID=" + HInterID, "Gy_ProjectStage");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (IsStop == 0)  //禁用判断
                    {
                        if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已禁用!不能再次禁用!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    if (IsStop == 1) //反禁用判断
                    {
                        if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未禁用!不需要反禁用!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                if (IsStop == 0)  //禁用判断
                {
                    oCN.RunProc("update Gy_ProjectStage set HStopEmp='" + CurUserName + "',HStopTime=getdate(),HStopflag=1 where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "禁用成功";
                    objJsonResult.data = null;
                }
                if (IsStop == 1) //反禁用判断
                {
                    oCN.RunProc("update Gy_ProjectStage set HStopEmp='',HStopTime=null,HStopflag=0 where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "反禁用成功";
                    objJsonResult.data = null;
                }
                oCN.Commit();
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "禁用失败或者反禁用失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 æ–°å¢ž/编辑- ä¿å­˜
        #region é¡¹ç›®é˜¶æ®µæ¸…单 è¡¨å¤´æ•°æ®
        public class PM_ProjectStageBill_Main
        {
            public int HInterID;
            public string HBillNo;
            public string HDate;
            public string HRemark;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 å­è¡¨æ•°æ®
        public class PM_ProjectStageBill_Sub
        {
            public int RowID;
            public int HProjectStageID;
            public string HProjectStageName;
            public string HStageNote;
            public int HPMGoodsID;
            public string HPMGoodsName;
            public bool HIsKey;
            public double HRate;
            //public int HEmpID;
            //public string HEmpName;
            //public int HCheckEmpID;
            //public string HCheckEmpName;
            //public string HFinishDate;
            //public double HWorkDays;
            public string HRemarkSub;
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 æ–°å¢ž/编辑-保存
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectStageBill/AddBill")]
        [HttpPost]
        public object AddBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  é¡¹ç›®é˜¶æ®µæ¸…单 ä¸»è¡¨
        public json AddBillMain(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[3].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[3].ToString();//用户名
            try
            {
                if (OperationType == 1)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if (OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_ProjectStageBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectStageBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4751";
                string HBillSubType = "";
                int HInterID = mainList[0].HInterID;
                string HDate = mainList[0].HDate;
                string HBillNo = mainList[0].HBillNo;
                int HBillStatus = 1;
                string HRemark = mainList[0].HRemark;
                string HMaker = mainList[0].HMaker;
                string HMakerDate = mainList[0].HMakerDate;
                string HUpdater = mainList[0].HUpdater;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_ProjectStageBillMain where HBillNo ='" + HBillNo + "'", "PM_ProjectStageBill");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_ProjectStageBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_ProjectStageBillMain");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_ProjectStageBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "')";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增项目阶段清单:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增项目阶段清单:" + HBillNo + "','LMES-项目阶段清单模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_ProjectStageBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HDate = '" + HDate +
                        "',HBillNo = '" + HBillNo +
                        "',HBillStatus = " + HBillStatus +
                        ",HRemark = '" + HRemark +
                        "',HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "' where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_ProjectStageBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改项目阶段清单:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改项目阶段清单:" + HBillNo + "','LMES-项目阶段清单模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存子表
                objJsonResult = AddBillSub(msg3, HInterID, HBillNo, OperationType);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ·»åŠ é¡¹ç›®é˜¶æ®µæ¸…å• å­è¡¨
        public json AddBillSub(string msg3, long HInterID, string HBillNo, int OperationType)
        {
            List<PM_ProjectStageBill_Sub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectStageBill_Sub>>(msg3);
            int i = 0;                                          //作为子表内码
            foreach (PM_ProjectStageBill_Sub oSub in DetailColl)
            {
                i++;                                            //同一个主表下的子表的内码自增
                int HEntryID = i;
                int HProjectStageID = oSub.HProjectStageID;
                string HStageNote = oSub.HStageNote;
                int HPMGoodsID = oSub.HPMGoodsID;
                string HRelationGoods = oSub.HPMGoodsName;
                int HIsKey = oSub.HIsKey?1:0;
                double HRate = oSub.HRate;
                string HRemark = oSub.HRemarkSub;
                string sql = "insert into PM_ProjectStageBillSub" +
                    "(HInterID,HBillNo_bak,HEntryID,HRemark,HProjectStageID,HStageNote,HPMGoodsID,HRelationGoods,HIsKey,HRate) " +
                    "values(" +
                    "" + HInterID +
                    ",'" + HBillNo +
                    "'," + HEntryID +
                    ",'" + HRemark +
                    "'," + HProjectStageID +
                    ",'" + HStageNote +
                    "'," + HPMGoodsID +
                    ",'" + HRelationGoods +
                    "'," + HIsKey +
                    "," + HRate +
                    ")";
                oCN.RunProc(sql);
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectStageBill/list")]
        [HttpGet]
        public object getProjectStageBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_ProjectStageBill order by å•据号 desc", "h_v_PM_ProjectStageBill");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_ProjectStageBill where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号 desc";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_ProjectStageBill");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectStageBill/editInit")]
        [HttpGet]
        public object getProjectStageBilleditInit(string HInterID, string user)
        {
            try
            {
                List<DataTable> tableList = new List<DataTable>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_edit", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_ProjectStageBill_EditInit " + HInterID, "h_p_PM_ProjectStageBill_EditInit");
                tableList.Add(ds.Tables[0]);
                tableList.Add(ds.Tables[1]);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tableList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectStageBill/delete")]
        [HttpGet]
        public object deleteProjectStageBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_ProjectStageBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_ProjectStageBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_ProjectStageBill/AuditPM_ProjectStageBill")]
        [HttpGet]
        public object AuditPM_ProjectStageBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectStageBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 å…³é—­/反关闭功能
        [Route("PM_ProjectStageBill/ClosePM_ProjectStageBill")]
        [HttpGet]
        public object ClosePM_ProjectStageBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectStageBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 ä½œåºŸ/反作废功能
        [Route("PM_ProjectStageBill/DropPM_ProjectStageBill")]
        [HttpGet]
        public object DropPM_ProjectStageBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectStageBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ æ–°å¢ž/编辑-保存
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ è¡¨å¤´æ•°æ®
        public class PM_ProjectReportBill_Main
        {
            public int HInterID;
            public string HBillNo;
            public string HDate;
            public int HProID;
            public string HProNumber;
            public string HMainSourceBillNo;
            public string HMainSourceBillType;
            public int HProjectStageID;
            public string HProjectStageName;
            public string HStageNote;
            public string HRelationGoods;
            public int HIsKey;
            public int HReportEmpID;
            public string HReportEmpName;
            public string HReportNote;
            public string HReportGoods;
            public string HReceiveEmp;
            public string HCopyEmp;
            public double HRate;
            public int HOrgID;
            public string HRemark;
            public string HMaker;
            public string HUpdater;
            public string HChecker;
            public string HMakerDate;
            public string HUpdaterDate;
            public string HCheckerDate;
            public string HCloseMan;
            public string HDeleteMan;
            public string HBacker;
            public string HCloseManDate;
            public string HDeleteManDate;
            public string HBackerDate;
            public string HBackRemark;
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ å­è¡¨æ•°æ®
        public class PM_ProjectReportBill_Sub
        {
            public int RowID;
            public int HEmpID;
            public string HEmpName;
            public bool HIsPM;
            public double HRate;
            public double HAvgMoney;
            public double HCountMoney;
            public string HRemarkSub;
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ æ–°å¢ž/编辑-保存
        /// <summary>
        /// æ–°å¢žå•据-保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectReportBill/AddBill")]
        [HttpPost]
        public object AddBill_ProjectReportBill([FromBody] JObject sMainSub)
        {
            //获取参数
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            //开始事务
            oCN.BeginTran();
            //保存主表
            objJsonResult = AddBillMain_ProjectReportBill(msg1);
            if (objJsonResult.code == "0")
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = objJsonResult.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
            oCN.Commit();
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = "新增单据成功!";
            objJsonResult.data = ds.Tables[0];
            return objJsonResult;
        }
        #endregion
        #region æ·»åŠ  é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ ä¸»è¡¨
        public json AddBillMain_ProjectReportBill(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 å¤åˆ¶
            string user = sArray[3].ToString();//用户名
            string HComputerName = SystemInformation.ComputerName; //设备名称
            user_LongShan = sArray[3].ToString();//用户名
            try
            {
                if (OperationType == 1)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_add", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无新增权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if (OperationType == 3)
                {
                    //判断是否有编辑权限
                    if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_edit", 1, false, user))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无编辑权限!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }else if (OperationType == 4)
                {
                }
                msg2 = "[" + msg2.ToString() + "]";
                List<PM_ProjectReportBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectReportBill_Main>>(msg2);
                int HYear = int.Parse(mainList[0].HDate.Split('-')[0]);
                int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]);
                string HBillType = "4752";
                string HBillSubType = "";
                int HBillStatus = 1;
                int HInterID = mainList[0].HInterID;
                string HBillNo = mainList[0].HBillNo;
                string HDate = mainList[0].HDate;
                int HProID = mainList[0].HProID;
                string HProNumber = mainList[0].HProNumber;
                string HMainSourceBillNo = mainList[0].HMainSourceBillNo;
                string HMainSourceBillType = mainList[0].HMainSourceBillType;
                int HProjectStageID = mainList[0].HProjectStageID;
                string HStageNote = mainList[0].HStageNote;
                string HRelationGoods = mainList[0].HRelationGoods;
                int HIsKey = mainList[0].HIsKey;
                int HReportEmpID = mainList[0].HReportEmpID;
                string HReportNote = mainList[0].HReportNote;
                string HReportGoods = mainList[0].HReportGoods;
                string HReceiveEmp = mainList[0].HReceiveEmp;
                string HCopyEmp = mainList[0].HCopyEmp;
                double HRate = mainList[0].HRate;
                int HOrgID = mainList[0].HOrgID;
                string HRemark = mainList[0].HRemark;
                string HMaker = mainList[0].HMaker;
                string HMakerDate = mainList[0].HMakerDate;
                string HUpdater = mainList[0].HUpdater;
                string HUpdaterDate = mainList[0].HUpdaterDate;
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from PM_ProjectReportBillMain where HBillNo ='" + HBillNo + "'", "PM_ProjectReportBillMain");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from PM_ProjectReportBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_ProjectReportBillMain");
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    string sql = "insert into PM_ProjectReportBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate" +
                        ",HProNumber,HProjectStageID,HStageNote,HRelationGoods,HIsKey,HReportEmpID,HReportNote,HReportGoods,HReceiveEmp,HCopyEmp,HRate,HOrgID) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "','" + HProNumber +
                        "'," + HProjectStageID +
                        ",'" + HStageNote +
                        "','" + HRelationGoods +
                        "'," + HIsKey +
                        "," + HReportEmpID +
                        ",'" + HReportNote +
                        "','" + HReportGoods +
                        "','" + HReceiveEmp +
                        "','" + HCopyEmp +
                        "'," + HRate +
                        "," + HOrgID +
                        ")";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增项目阶段汇报:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增项目阶段汇报:" + HBillNo + "','LMES-项目阶段汇报模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)                    //编辑
                {
                    string sql = "update PM_ProjectReportBillMain set " +
                        "HYear = " + HYear +
                        ",HPeriod = " + HPeriod +
                        ",HBillType = '" + HBillType +
                        "',HBillSubType = '" + HBillSubType +
                        "',HDate = '" + HDate +
                        "',HBillNo = '" + HBillNo +
                        "',HBillStatus = " + HBillStatus +
                        ",HRemark = '" + HRemark +
                        "',HUpdater = '" + HUpdater +
                        "',HUpdateDate = '" + HUpdaterDate +
                        "',HProNumber = '" + HProNumber +
                        "',HProjectStageID = " + HProjectStageID +
                        ",HStageNote = '" + HStageNote +
                        "',HRelationGoods = '" + HRelationGoods +
                        "',HIsKey = " + HIsKey +
                        ",HReportEmpID = " + HReportEmpID +
                        ",HReportNote = '" + HReportNote +
                        "',HReportGoods = '" + HReportGoods +
                        "',HReceiveEmp = '" + HReceiveEmp +
                        "',HCopyEmp = '" + HCopyEmp +
                        "',HRate = " + HRate +
                        ",HOrgID = " + HOrgID +
                        " where HInterID = " + HInterID;
                    oCN.RunProc(sql);
                    //删除子表
                    oCN.RunProc("delete from PM_ProjectReportBillSub where HInterID='" + HInterID + "'");
                    //记录日志
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改项目阶段汇报:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改项目阶段汇报:" + HBillNo + "','LMES-项目阶段汇报模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }else if(OperationType == 4 && ds.Tables[0].Rows.Count == 0 )           //下推-新增
                {
                    string sql = "insert into PM_ProjectReportBillMain" +
                        "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate" +
                        ",HProNumber,HProjectStageID,HStageNote,HRelationGoods,HIsKey,HReportEmpID,HReportNote,HReportGoods,HReceiveEmp,HCopyEmp,HRate,HOrgID,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType,HMainSourceBillNo) " +
                        "values(" +
                        "" + HYear +
                        "," + HPeriod +
                        ",'" + HBillType +
                        "','" + HBillSubType +
                        "'," + HInterID +
                        ",'" + HDate +
                        "','" + HBillNo +
                        "'," + HBillStatus +
                        ",'" + HRemark +
                        "','" + HMaker +
                        "','" + HMakerDate +
                        "','" + HProNumber +
                        "'," + HProjectStageID +
                        ",'" + HStageNote +
                        "','" + HRelationGoods +
                        "'," + HIsKey +
                        "," + HReportEmpID +
                        ",'" + HReportNote +
                        "','" + HReportGoods +
                        "','" + HReceiveEmp +
                        "','" + HCopyEmp +
                        "'," + HRate +
                        "," + HOrgID +
                        "," + HProID +
                        "," + HProjectStageID +
                        ",'" + HMainSourceBillType +
                        "','" + HMainSourceBillNo +
                        "')";
                    //主表
                    oCN.RunProc(sql);
                    LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增项目阶段汇报:" + HBillNo);
                    oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增项目阶段汇报:" + HBillNo + "','LMES-项目阶段汇报模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //保存子表
                objJsonResult = AddBillSub_ProjectReportBill(msg3, HInterID, HBillNo, OperationType,HProID, HProjectStageID, HMainSourceBillType, HMainSourceBillNo);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = objJsonResult.Message;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = null;
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ·»åŠ é¡¹ç›®é˜¶æ®µæ¸…å• å­è¡¨
        public json AddBillSub_ProjectReportBill(string msg3, long HInterID, string HBillNo, int OperationType, int HSourceInterID, int HSourceEntryID, string HSourceBillType, string HSourceBillNo)
        {
            List<PM_ProjectReportBill_Sub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectReportBill_Sub>>(msg3);
            int i = 0;                                          //作为子表内码
            if(OperationType == 4)
            {
                foreach (PM_ProjectReportBill_Sub oSub in DetailColl)
                {
                    i++;                                            //同一个主表下的子表的内码自增
                    int HEntryID = i;
                    int HEmpID = oSub.HEmpID;
                    int HIsPM = oSub.HIsPM ? 1 : 0;
                    double HRate = oSub.HRate;
                    double HAvgMoney = oSub.HAvgMoney;
                    double HCountMoney = oSub.HCountMoney;
                    string HRemarkSub = oSub.HRemarkSub;
                    string sql = "insert into PM_ProjectReportBillSub" +
                        "(HInterID,HBillNo_bak,HEntryID,HRemark,HEmpID,HIsPM,HRate,HAvgMoney,HCountMoney,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo) " +
                        "values(" +
                        "" + HInterID +
                        ",'" + HBillNo +
                        "'," + HEntryID +
                        ",'" + HRemarkSub +
                        "'," + HEmpID +
                        "," + HIsPM +
                        "," + HRate +
                        "," + HAvgMoney +
                        "," + HCountMoney +
                        "," + HSourceInterID +
                        "," + HSourceEntryID +
                        ",'" + HSourceBillType +
                        "','" + HSourceBillNo +
                        "')";
                    oCN.RunProc(sql);
                }
            }
            else
            {
                foreach (PM_ProjectReportBill_Sub oSub in DetailColl)
                {
                    i++;                                            //同一个主表下的子表的内码自增
                    int HEntryID = i;
                    int HEmpID = oSub.HEmpID;
                    int HIsPM = oSub.HIsPM ? 1 : 0;
                    double HRate = oSub.HRate;
                    double HAvgMoney = oSub.HAvgMoney;
                    double HCountMoney = oSub.HCountMoney;
                    string HRemarkSub = oSub.HRemarkSub;
                    string sql = "insert into PM_ProjectReportBillSub" +
                        "(HInterID,HBillNo_bak,HEntryID,HRemark,HEmpID,HIsPM,HRate,HAvgMoney,HCountMoney) " +
                        "values(" +
                        "" + HInterID +
                        ",'" + HBillNo +
                        "'," + HEntryID +
                        ",'" + HRemarkSub +
                        "'," + HEmpID +
                        "," + HIsPM +
                        "," + HRate +
                        "," + HAvgMoney +
                        "," + HCountMoney +
                        ")";
                    oCN.RunProc(sql);
                }
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ æŸ¥è¯¢
        /// <summary>
        /// è¿”回项目阶段列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectReportBill/list")]
        [HttpGet]
        public object getProjectReportBill(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_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_PM_ProjectReportBillList order by å•据号 ", "h_v_PM_ProjectReportBillList");
                }
                else
                {
                    string sql1 = "select * from h_v_PM_ProjectReportBillList where 1 = 1 ";
                    string sql = sql1 + sWhere + " order by å•据号 ";
                    ds = oCN.RunProcReturn(sql, "h_v_PM_ProjectReportBillList");
                }
                //添加列名
                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 = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ¸…单 ç¼–辑-页面赋值
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectReportBill/editInit")]
        [HttpGet]
        public object getProjectReportBilleditInit(string HInterID, string user)
        {
            try
            {
                List<DataTable> tableList = new List<DataTable>();
                //查看权限
                //if (!DBUtility.ClsPub.Security_Log("Pm_ProjectStageBill_edit", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("exec h_p_PM_ProjectReportBill_EditInit " + HInterID, "h_p_PM_ProjectReportBill_EditInit");
                tableList.Add(ds.Tables[0]);
                tableList.Add(ds.Tables[1]);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = tableList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ åˆ é™¤
        /// <summary>
        ///参数:string HInterID。
        ///返回值:object。
        /// </summary>
        [Route("PM_ProjectReportBill/delete")]
        [HttpGet]
        public object deleteProjectReportBill(string HInterID, string user)
        {
            try
            {
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_delete", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HInterID == null || HInterID.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                oCN.RunProc("delete from PM_ProjectReportBillMain where HInterID = " + HInterID);
                oCN.RunProc("delete from PM_ProjectReportBillSub where HInterID='" + HInterID + "'");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ å®¡æ ¸/反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("PM_ProjectReportBill/AuditPM_ProjectReportBill")]
        [HttpGet]
        public object AuditPM_ProjectReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有审核权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_Check", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限审核!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å®¡æ ¸  2  åå®¡æ ¸
                if (Type == 1)
                {
                    //判断单据是否已经审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不需要再审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反审核
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反审核!不需要再反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反审核单据
                    if (!BillOld.AbandonCheck(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ å…³é—­/反关闭功能
        [Route("PM_ProjectReportBill/ClosePM_ProjectReportBill")]
        [HttpGet]
        public object ClosePM_ProjectReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_Close", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限关闭!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 å…³é—­  2  åå…³é—­
                if (Type == 1)
                {
                    //判断单据是否已经关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已关闭!不需要再关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //关闭单据
                    if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反关闭
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反关闭!不需要再反关闭!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反关闭单据
                    if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region é¡¹ç›®é˜¶æ®µæ±‡æŠ¥ ä½œåºŸ/反作废功能
        [Route("PM_ProjectReportBill/DropPM_ProjectReportBill")]
        [HttpGet]
        public object DropPM_ProjectReportBill(string HInterID, int Type, string user)
        {
            try
            {
                //判断是否有作废权限
                if (!DBUtility.ClsPub.Security_Log("Pm_ProjectReportBill_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无权限作废!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (string.IsNullOrWhiteSpace(HInterID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                BillOld.MvarItemKey = "PM_ProjectReportBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 ä½œåºŸ  2  åä½œåºŸ
                if (Type == 1)
                {
                    //判断单据是否已经作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已作废!不需要再作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //作废单据
                    if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    //判断单据是否已经反作废
                    DataSet ds;
                    string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID;
                    ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey);
                    if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已反作废!不需要再反作废!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    //反作废单据
                    if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "执行失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,84 +4,84 @@
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>E:\网站发布\API</_PublishTargetUrl>
    <History>True|2023-07-04T05:07:10.1209516Z;True|2023-06-30T16:11:25.7541580+08:00;True|2023-06-30T15:39:26.6678989+08:00;True|2023-06-30T15:26:40.6581344+08:00;True|2023-06-30T15:12:57.9906312+08:00;True|2023-06-29T16:39:15.6477820+08:00;True|2023-06-28T17:01:51.9542466+08:00;True|2023-06-27T15:03:28.1320450+08:00;True|2023-06-27T13:36:39.6707848+08:00;True|2023-06-26T09:40:01.1754706+08:00;True|2023-06-25T12:16:28.9080024+08:00;True|2023-06-25T11:51:59.9238461+08:00;True|2023-06-25T11:50:29.3100358+08:00;True|2023-06-25T11:29:28.5338563+08:00;True|2023-06-25T09:10:26.2420288+08:00;True|2023-06-25T09:08:15.0702872+08:00;True|2023-06-25T08:43:15.0806611+08:00;True|2023-06-25T08:41:41.8156616+08:00;True|2023-06-25T08:39:30.6818013+08:00;True|2023-06-25T08:38:18.5996529+08:00;True|2023-06-25T08:36:34.1479706+08:00;True|2023-06-25T08:34:53.9856289+08:00;True|2023-06-25T08:31:24.0298080+08:00;True|2023-06-25T08:15:45.7453280+08:00;True|2023-06-25T08:01:52.7609075+08:00;True|2023-06-24T21:25:23.8938665+08:00;True|2023-06-22T03:02:26.7305758+08:00;True|2023-06-22T02:10:48.8222890+08:00;True|2023-06-22T01:57:41.7875184+08:00;True|2023-06-22T01:52:19.4217362+08:00;True|2023-06-21T16:27:15.1464129+08:00;True|2023-06-21T16:11:46.6111817+08:00;True|2023-06-21T13:14:00.6869253+08:00;True|2023-06-21T13:09:28.2689225+08:00;True|2023-06-21T12:24:02.6762426+08:00;True|2023-06-21T12:18:06.2748924+08:00;True|2023-06-21T11:18:02.6754143+08:00;True|2023-06-21T11:08:34.2149469+08:00;True|2023-06-21T08:20:50.0079906+08:00;True|2023-06-20T15:56:03.2638713+08:00;True|2023-06-20T15:48:38.2419545+08:00;True|2023-06-20T15:35:26.6615171+08:00;True|2023-06-20T15:20:31.9284860+08:00;True|2023-06-20T15:18:39.8265469+08:00;True|2023-06-20T15:09:16.7617272+08:00;True|2023-06-20T09:53:23.2658672+08:00;True|2023-06-16T10:00:58.0337616+08:00;True|2023-06-16T09:47:58.8912904+08:00;True|2023-06-16T09:26:36.4914832+08:00;True|2023-06-15T16:22:21.4509393+08:00;True|2023-06-12T13:21:12.0491357+08:00;True|2023-06-12T10:18:32.9287587+08:00;True|2023-06-09T16:22:24.1132267+08:00;True|2023-06-08T18:12:42.4814009+08:00;True|2023-06-08T11:08:48.0533571+08:00;True|2023-06-08T10:41:43.0121701+08:00;False|2023-06-08T10:40:19.2093235+08:00;True|2023-06-06T13:03:50.8124200+08:00;True|2023-06-05T10:12:24.1858209+08:00;True|2023-06-02T17:02:57.5817094+08:00;True|2023-05-26T13:54:40.2272218+08:00;True|2023-05-24T12:43:50.2427994+08:00;True|2023-05-24T12:34:24.3922836+08:00;True|2023-05-24T10:07:19.4995219+08:00;True|2023-05-24T09:21:29.1960080+08:00;True|2023-05-23T22:34:23.3220912+08:00;True|2023-05-23T22:01:14.4175449+08:00;True|2023-05-23T17:02:53.0308400+08:00;True|2023-05-23T16:30:11.7138623+08:00;True|2023-05-23T15:51:50.0152484+08:00;True|2023-05-23T15:50:52.0657433+08:00;True|2023-05-23T15:28:25.5802377+08:00;True|2023-05-23T15:25:56.4633020+08:00;True|2023-05-23T14:52:29.8759921+08:00;True|2023-05-23T14:48:44.6519763+08:00;True|2023-05-20T04:28:10.3108871+08:00;True|2023-05-20T03:56:22.7233820+08:00;True|2023-05-20T03:47:38.4405026+08:00;True|2023-05-20T03:46:40.6056451+08:00;True|2023-05-20T03:44:25.0883888+08:00;True|2023-05-20T03:41:10.1148691+08:00;True|2023-05-20T02:34:14.3757035+08:00;True|2023-05-20T02:27:50.5595075+08:00;True|2023-05-20T02:23:04.2256041+08:00;True|2023-05-20T01:46:59.9534021+08:00;True|2023-05-20T01:42:33.5106065+08:00;True|2023-05-20T01:40:39.6918060+08:00;True|2023-05-20T01:11:47.7436847+08:00;True|2023-05-20T01:03:58.9476094+08:00;True|2023-05-19T22:59:47.4591129+08:00;True|2023-05-19T22:34:44.7988447+08:00;True|2023-05-19T22:24:55.2320279+08:00;True|2023-05-19T21:40:19.5285575+08:00;True|2023-05-19T21:38:21.2073338+08:00;True|2023-05-19T20:54:59.2058809+08:00;True|2023-05-19T16:08:15.0151080+08:00;True|2023-05-19T15:26:16.2836301+08:00;True|2023-05-19T13:09:06.1592914+08:00;True|2023-05-19T12:24:23.6252771+08:00;True|2023-05-19T11:50:53.8948740+08:00;True|2023-05-19T11:43:57.9296933+08:00;True|2023-05-19T10:44:34.9904463+08:00;True|2023-05-19T09:32:02.1216663+08:00;False|2023-05-19T09:31:06.4251757+08:00;True|2023-05-18T22:34:36.5292968+08:00;True|2023-05-18T20:37:59.7940567+08:00;True|2023-05-18T20:36:35.2790349+08:00;True|2023-05-18T20:34:10.7400457+08:00;True|2023-05-18T20:32:43.8790879+08:00;True|2023-05-18T20:31:13.5389643+08:00;True|2023-05-18T20:29:19.6206139+08:00;True|2023-05-18T20:07:25.5074263+08:00;True|2023-05-18T18:19:43.5324315+08:00;True|2023-05-18T18:15:36.4290026+08:00;True|2023-05-18T18:12:31.8703551+08:00;True|2023-05-18T18:10:52.9289531+08:00;True|2023-05-18T18:09:23.9118797+08:00;True|2023-05-18T17:58:30.8068228+08:00;True|2023-05-18T17:56:55.8055382+08:00;False|2023-05-18T17:54:54.7950789+08:00;False|2023-05-18T17:11:18.2325105+08:00;True|2023-05-18T17:09:24.4186482+08:00;True|2023-05-18T17:06:32.0699130+08:00;False|2023-05-18T17:01:41.8164925+08:00;False|2023-05-18T16:59:32.1112741+08:00;True|2023-05-18T16:58:34.1784100+08:00;True|2023-05-18T16:56:36.9460541+08:00;True|2023-05-18T16:55:00.9843495+08:00;True|2023-05-18T16:49:04.0161640+08:00;True|2023-05-18T16:48:28.9011382+08:00;True|2023-05-18T16:44:52.0675900+08:00;False|2023-05-18T16:44:37.3514214+08:00;False|2023-05-18T16:43:23.3343369+08:00;True|2023-05-18T16:41:35.8818611+08:00;True|2023-05-18T16:25:43.5167900+08:00;False|2023-05-18T16:24:46.6646890+08:00;False|2023-05-18T16:19:55.4153618+08:00;False|2023-05-18T16:16:18.0052881+08:00;False|2023-05-18T16:14:32.3377278+08:00;True|2023-05-17T15:43:45.1868569+08:00;True|2023-05-17T15:35:42.2476880+08:00;True|2023-05-17T14:23:28.2390957+08:00;True|2023-05-17T13:54:00.6756387+08:00;True|2023-05-17T13:45:46.1115068+08:00;True|2023-05-17T07:57:34.7129429+08:00;True|2023-05-16T16:04:20.3198005+08:00;False|2023-05-16T16:03:52.0737233+08:00;True|2023-05-16T15:28:45.4945726+08:00;True|2023-05-16T15:14:10.4952128+08:00;True|2023-05-16T15:04:46.5706346+08:00;True|2023-05-16T14:46:48.7034492+08:00;True|2023-05-16T14:45:29.4047499+08:00;True|2023-05-16T14:42:47.3507679+08:00;True|2023-05-16T14:30:47.9199224+08:00;True|2023-05-16T14:29:10.9147184+08:00;True|2023-05-16T14:27:48.3632687+08:00;True|2023-05-16T14:24:44.6240034+08:00;True|2023-05-16T14:19:41.2962188+08:00;True|2023-05-16T13:41:13.3366211+08:00;True|2023-05-16T13:26:44.1532655+08:00;True|2023-05-16T13:23:40.2882422+08:00;True|2023-05-16T13:11:41.5416792+08:00;True|2023-05-16T13:08:41.6341863+08:00;True|2023-05-16T13:04:35.6916867+08:00;True|2023-05-16T13:00:34.6889598+08:00;True|2023-05-16T12:57:48.4561274+08:00;True|2023-05-16T12:50:57.7405833+08:00;True|2023-05-16T12:49:33.8394829+08:00;True|2023-05-16T12:44:28.6906226+08:00;True|2023-05-16T12:41:08.3554032+08:00;True|2023-05-16T12:32:32.3448036+08:00;True|2023-05-16T11:32:04.4504376+08:00;True|2023-05-15T18:39:28.9172042+08:00;True|2023-05-15T18:35:41.5268755+08:00;True|2023-05-15T18:16:16.2900985+08:00;True|2023-04-28T16:24:40.7430596+08:00;False|2023-04-28T16:21:34.8499384+08:00;True|2023-04-28T15:43:40.3023318+08:00;True|2023-04-28T15:41:18.8228620+08:00;True|2023-04-28T14:16:21.1595325+08:00;True|2023-04-28T10:27:55.2150739+08:00;True|2023-04-12T16:25:26.5218825+08:00;True|2023-04-12T15:45:29.3993255+08:00;True|2023-04-12T14:00:18.1960878+08:00;True|2023-04-12T13:16:39.0804178+08:00;True|2023-04-11T11:02:27.5200402+08:00;True|2023-04-11T09:57:11.5903829+08:00;True|2023-04-10T09:58:01.1775220+08:00;True|2023-03-13T11:19:32.0927720+08:00;True|2023-03-13T10:39:50.9250037+08:00;True|2023-03-13T08:54:57.5891390+08:00;True|2023-03-10T09:00:31.2441735+08:00;True|2023-03-08T08:25:11.1877416+08:00;True|2023-03-06T09:18:03.5502956+08:00;True|2023-03-06T09:14:57.8192971+08:00;True|2023-01-11T13:30:27.8190489+08:00;True|2023-01-06T14:29:14.6067256+08:00;True|2022-12-23T17:06:52.0688439+08:00;True|2022-12-23T16:12:04.4155951+08:00;True|2022-12-23T13:35:44.6439326+08:00;True|2022-11-30T08:24:02.9999976+08:00;True|2022-11-30T08:01:51.4579972+08:00;True|2022-11-29T21:32:14.4359673+08:00;True|2022-11-29T19:30:22.9466023+08:00;True|2022-11-29T19:24:30.1630119+08:00;True|2022-11-29T17:31:43.1926801+08:00;True|2022-11-29T17:14:32.5869985+08:00;True|2022-11-29T10:42:57.1877576+08:00;True|2022-11-27T14:40:28.4784748+08:00;True|2022-11-26T20:49:34.2789400+08:00;True|2022-11-26T19:24:58.9988205+08:00;True|2022-11-26T15:33:08.6274944+08:00;True|2022-11-26T14:37:46.3953592+08:00;True|2022-11-26T09:16:41.7487240+08:00;True|2022-11-24T09:49:50.7302637+08:00;True|2022-11-23T16:24:56.5946914+08:00;True|2022-11-23T16:19:57.5570583+08:00;True|2022-11-23T15:05:13.8032246+08:00;True|2022-11-22T20:24:39.7324815+08:00;True|2022-11-22T13:18:16.2143925+08:00;False|2022-11-22T13:12:53.0448580+08:00;True|2022-11-22T11:03:01.7571733+08:00;True|2022-11-21T13:20:11.1961237+08:00;True|2022-11-21T13:13:52.0360749+08:00;True|2022-11-18T15:48:13.0747365+08:00;True|2022-11-18T14:15:54.5626901+08:00;True|2022-11-17T18:41:26.5464503+08:00;True|2022-11-15T13:55:35.3496366+08:00;True|2022-11-15T11:03:23.6773297+08:00;True|2022-11-15T10:58:47.9703720+08:00;True|2022-11-15T10:12:27.8305782+08:00;True|2022-11-15T09:47:26.7480777+08:00;True|2022-11-15T08:55:44.0275263+08:00;True|2022-11-15T08:54:06.6396851+08:00;True|2022-11-15T08:44:18.2013404+08:00;True|2022-11-15T01:16:19.8154538+08:00;True|2022-11-15T01:15:03.7846810+08:00;True|2022-11-15T01:01:11.0318599+08:00;True|2022-11-15T00:30:33.7148460+08:00;True|2022-11-15T00:15:26.5178283+08:00;True|2022-11-14T23:54:32.6128172+08:00;True|2022-11-14T23:26:52.0335380+08:00;True|2022-11-14T22:21:28.0622050+08:00;True|2022-11-14T21:47:43.6964619+08:00;True|2022-11-14T21:41:42.3128804+08:00;True|2022-11-14T21:31:17.2784203+08:00;True|2022-11-14T20:48:20.0380343+08:00;True|2022-11-11T17:24:44.7029993+08:00;True|2022-11-11T16:47:29.3444029+08:00;True|2022-11-11T16:07:26.4718473+08:00;True|2022-11-11T15:52:41.7235701+08:00;True|2022-11-10T15:58:10.8883176+08:00;True|2022-11-10T15:29:59.3113740+08:00;True|2022-11-10T13:34:14.7380132+08:00;True|2022-11-10T10:28:02.1166569+08:00;True|2022-11-09T23:28:25.6401971+08:00;True|2022-11-09T16:20:53.2757536+08:00;True|2022-11-09T16:16:41.3169214+08:00;True|2022-11-09T14:02:55.1802832+08:00;True|2022-11-09T13:57:55.2726154+08:00;True|2022-11-09T13:28:53.2022669+08:00;True|2022-11-09T13:10:58.0740163+08:00;True|2022-11-09T12:59:42.2328933+08:00;True|2022-11-09T11:54:08.0187924+08:00;True|2022-11-09T11:49:32.4296758+08:00;True|2022-11-09T11:34:32.6613370+08:00;True|2022-11-09T11:06:56.9443306+08:00;True|2022-11-06T23:43:44.0833657+08:00;True|2022-11-06T23:29:52.0088244+08:00;True|2022-11-06T22:06:14.7091464+08:00;True|2022-11-06T22:03:25.2696951+08:00;True|2022-11-06T21:58:50.1055520+08:00;True|2022-11-06T21:54:14.0075395+08:00;True|2022-11-06T21:39:30.2652105+08:00;True|2022-11-04T15:54:37.9813194+08:00;True|2022-11-04T15:43:59.7702621+08:00;True|2022-11-04T13:59:29.3941234+08:00;True|2022-11-04T13:44:18.1212719+08:00;True|2022-11-04T13:42:06.1010393+08:00;True|2022-11-04T13:37:01.7814703+08:00;True|2022-11-04T13:35:43.1121709+08:00;True|2022-11-04T13:33:05.1362535+08:00;True|2022-11-04T13:30:11.1113703+08:00;True|2022-11-04T13:28:53.7185382+08:00;True|2022-11-04T13:27:08.0691684+08:00;True|2022-11-04T13:20:46.2297633+08:00;True|2022-11-04T13:17:57.1564250+08:00;True|2022-11-04T13:15:36.3651019+08:00;True|2022-11-04T13:13:44.6635701+08:00;True|2022-11-04T13:12:02.3968306+08:00;True|2022-11-04T13:08:07.7653927+08:00;True|2022-11-04T11:37:44.1975649+08:00;True|2022-11-04T11:36:20.3813848+08:00;True|2022-11-04T11:26:40.9713465+08:00;True|2022-11-04T10:17:36.4269558+08:00;True|2022-11-04T09:47:05.4607111+08:00;True|2022-11-04T09:28:27.9347785+08:00;True|2022-11-04T08:38:38.5253737+08:00;True|2022-11-03T13:31:32.7883545+08:00;False|2022-11-03T13:27:07.8579021+08:00;True|2022-11-03T11:07:07.3903101+08:00;True|2022-11-03T10:54:26.7818816+08:00;True|2022-11-03T10:35:59.1956262+08:00;True|2022-11-03T10:30:07.0651285+08:00;True|2022-11-03T10:01:20.8467911+08:00;True|2022-08-22T11:13:33.9211829+08:00;True|2022-06-17T11:19:24.4893458+08:00;True|2022-06-07T14:44:51.5702202+08:00;True|2022-06-07T14:42:44.8351600+08:00;True|2022-05-17T14:19:55.1158182+08:00;True|2022-05-17T13:25:44.2886247+08:00;True|2022-05-17T10:29:26.6813564+08:00;True|2022-05-17T09:02:49.1742018+08:00;True|2022-05-06T15:13:12.2438900+08:00;True|2022-05-06T14:49:39.8536594+08:00;True|2022-04-22T17:07:44.8823529+08:00;True|2022-04-19T19:13:40.8312746+08:00;True|2022-04-19T15:40:16.0022040+08:00;True|2022-04-19T15:13:32.9767736+08:00;False|2022-04-19T15:08:33.6507639+08:00;True|2022-04-19T15:02:51.9580210+08:00;True|2022-04-19T13:54:18.7579131+08:00;True|2022-04-12T10:36:02.1779173+08:00;True|2022-04-12T10:05:31.0222037+08:00;True|2022-04-12T09:47:49.3724819+08:00;True|2022-04-09T15:08:54.5697468+08:00;True|2022-04-08T17:31:31.0046258+08:00;True|2022-04-08T16:50:41.3018422+08:00;True|2022-04-08T10:35:36.5029980+08:00;True|2022-03-31T09:38:37.3646053+08:00;True|2022-03-29T13:57:45.4410942+08:00;True|2022-03-10T18:59:23.7994337+08:00;True|2022-03-10T18:52:39.5019082+08:00;True|2022-03-10T18:51:12.7949284+08:00;True|2022-03-10T18:50:47.2024177+08:00;True|2022-03-10T18:45:08.8409380+08:00;True|2022-03-10T18:41:17.0102564+08:00;True|2022-03-10T18:35:49.0742353+08:00;True|2022-03-10T17:57:47.4196965+08:00;True|2022-03-10T17:34:27.5723245+08:00;True|2022-03-10T16:13:59.3829164+08:00;True|2022-03-09T14:50:49.1222033+08:00;True|2022-03-09T11:21:03.0073651+08:00;False|2022-03-09T11:16:56.1792896+08:00;False|2022-03-09T11:16:49.7923320+08:00;True|2022-03-08T15:47:47.4722336+08:00;True|2022-03-08T15:47:28.5397115+08:00;True|2022-03-08T15:37:08.7379870+08:00;True|2022-03-02T17:37:54.4659976+08:00;True|2022-03-02T17:34:12.2949726+08:00;True|2022-03-02T17:26:38.7070673+08:00;True|2022-03-02T17:07:49.7024316+08:00;True|2022-03-02T17:05:22.4177336+08:00;True|2022-03-02T16:14:57.9880587+08:00;True|2022-03-01T17:52:52.6766959+08:00;True|2022-02-28T14:36:22.6449303+08:00;True|2022-02-24T15:43:36.8244163+08:00;True|2022-02-23T17:57:14.3693224+08:00;True|2022-02-23T17:46:42.1078183+08:00;False|2022-02-23T17:41:06.5886724+08:00;True|2022-02-23T16:59:45.5533581+08:00;True|2022-02-23T16:57:43.3328895+08:00;True|2022-02-21T09:09:37.2601134+08:00;True|2022-02-21T09:03:32.4071009+08:00;True|2022-02-21T08:59:59.0172082+08:00;True|2022-02-18T14:05:39.1358825+08:00;True|2022-02-18T10:23:02.4391239+08:00;True|2022-02-18T10:21:31.0559267+08:00;True|2022-02-17T16:50:11.7192509+08:00;True|2022-02-17T13:19:13.7697894+08:00;True|2022-02-11T10:36:12.7757100+08:00;True|2022-02-10T10:54:25.2685040+08:00;True|2022-02-10T10:37:02.1034768+08:00;True|2022-02-09T17:32:45.6511283+08:00;True|2022-02-09T17:24:32.5115193+08:00;True|2022-02-09T17:00:24.0662114+08:00;True|2022-02-09T16:56:42.3364622+08:00;True|2022-02-09T14:17:25.8688855+08:00;True|2022-02-09T14:11:51.6149822+08:00;True|2022-02-07T23:29:26.2842648+08:00;True|2022-02-07T23:28:58.8242274+08:00;False|2022-02-07T23:25:29.0647793+08:00;True|2022-02-07T13:06:37.5515985+08:00;True|2022-02-07T12:42:19.5220491+08:00;True|2022-02-07T09:52:59.6728595+08:00;True|2022-02-01T11:32:10.5831557+08:00;True|2022-01-29T14:09:02.9178986+08:00;True|2022-01-28T12:01:45.1416438+08:00;True|2022-01-28T11:03:41.6361866+08:00;True|2022-01-28T10:44:53.5367862+08:00;True|2022-01-28T10:40:41.6697563+08:00;True|2022-01-28T10:25:56.7093616+08:00;True|2022-01-28T09:58:13.0733060+08:00;True|2022-01-27T09:26:29.6568807+08:00;True|2022-01-27T00:47:57.9102528+08:00;True|2022-01-27T00:46:52.8845001+08:00;True|2022-01-27T00:36:34.5330938+08:00;True|2022-01-27T00:35:19.5439329+08:00;True|2022-01-27T00:33:38.5701950+08:00;True|2022-01-27T00:32:00.9028982+08:00;True|2022-01-27T00:30:13.2390921+08:00;True|2022-01-27T00:28:23.2989144+08:00;True|2022-01-27T00:16:01.3789455+08:00;True|2022-01-27T00:09:58.8112352+08:00;True|2022-01-27T00:00:40.8353538+08:00;True|2022-01-26T23:37:50.9494735+08:00;True|2022-01-26T23:29:39.8647473+08:00;True|2022-01-26T23:20:49.3274392+08:00;True|2022-01-26T23:15:53.7037293+08:00;True|2022-01-26T23:06:28.8595953+08:00;True|2022-01-26T23:02:12.9882299+08:00;True|2022-01-26T22:55:33.2535730+08:00;True|2022-01-26T22:51:01.8427947+08:00;True|2022-01-26T22:47:44.0715387+08:00;True|2022-01-26T22:20:21.7217039+08:00;True|2022-01-26T22:13:39.5372069+08:00;True|2022-01-26T22:01:31.2113177+08:00;True|2022-01-26T21:55:26.5478921+08:00;True|2022-01-26T21:50:18.2700369+08:00;True|2022-01-26T21:48:52.0020233+08:00;True|2022-01-26T19:19:29.4530523+08:00;True|2022-01-26T19:07:21.6474231+08:00;True|2022-01-26T18:25:42.2933291+08:00;True|2022-01-26T12:39:02.0149050+08:00;True|2022-01-26T12:13:43.9149452+08:00;True|2022-01-26T11:24:33.5742248+08:00;True|2022-01-26T08:51:10.8105076+08:00;True|2022-01-25T21:07:32.9069261+08:00;True|2022-01-24T01:35:12.3309466+08:00;True|2022-01-23T23:19:15.9702821+08:00;True|2022-01-23T21:50:41.6903353+08:00;True|2022-01-23T21:25:57.6084267+08:00;True|2022-01-23T21:16:10.1516535+08:00;True|2022-01-23T20:52:08.3745284+08:00;True|2022-01-23T18:19:32.2386502+08:00;True|2022-01-23T18:11:42.0830325+08:00;True|2022-01-23T18:00:01.3239547+08:00;True|2022-01-23T12:18:48.2466943+08:00;True|2022-01-22T00:48:50.4531647+08:00;True|2022-01-21T13:10:32.8173598+08:00;True|2022-01-21T13:04:01.6388059+08:00;True|2022-01-21T12:51:40.5304103+08:00;True|2022-01-21T12:44:06.3059885+08:00;True|2022-01-21T12:34:33.9314010+08:00;True|2022-01-21T11:39:20.1088577+08:00;True|2022-01-20T11:33:49.0516846+08:00;True|2022-01-20T10:02:12.0295471+08:00;True|2022-01-20T10:02:03.3535503+08:00;True|2022-01-19T23:56:18.7293193+08:00;True|2022-01-19T22:30:14.6986228+08:00;True|2022-01-19T22:15:08.8608795+08:00;True|2022-01-19T21:57:55.2295030+08:00;True|2022-01-19T13:50:37.8588759+08:00;True|2022-01-19T13:42:52.9761531+08:00;True|2022-01-19T00:26:36.9722917+08:00;True|2022-01-19T00:15:30.8583143+08:00;True|2022-01-18T21:19:30.6193048+08:00;True|2022-01-18T21:12:07.1453825+08:00;True|2022-01-18T20:35:27.3779956+08:00;True|2022-01-18T17:44:45.2318570+08:00;True|2022-01-18T14:45:29.0299640+08:00;True|2022-01-17T22:23:20.8214203+08:00;True|2022-01-17T21:49:15.7740045+08:00;True|2022-01-17T21:47:24.6997598+08:00;True|2022-01-17T21:44:00.1942787+08:00;True|2022-01-17T21:43:15.5992687+08:00;True|2022-01-17T21:33:16.8034756+08:00;True|2022-01-17T21:25:39.9909343+08:00;True|2022-01-17T21:13:03.9659338+08:00;True|2022-01-17T20:32:14.8869091+08:00;True|2022-01-17T19:01:46.5753686+08:00;True|2022-01-17T18:31:24.1032169+08:00;True|2022-01-17T18:21:39.2918684+08:00;True|2022-01-17T18:12:07.4859038+08:00;True|2022-01-17T18:09:26.6989718+08:00;True|2022-01-17T18:04:36.7564997+08:00;True|2022-01-17T17:57:44.7814863+08:00;True|2022-01-17T17:51:50.1516107+08:00;True|2022-01-17T17:39:29.2918799+08:00;True|2022-01-17T14:55:21.5859341+08:00;True|2022-01-17T14:38:06.5091500+08:00;True|2022-01-17T14:30:25.5378436+08:00;True|2022-01-16T19:15:24.5874858+08:00;True|2022-01-16T19:07:49.0613424+08:00;True|2022-01-16T16:10:47.3112741+08:00;False|2022-01-14T19:09:41.9296709+08:00;False|2022-01-14T18:56:11.0569808+08:00;False|2022-01-14T18:28:20.1376762+08:00;False|2022-01-14T18:27:30.8678130+08:00;False|2022-01-14T18:22:45.4436504+08:00;False|2022-01-14T18:19:37.0374753+08:00;False|2022-01-14T18:18:48.5868254+08:00;False|2022-01-14T18:14:02.5810257+08:00;False|2022-01-14T18:09:51.1730754+08:00;False|2022-01-14T18:09:17.8940754+08:00;True|2022-01-13T20:08:16.2937608+08:00;True|2022-01-13T20:07:30.1505466+08:00;True|2022-01-13T13:39:42.0146294+08:00;True|2022-01-13T13:38:07.5062471+08:00;True|2022-01-13T11:29:49.3751232+08:00;True|2022-01-13T11:05:43.9574142+08:00;True|2022-01-13T10:33:23.1921058+08:00;True|2022-01-12T20:38:16.9165651+08:00;True|2022-01-12T20:24:46.3779264+08:00;True|2022-01-12T20:03:06.5030626+08:00;True|2022-01-12T19:44:55.4294326+08:00;True|2022-01-12T12:58:45.9548600+08:00;True|2022-01-12T11:28:44.7797749+08:00;True|2022-01-11T18:07:30.9151356+08:00;True|2022-01-11T15:06:32.7301609+08:00;True|2022-01-11T09:27:00.1766442+08:00;True|2021-12-30T14:41:56.8541015+08:00;True|2021-12-30T13:45:00.6130694+08:00;True|2021-12-30T13:44:18.7370780+08:00;True|2021-12-30T13:36:52.8171136+08:00;True|2021-12-28T19:14:22.5979649+08:00;True|2021-12-28T13:13:39.3543252+08:00;True|2021-12-27T15:31:26.6037782+08:00;True|2021-12-27T15:28:54.4824480+08:00;True|2021-12-27T15:22:47.8436108+08:00;True|2021-12-27T15:04:37.0711590+08:00;True|2021-12-27T15:03:52.0932499+08:00;True|2021-12-27T15:03:33.0172733+08:00;True|2021-12-27T13:28:27.4252747+08:00;True|2021-12-25T19:38:33.6784042+08:00;True|2021-12-24T20:47:43.3471563+08:00;True|2021-12-24T20:14:57.6946814+08:00;True|2021-12-24T19:55:21.1843105+08:00;True|2021-12-24T19:49:54.6719726+08:00;True|2021-12-24T19:38:14.1180741+08:00;True|2021-12-22T13:51:37.1082523+08:00;True|2021-12-21T15:38:59.8015096+08:00;True|2021-12-21T15:29:54.8095063+08:00;False|2021-12-21T15:29:21.7006531+08:00;False|2021-12-21T15:16:18.2218025+08:00;False|2021-12-21T15:11:38.1215841+08:00;False|2021-12-21T15:08:27.0590078+08:00;True|2021-12-10T14:12:36.4065298+08:00;True|2021-12-10T13:54:03.4921778+08:00;True|2021-12-10T13:25:49.0439086+08:00;True|2021-12-10T13:19:58.9494477+08:00;True|2021-12-10T13:10:45.3929017+08:00;True|2021-12-10T11:06:53.2416794+08:00;True|2021-12-07T17:23:28.9380484+08:00;True|2021-12-07T17:13:52.4384814+08:00;True|2021-12-07T16:39:49.2020208+08:00;True|2021-12-07T15:18:20.9024533+08:00;True|2021-12-07T15:07:35.4428035+08:00;True|2021-12-07T15:01:02.0445043+08:00;True|2021-12-07T14:50:08.9019705+08:00;True|2021-12-07T14:34:50.4993666+08:00;False|2021-12-07T14:32:56.0408332+08:00;True|2021-12-06T17:11:41.4004606+08:00;True|2021-12-06T16:48:07.6029757+08:00;True|2021-12-06T13:46:35.9437718+08:00;True|2021-12-06T13:45:07.6622615+08:00;True|2021-12-06T11:25:04.3483155+08:00;True|2021-12-06T11:18:24.5804187+08:00;True|2021-11-22T16:27:05.4241947+08:00;True|2021-11-22T13:40:17.6768280+08:00;True|2021-11-19T16:15:19.9085104+08:00;True|2021-11-09T10:34:21.1623512+08:00;True|2021-11-07T16:57:59.7380254+08:00;True|2021-11-07T16:53:47.4198852+08:00;True|2021-11-07T16:42:05.5096826+08:00;True|2021-11-07T16:37:21.0729013+08:00;True|2021-11-05T20:51:17.6170717+08:00;True|2021-11-05T20:35:14.6250333+08:00;True|2021-11-05T19:30:19.8374158+08:00;True|2021-11-05T19:22:46.2276569+08:00;True|2021-11-05T19:20:30.8253213+08:00;True|2021-11-05T19:16:45.7553310+08:00;True|2021-11-05T19:16:00.4532689+08:00;True|2021-11-05T19:12:25.9022478+08:00;False|2021-11-05T19:11:26.5753529+08:00;True|2021-11-05T19:09:30.0085433+08:00;True|2021-11-05T18:48:19.9395153+08:00;True|2021-11-05T18:45:34.3437897+08:00;True|2021-11-05T18:43:43.4558159+08:00;True|2021-11-05T18:40:40.9948500+08:00;True|2021-11-05T18:34:18.4440455+08:00;True|2021-11-05T15:54:51.6037132+08:00;True|2021-10-28T16:27:53.9728270+08:00;True|2021-10-28T16:03:59.5629998+08:00;True|2021-10-28T08:51:04.2549186+08:00;True|2021-10-27T15:14:53.5506098+08:00;True|2021-10-27T15:00:44.9100320+08:00;True|2021-10-27T13:14:46.7921647+08:00;True|2021-10-27T11:24:49.4550753+08:00;True|2021-10-27T10:10:10.3545125+08:00;True|2021-10-27T10:02:24.9248610+08:00;True|2021-10-27T09:59:40.3795897+08:00;True|2021-10-27T09:56:30.6629207+08:00;True|2021-10-27T09:10:48.3883432+08:00;True|2021-10-27T09:03:31.9191991+08:00;True|2021-10-27T08:59:59.7651159+08:00;True|2021-10-27T08:36:11.8620997+08:00;True|2021-10-27T08:26:40.2533014+08:00;True|2021-10-26T09:19:35.5674748+08:00;True|2021-10-26T09:17:17.6900747+08:00;True|2021-10-26T09:14:32.3999220+08:00;True|2021-10-25T15:08:21.2581763+08:00;True|2021-10-25T10:01:57.8524903+08:00;True|2021-10-25T09:28:51.6294879+08:00;True|2021-10-25T09:25:50.3373336+08:00;True|2021-10-25T09:23:37.0203978+08:00;True|2021-10-25T09:18:23.3380608+08:00;True|2021-10-25T09:15:10.5292071+08:00;True|2021-10-25T08:56:30.4632027+08:00;True|2021-10-25T08:50:11.4697392+08:00;True|2021-10-22T13:46:49.7207066+08:00;True|2021-10-22T10:06:33.3130089+08:00;True|2021-10-20T14:32:10.1235516+08:00;True|2021-10-20T14:16:18.6496291+08:00;True|2021-10-20T14:08:49.2443715+08:00;True|2021-10-20T14:05:14.6847950+08:00;True|2021-10-20T13:30:21.6057636+08:00;True|2021-10-20T10:55:22.2151716+08:00;True|2021-10-19T10:42:13.4198267+08:00;True|2021-10-19T10:01:41.0018108+08:00;True|2021-10-19T09:59:11.2127619+08:00;True|2021-10-19T09:54:04.8472874+08:00;True|2021-10-15T11:19:15.5327495+08:00;True|2021-10-15T11:17:41.0686485+08:00;True|2021-10-15T11:12:11.8295042+08:00;True|2021-10-15T10:33:31.5670079+08:00;True|2021-10-15T10:27:45.0815146+08:00;True|2021-10-14T14:51:28.5331025+08:00;True|2021-10-14T14:37:28.3276051+08:00;True|2021-10-14T14:23:39.0606792+08:00;True|2021-10-14T14:21:03.8140347+08:00;True|2021-10-13T10:31:10.6628977+08:00;True|2021-10-13T10:12:24.4238027+08:00;True|2021-10-13T08:47:43.9314486+08:00;True|2021-10-12T14:07:18.6065183+08:00;True|2021-10-12T10:34:10.1682362+08:00;True|2021-10-12T10:27:14.3073332+08:00;True|2021-10-12T10:22:08.0004619+08:00;True|2021-10-12T10:21:03.0275378+08:00;True|2021-10-12T10:11:54.9812692+08:00;True|2021-10-11T16:59:07.3568342+08:00;True|2021-10-11T16:53:14.2016138+08:00;True|2021-10-11T16:21:35.0133775+08:00;True|2021-10-11T15:34:19.5731935+08:00;True|2021-10-11T15:31:07.5780983+08:00;True|2021-10-11T15:06:47.1145237+08:00;True|2021-10-11T15:03:25.5000280+08:00;True|2021-10-11T10:12:57.6416898+08:00;True|2021-10-09T10:15:17.9235165+08:00;True|2021-10-09T10:13:51.3318441+08:00;True|2021-10-09T10:01:21.6661542+08:00;True|2021-10-09T09:58:41.9225837+08:00;True|2021-10-08T14:56:49.7935800+08:00;True|2021-10-08T14:35:41.4490063+08:00;True|2021-10-08T14:02:42.6990656+08:00;True|2021-09-29T15:48:55.1547397+08:00;True|2021-09-29T15:48:23.5567191+08:00;True|2021-09-27T16:17:35.7180978+08:00;True|2021-09-27T15:51:50.4240134+08:00;True|2021-09-23T20:55:27.3554447+08:00;True|2021-09-23T14:14:44.0572017+08:00;True|2021-09-23T13:51:56.2344673+08:00;True|2021-09-23T10:46:16.7417007+08:00;True|2021-09-23T10:42:23.2117537+08:00;True|2021-09-22T15:21:22.9615672+08:00;True|2021-09-22T14:23:32.7907754+08:00;True|2021-09-22T13:48:03.4780947+08:00;True|2021-09-22T11:05:24.5249356+08:00;True|2021-09-22T10:00:19.0962943+08:00;True|2021-09-22T09:30:26.2686514+08:00;True|2021-09-17T11:22:34.5692792+08:00;True|2021-09-16T16:11:27.5372277+08:00;True|2021-09-16T14:53:40.8396557+08:00;True|2021-09-16T14:32:29.7905500+08:00;True|2021-09-16T14:26:46.2224219+08:00;True|2021-09-16T10:32:24.4244440+08:00;True|2021-09-15T11:10:35.3529360+08:00;True|2021-09-15T11:08:30.0857376+08:00;True|2021-09-15T11:05:56.7191571+08:00;True|2021-09-14T01:24:39.8041136+08:00;True|2021-09-14T01:05:01.1593327+08:00;True|2021-09-14T00:44:14.7233198+08:00;True|2021-09-13T23:48:19.4506233+08:00;True|2021-09-13T20:30:31.3243872+08:00;True|2021-09-13T19:45:35.9108911+08:00;False|2021-09-13T19:44:59.2779092+08:00;True|2021-09-13T18:09:22.4994381+08:00;True|2021-09-10T14:18:27.5788854+08:00;True|2021-09-09T15:57:01.7407207+08:00;True|2021-09-09T15:49:34.2598998+08:00;True|2021-09-09T11:32:10.7853024+08:00;True|2021-09-09T11:10:48.6840025+08:00;True|2021-09-09T10:35:37.3883078+08:00;True|2021-09-07T14:11:49.8497588+08:00;True|2021-09-07T13:34:48.4693349+08:00;True|2021-09-06T14:33:48.7549675+08:00;True|2021-09-03T16:27:51.1888520+08:00;True|2021-09-03T16:19:35.9003465+08:00;True|2021-09-03T15:46:28.1828032+08:00;True|2021-09-03T15:34:21.9362871+08:00;True|2021-09-03T11:24:49.8749819+08:00;True|2021-09-03T11:21:17.8373159+08:00;True|2021-09-03T11:16:53.2208136+08:00;True|2021-09-03T11:12:23.9063804+08:00;True|2021-09-03T09:11:09.2435721+08:00;True|2021-09-02T11:16:15.1370453+08:00;True|2021-09-02T10:35:39.1171879+08:00;True|2021-09-01T10:17:09.4536285+08:00;True|2021-09-01T09:46:28.4581776+08:00;True|2021-08-31T08:54:26.8588887+08:00;True|2021-08-31T08:39:08.3685693+08:00;True|2021-08-30T17:11:56.8438985+08:00;True|2021-08-30T15:59:42.0820292+08:00;True|2021-08-30T15:45:18.1868510+08:00;True|2021-08-30T14:56:08.3958863+08:00;True|2021-08-30T14:37:11.5379830+08:00;True|2021-08-30T14:35:34.8775934+08:00;True|2021-08-30T14:24:36.5111821+08:00;True|2021-08-30T10:05:49.6945200+08:00;True|2021-08-30T10:03:28.4064538+08:00;True|2021-08-30T10:00:16.8360929+08:00;True|2021-08-30T09:56:09.4434379+08:00;True|2021-08-30T09:55:36.1725334+08:00;True|2021-08-30T09:52:04.8600054+08:00;True|2021-08-30T09:47:46.4225655+08:00;True|2021-08-30T09:45:20.4894962+08:00;False|2021-08-27T17:17:34.2646751+08:00;False|2021-08-27T16:01:21.2791979+08:00;False|2021-08-27T15:58:06.9667160+08:00;False|2021-08-27T15:38:37.4818036+08:00;False|2021-08-27T15:21:02.8863114+08:00;False|2021-08-27T15:20:28.6828668+08:00;True|2021-08-26T16:00:44.3162145+08:00;True|2021-08-26T08:57:31.3842587+08:00;True|2021-08-23T08:43:41.1549775+08:00;True|2021-08-22T09:24:12.7210871+08:00;True|2021-08-22T09:19:53.8300229+08:00;True|2021-08-20T20:00:52.0140407+08:00;True|2021-08-20T19:40:14.7712765+08:00;True|2021-08-19T17:37:54.9748049+08:00;True|2021-08-19T17:20:11.0515687+08:00;True|2021-08-19T16:12:35.4392809+08:00;True|2021-08-19T16:06:50.6204587+08:00;True|2021-08-19T16:03:53.0824286+08:00;True|2021-08-19T15:56:01.3498791+08:00;True|2021-08-19T10:18:50.8113630+08:00;True|2021-08-19T09:58:06.2784035+08:00;True|2021-08-19T09:56:54.0619777+08:00;True|2021-08-19T00:32:08.3503093+08:00;True|2021-08-19T00:11:18.3150227+08:00;True|2021-08-19T00:02:49.4827718+08:00;True|2021-08-18T23:54:45.4845900+08:00;True|2021-08-18T23:39:51.6147977+08:00;True|2021-08-18T23:16:42.7214379+08:00;True|2021-08-18T22:38:57.4681929+08:00;True|2021-08-18T21:41:58.7560707+08:00;True|2021-08-18T21:11:52.2369249+08:00;True|2021-08-18T21:01:49.5669106+08:00;True|2021-08-18T20:47:46.5352688+08:00;False|2021-08-18T20:46:36.7956141+08:00;False|2021-08-18T20:46:01.0502138+08:00;True|2021-08-18T19:39:12.8186242+08:00;False|2021-08-18T19:38:12.6839708+08:00;True|2021-08-18T19:15:51.4626694+08:00;True|2021-08-18T16:07:20.4350886+08:00;True|2021-08-18T14:29:41.7171934+08:00;True|2021-08-18T14:20:36.3647361+08:00;True|2021-08-16T09:08:58.3617662+08:00;True|2021-08-15T20:44:29.9214083+08:00;True|2021-08-15T20:36:17.0958549+08:00;True|2021-08-15T20:29:34.3879773+08:00;True|2021-08-15T20:23:47.4052038+08:00;True|2021-08-15T15:01:19.7830862+08:00;True|2021-08-15T12:15:18.3433782+08:00;True|2021-08-13T20:59:11.3947130+08:00;True|2021-08-06T22:49:09.9538339+08:00;True|2021-08-06T22:35:19.0418168+08:00;True|2021-08-06T20:29:47.4241975+08:00;True|2021-08-06T14:08:16.4791827+08:00;True|2021-08-06T13:59:28.9874611+08:00;True|2021-08-06T13:57:34.3723977+08:00;True|2021-08-06T13:36:03.4816652+08:00;True|2021-08-06T12:22:52.5055221+08:00;True|2021-08-06T09:31:58.1272499+08:00;True|2021-08-06T09:26:51.6310039+08:00;True|2021-08-06T09:24:22.2899244+08:00;True|2021-08-06T09:06:30.6477912+08:00;True|2021-08-06T09:00:55.5101612+08:00;True|2021-08-06T08:49:59.9616490+08:00;True|2021-08-06T08:45:18.8586902+08:00;True|2021-08-05T20:09:25.8861998+08:00;True|2021-08-04T19:14:27.2396953+08:00;True|2021-08-04T19:11:47.5849093+08:00;True|2021-08-04T16:42:54.0149043+08:00;True|2021-08-04T15:02:11.5056561+08:00;True|2021-08-04T14:58:37.1435509+08:00;True|2021-08-04T14:55:34.7380132+08:00;True|2021-08-04T14:47:42.5933921+08:00;True|2021-08-04T14:45:17.9911874+08:00;True|2021-08-04T13:52:20.9601351+08:00;True|2021-08-04T09:48:28.8796992+08:00;True|2021-08-03T18:14:13.1894998+08:00;True|2021-08-03T17:45:35.1349721+08:00;True|2021-08-03T17:21:52.6028977+08:00;True|2021-08-03T17:20:35.4423020+08:00;True|2021-08-03T17:03:33.1667669+08:00;True|2021-08-03T17:01:54.2656787+08:00;True|2021-08-03T17:00:22.2778374+08:00;True|2021-08-03T16:56:58.8902582+08:00;True|2021-08-03T15:02:21.8601533+08:00;True|2021-08-03T14:57:34.0186758+08:00;True|2021-08-03T14:28:47.2242515+08:00;True|2021-08-03T14:22:22.4554236+08:00;True|2021-08-03T14:21:51.1339715+08:00;True|2021-08-03T13:37:33.9697131+08:00;True|2021-08-03T13:28:29.7591095+08:00;True|2021-08-03T11:35:09.5118324+08:00;True|2021-08-03T11:11:23.3051573+08:00;True|2021-08-02T13:14:42.3663755+08:00;True|2021-07-30T22:50:19.9749878+08:00;True|2021-07-30T22:49:31.2150970+08:00;True|2021-07-28T19:12:05.8381075+08:00;True|2021-07-28T18:59:45.4808797+08:00;True|2021-07-28T18:15:58.8301509+08:00;True|2021-07-28T18:04:54.8613546+08:00;True|2021-07-28T17:53:48.6225611+08:00;True|2021-07-28T17:42:50.9171563+08:00;True|2021-07-28T17:17:16.3137677+08:00;True|2021-07-28T17:11:46.8925200+08:00;True|2021-07-28T16:28:27.6823943+08:00;True|2021-07-28T16:23:00.3385836+08:00;True|2021-07-28T09:57:55.4237411+08:00;True|2021-07-28T08:38:29.6691541+08:00;True|2021-07-27T23:16:32.0331671+08:00;True|2021-07-27T23:06:08.1947249+08:00;True|2021-07-27T23:05:58.4619176+08:00;True|2021-07-27T18:42:09.5358261+08:00;True|2021-07-27T18:30:04.8532823+08:00;True|2021-07-27T18:29:43.5775092+08:00;True|2021-07-27T15:16:49.8356224+08:00;True|2021-07-27T15:05:27.8453220+08:00;True|2021-07-27T14:59:15.9519440+08:00;True|2021-07-27T09:23:32.6111337+08:00;True|2021-07-27T08:27:41.6395353+08:00;True|2021-07-27T08:25:56.7378296+08:00;True|2021-07-26T11:18:46.0856966+08:00;True|2021-07-26T11:18:02.0751924+08:00;True|2021-07-26T11:13:49.6285395+08:00;True|2021-07-21T21:08:25.9898902+08:00;True|2021-07-21T20:09:26.2258104+08:00;True|2021-07-13T16:17:25.8407435+08:00;True|2021-07-13T13:46:13.4309531+08:00;True|2021-07-13T12:29:04.5082461+08:00;True|2021-06-29T13:55:01.6864637+08:00;True|2021-06-29T10:38:52.2206472+08:00;True|2021-06-29T10:10:13.1540749+08:00;True|2021-06-28T14:37:56.3853273+08:00;False|2021-06-28T14:36:57.5726124+08:00;True|2021-06-25T14:17:57.5196108+08:00;True|2021-06-25T13:56:38.9522535+08:00;True|2021-06-24T19:38:32.8766933+08:00;True|2021-06-24T18:26:35.6118833+08:00;True|2021-06-24T18:02:52.8136877+08:00;True|2021-06-24T17:48:49.5851948+08:00;True|2021-06-24T17:45:46.7527572+08:00;True|2021-06-24T15:05:20.1592723+08:00;True|2021-06-23T16:18:15.6814625+08:00;True|2021-06-23T16:05:24.6112343+08:00;True|2021-06-23T15:14:08.2489658+08:00;True|2021-06-23T13:52:58.6029788+08:00;True|2021-06-22T16:11:20.4726923+08:00;True|2021-06-22T16:04:53.7231389+08:00;True|2021-06-22T15:50:59.2583262+08:00;True|2021-06-22T15:38:15.3016140+08:00;True|2021-06-22T15:34:42.9185543+08:00;True|2021-06-22T15:21:55.1419108+08:00;True|2021-06-22T15:07:21.5357494+08:00;True|2021-06-22T15:03:35.0535733+08:00;True|2021-06-22T14:54:47.8802969+08:00;True|2021-06-22T11:19:38.7303011+08:00;True|2021-06-22T08:53:49.2882695+08:00;True|2021-06-22T08:47:54.8286530+08:00;True|2021-06-21T16:27:19.3017700+08:00;True|2021-06-21T15:32:28.7237952+08:00;True|2021-06-21T12:34:02.6329555+08:00;True|2021-06-21T12:24:17.5427495+08:00;True|2021-06-21T10:47:30.6423502+08:00;True|2021-06-21T08:43:20.3026558+08:00;True|2021-06-19T15:10:06.8335499+08:00;True|2021-06-18T15:37:29.5009930+08:00;True|2021-06-18T13:46:35.6283432+08:00;True|2021-06-18T10:00:37.1474954+08:00;True|2021-06-18T09:55:21.8551780+08:00;True|2021-06-18T09:22:27.8432927+08:00;True|2021-06-17T11:17:43.2166430+08:00;True|2021-06-17T09:24:09.8350403+08:00;True|2021-06-16T16:10:47.8564888+08:00;True|2021-06-16T16:04:09.8286582+08:00;True|2021-06-16T15:12:29.9427169+08:00;True|2021-06-16T14:58:45.6801892+08:00;True|2021-06-16T14:46:01.6873221+08:00;True|2021-06-16T11:02:06.1272477+08:00;True|2021-06-16T09:33:56.0223915+08:00;True|2021-06-16T08:50:07.6995413+08:00;True|2021-06-16T08:28:38.7692635+08:00;True|2021-06-16T01:04:19.6282474+08:00;True|2021-06-16T01:03:50.5058323+08:00;False|2021-06-16T01:02:15.3819672+08:00;False|2021-06-16T01:01:38.6171098+08:00;True|2021-06-16T00:34:54.9902044+08:00;True|2021-06-15T23:55:36.2003828+08:00;True|2021-06-15T22:47:17.2192750+08:00;True|2021-06-15T22:42:41.1512585+08:00;True|2021-06-15T22:38:01.7390462+08:00;True|2021-06-15T22:14:11.2060782+08:00;True|2021-06-15T22:12:27.0615357+08:00;True|2021-06-15T22:07:59.9280871+08:00;True|2021-06-15T22:04:21.5051427+08:00;True|2021-06-15T21:25:55.0099814+08:00;True|2021-06-15T19:13:51.3494172+08:00;True|2021-06-15T19:02:17.6844742+08:00;True|2021-06-15T18:47:37.1629411+08:00;False|2021-06-15T18:47:11.0828111+08:00;True|2021-06-15T18:38:26.6620668+08:00;True|2021-06-15T18:33:45.2069831+08:00;True|2021-06-15T18:24:52.0550838+08:00;True|2021-06-15T18:19:43.6999796+08:00;True|2021-06-15T18:08:17.2464506+08:00;True|2021-06-15T18:03:51.3952624+08:00;True|2021-06-15T18:01:20.6141766+08:00;True|2021-06-15T17:59:04.4479416+08:00;True|2021-06-15T17:41:44.6389379+08:00;True|2021-06-15T17:39:03.1565124+08:00;True|2021-06-15T17:34:41.0634638+08:00;True|2021-06-15T17:33:50.4853178+08:00;True|2021-06-15T17:25:38.5914037+08:00;True|2021-06-15T17:22:21.3611360+08:00;True|2021-06-15T17:16:49.4970813+08:00;True|2021-06-15T17:05:28.9389484+08:00;True|2021-06-15T16:52:54.6372199+08:00;True|2021-06-15T16:51:23.9081030+08:00;True|2021-06-15T16:45:40.6017997+08:00;True|2021-06-15T16:41:05.0218887+08:00;True|2021-06-15T16:38:02.8541862+08:00;True|2021-06-15T16:22:10.3118721+08:00;True|2021-06-15T16:12:11.1552506+08:00;True|2021-06-15T15:33:42.0100494+08:00;True|2021-06-15T15:28:39.7145659+08:00;True|2021-06-15T15:15:02.7939125+08:00;True|2021-06-15T14:49:14.2300396+08:00;True|2021-06-15T14:42:28.1198064+08:00;True|2021-06-15T13:30:12.7997686+08:00;True|2021-06-15T13:25:37.7284670+08:00;True|2021-06-15T13:23:43.6207813+08:00;False|2021-06-15T13:23:19.4190232+08:00;True|2021-06-15T13:16:38.5062674+08:00;True|2021-06-15T13:03:31.2055635+08:00;True|2021-06-15T12:58:43.1653215+08:00;True|2021-06-15T12:39:22.8442109+08:00;True|2021-06-15T12:35:09.1288556+08:00;False|2021-06-15T12:33:50.0723143+08:00;True|2021-06-15T11:28:01.9733727+08:00;True|2021-06-15T11:26:26.6569392+08:00;True|2021-06-15T11:22:43.0366435+08:00;True|2021-06-15T11:07:50.1610580+08:00;True|2021-06-15T10:32:59.1925931+08:00;True|2021-06-10T17:16:57.9552310+08:00;True|2021-06-10T16:44:42.2731836+08:00;True|2021-06-10T14:39:27.6745737+08:00;True|2021-06-10T12:15:05.1524413+08:00;True|2021-06-09T18:19:24.1005606+08:00;True|2021-06-09T17:56:09.5646288+08:00;True|2021-06-09T13:34:06.1882292+08:00;True|2021-06-09T13:29:54.5924933+08:00;True|2021-06-09T13:25:55.7520662+08:00;True|2021-06-09T13:07:47.6686811+08:00;True|2021-06-09T12:59:41.2595048+08:00;True|2021-06-09T12:45:27.1305548+08:00;True|2021-06-09T12:29:52.1418191+08:00;True|2021-06-09T12:24:12.7610588+08:00;True|2021-06-09T11:31:25.3409568+08:00;True|2021-06-09T09:57:44.4387175+08:00;True|2021-06-09T09:54:26.5161307+08:00;True|2021-06-09T09:14:14.7288045+08:00;True|2021-06-09T09:10:25.1812139+08:00;True|2021-06-09T08:46:21.6585123+08:00;True|2021-06-08T19:56:55.7192062+08:00;True|2021-06-08T19:52:59.0326821+08:00;True|2021-06-08T19:49:13.6274217+08:00;True|2021-06-08T19:09:22.1038939+08:00;True|2021-06-08T15:28:41.3716247+08:00;True|2021-06-08T15:26:47.2621178+08:00;True|2021-06-08T13:49:45.8936617+08:00;True|2021-06-08T13:43:18.8115502+08:00;True|2021-06-08T10:04:06.2200731+08:00;True|2021-06-08T09:17:10.0470792+08:00;True|2021-06-08T08:44:37.4395849+08:00;True|2021-06-08T00:01:09.3745613+08:00;True|2021-06-07T23:49:31.5196888+08:00;True|2021-06-07T23:41:00.8017855+08:00;True|2021-06-07T23:21:53.1371134+08:00;True|2021-06-07T23:01:27.5712153+08:00;True|2021-06-07T22:36:12.9274014+08:00;True|2021-06-07T22:23:00.6545134+08:00;True|2021-06-07T17:44:47.5686346+08:00;True|2021-06-07T17:17:01.3431233+08:00;True|2021-06-07T16:53:28.9989587+08:00;True|2021-06-07T16:41:10.4975607+08:00;True|2021-06-07T14:21:06.8176477+08:00;True|2021-06-07T14:10:39.0355659+08:00;True|2021-06-07T12:34:31.4562732+08:00;True|2021-06-07T12:28:44.9629488+08:00;True|2021-06-07T10:30:26.9387988+08:00;True|2021-06-07T09:12:14.7658099+08:00;True|2021-06-07T08:37:19.6353792+08:00;True|2021-06-07T08:35:25.2031954+08:00;True|2021-06-05T07:07:32.0541266+08:00;True|2021-06-05T06:44:35.9475270+08:00;True|2021-06-05T06:37:27.4595197+08:00;True|2021-06-05T06:26:59.7663998+08:00;True|2021-06-05T05:43:12.8699318+08:00;True|2021-06-04T17:00:41.2426007+08:00;True|2021-06-04T16:08:03.8078072+08:00;True|2021-06-04T15:47:21.6412616+08:00;True|2021-06-04T15:21:02.4239800+08:00;True|2021-06-04T15:20:37.8641854+08:00;True|2021-06-04T13:38:51.5088395+08:00;True|2021-06-04T10:20:01.7784282+08:00;True|2021-06-04T10:13:50.3548857+08:00;True|2021-06-04T10:11:25.5017821+08:00;True|2021-06-04T10:09:51.6792228+08:00;True|2021-06-04T10:02:39.5851057+08:00;True|2021-06-04T09:30:40.4495494+08:00;True|2021-06-03T13:16:36.0317546+08:00;True|2021-06-03T13:12:47.0402047+08:00;True|2021-06-02T14:37:08.9683351+08:00;True|2021-06-02T14:10:15.7439829+08:00;True|2021-06-02T13:59:46.5841931+08:00;True|2021-06-02T13:25:18.7962660+08:00;True|2021-06-02T13:23:16.2261980+08:00;True|2021-06-01T15:37:32.2495085+08:00;True|2021-06-01T15:21:01.2856122+08:00;True|2021-06-01T15:13:36.7262365+08:00;True|2021-06-01T15:10:26.8905629+08:00;True|2021-06-01T14:56:17.5231551+08:00;True|2021-06-01T14:38:39.7895927+08:00;True|2021-06-01T14:23:12.3265287+08:00;True|2021-03-01T09:11:31.3226422+08:00;True|2021-05-26T14:54:56.9426462+08:00;True|2021-05-26T13:57:33.7780451+08:00;True|2021-05-26T13:39:02.8043358+08:00;True|2021-02-25T16:01:40.2917200+08:00;True|2021-02-25T15:49:46.6681205+08:00;True|2021-02-25T15:16:30.9372640+08:00;True|2021-05-25T13:10:21.7831921+08:00;True|2021-05-25T11:21:38.5224475+08:00;True|2021-05-25T11:12:52.0637175+08:00;True|2021-05-25T11:02:18.4164663+08:00;True|2021-05-25T10:52:06.8998521+08:00;True|2021-05-25T10:50:45.0929606+08:00;True|2021-05-25T10:45:54.1498313+08:00;True|2021-05-25T10:39:27.8602249+08:00;True|2021-05-25T10:34:49.5771162+08:00;True|2021-05-25T10:17:30.3009163+08:00;True|2021-05-25T10:14:03.8512581+08:00;True|2021-05-25T10:05:33.4343836+08:00;True|2021-05-24T17:01:23.3221168+08:00;True|2021-05-24T10:11:24.0197347+08:00;False|2021-05-24T10:11:07.6338995+08:00;</History>
    <_PublishTargetUrl>D:\网站发布\智云MESWMS\API</_PublishTargetUrl>
    <History>True|2023-07-14T02:33:17.6270692Z;True|2023-07-11T14:34:22.8852169+08:00;True|2023-07-11T14:27:22.7851108+08:00;True|2023-07-11T14:13:21.6512172+08:00;True|2023-07-11T14:06:33.9865646+08:00;True|2023-07-11T13:52:46.2830836+08:00;True|2023-07-11T13:38:56.3165889+08:00;True|2023-07-11T13:29:40.9636697+08:00;True|2023-07-11T13:25:23.0633788+08:00;True|2023-07-11T10:17:40.8002359+08:00;True|2023-07-11T10:15:47.5472709+08:00;True|2023-07-11T10:12:25.6440547+08:00;True|2023-07-11T10:07:39.3716167+08:00;True|2023-07-11T09:22:07.4191357+08:00;True|2023-07-04T13:07:10.1209516+08:00;True|2023-06-30T16:11:25.7541580+08:00;True|2023-06-30T15:39:26.6678989+08:00;True|2023-06-30T15:26:40.6581344+08:00;True|2023-06-30T15:12:57.9906312+08:00;True|2023-06-29T16:39:15.6477820+08:00;True|2023-06-28T17:01:51.9542466+08:00;True|2023-06-27T15:03:28.1320450+08:00;True|2023-06-27T13:36:39.6707848+08:00;True|2023-06-26T09:40:01.1754706+08:00;True|2023-06-25T12:16:28.9080024+08:00;True|2023-06-25T11:51:59.9238461+08:00;True|2023-06-25T11:50:29.3100358+08:00;True|2023-06-25T11:29:28.5338563+08:00;True|2023-06-25T09:10:26.2420288+08:00;True|2023-06-25T09:08:15.0702872+08:00;True|2023-06-25T08:43:15.0806611+08:00;True|2023-06-25T08:41:41.8156616+08:00;True|2023-06-25T08:39:30.6818013+08:00;True|2023-06-25T08:38:18.5996529+08:00;True|2023-06-25T08:36:34.1479706+08:00;True|2023-06-25T08:34:53.9856289+08:00;True|2023-06-25T08:31:24.0298080+08:00;True|2023-06-25T08:15:45.7453280+08:00;True|2023-06-25T08:01:52.7609075+08:00;True|2023-06-24T21:25:23.8938665+08:00;True|2023-06-22T03:02:26.7305758+08:00;True|2023-06-22T02:10:48.8222890+08:00;True|2023-06-22T01:57:41.7875184+08:00;True|2023-06-22T01:52:19.4217362+08:00;True|2023-06-21T16:27:15.1464129+08:00;True|2023-06-21T16:11:46.6111817+08:00;True|2023-06-21T13:14:00.6869253+08:00;True|2023-06-21T13:09:28.2689225+08:00;True|2023-06-21T12:24:02.6762426+08:00;True|2023-06-21T12:18:06.2748924+08:00;True|2023-06-21T11:18:02.6754143+08:00;True|2023-06-21T11:08:34.2149469+08:00;True|2023-06-21T08:20:50.0079906+08:00;True|2023-06-20T15:56:03.2638713+08:00;True|2023-06-20T15:48:38.2419545+08:00;True|2023-06-20T15:35:26.6615171+08:00;True|2023-06-20T15:20:31.9284860+08:00;True|2023-06-20T15:18:39.8265469+08:00;True|2023-06-20T15:09:16.7617272+08:00;True|2023-06-20T09:53:23.2658672+08:00;True|2023-06-16T10:00:58.0337616+08:00;True|2023-06-16T09:47:58.8912904+08:00;True|2023-06-16T09:26:36.4914832+08:00;True|2023-06-15T16:22:21.4509393+08:00;True|2023-06-12T13:21:12.0491357+08:00;True|2023-06-12T10:18:32.9287587+08:00;True|2023-06-09T16:22:24.1132267+08:00;True|2023-06-08T18:12:42.4814009+08:00;True|2023-06-08T11:08:48.0533571+08:00;True|2023-06-08T10:41:43.0121701+08:00;False|2023-06-08T10:40:19.2093235+08:00;True|2023-06-06T13:03:50.8124200+08:00;True|2023-06-05T10:12:24.1858209+08:00;True|2023-06-02T17:02:57.5817094+08:00;True|2023-05-26T13:54:40.2272218+08:00;True|2023-05-24T12:43:50.2427994+08:00;True|2023-05-24T12:34:24.3922836+08:00;True|2023-05-24T10:07:19.4995219+08:00;True|2023-05-24T09:21:29.1960080+08:00;True|2023-05-23T22:34:23.3220912+08:00;True|2023-05-23T22:01:14.4175449+08:00;True|2023-05-23T17:02:53.0308400+08:00;True|2023-05-23T16:30:11.7138623+08:00;True|2023-05-23T15:51:50.0152484+08:00;True|2023-05-23T15:50:52.0657433+08:00;True|2023-05-23T15:28:25.5802377+08:00;True|2023-05-23T15:25:56.4633020+08:00;True|2023-05-23T14:52:29.8759921+08:00;True|2023-05-23T14:48:44.6519763+08:00;True|2023-05-20T04:28:10.3108871+08:00;True|2023-05-20T03:56:22.7233820+08:00;True|2023-05-20T03:47:38.4405026+08:00;True|2023-05-20T03:46:40.6056451+08:00;True|2023-05-20T03:44:25.0883888+08:00;True|2023-05-20T03:41:10.1148691+08:00;True|2023-05-20T02:34:14.3757035+08:00;True|2023-05-20T02:27:50.5595075+08:00;True|2023-05-20T02:23:04.2256041+08:00;True|2023-05-20T01:46:59.9534021+08:00;True|2023-05-20T01:42:33.5106065+08:00;True|2023-05-20T01:40:39.6918060+08:00;True|2023-05-20T01:11:47.7436847+08:00;True|2023-05-20T01:03:58.9476094+08:00;True|2023-05-19T22:59:47.4591129+08:00;True|2023-05-19T22:34:44.7988447+08:00;True|2023-05-19T22:24:55.2320279+08:00;True|2023-05-19T21:40:19.5285575+08:00;True|2023-05-19T21:38:21.2073338+08:00;True|2023-05-19T20:54:59.2058809+08:00;True|2023-05-19T16:08:15.0151080+08:00;True|2023-05-19T15:26:16.2836301+08:00;True|2023-05-19T13:09:06.1592914+08:00;True|2023-05-19T12:24:23.6252771+08:00;True|2023-05-19T11:50:53.8948740+08:00;True|2023-05-19T11:43:57.9296933+08:00;True|2023-05-19T10:44:34.9904463+08:00;True|2023-05-19T09:32:02.1216663+08:00;False|2023-05-19T09:31:06.4251757+08:00;True|2023-05-18T22:34:36.5292968+08:00;True|2023-05-18T20:37:59.7940567+08:00;True|2023-05-18T20:36:35.2790349+08:00;True|2023-05-18T20:34:10.7400457+08:00;True|2023-05-18T20:32:43.8790879+08:00;True|2023-05-18T20:31:13.5389643+08:00;True|2023-05-18T20:29:19.6206139+08:00;True|2023-05-18T20:07:25.5074263+08:00;True|2023-05-18T18:19:43.5324315+08:00;True|2023-05-18T18:15:36.4290026+08:00;True|2023-05-18T18:12:31.8703551+08:00;True|2023-05-18T18:10:52.9289531+08:00;True|2023-05-18T18:09:23.9118797+08:00;True|2023-05-18T17:58:30.8068228+08:00;True|2023-05-18T17:56:55.8055382+08:00;False|2023-05-18T17:54:54.7950789+08:00;False|2023-05-18T17:11:18.2325105+08:00;True|2023-05-18T17:09:24.4186482+08:00;True|2023-05-18T17:06:32.0699130+08:00;False|2023-05-18T17:01:41.8164925+08:00;False|2023-05-18T16:59:32.1112741+08:00;True|2023-05-18T16:58:34.1784100+08:00;True|2023-05-18T16:56:36.9460541+08:00;True|2023-05-18T16:55:00.9843495+08:00;True|2023-05-18T16:49:04.0161640+08:00;True|2023-05-18T16:48:28.9011382+08:00;True|2023-05-18T16:44:52.0675900+08:00;False|2023-05-18T16:44:37.3514214+08:00;False|2023-05-18T16:43:23.3343369+08:00;True|2023-05-18T16:41:35.8818611+08:00;True|2023-05-18T16:25:43.5167900+08:00;False|2023-05-18T16:24:46.6646890+08:00;False|2023-05-18T16:19:55.4153618+08:00;False|2023-05-18T16:16:18.0052881+08:00;False|2023-05-18T16:14:32.3377278+08:00;True|2023-05-17T15:43:45.1868569+08:00;True|2023-05-17T15:35:42.2476880+08:00;True|2023-05-17T14:23:28.2390957+08:00;True|2023-05-17T13:54:00.6756387+08:00;True|2023-05-17T13:45:46.1115068+08:00;True|2023-05-17T07:57:34.7129429+08:00;True|2023-05-16T16:04:20.3198005+08:00;False|2023-05-16T16:03:52.0737233+08:00;True|2023-05-16T15:28:45.4945726+08:00;True|2023-05-16T15:14:10.4952128+08:00;True|2023-05-16T15:04:46.5706346+08:00;True|2023-05-16T14:46:48.7034492+08:00;True|2023-05-16T14:45:29.4047499+08:00;True|2023-05-16T14:42:47.3507679+08:00;True|2023-05-16T14:30:47.9199224+08:00;True|2023-05-16T14:29:10.9147184+08:00;True|2023-05-16T14:27:48.3632687+08:00;True|2023-05-16T14:24:44.6240034+08:00;True|2023-05-16T14:19:41.2962188+08:00;True|2023-05-16T13:41:13.3366211+08:00;True|2023-05-16T13:26:44.1532655+08:00;True|2023-05-16T13:23:40.2882422+08:00;True|2023-05-16T13:11:41.5416792+08:00;True|2023-05-16T13:08:41.6341863+08:00;True|2023-05-16T13:04:35.6916867+08:00;True|2023-05-16T13:00:34.6889598+08:00;True|2023-05-16T12:57:48.4561274+08:00;True|2023-05-16T12:50:57.7405833+08:00;True|2023-05-16T12:49:33.8394829+08:00;True|2023-05-16T12:44:28.6906226+08:00;True|2023-05-16T12:41:08.3554032+08:00;True|2023-05-16T12:32:32.3448036+08:00;True|2023-05-16T11:32:04.4504376+08:00;True|2023-05-15T18:39:28.9172042+08:00;True|2023-05-15T18:35:41.5268755+08:00;True|2023-05-15T18:16:16.2900985+08:00;True|2023-04-28T16:24:40.7430596+08:00;False|2023-04-28T16:21:34.8499384+08:00;True|2023-04-28T15:43:40.3023318+08:00;True|2023-04-28T15:41:18.8228620+08:00;True|2023-04-28T14:16:21.1595325+08:00;True|2023-04-28T10:27:55.2150739+08:00;True|2023-04-12T16:25:26.5218825+08:00;True|2023-04-12T15:45:29.3993255+08:00;True|2023-04-12T14:00:18.1960878+08:00;True|2023-04-12T13:16:39.0804178+08:00;True|2023-04-11T11:02:27.5200402+08:00;True|2023-04-11T09:57:11.5903829+08:00;True|2023-04-10T09:58:01.1775220+08:00;True|2023-03-13T11:19:32.0927720+08:00;True|2023-03-13T10:39:50.9250037+08:00;True|2023-03-13T08:54:57.5891390+08:00;True|2023-03-10T09:00:31.2441735+08:00;True|2023-03-08T08:25:11.1877416+08:00;True|2023-03-06T09:18:03.5502956+08:00;True|2023-03-06T09:14:57.8192971+08:00;True|2023-01-11T13:30:27.8190489+08:00;True|2023-01-06T14:29:14.6067256+08:00;True|2022-12-23T17:06:52.0688439+08:00;True|2022-12-23T16:12:04.4155951+08:00;True|2022-12-23T13:35:44.6439326+08:00;True|2022-11-30T08:24:02.9999976+08:00;True|2022-11-30T08:01:51.4579972+08:00;True|2022-11-29T21:32:14.4359673+08:00;True|2022-11-29T19:30:22.9466023+08:00;True|2022-11-29T19:24:30.1630119+08:00;True|2022-11-29T17:31:43.1926801+08:00;True|2022-11-29T17:14:32.5869985+08:00;True|2022-11-29T10:42:57.1877576+08:00;True|2022-11-27T14:40:28.4784748+08:00;True|2022-11-26T20:49:34.2789400+08:00;True|2022-11-26T19:24:58.9988205+08:00;True|2022-11-26T15:33:08.6274944+08:00;True|2022-11-26T14:37:46.3953592+08:00;True|2022-11-26T09:16:41.7487240+08:00;True|2022-11-24T09:49:50.7302637+08:00;True|2022-11-23T16:24:56.5946914+08:00;True|2022-11-23T16:19:57.5570583+08:00;True|2022-11-23T15:05:13.8032246+08:00;True|2022-11-22T20:24:39.7324815+08:00;True|2022-11-22T13:18:16.2143925+08:00;False|2022-11-22T13:12:53.0448580+08:00;True|2022-11-22T11:03:01.7571733+08:00;True|2022-11-21T13:20:11.1961237+08:00;True|2022-11-21T13:13:52.0360749+08:00;True|2022-11-18T15:48:13.0747365+08:00;True|2022-11-18T14:15:54.5626901+08:00;True|2022-11-17T18:41:26.5464503+08:00;True|2022-11-15T13:55:35.3496366+08:00;True|2022-11-15T11:03:23.6773297+08:00;True|2022-11-15T10:58:47.9703720+08:00;True|2022-11-15T10:12:27.8305782+08:00;True|2022-11-15T09:47:26.7480777+08:00;True|2022-11-15T08:55:44.0275263+08:00;True|2022-11-15T08:54:06.6396851+08:00;True|2022-11-15T08:44:18.2013404+08:00;True|2022-11-15T01:16:19.8154538+08:00;True|2022-11-15T01:15:03.7846810+08:00;True|2022-11-15T01:01:11.0318599+08:00;True|2022-11-15T00:30:33.7148460+08:00;True|2022-11-15T00:15:26.5178283+08:00;True|2022-11-14T23:54:32.6128172+08:00;True|2022-11-14T23:26:52.0335380+08:00;True|2022-11-14T22:21:28.0622050+08:00;True|2022-11-14T21:47:43.6964619+08:00;True|2022-11-14T21:41:42.3128804+08:00;True|2022-11-14T21:31:17.2784203+08:00;True|2022-11-14T20:48:20.0380343+08:00;True|2022-11-11T17:24:44.7029993+08:00;True|2022-11-11T16:47:29.3444029+08:00;True|2022-11-11T16:07:26.4718473+08:00;True|2022-11-11T15:52:41.7235701+08:00;True|2022-11-10T15:58:10.8883176+08:00;True|2022-11-10T15:29:59.3113740+08:00;True|2022-11-10T13:34:14.7380132+08:00;True|2022-11-10T10:28:02.1166569+08:00;True|2022-11-09T23:28:25.6401971+08:00;True|2022-11-09T16:20:53.2757536+08:00;True|2022-11-09T16:16:41.3169214+08:00;True|2022-11-09T14:02:55.1802832+08:00;True|2022-11-09T13:57:55.2726154+08:00;True|2022-11-09T13:28:53.2022669+08:00;True|2022-11-09T13:10:58.0740163+08:00;True|2022-11-09T12:59:42.2328933+08:00;True|2022-11-09T11:54:08.0187924+08:00;True|2022-11-09T11:49:32.4296758+08:00;True|2022-11-09T11:34:32.6613370+08:00;True|2022-11-09T11:06:56.9443306+08:00;True|2022-11-06T23:43:44.0833657+08:00;True|2022-11-06T23:29:52.0088244+08:00;True|2022-11-06T22:06:14.7091464+08:00;True|2022-11-06T22:03:25.2696951+08:00;True|2022-11-06T21:58:50.1055520+08:00;True|2022-11-06T21:54:14.0075395+08:00;True|2022-11-06T21:39:30.2652105+08:00;True|2022-11-04T15:54:37.9813194+08:00;True|2022-11-04T15:43:59.7702621+08:00;True|2022-11-04T13:59:29.3941234+08:00;True|2022-11-04T13:44:18.1212719+08:00;True|2022-11-04T13:42:06.1010393+08:00;True|2022-11-04T13:37:01.7814703+08:00;True|2022-11-04T13:35:43.1121709+08:00;True|2022-11-04T13:33:05.1362535+08:00;True|2022-11-04T13:30:11.1113703+08:00;True|2022-11-04T13:28:53.7185382+08:00;True|2022-11-04T13:27:08.0691684+08:00;True|2022-11-04T13:20:46.2297633+08:00;True|2022-11-04T13:17:57.1564250+08:00;True|2022-11-04T13:15:36.3651019+08:00;True|2022-11-04T13:13:44.6635701+08:00;True|2022-11-04T13:12:02.3968306+08:00;True|2022-11-04T13:08:07.7653927+08:00;True|2022-11-04T11:37:44.1975649+08:00;True|2022-11-04T11:36:20.3813848+08:00;True|2022-11-04T11:26:40.9713465+08:00;True|2022-11-04T10:17:36.4269558+08:00;True|2022-11-04T09:47:05.4607111+08:00;True|2022-11-04T09:28:27.9347785+08:00;True|2022-11-04T08:38:38.5253737+08:00;True|2022-11-03T13:31:32.7883545+08:00;False|2022-11-03T13:27:07.8579021+08:00;True|2022-11-03T11:07:07.3903101+08:00;True|2022-11-03T10:54:26.7818816+08:00;True|2022-11-03T10:35:59.1956262+08:00;True|2022-11-03T10:30:07.0651285+08:00;True|2022-11-03T10:01:20.8467911+08:00;True|2022-08-22T11:13:33.9211829+08:00;True|2022-06-17T11:19:24.4893458+08:00;True|2022-06-07T14:44:51.5702202+08:00;True|2022-06-07T14:42:44.8351600+08:00;True|2022-05-17T14:19:55.1158182+08:00;True|2022-05-17T13:25:44.2886247+08:00;True|2022-05-17T10:29:26.6813564+08:00;True|2022-05-17T09:02:49.1742018+08:00;True|2022-05-06T15:13:12.2438900+08:00;True|2022-05-06T14:49:39.8536594+08:00;True|2022-04-22T17:07:44.8823529+08:00;True|2022-04-19T19:13:40.8312746+08:00;True|2022-04-19T15:40:16.0022040+08:00;True|2022-04-19T15:13:32.9767736+08:00;False|2022-04-19T15:08:33.6507639+08:00;True|2022-04-19T15:02:51.9580210+08:00;True|2022-04-19T13:54:18.7579131+08:00;True|2022-04-12T10:36:02.1779173+08:00;True|2022-04-12T10:05:31.0222037+08:00;True|2022-04-12T09:47:49.3724819+08:00;True|2022-04-09T15:08:54.5697468+08:00;True|2022-04-08T17:31:31.0046258+08:00;True|2022-04-08T16:50:41.3018422+08:00;True|2022-04-08T10:35:36.5029980+08:00;True|2022-03-31T09:38:37.3646053+08:00;True|2022-03-29T13:57:45.4410942+08:00;True|2022-03-10T18:59:23.7994337+08:00;True|2022-03-10T18:52:39.5019082+08:00;True|2022-03-10T18:51:12.7949284+08:00;True|2022-03-10T18:50:47.2024177+08:00;True|2022-03-10T18:45:08.8409380+08:00;True|2022-03-10T18:41:17.0102564+08:00;True|2022-03-10T18:35:49.0742353+08:00;True|2022-03-10T17:57:47.4196965+08:00;True|2022-03-10T17:34:27.5723245+08:00;True|2022-03-10T16:13:59.3829164+08:00;True|2022-03-09T14:50:49.1222033+08:00;True|2022-03-09T11:21:03.0073651+08:00;False|2022-03-09T11:16:56.1792896+08:00;False|2022-03-09T11:16:49.7923320+08:00;True|2022-03-08T15:47:47.4722336+08:00;True|2022-03-08T15:47:28.5397115+08:00;True|2022-03-08T15:37:08.7379870+08:00;True|2022-03-02T17:37:54.4659976+08:00;True|2022-03-02T17:34:12.2949726+08:00;True|2022-03-02T17:26:38.7070673+08:00;True|2022-03-02T17:07:49.7024316+08:00;True|2022-03-02T17:05:22.4177336+08:00;True|2022-03-02T16:14:57.9880587+08:00;True|2022-03-01T17:52:52.6766959+08:00;True|2022-02-28T14:36:22.6449303+08:00;True|2022-02-24T15:43:36.8244163+08:00;True|2022-02-23T17:57:14.3693224+08:00;True|2022-02-23T17:46:42.1078183+08:00;False|2022-02-23T17:41:06.5886724+08:00;True|2022-02-23T16:59:45.5533581+08:00;True|2022-02-23T16:57:43.3328895+08:00;True|2022-02-21T09:09:37.2601134+08:00;True|2022-02-21T09:03:32.4071009+08:00;True|2022-02-21T08:59:59.0172082+08:00;True|2022-02-18T14:05:39.1358825+08:00;True|2022-02-18T10:23:02.4391239+08:00;True|2022-02-18T10:21:31.0559267+08:00;True|2022-02-17T16:50:11.7192509+08:00;True|2022-02-17T13:19:13.7697894+08:00;True|2022-02-11T10:36:12.7757100+08:00;True|2022-02-10T10:54:25.2685040+08:00;True|2022-02-10T10:37:02.1034768+08:00;True|2022-02-09T17:32:45.6511283+08:00;True|2022-02-09T17:24:32.5115193+08:00;True|2022-02-09T17:00:24.0662114+08:00;True|2022-02-09T16:56:42.3364622+08:00;True|2022-02-09T14:17:25.8688855+08:00;True|2022-02-09T14:11:51.6149822+08:00;True|2022-02-07T23:29:26.2842648+08:00;True|2022-02-07T23:28:58.8242274+08:00;False|2022-02-07T23:25:29.0647793+08:00;True|2022-02-07T13:06:37.5515985+08:00;True|2022-02-07T12:42:19.5220491+08:00;True|2022-02-07T09:52:59.6728595+08:00;True|2022-02-01T11:32:10.5831557+08:00;True|2022-01-29T14:09:02.9178986+08:00;True|2022-01-28T12:01:45.1416438+08:00;True|2022-01-28T11:03:41.6361866+08:00;True|2022-01-28T10:44:53.5367862+08:00;True|2022-01-28T10:40:41.6697563+08:00;True|2022-01-28T10:25:56.7093616+08:00;True|2022-01-28T09:58:13.0733060+08:00;True|2022-01-27T09:26:29.6568807+08:00;True|2022-01-27T00:47:57.9102528+08:00;True|2022-01-27T00:46:52.8845001+08:00;True|2022-01-27T00:36:34.5330938+08:00;True|2022-01-27T00:35:19.5439329+08:00;True|2022-01-27T00:33:38.5701950+08:00;True|2022-01-27T00:32:00.9028982+08:00;True|2022-01-27T00:30:13.2390921+08:00;True|2022-01-27T00:28:23.2989144+08:00;True|2022-01-27T00:16:01.3789455+08:00;True|2022-01-27T00:09:58.8112352+08:00;True|2022-01-27T00:00:40.8353538+08:00;True|2022-01-26T23:37:50.9494735+08:00;True|2022-01-26T23:29:39.8647473+08:00;True|2022-01-26T23:20:49.3274392+08:00;True|2022-01-26T23:15:53.7037293+08:00;True|2022-01-26T23:06:28.8595953+08:00;True|2022-01-26T23:02:12.9882299+08:00;True|2022-01-26T22:55:33.2535730+08:00;True|2022-01-26T22:51:01.8427947+08:00;True|2022-01-26T22:47:44.0715387+08:00;True|2022-01-26T22:20:21.7217039+08:00;True|2022-01-26T22:13:39.5372069+08:00;True|2022-01-26T22:01:31.2113177+08:00;True|2022-01-26T21:55:26.5478921+08:00;True|2022-01-26T21:50:18.2700369+08:00;True|2022-01-26T21:48:52.0020233+08:00;True|2022-01-26T19:19:29.4530523+08:00;True|2022-01-26T19:07:21.6474231+08:00;True|2022-01-26T18:25:42.2933291+08:00;True|2022-01-26T12:39:02.0149050+08:00;True|2022-01-26T12:13:43.9149452+08:00;True|2022-01-26T11:24:33.5742248+08:00;True|2022-01-26T08:51:10.8105076+08:00;True|2022-01-25T21:07:32.9069261+08:00;True|2022-01-24T01:35:12.3309466+08:00;True|2022-01-23T23:19:15.9702821+08:00;True|2022-01-23T21:50:41.6903353+08:00;True|2022-01-23T21:25:57.6084267+08:00;True|2022-01-23T21:16:10.1516535+08:00;True|2022-01-23T20:52:08.3745284+08:00;True|2022-01-23T18:19:32.2386502+08:00;True|2022-01-23T18:11:42.0830325+08:00;True|2022-01-23T18:00:01.3239547+08:00;True|2022-01-23T12:18:48.2466943+08:00;True|2022-01-22T00:48:50.4531647+08:00;True|2022-01-21T13:10:32.8173598+08:00;True|2022-01-21T13:04:01.6388059+08:00;True|2022-01-21T12:51:40.5304103+08:00;True|2022-01-21T12:44:06.3059885+08:00;True|2022-01-21T12:34:33.9314010+08:00;True|2022-01-21T11:39:20.1088577+08:00;True|2022-01-20T11:33:49.0516846+08:00;True|2022-01-20T10:02:12.0295471+08:00;True|2022-01-20T10:02:03.3535503+08:00;True|2022-01-19T23:56:18.7293193+08:00;True|2022-01-19T22:30:14.6986228+08:00;True|2022-01-19T22:15:08.8608795+08:00;True|2022-01-19T21:57:55.2295030+08:00;True|2022-01-19T13:50:37.8588759+08:00;True|2022-01-19T13:42:52.9761531+08:00;True|2022-01-19T00:26:36.9722917+08:00;True|2022-01-19T00:15:30.8583143+08:00;True|2022-01-18T21:19:30.6193048+08:00;True|2022-01-18T21:12:07.1453825+08:00;True|2022-01-18T20:35:27.3779956+08:00;True|2022-01-18T17:44:45.2318570+08:00;True|2022-01-18T14:45:29.0299640+08:00;True|2022-01-17T22:23:20.8214203+08:00;True|2022-01-17T21:49:15.7740045+08:00;True|2022-01-17T21:47:24.6997598+08:00;True|2022-01-17T21:44:00.1942787+08:00;True|2022-01-17T21:43:15.5992687+08:00;True|2022-01-17T21:33:16.8034756+08:00;True|2022-01-17T21:25:39.9909343+08:00;True|2022-01-17T21:13:03.9659338+08:00;True|2022-01-17T20:32:14.8869091+08:00;True|2022-01-17T19:01:46.5753686+08:00;True|2022-01-17T18:31:24.1032169+08:00;True|2022-01-17T18:21:39.2918684+08:00;True|2022-01-17T18:12:07.4859038+08:00;True|2022-01-17T18:09:26.6989718+08:00;True|2022-01-17T18:04:36.7564997+08:00;True|2022-01-17T17:57:44.7814863+08:00;True|2022-01-17T17:51:50.1516107+08:00;True|2022-01-17T17:39:29.2918799+08:00;True|2022-01-17T14:55:21.5859341+08:00;True|2022-01-17T14:38:06.5091500+08:00;True|2022-01-17T14:30:25.5378436+08:00;True|2022-01-16T19:15:24.5874858+08:00;True|2022-01-16T19:07:49.0613424+08:00;True|2022-01-16T16:10:47.3112741+08:00;False|2022-01-14T19:09:41.9296709+08:00;False|2022-01-14T18:56:11.0569808+08:00;False|2022-01-14T18:28:20.1376762+08:00;False|2022-01-14T18:27:30.8678130+08:00;False|2022-01-14T18:22:45.4436504+08:00;False|2022-01-14T18:19:37.0374753+08:00;False|2022-01-14T18:18:48.5868254+08:00;False|2022-01-14T18:14:02.5810257+08:00;False|2022-01-14T18:09:51.1730754+08:00;False|2022-01-14T18:09:17.8940754+08:00;True|2022-01-13T20:08:16.2937608+08:00;True|2022-01-13T20:07:30.1505466+08:00;True|2022-01-13T13:39:42.0146294+08:00;True|2022-01-13T13:38:07.5062471+08:00;True|2022-01-13T11:29:49.3751232+08:00;True|2022-01-13T11:05:43.9574142+08:00;True|2022-01-13T10:33:23.1921058+08:00;True|2022-01-12T20:38:16.9165651+08:00;True|2022-01-12T20:24:46.3779264+08:00;True|2022-01-12T20:03:06.5030626+08:00;True|2022-01-12T19:44:55.4294326+08:00;True|2022-01-12T12:58:45.9548600+08:00;True|2022-01-12T11:28:44.7797749+08:00;True|2022-01-11T18:07:30.9151356+08:00;True|2022-01-11T15:06:32.7301609+08:00;True|2022-01-11T09:27:00.1766442+08:00;True|2021-12-30T14:41:56.8541015+08:00;True|2021-12-30T13:45:00.6130694+08:00;True|2021-12-30T13:44:18.7370780+08:00;True|2021-12-30T13:36:52.8171136+08:00;True|2021-12-28T19:14:22.5979649+08:00;True|2021-12-28T13:13:39.3543252+08:00;True|2021-12-27T15:31:26.6037782+08:00;True|2021-12-27T15:28:54.4824480+08:00;True|2021-12-27T15:22:47.8436108+08:00;True|2021-12-27T15:04:37.0711590+08:00;True|2021-12-27T15:03:52.0932499+08:00;True|2021-12-27T15:03:33.0172733+08:00;True|2021-12-27T13:28:27.4252747+08:00;True|2021-12-25T19:38:33.6784042+08:00;True|2021-12-24T20:47:43.3471563+08:00;True|2021-12-24T20:14:57.6946814+08:00;True|2021-12-24T19:55:21.1843105+08:00;True|2021-12-24T19:49:54.6719726+08:00;True|2021-12-24T19:38:14.1180741+08:00;True|2021-12-22T13:51:37.1082523+08:00;True|2021-12-21T15:38:59.8015096+08:00;True|2021-12-21T15:29:54.8095063+08:00;False|2021-12-21T15:29:21.7006531+08:00;False|2021-12-21T15:16:18.2218025+08:00;False|2021-12-21T15:11:38.1215841+08:00;False|2021-12-21T15:08:27.0590078+08:00;True|2021-12-10T14:12:36.4065298+08:00;True|2021-12-10T13:54:03.4921778+08:00;True|2021-12-10T13:25:49.0439086+08:00;True|2021-12-10T13:19:58.9494477+08:00;True|2021-12-10T13:10:45.3929017+08:00;True|2021-12-10T11:06:53.2416794+08:00;True|2021-12-07T17:23:28.9380484+08:00;True|2021-12-07T17:13:52.4384814+08:00;True|2021-12-07T16:39:49.2020208+08:00;True|2021-12-07T15:18:20.9024533+08:00;True|2021-12-07T15:07:35.4428035+08:00;True|2021-12-07T15:01:02.0445043+08:00;True|2021-12-07T14:50:08.9019705+08:00;True|2021-12-07T14:34:50.4993666+08:00;False|2021-12-07T14:32:56.0408332+08:00;True|2021-12-06T17:11:41.4004606+08:00;True|2021-12-06T16:48:07.6029757+08:00;True|2021-12-06T13:46:35.9437718+08:00;True|2021-12-06T13:45:07.6622615+08:00;True|2021-12-06T11:25:04.3483155+08:00;True|2021-12-06T11:18:24.5804187+08:00;True|2021-11-22T16:27:05.4241947+08:00;True|2021-11-22T13:40:17.6768280+08:00;True|2021-11-19T16:15:19.9085104+08:00;True|2021-11-09T10:34:21.1623512+08:00;True|2021-11-07T16:57:59.7380254+08:00;True|2021-11-07T16:53:47.4198852+08:00;True|2021-11-07T16:42:05.5096826+08:00;True|2021-11-07T16:37:21.0729013+08:00;True|2021-11-05T20:51:17.6170717+08:00;True|2021-11-05T20:35:14.6250333+08:00;True|2021-11-05T19:30:19.8374158+08:00;True|2021-11-05T19:22:46.2276569+08:00;True|2021-11-05T19:20:30.8253213+08:00;True|2021-11-05T19:16:45.7553310+08:00;True|2021-11-05T19:16:00.4532689+08:00;True|2021-11-05T19:12:25.9022478+08:00;False|2021-11-05T19:11:26.5753529+08:00;True|2021-11-05T19:09:30.0085433+08:00;True|2021-11-05T18:48:19.9395153+08:00;True|2021-11-05T18:45:34.3437897+08:00;True|2021-11-05T18:43:43.4558159+08:00;True|2021-11-05T18:40:40.9948500+08:00;True|2021-11-05T18:34:18.4440455+08:00;True|2021-11-05T15:54:51.6037132+08:00;True|2021-10-28T16:27:53.9728270+08:00;True|2021-10-28T16:03:59.5629998+08:00;True|2021-10-28T08:51:04.2549186+08:00;True|2021-10-27T15:14:53.5506098+08:00;True|2021-10-27T15:00:44.9100320+08:00;True|2021-10-27T13:14:46.7921647+08:00;True|2021-10-27T11:24:49.4550753+08:00;True|2021-10-27T10:10:10.3545125+08:00;True|2021-10-27T10:02:24.9248610+08:00;True|2021-10-27T09:59:40.3795897+08:00;True|2021-10-27T09:56:30.6629207+08:00;True|2021-10-27T09:10:48.3883432+08:00;True|2021-10-27T09:03:31.9191991+08:00;True|2021-10-27T08:59:59.7651159+08:00;True|2021-10-27T08:36:11.8620997+08:00;True|2021-10-27T08:26:40.2533014+08:00;True|2021-10-26T09:19:35.5674748+08:00;True|2021-10-26T09:17:17.6900747+08:00;True|2021-10-26T09:14:32.3999220+08:00;True|2021-10-25T15:08:21.2581763+08:00;True|2021-10-25T10:01:57.8524903+08:00;True|2021-10-25T09:28:51.6294879+08:00;True|2021-10-25T09:25:50.3373336+08:00;True|2021-10-25T09:23:37.0203978+08:00;True|2021-10-25T09:18:23.3380608+08:00;True|2021-10-25T09:15:10.5292071+08:00;True|2021-10-25T08:56:30.4632027+08:00;True|2021-10-25T08:50:11.4697392+08:00;True|2021-10-22T13:46:49.7207066+08:00;True|2021-10-22T10:06:33.3130089+08:00;True|2021-10-20T14:32:10.1235516+08:00;True|2021-10-20T14:16:18.6496291+08:00;True|2021-10-20T14:08:49.2443715+08:00;True|2021-10-20T14:05:14.6847950+08:00;True|2021-10-20T13:30:21.6057636+08:00;True|2021-10-20T10:55:22.2151716+08:00;True|2021-10-19T10:42:13.4198267+08:00;True|2021-10-19T10:01:41.0018108+08:00;True|2021-10-19T09:59:11.2127619+08:00;True|2021-10-19T09:54:04.8472874+08:00;True|2021-10-15T11:19:15.5327495+08:00;True|2021-10-15T11:17:41.0686485+08:00;True|2021-10-15T11:12:11.8295042+08:00;True|2021-10-15T10:33:31.5670079+08:00;True|2021-10-15T10:27:45.0815146+08:00;True|2021-10-14T14:51:28.5331025+08:00;True|2021-10-14T14:37:28.3276051+08:00;True|2021-10-14T14:23:39.0606792+08:00;True|2021-10-14T14:21:03.8140347+08:00;True|2021-10-13T10:31:10.6628977+08:00;True|2021-10-13T10:12:24.4238027+08:00;True|2021-10-13T08:47:43.9314486+08:00;True|2021-10-12T14:07:18.6065183+08:00;True|2021-10-12T10:34:10.1682362+08:00;True|2021-10-12T10:27:14.3073332+08:00;True|2021-10-12T10:22:08.0004619+08:00;True|2021-10-12T10:21:03.0275378+08:00;True|2021-10-12T10:11:54.9812692+08:00;True|2021-10-11T16:59:07.3568342+08:00;True|2021-10-11T16:53:14.2016138+08:00;True|2021-10-11T16:21:35.0133775+08:00;True|2021-10-11T15:34:19.5731935+08:00;True|2021-10-11T15:31:07.5780983+08:00;True|2021-10-11T15:06:47.1145237+08:00;True|2021-10-11T15:03:25.5000280+08:00;True|2021-10-11T10:12:57.6416898+08:00;True|2021-10-09T10:15:17.9235165+08:00;True|2021-10-09T10:13:51.3318441+08:00;True|2021-10-09T10:01:21.6661542+08:00;True|2021-10-09T09:58:41.9225837+08:00;True|2021-10-08T14:56:49.7935800+08:00;True|2021-10-08T14:35:41.4490063+08:00;True|2021-10-08T14:02:42.6990656+08:00;True|2021-09-29T15:48:55.1547397+08:00;True|2021-09-29T15:48:23.5567191+08:00;True|2021-09-27T16:17:35.7180978+08:00;True|2021-09-27T15:51:50.4240134+08:00;True|2021-09-23T20:55:27.3554447+08:00;True|2021-09-23T14:14:44.0572017+08:00;True|2021-09-23T13:51:56.2344673+08:00;True|2021-09-23T10:46:16.7417007+08:00;True|2021-09-23T10:42:23.2117537+08:00;True|2021-09-22T15:21:22.9615672+08:00;True|2021-09-22T14:23:32.7907754+08:00;True|2021-09-22T13:48:03.4780947+08:00;True|2021-09-22T11:05:24.5249356+08:00;True|2021-09-22T10:00:19.0962943+08:00;True|2021-09-22T09:30:26.2686514+08:00;True|2021-09-17T11:22:34.5692792+08:00;True|2021-09-16T16:11:27.5372277+08:00;True|2021-09-16T14:53:40.8396557+08:00;True|2021-09-16T14:32:29.7905500+08:00;True|2021-09-16T14:26:46.2224219+08:00;True|2021-09-16T10:32:24.4244440+08:00;True|2021-09-15T11:10:35.3529360+08:00;True|2021-09-15T11:08:30.0857376+08:00;True|2021-09-15T11:05:56.7191571+08:00;True|2021-09-14T01:24:39.8041136+08:00;True|2021-09-14T01:05:01.1593327+08:00;True|2021-09-14T00:44:14.7233198+08:00;True|2021-09-13T23:48:19.4506233+08:00;True|2021-09-13T20:30:31.3243872+08:00;True|2021-09-13T19:45:35.9108911+08:00;False|2021-09-13T19:44:59.2779092+08:00;True|2021-09-13T18:09:22.4994381+08:00;True|2021-09-10T14:18:27.5788854+08:00;True|2021-09-09T15:57:01.7407207+08:00;True|2021-09-09T15:49:34.2598998+08:00;True|2021-09-09T11:32:10.7853024+08:00;True|2021-09-09T11:10:48.6840025+08:00;True|2021-09-09T10:35:37.3883078+08:00;True|2021-09-07T14:11:49.8497588+08:00;True|2021-09-07T13:34:48.4693349+08:00;True|2021-09-06T14:33:48.7549675+08:00;True|2021-09-03T16:27:51.1888520+08:00;True|2021-09-03T16:19:35.9003465+08:00;True|2021-09-03T15:46:28.1828032+08:00;True|2021-09-03T15:34:21.9362871+08:00;True|2021-09-03T11:24:49.8749819+08:00;True|2021-09-03T11:21:17.8373159+08:00;True|2021-09-03T11:16:53.2208136+08:00;True|2021-09-03T11:12:23.9063804+08:00;True|2021-09-03T09:11:09.2435721+08:00;True|2021-09-02T11:16:15.1370453+08:00;True|2021-09-02T10:35:39.1171879+08:00;True|2021-09-01T10:17:09.4536285+08:00;True|2021-09-01T09:46:28.4581776+08:00;True|2021-08-31T08:54:26.8588887+08:00;True|2021-08-31T08:39:08.3685693+08:00;True|2021-08-30T17:11:56.8438985+08:00;True|2021-08-30T15:59:42.0820292+08:00;True|2021-08-30T15:45:18.1868510+08:00;True|2021-08-30T14:56:08.3958863+08:00;True|2021-08-30T14:37:11.5379830+08:00;True|2021-08-30T14:35:34.8775934+08:00;True|2021-08-30T14:24:36.5111821+08:00;True|2021-08-30T10:05:49.6945200+08:00;True|2021-08-30T10:03:28.4064538+08:00;True|2021-08-30T10:00:16.8360929+08:00;True|2021-08-30T09:56:09.4434379+08:00;True|2021-08-30T09:55:36.1725334+08:00;True|2021-08-30T09:52:04.8600054+08:00;True|2021-08-30T09:47:46.4225655+08:00;True|2021-08-30T09:45:20.4894962+08:00;False|2021-08-27T17:17:34.2646751+08:00;False|2021-08-27T16:01:21.2791979+08:00;False|2021-08-27T15:58:06.9667160+08:00;False|2021-08-27T15:38:37.4818036+08:00;False|2021-08-27T15:21:02.8863114+08:00;False|2021-08-27T15:20:28.6828668+08:00;True|2021-08-26T16:00:44.3162145+08:00;True|2021-08-26T08:57:31.3842587+08:00;True|2021-08-23T08:43:41.1549775+08:00;True|2021-08-22T09:24:12.7210871+08:00;True|2021-08-22T09:19:53.8300229+08:00;True|2021-08-20T20:00:52.0140407+08:00;True|2021-08-20T19:40:14.7712765+08:00;True|2021-08-19T17:37:54.9748049+08:00;True|2021-08-19T17:20:11.0515687+08:00;True|2021-08-19T16:12:35.4392809+08:00;True|2021-08-19T16:06:50.6204587+08:00;True|2021-08-19T16:03:53.0824286+08:00;True|2021-08-19T15:56:01.3498791+08:00;True|2021-08-19T10:18:50.8113630+08:00;True|2021-08-19T09:58:06.2784035+08:00;True|2021-08-19T09:56:54.0619777+08:00;True|2021-08-19T00:32:08.3503093+08:00;True|2021-08-19T00:11:18.3150227+08:00;True|2021-08-19T00:02:49.4827718+08:00;True|2021-08-18T23:54:45.4845900+08:00;True|2021-08-18T23:39:51.6147977+08:00;True|2021-08-18T23:16:42.7214379+08:00;True|2021-08-18T22:38:57.4681929+08:00;True|2021-08-18T21:41:58.7560707+08:00;True|2021-08-18T21:11:52.2369249+08:00;True|2021-08-18T21:01:49.5669106+08:00;True|2021-08-18T20:47:46.5352688+08:00;False|2021-08-18T20:46:36.7956141+08:00;False|2021-08-18T20:46:01.0502138+08:00;True|2021-08-18T19:39:12.8186242+08:00;False|2021-08-18T19:38:12.6839708+08:00;True|2021-08-18T19:15:51.4626694+08:00;True|2021-08-18T16:07:20.4350886+08:00;True|2021-08-18T14:29:41.7171934+08:00;True|2021-08-18T14:20:36.3647361+08:00;True|2021-08-16T09:08:58.3617662+08:00;True|2021-08-15T20:44:29.9214083+08:00;True|2021-08-15T20:36:17.0958549+08:00;True|2021-08-15T20:29:34.3879773+08:00;True|2021-08-15T20:23:47.4052038+08:00;True|2021-08-15T15:01:19.7830862+08:00;True|2021-08-15T12:15:18.3433782+08:00;True|2021-08-13T20:59:11.3947130+08:00;True|2021-08-06T22:49:09.9538339+08:00;True|2021-08-06T22:35:19.0418168+08:00;True|2021-08-06T20:29:47.4241975+08:00;True|2021-08-06T14:08:16.4791827+08:00;True|2021-08-06T13:59:28.9874611+08:00;True|2021-08-06T13:57:34.3723977+08:00;True|2021-08-06T13:36:03.4816652+08:00;True|2021-08-06T12:22:52.5055221+08:00;True|2021-08-06T09:31:58.1272499+08:00;True|2021-08-06T09:26:51.6310039+08:00;True|2021-08-06T09:24:22.2899244+08:00;True|2021-08-06T09:06:30.6477912+08:00;True|2021-08-06T09:00:55.5101612+08:00;True|2021-08-06T08:49:59.9616490+08:00;True|2021-08-06T08:45:18.8586902+08:00;True|2021-08-05T20:09:25.8861998+08:00;True|2021-08-04T19:14:27.2396953+08:00;True|2021-08-04T19:11:47.5849093+08:00;True|2021-08-04T16:42:54.0149043+08:00;True|2021-08-04T15:02:11.5056561+08:00;True|2021-08-04T14:58:37.1435509+08:00;True|2021-08-04T14:55:34.7380132+08:00;True|2021-08-04T14:47:42.5933921+08:00;True|2021-08-04T14:45:17.9911874+08:00;True|2021-08-04T13:52:20.9601351+08:00;True|2021-08-04T09:48:28.8796992+08:00;True|2021-08-03T18:14:13.1894998+08:00;True|2021-08-03T17:45:35.1349721+08:00;True|2021-08-03T17:21:52.6028977+08:00;True|2021-08-03T17:20:35.4423020+08:00;True|2021-08-03T17:03:33.1667669+08:00;True|2021-08-03T17:01:54.2656787+08:00;True|2021-08-03T17:00:22.2778374+08:00;True|2021-08-03T16:56:58.8902582+08:00;True|2021-08-03T15:02:21.8601533+08:00;True|2021-08-03T14:57:34.0186758+08:00;True|2021-08-03T14:28:47.2242515+08:00;True|2021-08-03T14:22:22.4554236+08:00;True|2021-08-03T14:21:51.1339715+08:00;True|2021-08-03T13:37:33.9697131+08:00;True|2021-08-03T13:28:29.7591095+08:00;True|2021-08-03T11:35:09.5118324+08:00;True|2021-08-03T11:11:23.3051573+08:00;True|2021-08-02T13:14:42.3663755+08:00;True|2021-07-30T22:50:19.9749878+08:00;True|2021-07-30T22:49:31.2150970+08:00;True|2021-07-28T19:12:05.8381075+08:00;True|2021-07-28T18:59:45.4808797+08:00;True|2021-07-28T18:15:58.8301509+08:00;True|2021-07-28T18:04:54.8613546+08:00;True|2021-07-28T17:53:48.6225611+08:00;True|2021-07-28T17:42:50.9171563+08:00;True|2021-07-28T17:17:16.3137677+08:00;True|2021-07-28T17:11:46.8925200+08:00;True|2021-07-28T16:28:27.6823943+08:00;True|2021-07-28T16:23:00.3385836+08:00;True|2021-07-28T09:57:55.4237411+08:00;True|2021-07-28T08:38:29.6691541+08:00;True|2021-07-27T23:16:32.0331671+08:00;True|2021-07-27T23:06:08.1947249+08:00;True|2021-07-27T23:05:58.4619176+08:00;True|2021-07-27T18:42:09.5358261+08:00;True|2021-07-27T18:30:04.8532823+08:00;True|2021-07-27T18:29:43.5775092+08:00;True|2021-07-27T15:16:49.8356224+08:00;True|2021-07-27T15:05:27.8453220+08:00;True|2021-07-27T14:59:15.9519440+08:00;True|2021-07-27T09:23:32.6111337+08:00;True|2021-07-27T08:27:41.6395353+08:00;True|2021-07-27T08:25:56.7378296+08:00;True|2021-07-26T11:18:46.0856966+08:00;True|2021-07-26T11:18:02.0751924+08:00;True|2021-07-26T11:13:49.6285395+08:00;True|2021-07-21T21:08:25.9898902+08:00;True|2021-07-21T20:09:26.2258104+08:00;True|2021-07-13T16:17:25.8407435+08:00;True|2021-07-13T13:46:13.4309531+08:00;True|2021-07-13T12:29:04.5082461+08:00;True|2021-06-29T13:55:01.6864637+08:00;True|2021-06-29T10:38:52.2206472+08:00;True|2021-06-29T10:10:13.1540749+08:00;True|2021-06-28T14:37:56.3853273+08:00;False|2021-06-28T14:36:57.5726124+08:00;True|2021-06-25T14:17:57.5196108+08:00;True|2021-06-25T13:56:38.9522535+08:00;True|2021-06-24T19:38:32.8766933+08:00;True|2021-06-24T18:26:35.6118833+08:00;True|2021-06-24T18:02:52.8136877+08:00;True|2021-06-24T17:48:49.5851948+08:00;True|2021-06-24T17:45:46.7527572+08:00;True|2021-06-24T15:05:20.1592723+08:00;True|2021-06-23T16:18:15.6814625+08:00;True|2021-06-23T16:05:24.6112343+08:00;True|2021-06-23T15:14:08.2489658+08:00;True|2021-06-23T13:52:58.6029788+08:00;True|2021-06-22T16:11:20.4726923+08:00;True|2021-06-22T16:04:53.7231389+08:00;True|2021-06-22T15:50:59.2583262+08:00;True|2021-06-22T15:38:15.3016140+08:00;True|2021-06-22T15:34:42.9185543+08:00;True|2021-06-22T15:21:55.1419108+08:00;True|2021-06-22T15:07:21.5357494+08:00;True|2021-06-22T15:03:35.0535733+08:00;True|2021-06-22T14:54:47.8802969+08:00;True|2021-06-22T11:19:38.7303011+08:00;True|2021-06-22T08:53:49.2882695+08:00;True|2021-06-22T08:47:54.8286530+08:00;True|2021-06-21T16:27:19.3017700+08:00;True|2021-06-21T15:32:28.7237952+08:00;True|2021-06-21T12:34:02.6329555+08:00;True|2021-06-21T12:24:17.5427495+08:00;True|2021-06-21T10:47:30.6423502+08:00;True|2021-06-21T08:43:20.3026558+08:00;True|2021-06-19T15:10:06.8335499+08:00;True|2021-06-18T15:37:29.5009930+08:00;True|2021-06-18T13:46:35.6283432+08:00;True|2021-06-18T10:00:37.1474954+08:00;True|2021-06-18T09:55:21.8551780+08:00;True|2021-06-18T09:22:27.8432927+08:00;True|2021-06-17T11:17:43.2166430+08:00;True|2021-06-17T09:24:09.8350403+08:00;True|2021-06-16T16:10:47.8564888+08:00;True|2021-06-16T16:04:09.8286582+08:00;True|2021-06-16T15:12:29.9427169+08:00;True|2021-06-16T14:58:45.6801892+08:00;True|2021-06-16T14:46:01.6873221+08:00;True|2021-06-16T11:02:06.1272477+08:00;True|2021-06-16T09:33:56.0223915+08:00;True|2021-06-16T08:50:07.6995413+08:00;True|2021-06-16T08:28:38.7692635+08:00;True|2021-06-16T01:04:19.6282474+08:00;True|2021-06-16T01:03:50.5058323+08:00;False|2021-06-16T01:02:15.3819672+08:00;False|2021-06-16T01:01:38.6171098+08:00;True|2021-06-16T00:34:54.9902044+08:00;True|2021-06-15T23:55:36.2003828+08:00;True|2021-06-15T22:47:17.2192750+08:00;True|2021-06-15T22:42:41.1512585+08:00;True|2021-06-15T22:38:01.7390462+08:00;True|2021-06-15T22:14:11.2060782+08:00;True|2021-06-15T22:12:27.0615357+08:00;True|2021-06-15T22:07:59.9280871+08:00;True|2021-06-15T22:04:21.5051427+08:00;True|2021-06-15T21:25:55.0099814+08:00;True|2021-06-15T19:13:51.3494172+08:00;True|2021-06-15T19:02:17.6844742+08:00;True|2021-06-15T18:47:37.1629411+08:00;False|2021-06-15T18:47:11.0828111+08:00;True|2021-06-15T18:38:26.6620668+08:00;True|2021-06-15T18:33:45.2069831+08:00;True|2021-06-15T18:24:52.0550838+08:00;True|2021-06-15T18:19:43.6999796+08:00;True|2021-06-15T18:08:17.2464506+08:00;True|2021-06-15T18:03:51.3952624+08:00;True|2021-06-15T18:01:20.6141766+08:00;True|2021-06-15T17:59:04.4479416+08:00;True|2021-06-15T17:41:44.6389379+08:00;True|2021-06-15T17:39:03.1565124+08:00;True|2021-06-15T17:34:41.0634638+08:00;True|2021-06-15T17:33:50.4853178+08:00;True|2021-06-15T17:25:38.5914037+08:00;True|2021-06-15T17:22:21.3611360+08:00;True|2021-06-15T17:16:49.4970813+08:00;True|2021-06-15T17:05:28.9389484+08:00;True|2021-06-15T16:52:54.6372199+08:00;True|2021-06-15T16:51:23.9081030+08:00;True|2021-06-15T16:45:40.6017997+08:00;True|2021-06-15T16:41:05.0218887+08:00;True|2021-06-15T16:38:02.8541862+08:00;True|2021-06-15T16:22:10.3118721+08:00;True|2021-06-15T16:12:11.1552506+08:00;True|2021-06-15T15:33:42.0100494+08:00;True|2021-06-15T15:28:39.7145659+08:00;True|2021-06-15T15:15:02.7939125+08:00;True|2021-06-15T14:49:14.2300396+08:00;True|2021-06-15T14:42:28.1198064+08:00;True|2021-06-15T13:30:12.7997686+08:00;True|2021-06-15T13:25:37.7284670+08:00;True|2021-06-15T13:23:43.6207813+08:00;False|2021-06-15T13:23:19.4190232+08:00;True|2021-06-15T13:16:38.5062674+08:00;True|2021-06-15T13:03:31.2055635+08:00;True|2021-06-15T12:58:43.1653215+08:00;True|2021-06-15T12:39:22.8442109+08:00;True|2021-06-15T12:35:09.1288556+08:00;False|2021-06-15T12:33:50.0723143+08:00;True|2021-06-15T11:28:01.9733727+08:00;True|2021-06-15T11:26:26.6569392+08:00;True|2021-06-15T11:22:43.0366435+08:00;True|2021-06-15T11:07:50.1610580+08:00;True|2021-06-15T10:32:59.1925931+08:00;True|2021-06-10T17:16:57.9552310+08:00;True|2021-06-10T16:44:42.2731836+08:00;True|2021-06-10T14:39:27.6745737+08:00;True|2021-06-10T12:15:05.1524413+08:00;True|2021-06-09T18:19:24.1005606+08:00;True|2021-06-09T17:56:09.5646288+08:00;True|2021-06-09T13:34:06.1882292+08:00;True|2021-06-09T13:29:54.5924933+08:00;True|2021-06-09T13:25:55.7520662+08:00;True|2021-06-09T13:07:47.6686811+08:00;True|2021-06-09T12:59:41.2595048+08:00;True|2021-06-09T12:45:27.1305548+08:00;True|2021-06-09T12:29:52.1418191+08:00;True|2021-06-09T12:24:12.7610588+08:00;True|2021-06-09T11:31:25.3409568+08:00;True|2021-06-09T09:57:44.4387175+08:00;True|2021-06-09T09:54:26.5161307+08:00;True|2021-06-09T09:14:14.7288045+08:00;True|2021-06-09T09:10:25.1812139+08:00;True|2021-06-09T08:46:21.6585123+08:00;True|2021-06-08T19:56:55.7192062+08:00;True|2021-06-08T19:52:59.0326821+08:00;True|2021-06-08T19:49:13.6274217+08:00;True|2021-06-08T19:09:22.1038939+08:00;True|2021-06-08T15:28:41.3716247+08:00;True|2021-06-08T15:26:47.2621178+08:00;True|2021-06-08T13:49:45.8936617+08:00;True|2021-06-08T13:43:18.8115502+08:00;True|2021-06-08T10:04:06.2200731+08:00;True|2021-06-08T09:17:10.0470792+08:00;True|2021-06-08T08:44:37.4395849+08:00;True|2021-06-08T00:01:09.3745613+08:00;True|2021-06-07T23:49:31.5196888+08:00;True|2021-06-07T23:41:00.8017855+08:00;True|2021-06-07T23:21:53.1371134+08:00;True|2021-06-07T23:01:27.5712153+08:00;True|2021-06-07T22:36:12.9274014+08:00;True|2021-06-07T22:23:00.6545134+08:00;True|2021-06-07T17:44:47.5686346+08:00;True|2021-06-07T17:17:01.3431233+08:00;True|2021-06-07T16:53:28.9989587+08:00;True|2021-06-07T16:41:10.4975607+08:00;True|2021-06-07T14:21:06.8176477+08:00;True|2021-06-07T14:10:39.0355659+08:00;True|2021-06-07T12:34:31.4562732+08:00;True|2021-06-07T12:28:44.9629488+08:00;True|2021-06-07T10:30:26.9387988+08:00;True|2021-06-07T09:12:14.7658099+08:00;True|2021-06-07T08:37:19.6353792+08:00;True|2021-06-07T08:35:25.2031954+08:00;True|2021-06-05T07:07:32.0541266+08:00;True|2021-06-05T06:44:35.9475270+08:00;True|2021-06-05T06:37:27.4595197+08:00;True|2021-06-05T06:26:59.7663998+08:00;True|2021-06-05T05:43:12.8699318+08:00;True|2021-06-04T17:00:41.2426007+08:00;True|2021-06-04T16:08:03.8078072+08:00;True|2021-06-04T15:47:21.6412616+08:00;True|2021-06-04T15:21:02.4239800+08:00;True|2021-06-04T15:20:37.8641854+08:00;True|2021-06-04T13:38:51.5088395+08:00;True|2021-06-04T10:20:01.7784282+08:00;True|2021-06-04T10:13:50.3548857+08:00;True|2021-06-04T10:11:25.5017821+08:00;True|2021-06-04T10:09:51.6792228+08:00;True|2021-06-04T10:02:39.5851057+08:00;True|2021-06-04T09:30:40.4495494+08:00;True|2021-06-03T13:16:36.0317546+08:00;True|2021-06-03T13:12:47.0402047+08:00;True|2021-06-02T14:37:08.9683351+08:00;True|2021-06-02T14:10:15.7439829+08:00;True|2021-06-02T13:59:46.5841931+08:00;True|2021-06-02T13:25:18.7962660+08:00;True|2021-06-02T13:23:16.2261980+08:00;True|2021-06-01T15:37:32.2495085+08:00;True|2021-06-01T15:21:01.2856122+08:00;True|2021-06-01T15:13:36.7262365+08:00;True|2021-06-01T15:10:26.8905629+08:00;True|2021-06-01T14:56:17.5231551+08:00;True|2021-06-01T14:38:39.7895927+08:00;True|2021-06-01T14:23:12.3265287+08:00;True|2021-03-01T09:11:31.3226422+08:00;True|2021-05-26T14:54:56.9426462+08:00;True|2021-05-26T13:57:33.7780451+08:00;True|2021-05-26T13:39:02.8043358+08:00;True|2021-02-25T16:01:40.2917200+08:00;True|2021-02-25T15:49:46.6681205+08:00;True|2021-02-25T15:16:30.9372640+08:00;True|2021-05-25T13:10:21.7831921+08:00;True|2021-05-25T11:21:38.5224475+08:00;True|2021-05-25T11:12:52.0637175+08:00;True|2021-05-25T11:02:18.4164663+08:00;True|2021-05-25T10:52:06.8998521+08:00;True|2021-05-25T10:50:45.0929606+08:00;True|2021-05-25T10:45:54.1498313+08:00;True|2021-05-25T10:39:27.8602249+08:00;True|2021-05-25T10:34:49.5771162+08:00;True|2021-05-25T10:17:30.3009163+08:00;True|2021-05-25T10:14:03.8512581+08:00;True|2021-05-25T10:05:33.4343836+08:00;True|2021-05-24T17:01:23.3221168+08:00;True|2021-05-24T10:11:24.0197347+08:00;False|2021-05-24T10:11:07.6338995+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="apiapp.json">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="bin/Antlr3.Runtime.dll">
      <publishTime>02/22/2013 08:43:40</publishTime>
      <publishTime>02/22/2013 16:43:40</publishTime>
    </File>
    <File Include="bin/Antlr3.Runtime.pdb">
      <publishTime>02/22/2013 08:43:40</publishTime>
      <publishTime>02/22/2013 16:43:40</publishTime>
    </File>
    <File Include="bin/BLL.dll">
      <publishTime>11/09/2022 16:02:08</publishTime>
      <publishTime>11/02/2022 22:03:01</publishTime>
      <publishTime>07/04/2023 13:06:55</publishTime>
      <publishTime>07/14/2023 11:02:17</publishTime>
    </File>
    <File Include="bin/BLL.pdb">
      <publishTime>11/09/2022 16:02:08</publishTime>
      <publishTime>11/02/2022 22:03:01</publishTime>
      <publishTime>07/04/2023 13:06:55</publishTime>
      <publishTime>07/14/2023 11:02:17</publishTime>
    </File>
    <File Include="bin/BouncyCastle.Crypto.dll">
      <publishTime>12/17/2020 21:32:28</publishTime>
      <publishTime>12/18/2020 05:32:28</publishTime>
    </File>
    <File Include="bin/DAL.dll">
      <publishTime>11/09/2022 16:02:06</publishTime>
      <publishTime>11/02/2022 22:02:58</publishTime>
      <publishTime>07/04/2023 13:06:53</publishTime>
      <publishTime>07/14/2023 11:02:16</publishTime>
    </File>
    <File Include="bin/DAL.pdb">
      <publishTime>11/09/2022 16:02:06</publishTime>
      <publishTime>11/02/2022 22:02:58</publishTime>
      <publishTime>07/04/2023 13:06:53</publishTime>
      <publishTime>07/14/2023 11:02:16</publishTime>
    </File>
    <File Include="bin/Dapper.dll">
      <publishTime>07/22/2016 14:52:40</publishTime>
      <publishTime>07/22/2016 22:52:40</publishTime>
    </File>
    <File Include="bin/DBUtility.dll">
      <publishTime>11/02/2022 22:02:56</publishTime>
      <publishTime>11/15/2022 13:55:23</publishTime>
      <publishTime>07/04/2023 13:06:50</publishTime>
      <publishTime>07/14/2023 11:02:13</publishTime>
    </File>
    <File Include="bin/DBUtility.pdb">
      <publishTime>11/09/2022 16:01:58</publishTime>
      <publishTime>11/02/2022 22:02:56</publishTime>
      <publishTime>07/04/2023 13:06:50</publishTime>
      <publishTime>07/14/2023 11:02:13</publishTime>
    </File>
    <File Include="bin/Grpc.Core.Api.dll">
      <publishTime>03/22/2022 05:17:26</publishTime>
      <publishTime>03/22/2022 13:17:26</publishTime>
    </File>
    <File Include="bin/Grpc.Core.Api.pdb">
      <publishTime>03/18/2022 23:39:42</publishTime>
      <publishTime>03/19/2022 07:39:42</publishTime>
    </File>
    <File Include="bin/Grpc.Core.dll">
      <publishTime>03/22/2022 05:17:20</publishTime>
      <publishTime>03/22/2022 13:17:20</publishTime>
    </File>
    <File Include="bin/Grpc.Core.pdb">
      <publishTime>03/18/2022 23:39:48</publishTime>
      <publishTime>03/19/2022 07:39:48</publishTime>
    </File>
    <File Include="bin/grpc_csharp_ext.x64.dll">
      <publishTime>03/22/2022 05:17:22</publishTime>
      <publishTime>03/22/2022 13:17:22</publishTime>
    </File>
    <File Include="bin/grpc_csharp_ext.x86.dll">
      <publishTime>03/22/2022 05:17:22</publishTime>
      <publishTime>03/22/2022 13:17:22</publishTime>
    </File>
    <File Include="bin/ICSharpCode.SharpZipLib.dll">
      <publishTime>05/08/2021 17:08:30</publishTime>
      <publishTime>05/09/2021 01:08:30</publishTime>
    </File>
    <File Include="bin/ICSharpCode.SharpZipLib.pdb">
      <publishTime>05/08/2021 17:08:30</publishTime>
      <publishTime>05/09/2021 01:08:30</publishTime>
    </File>
    <File Include="bin/Interop.gregn6Lib.dll">
      <publishTime>08/25/2021 10:28:25</publishTime>
    </File>
    <File Include="bin/Kingdee.BOS.WebApi.Client.dll">
      <publishTime>02/09/2023 20:21:24</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="bin/Kingdee.BOS.WebApi.FormService.dll">
      <publishTime>09/20/2018 19:23:20</publishTime>
@@ -90,99 +90,99 @@
      <publishTime>09/20/2018 19:28:34</publishTime>
    </File>
    <File Include="bin/libgrpc_csharp_ext.x64.dylib">
      <publishTime>03/18/2022 23:38:44</publishTime>
      <publishTime>03/19/2022 07:38:44</publishTime>
    </File>
    <File Include="bin/libgrpc_csharp_ext.x64.so">
      <publishTime>03/18/2022 23:38:42</publishTime>
      <publishTime>03/19/2022 07:38:42</publishTime>
    </File>
    <File Include="bin/Microsoft.Azure.AppService.ApiApps.Service.dll">
      <publishTime>03/18/2015 17:02:50</publishTime>
      <publishTime>03/19/2015 01:02:50</publishTime>
    </File>
    <File Include="bin/Microsoft.CSharp.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/Microsoft.Web.Infrastructure.dll">
      <publishTime>07/25/2012 11:48:56</publishTime>
      <publishTime>07/25/2012 19:48:56</publishTime>
    </File>
    <File Include="bin/Model.dll">
      <publishTime>11/09/2022 16:02:01</publishTime>
      <publishTime>11/02/2022 22:02:56</publishTime>
      <publishTime>07/04/2023 13:06:51</publishTime>
      <publishTime>07/14/2023 11:02:13</publishTime>
    </File>
    <File Include="bin/Model.pdb">
      <publishTime>11/09/2022 16:02:01</publishTime>
      <publishTime>11/02/2022 22:02:56</publishTime>
      <publishTime>07/04/2023 13:06:51</publishTime>
      <publishTime>07/14/2023 11:02:13</publishTime>
    </File>
    <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="bin/Newtonsoft.Json.dll">
      <publishTime>08/03/2014 20:33:56</publishTime>
      <publishTime>08/04/2014 04:33:56</publishTime>
    </File>
    <File Include="bin/NPOI.dll">
      <publishTime>10/23/2021 01:07:54</publishTime>
      <publishTime>10/23/2021 09:07:54</publishTime>
    </File>
    <File Include="bin/NPOI.OOXML.dll">
      <publishTime>10/23/2021 01:07:56</publishTime>
    </File>
    <File Include="bin/NPOI.OOXML.pdb">
      <publishTime>10/23/2021 09:07:56</publishTime>
    </File>
    <File Include="bin/NPOI.OOXML.pdb">
      <publishTime>10/23/2021 17:07:56</publishTime>
    </File>
    <File Include="bin/NPOI.OpenXml4Net.dll">
      <publishTime>10/23/2021 01:07:54</publishTime>
      <publishTime>10/23/2021 09:07:54</publishTime>
    </File>
    <File Include="bin/NPOI.OpenXml4Net.pdb">
      <publishTime>10/23/2021 09:07:54</publishTime>
      <publishTime>10/23/2021 17:07:54</publishTime>
    </File>
    <File Include="bin/NPOI.OpenXmlFormats.dll">
      <publishTime>10/23/2021 01:07:54</publishTime>
      <publishTime>10/23/2021 09:07:54</publishTime>
    </File>
    <File Include="bin/NPOI.OpenXmlFormats.pdb">
      <publishTime>10/23/2021 09:07:54</publishTime>
      <publishTime>10/23/2021 17:07:54</publishTime>
    </File>
    <File Include="bin/NPOI.pdb">
      <publishTime>10/23/2021 09:07:54</publishTime>
      <publishTime>10/23/2021 17:07:54</publishTime>
    </File>
    <File Include="bin/Pub_Class.dll">
      <publishTime>11/09/2022 16:01:56</publishTime>
      <publishTime>11/02/2022 22:02:54</publishTime>
      <publishTime>07/04/2023 13:06:49</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/Pub_Class.pdb">
      <publishTime>11/09/2022 16:01:56</publishTime>
      <publishTime>11/02/2022 22:02:54</publishTime>
      <publishTime>07/04/2023 13:06:49</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/Pub_Control.dll">
      <publishTime>11/09/2022 16:01:57</publishTime>
      <publishTime>11/02/2022 22:02:55</publishTime>
      <publishTime>07/04/2023 13:06:49</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/Pub_Control.pdb">
      <publishTime>11/09/2022 16:01:57</publishTime>
      <publishTime>11/02/2022 22:02:55</publishTime>
      <publishTime>07/04/2023 13:06:49</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/RestSharp.dll">
      <publishTime>08/30/2012 22:22:50</publishTime>
      <publishTime>08/31/2012 06:22:50</publishTime>
    </File>
    <File Include="bin/SQLHelper.dll">
      <publishTime>07/04/2023 13:06:50</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/SQLHelper.pdb">
      <publishTime>11/09/2022 16:01:57</publishTime>
      <publishTime>11/02/2022 22:02:55</publishTime>
      <publishTime>07/04/2023 13:06:50</publishTime>
      <publishTime>07/14/2023 11:02:12</publishTime>
    </File>
    <File Include="bin/stdole.dll">
      <publishTime>05/09/2021 13:35:37</publishTime>
    </File>
    <File Include="bin/Swashbuckle.Core.dll">
      <publishTime>02/15/2015 17:57:08</publishTime>
      <publishTime>02/16/2015 01:57:08</publishTime>
    </File>
    <File Include="bin/System.Buffers.dll">
      <publishTime>07/19/2017 10:01:28</publishTime>
      <publishTime>07/19/2017 18:01:28</publishTime>
    </File>
    <File Include="bin/System.ComponentModel.DataAnnotations.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
@@ -206,19 +206,19 @@
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/System.IdentityModel.Tokens.Jwt.dll">
      <publishTime>08/19/2014 10:03:34</publishTime>
      <publishTime>08/19/2014 18:03:34</publishTime>
    </File>
    <File Include="bin/System.Memory.dll">
      <publishTime>04/17/2019 16:24:34</publishTime>
      <publishTime>04/18/2019 00:24:34</publishTime>
    </File>
    <File Include="bin/System.Net.Http.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/System.Net.Http.Formatting.dll">
      <publishTime>11/28/2018 13:00:36</publishTime>
      <publishTime>11/28/2018 21:00:36</publishTime>
    </File>
    <File Include="bin/System.Runtime.CompilerServices.Unsafe.dll">
      <publishTime>09/18/2018 19:38:10</publishTime>
      <publishTime>09/19/2018 03:38:10</publishTime>
    </File>
    <File Include="bin/System.Runtime.Serialization.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
@@ -227,7 +227,7 @@
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/System.Web.Cors.dll">
      <publishTime>11/28/2018 12:58:44</publishTime>
      <publishTime>11/28/2018 20:58:44</publishTime>
    </File>
    <File Include="bin/System.Web.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
@@ -242,37 +242,37 @@
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/System.Web.Helpers.dll">
      <publishTime>01/28/2015 04:04:30</publishTime>
      <publishTime>01/28/2015 12:04:30</publishTime>
    </File>
    <File Include="bin/System.Web.Http.Cors.dll">
      <publishTime>11/28/2018 13:01:26</publishTime>
      <publishTime>11/28/2018 21:01:26</publishTime>
    </File>
    <File Include="bin/System.Web.Http.dll">
      <publishTime>11/28/2018 13:01:00</publishTime>
      <publishTime>11/28/2018 21:01:00</publishTime>
    </File>
    <File Include="bin/System.Web.Http.WebHost.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="bin/System.Web.Mvc.dll">
      <publishTime>01/28/2015 04:02:18</publishTime>
      <publishTime>01/28/2015 12:02:18</publishTime>
    </File>
    <File Include="bin/System.Web.Optimization.dll">
      <publishTime>02/11/2014 15:26:04</publishTime>
      <publishTime>02/11/2014 23:26:04</publishTime>
    </File>
    <File Include="bin/System.Web.Razor.dll">
      <publishTime>01/28/2015 04:02:32</publishTime>
      <publishTime>01/28/2015 12:02:32</publishTime>
    </File>
    <File Include="bin/System.Web.Services.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/System.Web.WebPages.Deployment.dll">
      <publishTime>01/28/2015 04:04:30</publishTime>
      <publishTime>01/28/2015 12:04:30</publishTime>
    </File>
    <File Include="bin/System.Web.WebPages.dll">
      <publishTime>01/28/2015 04:04:30</publishTime>
      <publishTime>01/28/2015 12:04:30</publishTime>
    </File>
    <File Include="bin/System.Web.WebPages.Razor.dll">
      <publishTime>01/28/2015 04:04:30</publishTime>
      <publishTime>01/28/2015 12:04:30</publishTime>
    </File>
    <File Include="bin/System.Xml.dll">
      <publishTime>09/26/2012 03:16:08</publishTime>
@@ -281,12 +281,12 @@
      <publishTime>09/26/2012 03:16:08</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>11/24/2014 11:18:48</publishTime>
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>11/14/2022 11:23:59</publishTime>
      <publishTime>11/02/2022 22:03:04</publishTime>
      <publishTime>07/04/2023 13:06:58</publishTime>
      <publishTime>07/14/2023 11:02:20</publishTime>
    </File>
    <File Include="bin/WebAPI.dll.config">
      <publishTime>12/15/2021 17:59:43</publishTime>
@@ -294,199 +294,202 @@
    <File Include="bin/WebAPI.pdb">
      <publishTime>11/14/2022 11:23:59</publishTime>
      <publishTime>11/02/2022 22:03:04</publishTime>
      <publishTime>07/04/2023 13:06:58</publishTime>
      <publishTime>07/14/2023 11:02:20</publishTime>
    </File>
    <File Include="bin/WebGrease.dll">
      <publishTime>07/17/2013 17:03:52</publishTime>
      <publishTime>07/18/2013 01:03:52</publishTime>
    </File>
    <File Include="bin/zh-Hans/System.Net.Http.Formatting.resources.dll">
      <publishTime>11/29/2018 13:26:02</publishTime>
      <publishTime>11/29/2018 21:26:02</publishTime>
    </File>
    <File Include="bin/zh-Hans/System.Web.Http.resources.dll">
      <publishTime>11/29/2018 13:26:30</publishTime>
      <publishTime>11/29/2018 21:26:30</publishTime>
    </File>
    <File Include="Config/kdapi.config">
      <publishTime>08/19/2022 08:17:39</publishTime>
      <publishTime>04/06/2023 15:57:01</publishTime>
    </File>
    <File Include="Content/bootstrap.css">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:01</publishTime>
    </File>
    <File Include="Content/bootstrap.min.css">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:01</publishTime>
    </File>
    <File Include="Content/Site.css">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:01</publishTime>
    </File>
    <File Include="DLL/BLL.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/DAL.dll">
      <publishTime>11/01/2021 09:26:33</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/DBUtility.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/Kingdee.BOS.WebApi.Client.dll">
      <publishTime>02/09/2023 20:21:24</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/Model.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/Newtonsoft.Json.Net35.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/Pub_Class.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/Pub_Control.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="DLL/SQLHelper.dll">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.eot">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.svg">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.ttf">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="fonts/glyphicons-halflings-regular.woff">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Global.asax">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="grpc_csharp_ext.x64.dll">
      <publishTime>03/22/2022 05:17:22</publishTime>
      <publishTime>03/22/2022 13:17:22</publishTime>
    </File>
    <File Include="grpc_csharp_ext.x86.dll">
      <publishTime>03/22/2022 05:17:22</publishTime>
      <publishTime>03/22/2022 13:17:22</publishTime>
    </File>
    <File Include="Index.html">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="libgrpc_csharp_ext.x64.dylib">
      <publishTime>03/18/2022 23:38:44</publishTime>
      <publishTime>03/19/2022 07:38:44</publishTime>
    </File>
    <File Include="libgrpc_csharp_ext.x64.so">
      <publishTime>03/18/2022 23:38:42</publishTime>
      <publishTime>03/19/2022 07:38:42</publishTime>
    </File>
    <File Include="libman.json">
      <publishTime>07/12/2023 08:14:21</publishTime>
    </File>
    <File Include="Metadata/deploymentTemplates/apiappconfig.azureresource.json">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="packages.config">
      <publishTime>11/29/2022 10:36:46</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/bootstrap.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/bootstrap.min.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.min.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery-1.10.2.min.map">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.min.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.unobtrusive.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/jquery.validate.unobtrusive.min.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Scripts/modernizr-2.6.2.js">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Shared/Error.cshtml">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/Shared/_Layout.cshtml">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/web.config">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Views/_ViewStart.cshtml">
      <publishTime>08/19/2021 09:44:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Customer_Model.datasource">
      <publishTime>06/21/2023 11:15:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Department_Model.datasource">
      <publishTime>06/21/2023 11:15:00</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Employee_Model.datasource">
      <publishTime>06/21/2023 11:15:02</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_StockPlace_Model.datasource">
      <publishTime>06/21/2023 11:15:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Supplier_Model.datasource">
      <publishTime>06/21/2023 11:15:01</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsCLD_Warehouse_Model.datasource">
      <publishTime>06/21/2023 11:15:00</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BadReason_Model.datasource">
      <publishTime>06/21/2023 11:15:02</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model.datasource">
      <publishTime>06/21/2023 11:15:06</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_BarCodeBill_WMS_Model_View.datasource">
      <publishTime>06/21/2023 11:15:06</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Customer_Model.datasource">
      <publishTime>06/21/2023 11:15:04</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Department_Model.datasource">
      <publishTime>06/21/2023 11:15:03</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Employee_Model.datasource">
      <publishTime>06/21/2023 11:15:05</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Group_Model.datasource">
      <publishTime>06/21/2023 11:15:03</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Item30JiTai_Model.datasource">
      <publishTime>06/21/2023 11:15:02</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Source_Model.datasource">
      <publishTime>06/21/2023 11:15:05</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_StockPlace_Model.datasource">
      <publishTime>06/21/2023 11:15:04</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Supplier_Model.datasource">
      <publishTime>06/21/2023 11:15:04</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsGy_Warehouse_Model.datasource">
      <publishTime>06/21/2023 11:15:03</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsKf_ICStockBill_Mould.datasource">
      <publishTime>06/21/2023 11:15:05</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/ClsKf_ICStockBill_WMS.datasource">
      <publishTime>06/21/2023 11:15:00</publishTime>
      <publishTime>04/06/2023 15:57:02</publishTime>
    </File>
    <File Include="Web References/WebS/Reference.cs">
      <publishTime>12/20/2021 13:19:56</publishTime>
    </File>
    <File Include="Web References/WebS/Reference.map">
      <publishTime>06/21/2023 11:14:55</publishTime>
      <publishTime>04/26/2023 13:39:12</publishTime>
    </File>
    <File Include="Web References/WebS/WebService1.disco">
      <publishTime>12/20/2021 13:19:56</publishTime>
@@ -500,7 +503,7 @@
    <File Include="Web.config">
      <publishTime>11/14/2022 11:24:08</publishTime>
      <publishTime>11/02/2022 22:03:20</publishTime>
      <publishTime>07/04/2023 13:07:07</publishTime>
      <publishTime>07/14/2023 11:02:26</publishTime>
    </File>
  </ItemGroup>
</Project>
WebAPI/WebAPI.csproj
@@ -241,6 +241,7 @@
    <Content Include="Views\Scripts\bootstrap.js" />
    <Content Include="Views\Scripts\bootstrap.min.js" />
    <Content Include="Config\kdapi.config" />
    <Content Include="libman.json" />
    <None Include="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -497,6 +498,7 @@
    <Compile Include="Controllers\基础资料\基础资料\Gy_WorkStationBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Xt_CheckFlowBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Xt_CheckItemBillController.cs" />
    <Compile Include="Controllers\基础资料\工资基础资料\Gy_ProcCommPriceController.cs" />
    <Compile Include="Controllers\工资管理\Pay_MonthlySalaryReportController.cs" />
    <Compile Include="Controllers\工资管理\Pay_PieceRateWageReportController.cs" />
    <Compile Include="Controllers\工资管理\Gy_ClassTimePrjBillController.cs" />
@@ -568,6 +570,10 @@
    <Compile Include="Controllers\生产管理\报工台工序\Sc_QualityReportStepBillController.cs" />
    <Compile Include="Controllers\生产管理\生产任务单\Sc_ICMOBillController.cs" />
    <Compile Include="Controllers\生产管理\质量汇报单\Sc_QualityReportBillController.cs" />
    <Compile Include="Controllers\项目管理\业绩指标\PM_YearEmployeeMoneyBillController.cs" />
    <Compile Include="Controllers\项目管理\工作任务\PM_WorkTaskBillController.cs" />
    <Compile Include="Controllers\项目管理\工程项目\PM_ProjectBillController.cs" />
    <Compile Include="Controllers\项目管理\项目阶段\Gy_ProjectStageController.cs" />
    <Compile Include="Dapper\SqlHelper.cs" />
    <Compile Include="Dapper\SqlPools.cs" />
    <Compile Include="DbUntil\DataFormatUntil.cs" />
WebAPI/WebAPI.csproj.user
@@ -9,7 +9,7 @@
    <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
    <NameOfLastUsedPublishProfile>FolderProfile</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\Git\houduan\WebAPI\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\GIT仓库\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\网站发布\后端代码\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <UseIISExpress>false</UseIISExpress>
    <Use64BitIISExpress />
WebAPI/libman.json
New file
@@ -0,0 +1,5 @@
{
  "version": "1.0",
  "defaultProvider": "cdnjs",
  "libraries": []
}