权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

(14) 常用管理类软件需求征集 -- 组织机构管理

2009-08-27 20:55  通用C#系统架构  阅读(3631)  评论(48编辑  收藏  举报

只想着赚别人的钱,是不太好的,也能让别人赚我的钱,我也能赚别人的钱,才是长远的,才是可持续的,才是互惠互利的。

本功能组件愿意支付费用完善的部分为如下:

1。功能改进,的确有道理,的确可以提高效率,用户使用起来会很友善的功能。
2。打印功能完善,有报表输出的。
3。精巧的屏幕打印功能(就是直接打印输出当前窗体)。
4。实现导入功能部分,功能稳定好用,思路严禁。
5。快捷键的完善,表名字段名设计得更合理命名更有道理的。
6。页面展示效果能明显改进的。

以上每个功能改进至少愿意支付100元人民币,或者更多,有兴趣的可以跟我谈。
因为我自己的代码生成器我写得也很辛苦功能也比较强大,我卖100元,所以我自己开了这个价格,寂寞高手可以帮我完善。
若觉得100元太少了,本人也愿意提供手机充值服务,把手机号码发给我,我给您充值。
我觉得谈钱就俗了,不谈钱其实更俗,您给我提供服务,给他人提供服务,我给您认可及象征性的辛苦钱。


组织机构管理应该是常用管理类软件的核心组成部分,一般大大小小的软件,都需要有这个功能,有时候想想,我们真的是在重复发明轮子,重复劳动,重复建设,来一个项目开发一次,换一工作再重复建设一次,换一个开发语言再重复建设一次,有了新想法又重新开发一次,有了新架构又开发一次。

其实一个模块是否有重复利用价值,也需要这个模块有一定的通用性、独立性、可扩展性、稳定性,否则很难重一个项目里彻底抽离出来,无法形成比较独立的模块,其次是代码的质量,代码的条理性、代码的可阅读性、代码分层的合理性等,代码有比较良好的风格可比较容易的继承到其他项目里,若模块的关联性比较弱一些,可以作为单独的模块在其他系统就充当外挂组件。

我们的劳动为什么不值钱?我们为什么这么累?很多时候跟我们的价值观及不珍惜保护日常劳动成果有关系。技术虽然是很关键,但是做管理类软件还是需要一些实实在在的功能,这些功能你早晚都得开发,是跑不掉的,开发了就要进行设计、测试、维护、稳定、改进就要耗费很多人力物力及时间成本了,所以我是希望尽量减少这方面没必要的重复建设。

我想把日常开发中遇到的一些需求都进行整理,一方面拓展自己的思路,另一方面为那些学习者、将要开发者提供更有价值、更全面的参考。

舍得花钱购买管理软件的客户往往是大客户,例如有很多分公司、部门等,可能现在没分公司的将来也有可能开分公司,往往在管理上会需要按分公司进行独立管理,总公司集中管理,按各组织机构进行权限配置,按组织机构进行统计分析等功能,我们保存输入时应该也要考虑这个数据是属于哪个公司的,哪个部门的数据。

下面的图是我做的组织机构管理页面,可以做一下参考。


内部组织表示是本单位的意思,意思是这些组织机构就是用户自己的单位组成数据,因为在下面的图中还有合作伙伴的概念,数据若不需要了,不应该是非要把数据删除了,应该可以有个停用标志,例如 有效的标志,这个标志没打上就表示这个数据是不启用的或者是没生效的失效数据,就像我们挂失信用卡一样,并不是把信用卡给删除了。



右键菜单功能展示效果。


组织机构里的合作伙伴的概念是:
例如,我们有供应商,我们有客户,我们有施工队,我们有大客户等等,有时候一个客户又是供应商又是客户,2边都增加,会导致数据重复,而且对数据集的权限设置上,也会带来一些麻烦,数据的主外键关系设置上也会存在一些问题。
我们把所有的不是本单位的组织机构,跟系统有关的数据都统称为合作伙伴,这个合作伙伴又可以是供应商、也可以客户。我们把供应商等只看做是视图一样的,哪些合作伙伴是属于供应商的思路来解决问题。

树型机构支持拖动功能,需要把哪个接点移动到哪个节点下面,直接在树形结构里进行拖动操作就可以了,这个功能的确很友善,在实施及日常维护当中,的确会派上一些用处,使用起来也很友善。

我觉得我自己的程序还缺少一个导入功能,只有导出功能还不够完善,有时候还会需要一个导入功能比较好,但是做到如比导出功能更难一些。当然这些程序代码都可以被其他程序调用,有比较完善的服务程序,这样才容易被其他程序调用,而不只是支持人工的调用接口。
还有一个不足之处就是没有打印功能,有时候还是蛮需要有打印功能的,真的做好一个功能模块,还真不容易,我也做了很多年,完善了很多年,总觉得精力还不够,做得也没足够好,有些遗憾。

红色星号表示必须输入项目,编码是判断重复功能,若不输入编码,也允许有空编号,我们不能限制,必须输入编号,而且编号不能重复。应该是没有输入编号也照样可以输入数据事后再补编号是符合实际工作的,组织机构应该是树型结构的,组织机构应该有移动功能,可以单个移动,也可以批量移动,当然父节点不能移动到自己的子节单上去,那就会发生死循环问题了。

数据表设计请参考下图


若组织机构做成列表结构的,没有树型结构,那开发的难度及代码量会变得非常少,至少差距2倍的工作量吧,复杂度也至少有2倍吧,树型结构又要有拖拽功能,又要有逻辑判断等,工作量又会提高很多。

若组织机构管理,又是逐级授权,分级管理的,那代码量及复杂度会更提高很多,再加上多语言的要求,再加上并发控制的要求,再加上详细的权限控制要求,那这个代码量及复杂度是惊人的,很肯性的说普通人几乎是搞不定的,我当时为了实现分级管理,花费了整整一个多月时间才调试成功,不是普通人可以想象的,外表上看看很简单的东西,内在可能是超级复杂的,复杂到难以理解的程度也有可能。

做软件比在于功能多,而在于是否精,是否有通用性,是否有重复利用的价值,是否变成商品化的组件。

热烈欢迎大家补充。




C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友