1.修复盘点转单数量错误问题,库存统计无法分页的问题

zhairh
x_z 3 years ago
parent 81306eb072
commit 7ae0b81529

@ -3,6 +3,7 @@ package com.glxp.api.admin.controller.inventory;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
import com.glxp.api.admin.req.inventory.AddMAOrderDetailRequest;
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
@ -38,6 +39,7 @@ public class InvMAOrderDetailController {
* @param filterInvMAOrderDetailRequest
* @return
*/
@AuthRuleAnnotation("")
@GetMapping("/inv/MA/order/detail/filterList")
public BaseResponse filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest) {
List<InvMAOrderDetailResponse> list = invMAOrderDetailService.filterList(filterInvMAOrderDetailRequest);
@ -55,7 +57,8 @@ public class InvMAOrderDetailController {
* @param bindingResult
* @return
*/
@PostMapping(" /inv/MA/order/detail/addOrderDetail")
@AuthRuleAnnotation("")
@PostMapping("/inv/MA/order/detail/addOrderDetail")
public BaseResponse addOrderDetail(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
@ -72,6 +75,7 @@ public class InvMAOrderDetailController {
* @param invProductIds
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/inv/MA/order/detail/batchAddDetail")
public BaseResponse batchAddDetail(@RequestBody AddMAOrderDetailRequest addMAOrderDetailRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@ -89,6 +93,7 @@ public class InvMAOrderDetailController {
* @param filterInvMAOrderDetailRequest
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/inv/MA/order/detail/delete")
public BaseResponse delete(@RequestBody FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@ -106,6 +111,7 @@ public class InvMAOrderDetailController {
* @param invMaintenanceOrderDetailEntity
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/inv/MA/order/detail/update")
public BaseResponse update(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {

@ -315,6 +315,11 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
int codeNum = invCountOrderDetail.getLossNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
} else {
//修改实际数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
warehouseEntity.setCount(actCount);
warehouseEntity.setReCount(actCount);
}
//设置供应商信息
@ -377,6 +382,11 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
int codeNum = invCountOrderDetail.getProfitNum() / actCount;
warehouseEntity.setCount(codeNum);
warehouseEntity.setReCount(codeNum);
} else {
//修改实际数量
int actCount = invCountCodesService.getActCount(udi.getUdi());
warehouseEntity.setCount(actCount);
warehouseEntity.setReCount(actCount);
}
setSupInfo(warehouseEntity);
inOrderCodes.add(warehouseEntity);

@ -12,8 +12,8 @@ import com.glxp.api.admin.service.inventory.InvProductService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import java.util.Collections;
import java.util.List;
@Service
public class InvProductServiceImpl implements InvProductService {
@ -86,58 +86,18 @@ public class InvProductServiceImpl implements InvProductService {
if (filterInvProductRequest == null) {
return Collections.emptyList();
}
if (null != filterInvProductRequest.getPage() && null != filterInvProductRequest.getLimit()) {
PageHelper.offsetPage((filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit(), filterInvProductRequest.getLimit());
}
List<InvProductResponse> data = invProductDao.stockStatistics(filterInvProductRequest);
if (CollUtil.isNotEmpty(data)) {
//默认根据产品id分组
Set<String> relIdFkSet = new HashSet<>();
data.forEach(invProductResponse -> {
relIdFkSet.add(invProductResponse.getRelIdFk());
data.forEach(item -> {
item.setReCount(item.getInCount() - item.getOutCount());
});
//按照产品批次分组
Set<String> batchNoSet = new HashSet<>();
data.forEach(invProductResponse -> {
batchNoSet.add(invProductResponse.getBatchNo());
});
List<InvProductResponse> result = new ArrayList<>();
for (String relIdFk : relIdFkSet) {
if (CollUtil.isNotEmpty(batchNoSet)) {
for (String batchNo : batchNoSet) {
List<InvProductResponse> list =
data.stream().filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(list)) {
InvProductResponse invProductResponse = list.get(0);
int inCount = data.stream()
.filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.mapToInt(InvProductResponse::getInCount).sum();
int outCount = data.stream()
.filter(product -> product.getRelIdFk().equals(relIdFk))
.filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo)))
.mapToInt(InvProductResponse::getOutCount).sum();
invProductResponse.setInCount(inCount);
invProductResponse.setOutCount(outCount);
invProductResponse.setReCount(inCount - outCount);
result.add(invProductResponse);
}
}
} else {
InvProductResponse invProductResponse = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).collect(Collectors.toList()).get(0);
int inCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).mapToInt(InvProductResponse::getInCount).sum();
int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).mapToInt(InvProductResponse::getOutCount).sum();
invProductResponse.setInCount(inCount);
invProductResponse.setOutCount(outCount);
invProductResponse.setReCount(inCount - outCount);
result.add(invProductResponse);
}
}
return result;
}
return Collections.emptyList();
return data;
}
@Override

@ -222,8 +222,8 @@
ip.supId,
ip.price,
iw.name invStorageName,
inCount,
outCount
sum(ip.inCount) inCount,
sum(ip.outCount) outCount
from inv_product ip
inner join basic_udirel bu on ip.relIdFk = bu.id
inner join basic_products bp on bu.uuid = bp.uuid
@ -259,6 +259,7 @@
AND ip.batchNo like concat('%', #{batchNo,jdbcType=VARCHAR}, '%')
</if>
</where>
group by ip.relIdFk, ip.batchNo
</select>

Loading…
Cancel
Save