`

从.property文件中取值:并处理之

 
阅读更多

private Hashtable loadAgentReference(int cond) throws Exception{

        if (agentFeedPath == null || agentFeedPath.length() == 0){

            Properties pathProperties = new Properties();

            pathProperties.load(new FileInputStream("deliveryxxx.properties"));

            for (Enumeration upProp = pathProperties.keys() ; upProp.hasMoreElements() ;){

                String ketStr = (String)upProp.nextElement();

                //System.out.println(getLogMessage(ketStr+"="+pathProperties.getProperty(ketStr)));

            }

 

            agentFeedPath = pathProperties.getProperty("ftpFilePath")

                    + pathProperties.getProperty("agentFeedFile");

        }

 

        Hashtable agentTable = new Hashtable();

        BufferedReader br = new BufferedReader(new FileReader(agentFeedPath));

        String line = "";

        String agentCode = "";

        AgentIdentification agent;

        AgentIdentification branch;

        ArrayList missEmailBranchHead = new ArrayList();

        

        //200904 add for Checking agent

        boolean isActiveAgent = true;

        CSMSUserInterface csmsUserDAO = (CSMSUserInterface) new CSMSUserImpl();

        CSMSUserVO csmsUser = null;

        ArrayList csmsUserList = new ArrayList();

        csmsUserList = csmsUserDAO.searchCSMSUserList(null, null);

        if (csmsUserList != null) {

            csmsUser = (CSMSUserVO)csmsUserList.get(0);

            if (csmsUser != null) {

                if (!csmsUser.checkUser()) {

                    csmsUser = null;

                    System.out.println("CSMS is not available");

                }

            }

        }

        //200904<--

        

        while ((line = br.readLine()) != null){

            /** Feed Layout AGT_TRACK.DAT

             AgentCode   X(6)

             AgentName   X(30)

             UnitCode    X(5)

             BranchCode  X(5)

             BranchHead  X(30)

             BranchName  X(30)

             AgentEmail  X(60)

             */

            if (line.startsWith("HEADER") || line.startsWith("TRAILER"))

                continue;

            agentCode = line.substring(0, 6).trim();

            agent = new AgentIdentification();

            agent.setAgentCode(agentCode);

            agent.setAgentName(line.substring(6, 36).trim());

            agent.setUnitCode(line.substring(36, 41).trim());

            agent.setBranchCode(line.substring(41, 46).trim());

            agent.setBranchHead(line.substring(46, 76).trim());

            agent.setBranchName(line.substring(76, 106).trim());

            agent.setAgentEmail(line.substring(106, 166).trim());

            if (cond == BY_AGENT){

                agentTable.put(agentCode, agent);

            } else if (cond == BY_BRANCH_HEAD){

                if (agent.getAgentName().equalsIgnoreCase(agent.getBranchHead())){

                    if (agent.getAgentEmail().equals("")){

                        missEmailBranchHead.add(agent);

                        if (!agentTable.containsKey(agent.getBranchCode())){

                            agentTable.put(agent.getBranchCode(), agent);

                        }

                        

                    } else{

                    //----------------------

                    // Check Hashtable

                    // Assumption: latest agent code value should be the larger

                    // Keith 2006-02-07

                        if (agentTable.containsKey(agent.getBranchCode())){

                            branch = (AgentIdentification)agentTable.get(agent.getBranchCode());

                            

                            //200904 check if agent active

                            if (csmsUser != null) {

                                isActiveAgent = true;

                                if (csmsUser.searchAgent(agent.getAgentCode())) {

                                    if (!csmsUser.getIsActiveAgent()) {

                                        isActiveAgent = false;

                                    }

                                } else {

                                    isActiveAgent = false;

                                }

                            }

                            if (isActiveAgent) {

//                                System.out.println("update branch head: [" + agent.getBranchCode() + "] "

//                                                   +  branch.getAgentCode() + " >> " + agent.getAgentCode());

                                agentTable.put(agent.getBranchCode(),  agent);

                            }

//                            if (Integer.parseInt(agentCode)  > Integer.parseInt(branch.getAgentCode())) 

//                            {

//                                agentTable.put(agent.getBranchCode(),  agent);

//                            } else  {

//                              //Skip record

//                            }

                        } else 

                        {

                            agentTable.put(agent.getBranchCode(),  agent);

                        }

                      //----------------------

                      //agentTable.put(agent.getBranchCode(),  agent);

                    }

                }

            }

        }

        if (cond == BY_BRANCH_HEAD){

            for (int i = 0 ; i < missEmailBranchHead.size() ; i++){

                agent = (AgentIdentification)missEmailBranchHead.get(i);

                for (Enumeration n = agentTable.keys() ; n.hasMoreElements() ;){

                    branch = (AgentIdentification)agentTable.get((String)n.nextElement());

                    if (agent.getBranchHead().equalsIgnoreCase(branch.getBranchHead()) && !branch.getAgentEmail().equals("")){

                        agent.setAgentEmail(branch.getAgentEmail());

                        

                        //-----KW060207

                        if (Integer.parseInt(agent.getAgentCode())  > Integer.parseInt(branch.getAgentCode())) 

                        {

                            //200904 check if agent active

                            if (csmsUser != null) {

                                isActiveAgent = true;

                                if (csmsUser.searchAgent(agent.getAgentCode())) {

                                    if (!csmsUser.getIsActiveAgent()) {

                                        isActiveAgent = false;

                                    }

                                } else {

                                    isActiveAgent = false;

                                }

                            }

                            if (isActiveAgent) {

                                agentTable.put(agent.getBranchCode(),  agent);

                            }

                        }

                        //-----

                        //agentTable.put(agent.getBranchCode(), agent);

                        break;

                    }

                }

            }

        }

        return agentTable;

    }

分享到:
评论

相关推荐

    Hibernate 课件_配置文件详解

    - **`jdbc.fetch_size`**:此属性用于设置每次从数据库中获取的记录数量。对于大型查询,合理的设置可以显著提高性能。例如,在Oracle数据库中,将此值设为50可以显著提高查询速度。需要注意的是,并非所有数据库都...

    C#期末考试题.9.doc

    9. 存储属性值:在类的成员中,用于存储属性值的是成员变量(Member Variable),属性(Property)是提供访问这些变量的公共接口。 10. 派生类定义:在C#中定义派生类时,使用冒号(:)指定基类。 11. 代码重用:...

    jsp基础

    它的语法简洁,可以方便地在JSP页面中取值和赋值。 ### JSTL(JSP Standard Tag Library) JSTL是一组标准的标签库,提供了许多用于处理常见任务的功能,如条件判断、循环、XML处理等,使得JSP代码更清晰,更易于...

    css入门笔记

    独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件中编写样式规则 3.在网页中对样式文件进行引入 &lt...

    C#试题汇总(有答案).doc

    2. 数值类型:小数类型(decimal)与浮点类型(float/double)都是用来表示小数的,但decimal类型的精度高于浮点类型,适合财务计算,而浮点类型则在内存中占用更少的空间,适用于需要较大取值范围和牺牲一定精度的...

    C#期末考试题..doc

    选项C正确指出了委托类型(C#中的事件处理机制)。 6. 窗体事件:窗体加载时触发的事件是Load事件,对应代码为`Form_Load`。 7. 窗体属性:改变窗体的标题,需要修改的属性是Text属性。 8. 定义接口:在C#中,...

    C#试题汇总

    25. C#语言其他知识点:此题未提供具体内容,但C#中还包括其他重要概念,如异常处理(try-catch-finally)、集合(List, Dictionary,TValue&gt;等)、LINQ查询、异步编程(async/await)、泛型、属性(property)、方法...

    iOS plist详细使用

    在iOS开发中,`plist`(Property List)是一种常见的数据存储方式,用于持久化应用程序的数据。它是XML或二进制格式的文件,可以存储数组、字典、字符串、数字、日期等多种基本数据类型。本篇文章将深入探讨iOS中`...

    JsonObject 与JsonArray 使用时的相关最新jar包(用于java 解析json)

    在Java编程中,处理JSON数据是一项常见的任务,而`JsonObject`和`JsonArray`是Gson库中的两个核心类,用于解析和构建JSON对象和数组。Gson是Google提供的一个开源库,它允许我们将Java对象转换为JSON字符串,反之...

    Hibernate通过配置文件自动生成表

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细讲解如何通过Hibernate配置文件自动生成数据库表,以及相关的知识...

    属性赋值@Value1

    在Java Spring框架中,`@Value`注解是用于注入属性值的一个重要工具,它可以从配置文件、表达式语言(SpEL)或者属性源中获取值,并将其赋值给bean的字段、方法或方法/构造函数参数。这个注解使得程序更加灵活,不...

    Struts2 Value Stack Contents 中取值、多个集合数组

    本文将详细介绍如何从Value Stack中取出多个集合数组中的特定值,特别是当存在多个同名集合时如何定位并获取所需数据。 首先,我们需要了解Value Stack在Struts2中的工作原理。Value Stack可以看作是一个存放数据的...

    Tree树的绑定,取值

    取值是指从树结构中获取特定节点或路径的数据。在编程中,这可能涉及到遍历树的算法,如深度优先搜索(DFS)或广度优先搜索(BFS)。例如,要获取某个特定ID的节点,我们可以从根节点开始,按照ID递归地遍历子节点,...

    JavaEE面试笔试问答题.docx

    JavaEE是企业级Java应用程序开发的标准,面试和笔试中经常涉及多个核心概念和技术。以下是对题目中提及的一些关键知识点的详细...以上是JavaEE面试笔试中常见的知识点,掌握这些将有助于理解并解决实际开发中的问题。

    jsp的常用指令有哪些(编译指令 动作指令整理).docx

    - 被包含的文件可以在编译阶段合并到主JSP页面中。 **语法**: ```jsp ``` - `file`属性指定要包含的文件路径。 **示例**: ```jsp &lt;%@ include file="header.jsp" %&gt; ``` **特点**: - 编译时合并,提高执行...

    Delphi程序设计基础学习教案.pptx

    - 文件类型:处理磁盘文件。 - 类类型和接口类型:面向对象编程的核心,类可以包含方法和属性,接口定义行为规范。 - 指针类型:指向其他数据类型的引用。 - 过程类型:封装一组操作。 - 可变类型:可以包含...

    struts2.0标签$ # %的区别

    Struts2框架作为Java Web开发中的重要组成部分,在处理MVC架构时提供了强大的支持。其中,Struts2标签库(Struts2 Tags Library)是开发者常用的工具之一,它不仅简化了前端页面的开发工作,还提高了应用的性能与可...

    vb Script参考文档

    PropertySet 语句 声明在窗体属性过程中设置引用到对象的名称,参数和代码。 Public 语句 声明公有变量并分配存储空间。 Raise 方法 产生运行时错误。 Randomize 语句 初始化随机数发生器。 ReDim 语句 声明动态...

    SpringMVC使用第三方组件实现文件上传

    在上面的代码中,我们使用了 Jersey 客户端来访问远程服务器,并将文件上传到远程服务器上。 在 springmvc.xml 配置文件解析器 在使用 SpringMVC 实现文件上传功能时,我们需要在 springmvc.xml 配置文件中添加...

    struts2实现国际化

    Struts2提供了`&lt;s:date&gt;`和`&lt;s:property&gt;`标签,配合资源文件中的格式设置,可以显示符合当地习惯的日期和数字。 7. **测试和优化**:完成上述配置后,可以通过更改浏览器的语言设置或者手动设置session中的语言...

Global site tag (gtag.js) - Google Analytics