Browse Source

1. 查询商品列表排序;

2. 供应商及客户欠款按照欠款金额从大到小排序;
3. 开单选择物流和退货不传公司名称,查询拉包工,传的话查询该快递公司下的快递员;
4. 本周应收数据;
5. 库存管理几个数;
6. 商品编辑提交接口
cangku
wangfukang 3 years ago
parent
commit
6f8d19bec7
  1. 3
      hiver-admin/src/main/resources/application.yml
  2. 6
      hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java
  3. 20
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java
  4. 15
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
  5. 32
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
  6. 16
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/StockController.java
  7. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java
  8. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseMapper.java
  9. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java
  10. 6
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java
  11. 7
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseQueryVo.java
  12. 33
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ShopStockVo.java
  13. 9
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/SalesCalculateService.java
  14. 8
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java
  15. 11
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseService.java
  16. 6
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
  17. 28
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java
  18. 65
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java
  19. 19
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java
  20. 13
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
  21. 61
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java
  22. 101
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
  23. 1
      hiver-modules/hiver-mall/src/main/resources/mapper/CustomerMapper.xml
  24. 23
      hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml
  25. 25
      hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml
  26. 11
      hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml

3
hiver-admin/src/main/resources/application.yml

@ -306,6 +306,9 @@ ignored:
- /hiver/app/sale/getShopAll - /hiver/app/sale/getShopAll
- /hiver/app/productAttribute/selectAttributeAndValueByCategoryId - /hiver/app/productAttribute/selectAttributeAndValueByCategoryId
- /hiver/app/stock/productCount - /hiver/app/stock/productCount
- /hiver/app/sale/getShopWeek
- /hiver/app/purchase/getPurchaseList
- /hiver/app/stock/getShopStock
# 限流及黑名单不拦截的路径 # 限流及黑名单不拦截的路径
limitUrls: limitUrls:
- /**/*.js - /**/*.js

6
hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java

@ -1,5 +1,6 @@
package cc.hiver.core.serviceimpl; package cc.hiver.core.serviceimpl;
import cc.hiver.core.common.constant.WorkerConstant;
import cc.hiver.core.common.utils.SecurityUtil; import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.vo.SearchVo; import cc.hiver.core.common.vo.SearchVo;
import cc.hiver.core.dao.WorkerDao; import cc.hiver.core.dao.WorkerDao;
@ -130,10 +131,13 @@ public class WorkerServiceImpl implements WorkerService {
list.add(ownerCompanyField.in(transCompany)); list.add(ownerCompanyField.in(transCompany));
} }
} }
// 不传公司名称,查询拉包工,传的话查询该快递公司下的快递员
if (StringUtils.isNotEmpty(worker.getOwnerCompany())) { if (StringUtils.isNotEmpty(worker.getOwnerCompany())) {
list.add(cb.like(ownerCompanyField, '%' + worker.getOwnerCompany() + '%')); list.add(cb.like(ownerCompanyField, '%' + worker.getOwnerCompany() + '%'));
}else{
list.add(cb.equal(signPersonField, WorkerConstant.SIGN_PERSON[0]));
} }
if (worker.getWorkerStatus() != null) { if (worker.getWorkerStatus() != null) {
list.add(cb.equal(workerStatusField, 1)); list.add(cb.equal(workerStatusField, 1));
} }

20
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java

@ -127,6 +127,26 @@ public class PurchaseController {
return new ResultUtil<List<Purchase>>().setData(list); return new ResultUtil<List<Purchase>>().setData(list);
} }
/**
* 查询采购单列表
* @author 王富康
* @date 2023/11/20
* @param purchaseQueryVo
* @return Result
*/
@RequestMapping(value = "/getPurchaseList", method = RequestMethod.POST)
@ApiOperation("查询采购单列表")
public Result getPurchaseList(@RequestBody(required=false) PurchaseQueryVo purchaseQueryVo) {
if(purchaseQueryVo == null ){
purchaseQueryVo = new PurchaseQueryVo();
}
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
purchaseQueryVo.setShopId(shopId);
final List<Purchase> list = purchaseService.getPurchaseList(purchaseQueryVo);
return new ResultUtil<List<Purchase>>().setData(list);
}
@RequestMapping(value = "/getPurchaseDetailByBarcode", method = RequestMethod.GET) @RequestMapping(value = "/getPurchaseDetailByBarcode", method = RequestMethod.GET)
@ApiOperation("根据二维码查询采购单明细") @ApiOperation("根据二维码查询采购单明细")

15
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java

@ -300,22 +300,23 @@ public class ReturnSaleController {
public Result<List<ReturnSale>> queryAll(@RequestBody SaleComVO saleComVO) { public Result<List<ReturnSale>> queryAll(@RequestBody SaleComVO saleComVO) {
final QueryWrapper<ReturnSale> queryWrapper = new QueryWrapper<>(); final QueryWrapper<ReturnSale> queryWrapper = new QueryWrapper<>();
if (!ObjectUtils.isEmpty(saleComVO)) { if (!ObjectUtils.isEmpty(saleComVO)) {
if (!StringUtils.isEmpty(saleComVO.getShopId())) { // shopId从缓存中设置
queryWrapper.eq("shop_id", saleComVO.getShopId()); final String shopId = securityUtil.getShopId();
} queryWrapper.eq("shop_id", shopId);
if (!StringUtils.isEmpty(saleComVO.getSaleId())) { if (!StringUtils.isEmpty(saleComVO.getSaleId())) {
queryWrapper.eq("sale_id", saleComVO.getSaleId()); queryWrapper.eq("sale_id", saleComVO.getSaleId());
} }
final String remark = saleComVO.getRemark(); /*final String remark = saleComVO.getRemark();
if (!StringUtils.isEmpty(remark)) { if (!StringUtils.isEmpty(remark)) {
if ("1".equals(remark)) { if ("1".equals(remark)) {
queryWrapper.ne("status", "5"); queryWrapper.ne("status", SaleConstant.SALE_STATUS[4]);
} else if ("2".equals(remark)) { } else if ("2".equals(remark)) {
queryWrapper.eq("status", "5"); queryWrapper.eq("status", SaleConstant.SALE_STATUS[4]);
} }
} else { } else {
return ResultUtil.error("退货标识参数缺失,请确认!"); return ResultUtil.error("退货标识参数缺失,请确认!");
} }*/
final SearchDateVo searchDateVo = saleComVO.getSearchDateVo(); final SearchDateVo searchDateVo = saleComVO.getSearchDateVo();
if (!ObjectUtils.isEmpty(searchDateVo) && !searchDateVo.isAnyFieldEmpty()) { if (!ObjectUtils.isEmpty(searchDateVo) && !searchDateVo.isAnyFieldEmpty()) {
final Date endDate = searchDateVo.getEndDate(); final Date endDate = searchDateVo.getEndDate();

32
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java

@ -529,6 +529,19 @@ public class SaleController {
return new ResultUtil<SaleAllVO>().setData(saleAllVO); return new ResultUtil<SaleAllVO>().setData(saleAllVO);
} }
@RequestMapping(value = "/getShopWeek", method = RequestMethod.POST)
@ApiOperation("获取本周利润")
public Result getShopWeek() {
List<BigDecimal> weekSale = null;
try {
weekSale = salesCalculateService.getShopWeek();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return ResultUtil.data(weekSale);
}
@RequestMapping(value = "/getAllSum", method = RequestMethod.POST) @RequestMapping(value = "/getAllSum", method = RequestMethod.POST)
@ApiOperation("获取当日门店销售总额") @ApiOperation("获取当日门店销售总额")
public String getShopTodayAllSum(@RequestBody SaleVO saleVO) { public String getShopTodayAllSum(@RequestBody SaleVO saleVO) {
@ -714,4 +727,23 @@ public class SaleController {
final List<Sale> list = saleService.list(queryWrapper); final List<Sale> list = saleService.list(queryWrapper);
return new ResultUtil<List<Sale>>().setData(list); return new ResultUtil<List<Sale>>().setData(list);
} }
/**
* 回款
* @author 王富康
* @date 2023/11/15
* @param id 销售单id
* @param price 回款金额
* @param dealingsWay 交易方式/附言
* @return Result
*/
@RequestMapping(value = "/editPayPrice", method = RequestMethod.POST)
@ApiOperation("回款")
public Result editPayPrice(String id, BigDecimal price,String dealingsWay) {
if (StringUtils.isEmpty(id)) {
return ResultUtil.error("销售单id不能为空!");
}
saleService.editPayPrice(id, price, dealingsWay);
return ResultUtil.success("回款成功!");
}
} }

16
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/StockController.java

@ -5,6 +5,7 @@ import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.vo.Result; import cc.hiver.core.common.vo.Result;
import cc.hiver.mall.entity.Stock; import cc.hiver.mall.entity.Stock;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.pojo.vo.PurchaseVo;
import cc.hiver.mall.pojo.vo.ShopStockVo;
import cc.hiver.mall.service.mybatis.StockService; import cc.hiver.mall.service.mybatis.StockService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -70,6 +71,7 @@ public class StockController {
public Result putInPrice(@RequestBody PurchaseVo purchaseVo) { public Result putInPrice(@RequestBody PurchaseVo purchaseVo) {
return stockService.putInPrice(purchaseVo); return stockService.putInPrice(purchaseVo);
} }
@RequestMapping(value = "/getStockInfoByCondition", method = RequestMethod.GET) @RequestMapping(value = "/getStockInfoByCondition", method = RequestMethod.GET)
@ApiOperation("根据店铺信息获取库存信息") @ApiOperation("根据店铺信息获取库存信息")
public Result<List<Stock>> getStockInfoByCondition(Stock stock) { public Result<List<Stock>> getStockInfoByCondition(Stock stock) {
@ -117,7 +119,7 @@ public class StockController {
* @return Result<List<Stock>> * @return Result<List<Stock>>
*/ */
@RequestMapping(value = "/productCount", method = RequestMethod.GET) @RequestMapping(value = "/productCount", method = RequestMethod.GET)
@ApiOperation("根据店铺信息获取库存信息") @ApiOperation("根据商品获取库存信息")
public Result<List<Stock>> productCount(String productId) { public Result<List<Stock>> productCount(String productId) {
final QueryWrapper<Stock> queryWrapper = new QueryWrapper<>(); final QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("product_id", productId); queryWrapper.eq("product_id", productId);
@ -126,4 +128,16 @@ public class StockController {
return new ResultUtil<List<Stock>>().setData(list); return new ResultUtil<List<Stock>>().setData(list);
} }
/**
* 获取某店铺的库存管理顶部信息
* @author 王富康
* @date 2023/11/21
* @return Result
*/
@RequestMapping(value = "/getShopStock", method = RequestMethod.POST)
@ApiOperation("获取某店铺的库存管理顶部信息")
public Result getShopStock(){
final ShopStockVo shopStockVo = stockService.getShopStock();
return ResultUtil.data(shopStockVo);
}
} }

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java

@ -38,4 +38,6 @@ public interface ProductMapper extends BaseMapper<Product> {
List<ProductPageVO> getShareList(Page<ProductPageVO> page, @Param("queryParams") ProductPageQuery queryParams); List<ProductPageVO> getShareList(Page<ProductPageVO> page, @Param("queryParams") ProductPageQuery queryParams);
List<Product> getProductList(@Param("productIdList") List<String> productIdList); List<Product> getProductList(@Param("productIdList") List<String> productIdList);
List<Product> getProductListOfShop(String shopId);
} }

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/PurchaseMapper.java

@ -3,6 +3,7 @@ package cc.hiver.mall.dao.mapper;
import cc.hiver.mall.entity.Purchase; import cc.hiver.mall.entity.Purchase;
import cc.hiver.mall.entity.PurchaseExample; import cc.hiver.mall.entity.PurchaseExample;
import cc.hiver.mall.pojo.dto.DebtSupplier; import cc.hiver.mall.pojo.dto.DebtSupplier;
import cc.hiver.mall.pojo.vo.PurchaseQueryVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -34,4 +35,5 @@ public interface PurchaseMapper extends BaseMapper<Purchase> {
List<DebtSupplier> selectDebtByShopId(String shopId); List<DebtSupplier> selectDebtByShopId(String shopId);
List<Purchase> getPurchaseList(PurchaseQueryVo purchaseQueryVo);
} }

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java

@ -30,4 +30,6 @@ public interface StockMapper extends BaseMapper<Stock> {
int updateByPrimaryKeySelective(Stock record); int updateByPrimaryKeySelective(Stock record);
int updateByPrimaryKey(Stock record); int updateByPrimaryKey(Stock record);
List<Stock> stockListOfShop(String shopId);
} }

6
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java

@ -43,6 +43,12 @@ public class ProductPageQuery extends HiverBasePageQuery {
@ApiModelProperty("商品分类ID") @ApiModelProperty("商品分类ID")
private String categoryId; private String categoryId;
@ApiModelProperty("商品名称")
private String productName;
@ApiModelProperty("货号")
private String productSn;
@ApiModelProperty("供应商名称") @ApiModelProperty("供应商名称")
private String supplierName; private String supplierName;

7
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/PurchaseQueryVo.java

@ -1,13 +1,11 @@
package cc.hiver.mall.pojo.vo; package cc.hiver.mall.pojo.vo;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.persistence.Transient;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -66,6 +64,11 @@ public class PurchaseQueryVo {
@ApiModelProperty(value = "结束日期") @ApiModelProperty(value = "结束日期")
private Date endDate; private Date endDate;
@ApiModelProperty(value = "查询条件")
private String searchStr;
public Date getStartDate() { public Date getStartDate() {
return startDate; return startDate;
} }

33
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ShopStockVo.java

@ -0,0 +1,33 @@
package cc.hiver.mall.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 库存管理顶部几个数值Vo
* @author 王富康
* @date 2023/11/21
*/
@Data
@Accessors(chain = true)
public class ShopStockVo {
@ApiModelProperty(value = "库存预警商品数")
private Integer tailWarnCount;
@ApiModelProperty(value = "达到尾货预警日期商品数")
private Integer salesWeekCount;
@ApiModelProperty(value = "商品数量")
private Integer productCount;
@ApiModelProperty(value = "库存数")
private Integer stockCount;
@ApiModelProperty(value = "库存成本")
private BigDecimal stockCost;
}

9
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/SalesCalculateService.java

@ -1,17 +1,14 @@
package cc.hiver.mall.service; package cc.hiver.mall.service;
import cc.hiver.mall.entity.ReturnSale;
import cc.hiver.mall.entity.Sale;
import cc.hiver.mall.pojo.dto.SaleDTO;
import cc.hiver.mall.pojo.dto.SaleQueryDTO;
import cc.hiver.mall.pojo.dto.SaleReturnDTO;
import cc.hiver.mall.pojo.vo.SaleAllVO; import cc.hiver.mall.pojo.vo.SaleAllVO;
import cc.hiver.mall.pojo.vo.SaleVO;
import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.util.List;
public interface SalesCalculateService { public interface SalesCalculateService {
SaleAllVO calculateService(String startTime, String endTime) throws ParseException; SaleAllVO calculateService(String startTime, String endTime) throws ParseException;
List<BigDecimal> getShopWeek();
} }

8
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java

@ -13,4 +13,12 @@ public interface ProductService extends IService<Product> {
IPage<ProductPageVO> getShareList(ProductPageQuery productPageQuery); IPage<ProductPageVO> getShareList(ProductPageQuery productPageQuery);
List<Product> getProductList(List<String> productIdList); List<Product> getProductList(List<String> productIdList);
/**
* 获取店铺中商品信息
* @author 王富康
* @date 2023/11/21
* @return List<Product>
*/
List<Product> getProductListOfShop();
} }

11
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/PurchaseService.java

@ -1,8 +1,8 @@
package cc.hiver.mall.service.mybatis; package cc.hiver.mall.service.mybatis;
import cc.hiver.mall.entity.ProductAttribute;
import cc.hiver.mall.entity.Purchase; import cc.hiver.mall.entity.Purchase;
import cc.hiver.mall.pojo.dto.DebtSupplier; import cc.hiver.mall.pojo.dto.DebtSupplier;
import cc.hiver.mall.pojo.vo.PurchaseQueryVo;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.pojo.vo.PurchaseVo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -22,4 +22,13 @@ public interface PurchaseService extends IService<Purchase> {
* @return PurchaseVo * @return PurchaseVo
*/ */
PurchaseVo getPurchaseAllData(String id); PurchaseVo getPurchaseAllData(String id);
/**
* 查询采购单列表
* @author 王富康
* @date 2023/11/20
* @param purchaseQueryVo
* @return List<Purchase>
*/
List<Purchase> getPurchaseList(PurchaseQueryVo purchaseQueryVo);
} }

6
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java

@ -1,10 +1,10 @@
package cc.hiver.mall.service.mybatis; package cc.hiver.mall.service.mybatis;
import cc.hiver.core.common.vo.Result;
import cc.hiver.mall.entity.Sale; import cc.hiver.mall.entity.Sale;
import cc.hiver.mall.entity.Stock;
import cc.hiver.mall.pojo.vo.PurchaseVo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
public interface SaleService extends IService<Sale> { public interface SaleService extends IService<Sale> {
void editPayPrice(String id, BigDecimal price, String dealingsWay);
} }

28
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java

@ -1,16 +1,40 @@
package cc.hiver.mall.service.mybatis; package cc.hiver.mall.service.mybatis;
import cc.hiver.core.common.vo.Result; import cc.hiver.core.common.vo.Result;
import cc.hiver.mall.entity.Purchase;
import cc.hiver.mall.entity.Stock; import cc.hiver.mall.entity.Stock;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.pojo.vo.PurchaseVo;
import cc.hiver.mall.pojo.vo.StockVo; import cc.hiver.mall.pojo.vo.ShopStockVo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface StockService extends IService<Stock> { public interface StockService extends IService<Stock> {
Result putIn(PurchaseVo purchaseVo); Result putIn(PurchaseVo purchaseVo);
Result putInOfProduct(PurchaseVo purchaseVo); Result putInOfProduct(PurchaseVo purchaseVo);
/**
* 待入库入库,维护价格等相关信息
* @author 王富康
* @date 2023/11/21
* @param purchaseVo
* @return Result
*/
Result putInPrice(PurchaseVo purchaseVo); Result putInPrice(PurchaseVo purchaseVo);
/**
* 获取某店铺的库存管理顶部信息
* @author 王富康
* @date 2023/11/21
* @return ShopStockVo
*/
ShopStockVo getShopStock();
/**
* 获取该店的库存信息
* @author 王富康
* @date 2023/11/21
* @return List<Stock>
*/
List<Stock> stockListOfShop();
} }

65
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesCalculateServiceImpl.java

@ -5,7 +5,10 @@ import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.utils.StringUtils; import cc.hiver.core.common.utils.StringUtils;
import cc.hiver.mall.dao.mapper.ReturnSaleMapper; import cc.hiver.mall.dao.mapper.ReturnSaleMapper;
import cc.hiver.mall.dao.mapper.SaleMapper; import cc.hiver.mall.dao.mapper.SaleMapper;
import cc.hiver.mall.entity.*; import cc.hiver.mall.entity.ReturnSaleExample;
import cc.hiver.mall.entity.Sale;
import cc.hiver.mall.entity.SaleDetail;
import cc.hiver.mall.entity.SaleExample;
import cc.hiver.mall.pojo.vo.SaleAllVO; import cc.hiver.mall.pojo.vo.SaleAllVO;
import cc.hiver.mall.service.SalesCalculateService; import cc.hiver.mall.service.SalesCalculateService;
import cc.hiver.mall.service.mybatis.ReturnDetailService; import cc.hiver.mall.service.mybatis.ReturnDetailService;
@ -20,7 +23,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -61,8 +64,8 @@ public class SalesCalculateServiceImpl implements SalesCalculateService {
try{ try{
if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) { if (StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) {
String startDateStr = DateUtils.formatDate(new Date(), "yyyy-MM-dd") + " 00:00:00"; final String startDateStr = DateUtils.formatDate(new Date(), "yyyy-MM-dd") + " 00:00:00";
String endDateStr = DateUtils.formatDate(new Date(), "yyyy-MM-dd") + " 23:59:59"; final String endDateStr = DateUtils.formatDate(new Date(), "yyyy-MM-dd") + " 23:59:59";
startDate = DateUtil.COMMON_FULL.getTextDate(startDateStr); startDate = DateUtil.COMMON_FULL.getTextDate(startDateStr);
endDate = DateUtil.COMMON_FULL.getTextDate(endDateStr); endDate = DateUtil.COMMON_FULL.getTextDate(endDateStr);
} else { } else {
@ -172,4 +175,58 @@ public class SalesCalculateServiceImpl implements SalesCalculateService {
return saleAllVO; return saleAllVO;
} }
@Override
public List<BigDecimal> getShopWeek() {
final List<BigDecimal> thisWeekSale = new ArrayList<>();
try{
// 今天
final String todayDateStr = DateUtils.formatDate(new Date(), "yyyy-MM-dd");
String searchDate;
for (int i = -6; i < 1; i++) {
// 查询的日期加一天
searchDate = DateUtil.getAfterDayTime(todayDateStr, i);
// 店铺id从缓存中获取,并放到数据中去
final String shopId = securityUtil.getShopId();
// 查询日期范围内数据
final Date startDate = DateUtil.COMMON_FULL.getTextDate(searchDate + " 00:00:00");
final Date endDate = DateUtil.COMMON_FULL.getTextDate(searchDate + " 23:59:59");
BigDecimal totalAmount1 = new BigDecimal(0);
//获取当日门店销售总额 销售笔数 销售总件数
final SaleExample saleExample = new SaleExample();
saleExample.createCriteria()
.andCreateTimeBetween(startDate, endDate)
.andStatusNotEqualTo(SaleConstant.SALE_STATUS[2])
.andStatusNotEqualTo(SaleConstant.SALE_STATUS[8])
.andShopIdEqualTo(shopId);
final SaleAllVO saleAllVO1 = saleMapper.saleSumAndCount(saleExample);
if (!ObjectUtils.isEmpty(saleAllVO1)) {
totalAmount1 = saleAllVO1.getTotalAmount();
}
//获取当日门店利润(当日总营收-当日总成本+(退货总营收-退货总成本))
final QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("shop_id", shopId)
.between("create_time", startDate, endDate);
BigDecimal totalPurchasePrice = new BigDecimal("0.0");
final List<SaleDetail> list = saleDetailService.list(queryWrapper);
for (SaleDetail saleDetail : list) {
final BigDecimal purchasePrice = saleDetail.getPurchasePrice();
final int productCount = saleDetail.getProductCount();
totalPurchasePrice = totalPurchasePrice.add(purchasePrice.multiply(new BigDecimal(productCount)));
}
// 利润= 销售总金额-成本
final BigDecimal subtract = totalAmount1.subtract(totalPurchasePrice);
thisWeekSale.add(subtract);
}
}catch (Exception e){
log.error("获取本周日期错误!",e);
}
return thisWeekSale;
}
} }

19
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java

@ -1,5 +1,6 @@
package cc.hiver.mall.serviceimpl.mybatis; package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.mall.dao.mapper.ProductMapper; import cc.hiver.mall.dao.mapper.ProductMapper;
import cc.hiver.mall.entity.Product; import cc.hiver.mall.entity.Product;
import cc.hiver.mall.pojo.query.ProductPageQuery; import cc.hiver.mall.pojo.query.ProductPageQuery;
@ -8,12 +9,17 @@ import cc.hiver.mall.service.mybatis.ProductService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@Service @Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService { public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
@Autowired
private SecurityUtil securityUtil;
@Override @Override
public IPage<ProductPageVO> getShareList(ProductPageQuery productPageQuery) { public IPage<ProductPageVO> getShareList(ProductPageQuery productPageQuery) {
final Page<ProductPageVO> page = new Page<>(productPageQuery.getPageNum(), productPageQuery.getPageSize()); final Page<ProductPageVO> page = new Page<>(productPageQuery.getPageNum(), productPageQuery.getPageSize());
@ -26,4 +32,17 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
public List<Product> getProductList(List<String> productIdList) { public List<Product> getProductList(List<String> productIdList) {
return baseMapper.getProductList(productIdList); return baseMapper.getProductList(productIdList);
} }
/**
* 获取店铺中商品信息
* @author 王富康
* @date 2023/11/21
* @return List<Product>
*/
@Override
public List<Product> getProductListOfShop() {
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
return baseMapper.getProductListOfShop(shopId);
}
} }

13
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java

@ -9,6 +9,7 @@ import cc.hiver.mall.entity.Purchase;
import cc.hiver.mall.entity.PurchaseDetail; import cc.hiver.mall.entity.PurchaseDetail;
import cc.hiver.mall.entity.StockLog; import cc.hiver.mall.entity.StockLog;
import cc.hiver.mall.pojo.dto.DebtSupplier; import cc.hiver.mall.pojo.dto.DebtSupplier;
import cc.hiver.mall.pojo.vo.PurchaseQueryVo;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.pojo.vo.PurchaseVo;
import cc.hiver.mall.service.mybatis.DealingsRecordService; import cc.hiver.mall.service.mybatis.DealingsRecordService;
import cc.hiver.mall.service.mybatis.PurchaseDetailService; import cc.hiver.mall.service.mybatis.PurchaseDetailService;
@ -119,4 +120,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
return purchaseVo; return purchaseVo;
} }
/**
* 查询采购单列表
* @author 王富康
* @date 2023/11/20
* @param purchaseQueryVo
* @return List<Purchase>
*/
@Override
public List<Purchase> getPurchaseList(PurchaseQueryVo purchaseQueryVo) {
return purchaseMapper.getPurchaseList(purchaseQueryVo);
}
} }

61
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java

@ -1,25 +1,64 @@
package cc.hiver.mall.serviceimpl.mybatis; package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.utils.BeanUtils; import cc.hiver.core.common.constant.DealingsRecordConstant;
import cc.hiver.core.common.utils.ResultUtil; import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.vo.Result; import cc.hiver.core.entity.User;
import cc.hiver.mall.dao.mapper.SaleMapper; import cc.hiver.mall.dao.mapper.SaleMapper;
import cc.hiver.mall.dao.mapper.StockMapper; import cc.hiver.mall.entity.DealingsRecord;
import cc.hiver.mall.entity.*; import cc.hiver.mall.entity.Sale;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.service.mybatis.DealingsRecordService;
import cc.hiver.mall.service.mybatis.*; import cc.hiver.mall.service.mybatis.SaleService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.math.BigDecimal;
import java.util.Date;
@Service @Service
public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements SaleService { public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements SaleService {
@Autowired
private DealingsRecordService dealingsRecordService;
@Autowired
private SaleService saleService;
@Autowired
private SecurityUtil securityUtil;
@Override
public void editPayPrice(String id, BigDecimal price, String dealingsWay) {
// 修改采购单、实付、未付金额
final Sale oldSale = saleService.getById(id);
final BigDecimal noPay = oldSale.getNoEarn();
final BigDecimal alreadyPay = oldSale.getAlreadyEarn();
// 计算未付
final BigDecimal newNoPay = noPay.subtract(price);
oldSale.setNoEarn(newNoPay);
// 计算已付
final BigDecimal newAlreadPay = alreadyPay.add(price);
oldSale.setAlreadyEarn(newAlreadPay);
saleService.saveOrUpdate(oldSale);
// 保存记录表
final DealingsRecord dealingsRecord = new DealingsRecord();
// 已确认 校验accessToken
final User user = securityUtil.getCurrUser();
dealingsRecord.setAmount(price);
dealingsRecord.setCreateBy(user.getId());
dealingsRecord.setCreateByName(user.getNickname());
dealingsRecord.setCreateTime(new Date());
dealingsRecord.setSaleId(id);
// 交易对象id;上游供应商id/下游客户id
dealingsRecord.setDealingsUserId(oldSale.getUserId());
// 交易对象名称
dealingsRecord.setDealingsUserName(oldSale.getUserName());
// 类型( 0-上游供货商;1-下游客户)
dealingsRecord.setUserType(DealingsRecordConstant.TYPE[1]);
// 剩余欠款
dealingsRecord.setBalanceDue(newNoPay);
// 交易方式/附言
dealingsRecord.setDealingsWay(dealingsWay);
dealingsRecordService.save(dealingsRecord);
}
} }

101
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java

@ -8,6 +8,7 @@ import cc.hiver.mall.common.constant.StockConstant;
import cc.hiver.mall.dao.mapper.StockMapper; import cc.hiver.mall.dao.mapper.StockMapper;
import cc.hiver.mall.entity.*; import cc.hiver.mall.entity.*;
import cc.hiver.mall.pojo.vo.PurchaseVo; import cc.hiver.mall.pojo.vo.PurchaseVo;
import cc.hiver.mall.pojo.vo.ShopStockVo;
import cc.hiver.mall.service.mybatis.*; import cc.hiver.mall.service.mybatis.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -37,6 +38,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
@Autowired @Autowired
private StockService stockService; private StockService stockService;
@Autowired
private StockMapper stockMapper;
@Autowired @Autowired
private SecurityUtil securityUtil; private SecurityUtil securityUtil;
@ -161,7 +165,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
// 需要新增的履历集合 // 需要新增的履历集合
final List<StockLog> stockLogAddList = new ArrayList<>(); final List<StockLog> stockLogAddList = new ArrayList<>();
// 需要更新的商品信息集合 // 需要更新的商品信息集合
List<Product> updateProductList = new ArrayList<>(); final List<Product> updateProductList = new ArrayList<>();
// 需要修改的商品信息集合,商品中的平均采购价需要计算 // 需要修改的商品信息集合,商品中的平均采购价需要计算
final List<String> productIdList = new ArrayList<>(); final List<String> productIdList = new ArrayList<>();
for (PurchaseDetail purchaseDetail : purchaseDetails) { for (PurchaseDetail purchaseDetail : purchaseDetails) {
@ -264,7 +268,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
//1. 计算库存 //1. 计算库存
if (stockMap.containsKey(stockLog.getAttributeList())) { if (stockMap.containsKey(stockLog.getAttributeList())) {
//存在库存则修改库存数量 //存在库存则修改库存数量
Stock stock = stockMap.get(stockLog.getAttributeList()); final Stock stock = stockMap.get(stockLog.getAttributeList());
stockCount = stock.getStockCount() != null ? stock.getStockCount() : 0; stockCount = stock.getStockCount() != null ? stock.getStockCount() : 0;
if (purchaseDetail.getPurchasePrice() != null) { if (purchaseDetail.getPurchasePrice() != null) {
//有采购价才更新库存 //有采购价才更新库存
@ -276,7 +280,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
// 实时更新库存信息 // 实时更新库存信息
if (purchaseDetail.getPurchasePrice() != null) { if (purchaseDetail.getPurchasePrice() != null) {
// 有采购价才更新库存 // 有采购价才更新库存
Stock stock = new Stock(); final Stock stock = new Stock();
//没有则新建库存数据 //没有则新建库存数据
// BeanUtils.copyBeanProp(stock, purchaseDetail); // BeanUtils.copyBeanProp(stock, purchaseDetail);
// 这里不能把商品的id同步过来 // 这里不能把商品的id同步过来
@ -332,6 +336,14 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
} }
} }
/**
* 待入库入库,维护价格等相关信息
*
* @param purchaseVo
* @return Result
* @author 王富康
* @date 2023/11/21
*/
@Override @Override
public Result putInPrice(PurchaseVo purchaseVo) { public Result putInPrice(PurchaseVo purchaseVo) {
@ -341,7 +353,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
final User user = securityUtil.getCurrUser(); final User user = securityUtil.getCurrUser();
// 入库单主表信息 // 入库单主表信息
Purchase putInPurchase = purchaseVo.getPurchase(); final Purchase putInPurchase = purchaseVo.getPurchase();
final String id = putInPurchase.getId(); final String id = putInPurchase.getId();
final Purchase purchase = purchaseService.getById(id); final Purchase purchase = purchaseService.getById(id);
purchase.setUpdateTime(new Date()); purchase.setUpdateTime(new Date());
@ -357,7 +369,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
// 获取前台入库商品信息 // 获取前台入库商品信息
final List<PurchaseDetail> purchaseDetails = purchaseVo.getPurchaseDetails(); final List<PurchaseDetail> purchaseDetails = purchaseVo.getPurchaseDetails();
// 需要更新的商品信息集合 // 需要更新的商品信息集合
List<Product> updateProductList = new ArrayList<>(); final List<Product> updateProductList = new ArrayList<>();
// 需要修改的商品信息集合,商品中的平均采购价需要计算 // 需要修改的商品信息集合,商品中的平均采购价需要计算
final List<String> productIdList = new ArrayList<>(); final List<String> productIdList = new ArrayList<>();
for (PurchaseDetail purchaseDetail : purchaseDetails) { for (PurchaseDetail purchaseDetail : purchaseDetails) {
@ -446,13 +458,13 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
//1. 计算库存 //1. 计算库存
if (stockMap.containsKey(stockLog.getAttributeList())) { if (stockMap.containsKey(stockLog.getAttributeList())) {
//存在库存则修改库存数量 //存在库存则修改库存数量
Stock stock = stockMap.get(stockLog.getAttributeList()); final Stock stock = stockMap.get(stockLog.getAttributeList());
stockCount = stock.getStockCount() != null ? stock.getStockCount() : 0; stockCount = stock.getStockCount() != null ? stock.getStockCount() : 0;
stock.setStockCount(stockCount + stockLog.getProductCount()); stock.setStockCount(stockCount + stockLog.getProductCount());
// 实时更新库存信息 // 实时更新库存信息
stockService.saveOrUpdate(stock); stockService.saveOrUpdate(stock);
} else { } else {
Stock stock = new Stock(); final Stock stock = new Stock();
//没有则新建库存数据 //没有则新建库存数据
// BeanUtils.copyBeanProp(stock, purchaseDetail); // BeanUtils.copyBeanProp(stock, purchaseDetail);
// 这里不能把商品的id同步过来 // 这里不能把商品的id同步过来
@ -492,4 +504,79 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
} }
} }
/**
* 获取某店铺的库存管理顶部信息
* @author 王富康
* @date 2023/11/21
* @return ShopStockVo
*/
@Override
public ShopStockVo getShopStock() {
final ShopStockVo shopStockVo = new ShopStockVo();
// 获取该店的商品信息
final List<Product> productListOfShop = productService.getProductListOfShop();
// 方便后边计算
final Map<String, Product> productMap = new HashMap<>();
// 获取该店的库存信息
final List<Stock> stockList = stockService.stockListOfShop();
// 1. 商品数
shopStockVo.setProductCount(productListOfShop.size());
// 2. 尾货预警
int salesWeekCount = 0;
for (Product product : productListOfShop) {
final Date salesWeek = product.getSalesWeek();
final boolean after = salesWeek.before(new Date());
if (after) {
//超过尾货预警日期,数量加1
salesWeekCount++;
}
productMap.putIfAbsent(product.getId(), product);
}
shopStockVo.setSalesWeekCount(salesWeekCount);
// 3. 库存预警
int tailWarnCount = 0;
// 4. 库存数
int stockCount = 0;
// 5. 库存成本
BigDecimal stockCost = new BigDecimal(0);
for (Stock stock : stockList) {
final Product product = productMap.get(stock.getProductId());
// 商品的库存预警
final Integer tailWarn = product.getTailWarn();
//平均采购价
final BigDecimal purchasePrice = product.getPurchasePrice();
final Integer thisStockCount = stock.getStockCount();
// 计算成本,负数按0计算
if (thisStockCount > 0) {
final BigDecimal thisStockCost = purchasePrice.multiply(BigDecimal.valueOf(thisStockCount));
stockCost = stockCost.add(thisStockCost);
}
// 计算库存数
stockCount += thisStockCount;
// 计算达到库存预警的规格数量
if (tailWarn > thisStockCount) {
tailWarnCount++;
}
}
shopStockVo.setTailWarnCount(tailWarnCount);
shopStockVo.setStockCount(stockCount);
shopStockVo.setStockCost(stockCost);
return shopStockVo;
}
/**
* 获取该店的库存信息
* @author 王富康
* @date 2023/11/21
* @return List<Stock>
*/
@Override
public List<Stock> stockListOfShop() {
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
return stockMapper.stockListOfShop(shopId);
}
} }

1
hiver-modules/hiver-mall/src/main/resources/mapper/CustomerMapper.xml

@ -382,6 +382,7 @@
and a.status != '3' -- 取消订单 and a.status != '3' -- 取消订单
and shop_id = #{shopId,jdbcType=VARCHAR} and shop_id = #{shopId,jdbcType=VARCHAR}
group by a.user_id,b.nickname group by a.user_id,b.nickname
order by no_earn desc
</select> </select>
</mapper> </mapper>

23
hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml

@ -568,6 +568,15 @@
<if test='queryParams.categoryId!=null and queryParams.categoryId.trim() neq ""'> <if test='queryParams.categoryId!=null and queryParams.categoryId.trim() neq ""'>
AND t.category_id =#{queryParams.categoryId} AND t.category_id =#{queryParams.categoryId}
</if> </if>
<!--商品名称-->
<if test='queryParams.productName!=null and queryParams.productName.trim() neq ""'>
AND t.product_name like concat('%',#{queryParams.productName},'%')
</if>
<!--货号-->
<if test='queryParams.productSn!=null and queryParams.productSn.trim() neq ""'>
AND t.product_sn like concat('%',#{queryParams.productSn},'%')
</if>
<!--供应商名称-->
<if test='queryParams.supplierName!=null and queryParams.supplierName.trim() neq ""'> <if test='queryParams.supplierName!=null and queryParams.supplierName.trim() neq ""'>
AND t.supplier_name like concat('%',#{queryParams.supplierName},'%') AND t.supplier_name like concat('%',#{queryParams.supplierName},'%')
</if> </if>
@ -582,7 +591,7 @@
<if test='queryParams.sortField!=null and queryParams.sortField.trim() neq "" and queryParams.sortField !=null and queryParams.sort.trim() neq ""'> <if test='queryParams.sortField!=null and queryParams.sortField.trim() neq "" and queryParams.sortField !=null and queryParams.sort.trim() neq ""'>
#{queryParams.sortField} #{queryParams.sort} , #{queryParams.sortField} #{queryParams.sort} ,
</if> </if>
t.del_flag asc, t.create_time desc t.update_time desc, in_storage_status,t.del_flag asc
</select> </select>
<select id="getProductList" resultType="cc.hiver.mall.entity.Product"> <select id="getProductList" resultType="cc.hiver.mall.entity.Product">
@ -598,4 +607,16 @@
ORDER BY ORDER BY
create_time desc create_time desc
</select> </select>
<select id="getProductListOfShop" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from t_product
<where>
and shop_id = #{shopId,jdbcType=VARCHAR}
</where>
ORDER BY
create_time desc
</select>
</mapper> </mapper>

25
hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml

@ -17,7 +17,7 @@
<result column="no_pay" jdbcType="DECIMAL" property="noPay" /> <result column="no_pay" jdbcType="DECIMAL" property="noPay" />
<result column="other_pay" jdbcType="DECIMAL" property="otherPay" /> <result column="other_pay" jdbcType="DECIMAL" property="otherPay" />
<result column="in_storage_status" jdbcType="INTEGER" property="inStorageStatus" /> <result column="in_storage_status" jdbcType="INTEGER" property="inStorageStatus" />
<result column="remark" jdbcType="INTEGER" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap> </resultMap>
<resultMap id="DebtResultMap" type="cc.hiver.mall.pojo.dto.DebtSupplier"> <resultMap id="DebtResultMap" type="cc.hiver.mall.pojo.dto.DebtSupplier">
@ -387,7 +387,30 @@
and no_pay > 0 and no_pay > 0
and shop_id = #{shopId,jdbcType=VARCHAR} and shop_id = #{shopId,jdbcType=VARCHAR}
group by a.supplier_id,a.supplier_name group by a.supplier_id,a.supplier_name
order by no_pay desc
</select> </select>
<select id="getPurchaseList" parameterType="cc.hiver.mall.pojo.vo.PurchaseQueryVo" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_purchase
where id in(
select purchase_id from t_purchase_detail
where product_id in (
select id from t_product
<if test="searchStr != null">
where (
product_name like concat('%',#{searchStr,jdbcType=VARCHAR},'%')
or product_sn like concat('%',#{searchStr,jdbcType=VARCHAR},'%')
)
</if>
)
group by purchase_id
)
and shop_id = #{shopId,jdbcType=VARCHAR}
<if test="searchStr != null">
or supplier_name like concat('%',#{searchStr},'%')
</if>
</select>
</mapper> </mapper>

11
hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml

@ -555,4 +555,15 @@
tail_warn = #{tailWarn,jdbcType=INTEGER} tail_warn = #{tailWarn,jdbcType=INTEGER}
where id = #{id,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR}
</update> </update>
<select id="stockListOfShop" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from t_stock
<where>
and shop_id = #{shopId,jdbcType=VARCHAR}
</where>
ORDER BY
create_time desc
</select>
</mapper> </mapper>
Loading…
Cancel
Save