朱杰兵blog

          jonhney'blog
          posts - 140, comments - 1, trackbacks - 0, articles - 0

          用map集合去重匯總

          Posted on 2015-04-16 15:22 朱杰兵 閱讀(3078) 評(píng)論(0)  編輯  收藏
          List<UserOutPlanItem> itemList = info.getItemList();//需要去重匯總的list
                  
                  List<UserOutAuditDTO> summary = new ArrayList<UserOutAuditDTO>();;
                 
                   //匯總到的map value為總數(shù)量和總重量
                  Map<String, String> map = new HashMap<String, String>();

                  if (ObjectUtils.notEmpty(itemList))
                  {
                      for (UserOutPlanItem item : itemList)
                      {
                          //這六個(gè)字段相同則匯成一條,并且把重量和數(shù)量累加
                          String key = item.getBreedName()+"_"+item.getSpecName()+"_"+
                                  item.getMaterialName()+"_"+item.getFactoryName()+"_"+
                                  item.getNumUtil()+"_"+item.getWeightUtil();

                          String num_weight = map.get(key);
                          //當(dāng)鍵不存在的時(shí)候匯一條
                          if (StringUtils.isNull(num_weight))
                          {
                              map.put(key, item.getNum()+"_"+item.getWeight());
                          }
                          //當(dāng)key已經(jīng)存在了,則累加
                          else
                          {
                              String[] arr = num_weight.split("_");
                              String thisNum = MoneyCalculateUtils.add(arr[0], item.getNum(), 0);
                              String thisWeight = MoneyCalculateUtils.add(arr[1], item.getWeight(), 4);
                              map.put(key, thisNum + "_" + thisWeight);
                          }
                      }
                  }

                  //重新解析map,把數(shù)據(jù)封裝到summary
                  if (ObjectUtils.notEmpty(map))
                  {
                      Set<String> ketSet = map.keySet();
                      for (String str : ketSet)
                      {
                          String arr[] = str.split("_");
                          UserOutAuditDTO dto = new UserOutAuditDTO();
                          dto.setBreedName(arr[0]);
                          dto.setSpec(arr[1]);
                          dto.setMaterial(arr[2]);
                          dto.setFactory(arr[3]);
                          dto.setNumUtil(arr[4]);
                          dto.setWeightUtil(arr[5]);
                          
                          String num_weight = map.get(str);
                          String arr2[] = num_weight.split("_");
                          dto.setSumNum(arr2[0]);
                          dto.setSumWeight(arr2[1]);
                          summary.add(dto);
                      }
                  }

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 繁峙县| 抚宁县| 遂平县| 江西省| 平度市| 泽库县| 平江县| 吉木萨尔县| 江安县| 嘉义县| 衡阳县| 张家口市| 广昌县| 慈利县| 辛集市| 嘉义县| 额敏县| 五家渠市| 绵阳市| 石台县| 绥芬河市| 沿河| 醴陵市| 宁乡县| 历史| 永嘉县| 泽普县| 广丰县| 临潭县| 常宁市| 邢台市| 从化市| 尼玛县| 乐山市| 页游| 三都| 承德县| 平陆县| 福鼎市| 涟水县| 望都县|