mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 15:55:18 +08:00
feat: 增加库存查询新接口
This commit is contained in:
@@ -13,6 +13,7 @@ public class WarehouseReportRequest {
|
||||
private LocalDateTime startTime;
|
||||
private LocalDateTime endTime;
|
||||
|
||||
private String code;
|
||||
|
||||
private String barCode;
|
||||
|
||||
|
||||
@@ -52,10 +52,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -676,12 +673,16 @@ public class WarehouseReceiptService
|
||||
</#if>
|
||||
|
||||
<#if barCode??>
|
||||
and gs.bar_code like :barCode
|
||||
and gs.bar_code like '%' || :barCode || '%'
|
||||
</#if>
|
||||
<#if code??>
|
||||
and gs.code like '%' || :code || '%'
|
||||
</#if>
|
||||
|
||||
|
||||
<#if goodsName??>
|
||||
|
||||
and gs.name like :goodsName
|
||||
and gs.name like '%' || :goodsName || '%'
|
||||
|
||||
</#if>
|
||||
|
||||
@@ -736,6 +737,8 @@ public class WarehouseReceiptService
|
||||
""))))
|
||||
.toList();
|
||||
|
||||
List content = new ArrayList();
|
||||
|
||||
if (request.getStartTime() != null) {
|
||||
|
||||
WarehouseReportRequest newRequest = new WarehouseReportRequest();
|
||||
@@ -758,76 +761,103 @@ public class WarehouseReceiptService
|
||||
|
||||
newRequest.setEndTime(request.getStartTime().minusSeconds(1));
|
||||
|
||||
List content = ((PageImpl) report(newRequest)).getContent();
|
||||
content = ((PageImpl) report(newRequest)).getContent();
|
||||
}else {
|
||||
content =
|
||||
ans.stream()
|
||||
.map(
|
||||
x -> {
|
||||
if (x instanceof Map) {
|
||||
|
||||
for (Object o : content) {
|
||||
HashMap<Object, Object> map = new HashMap<>();
|
||||
|
||||
if (o instanceof Map<?, ?> prevMap) {
|
||||
map.putAll((Map) x);
|
||||
|
||||
String id = prevMap.get("id").toString();
|
||||
map.put("prevNumber", 0.0);
|
||||
map.put("prevAmount", 0.0);
|
||||
map.put("prevPrice", 0.0);
|
||||
map.put("currNumber", 0.0);
|
||||
map.put("currAmount", 0.0);
|
||||
map.put("currPrice", 0.0);
|
||||
map.put("type0Number", 0.0);
|
||||
map.put("type1Number", 0.0);
|
||||
map.put("type0Amount", 0.0);
|
||||
map.put("type1Amount", 0.0);
|
||||
map.put("type0Price", 0.0);
|
||||
map.put("type1Price", 0.0);
|
||||
return map;
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.toList();
|
||||
}
|
||||
|
||||
Map<String, Object> currMap =
|
||||
(Map<String, Object>)
|
||||
ans.stream()
|
||||
.filter(
|
||||
x ->
|
||||
x instanceof Map
|
||||
&& ((Map) x)
|
||||
.get("id")
|
||||
.equals(id))
|
||||
.findFirst()
|
||||
.get();
|
||||
for (Object o : content) {
|
||||
|
||||
Double prevType0Number =
|
||||
NumberUtil.parseDouble(prevMap.get("type0Number") + "", 0.0);
|
||||
Double prevType1Number =
|
||||
NumberUtil.parseDouble(prevMap.get("type1Number") + "", 0.0);
|
||||
if (o instanceof Map<?, ?> prevMap) {
|
||||
|
||||
Double prevType0Amount =
|
||||
NumberUtil.parseDouble(prevMap.get("type0Amount") + "", 0.0);
|
||||
String id = prevMap.get("id").toString();
|
||||
|
||||
Double prevType1Amount =
|
||||
NumberUtil.parseDouble(prevMap.get("type1Amount") + "", 0.0);
|
||||
Map<String, Object> currMap =
|
||||
(Map<String, Object>)
|
||||
ans.stream()
|
||||
.filter(
|
||||
x ->
|
||||
x instanceof Map
|
||||
&& ((Map) x).get("id").equals(id))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
Double prevNumber = prevType0Number - prevType1Number;
|
||||
Double prevType0Number =
|
||||
NumberUtil.parseDouble(prevMap.get("type0Number") + "", 0.0);
|
||||
Double prevType1Number =
|
||||
NumberUtil.parseDouble(prevMap.get("type1Number") + "", 0.0);
|
||||
|
||||
Double prevAmount = prevType0Amount - prevType1Amount;
|
||||
Double prevType0Amount =
|
||||
NumberUtil.parseDouble(prevMap.get("type0Amount") + "", 0.0);
|
||||
|
||||
Double currType0Number =
|
||||
NumberUtil.parseDouble(currMap.get("type0Number") + "", 0.0);
|
||||
Double prevType1Amount =
|
||||
NumberUtil.parseDouble(prevMap.get("type1Amount") + "", 0.0);
|
||||
|
||||
Double currType1Number =
|
||||
NumberUtil.parseDouble(currMap.get("type1Number") + "", 0.0);
|
||||
Double prevNumber = prevType0Number - prevType1Number;
|
||||
|
||||
Double currType0Amount =
|
||||
NumberUtil.parseDouble(currMap.get("type0Amount") + "", 0.0);
|
||||
Double prevAmount = prevType0Amount - prevType1Amount;
|
||||
|
||||
Double currType1Amount =
|
||||
NumberUtil.parseDouble(currMap.get("type1Amount") + "", 0.0);
|
||||
Double currType0Number =
|
||||
NumberUtil.parseDouble(currMap.get("type0Number") + "", 0.0);
|
||||
|
||||
Double currNumber = prevNumber + currType0Number - currType1Number;
|
||||
Double currType1Number =
|
||||
NumberUtil.parseDouble(currMap.get("type1Number") + "", 0.0);
|
||||
|
||||
Double currAmount = prevAmount + currType0Amount - currType1Amount;
|
||||
Double currType0Amount =
|
||||
NumberUtil.parseDouble(currMap.get("type0Amount") + "", 0.0);
|
||||
|
||||
Double currPrice =
|
||||
NumberUtils.round2(currNumber == 0 ? 0 : currAmount / currNumber);
|
||||
Double currType1Amount =
|
||||
NumberUtil.parseDouble(currMap.get("type1Amount") + "", 0.0);
|
||||
|
||||
currMap.put("currNumber", currNumber);
|
||||
Double currNumber = prevNumber + currType0Number - currType1Number;
|
||||
|
||||
currMap.put("currAmount", currAmount);
|
||||
Double currAmount = prevAmount + currType0Amount - currType1Amount;
|
||||
|
||||
currMap.put("currPrice", currPrice);
|
||||
Double currPrice =
|
||||
NumberUtils.round2(currNumber == 0 ? 0 : currAmount / currNumber);
|
||||
|
||||
currMap.put("prevNumber", prevNumber);
|
||||
currMap.put("currNumber", currNumber);
|
||||
|
||||
currMap.put("prevAmount", prevAmount);
|
||||
currMap.put("currAmount", currAmount);
|
||||
|
||||
currMap.put(
|
||||
"prevPrice",
|
||||
NumberUtils.round2(prevNumber == 0 ? 0 : prevAmount / prevNumber));
|
||||
}
|
||||
currMap.put("currPrice", currPrice);
|
||||
|
||||
currMap.put("prevNumber", prevNumber);
|
||||
|
||||
currMap.put("prevAmount", prevAmount);
|
||||
|
||||
currMap.put(
|
||||
"prevPrice",
|
||||
NumberUtils.round2(prevNumber == 0 ? 0 : prevAmount / prevNumber));
|
||||
}
|
||||
}
|
||||
|
||||
return new PageImpl<>(ans, PageRequest.of(0, request.getPageSize()), count);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user