using System; using System.Data; using BP.DA; using BP.En; using BP.Sys; using BP.Web; namespace BP.Cloud.OrgSetting { /// /// 组织 属性 /// public class OrgAttr : BP.Cloud.OrgAttr { #region 基本属性 #endregion } /// /// 组织 的摘要说明。 /// public class Org : EntityNoName { #region 扩展属性 /// /// 该人员是否被禁用. /// public bool IsEnable { get { if (this.No == "admin") return true; string sql = "SELECT COUNT(FK_Org) FROM Port_DeptOrgStation WHERE FK_Org='" + this.No + "'"; if (DBAccess.RunSQLReturnValInt(sql, 0) == 0) return false; sql = "SELECT COUNT(FK_Org) FROM Port_DeptOrg WHERE FK_Org='" + this.No + "'"; if (DBAccess.RunSQLReturnValInt(sql, 0) == 0) return false; return true; } } public string Addr { get { return this.GetValStrByKey(OrgAttr.Addr); } set { this.SetValByKey(OrgAttr.Addr, value); } } public string GUID { get { return this.GetValStrByKey(OrgAttr.GUID); } set { this.SetValByKey(OrgAttr.GUID, value); } } /// /// 拼音 /// public string Adminer { get { return this.GetValStrByKey(OrgAttr.Adminer); } set { this.SetValByKey(OrgAttr.Adminer, value); } } /// /// 全名 /// public string NameFull { get { return this.GetValStrByKey(OrgAttr.NameFull); } set { this.SetValByKey(OrgAttr.NameFull, value); } } /// /// 注册年月 /// public string FK_HY { get { return this.GetValStrByKey(OrgAttr.FK_HY); } set { this.SetValByKey(OrgAttr.FK_HY, value); } } #endregion #region 构造函数 /// /// 组织 /// public Org() { } public Org(string no) { this.No = no; this.Retrieve(); } /// /// 权限 /// public override UAC HisUAC { get { UAC uac = new UAC(); if (WebUser.No.Equals("admin") == true) { uac.OpenAll(); uac.IsInsert = false; uac.IsDelete = false; return uac; } uac.IsInsert = false; uac.IsDelete = false; if (this.No.Equals(WebUser.OrgNo) == true) { uac.IsUpdate = true; return uac; } //删除. uac.IsInsert = false; uac.IsDelete = false; uac.IsView = false; return uac; } } /// /// 重写基类方法 /// public override Map EnMap { get { if (this._enMap != null) return this._enMap; Map map = new Map("Port_Org", "组织"); map.setEnType(EnType.App); #region 基本信息 /*关于字段属性的增加 */ map.AddTBStringPK(OrgAttr.No, null, "账号OrgNo", true, false, 1, 50, 90); map.AddTBString(OrgAttr.Name, null, "简称", true, false, 0, 200, 130); map.AddTBString(OrgAttr.NameFull, null, "全称", true, false, 0, 300, 400, true); map.AddTBString(OrgAttr.Adminer, null, "管理员帐号", true, true, 0, 300, 400); map.AddTBString(OrgAttr.AdminerName, null, "管理员名称", true, true, 0, 300, 400); map.AddTBString(OrgAttr.Addr, null, "地址", true, false, 0, 300, 36, true); map.AddDDLSysEnum(OrgAttr.RegFrom, 0, "注册来源", false, false, OrgAttr.RegFrom, "@0=网站注册@1=微信注册@2=钉钉注册"); string msg = "注册来源"; msg += "\t\n 1.只有网站注册的才可以维护组织结构"; msg += "\t\n 2.非网站注册的组织结构的维护在钉钉或者微信里面,维护后系统自动会同步."; map.SetHelperAlert(OrgAttr.RegFrom, msg); map.AddTBDateTime(OrgAttr.DTReg, null, "注册日期", true, true); map.AddTBDateTime(OrgAttr.DTEnd, null, "停用日期", true, true); //map.AddDDLSysEnum(OrgAttr.UseSta, 0, "启用状态", true, false,OrgAttr.UseSta, // "@0=注册@1=使用中"); #endregion 基本信息 #region 一般配置 // map.AddTBString(OrgAttr.HostURL, null, "服务器的URL", true, false, 0, 300, 36, true); // map.SetHelperAlert(); //map.AddTBString(OrgAttr.MobileURL, null, "移动端服务器地址", true, false, 0, 300, 36, true); #endregion 一般配置 RefMethod rm = new RefMethod(); rm.Title = "设置ICON"; rm.ClassMethodName = this.ToString() + ".DoICON"; rm.RefMethodType = RefMethodType.RightFrameOpen; map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "消息设置"; rm.ClassMethodName = this.ToString() + ".DoMsg"; rm.RefMethodType = RefMethodType.RightFrameOpen; map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "邮件设置"; rm.ClassMethodName = this.ToString() + ".DoEmail"; rm.RefMethodType = RefMethodType.RightFrameOpen; map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "邮件发送测试"; rm.ClassMethodName = this.ToString() + ".DoTestEmail"; rm.HisAttrs.AddTBString("email", "ccbpm@citydo.com.cn", "邮件", true, false, 0, 1000, 100); rm.RefMethodType = RefMethodType.Func; map.AddRefMethod(rm); rm = new RefMethod(); rm.Title = "合并企业微信"; rm.ClassMethodName = this.ToString() + ".DoHeBing"; rm.HisAttrs.AddTBString("OrgNo", "", "企业组织编号", true, false, 0, 1000, 100); rm.RefMethodType = RefMethodType.Func; map.AddRefMethod(rm); this._enMap = map; return this._enMap; } } public string DoHeBing(string orgNo) { #region //检查部门. string sql = "SELECT * FROM Port_Dept WHERE OrgNo='" + orgNo + "' ORDER BY No,Idx"; DataTable dtDeptWX = DBAccess.RunSQLReturnTable(sql); sql = "SELECT * FROM Port_Dept WHERE OrgNo='" + this.No + "' ORDER BY No,Idx"; DataTable dtDept = DBAccess.RunSQLReturnTable(sql); if (dtDept.Rows.Count != dtDeptWX.Rows.Count) return "err@当前组织部门数量:【"+dtDept.Rows.Count+"】个,被合并的微信组织部门数量["+ dtDeptWX.Rows.Count+ "]个."; #endregion //检查部门. #region //检查人员. //检查人员. sql = "SELECT * FROM Port_Emp WHERE OrgNo='" + orgNo + "' ORDER BY FK_Dept,Idx "; DataTable dtEmpWX = DBAccess.RunSQLReturnTable(sql); sql = "SELECT * FROM Port_Emp WHERE OrgNo='" + this.No + "' ORDER BY FK_Dept,Idx "; DataTable dtEmp = DBAccess.RunSQLReturnTable(sql); if (dtEmp.Rows.Count != dtEmpWX.Rows.Count) return "err@当前组织人员数量:【" + dtDept.Rows.Count + "】个,被合并的微信数量[" + dtDeptWX.Rows.Count + "]个."; #endregion //检查人员. //开始同步部门信息. //开始同步人员信息. //复制过来组织的weixin 信息. return ""; } public string DoTestEmail(string emial) { try { OrgMail org = new OrgMail(this.No); org.SendEmail(emial, "科伦BPM-系统发送邮件测试", "系统发送测试,不需回复."); return "发送成功,请检查是否收到邮件[" + emial + "]."; } catch (Exception ex) { return "err@测试错误:" + ex.Message; } } public string DoMsg() { return "/WF/Comm/RefFunc/EnOnly.htm?EnName=BP.Cloud.OrgSetting.OrgMsg&No=" + this.No; } public string DoEmail() { return "/WF/Comm/RefFunc/EnOnly.htm?EnName=BP.Cloud.OrgSetting.OrgMail&No=" + this.No; } public string DoICON() { return "/Admin/Setting/ICON.html?OrgNo=" + this.No; } /// /// 获取集合 /// public override Entities GetNewEntities { get { return new Orgs(); } } #endregion 构造函数 } /// /// 组织s // public class Orgs : EntitiesNoName { #region 构造方法 /// /// 得到它的 Entity /// public override Entity GetNewEntity { get { return new Org(); } } /// /// 组织s /// public Orgs() { } #endregion 构造方法 #region 为了适应自动翻译成java的需要,把实体转换成List. /// /// 转化成 java list,C#不能调用. /// /// List public System.Collections.Generic.IList ToJavaList() { return (System.Collections.Generic.IList)this; } /// /// 转化成list /// /// List public System.Collections.Generic.List Tolist() { System.Collections.Generic.List list = new System.Collections.Generic.List(); for (int i = 0; i < this.Count; i++) { list.Add((Org)this[i]); } return list; } #endregion 为了适应自动翻译成java的需要,把实体转换成List. } }