Merge branch 'refs/heads/share-stock' into dev

This commit is contained in:
GYJ
2024-06-26 09:04:44 +08:00
21 changed files with 636 additions and 89 deletions

View File

@@ -1,31 +1,21 @@
package cn.ysk.cashier.controller.product;
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;
import cn.ysk.cashier.vo.StockUpdateValueVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@RestController
@RequiredArgsConstructor
@@ -35,8 +25,6 @@ import java.util.Optional;
public class StockController {
private final StockService stockService;
private final TbProductStockOperateService stockOperateService;
private final TbProductSkuRepository skuRepository;
@ApiOperation("库存导出")
@PostMapping(value = "download")
@@ -44,6 +32,12 @@ public class StockController {
stockService.download(criteria,response);
}
@ApiOperation("库存导出")
@PostMapping(value = "download/v2")
public void exportTbOrderInfoV2(HttpServletResponse response, @RequestBody StockQueryDto criteria) throws IOException {
stockService.downloadV2(criteria,response);
}
@Log("库存导入")
@PostMapping("/doImport")
@ApiOperation("文件导入库存")
@@ -56,42 +50,26 @@ public class StockController {
throw new BadRequestException("文件格式不正确");
}
try {
//根据路径获取这个操作excel的实例
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(file.getInputStream());
//根据页面index 获取sheet页
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
XSSFRow row = null;
List<StockVo> list=new ArrayList<>();
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if(row!=null){
if(row.getCell(0)!=null){
Optional<TbProductSku> 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()));
}
}
}
}
log.info("库存导入.importExcel.data:"+list);
OutAndOnDto outAndOnDto=new OutAndOnDto();
outAndOnDto.setShopId(shopId);
outAndOnDto.setList(new ArrayList<>(list));
outAndOnDto.setType("purchase");
outAndOnDto.setRemark("一次性导入 库存数会覆盖");
outAndOnDto.setIsImport("true");
outAndOnDto.setTime(System.currentTimeMillis());
outAndOnDto.setTotalAmount(BigDecimal.ZERO);
outAndOnDto.setPaidAmount(BigDecimal.ZERO);
stockOperateService.createOutAndONOperate(outAndOnDto);
stockService.inHouse(shopId,list);
stockService.importExcel(shopId,file);
} catch (Exception e) {
log.error("文件导入库存异常:",e);
}
return new ResponseEntity<>(HttpStatus.OK);
}
@Log("库存导入")
@PostMapping("/doImport/v2")
@ApiOperation("文件导入库存")
public ResponseEntity<Object> importExcelV2(@RequestParam String shopId,@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename();
if (file.isEmpty()) {
throw new BadRequestException("文件不能为空");
}
if (!fileName.contains("xls") && !fileName.contains("xlsx")) {
throw new BadRequestException("文件格式不正确");
}
try {
stockService.importExcelV2(shopId,file);
} catch (Exception e) {
log.error("文件导入库存异常:",e);
}
@@ -106,6 +84,20 @@ public class StockController {
return new ResponseEntity<>(stockService.queryAll(criteria,page,size), HttpStatus.OK);
}
@GetMapping("/v2")
@ApiOperation("查询库存")
public ResponseEntity<Object> queryTbProductV2(StockQueryDto criteria,
@RequestParam(required = false, defaultValue = "0") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer size){
return new ResponseEntity<>(stockService.queryAllV2(criteria,page,size), HttpStatus.OK);
}
@GetMapping("/sku")
@ApiOperation("查询库存")
public ResponseEntity<Object> queryProductSku(String productId){
return new ResponseEntity<>(stockService.queryProductSku(productId), HttpStatus.OK);
}
@GetMapping("/isStock")
public ResponseEntity<Object> updateIsHot(
@RequestParam String shopId,
@@ -115,4 +107,10 @@ public class StockController {
return new ResponseEntity<>(HttpStatus.OK);
}
@PutMapping("productStatus")
public ResponseEntity<Object> updateProductStatus(@RequestBody StockUpdateValueVO updateValueVO) {
stockService.updateProductStatus(updateValueVO);
return new ResponseEntity<>("修改成功", HttpStatus.OK);
}
}