`
mj-beijing
  • 浏览: 38353 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在人员信息维护节点增加批量导出员工照片实现方法

 
阅读更多

 /**
  * 批量导出照片
  * add by majie 2013-01-18
  */
 public void batchExportPic(){
  GeneralVO[] vos = getSelectPsnListData();
  if(vos == null || vos.length == 0)
   return;
  
  //只能选择目录
  getFileDirChooser().setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);
  int userOperate = getFileDirChooser().showSaveDialog(this);
  if (userOperate == 0) {// 0:保存,1:撤销
   File file = getFileDirChooser().getSelectedFile();
   if (file == null) {
    nc.ui.pub.beans.MessageDialog.showHintDlg(this,
      nc.ui.ml.NCLangRes.getInstance().getStrByID("600700",
        "UPP600700-000108")/* @res "警告" */,
      nc.ui.ml.NCLangRes.getInstance().getStrByID("600700",
        "UPP600700-000109")/* @res "您没有选择要下载的目录!" */
    );
    return;
   }
   
   //文件名称,照片byte[]
   Map<String,byte[]> map = new HashMap<String,byte[]>();
   String id = null;
   String psnname = null;
   byte[] data = null;
   GeneralVO[] picVO = null;
   for(int i=0;i<vos.length;i++){
    id = (String) vos[i].getAttributeValue("id");
    psnname = (String) vos[i].getAttributeValue("psnname");
    try {
     picVO = HIDelegator.getPsnInf().queryByPsnPK((String) vos[i].getAttributeValue("pk_corp"),(String)vos[i].getAttributeValue("pk_psnbasdoc"));
    } catch (BusinessException e) {
     e.printStackTrace();
    }
    
    if(picVO != null && picVO.length > 0){
     data = (byte[])picVO[0].getFieldValue("photo");
    }
    
    if(data != null && data.length > 0){
     map.put(id+psnname,data);
    }
   }
   if(map.size() == 0){
    nc.ui.pub.beans.MessageDialog.showHintDlg(this, "警告","选择的员工均没有照片");
    return;
   }
   
   Iterator<String> fileNames = map.keySet().iterator();
   String filePath = null;
   String key = null;
   byte[] bts = null;
   FileOutputStream outstream = null;
   while(fileNames.hasNext()){
    key = fileNames.next();
    filePath = file+File.separator+key+".jpg";
    bts = map.get(key);
    try {
     outstream = new FileOutputStream(filePath);
     outstream.write(bts);
     outstream.flush();
     outstream.close();
    } catch (FileNotFoundException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   
   nc.ui.pub.beans.MessageDialog.showHintDlg(this, "提示","导出完成");
  }
  
 }

分享到:
评论

相关推荐

    人事管理系统

    系统通常支持批量导入和导出数据,方便企业进行人事档案的维护。此外,系统还能够记录员工的入职、转正、晋升、离职等职业生涯关键节点,便于追踪员工的发展历程。 二、招聘管理 招聘管理模块帮助人力资源部门发布...

    Excel模板员工职位提升程序示意图.zip

    7. **宏与VBA编程**:对于更复杂的操作,可以编写VBA(Visual Basic for Applications)宏,自动化处理如批量更新员工信息、自动生成晋升报告等功能。 8. **链接与引用**:如果公司有其他系统或数据库,可以通过...

    neo4j大批量导入数据脚本实例

    在实际操作中,确保使用正确的用户权限执行导入,并且在导入后及时清理临时文件,以维护数据库的安全性。 综上所述,本实例展示了如何利用Neo4j的Cypher语言和脚本工具进行大批量数据导入,以及如何构建和优化复杂...

    人力资源管理系统设计方案

    - **子集管理**:分类存储自定义信息,批量导入和导出数据,按关键词查询。 - **统计报表**:自动生成多维度统计报表,如人员结构、流动情况、年龄、学历、性别比例等。 - **基础设置**:允许自定义字段、子集,...

    泛微OA新增功能表单建模详解.docx

    表单建模功能作为泛微OA的一项重要更新,旨在通过简单配置即可实现数据模块的搭建,无需专门的开发工作,从而大幅降低二次开发成本并提高系统的可维护性。 #### 功能描述 表单建模功能主要针对企业内部常见的数据...

    基于Vue的前端流程管理系统及方法.docx

    同时,支持批量导入功能,减少手动输入的工作量。 - **审核流程定义单元**:采用可视化编辑器,允许管理员根据实际情况灵活调整业务流程,支持多种条件分支和循环结构,提高系统的灵活性。 - **审核步骤单元**:每个...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    服务及页面开发流程.docx

    本文档详细阐述了北京神州数码思特奇信息技术股份有限公司的开发流程,以BBS帖子批量导入功能为例,指导开发者如何进行操作。 **一、申请OPCODE** 在开发开始之前,开发者需要向相关负责人申请OPCODE。通过发送邮件...

    SAPHR社会保险前台操作与后台配置.doc

    1. PA30事务码:这是SAP中进行个人主数据维护的标准事务码,用于处理员工的社会保险信息。在这里,可以录入和更新员工的社会保险编号、参保类型、缴费基数、比例等相关信息。对于新入职员工,需要在系统中输入他们的...

    单位社保费管理客户端V1.0.160.zip

    1. **员工信息管理**:软件支持批量导入或逐个录入员工基本信息,包括姓名、身份证号、入职日期、工资基数等,便于进行社保费用计算。 2. **社保费用计算**:根据国家及地方的社保政策,自动计算每个员工每月应缴的...

Global site tag (gtag.js) - Google Analytics