Commit 9ef590f4e31d3ca742c5e0f82d5699bf94d0176e
Merge remote-tracking branch 'origin/develop' into develop
# Conflicts: # src/main/resources/templates/config/receiptPreference/list.html
Showing
15 changed files
with
214 additions
and
52 deletions
src/main/java/com/huaheng/pc/inventory/InventoryMaterialSummary/controller/InventoryMaterialSummaryController.java
... | ... | @@ -80,10 +80,9 @@ public class InventoryMaterialSummaryController extends BaseController { |
80 | 80 | .eq(StringUtils.isNotEmpty(inventoryMaterialSummary.getMaterialName()), InventoryMaterialSummary::getMaterialName, inventoryMaterialSummary.getMaterialName()); |
81 | 81 | //.orderByAsc(InventoryMaterialSummary::getMaterialCode); |
82 | 82 | |
83 | - | |
84 | 83 | List<InventoryMaterialSummary> list = inventoryMaterialSummaryService.list(lambdaQueryWrapper); |
85 | 84 | //筛选库存汇总数据的专用方法 |
86 | - List<InventoryMaterialSummary> details = inventoryMaterialSummaryService.inventoryMaterialSummarySelect(list); | |
85 | + List<InventoryMaterialSummary> details = inventoryMaterialSummaryService.duplicateRemoval(list); | |
87 | 86 | if (details == null) { |
88 | 87 | details = Collections.emptyList(); |
89 | 88 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/InventoryMaterialSummary/service/InventoryMaterialSummaryService.java
... | ... | @@ -8,10 +8,13 @@ import java.util.List; |
8 | 8 | public interface InventoryMaterialSummaryService extends IService<InventoryMaterialSummary> { |
9 | 9 | |
10 | 10 | /** |
11 | - * 查询库存汇总数据的专用方法 | |
11 | + * 根据物料码去重及累加数量 | |
12 | 12 | * */ |
13 | 13 | List<InventoryMaterialSummary> inventoryMaterialSummarySelect(List<InventoryMaterialSummary> inventoryMaterialSummaryList); |
14 | 14 | |
15 | - | |
15 | + /** | |
16 | + * 多条件去重及累加数量,货主,物料码 | |
17 | + * */ | |
18 | + List<InventoryMaterialSummary> duplicateRemoval(List<InventoryMaterialSummary> inventoryMaterialSummaryList); | |
16 | 19 | |
17 | 20 | } |
... | ... |
src/main/java/com/huaheng/pc/inventory/InventoryMaterialSummary/service/InventoryMaterialSummaryServiceImpl.java
... | ... | @@ -5,9 +5,9 @@ import com.huaheng.pc.inventory.InventoryMaterialSummary.domain.InventoryMateria |
5 | 5 | import com.huaheng.pc.inventory.InventoryMaterialSummary.mapper.InventoryMaterialSummaryMapper; |
6 | 6 | import org.springframework.stereotype.Service; |
7 | 7 | |
8 | -import java.util.ArrayList; | |
9 | -import java.util.HashMap; | |
10 | -import java.util.List; | |
8 | +import java.math.BigDecimal; | |
9 | +import java.util.*; | |
10 | +import java.util.stream.Collectors; | |
11 | 11 | |
12 | 12 | |
13 | 13 | @Service |
... | ... | @@ -19,31 +19,61 @@ public class InventoryMaterialSummaryServiceImpl extends ServiceImpl<InventoryMa |
19 | 19 | |
20 | 20 | |
21 | 21 | /** |
22 | - * 筛选库存汇总数据的专用方法 | |
22 | + * 根据物料码去重及累加数量 | |
23 | 23 | * */ |
24 | 24 | @Override |
25 | 25 | public List<InventoryMaterialSummary> inventoryMaterialSummarySelect(List<InventoryMaterialSummary> inventoryMaterialSummaryList) { |
26 | - | |
27 | 26 | /*以物料为条件把同物料数量全部相加,去重再展示*/ |
28 | 27 | |
28 | + //单物料条件, | |
29 | 29 | HashMap<String, InventoryMaterialSummary> map = new HashMap<String, InventoryMaterialSummary>(); |
30 | 30 | for (InventoryMaterialSummary bean : inventoryMaterialSummaryList) { |
31 | - //单物料条件, | |
32 | - //货主和物料条件(!!!) | |
31 | + //map.containsKey()方法是判断该key在map中是否有该key值存在。如果存在则返回true。如果不存在则返回false | |
33 | 32 | if (map.containsKey(bean.getMaterialCode())) { |
34 | 33 | bean.setQty(map.get(bean.getMaterialCode()).getQty().add(bean.getQty())); |
35 | 34 | } |
35 | + //根据物料编码去重,hashMap的put方法不允许相同的键 | |
36 | 36 | map.put(bean.getMaterialCode(), bean); |
37 | 37 | } |
38 | -// inventorys.clear();//清空list | |
39 | 38 | List<InventoryMaterialSummary> inventoryList = new ArrayList<>(); |
40 | 39 | inventoryList.addAll(map.values()); |
41 | 40 | |
42 | 41 | return inventoryList; |
43 | 42 | } |
44 | 43 | |
45 | - | |
46 | - | |
44 | + /** | |
45 | + * 多条件去重 | |
46 | + * 合并数量 | |
47 | + * 多条件去重及累加数量,货主,物料码 | |
48 | + * */ | |
49 | + @Override | |
50 | + public List<InventoryMaterialSummary> duplicateRemoval(List<InventoryMaterialSummary> inventoryMaterialSummaryList){ | |
51 | + /*********/ | |
52 | + //先找货主和物料码相同的物料SKU相加得总数 | |
53 | + for(InventoryMaterialSummary o:inventoryMaterialSummaryList){ | |
54 | + BigDecimal numQty = BigDecimal.ZERO; | |
55 | + for (InventoryMaterialSummary t:inventoryMaterialSummaryList){ | |
56 | + if(o.getCompanyCode().equals(t.getCompanyCode()) && | |
57 | + o.getMaterialCode().equals(t.getMaterialCode())){ | |
58 | + | |
59 | + numQty = numQty.add(t.getQty()); | |
60 | + o.setQty(numQty); | |
61 | + } | |
62 | + } | |
63 | + } | |
64 | + /*此时,inventoryMaterialSummaryList内的全部QTY为货主和物料都相同的库存数量的总数,直接去重即可*/ | |
65 | + //多条件去重 | |
66 | + List<InventoryMaterialSummary> materialSummaryList = new ArrayList<>(); | |
67 | + inventoryMaterialSummaryList.stream().collect(Collectors.collectingAndThen( | |
68 | + Collectors.toCollection(() -> new TreeSet<>( | |
69 | + Comparator.comparing( | |
70 | + inventoryMaterialSummary -> | |
71 | + inventoryMaterialSummary.getCompanyCode() + ";" + inventoryMaterialSummary.getMaterialCode()))), | |
72 | + ArrayList::new)) | |
73 | + .forEach(list -> materialSummaryList.add(list)); | |
74 | + | |
75 | + return materialSummaryList; | |
76 | + } | |
47 | 77 | |
48 | 78 | |
49 | 79 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java
... | ... | @@ -71,7 +71,7 @@ public class adjustDetailController extends BaseController { |
71 | 71 | .eq(AdjustDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) //仓库 |
72 | 72 | .eq(adjustDetail.getId() != null, AdjustDetail::getId, adjustDetail.getId())//ID |
73 | 73 | .eq(StringUtils.isNotEmpty(adjustDetail.getAdjustHeaderCode()),AdjustDetail::getAdjustHeaderCode,adjustDetail.getAdjustHeaderCode())//调整单编码 |
74 | - .eq(StringUtils.isNotEmpty(adjustDetail.getCompanyCode()),AdjustDetail::getCompanyCode,adjustDetail.getCompanyCode())//货主 | |
74 | + .in(AdjustDetail::getCompanyCode,ShiroUtils.getCompanyCodeList())//货主 | |
75 | 75 | .eq(StringUtils.isNotEmpty(adjustDetail.getCycleCountHeaderCode()),AdjustDetail::getCycleCountHeaderCode,adjustDetail.getCycleCountHeaderCode())//盘单编码 |
76 | 76 | .eq(adjustDetail.getCycleCountDetailId() != null ,AdjustDetail::getCycleCountHeaderCode,adjustDetail.getCycleCountHeaderCode())//盘点明细 |
77 | 77 | .eq(StringUtils.isNotEmpty(adjustDetail.getCheckHeaderCode()),AdjustDetail::getCheckHeaderCode,adjustDetail.getCheckHeaderCode())//质检单编码 |
... | ... |
src/main/java/com/huaheng/pc/inventory/adjustHeader/controller/adjustHeaderController.java
... | ... | @@ -65,12 +65,13 @@ public class adjustHeaderController extends BaseController { |
65 | 65 | .le(StringUtils.isNotEmpty(createdEnd), AdjustHeader::getCreated, createdEnd)//创建时间范围 |
66 | 66 | .eq(AdjustHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) //仓库 |
67 | 67 | .eq(StringUtils.isNotEmpty(adjustHeader.getCode()),AdjustHeader::getCode,adjustHeader.getCode())//调整单编码 |
68 | - .eq(StringUtils.isNotEmpty(adjustHeader.getCompanyCode()),AdjustHeader::getCompanyCode,adjustHeader.getCompanyCode())//货主 | |
69 | 68 | .eq(StringUtils.isNotEmpty(adjustHeader.getProblemType()),AdjustHeader::getProblemType,adjustHeader.getProblemType())//调整类型 |
70 | 69 | .eq(StringUtils.isNotEmpty(adjustHeader.getCycleCountHeaderCode()),AdjustHeader::getCycleCountHeaderCode,adjustHeader.getCycleCountHeaderCode())//盘点单号 |
71 | 70 | .eq(StringUtils.isNotEmpty(adjustHeader.getCheckHeaderCode()),AdjustHeader::getCheckHeaderCode,adjustHeader.getCheckHeaderCode())//质检单号 |
72 | 71 | .eq(StringUtils.isNotEmpty(adjustHeader.getReferCode()),AdjustHeader::getReferCode,adjustHeader.getReferCode())//上游单编码 |
73 | 72 | .eq(StringUtils.isNotEmpty(adjustHeader.getCreatedBy()),AdjustHeader::getCreatedBy,adjustHeader.getCreatedBy())//创建人 |
73 | + //货主 | |
74 | + .in(AdjustHeader::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
74 | 75 | |
75 | 76 | .orderByDesc(AdjustHeader::getId); |
76 | 77 | |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryDetail/controller/InventoryDetailController.java
... | ... | @@ -73,7 +73,6 @@ public class InventoryDetailController extends BaseController |
73 | 73 | .eq(inventoryDetail.getInventoryHeaderId() != null,InventoryDetail::getInventoryHeaderId,inventoryDetail.getInventoryHeaderId()) //ID |
74 | 74 | .eq(StringUtils.isNotEmpty(inventoryDetail.getLocationCode()),InventoryDetail::getLocationCode,inventoryDetail.getLocationCode()) //库位 |
75 | 75 | .eq(StringUtils.isNotEmpty(inventoryDetail.getContainerCode()),InventoryDetail::getContainerCode,inventoryDetail.getContainerCode())//容器 |
76 | - .eq(StringUtils.isNotEmpty(inventoryDetail.getCompanyCode()),InventoryDetail::getCompanyCode,inventoryDetail.getCompanyCode())//货主 | |
77 | 76 | .eq(StringUtils.isNotEmpty(inventoryDetail.getSupplierCode()),InventoryDetail::getSupplierCode,inventoryDetail.getSupplierCode())//供应商 |
78 | 77 | .eq(StringUtils.isNotEmpty(inventoryDetail.getMaterialCode()),InventoryDetail::getMaterialCode,inventoryDetail.getMaterialCode())//物料编码 |
79 | 78 | .like(StringUtils.isNotEmpty(inventoryDetail.getMaterialName()),InventoryDetail::getMaterialName,inventoryDetail.getMaterialName())//物料名称 |
... | ... | @@ -87,6 +86,8 @@ public class InventoryDetailController extends BaseController |
87 | 86 | .eq(StringUtils.isNotEmpty(inventoryDetail.getReferCode()),InventoryDetail::getReferCode,inventoryDetail.getReferCode())//上游单号 |
88 | 87 | .eq(StringUtils.isNotEmpty(inventoryDetail.getReferDetailId()),InventoryDetail::getReferDetailId,inventoryDetail.getReferDetailId())//上游行号 |
89 | 88 | .eq(StringUtils.isNotEmpty(inventoryDetail.getLockCode()),InventoryDetail::getLockCode,inventoryDetail.getLockCode())//库存锁 |
89 | + //货主 | |
90 | + .in(InventoryDetail::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
90 | 91 | .orderByDesc(InventoryDetail::getId); |
91 | 92 | |
92 | 93 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryHeader/controller/InventoryHeaderController.java
... | ... | @@ -71,9 +71,10 @@ public class InventoryHeaderController extends BaseController |
71 | 71 | .eq(InventoryHeader::getWarehouseCode,ShiroUtils.getWarehouseCode())//仓库 |
72 | 72 | .eq(StringUtils.isNotEmpty(inventoryHeader.getLocationCode()),InventoryHeader::getLocationCode,inventoryHeader.getLocationCode()) //库位 |
73 | 73 | .eq(StringUtils.isNotEmpty(inventoryHeader.getContainerCode()),InventoryHeader::getContainerCode,inventoryHeader.getContainerCode())//容器 |
74 | - .eq(StringUtils.isNotEmpty(inventoryHeader.getCompanyCode()), InventoryHeader::getCompanyCode,inventoryHeader.getCompanyCode())//货主 | |
75 | 74 | .eq(StringUtils.isNotEmpty(inventoryHeader.getCreatedBy()),InventoryHeader::getCreatedBy,inventoryHeader.getCreatedBy())//创建用户 |
76 | 75 | .eq(StringUtils.isNotEmpty(inventoryHeader.getLastUpdatedBy()),InventoryHeader::getLastUpdatedBy,inventoryHeader.getLastUpdatedBy())//更新用户 |
76 | + //货主 | |
77 | + .in(InventoryHeader::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
77 | 78 | .orderByDesc(InventoryHeader::getId); |
78 | 79 | |
79 | 80 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/java/com/huaheng/pc/inventory/inventoryTransaction/controller/InventoryTransactionController.java
... | ... | @@ -12,6 +12,7 @@ import com.huaheng.framework.web.controller.BaseController; |
12 | 12 | import com.huaheng.framework.web.page.PageDomain; |
13 | 13 | import com.huaheng.framework.web.page.TableDataInfo; |
14 | 14 | import com.huaheng.framework.web.page.TableSupport; |
15 | +import com.huaheng.pc.inventory.InventoryMaterialSummary.domain.InventoryMaterialSummary; | |
15 | 16 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
16 | 17 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
17 | 18 | import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; |
... | ... | @@ -70,7 +71,6 @@ public class InventoryTransactionController extends BaseController{ |
70 | 71 | .eq(InventoryTransaction::getWarehouseCode,ShiroUtils.getWarehouseCode())//仓库 |
71 | 72 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getLocationCode()), InventoryTransaction::getLocationCode,inventoryTransaction.getLocationCode()) //库位 |
72 | 73 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getContainerCode()),InventoryTransaction::getContainerCode,inventoryTransaction.getContainerCode())//容器 |
73 | - .eq(StringUtils.isNotEmpty(inventoryTransaction.getCompanyCode()),InventoryTransaction::getCompanyCode,inventoryTransaction.getCompanyCode())//货主 | |
74 | 74 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getSupplierCode()), InventoryTransaction::getSupplierCode,inventoryTransaction.getSupplierCode())//供应商 |
75 | 75 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getMaterialCode()),InventoryTransaction::getMaterialCode,inventoryTransaction.getMaterialCode())//物料编码 |
76 | 76 | .like(StringUtils.isNotEmpty(inventoryTransaction.getMaterialName()),InventoryTransaction::getMaterialName,inventoryTransaction.getMaterialName())//物料名称 |
... | ... | @@ -82,7 +82,8 @@ public class InventoryTransactionController extends BaseController{ |
82 | 82 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getBillCode()), InventoryTransaction::getBillCode,inventoryTransaction.getBillCode())//出入库单编码 |
83 | 83 | .eq(inventoryTransaction.getTransactionType() != null,InventoryTransaction::getTransactionType,inventoryTransaction.getTransactionType()) // 交易类型 |
84 | 84 | .eq(StringUtils.isNotEmpty(inventoryTransaction.getReferCode()),InventoryTransaction::getReferCode,inventoryTransaction.getReferCode())//上游单号 |
85 | - | |
85 | + //货主 | |
86 | + .in(InventoryTransaction::getCompanyCode, ShiroUtils.getCompanyCodeList()) | |
86 | 87 | .orderByDesc(InventoryTransaction::getId); |
87 | 88 | |
88 | 89 | if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ |
... | ... |
src/main/resources/static/css/style.css
... | ... | @@ -7496,10 +7496,11 @@ body.skin-yellow { |
7496 | 7496 | } |
7497 | 7497 | .input_list ul{ |
7498 | 7498 | width:100%; |
7499 | - padding: 5px 0; | |
7499 | + padding:3px 0; | |
7500 | 7500 | } |
7501 | 7501 | .input_list li{ |
7502 | 7502 | width:25%; |
7503 | + padding: 3px 0; | |
7503 | 7504 | display:inline-flex; |
7504 | 7505 | } |
7505 | 7506 | .input_list li label{ |
... | ... | @@ -7512,4 +7513,13 @@ body.skin-yellow { |
7512 | 7513 | } |
7513 | 7514 | .div1 img:hover{ |
7514 | 7515 | cursor: pointer; |
7516 | +} | |
7517 | + | |
7518 | +@media (max-width:1200px) { | |
7519 | + .input_list li{ | |
7520 | + width:45%;} | |
7521 | +} | |
7522 | +@media (max-width:768px) { | |
7523 | + .input_list li{ | |
7524 | + width:100%;} | |
7515 | 7525 | } |
7516 | 7526 | \ No newline at end of file |
... | ... |
src/main/resources/templates/inventory/inventoryMaterialSummary/inventoryMaterialSummary.html
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | 物料名称:<input id="materialName" type="text" name="materialName" /> |
21 | 21 | </li> |
22 | 22 | <li class="time"> |
23 | - <label>创建时间: </label> | |
23 | + <label>创建时间:</label> | |
24 | 24 | <input type="text" class="time-input" id="startTime" placeholder="开始时间" |
25 | 25 | name="createdBegin"/> |
26 | 26 | <span>-</span> |
... | ... | @@ -28,6 +28,9 @@ |
28 | 28 | name="createdEnd"/> |
29 | 29 | </li> |
30 | 30 | <li> |
31 | + 货主:<input id="companyCode" type="text" name="companyCode" /> | |
32 | + </li> | |
33 | + <li> | |
31 | 34 | <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a> |
32 | 35 | </li> |
33 | 36 | </ul> |
... | ... | @@ -64,7 +67,8 @@ |
64 | 67 | refresh:true, |
65 | 68 | showToggle: false, |
66 | 69 | showColumns: false, |
67 | - showExport: true, //是否添加导出按钮 | |
70 | + showExport: true, //导出 | |
71 | + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
68 | 72 | detailView: true, |
69 | 73 | pagination: true, |
70 | 74 | sidePagination: "client", //前端分页 |
... | ... | @@ -84,13 +88,10 @@ |
84 | 88 | title: '仓库 ', |
85 | 89 | visible: true |
86 | 90 | }, |
87 | - /*{ | |
88 | - field: 'companyCode', | |
89 | - title: '货主编码' | |
90 | - },*/ | |
91 | 91 | { |
92 | - field: 'qty', | |
93 | - title: '库存总数' | |
92 | + field: 'companyCode', | |
93 | + title: '货主编码', | |
94 | + visible: true | |
94 | 95 | }, |
95 | 96 | { |
96 | 97 | field: 'materialCode', |
... | ... | @@ -101,6 +102,10 @@ |
101 | 102 | title: '物料名称' |
102 | 103 | }, |
103 | 104 | { |
105 | + field: 'qty', | |
106 | + title: '库存总数' | |
107 | + }, | |
108 | + { | |
104 | 109 | field: 'materialSpec', |
105 | 110 | title: '物料规格' |
106 | 111 | }, |
... | ... |
src/main/resources/templates/inventory/inventoryTransaction/inventoryTransaction.html
... | ... | @@ -58,13 +58,12 @@ |
58 | 58 | <li> |
59 | 59 | 项 目 号:<input type="text" name="projectNo"/> |
60 | 60 | </li> |
61 | - AjaxResult.error("单据号为"+receiptHeader.getCode()+"入库单不需要审核"); <li> | |
61 | + <li> | |
62 | 62 | 交易类型:<select name="type" th:with="type=${@dict.getType('inventoryTransactionType')}"> |
63 | 63 | <option value="">所有</option> |
64 | 64 | <option th:each="e : ${type}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option> |
65 | 65 | </select> |
66 | 66 | </li> |
67 | - | |
68 | 67 | <li class="time"> |
69 | 68 | <label>创建时间: </label> |
70 | 69 | <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/> |
... | ... | @@ -82,10 +81,10 @@ |
82 | 81 | </div> |
83 | 82 | <div class="col-sm-12 select-info"> |
84 | 83 | <div class="btn-group hidden-xs" id="toolbar" role="group"> |
85 | - <a class="btn btn-outline btn-success btn-rounded" onclick="report()" | |
84 | + <!--<a class="btn btn-outline btn-success btn-rounded" onclick="report()" | |
86 | 85 | shiro:hasPermission="inventory:inventoryTransaction:report"> |
87 | 86 | <i class="fa fa-plus"></i> 打印 |
88 | - </a> | |
87 | + </a>--> | |
89 | 88 | </div> |
90 | 89 | <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover"></table> |
91 | 90 | </div> |
... | ... | @@ -113,7 +112,7 @@ |
113 | 112 | sortName: "id", |
114 | 113 | sortOrder: "desc", |
115 | 114 | showExport: true, //导出 |
116 | - exportDataType: "selected", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
115 | + exportDataType: "all", //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据 | |
117 | 116 | pagination:true, |
118 | 117 | pageNumber: 1, // 初始化加载第一页,默认第一页 |
119 | 118 | pageSize: 10, // 每页的记录行数(*) |
... | ... |
src/main/resources/templates/monitor/locationstatus/locationstatus.html
... | ... | @@ -9,13 +9,14 @@ |
9 | 9 | font-size: 10px; |
10 | 10 | /*width: 50px;*/ |
11 | 11 | text-align: left; |
12 | - margin: auto 3px; | |
12 | + margin: 5px 20px 5px 5px; | |
13 | 13 | } |
14 | 14 | #img_list li img{ |
15 | 15 | height: 35px; |
16 | 16 | width: 35px; |
17 | 17 | } |
18 | 18 | #info_list{ |
19 | + width: 100%; | |
19 | 20 | display:inline-block; |
20 | 21 | } |
21 | 22 | #info_list li{ |
... | ... |
src/test/java/com.huaheng.test/EncryptPassword.java deleted
1 | -package com.huaheng.test; | |
2 | - | |
3 | -import com.huaheng.framework.shiro.service.PasswordService; | |
4 | - | |
5 | -import java.math.BigDecimal; | |
6 | - | |
7 | -public class EncryptPassword { | |
8 | - | |
9 | - public static void main(String[] args) { | |
10 | -// PasswordService passwordService = new PasswordService(); | |
11 | -// String psw = passwordService.encryptPassword("superAdmin", "admin123", "3d82fd"); | |
12 | -// System.out.println(psw); | |
13 | - BigDecimal sum = new BigDecimal(575); | |
14 | - BigDecimal max = new BigDecimal(400); | |
15 | - System.out.println(sum.compareTo(max)); | |
16 | - } | |
17 | -} |
src/test/java/com.huaheng.test/User.java
0 → 100644
1 | +package com.huaheng.test; | |
2 | + | |
3 | +public class User { | |
4 | + | |
5 | + public String name; | |
6 | + | |
7 | + public Integer age; | |
8 | + | |
9 | + public String sex; | |
10 | + | |
11 | + | |
12 | + public String getName() { | |
13 | + return name; | |
14 | + } | |
15 | + | |
16 | + public void setName(String name) { | |
17 | + this.name = name; | |
18 | + } | |
19 | + | |
20 | + public Integer getAge() { | |
21 | + return age; | |
22 | + } | |
23 | + | |
24 | + public void setAge(Integer age) { | |
25 | + this.age = age; | |
26 | + } | |
27 | + | |
28 | + public String getSex() { | |
29 | + return sex; | |
30 | + } | |
31 | + | |
32 | + public void setSex(String sex) { | |
33 | + this.sex = sex; | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + public String toString() { | |
38 | + return "User{" + | |
39 | + "name='" + name + '\'' + | |
40 | + ", age=" + age + | |
41 | + ", sex='" + sex + '\'' + | |
42 | + '}'; | |
43 | + } | |
44 | +} | |
... | ... |
src/test/java/com.huaheng.test/tasting.java
0 → 100644
1 | +package com.huaheng.test; | |
2 | + | |
3 | + | |
4 | +import com.huaheng.pc.inventory.InventoryMaterialSummary.domain.InventoryMaterialSummary; | |
5 | + | |
6 | +import java.math.BigDecimal; | |
7 | +import java.util.*; | |
8 | +import java.util.stream.Collectors; | |
9 | + | |
10 | +public class tasting { | |
11 | + | |
12 | + | |
13 | + private static List<User> list = new ArrayList<User>(); | |
14 | + | |
15 | + public static void main(String[] args) { | |
16 | + | |
17 | + User user0 = new User(); | |
18 | + user0.setName("小强"); | |
19 | + user0.setAge(11); | |
20 | + user0.setSex("男"); | |
21 | + list.add(user0); | |
22 | + | |
23 | + User user2 = new User(); | |
24 | + user2.setName("小强"); | |
25 | + user2.setAge(15); | |
26 | + user2.setSex("男"); | |
27 | + list.add(user2); | |
28 | + | |
29 | + User user3 = new User(); | |
30 | + user3.setName("小强"); | |
31 | + user3.setAge(23); | |
32 | + user3.setSex("男"); | |
33 | + list.add(user3); | |
34 | + | |
35 | + User user4 = new User(); | |
36 | + user4.setName("小雨"); | |
37 | + user4.setAge(24); | |
38 | + user4.setSex("女"); | |
39 | + list.add(user4); | |
40 | + | |
41 | + User user5 = new User(); | |
42 | + user5.setName("小雨"); | |
43 | + user5.setAge(24); | |
44 | + user5.setSex("女"); | |
45 | + list.add(user5); | |
46 | + | |
47 | + User user6 = new User(); | |
48 | + user6.setName("小雨"); | |
49 | + user6.setAge(15); | |
50 | + user6.setSex("女"); | |
51 | + list.add(user6); | |
52 | + System.out.println("原始数据:" + list); | |
53 | + | |
54 | + List<User> u = new ArrayList<>(); | |
55 | + | |
56 | + //先找货主和物料码相同的物料SKU相加得总数 | |
57 | + for(User o:list){ | |
58 | + int numQty = 0; | |
59 | + for (User t:list){ | |
60 | + if(o.getName().equals(t.getName()) && | |
61 | + o.getSex().equals(t.getSex())){ | |
62 | + | |
63 | + numQty = numQty + t.getAge(); | |
64 | + o.setAge(numQty); | |
65 | + } | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + //多条件去重 | |
70 | + list.stream().collect(Collectors.collectingAndThen( | |
71 | + Collectors.toCollection(() -> new TreeSet<>( | |
72 | + Comparator.comparing(user -> user.getSex() + ";" + user.getName()))), ArrayList::new)) | |
73 | + .forEach(user -> u.add(user)); | |
74 | + | |
75 | + System.out.println("多条件去重后数据:" + u); | |
76 | + | |
77 | + | |
78 | + } | |
79 | + | |
80 | + | |
81 | + | |
82 | + | |
83 | + | |
84 | +} | |
... | ... |