前言

  财务预警这个项目呢,从4月开始调研到8月底验收了。算是我的一个从调研,需求,SOW等文档编制到代码开发,上线支持,后期的功能优化,并扩展客户另外提出的需求,到用户手册,验收交付完全独立交付的项目。 这其中呢,我可能有很多的感慨。

  如何准确定位核心需求,减少客户思维过度发散?

  从固定好的需求,到后面的每一次的沟通,都会增加或者调整需求。其中很重要的一个因素就是你要去用专业的水平和意见去指导客户。不然客户的思维真的是非常的发散,他们总觉得这样也可以做吧,那样也可以做吧?其实有些是没有必要的,所以这种时候,就应该站出来去指引客户,这种情况应该这种逻辑,这样处理,提出来专业的观点,这样就能够降低很多不必要的思维发散沟通,可以很大的提高工作效率!还有一种呢,就是我使用了原因图的方式,让客户真正的看到以后做出来的是什么样的东西?给客户最直观的展示,也可以降低因为都是各自想象,看不到实物而过度的思维发散。

  针对开发过程中的需求变更,又该如何应对呢?

  如果是在开发构建之前进行的需求变更,那么这个成本还是比较小的,一旦在开发构建活动开始之后进行的任何需求变更,都会对你造成一定程度的影响!如果是较大的需求变更,甚至会导致你的这个构建要重新来!一些不影响整体构建开发的需求变更,还可以接受,能改的就要改,最多也就是在目前的基础进行扩展开发。涉及到客户的体验,满意度。谁让客户是上帝呢?

  那么较大的需求变更,该怎么处理呢?此时,项目组内就需要有一个需求变更的流程。所谓的需求变更流程也就是,当客户提出需求变更时,先有人员进行探讨和目前的开发构建活动是否冲突?是否值得这样做?有什么最简单的满足变更的方案?针对需求变更需要投入多少人力成本等等,如果上面这几项都已经分析了,那么就拿着方案去和客户谈,较多情况下,当拿着清单告诉客户需要增加多少成本的时候,那么一些不切实际的想法变更就会被客户放弃了。

  阶段交付,降低风险

  按阶段进行交付,类似于敏捷开发。完整的功能模块做完以后,与客户进行交付验证,最大好处我觉得就是,船小好调头,有什么问题可以及时发现并处理,还能验证是否符合客户要求。防止最后开发完毕以后进行交付,与客户期望差异过大,造成项目损失流产。

 

项目简介

  那么这个项目,其中一部分工作就是,将EAS系统基础月度财务报表数据按照制定的固定模板生成数据,然后将数据导出,着使用预警系统的一键导入功能,将月度数据导入到系统中,和年度维护的国资委对标值进行比对,使用预警规则判定算法自动判定企业的风险等级。最终使用扩展报表平台对数据进行分析,使用Mbos云之家开发平台开发企业自建轻应用预警分析轻应用,那么这个轻应用呢在之前的文章中已经介绍过。因为涉及到项目的商业机密,因此这里就简单的介绍下数据整理导入这块的内容。

  那么数据整理部分呢,包括以下几个模块逻辑:

  1. 文件选取弹框,供用户选择导入Excel数据文件;

  3. 获取国资委对标值 并进行处理赋值

  4. 自动判定风险等级算法

  5. 数据遍历导入

  6. 日志记录、操作提示

 


 

 

文件选取

  从存储数据页面(RiskItemListUICTEx)工具栏中添加数据导入按钮,点击数据导入,进行弹框(即跳转到ExcelRiskItemImportUI),供用户选取文件,进行导入操作。

 1 **RiskItemListUICTEx**
 2 //ListUI 工具栏 数据导入按钮 弹出对话框   
 3  @Override 
 4     public void actionExcelImport_actionPerformed(ActionEvent e) throws Exception {
 5         // TODO 数据导入按钮  调出按钮
 6         super.actionExcelImport_actionPerformed(e);
 7         UIContext context = new UIContext();
 8         IUIFactory uiFactory = UIFactory.createUIFactory("com.kingdee.eas.base.uiframe.client.UIModelDialogFactory");
 9         IUIWindow TempVouSelectDlg = uiFactory.create("com.kingdee.eas.custom.financialrisk.client.ExcelRiskItemImportUI", context);
10         TempVouSelectDlg.show();
11         super.onShow();
12         actionRefresh_actionPerformed(e);
13         
14     }

  弹框效果:

财务预警项目总结

  选择文件 按钮逻辑:调用文件选择器,限制文件类型只能为xlsx,xls。然后将最后选择的Excel文件的路径回写到路径框中。

 1     @Override
 2     public void actionBtnChoose_actionPerformed(ActionEvent e) throws Exception {
 3         super.actionBtnChoose_actionPerformed(e);
 4 
 5         // 添加文件格式筛选filter
 6         VoucherFileFilter fileFilter = new VoucherFileFilter();
 7         String path = System.getProperty("easclient.root");
 8         String strFileExt = "xlsx,xls";
 9         String strFileDesc = "Excel File(*.xlsx),Excel File(*.xls)";
10         KDFileChooser chooser = new KDFileChooser(new File(path));
11         fileFilter.setFileFilter(chooser, strFileDesc, strFileExt);
12         chooser.setAcceptAllFileFilterUsed(false);
13         chooser.setDialogTitle("风险预警指标统计表Excel火箭发射基地");
14         int returnVal = chooser.showOpenDialog(this);
15         if (returnVal != 0) {
16             logger.error("Method:actionBtnChoose_actionPerformed chooser don't open dialog!");
17             return;
18         }
19         File tempfile = chooser.getSelectedFile();
20         boolean bFileExist = tempfile.exists();
21         if (!bFileExist) {
22             logger.error("Method:actionBtnChoose_actionPerformed file.exist Error!");
23             throw new VoucherExpImpException(
24                     VoucherExpImpException.FIEL_NOT_EXIST);
25         }
26         this.riskTxtPath.setText(tempfile.getPath());
27         logger.info("Method:actionBtnChoose_actionPerformed choose file is ok!");
28     }
btnChoose

相关文章: