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

fengcang
x_z 3 years ago
parent 9339ac4f8f
commit b0bf4a0d10

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

@ -6,20 +6,16 @@ import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.ConstantStatus;
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.UdiInfoEntity;
import com.glxp.api.admin.entity.info.CompanyEntity;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseUserEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
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.inventory.FilterCodeTraceRequest;
import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest;
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.basic.UdiRelevanceResponse;
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.basic.UdiInfoService;
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.WarehouseUserService;
import com.glxp.api.admin.service.inventory.InvProductDetailService;
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.GennerOrderUtils;
import com.glxp.api.admin.util.OrderNoTypeBean;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
@ -72,10 +62,6 @@ public class InvProductsController {
@Resource
private UdiInfoService udiInfoService;
@Resource
private CompanyService companyService;
@Resource
private InvWarehouseService invWarehouseService;
@Resource
private WarehouseUserService warehouseUserService;
@Resource
CustomerService customerService;

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

@ -92,9 +92,26 @@ public class InvProductServiceImpl implements InvProductService {
relIdFkSet.add(invProductResponse.getRelIdFk());
});
//按照产品批次分组
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) {
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);
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();
@ -103,6 +120,7 @@ public class InvProductServiceImpl implements InvProductService {
invProductResponse.setReCount(inCount - outCount);
result.add(invProductResponse);
}
}
return result;
}
return Collections.emptyList();

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

Loading…
Cancel
Save