商品列表 统计
This commit is contained in:
@@ -29,20 +29,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @description 服务实现
|
||||
* @author lyf
|
||||
* @date 2024-01-19
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
@@ -55,7 +47,6 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
private final TbShopUnitRepository shopUnitRepository;
|
||||
private final StockCountRepository stockCountRepository;
|
||||
private final ProductStockCountRepository stockRepository;
|
||||
private final EntityManager entityManager;
|
||||
private final TbOrderInfoRepository tbOrderInfoRepository;
|
||||
private final TbProducSkutMapper skutMapper;
|
||||
|
||||
@@ -68,29 +59,34 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String,Object> queryPage(TbProductStockDetailQueryCriteria criteria){
|
||||
public Map<String,Object> queryPage(TbProductStockDetailQueryCriteria criteria) throws ParseException {
|
||||
if (criteria.getStartTime() == null || criteria.getEndTime() == null) {
|
||||
criteria.setEndTime(new Date());
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
criteria.setStartTime(sdf.parse("2024-01-01"));//创建2024年1月1日的Date对象
|
||||
}
|
||||
if(StringUtils.isNotBlank(criteria.getColumn())){
|
||||
switch (criteria.getColumn()){
|
||||
case "addCountNumber":
|
||||
criteria.setType(Arrays.asList("供应商入库", "盘点入库", "其他入库", "退单"));
|
||||
criteria.setTypes(Arrays.asList("供应商入库", "盘点入库", "其他入库", "退单"));
|
||||
break;
|
||||
case "addNumber":
|
||||
criteria.setType(Arrays.asList("供应商入库", "盘点入库", "其他入库"));
|
||||
criteria.setTypes(Arrays.asList("供应商入库", "盘点入库", "其他入库"));
|
||||
break;
|
||||
case "refundNumber":
|
||||
criteria.setType(Arrays.asList("退单"));
|
||||
criteria.setTypes(Collections.singletonList("退单"));
|
||||
break;
|
||||
case "subCountNumber":
|
||||
criteria.setType(Arrays.asList("供应商出库","其他出库","盘点出库","售出记录","报损"));
|
||||
criteria.setTypes(Arrays.asList("供应商出库","其他出库","盘点出库","售出记录","报损"));
|
||||
break;
|
||||
case "subNumber":
|
||||
criteria.setType(Arrays.asList("供应商出库","其他出库","盘点出库","售出记录"));
|
||||
criteria.setTypes(Arrays.asList("供应商出库","其他出库","盘点出库","售出记录"));
|
||||
break;
|
||||
case "saleNumber":
|
||||
criteria.setType(Arrays.asList("售出记录"));
|
||||
criteria.setTypes(Collections.singletonList("售出记录"));
|
||||
break;
|
||||
case "lossNumber":
|
||||
criteria.setType(Arrays.asList("报损"));
|
||||
criteria.setTypes(Collections.singletonList("报损"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -98,16 +94,15 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
Sort sort = Sort.by(Sort.Direction.DESC, "id");
|
||||
Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort);
|
||||
|
||||
Page<TbProductStockDetail> page = tbProductStockDetailRepository.findAll((root, criteriaQuery, criteriaBuilder)
|
||||
-> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
Page<TbProductStockDetail> page = tbProductStockDetailRepository.findByProductParam(
|
||||
criteria.getShopId().toString(), criteria.getProductName(),
|
||||
criteria.getCategoryId(),criteria.getType(),criteria.getTypes(),
|
||||
criteria.getStartTime().getTime(), criteria.getEndTime().getTime(), pageable);
|
||||
Page<TbProductStockDetailDto> map = page.map(tbProductStockDetailMapper::toDto);
|
||||
|
||||
for (TbProductStockDetailDto tbProductStockDetailDto : map.getContent()) {
|
||||
if (StrUtil.isNotBlank(tbProductStockDetailDto.getOrderId())) {
|
||||
TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(Integer.valueOf(tbProductStockDetailDto.getOrderId())).orElse(null);
|
||||
if (tbOrderInfo != null) {
|
||||
tbProductStockDetailDto.setOrderNo(tbOrderInfo.getOrderNo());
|
||||
}
|
||||
tbOrderInfoRepository.findById(Integer.valueOf(tbProductStockDetailDto.getOrderId())).ifPresent(tbOrderInfo -> tbProductStockDetailDto.setOrderNo(tbOrderInfo.getOrderNo()));
|
||||
}
|
||||
tbProductStockDetailDto.setTypes();
|
||||
}
|
||||
@@ -125,7 +120,7 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
criteria.setStartTime(sdf.parse("2024-01-01"));//创建2024年1月1日的Date对象
|
||||
}
|
||||
return stockRepository.productStockCount(criteria.getShopId().toString(), criteria.getProductName(),
|
||||
criteria.getCategoryId(), criteria.getStartTime().getTime(), criteria.getEndTime().getTime());
|
||||
criteria.getCategoryId(),criteria.getType(), criteria.getStartTime().getTime(), criteria.getEndTime().getTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -140,12 +135,10 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
Page<TbProductStockListDto> tbProductStockCountDtos = stockRepository.productStock(
|
||||
criteria.getShopId().toString(),
|
||||
criteria.getProductName(),
|
||||
criteria.getCategoryId(),
|
||||
criteria.getCategoryId(),criteria.getType(),
|
||||
criteria.getStartTime().getTime(), criteria.getEndTime().getTime(), pageable);
|
||||
if (!tbProductStockCountDtos.isEmpty()) {
|
||||
tbProductStockCountDtos.getContent().parallelStream().forEach(s->{
|
||||
s.setCountNumber(s.getStockNumber().add(s.getSubCountNumber()));
|
||||
});
|
||||
tbProductStockCountDtos.getContent().parallelStream().forEach(s-> s.setCountNumber(s.getStockNumber().add(s.getSubCountNumber())));
|
||||
}
|
||||
return PageUtil.toPage(tbProductStockCountDtos);
|
||||
}
|
||||
@@ -164,14 +157,6 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
|
||||
return tbProductStockDetailMapper.toDto(tbProductStockDetail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, BigDecimal> sumStockNumber(String productId) {
|
||||
BigDecimal bigDecimal = tbProductStockDetailRepository.sumStockNumber(productId);
|
||||
HashMap<String, BigDecimal> map = new HashMap<>();
|
||||
map.put("exchange",bigDecimal);
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void frmLoss(TbProductFrmLossDto resources) {
|
||||
TbProduct product = tbProductRepository.findById(Integer.valueOf(resources.getProductId())).orElse(null);
|
||||
|
||||
@@ -2,27 +2,18 @@ package cn.ysk.cashier.service.product;
|
||||
|
||||
import cn.ysk.cashier.dto.product.TbProductFrmLossDto;
|
||||
import cn.ysk.cashier.dto.product.TbProductStockCountQueryCriteria;
|
||||
import cn.ysk.cashier.dto.rabbit.StockRecordMsg;
|
||||
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
|
||||
import cn.ysk.cashier.dto.product.TbProductStockDetailDto;
|
||||
import cn.ysk.cashier.dto.product.TbProductStockDetailQueryCriteria;
|
||||
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
|
||||
import cn.ysk.cashier.vo.TbProductStockCountVo;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @description 服务接口
|
||||
* @author lyf
|
||||
* @date 2024-01-19
|
||||
**/
|
||||
public interface TbProductStockDetailService {
|
||||
|
||||
/**
|
||||
@@ -33,7 +24,7 @@ public interface TbProductStockDetailService {
|
||||
*/
|
||||
Map<String,Object> queryAll(TbProductStockDetailQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
Map<String,Object> queryPage(TbProductStockDetailQueryCriteria criteria);
|
||||
Map<String,Object> queryPage(TbProductStockDetailQueryCriteria criteria) throws ParseException;
|
||||
TbProductStockCountVo stockCount(TbProductStockCountQueryCriteria criteria) throws ParseException;
|
||||
Map<String,Object> stockList(TbProductStockCountQueryCriteria criteria) throws ParseException;
|
||||
|
||||
@@ -51,8 +42,6 @@ public interface TbProductStockDetailService {
|
||||
*/
|
||||
TbProductStockDetailDto findById(Long id);
|
||||
|
||||
HashMap<String, BigDecimal> sumStockNumber(String productId);
|
||||
|
||||
void frmLoss(TbProductFrmLossDto resources);
|
||||
/**
|
||||
* 创建
|
||||
|
||||
Reference in New Issue
Block a user