using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.Model.Base; using WMS.IData.IBase; using WMS.IData; using Oracle.ManagedDataAccess.Client; using WMS.Common; using WMS.DBUtility; using WMS.Model.SystemManage; namespace WMS.SqlServerData.BaseData { public class CompanyData : ICompany { #region 根据查询条件获取公司信息结果集 /// /// 根据查询条件获取公司信息结果集 /// /// 公司名称 /// 公司简称 /// 公司信息结果集 public List GetCompanytDataSet(string strComName, string strComShortName) { List listMenuFrm = new List(); string sqlStr =@"select t.*,a.com_name as group_name,CASE WHEN COM_STATUS ='1' THEN '启用' WHEN COM_STATUS = '0' THEN '停用' END as statusName from T_BASE_COMPANY t right join (select com_id, com_name from T_BASE_COMPANY ) a on a.com_id = t.group_id "; if (strComName != "") { sqlStr += " and com_name like '%" + strComName + "%' "; } if (strComShortName != "") { sqlStr += " and short like '%" + strComShortName + "%' "; } sqlStr = sqlStr + " where t.group_id!='-1' order by t.group_id,t.COM_ORDER"; DataTable table = SystemDataObject.Instance.GetDataTable(sqlStr); if (table != null) { listMenuFrm = ConvertHelper.ConvertToList(table); } return listMenuFrm; } #endregion /// /// 根据查询条件获取公司信息结果集 /// /// 公司名称 /// 公司简称 /// 公司信息结果集 public DataTable GetCompanyData(string strComName, string strComShortName) { StringBuilder strSql = new StringBuilder(); strSql.Append(" select t.*, "); strSql.Append(" a.com_name as GROUP_NAME, "); strSql.Append(" u.Name NAME, "); strSql.Append(" CASE "); strSql.Append(" WHEN COM_STATUS = '1' THEN "); strSql.Append(" '启用' "); strSql.Append(" WHEN COM_STATUS = '0' THEN "); strSql.Append(" '停用' "); strSql.Append(" END as statusName "); strSql.Append(" from T_BASE_COMPANY t "); strSql.Append(" left join (select com_id, com_name from T_BASE_COMPANY) a "); strSql.Append(" on a.com_id = t.group_id "); strSql.Append(" left join T_BASE_USERINFO u "); strSql.Append(" on t.user_id = u.user_id "); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 以实体为参数 获得 数据集 /// /// /// public DataTable GetCompanyData(CompanyModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append(" select t.*, "); strSql.Append(" a.com_name as GROUP_NAME, "); strSql.Append(" u.Name NAME, "); strSql.Append(" CASE "); strSql.Append(" WHEN COM_STATUS = '1' THEN "); strSql.Append(" '启用' "); strSql.Append(" WHEN COM_STATUS = '0' THEN "); strSql.Append(" '停用' "); strSql.Append(" END as statusName "); strSql.Append(" from T_BASE_COMPANY t "); strSql.Append(" left join (select com_id, com_name from T_BASE_COMPANY) a "); strSql.Append(" on a.com_id = t.group_id "); strSql.Append(" left join T_BASE_USERINFO u "); strSql.Append(" on t.user_id = u.user_id where 1 = 1 "); if (!string.IsNullOrEmpty(model.GROUP_ID)) { strSql.Append(" and t.GROUP_ID='" + model.GROUP_ID + "'"); } if (!string.IsNullOrEmpty(model.COM_ID)) { strSql.Append(" and t.COM_ID='" + model.COM_ID + "'"); } return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 根据部门编号获得该部门下的所有角色 /// /// /// public DataTable GetRoleDataByComID(string com_id) { StringBuilder strSql = new StringBuilder(); strSql.Append(@"select * from T_BASE_ROLEDICTIONARY where role_id in (select role_id from T_BASE_ROLEDEPART r left join T_BASE_COMPANY t on r.dep_id = t.com_id where t.com_id = "); strSql.Append("'" + com_id + "')"); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 根据用户编号获得 最底层所有部门信息 为获得当前部门下所有角色服务 /// /// /// public DataTable GetChildrenNodeCompanyData(string user_id) { StringBuilder strSql = new StringBuilder(); strSql.Append(" select b.com_id, b.com_name, group_id, 1 SELECTED "); strSql.Append(" from t_base_company b "); strSql.Append(" where b.com_id in "); strSql.Append(" (select t.dep_id from t_Base_Userdepart t where t.user_id = '" + user_id + "') "); strSql.Append(" and b.com_id not in (select group_id from T_BASE_COMPANY)"); strSql.Append(" union"); strSql.Append(" select b.com_id, b.com_name, group_id, 0 SELECTED"); strSql.Append(" from t_base_company b"); strSql.Append(" where b.com_id not in "); strSql.Append(" (select t.dep_id from t_Base_Userdepart t where t.user_id = '" + user_id + "')"); strSql.Append(" and b.com_id not in (select group_id from T_BASE_COMPANY) "); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } #region 操作机构信息,增删改 public int OperateAddCompany(CompanyModel companyModel) { string strInsert = string.Format(@"insert into t_Base_Company(GROUP_ID,SHORT, COM_DISC,COM_DATE,com_name, com_pname, com_sname, com_city, com_dpc, com_order,com_status,com_add, com_type ,COM_ID) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}', '{11}','{12}','{13}')", companyModel.GROUP_ID, companyModel.SHORT, companyModel.COM_DISC, companyModel.COM_DATE, companyModel.COM_NAME, companyModel.COM_PNAME, companyModel.COM_SNAME, companyModel.COM_CITY, companyModel.COM_DPC, companyModel.COM_ORDER, companyModel.COM_STATUS, companyModel.COM_ADD, companyModel.COM_TYPE, companyModel.COM_ID); return SystemDataObject.Instance.ExecuteSqlCommit(strInsert, null); } /// /// 操作机构信息(增删改) /// /// 机构信息model /// 0新增 1修改 /// public int OperateUpdateCompany(CompanyModel companyModel) { string sqlcompanySet =@"update t_base_company set GROUP_ID=:GROUP_ID,SHORT=:SHORT, COM_DISC=:COM_DISC,COM_DATE=:COM_DATE, com_name=:com_name, com_pname=:com_pname, com_sname=:com_sname, com_city=:com_city, com_dpc=:com_dpc, com_order=:com_order,com_status=:com_status, com_add=:com_add,com_type=:com_type where COM_ID=:COM_ID"; OracleParameter[] parameter = new OracleParameter[] { new OracleParameter(":GROUP_ID",OracleDbType.Varchar2), new OracleParameter(":SHORT",OracleDbType.Varchar2), new OracleParameter(":COM_DISC",OracleDbType.Varchar2), new OracleParameter(":COM_DATE",OracleDbType.Date), new OracleParameter(":com_name",OracleDbType.Varchar2), new OracleParameter(":com_pname",OracleDbType.Varchar2), new OracleParameter(":com_sname",OracleDbType.Varchar2), new OracleParameter(":com_city",OracleDbType.Varchar2), new OracleParameter(":com_dpc",OracleDbType.Varchar2), new OracleParameter(":com_order",OracleDbType.Varchar2), new OracleParameter(":com_status",OracleDbType.Varchar2), new OracleParameter(":com_add",OracleDbType.Varchar2), new OracleParameter(":com_type",OracleDbType.Varchar2), new OracleParameter(":COM_ID",OracleDbType.Varchar2) }; parameter[0].Value = companyModel.GROUP_ID; parameter[1].Value = companyModel.SHORT; parameter[2].Value = companyModel.COM_DISC; parameter[3].Value = companyModel.COM_DATE; parameter[4].Value = companyModel.COM_NAME; parameter[5].Value = companyModel.COM_PNAME; parameter[6].Value = companyModel.COM_SNAME; parameter[7].Value = companyModel.COM_CITY; parameter[8].Value = companyModel.COM_DPC; parameter[9].Value = companyModel.COM_ORDER; parameter[10].Value = companyModel.COM_STATUS; parameter[11].Value = companyModel.COM_ADD; parameter[12].Value = companyModel.COM_TYPE; parameter[13].Value = companyModel.COM_ID; return SystemDataObject.Instance.ExecuteSqlCommit(sqlcompanySet, parameter); } /// /// 机构信息的删除 /// /// public int CompanyDel(string com_id) { string sql =@"delete from t_base_company where COM_ID=:COM_ID"; OracleParameter[] parameters = new OracleParameter[] { new OracleParameter(":COM_ID",OracleDbType.Varchar2) }; parameters[0].Value = com_id; return SystemDataObject.Instance.ExecuteSqlCommit(sql, parameters); } #endregion #region 获取生成的公司所属集团编号 /// /// 获取生成的公司所属集团编号 /// /// 公司所属集团编号 public string GetGroupId() { string strGroupId = ""; string sql = "select NEXT VALUE FOR SEQ_COMPANY_GROUP_ID;"; //string sql = "select max(com_id) from t_base_company t where t.group_id = '00' "; DataTable dt = SystemDataObject.Instance.GetDataTable(sql); strGroupId = dt.Rows[0][0].ToString(); return strGroupId; } #endregion ///// /////查询机构编号是否唯一 ///// ///// ///// public string GetComPanyId(string comId) { string sqlStr = "select Count(1)a from T_BASE_COMPANY where COM_ID='" + comId + "'"; DataTable table = SystemDataObject.Instance.GetDataTable(sqlStr); if (table != null) { if (table.Rows.Count > 0) { return table.Rows[0]["a"].ToString(); } } return "0"; } #region 根据公司编号获取单个公司信息 /// /// 根据公司编号获取单个公司信息 /// /// 公司编号 /// 公司信息 public DataSet getCompanytByComID(string strComID) { string sql =@" select COM_ID, ISNULL(GROUP_ID,'-1') GROUP_ID, COM_NAME, SHORT, COM_DATE, COM_DISC, COM_TYPE from T_BASE_COMPANY where 1 = 1 "; #region 查询条件 if (strComID != "") { sql += " and COM_ID = '" + strComID + "' "; } #endregion return SystemDataObject.Instance.GetDataSet(sql); } #endregion #region 根据父编号获取其下所有公司信息 /// /// 根据父编号获取其下公司信息 /// /// 父编号 /// 公司信息 public DataTable getCompanytByGroupID(string strID) { string sql = "select d.* from T_BASE_COMPANY d start with d.group_id = '" + strID + "' connect by prior d.com_id = d.group_id"; return SystemDataObject.Instance.GetDataTable(sql); } #endregion #region 根据公司编号删除单个公司信息 /// /// 根据公司编号删除单个公司信息 /// /// 公司编号 /// 公司信息 public DataSet deleteCompanytByComID(string strComID) { string sql =@" select COM_ID, ISNULL(GROUP_ID,'-1') GROUP_ID, COM_NAME, SHORT, COM_DATE, COM_DISC from T_BASE_COMPANY where 1 = 1 "; #region 查询条件 if (strComID != "") { sql += " and COM_ID = " + strComID + " "; } #endregion return SystemDataObject.Instance.GetDataSet(sql); } #endregion /// /// 判断编号是否存在 /// /// 机构编号 public string Exists(string COM_ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select count(1) from T_BASE_COMPANY"); strSql.Append(" where COM_ID='" + COM_ID + "'"); DataTable table = SystemDataObject.Instance.GetDataTable(strSql.ToString()); if (table != null) { if (table.Rows.Count > 0) { return table.Rows[0][0].ToString(); } } return "0"; } /// /// 新增一条组织机构信息 /// /// 公司Model public void AddCompanyData(CompanyModel model) { model.COM_DATE = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); string sqlInsert = string.Format(@"insert into T_BASE_COMPANY( GROUP_ID,COM_DISC,COM_ID,COM_NAME,SHORT, COM_DATE,COM_PNAME,COM_SNAME,COM_CITY,COM_DPC, COM_TYPE,USER_ID,COM_ADD,COM_ZIP,COM_FAX,COM_ORDER, COM_USER_ID,COM_PHONE,COM_STATUS,COM_EMAIL, COM_PROVINCE,COM_TOWN) values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}' ,'{13}','{14}',{15},'{16}','{17}','{18}','{19}','{20}','{21}')", model.GROUP_ID, model.COM_DISC, model.COM_ID, model.COM_NAME, model.SHORT, model.COM_DATE, model.COM_PNAME, model.COM_SNAME, model.COM_CITY, model.COM_DPC, model.COM_TYPE, model.USER_ID, model.COM_ADD, model.COM_ZIP, model.COM_FAX, model.COM_ORDER, model.COM_USER_ID, model.COM_PHONE, model.COM_STATUS, model.COM_EMAIL, model.COM_PROVINCE, model.COM_TOWN ); SystemDataObject.Instance.ExecuteSql(sqlInsert); } /// /// 更新一条组织机构信息 /// /// 公司Model public void UpdateCompanyData(CompanyModel model) { model.COM_DATE = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); string sqlUpdate = string.Format(@"update T_BASE_COMPANY set GROUP_ID='{0}',COM_DISC = '{1}',COM_ID='{2}',COM_NAME='{3}', SHORT='{4}',COM_DATE= '{5}',COM_PNAME= '{6}',COM_SNAME= '{7}',COM_CITY= '{8}', COM_DPC= '{9}',COM_TYPE= '{10}',USER_ID= '{11}',COM_ADD= '{12}',COM_ZIP= '{13}', COM_FAX= '{14}',COM_ORDER= {15},COM_USER_ID= '{16}',COM_PHONE= '{17}', COM_STATUS= '{18}',COM_EMAIL= '{19}',COM_PROVINCE= '{20}',COM_TOWN= '{21}' where id= '{22}'", model.GROUP_ID, model.COM_DISC, model.COM_ID, model.COM_NAME, model.SHORT, model.COM_DATE, model.COM_PNAME, model.COM_SNAME, model.COM_CITY, model.COM_DPC, model.COM_TYPE, model.USER_ID, model.COM_ADD, model.COM_ZIP, model.COM_FAX, model.COM_ORDER, model.COM_USER_ID, model.COM_PHONE, model.COM_STATUS, model.COM_EMAIL, model.COM_PROVINCE, model.COM_TOWN, model.ID); SystemDataObject.Instance.ExecuteSql(sqlUpdate); } /// /// 更新一条组织机构信息的Status /// /// 公司Model public void UpdateCompanyState(CompanyModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update T_BASE_COMPANY set "); strSql.Append("COM_STATUS=:COM_STATUS"); strSql.Append(" where COM_ID=:COM_ID "); OracleParameter[] parameters = { new OracleParameter(":COM_STATUS", OracleDbType.Char), new OracleParameter(":COM_ID",OracleDbType.Varchar2)}; parameters[0].Value = model.COM_STATUS; parameters[1].Value = model.COM_ID; SystemDataObject.Instance.ExecuteSqlCommit(strSql.ToString(), parameters); } /// /// 删除一条组织机构信息 同时删除该编号下的所有子数据 /// /// 机构编号(同时作为组ID删除改组下所有子数据) public void DeleteCompanyData(string COM_ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("delete from T_BASE_COMPANY "); strSql.Append(" where 1 = 1 and COM_ID=:COM_ID "); OracleParameter[] parameters = { new OracleParameter(":COM_ID",OracleDbType.Varchar2,20) }; parameters[0].Value = COM_ID; SystemDataObject.Instance.ExecuteSqlCommit(strSql.ToString(), parameters); } } }