Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
72dca1d7c4
|
|
@ -0,0 +1,32 @@
|
|||
package cn.ysk.cashier.cons.domain;
|
||||
|
||||
import cn.ysk.cashier.dto.BaseQueryDto;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class TbConsStockCountQueryCriteria extends BaseQueryDto {
|
||||
|
||||
private Integer consId;
|
||||
|
||||
private String conName;
|
||||
|
||||
private Integer conTypeId;
|
||||
|
||||
private String column;
|
||||
|
||||
private List<String> bizCode;
|
||||
|
||||
private Integer page = 0;
|
||||
|
||||
private Integer size = 10;
|
||||
|
||||
|
||||
public void setConName(String conName) {
|
||||
if (StringUtils.isNotBlank(conName)) {
|
||||
this.conName = conName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +1,40 @@
|
|||
package cn.ysk.cashier.cons.repository;
|
||||
|
||||
import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
/**
|
||||
* @website https://eladmin.vip
|
||||
* @author admin
|
||||
* @date 2024-06-22
|
||||
**/
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface TbConsInfoFlowRepository extends JpaRepository<TbConsInfoFlow, Integer>, JpaSpecificationExecutor<TbConsInfoFlow> {
|
||||
|
||||
|
||||
@Query(value = "SELECT\n" +
|
||||
"\tp.`name` \n" +
|
||||
"FROM\n" +
|
||||
"\ttb_product_sku s\n" +
|
||||
"\tLEFT JOIN tb_product p ON s.product_id = p.id \n" +
|
||||
"WHERE\n" +
|
||||
"\ts.id = ?1",nativeQuery = true)
|
||||
@Query(value = "SELECT " +
|
||||
"p.`name` " +
|
||||
" FROM " +
|
||||
"tb_product_sku s" +
|
||||
" LEFT JOIN tb_product p ON s.product_id = p.id " +
|
||||
" WHERE " +
|
||||
"s.id = ?1",nativeQuery = true)
|
||||
String selectByPskId(Integer skuId);
|
||||
|
||||
@Query("SELECT flow FROM TbConsInfoFlow flow " +
|
||||
"INNER JOIN TbConsInfo cons ON flow.consId = cons.id " +
|
||||
"AND cons.shopId = :shopId " +
|
||||
"AND (:consId IS NULL OR cons.id = :consId) " +
|
||||
"AND (:conTypeId IS NULL OR cons.conTypeId = :conTypeId) " +
|
||||
"AND (:conName IS NULL OR cons.conName LIKE %:conName%) " +
|
||||
"where flow.shopId = :shopId " +
|
||||
"AND flow.createTime > :startTime " +
|
||||
"AND flow.createTime < :endTime " +
|
||||
"AND flow.bizCode IN :types " +
|
||||
"ORDER BY flow.id DESC")
|
||||
Page<TbConsInfoFlow> findByConsParam(Integer shopId, Integer consId, String conName, Integer conTypeId, List<String> types,
|
||||
Date startTime, Date endTime, Pageable pageable);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
package cn.ysk.cashier.cons.rest;
|
||||
|
||||
import cn.ysk.cashier.annotation.Log;
|
||||
import cn.ysk.cashier.cons.domain.TbConsStockCountQueryCriteria;
|
||||
import cn.ysk.cashier.cons.service.TbConsInfoFlowService;
|
||||
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowDto;
|
||||
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowQueryCriteria;
|
||||
import cn.ysk.cashier.dto.product.TbProductStockCountQueryCriteria;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -38,13 +37,13 @@ public class TbConsInfoFlowController {
|
|||
|
||||
@PostMapping("/count")
|
||||
@ApiOperation("耗材库存统计")
|
||||
public ResponseEntity<Object> stockCount(@RequestBody TbProductStockCountQueryCriteria criteria) throws ParseException {
|
||||
public ResponseEntity<Object> stockCount(@RequestBody TbConsStockCountQueryCriteria criteria) throws ParseException {
|
||||
return new ResponseEntity<>(tbConsInfoFlowService.stockCount(criteria),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/stock")
|
||||
@ApiOperation("耗材库存记录列表")
|
||||
public ResponseEntity<Object> queryPage(@RequestBody TbConsInfoFlowQueryCriteria criteria){
|
||||
public ResponseEntity<Object> queryPage(@RequestBody TbConsStockCountQueryCriteria criteria) throws ParseException {
|
||||
return new ResponseEntity<>(tbConsInfoFlowService.queryPage(criteria),HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package cn.ysk.cashier.cons.service;
|
||||
|
||||
import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
|
||||
import cn.ysk.cashier.cons.domain.TbConsStockCountQueryCriteria;
|
||||
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowDto;
|
||||
import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowQueryCriteria;
|
||||
import cn.ysk.cashier.dto.product.TbProductStockCountQueryCriteria;
|
||||
|
|
@ -34,8 +35,8 @@ public interface TbConsInfoFlowService {
|
|||
*/
|
||||
List<TbConsInfoFlowDto> queryAll(TbConsInfoFlowQueryCriteria criteria);
|
||||
|
||||
Map<String,Object> queryPage(TbConsInfoFlowQueryCriteria criteria);
|
||||
TbProductStockCountVo stockCount(TbProductStockCountQueryCriteria criteria) throws ParseException;
|
||||
Map<String,Object> queryPage(TbConsStockCountQueryCriteria criteria) throws ParseException;
|
||||
TbProductStockCountVo stockCount(TbConsStockCountQueryCriteria criteria) throws ParseException;
|
||||
Map<String,Object> stockList(TbProductStockCountQueryCriteria criteria) throws ParseException;
|
||||
|
||||
void frmLoss(TbConsInfoFlowDto resources);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package cn.ysk.cashier.cons.service.impl;
|
|||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import cn.ysk.cashier.cons.domain.TbConsInfo;
|
||||
import cn.ysk.cashier.cons.domain.TbConsInfoFlow;
|
||||
import cn.ysk.cashier.cons.domain.TbConsStockCountQueryCriteria;
|
||||
import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository;
|
||||
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
|
||||
import cn.ysk.cashier.cons.service.TbConsInfoFlowService;
|
||||
|
|
@ -74,7 +75,12 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
|
|||
//入库stockInNumber; stockIn
|
||||
//出库stockOutNumber; stockout
|
||||
@Override
|
||||
public Map<String,Object> queryPage(TbConsInfoFlowQueryCriteria criteria){
|
||||
public Map<String,Object> queryPage(TbConsStockCountQueryCriteria 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":
|
||||
|
|
@ -104,25 +110,28 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService {
|
|||
case "stockOutNumber":
|
||||
criteria.setBizCode(Collections.singletonList("stockout"));
|
||||
break;
|
||||
default:
|
||||
criteria.setBizCode(Arrays.asList("stockIn","cancelCart","init","stockIn","checkStockIn","stockOtherIn","cancelCart","createCart","stockout","checkStockOut","frmLoss"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
Sort sort = Sort.by(Sort.Direction.DESC, "id");
|
||||
Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort);
|
||||
|
||||
Page<TbConsInfoFlow> page = tbConsInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder)
|
||||
-> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
|
||||
Page<TbConsInfoFlow> page = tbConsInfoFlowRepository.findByConsParam(
|
||||
criteria.getShopId(), criteria.getConsId(), criteria.getConName(),criteria.getConTypeId(),
|
||||
criteria.getBizCode(),criteria.getStartTime(),criteria.getEndTime(),pageable);
|
||||
return PageUtil.toPage(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TbProductStockCountVo stockCount(TbProductStockCountQueryCriteria criteria) throws ParseException {
|
||||
public TbProductStockCountVo stockCount(TbConsStockCountQueryCriteria 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对象
|
||||
}
|
||||
return stockRepository.consStockCount(criteria.getShopId(), criteria.getProductName(),
|
||||
criteria.getCategoryId(), criteria.getStartTime(), criteria.getEndTime());
|
||||
return stockRepository.consStockCount(criteria.getShopId(), criteria.getConsId(), criteria.getConName(),
|
||||
criteria.getConTypeId(), criteria.getStartTime(), criteria.getEndTime());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -152,14 +152,14 @@ public interface ProductStockCountRepository extends JpaRepository<TbProductStoc
|
|||
" TbConsInfoFlow flow " +
|
||||
" INNER JOIN TbConsInfo cons ON flow.consId = cons.id " +
|
||||
" AND cons.shopId = :shopId " +
|
||||
" AND (:consId IS NULL OR cons.id = :consId ) " +
|
||||
" AND (:conTypeId IS NULL OR cons.conTypeId = :conTypeId ) " +
|
||||
" AND (:conName IS NULL OR flow.conName LIKE %:conName%) " +
|
||||
"WHERE " +
|
||||
" flow.shopId = :shopId " +
|
||||
" AND flow.createTime > :startTime " +
|
||||
" AND flow.createTime < :endTime ")
|
||||
TbProductStockCountVo consStockCount(Integer shopId,
|
||||
String conName,
|
||||
String conTypeId, Date startTime, Date endTime);
|
||||
TbProductStockCountVo consStockCount(Integer shopId, Integer consId, String conName,
|
||||
Integer conTypeId, Date startTime, Date endTime);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue