`

javaGroup

 
阅读更多

 

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;

    }

分享到:
评论

相关推荐

    javagroup:多火java学习小组资料分享

    在javagroup仓库发布任务大家forkjavagroup仓库完成README.md中的任务提交pull request命令###学习流程主要分为两个方面:JAVA SE基础每天都会发布任务,基础不能丢每天都要提交代码,基础代码我都会reviewjava web ...

    java实现分组聚合

    在Java编程中,分组聚合是一项重要的数据处理技术,它允许我们按照特定的规则将数据组织成多个逻辑组,然后对这些组进行聚合操作,如计算每个组的总和、平均值等。这个主题通常与Java集合框架和流API紧密相关,特别...

    Java Group and Team Management System-开源

    Java Group and Team Management System(JGATMS)是一款开源的Web应用程序,专为高效管理和组织团队及团队成员的技能信息而设计。它采用Java编程语言开发,提供了方便的界面,使得团队成员和领导者能够轻松地查看和...

    Flink之 group by

    1、 如果使用 groupby table转换为流的时候只能用toRetractDstream val rDstream: DataStream[(Boolean, (String, Long))] = table.toRetractStream[(String,Long)] 2、 toRetractDstream 得到的第一个boolean型...

    JavaGroup2021

    JavaGroup2021是一个可能代表某个Java学习小组或项目的名称,这可能是一个关于Java编程的集合,包含了一些学习资源、代码示例或者项目实践。由于提供的信息有限,我将根据Java这一主题来展开,分享关于Java编程语言...

    java基础学习笔记

    自定义包名通常采用组织的倒置域名,例如`net.javagroup.research.powerproject`。一旦类被放入包中,访问类时需要使用`包名.类名`。 数组是Java中存储固定数量相同类型数据的数据结构。声明数组有两种方式:`数据...

    广播数据包 java 模拟

    ### 广播数据包 Java 模拟 #### 知识点概述 本篇文章将深入探讨一个Java程序案例,该程序用于模拟广播数据包的发送与接收。广播是一种网络通信方式,其中发送的数据包被所有连接到同一网络的主机接收。在Java中...

    JAVA命名规范 编程

    例如,`net.frontfree.javagroup`。这种做法有助于避免命名冲突,同时也能反映代码的来源。 2. **类的命名**:类名(Class Name)遵循“驼峰命名法”(Camel Case),即首字母大写,后续每个单词的首字母也大写,如...

    java命名规范[文].pdf

    例如,如果一个开发者在互联网上的域名为`frontfree.javagroup`,那么他们可能会将包命名为`net.frontfree.javagroup`。 **类的命名**: 类的名字必须以大写字母开头,内部的每个单词首字母也要大写,这种风格被...

    Java中的命名规则.doc

    为了确保包名的唯一性,建议在自定义包名前加上开发者或组织在互联网上的唯一域名,如`net.frontfree.javagroup`。 类的命名遵循驼峰命名法,即首字母大写的每个单词。如果类名由多个单词组成,如`TestPage`,那么...

    用Java开发基于Web的定制工作流-周浩华.pdf

    系统命名为Web based Java Group Ware (WJGW),包括Web服务器(如MS IIS 3.0)、数据库管理系统、WJGW服务器和Web客户端。Web服务器存储HTML文档和Java Applet,DBMS负责数据管理,WJGW服务器处理数据转发、监控和...

    Java实现多种幻灯片切换特效.doc

    group.setBlendMode(BlendMode.SRC_OVER); next.setBlendMode(BlendMode.SRC_ATOP); ``` **2.2.3 淡出特效** 为了增加过渡效果的多样性,可以为旧图片添加一个淡出特效。这里使用 `FadeTransition` 类实现,设置...

    leetcode下载-JavaGroup1:这是java组1的项目

    leetcode下载 0 SSH免密登录设置(略过) 参考这篇博客: 1 克隆一个项目副本到本地 git clone :YourGithubID/firstProject ## deepDarkFansy/firstProject 为你所创建的项目 ...:YourForkedGithubID/firstProject

    2019年4月1日蓝桥杯省赛第十届蓝桥杯真题JAVA(G组)

    【压缩包子文件的文件名称列表】"JG"可能代表"Java Group"或"Java组"的缩写,这可能是提供给参赛者的题目文件或者样例代码,或者是比赛结果的记录文件。具体的文件内容可能包括题目描述、输入输出示例、评分规则等,...

    java命名规范

    例如,如果一个开发者在互联网上的域名为`net.frontfree`,那么他定义的包名可能会以`net.frontfree.javagroup`开头。这样做可以避免不同开发者之间包名的冲突。 接下来是类的命名。类名应该是驼峰式命名,即第一个...

    linux_用户和组操作.pdf

    例如,要将组名从`java`改为`javagroup`,可以使用命令`groupmod -g 505 -n javagroup`。 3. 删除组: 如果需要删除一个组,可以使用`groupdel`命令。命令格式为`groupdel 组名`。值得注意的是,如果组内还有用户...

    Android Studio使用教程 转.pdf

    java Group下存放源代码,res Group则包含图片、布局文件等资源。与Eclipse不同,Android Studio的布局文件和Java代码在同一层级下管理,更便于代码与资源的对应。 四、新建文件 在Android Studio中新建文件,可以...

    Hibernate关联关系

    在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,为开发者提供了方便地操作数据库的方式。通过将Java对象与数据库表进行映射,Hibernate大大简化了数据持久化层的编码工作。在实际应用中,对象...

Global site tag (gtag.js) - Google Analytics