diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java index 09242f12..beebebb7 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java @@ -4,6 +4,8 @@ import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.dto.product.OutAndOnDto; import cn.ysk.cashier.dto.product.StockQueryDto; import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.pojo.product.TbProductSku; +import cn.ysk.cashier.repository.product.TbProductSkuRepository; import cn.ysk.cashier.service.TbProductStockOperateService; import cn.ysk.cashier.service.product.StockService; import cn.ysk.cashier.vo.StockVo; @@ -23,6 +25,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Optional; @RestController @RequiredArgsConstructor @@ -33,6 +36,7 @@ public class StockController { private final StockService stockService; private final TbProductStockOperateService stockOperateService; + private final TbProductSkuRepository skuRepository; @ApiOperation("库存导出") @PostMapping(value = "download") @@ -62,12 +66,17 @@ public class StockController { row = sheet.getRow(i); if(row!=null){ if(row.getCell(0)!=null){ - list.add(new StockVo( - Integer.valueOf(row.getCell(0).getRawValue()), - row.getCell(1).toString(), - row.getCell(4).toString(), - row.getCell(3).toString(), - row.getCell(5).toString())); + Optional byId = skuRepository.findById(Integer.valueOf(row.getCell(0).getRawValue())); + if(byId.isPresent()){ + TbProductSku sku = byId.get(); + list.add(new StockVo( + sku.getId(), + row.getCell(1).toString(), + row.getCell(4).toString(), + row.getCell(3).toString(), + row.getCell(5).toString(), + sku.getStockNumber())); + } } } } @@ -76,7 +85,7 @@ public class StockController { outAndOnDto.setShopId(shopId); outAndOnDto.setList(new ArrayList<>(list)); outAndOnDto.setType("purchase"); - outAndOnDto.setRemark("一次性导入库存"); + outAndOnDto.setRemark("一次性导入 库存数会覆盖"); outAndOnDto.setIsImport("true"); outAndOnDto.setTime(System.currentTimeMillis()); outAndOnDto.setTotalAmount(BigDecimal.ZERO); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java index 92ccecf1..dbf7dffb 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/StockQueryDto.java @@ -8,6 +8,7 @@ public class StockQueryDto { private String name; private String shopId; + private Double num; private Integer isStock; public void setName(String name) { @@ -27,4 +28,10 @@ public class StockQueryDto { this.isStock = isStock; } } + + public void setNum(Double num) { + if (num!=null) { + this.num = num; + } + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailDto.java index 1ff28fc3..74336128 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailDto.java @@ -101,4 +101,21 @@ stockpile存酒入库 private Long createdAt; private Long updatedAt; + + public void setTypes() { + switch (this.type) { + case "purchase": + this.type = "其他入库"; + break; + case "other-out": + this.type = "其他出库"; + break; + case "reject": + this.type = "供应商退货"; + break; + case "purveyor": + this.type = "供应商入库"; + break; + } + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailQueryCriteria.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailQueryCriteria.java index f18fd265..82ad22de 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailQueryCriteria.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductStockDetailQueryCriteria.java @@ -18,6 +18,7 @@ package cn.ysk.cashier.dto.product; import lombok.Data; import java.util.List; import cn.ysk.cashier.annotation.Query; +import org.apache.commons.lang3.StringUtils; /** * @website https://eladmin.vip @@ -38,6 +39,9 @@ public class TbProductStockDetailQueryCriteria{ /** 精确 */ @Query private String productName; + + @Query + private String type; /** BETWEEN */ @Query(type = Query.Type.BETWEEN) private List createdAt; @@ -51,4 +55,10 @@ public class TbProductStockDetailQueryCriteria{ private Integer size; private String sort = "id,desc"; + + public void setType(String type) { + if(StringUtils.isNotBlank(type)){ + this.type = type; + } + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java index cb3878da..0538b63c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java @@ -46,10 +46,11 @@ public interface TbProductSkuRepository extends JpaRepository searchProStock(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock, Pageable pageable); + Page searchProStock(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock,@Param("num")Double num, Pageable pageable); @Query("SELECT new cn.ysk.cashier.vo.StockVo(" + "sku.id,pro.id,pro.coverImg,pro.name,unit.name,pro.typeEnum,sku.specSnap,pro.isStock,sku.stockNumber" + ") " + @@ -59,11 +60,13 @@ public interface TbProductSkuRepository extends JpaRepository searchProStock(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock); + List searchProStock(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock,@Param("num")Double num); @Transactional diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java index 7ae49c25..c4f4e7d5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java @@ -32,13 +32,13 @@ public class StockServiceImpl implements StockService { @Override public Page queryAll(StockQueryDto criteria, Integer page, Integer size) { Pageable pageable = PageRequest.of(page, size); - return tbProductSkuRepository.searchProStock(criteria.getShopId(), criteria.getName(), criteria.getIsStock(), pageable); + return tbProductSkuRepository.searchProStock(criteria.getShopId(), criteria.getName(), criteria.getIsStock(),criteria.getNum(), pageable); } @Override public void download(StockQueryDto criteria, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); - List stockVos = tbProductSkuRepository.searchProStock(criteria.getShopId(), criteria.getName(), criteria.getIsStock()); + List stockVos = tbProductSkuRepository.searchProStock(criteria.getShopId(), criteria.getName(), criteria.getIsStock(),criteria.getNum()); for (StockVo all : stockVos) { Map map = new LinkedHashMap<>(); map.put("id(如需导入,该值不可变)", all.getId()); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java index 17c1e0e2..8fee6605 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockDetailServiceImpl.java @@ -65,8 +65,11 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ Page page = tbProductStockDetailRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); - - return PageUtil.toPage(page.map(tbProductStockDetailMapper::toDto)); + Page map = page.map(tbProductStockDetailMapper::toDto); + for (TbProductStockDetailDto tbProductStockDetailDto : map.getContent()) { + tbProductStockDetailDto.setTypes(); + } + return PageUtil.toPage(map); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java index 2e8237c1..1509fd67 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java @@ -163,7 +163,6 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe stockOperate.setStatus("normal"); stockOperate.setPurveyorId(resources.getPurveyorId()); stockOperate.setPurveyorName(resources.getPurveyorName()); - TbProductStockOperate saveStockOperate = tbProductStockOperateRepository.save(stockOperate); if (!resources.getIsImport().equals("true")) { //供应商退货 reject //供应商入库 purveyor @@ -197,10 +196,14 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe purveyorRepository.upLastTransactAt(resources.getPurveyorId()); } } + TbProductStockOperate saveStockOperate = tbProductStockOperateRepository.save(stockOperate); Map idStockMap = new HashMap<>(); for (Object date : resources.getList()) { //商品详情 ProductListDto productListDto = JSONObject.parseObject(JSONObject.toJSONString(date), ProductListDto.class); + if (productListDto.getNumber().equals(0)) { + continue; + } TbProductSku tbProductSku = tbProductSkuRepository.findById(productListDto.getId()).orElseGet(TbProductSku::new); TbProductStockDetail productStockDetail = new TbProductStockDetail(); productStockDetail.setBatchNumber(resources.getBatchNumber()); @@ -215,6 +218,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setShopId(resources.getShopId()); productStockDetail.setSkuId(productListDto.getId().toString()); productStockDetail.setSourcePath("NORMAL"); + productStockDetail.setStockSnap(productListDto.getSpecSnap()); productListDto.setNumber(productListDto.getNumber() != null ? productListDto.getNumber() : 0); switch (resources.getType()) { case "sale": @@ -253,6 +257,8 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe idStockMap.put(productListDto.getId(), productStockDetail.getStockNumber()); } redisUtils.redisUp(2, resources.getShopId(), idStockMap); + }else { + tbProductStockOperateRepository.save(stockOperate); } return resources; } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockVo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockVo.java index db3cfba4..737b286a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockVo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockVo.java @@ -13,13 +13,15 @@ public class StockVo { private String specSnap; private Object isStock; private Object number; + private Object stockNumber; - public StockVo(Integer id,String name,String unitName,String specSnap, Object number) { + public StockVo(Integer id,String name,String unitName,String specSnap, Object number,Object stockNumber) { this.id = id; this.unitName = unitName; this.specSnap = specSnap; this.name = name; this.number = number; + this.stockNumber = stockNumber; } public StockVo(Integer id, Integer proId,String img,String name,String unitName, String type, String specSnap, Object isStock, Object number) { @@ -63,7 +65,8 @@ public class StockVo { "\"name\":\"" + name + "\","+ "\"unitName\":\"" + unitName +"\","+ "\"specSnap\":\"" + specSnap + "\"," + - "\"number\":\"" + number + "\"" + + "\"number\":\"" + number + "\"," + + "\"stockNumber\":\"" + stockNumber + "\"" + "}"; } }