zrg
7 天以前 981ea6f779477b4b729c6796cfc42ee933c781b0
WebAPI/Controllers/WebAPIController.cs
@@ -1150,7 +1150,52 @@
            }
        }
        /// <summary>
        /// 获取仓库列表  --添加模具仓库条件  用于只查询模具仓库
        /// </summary>
        /// <returns></returns>
        [Route("Web/GetWarehouseList_Json_MJ")]
        [HttpGet]
        public object GetWarehouseList_Json_MJ(string Warehouse, Int64 HOrgID)
        {
            sWhere = " Where HStopFlag=0  and HEndFlag=1 and HWarehouseType='模具仓库' and HUSEORGID =" + HOrgID + "";
            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
            if (Warehouse != "")
            {
                sWhere = sWhere + " and ( HNumber like '%" + Warehouse + "%' or HName like '%" + Warehouse + "%'  or HUSEORGID like '%" + Warehouse + "%' ) ";
            }
            try
            {
                WebS.WebService1 oWeb = new WebS.WebService1();
                ds = oWeb.GetWarehouseList(sWhere, ref DBUtility.ClsPub.sErrInfo);
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    objjson.code = "0";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        /// <summary>
        /// 获取仓位列表
@@ -1424,14 +1469,110 @@
            }
        }
        /// <summary>
        /// 获取生产资源列表下拉框
        /// </summary>
        /// <returns></returns>
        [Route("Web/GetSouceList_Select")]
        [HttpGet]
        public object GetSouceList_Select(string HMaterID,Int64 HOrgID)
        {
            sWhere = " and HStopFlag=0 and HUSEORGID =" + HOrgID + "";
            try
            {
                string sql = "EXEC h_p_Gy_SouceList_PC " + HMaterID + ",'" + sWhere + "'";
                ds = oCN.RunProcReturn(sql, "h_p_Gy_SouceList_PC");
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #region 获取职员列表 (添加车间筛选)
        [Route("Web/GetEmployeeList_Json")]
        [HttpGet]
        public object GetEmployeeList_Json3(string Employee, Int64 HGroupID, Int64 HDeptID = -1)
        {
            // 给部门(车间)ID设置默认值,当没有传入值或者值为0的时候,走旧有的函数,否则走新的逻辑
            if(HDeptID == -1 || HDeptID == 0)
            {
                return GetEmployeeList_Json2(Employee, HGroupID);
            }else
            {
                sWhere = $" Where HStopFlag=0  and HEndFlag=1  and HDeptID=${HDeptID}";
                if(Employee != "")
                {
                    sWhere += " and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' )";
                }
                if(HGroupID != 0)
                {
                    sWhere += " and HGroupID=" + HGroupID.ToString();
                }
                try
                {
                    string sql = $"Select * from h_v_IF_Emp {sWhere} Order by HNumber";
                    ds = oCN.RunProcReturn(sql, "h_v_IF_Emp");
                    if (ds == null || ds.Tables[0].Rows.Count <= 0)
                    {
                        // 如果 递入 部门没有维护人员列表 则降级使用老方案
                        return GetEmployeeList_Json2(Employee, HGroupID);
                    }
                    else
                    {
                        objjson.code = "0";
                        objjson.count = 1;
                        objjson.Message = "获取成功!";
                        objjson.data = ds.Tables[0];
                        return objjson;
                    }
                }
                catch (Exception ex)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + ex.ToString();
                    objjson.data = null;
                    return objjson;
                }
            }
        }
        #endregion
        /// <summary>
        /// 获取职员列表
        /// </summary>
        /// <returns></returns>
        [Route("Web/GetEmployeeList_Json")]
        [HttpGet]
        public object GetEmployeeList_Json(string Employee, Int64 HGroupID)
        // [Route("Web/GetEmployeeList_Json")]
        // [HttpGet]
        public object GetEmployeeList_Json2(string Employee, Int64 HGroupID)
        {
            sWhere = " Where HStopFlag=0  and HEndFlag=1";
            //sWhere = " Where HStopFlag=0  and HEndFlag=1  and HUSEORGID = " + DBUtility.ClsPub.HORGANIZATIONSID.ToString();
@@ -1450,11 +1591,11 @@
            {
                if (Employee != "")
                {
                    sWhere = " Where HStopFlag=0 and HWHID=" + HGroupID.ToString() + " and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' ) ";
                    sWhere = " Where HStopFlag=0 and HGroupID=" + HGroupID.ToString() + " and ( HNumber like '%" + Employee + "%' or HName like '%" + Employee + "%' ) ";
                }
                else
                {
                    sWhere = " Where HStopFlag=0 and HWHID=" + HGroupID.ToString();
                    sWhere = " Where HStopFlag=0 and HGroupID=" + HGroupID.ToString();
                }
            }
            try
@@ -1489,6 +1630,7 @@
            }
        }
        /// <summary>
        /// 获取班次列表
@@ -18364,7 +18506,7 @@
            Int64 HItemID = 0;
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            ListModels oListModels = new ListModels();
            try
            {
@@ -18876,7 +19018,8 @@
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            } catch (Exception e)
            }
            catch (Exception e)
            {
                objjson.code = "0";
                objjson.count = 0;
@@ -20027,7 +20170,7 @@
                List<object> columnNameList = new List<object>();
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql = "Select * from h_v_Gy_GetSampleSchemeListView where 1 = 1 " + sWhere + "Order by hmainid ";
                string sql = "Select * from h_v_Gy_GetSampleSchemeListView where 1 = 1 and HUSEORGID = "+OrganizationID + sWhere + "Order by hmainid ";
                ds = oCN.RunProcReturn(sql, "h_v_Gy_GetSampleSchemeListView");
                //添加列名
@@ -20178,6 +20321,7 @@
            }
        }
        /// <summary>
        /// 根据物料+工序获取检验方案
        /// </summary>
@@ -20228,21 +20372,70 @@
        /// <returns></returns>
        [Route("Web/GetCheckItemByCheckProjectID")]
        [HttpGet]
        public object GetCheckItemByCheckProjectID(int CheckProjectID, int HBatchQty)
        public object GetCheckItemByCheckProjectID(int CheckProjectID, int HBatchQty, int HMaterID, string HBillType)
        {
            if (CheckProjectID <= 0)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "检验方案未选择";
                objjson.data = null;
                return objjson;
            }
            //if (CheckProjectID <= 0)
            //{
            //    objjson.code = "0";
            //    objjson.count = 0;
            //    objjson.Message = "检验方案未选择";
            //    objjson.data = null;
            //    return objjson;
            //}
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql = "exec h_p_Gy_GetQCCheckItemByProject " + CheckProjectID + "," + HBatchQty;
                string sql = "exec h_p_Gy_GetQCCheckItemByProject " + CheckProjectID + "," + HBatchQty + "," + HMaterID + ",'" + HBillType + "'";
                ds = oCN.RunProcReturn(sql, "h_p_Gy_GetQCCheckItemByProject");
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        /// <summary>
        /// 根据检验方案主内码获取检验项目,前面的会把先获取物料的默认质检方案,APP只根据检验方案ID获取对应检验项目
        /// </summary>
        /// <returns></returns>
        [Route("Web/GetCheckItemByCheckProjectID_Sec")]
        [HttpGet]
        public object GetCheckItemByCheckProjectID_Sec(int CheckProjectID, int HBatchQty, int HMaterID, string HBillType)
        {
            //if (CheckProjectID <= 0)
            //{
            //    objjson.code = "0";
            //    objjson.count = 0;
            //    objjson.Message = "检验方案未选择";
            //    objjson.data = null;
            //    return objjson;
            //}
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                string sql = "exec h_p_Gy_GetQCCheckItemByProject_Sec " + CheckProjectID + "," + HBatchQty + "," + HMaterID + ",'" + HBillType + "'";
                ds = oCN.RunProcReturn(sql, "h_p_Gy_GetQCCheckItemByProject_Sec");
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objjson.code = "0";
@@ -20502,6 +20695,7 @@
                }
                else
                {
                    sWhere = sWhere.Replace("\"", "''");
                    ds = oCN.RunProcReturn("exec h_p_IF_BarCodeBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_IF_BarCodeBillList");
                }
@@ -20837,6 +21031,80 @@
            }
        }
        #region
        [Route("Web/GetMouldBillsList")]
        [HttpGet]
        public object GetMouldBillsList(string sWhere, string Type, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                string HView = "";
                switch (Type)
                {
                    case "RC": // 模具维修检验单
                        HView = "h_v_Sc_MouldRepairCheckBillList";
                        break;
                    case "PG": // 模具维修派工单
                        HView = "h_v_Sc_MouldRepairSendWorkBill";
                        break;
                    default:
                        objjson.code = "0";
                        objjson.count = 0;
                        objjson.Message = "设备模块类型错误!";
                        objjson.data = null;
                        return objjson;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select ManagerFlag from gy_czygl where czymc='" + user.Trim() + "'", "gy_czygl");
                if (!(bool)ds.Tables[0].Rows[0]["ManagerFlag"])  //是否管理员
                {
                    //不是管理员
                    sWhere += " and 制单人 = '" + user + "'";
                }
                string sql = string.Format(@"select * from " + HView + " where 1 = 1 " + sWhere + " order by 日期 desc, hmainid desc");
                ds = oCN.RunProcReturn(sql, HView);
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取失败,查无数据";
                    objjson.data = null;
                    objjson.list = columnNameList;
                    return objjson;
                }
                else
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    objjson.list = columnNameList;
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        /// <summary>
        /// 查询各类设备单据列表(设备点检,设备维修,设备保养......)
        /// </summary>
@@ -20872,6 +21140,9 @@
                    case "XJ":
                        HView = "h_v_Sb_EquipPatrolCheckBillList";
                        break;
                    case "PG": // 设备维修派工单
                        HView = "h_v_Sb_EquipRepairSendWorkBillList";
                        break;
                    default:
                        objjson.code = "0";
                        objjson.count = 0;
@@ -20890,7 +21161,7 @@
                }
                string sql = string.Format(@"select * from " + HView + " where 1 = 1 " + sWhere);
                string sql = string.Format(@"select * from " + HView + " where 1 = 1 " + sWhere + " order by 日期 desc, hmainid desc");
                ds = oCN.RunProcReturn(sql, HView);
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
@@ -21388,7 +21659,7 @@
            {
                DataSet ds = oCN.RunProcReturn("exec [h_p_Gy_MenuDefineSet_APP_Get] " +
                    "@HMaker = N'" + HMaker + "'," +
                    "@HType = N'" + HType + "'," +
                    "@HType = N'" + HType + "'," +
                    "@HMenuListName = N'" + HMenuListName + "'"
                    , "h_p_Gy_MenuDefineSet_APP_Get");
@@ -21443,7 +21714,7 @@
                    list.ForEach(one =>
                    {
                        string sql2 = "insert into Gy_MenuDefineSet_APP( HEntryID, HIndex, HName, HMenuName, HPicNum, HShowMode, HMaker)" +
                       "Values('" + one.HEntryID + "','" + one.HIndex + "','" + one.HName + "','" + MenuName + "','"
                       "Values('" + one.HEntryID + "','" + one.HIndex + "','" + one.HName + "','" + MenuName + "','"
                       + one.HPicNum + "','" + one.HShowMode + "','" + user + "')";
                        oCN.RunProcReturn(sql2, "Gy_MenuDefineSet_APP");
                    });
@@ -21510,7 +21781,7 @@
                {
                    string sql1 = "select HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HPicNum,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain from Gy_MenuDefineSet where HMakeName=" +
                        "(select   top 1 c.GroupName  from Gy_Czygl a left join System_UserGroupInfo b on a.Czybm = b.UserId  " +
                        "left join System_UserGroup c on b.GroupId = c.GroupID  where a.Czymc ='"+HMakeName+"' order by len(c.GroupName ))";
                        "left join System_UserGroup c on b.GroupId = c.GroupID  where a.Czymc ='" + HMakeName + "' order by len(c.GroupName ))";
                    ds = oCn.RunProcReturn(sql1, "Gy_MenuDefineSet");        //查询用户绑定的角色 是否设置菜单信息 取角色名称最短的一个
                    if ((ds.Tables[0] == null || ds.Tables[0].Rows.Count == 0))
                    {
@@ -21521,8 +21792,8 @@
                            sql = "Select HitemID,HNumber,HName,HPartentID,HLevel,Hurl,HShowMode,isnull(HTranslationText_English,HName) HTranslationText_English,isnull(HTranslationText_Spain,HName) HTranslationText_Spain,HPicNum from Gy_Menu_1 where HType = '" + HType + "' Order by HPosition,len(HitemID),HitemID  ";
                            ds = oCn.RunProcReturn(sql, "Gy_Menu_1");
                        }
                    }
                    }
                }
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)       //将菜单的根节点保存到列表menu中
@@ -21724,7 +21995,7 @@
        {
            try
            {
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -21816,7 +22087,7 @@
                        if (HPartentID == "0" || HPartentID == ds.Tables[0].Rows[0]["HItemID"].ToString())
                        {
                            string HPosition = ds.Tables[0].Rows[0]["HPosition"].ToString();
                            sql = "insert into Gy_MenuDefineSet(HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HMakeName,HPicNum,HPosition,HTranslationText_English,HTranslationText_Spain) values('" + saveDataList[i].HItemID + "','" + HPartentID + "','" + HNumber + "','" + saveDataList[i].HName + "'," + HLevel + ",'" + Hurl + "','" + HType + "','" + HMakeName + "','" + HPicNum + "','" + HPosition + "','"+ HTranslationText_English + "','" + HTranslationText_Spain + "')";
                            sql = "insert into Gy_MenuDefineSet(HItemID,HPartentID,HNumber,HName,HLevel,Hurl,HType,HMakeName,HPicNum,HPosition,HTranslationText_English,HTranslationText_Spain) values('" + saveDataList[i].HItemID + "','" + HPartentID + "','" + HNumber + "','" + saveDataList[i].HName + "'," + HLevel + ",'" + Hurl + "','" + HType + "','" + HMakeName + "','" + HPicNum + "','" + HPosition + "','" + HTranslationText_English + "','" + HTranslationText_Spain + "')";
                            oCN.RunProc(sql);
                        }
                        else
@@ -21860,7 +22131,7 @@
        //快捷方式自定义菜单:获取树组件数据
        [Route("Web/Xt_UserFastMenu_Display")]
        [HttpGet]
        public object Xt_UserFastMenu_Display(string HMakeName, string HType,string HModelAtributos)
        public object Xt_UserFastMenu_Display(string HMakeName, string HType, string HModelAtributos)
        {
            try
            {
@@ -21982,7 +22253,7 @@
                            string HCaption = ds.Tables[0].Rows[0]["HName"].ToString();
                            string HType = ds.Tables[0].Rows[0]["HType"].ToString();
                            sql = "insert into Xt_UserFastMenu(HUserID,HSubFuncID,HCaption,HType,HModelAtributos) values('" + HUserID + "','" + HSubFuncID + "','" + HCaption + "','" + HType + "','"+ HModelAtributos + "')";
                            sql = "insert into Xt_UserFastMenu(HUserID,HSubFuncID,HCaption,HType,HModelAtributos) values('" + HUserID + "','" + HSubFuncID + "','" + HCaption + "','" + HType + "','" + HModelAtributos + "')";
                            oCN.RunProc(sql);
                        }
                    }
@@ -22012,7 +22283,7 @@
        //快捷方式自定义菜单:获取树组件数据
        [Route("Web/Xt_UserFastMenu_Init")]
        [HttpGet]
        public object Xt_UserFastMenu_Init(string HMakeName, string HType,string HModelAtributos)
        public object Xt_UserFastMenu_Init(string HMakeName, string HType, string HModelAtributos)
        {
            try
            {
@@ -22412,7 +22683,7 @@
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("Select * from Xt_BillType where HNumber = '" + HModuleType + "'", "Xt_BillType");
                ds = oCN.RunProcReturn("Select * from Xt_BillType  with(nolock) where HNumber = '" + HModuleType + "'", "Xt_BillType");
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
@@ -22441,6 +22712,7 @@
            }
        }
        #region 通过单据类型、单据号查询单据信息
        /// <summary>
        /// 通过单据类型获取对应视图并通过单据号查询单据信息
        /// </summary>
@@ -22456,7 +22728,7 @@
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("exec h_p_Gy_GetBillInfoByHBillTypeAndHBillNo N'" + HBillType + "',N'" + HBillNo +
                ds = oCN.RunProcReturn("exec h_p_Gy_GetBillInfoByHBillTypeAndHBillNo N'" + HBillType + "',N'" + HBillNo +
                    "'," + HStockOrgID, "h_p_Gy_GetBillInfoByHBillTypeAndHBillNo");
                if (ds == null)
@@ -22467,7 +22739,7 @@
                    objjson.data = null;
                    return objjson;
                }
                else if((bool)ds.Tables[1].Rows[0]["returnType"] == false)
                else if ((bool)ds.Tables[1].Rows[0]["returnType"] == false)
                {
                    objjson.code = "0";
                    objjson.count = 0;
@@ -22493,6 +22765,62 @@
                return objjson;
            }
        }
        #endregion
        #region 通过单据类型、单据内码、子内码查询单据信息
        /// <summary>
        /// 通过单据类型获取对应视图并通过单据号查询单据信息
        /// </summary>
        /// <param name="HBillNo"></param>
        /// <param name="HBillType"></param>
        /// <param name="HStoreOrgID"></param>
        /// <returns></returns>
        [Route("Web/GetBillInfo_GenerateBillCode")]
        [HttpGet]
        public object GetBillInfo_GenerateBillCode(string HBillType, string HInterID, int HEntryID)
        {
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("exec h_p_Gy_GetBillInfo_GenerateCode N'" + HBillType + "'," + HInterID +
                    "," + HEntryID, "h_p_Gy_GetBillInfo_GenerateCode");
                if (ds == null)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
                    objjson.data = null;
                    return objjson;
                }
                else if ((bool)ds.Tables[1].Rows[0]["returnType"] == false)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败" + ds.Tables[1].Rows[1]["payload"];
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        /// <summary>
@@ -22555,7 +22883,800 @@
            }
        }
        #region 小卫电器获取物料条码对应单据
        /// <summary>
        /// 小卫电器获取物料条码对应单据
        /// </summary>
        /// <param name="sWhere">自定义过滤条件</param>
        /// <param name="HBillType">单据号</param>
        /// <param name="HSourceBillType">源单号</param>
        /// <returns></returns>
        [Route("web/XiaoWeiBarCodeQuery")]
        [HttpGet]
        public object XiaoWeiBarCodeQuery(string sWhere, int HBillType, int HSourceBillType)
        {
            try
            {
                ds = oCN.RunProcReturn("exec h_p_XiaoWeiBarCodeQuery '" + sWhere + "'," + HBillType + "," + HSourceBillType, "h_p_XiaoWeiBarCodeQuery");
                if(ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "该物料条码无对应的单据";
                    objjson.data = null;
                    return objjson;
                }else
                {
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = ds.Tables[0];
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region  费用项目  设置列表/保存/编辑/删除方法
        /// <summary>
        ///  项目费用 保存
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("SaveGy_ItemMoney")]
        [HttpPost]
        public object SaveGy_ItemMoney([FromBody] JObject msg)
        {
            DataSet ds;
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
            //查看权限
            if (!DBUtility.ClsPub.Security_Log("Gy_ItemMoney_Edit", 1, false, msg2))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            Int64 HItemID = 0;
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //获取最大ID值赋值
            DataSet Maxds = oCN.RunProcReturn("select isNull(MAX(HItemID),0) HItemID from Gy_ItemMoney_1 ", "Gy_ItemMoney_1");
            if (Maxds != null || Maxds.Tables[0].Rows.Count > 0)
            {
                //HItemID= Maxds.Tables[0].Rows[0]["HItemID"]
                var maxid = Convert.ToInt32(Maxds.Tables[0].Rows[0]["HItemID"]);
                maxid += 1;
                HItemID = maxid;
            }
            ListModels oListModels = new ListModels();
            try
            {
                WebAPI.DLL.ClsGy_ItemMoney_Ctl oBill = new WebAPI.DLL.ClsGy_ItemMoney_Ctl();
                List<Model.ClsGy_ItemMoney_Model> lsmain = new List<Model.ClsGy_ItemMoney_Model>();
                msg1 = msg1.Replace("\\", "");
                msg1 = msg1.Replace("\n", "");
                lsmain = oListModels.getObjectByJson_Gy_ItemMoney(msg1);
                foreach (Model.ClsGy_ItemMoney_Model oItem in lsmain)
                {
                    if (oItem.HNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (oItem.HName.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!名称不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (!DBUtility.ClsPub.AllowNumber(oItem.HNumber.Trim()))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码中不能出现连续‘.’并且首位末位不能为‘.’!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //查询数据中是否存在重复代码
                    ds = oCN.RunProcReturn("select * from  Gy_ItemMoney_1 where HStopflag=0 and HNumber='" + oItem.HNumber.Trim() + "'", "Gy_ItemMoney_1");
                    if (oItem.HNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //新增时判断
                    if (oItem.HItemID == 0)
                    {
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "保存失败!代码重复!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        //检查父级是否存在
                        string sParent;
                        sParent = DBUtility.ClsPub.GetParentCode(oItem.HNumber.Trim());
                        if (sParent.Trim() == "")
                        {
                            oBill.oModel.HParentID = 0;
                        }
                        else
                        {
                            if (oBill.HavParentCode(sParent.Trim(), HItemID))
                            {
                                oBill.oModel.HParentID = oBill.oModel.HItemID;
                            }
                            else
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "保存失败!上级代码不存在或被禁用!";
                                objJsonResult.data = 1;
                                return objJsonResult;
                            }
                        }
                    }
                    else//编辑时判断
                    {
                        //检查父级是否存在
                        string sParent;
                        sParent = DBUtility.ClsPub.GetParentCode(oItem.HNumber.Trim());
                        if (sParent.Trim() == "")
                        {
                            oBill.oModel.HParentID = 0;
                        }
                        else
                        {
                            if (oBill.HavParentCode(sParent.Trim(), oItem.HItemID))
                            {
                                oBill.oModel.HParentID = oBill.oModel.HItemID;
                            }
                            else
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "保存失败!上级代码不存在或被禁用!";
                                objJsonResult.data = 1;
                                return objJsonResult;
                            }
                        }
                    }
                    //得到短代码
                    string sShortNumber;
                    sShortNumber = DBUtility.ClsPub.GetShortNumber(oItem.HNumber.Trim());
                    if (sShortNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!短代码为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oItem.HShortNumber = sShortNumber;//短代码
                    oItem.HEndFlag = true;//末级标志
                    oItem.HLevel = DBUtility.ClsPub.GetLevel(oItem.HNumber.Trim()); //等级
                    oItem.HMakeEmp = msg2; //创建人
                    oBill.oModel = oItem;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.oModel.HItemID == 0)
                {
                    bResult = oBill.AddNew();
                }
                else
                {
                    bResult = oBill.ModifyByID(oBill.oModel.HItemID);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        /// <summary>
        /// 项目费用 获取信息
        /// </summary>
        /// <returns></returns>
        [Route("Web/GetGy_ItemMoneyDetail")]
        [HttpGet]
        public ApiResult<DataSet> GetGy_ItemMoneyDetail(string HID)
        {
            var model = LuBaoSevice.GetGy_ItemMoneyDetail(HID);
            return model;
        }
        /// <summary>
        /// 项目费用 删除功能
        /// </summary>
        /// <returns></returns>
        [Route("DeltetGy_ItemMoney")]
        [HttpGet]
        public object DeltetGy_ItemMoney(string HItemID, string user)
        {
            DataSet ds;
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log("Gy_ItemMoney_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_ItemMoney_1 where HItemID=" + HItemID, "Gy_ItemMoney_1");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已审核!不能进行删除!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    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;
                }
                //删除前控制=========================================
                string sql1 = "exec h_p_Gy_ItemMoney_BeforeDelCtrl " + HItemID + ",'" + user + "'";
                ds = oCN.RunProcReturn(sql1, "h_p_Gy_ItemMoney_BeforeDelCtrl");
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系";
                    objJsonResult.data = null;
                    oCN.RollBack();
                    return objJsonResult;
                }
                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
                    objJsonResult.data = null;
                    oCN.RollBack();
                    return objJsonResult;
                }
                //==================================================================================
                oCN.RunProc("delete Gy_ItemMoney_1 where HItemID=" + HItemID);
                //删除后控制=========================================
                string sql2 = "exec h_p_Gy_ItemMoney_AfterDelCtrl " + HItemID + ",'" + user + "'";
                ds = oCN.RunProcReturn(sql2, "h_p_Gy_ItemMoney_AfterDelCtrl");
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除失败!原因:删除后判断失败,请与网络管理人员联系";
                    objJsonResult.data = null;
                    oCN.RollBack();
                    return objJsonResult;
                }
                if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "删除失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
                    objJsonResult.data = null;
                    oCN.RollBack();
                    return objJsonResult;
                }
                //==================================================================================
                oCN.Commit();//提交事务
                objJsonResult.code = "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("Health")]
        [HttpGet]
        public IHttpActionResult CheckHealth()
        {
            // 返回 200 状态码 确认健康状态
            return Ok();
        }
        #endregion
        #region 登录用户与设备ClientID 的关系 写入数据库
        [Route("Web/SetGy_UserClientIdConnection")]
        [HttpPost]
        public object SetGy_UserClientIdConnection([FromBody] JObject msg)
        {
            DataSet ds;
            oCN.BeginTran();
            try
            {
                ds = oCN.RunProcReturn($@"exec h_p_SetGy_UserClientIdRelation
                @HUserbm=N'{msg["HUserbm"].ToString()}',
               @HUserName=N'{msg["HUserName"].ToString()}',
               @HClientID=N'{msg["HClientID"].ToString()}',
                @HOnline={msg["HOnline"].ToString()}
                ", "h_p_SetGy_UserClientIdRelation");
                if(ds.Tables[0].Rows[0]["HStatus"].ToString() == "1")
                {
                    oCN.Commit();
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存设备信息成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存设备信息失败!" + ds.Tables[0].Rows[0]["msg"];
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }catch(Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存设备信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region APP 根据模块获取该模块下需要显示消息标识的子模块
        [Route("Web/getMessageIdentified")]
        [HttpGet]
        public object getMessageIdentified(string user, string moduleName)
        {
            DataSet oDs = oCN.RunProcReturn($"exec h_p_getMessageIdentifier_APP '{user}', '{moduleName}'", "h_p_getMessageIdentifier_APP");
            if(oDs == null || oDs.Tables[0].Rows.Count == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "获取消息标识失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取消息标识成功!";
                objJsonResult.data = oDs.Tables[0];
                return objJsonResult;
            }
        }
        #endregion
        #region 模具待上模查询 获取
        [Route("Web/getSc_MouldUpperAwaitQuery")]
        [HttpGet]
        public object getSc_MouldUpperAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
        {
            if(HBeginDate == "") // 默认7天间距
            {
                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
            }
            if(HEndDate == "")
            {
                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
            }
            List<object> columnNameList = new List<object>();
            try
            {
                DataSet oDs = oCN.RunProcReturn($" exec h_p_Sc_MouldUpperAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Sc_MouldUpperAwaitQuery");
                if(oDs == null || oDs.Tables[0].Rows.Count == 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败, 单据无返回值!";
                    objjson.data = null;
                    return objjson;
                }else
                {
                    //添加列名
                    foreach (DataColumn col in oDs.Tables[0].Columns)
                    {
                        Type dataType = col.DataType;
                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                    }
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = oDs.Tables[0];
                    objjson.list = columnNameList;
                    return objjson;
                }
            }catch(Exception ex)
            {
                LogService.Write(ex.ToString());
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.Message.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region 待开工列表 获取
        [Route("Web/getCj_StationInBillAwaitQuery")]
        [HttpGet]
        public object getCj_StationInBillAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
        {
            if (HBeginDate == "") // 默认7天间距
            {
                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
            }
            if (HEndDate == "")
            {
                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
            }
            List<object> columnNameList = new List<object>();
            try
            {
                DataSet oDs = oCN.RunProcReturn($" exec h_p_Cj_StationInBillAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Cj_StationInBillAwaitQuery");
                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败, 单据无返回值!";
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    //添加列名
                    foreach (DataColumn col in oDs.Tables[0].Columns)
                    {
                        Type dataType = col.DataType;
                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                    }
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = oDs.Tables[0];
                    objjson.list = columnNameList;
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                LogService.Write(ex.ToString());
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.Message.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region 模具待下模查询 获取
        [Route("Web/getSc_MouldLowerBillAwaitQuery")]
        [HttpGet]
        public object getSc_MouldLowerBillAwaitQuery(string user, string HBeginDate = "", string HEndDate = "")
        {
            if (HBeginDate == "") // 默认7天间距
            {
                HBeginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
            }
            if (HEndDate == "")
            {
                HEndDate = DateTime.Today.ToString("yyyy-MM-dd");
            }
            List<object> columnNameList = new List<object>();
            try
            {
                DataSet oDs = oCN.RunProcReturn($" exec h_p_Sc_MouldLowerBillAwaitQuery '{user}', '{HBeginDate}', '{HEndDate}'", "h_p_Sc_MouldLowerBillAwaitQuery");
                if (oDs == null || oDs.Tables[0].Rows.Count == 0)
                {
                    objjson.code = "0";
                    objjson.count = 0;
                    objjson.Message = "获取失败, 单据无返回值!";
                    objjson.data = null;
                    return objjson;
                }
                else
                {
                    //添加列名
                    foreach (DataColumn col in oDs.Tables[0].Columns)
                    {
                        Type dataType = col.DataType;
                        string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                        columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                    }
                    objjson.code = "1";
                    objjson.count = 1;
                    objjson.Message = "获取成功!";
                    objjson.data = oDs.Tables[0];
                    objjson.list = columnNameList;
                    return objjson;
                }
            }
            catch (Exception ex)
            {
                LogService.Write(ex.ToString());
                objjson.code = "0";
                objjson.count = 0;
                objjson.Message = "获取失败" + ex.Message.ToString();
                objjson.data = null;
                return objjson;
            }
        }
        #endregion
        #region 获取 设备绑定职员信息(带出模具职员信息) 华舟
        [Route("Web/getEquipBindingEmp")]
        [HttpGet]
        public object getEquipBindingEmp(string HEquipNumber)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                ds = oCN.RunProcReturn($"exec h_p_getEquipBindingEmp_huazhou {HEquipNumber}", "h_p_getEquipBindingEmp_huazhou");
                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[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 ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region APP 获取异常反馈单 获取 检验单内容 通用方法
        [Route("Web/getCheckBillStatus")]
        [HttpGet]
        public object getCheckBillStatus(Int64 HInterID, string HBillType)
        {
            try {
                string sql = "";
                List<object> columnNameList = new List<object>();
                if(HBillType == "7505")
                {
                    // 首检
                    sql = $@"SELECT
                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 日期, a.HBillNo AS 单据号,
                          a.HRemark AS 表头备注,s.HName 生产资源名称,s.HNumber 生产资源代码, m.HNumber AS 产品内码, m.HName AS 产品名称, m.HModel AS 产品型号,e.HNumber as 检验员代码, e.HName as 检验员名称,
                          a.HMaker AS 制单人, a.HMakeDate AS 制单日期, a.HChecker AS 审核人, a.HCheckDate AS 审核日期, a.HUpDater AS 修改人,
                          a.HUpDateDate AS 修改日期, a.HCloseMan AS 关闭人, a.HCloseDate AS 关闭日期, a.HDeleteMan AS 作废人, a.HDeleteDate AS 作废日期,
                          a.HBillType AS 单据类型,b.HEntryID hsubid, a.HCheckQty 检验数量, a.HSourceID HSourceID,
                        a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 工序流转卡号,
                        a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 生产订单号
                          FROM
                          dbo.QC_FirstPieceCheckBillMain AS a INNER JOIN
                          dbo.QC_FirstPieceCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
                        dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
                        dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
                    sql += $" where a.HInterID = {HInterID}";
                    ds = oCN.RunProcReturn(sql, "QC_FirstPieceCheckBillMain");
                }
                else if (HBillType == "7520")
                {
                    // 巡检
                    sql = $@"SELECT
                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 日期, a.HBillNo AS 单据号,
                          a.HRemark AS 表头备注,s.HName 生产资源名称,s.HNumber 生产资源代码, m.HNumber AS 产品内码, m.HName AS 产品名称, m.HModel AS 产品型号,e.HNumber as 检验员代码, e.HName as 检验员名称,
                          a.HMaker AS 制单人, a.HMakeDate AS 制单日期, a.HChecker AS 审核人, a.HCheckDate AS 审核日期, a.HUpDater AS 修改人,
                          a.HUpDateDate AS 修改日期, a.HCloseMan AS 关闭人, a.HCloseDate AS 关闭日期, a.HDeleteMan AS 作废人, a.HDeleteDate AS 作废日期,
                          a.HBillType AS 单据类型,b.HEntryID hsubid, a.HCheckQty 检验数量, a.HSourceID HSourceID,
                        a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 工序流转卡号,
                        a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 生产订单号
                          FROM
                          dbo.QC_PatrolProcCheckOtherBillMain AS a INNER JOIN
                          dbo.QC_PatrolProcCheckOtherBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
                        dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
                        dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
                    sql += $" where a.HInterID = {HInterID}";
                    ds = oCN.RunProcReturn(sql, "QC_PatrolProcCheckOtherBillMain");
                }
                else if(HBillType == "7507")
                {
                    // 末检
                    sql = $@"SELECT
                          a.HInterID AS hmainid,b.HEntryID hsubid, a.HDate AS 日期, a.HBillNo AS 单据号,
                          a.HRemark AS 表头备注,s.HName 生产资源名称,s.HNumber 生产资源代码, m.HNumber AS 产品内码, m.HName AS 产品名称, m.HModel AS 产品型号,e.HNumber as 检验员代码, e.HName as 检验员名称,
                          a.HMaker AS 制单人, a.HMakeDate AS 制单日期, a.HChecker AS 审核人, a.HCheckDate AS 审核日期, a.HUpDater AS 修改人,
                          a.HUpDateDate AS 修改日期, a.HCloseMan AS 关闭人, a.HCloseDate AS 关闭日期, a.HDeleteMan AS 作废人, a.HDeleteDate AS 作废日期,
                          a.HBillType AS 单据类型,b.HEntryID hsubid, a.HCheckQty 检验数量, a.HSourceID HSourceID,
                        a.HProcExchInterID HProcExchInterID, a.HProcExchEntryID HProcExchEntryID, a.HProcExchBillNo 工序流转卡号,
                        a.HICMOInterID HICMOInterID, a.HICMOEntryID HICMOEntryID, a.HICMOBillNo 生产订单号
                          , HRemarkSN 条码
                          FROM
                          dbo.QC_ProcessCheckBillMain AS a INNER JOIN
                          dbo.QC_ProcessCheckBillSub AS b ON a.HInterID = b.HInterID LEFT OUTER JOIN
                        dbo.Gy_Source s on a.HSourceID =s.HItemID LEFT OUTER JOIN
                        dbo.Gy_Material m on a.HMaterID = m.HItemID LEFT OUTER JOIN
                          dbo.Gy_Employee AS e ON a.HFirstCheckEmp = e.HItemID ";
                    sql += $" where a.HInterID = {HInterID}";
                    ds = oCN.RunProcReturn(sql, "QC_ProcessCheckBillMain");
                }
                if(ds == null || 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[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 ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}