- 浏览: 42874 次
- 性别:
- 来自: 大连
文章分类
最新评论
public List<IpnorsDetailKkbhSM> getSisakuAndKkbhInfos(IpnorsDetailRegistSearchSM ipnorsDetailRegistSearchSM){
AsdUser user = SecurityUtils.getLoggedInUser();
// 3次店で販売店情報を取得する
CmsSryHanbaiTenCustomParameter cmsSryHanbaiTenCustomParameter = new CmsSryHanbaiTenCustomParameter();
// チャネルコード
cmsSryHanbaiTenCustomParameter.setHanbaiTenChannelCd(ipnorsDetailRegistSearchSM.getHanbaiTenChannelCd());
// 社員コード
cmsSryHanbaiTenCustomParameter.setShainCd(user.getShainCd());
// 3次店コード
cmsSryHanbaiTenCustomParameter.setHanbaiTenSry3JitenInCd(ipnorsDetailRegistSearchSM.getSanjiTenCd());
// 1次店コード
cmsSryHanbaiTenCustomParameter.setHanbaiTenSry1JitenInCd(ipnorsDetailRegistSearchSM.getIchijiTenCd());
List<CmsSryHanbaiTenDM> cmsSryHanbaiTenDMList = cmsSryHanbaiTenCustomDAO.getHanbaitenBySanjitenInfo(cmsSryHanbaiTenCustomParameter);
Map<String, CmsSryHanbaiTenDM> hanbaitenMap = new HashMap<String, CmsSryHanbaiTenDM>();
for (CmsSryHanbaiTenDM dm : cmsSryHanbaiTenDMList) {
hanbaitenMap.put(dm.getHanbaiTenCd(), dm);
}
Map<String, CmsSryHanbaiTenDM> hanbaitenMapSorted = new TreeMap<String, CmsSryHanbaiTenDM>(hanbaitenMap);
Iterator<String> hanbaitenCds = hanbaitenMapSorted.keySet().iterator();
List<String> hanbaitenCdList = new ArrayList<String>();
while (hanbaitenCds.hasNext()) {
hanbaitenCdList.add(hanbaitenCds.next());
}
// 引数値を生成する
CtrKkbhDMParameter ctrKkbhDMParameter = new CtrKkbhDMParameter();
ctrKkbhDMParameter.setHeadNhkShoNo(ipnorsDetailRegistSearchSM.getNhkShoNo());
ctrKkbhDMParameter.setMhkShoNo(ipnorsDetailRegistSearchSM.getMhkShoNo());
ctrKkbhDMParameter.setCoCd(user.getCoCd());
List<IpnorsDetailKkbhSM> result = new ArrayList<IpnorsDetailKkbhSM>();
// 月次販売計画書番号で施策情報を検索する
List<CtrKkbhDM> ctrKkbhList = ctrKkbhCustomDAO.selectSskInfoByMthKeikakuNo(ctrKkbhDMParameter);
if (ctrKkbhList != null) {
// 施策で、グループ化する。
Map<String, List<CtrKkbhDM>> shisakuGroup = new HashMap<String, List<CtrKkbhDM>>();
for (CtrKkbhDM ctrKkbhDM : ctrKkbhList) {
List<CtrKkbhDM> sisakuList = new ArrayList<CtrKkbhDM>();
sisakuList.add(ctrKkbhDM);
sisakuList = shisakuGroup.put(ctrKkbhDM.getTgtShisakuId(), sisakuList);
if (sisakuList != null) {
sisakuList.add(ctrKkbhDM);
shisakuGroup.put(ctrKkbhDM.getTgtShisakuId(), sisakuList);
}
}
// 施策で、ソートする。
Map<String, List<CtrKkbhDM>> shisakuGroupSortedByShisakuCd = new TreeMap<String, List<CtrKkbhDM>>(shisakuGroup);
Iterator<String> shisakuCdList = shisakuGroupSortedByShisakuCd.keySet().iterator();
while (shisakuCdList.hasNext()) {
IpnorsDetailKkbhSM sm = new IpnorsDetailKkbhSM();
// 各販売店の情報
for (int i = 0; i < hanbaitenCdList.size(); i++) {
sm.getHonsyaKakubaihiAList().add(new IpnorsDetailKkbhSM.Kakubaihi());
sm.getShisyaKakubaihiAList().add(new IpnorsDetailKkbhSM.Kakubaihi());
// 拡売費番号
sm.getKkbhNoList().add(null);
// 月次販売計画明細番号
sm.getHanbaiKkuMsiNoList().add(null);
// 商流販売店販売店コート
sm.getTskInCdList().add(null);
// 営業経費更新日時
sm.getEigKeihKsnDateList().add(null);
}
String shisakuCd = shisakuCdList.next();
List<CtrKkbhDM> list = shisakuGroupSortedByShisakuCd.get(shisakuCd);
Map<String, List<CtrKkbhDM>> syohinGroup = new HashMap<String, List<CtrKkbhDM>>();
// 商品で、グループ化する。
for (int i = 0; i < list.size(); i++) {
CtrKkbhDM ctrKkbhDM = list.get(i);
List<CtrKkbhDM> tempList = new ArrayList<CtrKkbhDM>();
tempList.add(ctrKkbhDM);
tempList = syohinGroup.put(ctrKkbhDM.getSmryShohinCd(), tempList);
if (tempList != null) {
tempList.add(ctrKkbhDM);
syohinGroup.put(ctrKkbhDM.getSmryShohinCd(), tempList);
}
}
Map<String, List<CtrKkbhDM>> syohinGroupSortedBySmryShohinCd = new TreeMap<String, List<CtrKkbhDM>>(syohinGroup);
Iterator<String> smryShohinCdList = syohinGroupSortedBySmryShohinCd.keySet().iterator();
int smryShohinCdCount = syohinGroupSortedBySmryShohinCd.size();
// 各商品の情報
for (int m = 0; m < smryShohinCdCount; m++) {
sm.getKakubaihiInHanbaitenList().add(new ArrayList<IpnorsDetailKkbhSM.Kakubaihi>());
}
int indexOfSyohin = -1;
while (smryShohinCdList.hasNext()) {
indexOfSyohin++;
// 各販売店の拡売費
List<IpnorsDetailKkbhSM.Kakubaihi> kakubaihiList = new ArrayList<IpnorsDetailKkbhSM.Kakubaihi>();
for (int i = 0; i < hanbaitenCdList.size(); i++) {
IpnorsDetailKkbhSM.Kakubaihi kakubaihi = new IpnorsDetailKkbhSM.Kakubaihi();
kakubaihiList.add(kakubaihi);
}
String smryShohinCd = smryShohinCdList.next();
List<CtrKkbhDM> tempList = syohinGroupSortedBySmryShohinCd.get(smryShohinCd);
Collections.sort(tempList, new Comparator<CtrKkbhDM>() {
@Override
public int compare(CtrKkbhDM o1, CtrKkbhDM o2) {
if (o2.getTskInCd() == null) {
return 0;
} else if (o1.getTskInCd() == null) {
return -1;
}
return o1.getTskInCd().compareTo(o2.getTskInCd());
}
});
for (CtrKkbhDM ctrKkbhDM : tempList) {
this.replace(ctrKkbhDM,
sm.getHanbaiKkuMsiNoList(),
sm.getEigKeihKsnDateList(),
sm.getKkbhNoList(),
sm.getHonsyaKakubaihiAList(),
sm.getShisyaKakubaihiAList(),
kakubaihiList,
hanbaitenCdList);
this.setFirstOfSortedSyohinInfo(sm.getDisplayKategori(),
sm.getDisplayBurando(),
sm.getDisplaySmallBurando(),
sm.getDisplayGoods(),
ctrKkbhDM);
}
// 各販売店の拡売費を格納する。
sm.getKakubaihiInHanbaitenList().set(indexOfSyohin, kakubaihiList);
}
if (!list.isEmpty()) {
// 施策ID
sm.setShisakuId(list.get(0).getTgtShisakuId());
// 施策名称
sm.setShisakuMeisho(list.get(0).getShisakuMeisho());
}
result.add(sm);
}
}
// 月次販売計画書番号で拡売費情報を検索する
ctrKkbhList = ctrKkbhCustomDAO.selectKkbhInfoByMthKeikakuNo(ctrKkbhDMParameter);
if (ctrKkbhList != null) {
// 拡売費用途コードで、グループ化する。
Map<String, List<CtrKkbhDM>> kakubaihiYotoCdGroup = new HashMap<String, List<CtrKkbhDM>>();
for (CtrKkbhDM ctrKkbhDM : ctrKkbhList) {
List<CtrKkbhDM> kakubaihiYotoCdList = new ArrayList<CtrKkbhDM>();
kakubaihiYotoCdList.add(ctrKkbhDM);
kakubaihiYotoCdList = kakubaihiYotoCdGroup.put(ctrKkbhDM.getKkbhYotoCd(), kakubaihiYotoCdList);
if (kakubaihiYotoCdList != null) {
kakubaihiYotoCdList.add(ctrKkbhDM);
kakubaihiYotoCdGroup.put(ctrKkbhDM.getKkbhYotoCd(), kakubaihiYotoCdList);
}
}
// 拡売費用途コードで、ソートする。
Map<String, List<CtrKkbhDM>> kakubaihiYotoCdGroupSortedByShisakuCd = new TreeMap<String, List<CtrKkbhDM>>(kakubaihiYotoCdGroup);
Iterator<String> kakubaihiYotoCdList = kakubaihiYotoCdGroupSortedByShisakuCd.keySet().iterator();
while (kakubaihiYotoCdList.hasNext()) {
IpnorsDetailKkbhSM sm = new IpnorsDetailKkbhSM();
// 各販売店の情報
for (int i = 0; i < hanbaitenCdList.size(); i++) {
sm.getHonsyaKakubaihiAList().add(new IpnorsDetailKkbhSM.Kakubaihi());
sm.getShisyaKakubaihiAList().add(new IpnorsDetailKkbhSM.Kakubaihi());
// 拡売費番号
sm.getKkbhNoList().add(null);
// 月次販売計画明細番号
sm.getHanbaiKkuMsiNoList().add(null);
// 商流販売店販売店コート
sm.getTskInCdList().add(null);
// 営業経費更新日時
sm.getEigKeihKsnDateList().add(null);
}
String kakubaihiYotoCd = kakubaihiYotoCdList.next();
List<CtrKkbhDM> list = kakubaihiYotoCdGroupSortedByShisakuCd.get(kakubaihiYotoCd);
Map<String, List<CtrKkbhDM>> syohinGroup = new HashMap<String, List<CtrKkbhDM>>();
// 商品で、グループ化する。
for (int i = 0; i < list.size(); i++) {
CtrKkbhDM ctrKkbhDM = list.get(i);
List<CtrKkbhDM> tempList = new ArrayList<CtrKkbhDM>();
tempList.add(ctrKkbhDM);
tempList = syohinGroup.put(ctrKkbhDM.getSmryShohinCd(), tempList);
if (tempList != null) {
tempList.add(ctrKkbhDM);
syohinGroup.put(ctrKkbhDM.getSmryShohinCd(), tempList);
}
}
Map<String, List<CtrKkbhDM>> syohinGroupSortedBySmryShohinCd = new TreeMap<String, List<CtrKkbhDM>>(syohinGroup);
Iterator<String> smryShohinCdList = syohinGroupSortedBySmryShohinCd.keySet().iterator();
int smryShohinCdCount = syohinGroupSortedBySmryShohinCd.size();
// 各商品の情報
for (int m = 0; m < smryShohinCdCount; m++) {
sm.getKakubaihiInHanbaitenList().add(new ArrayList<IpnorsDetailKkbhSM.Kakubaihi>());
}
int indexOfSyohin = -1;
while (smryShohinCdList.hasNext()) {
indexOfSyohin++;
// 各販売店の拡売費
List<IpnorsDetailKkbhSM.Kakubaihi> kakubaihiList = new ArrayList<IpnorsDetailKkbhSM.Kakubaihi>();
for (int i = 0; i < hanbaitenCdList.size(); i++) {
IpnorsDetailKkbhSM.Kakubaihi kakubaihi = new IpnorsDetailKkbhSM.Kakubaihi();
kakubaihiList.add(kakubaihi);
}
String smryShohinCd = smryShohinCdList.next();
List<CtrKkbhDM> tempList = syohinGroupSortedBySmryShohinCd.get(smryShohinCd);
Collections.sort(tempList, new Comparator<CtrKkbhDM>() {
@Override
public int compare(CtrKkbhDM o1, CtrKkbhDM o2) {
if (o2.getTskInCd() == null) {
return 0;
} else if (o1.getTskInCd() == null) {
return -1;
}
return o1.getTskInCd().compareTo(o2.getTskInCd());
}
});
for (CtrKkbhDM ctrKkbhDM : tempList) {
this.replace(ctrKkbhDM,
sm.getHanbaiKkuMsiNoList(),
sm.getEigKeihKsnDateList(),
sm.getKkbhNoList(),
sm.getHonsyaKakubaihiAList(),
sm.getShisyaKakubaihiAList(),
kakubaihiList,
hanbaitenCdList);
this.setFirstOfSortedSyohinInfo(sm.getDisplayKategori(),
sm.getDisplayBurando(),
sm.getDisplaySmallBurando(),
sm.getDisplayGoods(),
ctrKkbhDM);
}
// 各販売店の拡売費を格納する。
sm.getKakubaihiInHanbaitenList().set(indexOfSyohin, kakubaihiList);
}
if (!list.isEmpty()) {
// 拡売費用途コード
sm.setKakubaihiYotoCd(list.get(0).getKkbhYotoCd());
}
result.add(sm);
}
}
return result;
}
发表评论
-
sort,group by
2012-12-10 10:05 1023public HskSisakuCalReferSear ... -
calendar
2012-11-19 20:01 541import java.util.Calendar;publi ... -
DMP文件导入
2012-09-25 15:48 477http://wenku.baidu.com/view/b6a ... -
spring 线程池
2012-09-25 14:31 630http://wenku.baidu.com/view/e45 ... -
ibats with spring
2012-09-25 12:38 598http://wenku.baidu.com/view/132 ... -
Spring自动代理机制
2012-09-25 11:28 1957Spring自动代理机制 (残梦 ...
相关推荐
在javagroup仓库发布任务大家forkjavagroup仓库完成README.md中的任务提交pull request命令###学习流程主要分为两个方面:JAVA SE基础每天都会发布任务,基础不能丢每天都要提交代码,基础代码我都会reviewjava web ...
在Java编程中,分组聚合是一项重要的数据处理技术,它允许我们按照特定的规则将数据组织成多个逻辑组,然后对这些组进行聚合操作,如计算每个组的总和、平均值等。这个主题通常与Java集合框架和流API紧密相关,特别...
Java Group and Team Management System(JGATMS)是一款开源的Web应用程序,专为高效管理和组织团队及团队成员的技能信息而设计。它采用Java编程语言开发,提供了方便的界面,使得团队成员和领导者能够轻松地查看和...
1、 如果使用 groupby table转换为流的时候只能用toRetractDstream val rDstream: DataStream[(Boolean, (String, Long))] = table.toRetractStream[(String,Long)] 2、 toRetractDstream 得到的第一个boolean型...
JavaGroup2021是一个可能代表某个Java学习小组或项目的名称,这可能是一个关于Java编程的集合,包含了一些学习资源、代码示例或者项目实践。由于提供的信息有限,我将根据Java这一主题来展开,分享关于Java编程语言...
自定义包名通常采用组织的倒置域名,例如`net.javagroup.research.powerproject`。一旦类被放入包中,访问类时需要使用`包名.类名`。 数组是Java中存储固定数量相同类型数据的数据结构。声明数组有两种方式:`数据...
### 广播数据包 Java 模拟 #### 知识点概述 本篇文章将深入探讨一个Java程序案例,该程序用于模拟广播数据包的发送与接收。广播是一种网络通信方式,其中发送的数据包被所有连接到同一网络的主机接收。在Java中...
例如,`net.frontfree.javagroup`。这种做法有助于避免命名冲突,同时也能反映代码的来源。 2. **类的命名**:类名(Class Name)遵循“驼峰命名法”(Camel Case),即首字母大写,后续每个单词的首字母也大写,如...
例如,如果一个开发者在互联网上的域名为`frontfree.javagroup`,那么他们可能会将包命名为`net.frontfree.javagroup`。 **类的命名**: 类的名字必须以大写字母开头,内部的每个单词首字母也要大写,这种风格被...
为了确保包名的唯一性,建议在自定义包名前加上开发者或组织在互联网上的唯一域名,如`net.frontfree.javagroup`。 类的命名遵循驼峰命名法,即首字母大写的每个单词。如果类名由多个单词组成,如`TestPage`,那么...
系统命名为Web based Java Group Ware (WJGW),包括Web服务器(如MS IIS 3.0)、数据库管理系统、WJGW服务器和Web客户端。Web服务器存储HTML文档和Java Applet,DBMS负责数据管理,WJGW服务器处理数据转发、监控和...
group.setBlendMode(BlendMode.SRC_OVER); next.setBlendMode(BlendMode.SRC_ATOP); ``` **2.2.3 淡出特效** 为了增加过渡效果的多样性,可以为旧图片添加一个淡出特效。这里使用 `FadeTransition` 类实现,设置...
leetcode下载 0 SSH免密登录设置(略过) 参考这篇博客: 1 克隆一个项目副本到本地 git clone :YourGithubID/firstProject ## deepDarkFansy/firstProject 为你所创建的项目 ...:YourForkedGithubID/firstProject
【压缩包子文件的文件名称列表】"JG"可能代表"Java Group"或"Java组"的缩写,这可能是提供给参赛者的题目文件或者样例代码,或者是比赛结果的记录文件。具体的文件内容可能包括题目描述、输入输出示例、评分规则等,...
例如,如果一个开发者在互联网上的域名为`net.frontfree`,那么他定义的包名可能会以`net.frontfree.javagroup`开头。这样做可以避免不同开发者之间包名的冲突。 接下来是类的命名。类名应该是驼峰式命名,即第一个...
例如,要将组名从`java`改为`javagroup`,可以使用命令`groupmod -g 505 -n javagroup`。 3. 删除组: 如果需要删除一个组,可以使用`groupdel`命令。命令格式为`groupdel 组名`。值得注意的是,如果组内还有用户...
java Group下存放源代码,res Group则包含图片、布局文件等资源。与Eclipse不同,Android Studio的布局文件和Java代码在同一层级下管理,更便于代码与资源的对应。 四、新建文件 在Android Studio中新建文件,可以...
在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,为开发者提供了方便地操作数据库的方式。通过将Java对象与数据库表进行映射,Hibernate大大简化了数据持久化层的编码工作。在实际应用中,对象...