`
chengyu2099
  • 浏览: 468929 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

项目中的一个模块

阅读更多
模拟数据:

1	 46917	0	家校互动(10元),开通免费<br>亲情电话(2元),开通免费<br>平安短信(2元),开通免费	1	溧水县教育局技装办	
2	 44149	0	家校互动(10元),免费期已满延长免费期	1	惠讯通讯	
3	 100	301749	亲情电话(2元),开通免费	2	南京联创	二呆
4	 100	301749	家校互动(10元),开通免费	1	南京联创	二呆
5	 100	0	亲情电话(2元),开通免费	1	南京联创	
6	 100	301749	平安短信(2元),开通免费	2	南京联创	二呆
7	 17841	0	家校互动(10元),开通免费	7	南教公司	
8	 44149	0	家校互动(10元),开通免费	2	惠讯通讯	
9	 44149	414433	家校互动(10元),开通收费	9	惠讯通讯	九叶科技
10	 17841	0	亲情电话(2元),免费期已满延长免费期	1	南教公司	
11	 44149	0	用户换号	2	惠讯通讯	
12	 100	0	平安短信(2元),开通收费	3	南京联创	
13	 17841	0	家校互动(10元),开通收费	31	南教公司	
14	 17841	0	家校互动(10元),开通收费<br>亲情电话(2元),开通免费	16	南教公司	

要求:抽出 相同业务的用户短信涉及条数?
FOR:
3	100	301749	亲情电话(2元),开通免费	2	南京联创	二呆
4	100	301749	家校互动(10元),开通免费	1	南京联创	二呆
6	100	301749	平安短信(2元),开通免费	2	南京联创	二呆

是一类数据,抽出相同的 业务,统计数据

5	100	0	亲情电话(2元),开通免费	1	南京联创	
12	100	0	平安短信(2元),开通收费	3	南京联创	
是一类数据,统计数据,以此类推

实现:首先获取个各个分组数据,并合并业务名称
实现结果如:
《一》
100 - 亲情电话(2元),开通免费|1<br>平安短信(2元),开通收费|3
46917 - 家校互动(10元),开通免费<br>亲情电话(2元),开通免费<br>平安短信(2元),开通免费|1
44149 - 家校互动(10元),免费期已满延长免费期|1<br>家校互动(10元),开通免费|2<br>用户换号|2
100 - 亲情电话(2元),开通免费|2<br>家校互动(10元),开通免费|1<br>平安短信(2元),开通免费|2
17841 - 家校互动(10元),开通免费|7<br>亲情电话(2元),免费期已满延长免费期|1<br>家校互动(10元),开通收费|31<br>家校互动(10元),开通收费<br>亲情电话(2元),开通免费|16
44149 - 家校互动(10元),开通收费|9

《二》
分割业务名称的详细条数
如:
家校互动(10元),开通免费|7
亲情电话(2元),免费期已满延长免费期|1
家校互动(10元),开通收费|31
家校互动(10元),开通收费
亲情电话(2元),开通免费|16

或者

家校互动
亲情电话
平安短信
万事如意|1
出现问题了,并不是每个业务名称的分割都会出现相应条数,有可能一组数据的业务名称为一条总记录
如:
46917	0	家校互动(10元),开通免费<br>亲情电话(2元),开通免费<br>平安短信(2元),开通免费	1	溧水县教育局技装办	
说明各个业务 分别都是一条
《三》
获取相应的条数,不管总名称或相应条数
实现如:
>>>>> 家校互动|1
>>>>> 亲情电话|1
>>>>> 平安短信|1
>>>>> 万事如意|1

《四》
各个相应的条数分割后,可能会出现相同的业务名称
如:
家校互动(10元),开通免费
亲情电话(2元),开通免费
平安短信(2元),开通免费|1
家校互动(10元),开通免费
亲情电话(2元),开通免费
平安短信(2元),开通免费|2

各个都出现了2次,并且各个数目不一样
分配各个业务名称相应条数
如:
>>>>> 家校互动(10元),开通免费|1
>>>>> 亲情电话(2元),开通免费|1
>>>>> 平安短信(2元),开通免费|1
>>>>> 家校互动(10元),开通免费|2
>>>>> 亲情电话(2元),开通免费|2
>>>>> 平安短信(2元),开通免费|2

《五》
累计求和:
如:
>>>>> 家校互动(10元),开通免费|1
>>>>> 亲情电话(2元),开通免费|1
>>>>> 平安短信(2元),开通免费|1
>>>>> 家校互动(10元),开通免费|2
>>>>> 亲情电话(2元),开通免费|2
>>>>> 平安短信(2元),开通免费|2

亲情电话(2元),开通免费=3
平安短信(2元),开通免费=3
家校互动(10元),开通免费=3

《六》
返回数据,OK,总共开发时间,一下午+晚上 8点-12点半

实现代码:

    	List<TCChangeMaster> list = bookManageDao.findUnaudits(djids);
//    	modify by chengrenyin	
    	Map<Integer,TcBean> map = new HashMap<Integer, TcBean>();
    	for(TCChangeMaster m:list)
    	{
    		if(map.containsKey(m.getAgentl1Id()+m.getAgentl2Id()))
    		{
    			TcBean tb = new TcBean();
    			tb.setAgentl1Id(m.getAgentl1Id());
    			tb.setAgentl2Id(m.getAgentl2Id());
    			tb.setAgentl1Name(m.getAgentl1Name());
    			tb.setAgent21Name(m.getAgentl2Name());
    			
    			tb.setRemark(map.get(m.getAgentl1Id()+m.getAgentl2Id()).getRemark()+"<br>"+m.getRequestDesc()+"|"+m.getSump());
    			map.put(m.getAgentl1Id()+m.getAgentl2Id(),tb);
    		}else
    		{
    			TcBean tb = new TcBean();
    			tb.setAgentl1Id(m.getAgentl1Id());
    			tb.setAgentl2Id(m.getAgentl2Id());
    			tb.setAgentl1Name(m.getAgentl1Name());
    			tb.setAgent21Name(m.getAgentl2Name());
//    			
    			tb.setRemark(m.getRequestDesc()+"|"+m.getSump());
    			map.put(m.getAgentl1Id()+m.getAgentl2Id(),tb);
    		}
    	}
//    	整理 涉及用户数 by chengrenyin 2010-9-20  重构 requestDesc(解析)
    	List<TcBean2> list2 = new ArrayList<TcBean2>();
    	
    	Iterator it = map.entrySet().iterator();
    	while(it.hasNext())
    	{
    		Map.Entry entry = (Map.Entry)it.next();
    		TcBean t = map.get(entry.getKey());
    		System.out.println(t.getAgentl1Id()+" - "+t.getRemark());
    		
    		TcBean2 tb2 = new TcBean2();
    		tb2.setAgentl1Id(t.getAgentl1Id());
    		tb2.setAgentl2Id(t.getAgentl2Id());
    		tb2.setAgentl1Name(t.getAgentl1Name());
    		tb2.setAgent21Name(t.getAgent21Name());
    		
    		// args str => result (chengrenyin)
//    		调用方法
    		String requestDesc = ""; 
    		
    	}
    	
    	return list;
    
    --------------------------------------
    /**
 * Test.java
 * com.linkage.justone5.agent
 *
 * Function: TODO 
 *
 *   ver     date      		author
 * ──────────────────────────────────
 *   		 Sep 2, 2010 		程仁银
 *
 * Copyright (c) 2010,  All Rights Reserved.
*/

package com.linkage.justone5.agent;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * ClassName:Test
 * Project: 
 * Company: LINKAGE
 *
 * @author   程仁银
 * @version  
 * @since    Ver 1.1
 * @Date	 Sep 2, 2010		10:35:47 AM
 *
 * @see 	 
 */
public class Test 
{
	OracleDBI2 dbi = new OracleDBI2();
	public void method(String str)
	{
//		*******************************************************************************
		String[] array = str.split("<br>");
		StringBuffer sb = new StringBuffer();
		if(array.length>1)
		{
			for(int k=0;k<array.length;k++)
			{
				System.out.println(array[k]);
				String[] desc = array[k].split("\\|");
				if(desc.length<=1) 
				{	//requestDesc 里面包含多个值,并且他们的值或其中一个值是下一个值的涉及用户数据
					int curr = k+1;
					String[] test = array[curr].split("\\|");
					if(test.length>1)
					{
						int tint = Integer.parseInt(test[1]);
						sb.append(array[k]);
						sb.append("|");
						sb.append(String.valueOf(tint));
						sb.append("&");
					}else
					{
						sb.append(array[k]);
						sb.append("|");
//						如果一行有N多个<br>这样他的下一个值也是没有值 for;家校互动<br>亲情电话<br>平安短信<br>测试短信|1
//						直到取到值为止(到最后一个)
						boolean flag = true;
						int tempInt = 0;
						while(flag)
						{
							int temp = curr+1;
							if(array[temp].split("\\|").length<=1)temp++;
							if(array[temp].split("\\|").length>1)
							{
								String[] tempArray = array[temp].split("\\|");
								tempInt = Integer.parseInt(tempArray[1]);
								flag = false;
							}
						}
						sb.append(tempInt);
						sb.append("&");
//						********************************
						curr++;
					}
				}
				if(desc.length>1){sb.append(array[k]);sb.append("&");}
			}
		}else
		{
			String[] strx = str.split("\\|");
			sb.append(strx[0]);
			sb.append(",");
			sb.append(strx[1]+"条");
		}
		System.out.println(sb.toString());
//		目前已分割出不同<br>的所有属性值,获取相同的值相加,展示
		Map<String,Integer> resultMap = new HashMap<String, Integer>();
		String[] resultTest = sb.toString().split("\\&");
		for(int x=0;x<resultTest.length;x++)
		{ 
			System.out.println(">>>>> "+resultTest[x]);
			String[] temp2 = resultTest[x].split("\\|");
			if(resultMap.containsKey(temp2[0]))
			{
				resultMap.put(temp2[0],Integer.parseInt(temp2[1])+resultMap.get(temp2[0]));
			}else
			{
				resultMap.put(temp2[0],Integer.parseInt(temp2[1]));
			}
		}
		Iterator it = resultMap.entrySet().iterator();
    	while(it.hasNext())
    	{
//    		Map.Entry entry = (Map.Entry)it.next();
    		System.out.println(it.next());
    	}
//		*******************************************************************************
	}
	public Test(){}
	public static void main(String[] args) 
	{
		String str1 = "家校互动(10元),开通免费|7<br>亲情电话(2元),免费期已满延长免费期|1<br>家校互动(10元),开通收费|31<br>家校互动(10元),开通收费<br>亲情电话(2元),开通免费|16";
		String str2 = "家校互动<br>亲情电话<br>平安短信<br>万事如意|1";
		String str3 ="家校互动(10元),开通收费|9";
		String str4 = "家校互动(10元),开通免费<br>亲情电话(2元),开通免费<br>平安短信(2元),开通免费|1<br>家校互动(10元),开通免费<br>亲情电话(2元),开通免费<br>平安短信(2元),开通免费|2";
		new Test().method(str4);
	}
}
//家校互动(10元),开通收费亲情电话(2元),开通免费|16

---------------------修改
/**
* DecodeString.java
* com.linkage.justone4.bookmanage.domain
*
* Function: TODO
*
*   ver     date      author
* ──────────────────────────────────
*   Sep 21, 2010 程仁银
*
* Copyright (c) 2010,  All Rights Reserved.
*/

package com.linkage.justone4.bookmanage.domain;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
* ClassName:DecodeString
* Project:
* Company: LINKAGE
*
* @author   程仁银
* @version 
* @since    Ver 1.1
* @Date Sep 21, 2010 9:18:50 AM
*
* @see
*/
public class DecodeString {
static StringBuffer stringBuffer ;
public static String decodeString(String str)
{
// *******************************************************************************
String[] array = str.split("<br>");
StringBuffer sb = new StringBuffer();
if(array.length>1)
{
for(int k=0;k<array.length;k++)
{
System.out.println(array[k]);
String[] desc = array[k].split("\\|");
if(desc.length<=1)
{ //requestDesc 里面包含多个值,并且他们的值或其中一个值是下一个值的涉及用户数据
int curr = k+1;
String[] test = array[curr].split("\\|");
if(test.length>1)
{
int tint = Integer.parseInt(test[1]);
sb.append(array[k]);
sb.append("|");
sb.append(String.valueOf(tint));
sb.append("&");
}else
{
sb.append(array[k]);
sb.append("|");
// 如果一行有N多个<br>这样他的下一个值也是没有值 for;家校互动<br>亲情电话<br>平安短信<br>测试短信|1
// 直到取到值为止(到最后一个)
boolean flag = true;
int tempInt = 0;
while(flag)
{
int temp = curr+1;
if(array[temp].split("\\|").length<=1)temp++;
if(array[temp].split("\\|").length>1)
{
String[] tempArray = array[temp].split("\\|");
tempInt = Integer.parseInt(tempArray[1]);
flag = false;
}
}
sb.append(tempInt);
sb.append("&");
// ********************************
curr++;
}
}
if(desc.length>1){sb.append(array[k]);sb.append("&");}
}
}else
{
sb.append(str);
sb.append("&");
}
System.out.println(sb.toString());
// 目前已分割出不同<br>的所有属性值,获取相同的值相加,展示
Map<String,Integer> resultMap = new HashMap<String, Integer>();
String[] resultTest = sb.toString().split("\\&");
for(int x=0;x<resultTest.length;x++)
{
System.out.println(">>>>> "+resultTest[x]);
String[] temp2 = resultTest[x].split("\\|");
if(resultMap.containsKey(temp2[0]))
{
resultMap.put(temp2[0],Integer.parseInt(temp2[1])+resultMap.get(temp2[0]));
}else
{
resultMap.put(temp2[0],Integer.parseInt(temp2[1]));
}
}
stringBuffer = new StringBuffer();
Iterator it = resultMap.entrySet().iterator();
    while(it.hasNext())
    {
//    Map.Entry entry = (Map.Entry)it.next();
    stringBuffer.append(it.next().toString());
    }
// *******************************************************************************
    System.out.println("result = "+ stringBuffer);
    return stringBuffer.toString();
}
}

分享到:
评论

相关推荐

    Qt中多工程及多模块项目配置简单示例

    在Qt中,一个工程(Project)通常代表一个单独的可执行文件或库,而模块(Module)则是项目中的逻辑分组,可能包含多个类或功能相关的源文件。通过合理划分工程和模块,可以有效地提高代码的复用性和可读性。 在Qt ...

    idea spring boot 多模块项目创建

    本文将深入探讨如何在IntelliJ IDEA(Idea)中创建一个基于Spring Boot的多模块项目,以及这样做的好处。 首先,我们来理解Spring Boot多模块项目的概念。一个Spring Boot项目可以被拆分成多个独立的模块,每个模块...

    eclipse下gradle多模块项目构建

    1. **初始化主项目**:首先,在Eclipse中创建一个新的Gradle项目,作为整个多模块项目的根目录。根目录的`build.gradle`文件将包含所有子模块的定义。 2. **添加子模块**:在根目录下,为每个子模块创建一个单独的...

    SpringCloud分布式微服务项目Common通用依赖模块抽离示例代码

    SpringCloud分布式微服务项目Common通用依赖模块抽离示例代码 SpringCloud分布式微服务项目Common通用依赖模块抽离示例代码 SpringCloud分布式微服务项目Common通用依赖模块抽离示例代码 SpringCloud分布式微服务...

    课设作业-基于python flask搭建的一个具有编辑,删除,发布文章,富文本编辑器集成的小项目,可作为模块嵌入自己的项目中

    基于python flask搭建的一个具有编辑,删除,发布文章,富文本编辑器集成的小项目,可作为模块嵌入自己的开发项目中基于python flask搭建的一个具有编辑,删除,发布文章,富文本编辑器集成的小项目,可作为模块嵌入...

    使用Maven构建多模块项目

    首先,创建一个父项目,然后在父项目的pom.xml中添加子模块的定义,最后在父项目目录下为每个子模块生成对应的目录结构和基本的pom.xml。 4. 依赖管理: 在父pom.xml中,通过标签可以定义所有子模块共有的依赖及其...

    maven构建多模块项目

    首先,Maven多模块项目是将一个大型项目划分为多个相互依赖的子项目,每个子项目负责特定的功能模块,这样可以提高开发效率,便于代码维护和团队协作。创建多模块项目的第一步是设置一个父项目(Parent Project),...

    若依项目各个模块功能分析

    本文将深入剖析若依项目的各个核心模块,帮助读者理解其功能特性,以便更好地利用这个框架进行实际项目开发。 一、用户管理模块 若依项目中的用户管理模块主要负责用户的注册、登录以及权限管理。用户注册支持邮箱...

    SpringBoot多模块项目框架搭建过程解析

    在本示例中,我们将创建一个名为 ${PREFIXE}-start 的模块,该模块将用于启动项目。 三、配置模块之间的依赖关系 在创建完启动模块后,我们需要配置模块之间的依赖关系。在 SpringBoot 中,我们可以使用 Maven 或 ...

    gradle将多模块打包成一个jar执行类demo

    标题中的“gradle将多模块打包成一个jar执行类demo”指的是使用Gradle构建工具将一个包含多个子模块的项目打包成一个可执行的JAR文件。在Java开发中,多模块项目通常是为了实现模块化设计,提高代码的可复用性和可...

    springboot多模块项目案例

    这可能是项目中的一个核心业务模块,可能包含特定业务逻辑和服务。具体功能需要根据项目源代码来分析。 6. **web**: 这个模块可能负责提供HTTP接口,即应用的前端控制器。它通常会包含Spring MVC的配置和控制器...

    maven多模块项目构建过程

    本篇文章将详细探讨"Maven多模块项目构建过程",并结合提供的资源"搭建maven多工程模块步骤",来深入理解如何创建和管理一个包含多个子项目的Maven工程。 1. Maven多模块项目概述: Maven多模块项目是指由一个父...

    maven多模块项目(简单实例)

    在Maven中,多模块项目是由一个父模块(Parent Module)和若干子模块(Child Modules)组成。父模块主要负责定义公共的依赖版本和插件配置,而子模块则各自负责具体的功能实现。通过`&lt;modules&gt;`标签,父模块可以声明...

    maven多模块项目工程-已搭建好

    1. **Maven多模块项目结构**:一个典型的Maven多模块项目通常包括一个父模块(parent)和多个子模块(sub-modules)。父模块的`pom.xml`文件不包含任何代码,只负责设定共用的属性、版本号、依赖管理和构建插件。子...

    软件项目设计方案模块(框架)

    软件项目设计方案模块(框架)是一个软件项目的整体架构设计,旨在为软件项目的设计和开发提供一个统一的架构模式。该模块包括了项目背景、项目需求分析、项目设计方案等几个部分。 项目背景 ---------- 项目背景...

    在RuoYi项目基础上改造,通过多模块的方式整合其他经常被用到的功能模块

    这个“在RuoYi项目基础上改造”的案例就是一个典型的实例,它涉及到了微信小程序的开发、多模块化整合以及源码资源的使用。下面将详细阐述这些关键知识点。 首先,RuoYi项目是一个常见的Java Web管理系统,它的核心...

    Springboot多模块 整合 mybatis maven项目

    在本项目中,"first-app"可能代表了项目的第一个应用模块。在实际操作中,我们会在该模块下编写应用的启动类、配置文件以及相关业务代码。启动类通常会继承`SpringBootServletInitializer`并覆盖`configure`方法,...

    maven多模块项目

    要创建一个Maven多模块项目,首先我们需要在`pom.xml`文件中定义项目的整体结构,包括各个模块的依赖关系。例如,一个典型的电商项目可能包含以下几个模块:`parent`(父模块),`common`(公共模块,包含共享的代码...

    maven 模块化项目demo

    Maven,一个流行的Java构建工具,提供了强大的支持来管理模块化项目。本“maven 模块化项目demo”旨在展示如何使用Maven构建和管理模块化的Java应用。 Maven的核心概念是“项目对象模型”(Project Object Model,...

    多模块项目如何建解决方案

    2. **添加模块项目**:在新创建的解决方案中,添加每个模块为一个单独的项目。每个项目代表一个特定的功能或服务,例如“UserModule”、“ProductModule”和“OrderModule”。在IDE中,通过"添加新项目"功能,选择...

Global site tag (gtag.js) - Google Analytics