1.库存统计增加批次号分组

fengcang
x_z 3 years ago
parent 9339ac4f8f
commit b0bf4a0d10

@ -1,5 +1,6 @@
package com.glxp.api.admin.controller.business; package com.glxp.api.admin.controller.business;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
@ -552,7 +553,7 @@ public class StockOrderDetailController {
} }
StockOrderDetailEntity stockOrderDetailEntity = new StockOrderDetailEntity(); StockOrderDetailEntity stockOrderDetailEntity = new StockOrderDetailEntity();
BeanUtils.copyProperties(stockOrderDetailFilterRequest, stockOrderDetailEntity); BeanUtil.copyProperties(stockOrderDetailFilterRequest, stockOrderDetailEntity);
boolean b = stockOrderDetailService.updateById(stockOrderDetailEntity); boolean b = stockOrderDetailService.updateById(stockOrderDetailEntity);
if (b) { if (b) {
return ResultVOUtils.success(); return ResultVOUtils.success();

@ -6,20 +6,16 @@ import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation; import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.ConstantStatus; import com.glxp.api.admin.constant.ConstantStatus;
import com.glxp.api.admin.constant.ConstantType; import com.glxp.api.admin.constant.ConstantType;
import com.glxp.api.admin.controller.inout.UdiTraceController;
import com.glxp.api.admin.entity.basic.UdiEntity; import com.glxp.api.admin.entity.basic.UdiEntity;
import com.glxp.api.admin.entity.basic.UdiInfoEntity; import com.glxp.api.admin.entity.basic.UdiInfoEntity;
import com.glxp.api.admin.entity.info.CompanyEntity;
import com.glxp.api.admin.entity.inout.OrderEntity; import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseUserEntity; import com.glxp.api.admin.entity.inout.WarehouseUserEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.entity.inventory.InvProductEntity; import com.glxp.api.admin.entity.inventory.InvProductEntity;
import com.glxp.api.admin.entity.inventory.InvWarehouseEntity;
import com.glxp.api.admin.req.inout.DeleteRequest; import com.glxp.api.admin.req.inout.DeleteRequest;
import com.glxp.api.admin.req.inventory.FilterCodeTraceRequest; import com.glxp.api.admin.req.inventory.FilterCodeTraceRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductRequest; import com.glxp.api.admin.req.inventory.FilterInvProductRequest;
import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest;
import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.basic.UdiRelevanceResponse; import com.glxp.api.admin.res.basic.UdiRelevanceResponse;
import com.glxp.api.admin.res.inventory.InvProductDetailResponse; import com.glxp.api.admin.res.inventory.InvProductDetailResponse;
@ -29,20 +25,14 @@ import com.glxp.api.admin.res.inventory.InvProductStatResponse;
import com.glxp.api.admin.service.auth.CustomerService; import com.glxp.api.admin.service.auth.CustomerService;
import com.glxp.api.admin.service.basic.UdiInfoService; import com.glxp.api.admin.service.basic.UdiInfoService;
import com.glxp.api.admin.service.basic.UdiRelevanceService; import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.info.CompanyService;
import com.glxp.api.admin.service.inout.OrderService; import com.glxp.api.admin.service.inout.OrderService;
import com.glxp.api.admin.service.inout.WarehouseUserService; import com.glxp.api.admin.service.inout.WarehouseUserService;
import com.glxp.api.admin.service.inventory.InvProductDetailService; import com.glxp.api.admin.service.inventory.InvProductDetailService;
import com.glxp.api.admin.service.inventory.InvProductService; import com.glxp.api.admin.service.inventory.InvProductService;
import com.glxp.api.admin.service.inventory.InvWarehouseService;
import com.glxp.api.admin.util.FilterUdiUtils; import com.glxp.api.admin.util.FilterUdiUtils;
import com.glxp.api.admin.util.GennerOrderUtils;
import com.glxp.api.admin.util.OrderNoTypeBean;
import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.common.util.ResultVOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -72,10 +62,6 @@ public class InvProductsController {
@Resource @Resource
private UdiInfoService udiInfoService; private UdiInfoService udiInfoService;
@Resource @Resource
private CompanyService companyService;
@Resource
private InvWarehouseService invWarehouseService;
@Resource
private WarehouseUserService warehouseUserService; private WarehouseUserService warehouseUserService;
@Resource @Resource
CustomerService customerService; CustomerService customerService;

@ -21,7 +21,7 @@ import java.util.List;
public class InvProductDetailServiceImpl implements InvProductDetailService { public class InvProductDetailServiceImpl implements InvProductDetailService {
@Resource @Resource
InvProductDetailDao invProductDetailDao; private InvProductDetailDao invProductDetailDao;
@Override @Override
public List<InvProductDetailEntity> findByCode(String code) { public List<InvProductDetailEntity> findByCode(String code) {

@ -92,9 +92,26 @@ public class InvProductServiceImpl implements InvProductService {
relIdFkSet.add(invProductResponse.getRelIdFk()); relIdFkSet.add(invProductResponse.getRelIdFk());
}); });
//按照产品批次分组
Set<String> batchNoSet = new HashSet<>();
data.forEach(invProductResponse -> {
batchNoSet.add(invProductResponse.getBatchNo());
});
List<InvProductResponse> result = new ArrayList<>(); List<InvProductResponse> result = new ArrayList<>();
for (String relIdFk : relIdFkSet) { for (String relIdFk : relIdFkSet) {
if (CollUtil.isNotEmpty(batchNoSet)) {
for (String batchNo : batchNoSet) {
InvProductResponse invProductResponse = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).collect(Collectors.toList()).get(0);
int inCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getInCount).sum();
int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(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); 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 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(); int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).mapToInt(InvProductResponse::getOutCount).sum();
@ -103,6 +120,7 @@ public class InvProductServiceImpl implements InvProductService {
invProductResponse.setReCount(inCount - outCount); invProductResponse.setReCount(inCount - outCount);
result.add(invProductResponse); result.add(invProductResponse);
} }
}
return result; return result;
} }
return Collections.emptyList(); return Collections.emptyList();

@ -40,7 +40,7 @@
AND supId = #{supId} AND supId = #{supId}
</if> </if>
<if test="code != '' and code != null"> <if test="code != '' and code != null">
AND code = #{code} AND originCode = #{code}
</if> </if>
<if test="originCode != '' and originCode != null"> <if test="originCode != '' and originCode != null">
AND originCode = #{originCode} AND originCode = #{originCode}

Loading…
Cancel
Save