From 4b715b196923ae1ffbb80f7f178149ea2e80ce9e Mon Sep 17 00:00:00 2001
From: wangfukang <15630117759@163.com>
Date: Sun, 7 Jul 2024 14:23:07 +0800
Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9=E3=80=82=E4=BB=8E?=
=?UTF-8?q?=E6=AD=A4=E9=83=A8=E7=BD=B2=E7=9A=84=E6=AD=A3=E5=BC=8F=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application.yml | 11 ++--
hiver-admin/test-output/test-report.html | 16 ++---
.../bill/service/impl/BillServiceImpl.java | 27 ++++++--
.../mall/bill/vo/CustomerBillDataVo.java | 4 +-
.../common/constant/StockLogConstant.java | 2 +-
.../ProductAttributeController.java | 3 +-
.../mall/controller/ReturnSaleController.java | 1 +
.../hiver/mall/controller/SaleController.java | 43 +++++++++++-
.../mall/controller/SupplierControlller.java | 3 +
.../mall/dao/mapper/DealingsRecordMapper.java | 8 ++-
.../mall/dao/mapper/ReturnDetailMapper.java | 3 +
.../mall/dao/mapper/ReturnSaleMapper.java | 1 +
.../cc/hiver/mall/dao/mapper/SaleMapper.java | 6 +-
.../cc/hiver/mall/dao/mapper/StockMapper.java | 2 +
.../java/cc/hiver/mall/entity/ReturnSale.java | 3 +
.../main/java/cc/hiver/mall/entity/Sale.java | 5 ++
.../mall/pojo/dto/ReturnSaleDetailDTO.java | 3 +
.../cc/hiver/mall/pojo/vo/ReturnSaleVo.java | 5 ++
.../pojo/vo/ReturnTotalAmountDetailVo.java | 3 +
.../java/cc/hiver/mall/pojo/vo/SaleVO.java | 25 +++++++
.../impl/PurchaseOcrPictureServiceImpl.java | 8 ++-
.../mybatis/DealingsRecordService.java | 16 ++++-
.../mybatis/ProductAttributeService.java | 3 +-
.../mall/service/mybatis/SaleService.java | 2 +-
.../mall/service/mybatis/StockService.java | 9 +++
.../SalesAndDetailsServiceImpl.java | 1 +
.../serviceimpl/StockAndLogServiceImpl.java | 3 +
.../mybatis/CustomerServiceImpl.java | 18 +++--
.../mybatis/DealingsRecordServiceImpl.java | 9 +++
.../mybatis/ProductAttributeServiceImpl.java | 16 ++++-
.../mybatis/PurchaseServiceImpl.java | 5 ++
.../mybatis/ReturnSaleServiceImpl.java | 9 +++
.../mybatis/SaleDetailServiceImpl.java | 5 ++
.../serviceimpl/mybatis/SaleServiceImpl.java | 34 ++++++----
.../serviceimpl/mybatis/StockServiceImpl.java | 18 ++++-
.../resources/mapper/DealingsRecordMapper.xml | 38 +++++++++++
.../main/resources/mapper/PurchaseMapper.xml | 33 ++++++----
.../resources/mapper/ReturnDetailMapper.xml | 8 ++-
.../resources/mapper/ReturnSaleMapper.xml | 44 +++++++++----
.../src/main/resources/mapper/SaleMapper.xml | 66 +++++++++++++++----
.../src/main/resources/mapper/StockMapper.xml | 8 +++
41 files changed, 435 insertions(+), 92 deletions(-)
diff --git a/hiver-admin/src/main/resources/application.yml b/hiver-admin/src/main/resources/application.yml
index 6db9ef34..7aabbb38 100644
--- a/hiver-admin/src/main/resources/application.yml
+++ b/hiver-admin/src/main/resources/application.yml
@@ -25,8 +25,8 @@ spring:
timeout-per-shutdown-phase: 10S
# 数据源
datasource:
- url: jdbc:mysql://154.8.162.157:3306/hiver_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&allowMultiQueries=true
- # url: jdbc:mysql://8.140.198.243:3306/hiver_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&allowMultiQueries=true
+ # url: jdbc:mysql://154.8.162.157:3306/hiver_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&allowMultiQueries=true
+ url: jdbc:mysql://8.140.198.243:3306/hiver_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: reddoor
# Jasypt加密 可到common-utils中找到JasyptUtil加解密工具类生成加密结果 格式为ENC(加密结果) 以下解密结果为123456
password: ENC(Zla4U4+yRLPhicvuX2TmiEgxEpzP4dk8BHzFDEtiEhwLQIIaftZrrEUJZce6efoe)
@@ -67,8 +67,8 @@ spring:
ddl-auto: update
# Redis 若设有密码自行添加配置password
redis:
- host: 154.8.162.157
- # host: 8.140.198.243
+ # host: 154.8.162.157
+ host: 8.140.198.243
password: reddoor168
# 数据库索引 默认0
database: 1
@@ -325,6 +325,9 @@ ignored:
- /hiver/app/return/getReturnSaleListByUserId
# 根据客户id分页获取销售历史(按销售单)
- /hiver/app/sale/listPages
+ - /hiver/app/sale/get/**
+ - /hiver/app/return/list
+ - /hiver/app/return/get/**
# # 临时增加
# 限流及黑名单不拦截的路径
diff --git a/hiver-admin/test-output/test-report.html b/hiver-admin/test-output/test-report.html
index 2943aacd..8b8af7e2 100644
--- a/hiver-admin/test-output/test-report.html
+++ b/hiver-admin/test-output/test-report.html
@@ -35,7 +35,7 @@
Hiver
- 01, 2024 00:15:38
+ 07, 2024 14:20:12
@@ -84,7 +84,7 @@
passTest
-
00:15:38 / 0.018 secs
+
14:20:12 / 0.015 secs
@@ -92,9 +92,9 @@
#test-id=1
passTest
-
07.01.2024 00:15:38
-
07.01.2024 00:15:38
-
0.018 secs
+
07.07.2024 14:20:12
+
07.07.2024 14:20:13
+
0.015 secs
@@ -104,7 +104,7 @@
| Pass |
- 0:15:38 |
+ 14:20:13 |
Test passed
|
@@ -128,13 +128,13 @@
Started
-
01, 2024 00:15:38
+
07, 2024 14:20:12
Ended
-
01, 2024 00:15:38
+
07, 2024 14:20:13
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java
index 102d1ab6..4f9d4659 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java
@@ -1,5 +1,6 @@
package cc.hiver.mall.bill.service.impl;
+import cc.hiver.core.common.utils.StringUtils;
import cc.hiver.mall.bill.service.BillService;
import cc.hiver.mall.bill.vo.*;
import cc.hiver.mall.entity.Customer;
@@ -32,6 +33,9 @@ public class BillServiceImpl implements BillService {
@Autowired
private ReturnDetailService returnDetailService;
+ @Autowired
+ private DealingsRecordService dealingsRecordService;
+
/**
* 获取客户对账单
*
@@ -42,6 +46,13 @@ public class BillServiceImpl implements BillService {
*/
@Override
public CustomerBillDataVo getCustomerBill(CustomerBillQueryVo customerBillQueryVo) {
+
+ //结束时间+1天
+ if (StringUtils.isNotEmpty(customerBillQueryVo.getEndDate())) {
+ final String endDate = DateUtil.addDay(customerBillQueryVo.getEndDate(), 1);
+ customerBillQueryVo.setEndDate(endDate);
+ }
+
final CustomerBillDataVo customerBillDataVo = new CustomerBillDataVo();
customerBillDataVo.setUserId(customerBillQueryVo.getCustomerId());
// 获取客户信息
@@ -60,15 +71,17 @@ public class BillServiceImpl implements BillService {
if (returnSaleArrearsVo != null) {
customerBillDataVo.setTotalReturn(returnSaleArrearsVo.getTotalReturn());
}
- // 获取退货总金额
+ // 根据客户id及日期范围对账单明细
+ final Page
dealingRecordPage = dealingsRecordService.getDealingsRecordPageByUserId(customerBillQueryVo);
+ final List records = dealingRecordPage.getRecords();
+
- // 根据客户id及日期范围分页查询订单
- final Page salePage = saleService.getCustomerBill(customerBillQueryVo);
- final List records = salePage.getRecords();
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细
final List saleIdList = new ArrayList<>();
for (int i = 0; i < records.size(); i++) {
- saleIdList.add(records.get(i).getSaleId());
+ if(StringUtils.isNotEmpty(records.get(i).getSaleId())){
+ saleIdList.add(records.get(i).getSaleId());
+ }
// 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
if (i == 0) {
final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount();
@@ -203,8 +216,8 @@ public class BillServiceImpl implements BillService {
}
}
}
-
- customerBillDataVo.setCustomerBillSaleVos(records);
+ // 将销售信息存放到对账单中
+ customerBillDataVo.setCustomerBillSaleVos(dealingRecordPage);
return customerBillDataVo;
}
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/vo/CustomerBillDataVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/vo/CustomerBillDataVo.java
index 404a2297..27069999 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/vo/CustomerBillDataVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/vo/CustomerBillDataVo.java
@@ -1,10 +1,10 @@
package cc.hiver.mall.bill.vo;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
-import java.util.List;
/**
* 对账单信息
@@ -39,6 +39,6 @@ public class CustomerBillDataVo {
private BigDecimal totalReturn;
@ApiModelProperty(value = "销售单明细")
- private List customerBillSaleVos;
+ private Page customerBillSaleVos;
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/common/constant/StockLogConstant.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/common/constant/StockLogConstant.java
index 79d5b54e..680d5757 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/common/constant/StockLogConstant.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/common/constant/StockLogConstant.java
@@ -10,6 +10,6 @@ public interface StockLogConstant {
/**
* 出入库类型(0-入库;1-出库)
*/
- Integer[] CHANGE_TYPE = {0,1};
+ String[] CHANGE_TYPE = {"0","1"};
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductAttributeController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductAttributeController.java
index 2e0c8484..1d1a3336 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductAttributeController.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductAttributeController.java
@@ -5,6 +5,7 @@ import cc.hiver.core.common.utils.ResultUtil;
import cc.hiver.core.common.vo.Result;
import cc.hiver.mall.entity.ProductAttribute;
import cc.hiver.mall.service.mybatis.ProductAttributeService;
+import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -90,7 +91,7 @@ public class ProductAttributeController {
@ApiOperation(value = "根据分类id查询货品属性列表")
@RateLimiter(name = "selectAttributeAndValueByCategoryId", ipLimit = true)
public Result selectAttributeAndValueByCategoryId(String categoryId) {
- String attributeList = productAttributeService.selectAttributeAndValueByCategoryId(categoryId);
+ JSONObject attributeList = productAttributeService.selectAttributeAndValueByCategoryId(categoryId);
return ResultUtil.data(attributeList);
}
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
index 129000ca..8a7950f5 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ReturnSaleController.java
@@ -267,6 +267,7 @@ public class ReturnSaleController {
returnSaleDetailDTO.setDiscount(returnDetail.getDiscount());
returnSaleDetailDTO.setDiscountAmount(returnDetail.getDiscountAmount());
returnSaleDetailDTO.setRealPrice(returnDetail.getRealPrice());
+ returnSaleDetailDTO.setDetailId(returnDetail.getId());
final List saleDetailQueryDTOS = new ArrayList<>();
final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO();
saleDetailQueryDTO.setAttributeList(returnDetail.getAttributeList());
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
index d2c4bdbc..a77c8d19 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java
@@ -16,6 +16,7 @@ import cc.hiver.core.service.LogiticsCompanyService;
import cc.hiver.core.service.WorkerService;
import cc.hiver.core.vo.WorkerQueryVO;
import cc.hiver.mall.common.constant.OrderConstant;
+import cc.hiver.mall.debt.entity.Debt;
import cc.hiver.mall.debt.service.DebtService;
import cc.hiver.mall.entity.*;
import cc.hiver.mall.pojo.dto.*;
@@ -144,8 +145,13 @@ public class SaleController {
final Shop shop = shopService.get(shopId);
saleQueryDTO.getSale().setShopId(shopId);
saleQueryDTO.getSale().setShopName(shop.getShopName());
+ // 根据该客户的欠款信息
+ String userId = saleQueryDTO.getSale().getUserId();
+ Debt debt = debtService.selectByUserId(userId);
+ BigDecimal amountOwed = debt.getAmountOwed();
// 20240616 开单可能值包含退货单
Sale sale = saleQueryDTO.getSale();
+ sale.setLastDebtAmount(amountOwed);
// 处理销售商品信息
if (saleQueryDTO.getSaleDetailList() != null && !saleQueryDTO.getSaleDetailList().isEmpty()) {
// 1. 处理商品信息,新商品进行新商品的新增,分类及规格的新增,分类库的新增,子图的新增
@@ -213,7 +219,37 @@ public class SaleController {
final ReturnSale returnSale = salesAndDetailsService.handleBackSalesDetails(saleReturnDTO);
// 如确认退货
//扣减库存
- stockAndLogService.handleRetIncStockLog(saleReturnDTO.getReturnSaleDetailList());
+ final List returnSaleId = new ArrayList<>();
+ returnSaleId.add(returnSale.getId());
+ final List returnDetails = returnDetailService.getReturnDetailsByReturnId(returnSaleId);
+ final List returnSaleDetailDTOList = new ArrayList<>();
+ for (ReturnDetail returnDetail : returnDetails) {
+ final ReturnSaleDetailDTO returnSaleDetailDTO = new ReturnSaleDetailDTO();
+ returnSaleDetailDTO.setSaleId(returnDetail.getSaleId());
+ returnSaleDetailDTO.setReturnSaleId(returnDetail.getReturnSaleId());
+ returnSaleDetailDTO.setProductId(returnDetail.getProductId());
+ returnSaleDetailDTO.setProductName(returnDetail.getProductName());
+ returnSaleDetailDTO.setUnit(returnDetail.getUnit());
+ returnSaleDetailDTO.setShopId(returnDetail.getShopId());
+ returnSaleDetailDTO.setCategoryId(returnDetail.getCategoryId());
+ returnSaleDetailDTO.setAttributeList(returnDetail.getAttributeList());
+ returnSaleDetailDTO.setPrice(returnDetail.getPrice());
+ returnSaleDetailDTO.setPurchasePrice(returnDetail.getPurchasePrice());
+ returnSaleDetailDTO.setWholesalePrice(returnDetail.getWholesalePrice());
+ returnSaleDetailDTO.setProductCount(returnDetail.getProductCount());
+ returnSaleDetailDTO.setDiscount(returnDetail.getDiscount());
+ returnSaleDetailDTO.setDiscountAmount(returnDetail.getDiscountAmount());
+ returnSaleDetailDTO.setRealPrice(returnDetail.getRealPrice());
+ returnSaleDetailDTO.setDetailId(returnDetail.getId());
+ final List saleDetailQueryDTOS = new ArrayList<>();
+ final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO();
+ saleDetailQueryDTO.setAttributeList(returnDetail.getAttributeList());
+ saleDetailQueryDTO.setProductCount(returnDetail.getProductCount());
+ saleDetailQueryDTOS.add(saleDetailQueryDTO);
+ returnSaleDetailDTO.setStockLogList1(saleDetailQueryDTOS);
+ returnSaleDetailDTOList.add(returnSaleDetailDTO);
+ }
+ stockAndLogService.handleRetIncStockLog(returnSaleDetailDTOList);
// 更新退货单机销售单的状态为已完成
returnSale.setUpdateTime(new Date());
returnSale.setStatus(SaleConstant.SALE_STATUS[4]);
@@ -226,9 +262,9 @@ public class SaleController {
final BigDecimal debtDeductionAmount = saleQueryDTO.getSale().getDebtDeductionAmount();
// 余额抵扣金额
final BigDecimal balanceDeductionAmount = saleQueryDTO.getSale().getBalanceDeductionAmount();
- if (noEarn.compareTo(BigDecimal.ZERO) != 0 || debtDeductionAmount.compareTo(BigDecimal.ZERO) != 0 || balanceDeductionAmount.compareTo(BigDecimal.ZERO) != 0) {
+ // if (noEarn.compareTo(BigDecimal.ZERO) != 0 || debtDeductionAmount.compareTo(BigDecimal.ZERO) != 0 || balanceDeductionAmount.compareTo(BigDecimal.ZERO) != 0) {
debtService.saleToDebt(saleQueryDTO);
- }
+ // }
return new ResultUtil<>().setData(sale.getId(), "下单成功");
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -903,6 +939,7 @@ public class SaleController {
returnSaleDetailDTO.setDiscount(saleDetail.getDiscount());
returnSaleDetailDTO.setDiscountAmount(saleDetail.getDiscountAmount());
returnSaleDetailDTO.setRealPrice(saleDetail.getRealPrice());
+ returnSaleDetailDTO.setDetailId(saleDetail.getId());
final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO();
saleDetailQueryDTO.setAttributeList(saleDetail.getAttributeList());
saleDetailQueryDTO.setProductCount(saleDetail.getProductCount());
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SupplierControlller.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SupplierControlller.java
index addab516..ef3cdae4 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SupplierControlller.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SupplierControlller.java
@@ -90,6 +90,9 @@ public class SupplierControlller {
final BigDecimal noEarn = entity.getNoEarn() == null ? BigDecimal.ZERO : entity.getNoEarn();
final Debt debt = new Debt();
debt.setUserId(supplier.getId());
+ debt.setShopId(shopId);
+ debt.setUserPhone(supplier.getConsigneeMobile());
+ debt.setUserAdress(supplier.getAddress());
debt.setUserName(supplier.getConsigneeName());
debt.setAmountOwed(noEarn);
debt.setUserType(DebtConstant.USER_TYPE[1]);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java
index 90521b0b..124f6ca6 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java
@@ -1,7 +1,10 @@
package cc.hiver.mall.dao.mapper;
+import cc.hiver.mall.bill.vo.CustomerBillQueryVo;
+import cc.hiver.mall.bill.vo.CustomerBillSaleVo;
import cc.hiver.mall.entity.DealingsRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@@ -27,9 +30,12 @@ public interface DealingsRecordMapper extends BaseMapper {
/**
* 作废交易记录
+ *
+ * @param saleId
* @author 王富康
* @date 2024/6/26
- * @param saleId
*/
void cancelRecord(@Param("saleId") String saleId);
+
+ Page getDealingsRecordPageByUserId(Page page, @Param("customerBillQueryVo") CustomerBillQueryVo customerBillQueryVo);
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnDetailMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnDetailMapper.java
index ce723d3b..947e2461 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnDetailMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnDetailMapper.java
@@ -1,5 +1,6 @@
package cc.hiver.mall.dao.mapper;
+import cc.hiver.mall.entity.PurchaseDetail;
import cc.hiver.mall.entity.ReturnDetail;
import cc.hiver.mall.entity.ReturnDetailExample;
import cc.hiver.mall.pojo.query.ReturnSalePageQuery;
@@ -46,4 +47,6 @@ public interface ReturnDetailMapper extends BaseMapper {
List getReturnDetailsByProductId(@Param("returnSalePageQuery") ReturnSalePageQuery returnSalePageQuery);
List getReturnDetailsByReturnId(@Param("returnSaleIdList") List returnSaleIdList);
+
+ void putInUpdatePurchasePrice(@Param("purchaseDetails") List purchaseDetails);
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnSaleMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnSaleMapper.java
index 75c9a4e5..dbcd73e4 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnSaleMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ReturnSaleMapper.java
@@ -80,4 +80,5 @@ public interface ReturnSaleMapper extends BaseMapper {
* @date 2024/6/30
*/
Page getReturnSaleListByUserId(Page page, @Param("returnSalePageQuery") ReturnSalePageQuery returnSalePageQuery);
+
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java
index 4974cbd0..bb6bd021 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java
@@ -63,9 +63,9 @@ public interface SaleMapper extends BaseMapper {
Page queryPage(Page page, @Param("saleVO") SaleVO saleVO);
- Page getCustomerBuyProductLog(Page page, @Param("userId") String userId, @Param("shopId") String shopId);
+ Page getCustomerBuyProductLog(Page page, @Param("salePageQuery") SalePageQuery salePageQuery);
- List getCustomerBuyProductLogDetailLog(@Param("userId") String userId, @Param("shopId") String shopId, @Param("productIds") List productIds);
+ List getCustomerBuyProductLogDetailLog(@Param("userId") String userId, @Param("shopId") String shopId, @Param("productIds") List productIds,@Param("startTime") String startTime, @Param("endTime") String endTime);
BigDecimal queryTotalAlreadyEarn(@Param("shopId") String shopId, @Param("startTime") String startTime, @Param("endTime") String endTime);
@@ -88,7 +88,7 @@ public interface SaleMapper extends BaseMapper {
List queryTotalAlreadyEarnDetail(@Param("shopId") String shopId,@Param("startTime") String startTime,@Param("endTime") String endTime);
- Page getCustomerBill(Page page,@Param("customerBillQueryVo") CustomerBillQueryVo customerBillQueryVo);
+ List getCustomerBill(@Param("customerBillQueryVo") CustomerBillQueryVo customerBillQueryVo);
ArrearsVo getArrearsAndTotalSale( @Param("customerBillQueryVo") CustomerBillQueryVo customerBillQueryVo);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java
index e9d962c2..b218f57b 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/StockMapper.java
@@ -49,4 +49,6 @@ public interface StockMapper extends BaseMapper {
void putInUpdatePurchasePrice(@Param("purchaseDetails") List purchaseDetails);
Stock getByProductIdAndAttributeList(@Param("productId") String productId, @Param("attributeList") String attributeList);
+
+ List getProductStockByAttrId(@Param("attrId") String attrId);
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ReturnSale.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ReturnSale.java
index 2949d80d..6fac7372 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ReturnSale.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/ReturnSale.java
@@ -24,6 +24,9 @@ public class ReturnSale extends HiverBaseEntity {
private String saleId;
+ @ApiModelProperty(value = "操作人姓名")
+ private String createByName;
+
@ApiModelProperty(value = "客户ID")
private String userId;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
index 37cec482..53e84b93 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/Sale.java
@@ -177,6 +177,11 @@ public class Sale implements Serializable {
@ApiModelProperty(value="余额抵扣金额")
private BigDecimal balanceDeductionAmount;
+ @Transient
+ @TableField(exist = false)
+ @ApiModelProperty(value = "上次欠款")
+ private BigDecimal lastDebtAmount;
+
private static final long serialVersionUID = 1L;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/ReturnSaleDetailDTO.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/ReturnSaleDetailDTO.java
index ebc8e3ac..84a314ec 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/ReturnSaleDetailDTO.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/dto/ReturnSaleDetailDTO.java
@@ -12,6 +12,9 @@ import java.util.List;
@Data
public class ReturnSaleDetailDTO implements Serializable {
+ @ApiModelProperty(value = "详情id")
+ private String detailId;
+
@ApiModelProperty(value = "原销售单ID")
private String saleId;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnSaleVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnSaleVo.java
index eba4b98c..b7272f8c 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnSaleVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnSaleVo.java
@@ -21,6 +21,8 @@ public class ReturnSaleVo extends HiverBasePageQuery implements Serializable {
private String createBy;
+ private String createByName;
+
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@@ -34,6 +36,9 @@ public class ReturnSaleVo extends HiverBasePageQuery implements Serializable {
@ApiModelProperty(value = "客户ID")
private String userId;
+ @ApiModelProperty(value = "客户名称")
+ private String userName;
+
@ApiModelProperty(value = "店铺ID")
private String shopId;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnTotalAmountDetailVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnTotalAmountDetailVo.java
index acd228a2..5087bad9 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnTotalAmountDetailVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ReturnTotalAmountDetailVo.java
@@ -13,6 +13,9 @@ public class ReturnTotalAmountDetailVo {
@ApiModelProperty(value = " 操作人")
private String createBy;
+ @ApiModelProperty(value = " 订单id")
+ private String saleId;
+
@ApiModelProperty(value = " 操作人")
private String createByName;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleVO.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleVO.java
index ec5f27f9..995ebb8d 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleVO.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SaleVO.java
@@ -47,4 +47,29 @@ public class SaleVO implements Serializable {
@ApiModelProperty(value = "查询条件")
String searchStr;
+ /**
+ * 订单状态开单
+ * 0:待抢单
+ * 1:待取货
+ * 2:已作废
+ * 3:待送达
+ * 4:已完成
+ * 退货:
+ * 5:下游客户待退货
+ * 00:退货待抢单
+ * 01:退货待取货
+ * 02:退货已作废
+ * 03:退货待送达
+ * 04:待确认退货
+ * 4:已完成
+ *
+ * 分享页提交订单:6:待配货
+ * 挂单页提交订单:7:挂单
+ */
+ @ApiModelProperty(value = "哪个列表:" +
+ "0:销售单:查询不是6待配货、7挂单的;" +
+ "1:统计、客户拿货:查询不是2已作废、6待配货、7挂单的;" +
+ "2:需要根据前台传递的status查询列表:6:待配货列表;7挂单列表")
+ private String fromWhere;
+
}
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java
index ea690a6e..af1ad347 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/purchaseocr/service/impl/PurchaseOcrPictureServiceImpl.java
@@ -252,12 +252,18 @@ public class PurchaseOcrPictureServiceImpl implements PurchaseOcrPictureService
purchaseDetail.setShopId(product.getShopId());
purchaseDetail.setCategoryId(categoryId);
purchaseDetail.setPrice(product.getPrice());
- purchaseDetail.setPurchasePrice(price);
purchaseDetail.setWholesalePrice(product.getWholesalePrice());
purchaseDetail.setProductPicture(product.getProductPicture());
purchaseDetail.setProductSn(product.getProductSn());
purchaseDetail.setProductCount(0);
purchaseDetail.setSupplierName(product.getSupplierName());
+ // ai语音入库旧商品 如果通义千问返回的价格为0,返回当前采购价 ,采购价:purchasePrice
+ if (price.compareTo(BigDecimal.ZERO) == 0) {
+ purchaseDetail.setPurchasePrice(product.getPurchasePrice());
+ }else{
+ purchaseDetail.setPurchasePrice(price);
+ }
+ purchaseDetail.setAttrId(product.getAttrId());
final List stockLogList = new ArrayList<>();
// 获取商品分类及规格信息
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java
index 8f6daf7f..5be8321a 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java
@@ -1,6 +1,9 @@
package cc.hiver.mall.service.mybatis;
+import cc.hiver.mall.bill.vo.CustomerBillQueryVo;
+import cc.hiver.mall.bill.vo.CustomerBillSaleVo;
import cc.hiver.mall.entity.DealingsRecord;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
@@ -23,9 +26,20 @@ public interface DealingsRecordService extends IService {
/**
* 作废交易记录
+ *
+ * @param saleId
* @author 王富康
* @date 2024/6/26
- * @param saleId
*/
void cancelRecord(String saleId);
+
+ /**
+ * 对账单分页获取
+ *
+ * @param customerBillQueryVo
+ * @return Page
+ * @author 王富康
+ * @date 2024/7/6
+ */
+ Page getDealingsRecordPageByUserId(CustomerBillQueryVo customerBillQueryVo);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductAttributeService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductAttributeService.java
index d59af03e..1d751adb 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductAttributeService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductAttributeService.java
@@ -2,12 +2,13 @@ package cc.hiver.mall.service.mybatis;
import cc.hiver.mall.entity.ProductAttribute;
import cc.hiver.mall.pojo.vo.ProductAttributeOfAddVo;
+import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface ProductAttributeService extends IService {
- String selectAttributeAndValueByCategoryId(String categoryId);
+ JSONObject selectAttributeAndValueByCategoryId(String categoryId);
List selectAttributeListByCategoryId(List categoryId);
void deleteByCategoryId(String attrId);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
index b885c024..9212c651 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java
@@ -85,7 +85,7 @@ public interface SaleService extends IService {
*/
void cancelSale(String id);
- Page getCustomerBill(CustomerBillQueryVo customerBillQueryVo);
+ List getCustomerBill(CustomerBillQueryVo customerBillQueryVo);
ArrearsVo getArrearsAndTotalSale(CustomerBillQueryVo customerBillQueryVo);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java
index f0a16549..b250eaeb 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/StockService.java
@@ -61,4 +61,13 @@ public interface StockService extends IService {
List getProductStock(List productIds);
Stock getByProductIdAndAttributeList(String productId, String attributeList);
+
+ /**
+ * 根据商品属性id获取商品的库存数
+ * @author 王富康
+ * @date 2024/7/6
+ * @param attrId
+ * @return List
+ */
+ List getProductStockByAttrId(String attrId);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
index b1049e8b..68f0f1cc 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
@@ -318,6 +318,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
// 创建人
final User user = securityUtil.getCurrUser();
returnSale.setCreateBy(user.getId());
+ returnSale.setCreateByName(user.getNickname());
returnSale.setCreateTime(new Date());
// 下游客户信息
returnSale.setUserId(sale.getUserId());
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/StockAndLogServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/StockAndLogServiceImpl.java
index 4ba4e596..b70d9fe9 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/StockAndLogServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/StockAndLogServiceImpl.java
@@ -160,6 +160,7 @@ public class StockAndLogServiceImpl implements StockAndLogService {
//出库
stockLog.setChangeType("1");
stockLog.setOrderId(saleId);
+ stockLog.setDetailId(saleDetailDTO.getDetailId());
stockLog.setProductId(productId);
stockLog.setAttributeList(saleDetailQueryDTO.getAttributeList());
stockLog.setStock(stockCount);//出库前数量
@@ -229,6 +230,7 @@ public class StockAndLogServiceImpl implements StockAndLogService {
stockLog.setPurchasePrice(saleDetailDTO.getPurchasePrice());
stockLog.setWholesalePrice(saleDetailDTO.getWholesalePrice());
stockLog.setShopId(shopId);
+ stockLog.setDetailId(saleDetailDTO.getDetailId());
stockLogService.save(stockLog);
} else {
final Integer stockCount = origin.getStockCount();
@@ -247,6 +249,7 @@ public class StockAndLogServiceImpl implements StockAndLogService {
stockLog.setPurchasePrice(saleDetailDTO.getPurchasePrice());
stockLog.setWholesalePrice(saleDetailDTO.getWholesalePrice());
stockLog.setShopId(shopId);
+ stockLog.setDetailId(saleDetailDTO.getDetailId());
stockLogService.save(stockLog);
}
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/CustomerServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/CustomerServiceImpl.java
index 15503c9d..4b91c9cf 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/CustomerServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/CustomerServiceImpl.java
@@ -127,8 +127,13 @@ public class CustomerServiceImpl extends ServiceImpl i
userRole.setUserId(saveUser.getId());
userRoleService.save(userRole);
}
+ String shopId = securityUtil.getShopId();
// shopId从缓存中设置
- final String shopId = securityUtil.getShopId();
+ if(StringUtils.isEmpty(customer.getShopId())){
+ shopId = securityUtil.getShopId();
+ }else{
+ shopId = customer.getShopId();
+ }
// 这里是后台管理系统启用时增加散客增加的这个操作
if (StringUtils.isEmpty(customer.getShopId())) {
// 如果没有传shopId,那么就去缓存中拿
@@ -136,10 +141,12 @@ public class CustomerServiceImpl extends ServiceImpl i
}
customer.setDelFlag(CommonConstant.DEL_FLAG_FALSE);
final int insert = customerMapper.insert(customer);
-
+ final User user = securityUtil.getCurrUser();
// 客户欠款信息
final BigDecimal amountOwed = customer.getAmountOwed() == null ? BigDecimal.ZERO : customer.getAmountOwed();
final Debt debt = new Debt();
+ debt.setCreateBy(user.getId());
+ debt.setCreateTime(new Date());
debt.setUserId(customer.getId());
debt.setShopId(shopId);
debt.setUserPhone(customer.getPhone());
@@ -150,15 +157,14 @@ public class CustomerServiceImpl extends ServiceImpl i
debtService.save(debt);
// 新增交易记录
// 2. 新增欠款记录
- final User user = securityUtil.getCurrUser();
final DealingsRecord dealingsRecord = new DealingsRecord();
dealingsRecord.setCreateBy(user.getId());
dealingsRecord.setCreateByName(user.getNickname());
dealingsRecord.setCreateTime(new Date());
- dealingsRecord.setDealingsUserId(customer.getUserId());
- dealingsRecord.setDealingsUserName(customer.getUserName());
+ dealingsRecord.setDealingsUserId(customer.getId());
+ dealingsRecord.setDealingsUserName(customer.getName());
dealingsRecord.setUserType(DealingsRecordConstant.TYPE[1]);
- dealingsRecord.setDealingsWay("开单");
+ dealingsRecord.setDealingsWay("新增客户");
dealingsRecord.setShopId(shopId);
// 销售金额
dealingsRecord.setSaleAmount(BigDecimal.ZERO);
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java
index f2bb8f8b..97f88221 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java
@@ -2,10 +2,13 @@ package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.utils.StringUtils;
+import cc.hiver.mall.bill.vo.CustomerBillQueryVo;
+import cc.hiver.mall.bill.vo.CustomerBillSaleVo;
import cc.hiver.mall.dao.mapper.DealingsRecordMapper;
import cc.hiver.mall.entity.DealingsRecord;
import cc.hiver.mall.service.mybatis.DealingsRecordService;
import cc.hiver.mall.utils.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -60,4 +63,10 @@ public class DealingsRecordServiceImpl extends ServiceImpl getDealingsRecordPageByUserId(CustomerBillQueryVo customerBillQueryVo) {
+ final Page page = new Page<>(customerBillQueryVo.getPageNum(), customerBillQueryVo.getPageSize());
+ return dealingsRecordMapper.getDealingsRecordPageByUserId(page,customerBillQueryVo);
+ }
+
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductAttributeServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductAttributeServiceImpl.java
index eca7c41f..677af917 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductAttributeServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductAttributeServiceImpl.java
@@ -2,9 +2,12 @@ package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.mall.dao.mapper.ProductAttributeMapper;
import cc.hiver.mall.entity.ProductAttribute;
+import cc.hiver.mall.entity.Stock;
import cc.hiver.mall.pojo.vo.ProductAttributeOfAddVo;
import cc.hiver.mall.pojo.vo.ProductAttributeVO;
import cc.hiver.mall.service.mybatis.ProductAttributeService;
+import cc.hiver.mall.service.mybatis.StockService;
+import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,8 +20,12 @@ public class ProductAttributeServiceImpl extends ServiceImpl productAttributeVOList = productAttributeMapper.selectAttributeAndValueByCategoryId(categoryId);
// {"颜色":["黑色","绿色"],"尺码":["S码","M码"],"类别":["童装","女装","男装"]}
// 20240408,因为颜色要在尺码上边,所以这里使用LinkedHashMap,防止乱序。
@@ -47,7 +54,12 @@ public class ProductAttributeServiceImpl extends ServiceImpl list = stockService.getProductStockByAttrId(categoryId);
+ jsonObject.set("attributeAndValue",endAttributeStr.toString());
+ jsonObject.set("stock",list);
+ return jsonObject;
}
@Override
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
index 0b6075ec..b58229c7 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/PurchaseServiceImpl.java
@@ -479,6 +479,11 @@ public class PurchaseServiceImpl extends ServiceImpl i
@Override
public Page purchasingCostDetail(PurchasePageQuery purchasePageQuery) {
+ //结束时间+1天
+ if (StringUtils.isNotEmpty(purchasePageQuery.getEndDate())) {
+ final String endDate = DateUtil.addDay(purchasePageQuery.getEndDate(), 1);
+ purchasePageQuery.setEndDate(endDate);
+ }
final Page page = new Page<>(purchasePageQuery.getPageNum(), purchasePageQuery.getPageSize());
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ReturnSaleServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ReturnSaleServiceImpl.java
index a312dd18..844d0b76 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ReturnSaleServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ReturnSaleServiceImpl.java
@@ -109,6 +109,7 @@ public class ReturnSaleServiceImpl extends ServiceImpl returnTotalAmountDetail(ReturnSalePageQuery returnSalePageQuery) {
+ //结束时间+1天
+ if (cc.hiver.core.common.utils.StringUtils.isNotEmpty(returnSalePageQuery.getEndDate())) {
+ final String endDate = DateUtil.addDay(returnSalePageQuery.getEndDate(), 1);
+ returnSalePageQuery.setEndDate(endDate);
+ }
final Page page = new Page<>(returnSalePageQuery.getPageNum(), returnSalePageQuery.getPageSize());
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
@@ -194,6 +200,9 @@ public class ReturnSaleServiceImpl extends ServiceImpl selectByCondition(SaleDetailExample saleDetailExample) {
List list = saleDetailMapper.selectByCondition(saleDetailExample);
@@ -65,6 +69,7 @@ public class SaleDetailServiceImpl extends ServiceImpl implements Sa
@Override
public Page getCustomerBuyProductLog(SalePageQuery salePageQuery) {
+ if (StringUtils.isNotEmpty(salePageQuery.getEndDate())) {
+ final String newEndDate = DateUtil.addDay(salePageQuery.getEndDate(), 1);
+ salePageQuery.setEndDate(newEndDate);
+ }
// 先拿到该客户购买的所有商品信息
final Page page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize());
final String userId = salePageQuery.getUserId();
- final Page salePage = saleMapper.getCustomerBuyProductLog(page, userId, salePageQuery.getShopId());
+ final Page salePage = saleMapper.getCustomerBuyProductLog(page, salePageQuery);
final List records = salePage.getRecords();
final List productIds = new ArrayList<>();
// 商品id集合
@@ -384,7 +388,7 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
}
if (!productIds.isEmpty()) {
// 获取商品各规格售卖的数量
- final List customerBuyProductDetailLogVos = saleMapper.getCustomerBuyProductLogDetailLog(userId, salePageQuery.getShopId(), productIds);
+ final List customerBuyProductDetailLogVos = saleMapper.getCustomerBuyProductLogDetailLog(userId, salePageQuery.getShopId(), productIds,salePageQuery.getStartDate(),salePageQuery.getEndDate());
// 进行数据封装Map<商品id,Map<销售单id,商品明细>>
final Map>> allMap = new HashMap<>();
@@ -900,7 +904,6 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
// 出库
stock.setStockCount(stockCount + productCount);
}
- stock.setStockCount(stockCount + productCount);
changeStockList.add(stock);
}
}
@@ -954,14 +957,8 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
}
@Override
- public Page getCustomerBill(CustomerBillQueryVo customerBillQueryVo) {
- final Page page = new Page<>(customerBillQueryVo.getPageNum(), customerBillQueryVo.getPageSize());
- //结束时间-1天
- if (StringUtils.isNotEmpty(customerBillQueryVo.getEndDate())) {
- final String endDate = DateUtil.addDay(customerBillQueryVo.getEndDate(), 1);
- customerBillQueryVo.setEndDate(endDate);
- }
- final Page customerBillSaleVoPage = saleMapper.getCustomerBill(page, customerBillQueryVo);
+ public List getCustomerBill(CustomerBillQueryVo customerBillQueryVo) {
+ final List customerBillSaleVoPage = saleMapper.getCustomerBill(customerBillQueryVo);
return customerBillSaleVoPage;
}
@@ -972,6 +969,11 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
@Override
public Page totalAmountDetail(SalePageQuery salePageQuery) {
+ //结束时间+1天
+ if (StringUtils.isNotEmpty(salePageQuery.getEndDate())) {
+ final String endDate = DateUtil.addDay(salePageQuery.getEndDate(), 1);
+ salePageQuery.setEndDate(endDate);
+ }
final Page page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize());
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
@@ -988,6 +990,11 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
*/
@Override
public Page totalAlreadyEarnDetail(SalePageQuery salePageQuery) {
+ //结束时间+1天
+ if (StringUtils.isNotEmpty(salePageQuery.getEndDate())) {
+ final String endDate = DateUtil.addDay(salePageQuery.getEndDate(), 1);
+ salePageQuery.setEndDate(endDate);
+ }
final Page page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize());
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
@@ -1004,6 +1011,11 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
*/
@Override
public Page customerSaleDetail(SalePageQuery salePageQuery) {
+ //结束时间+1天
+ if (StringUtils.isNotEmpty(salePageQuery.getEndDate())) {
+ final String endDate = DateUtil.addDay(salePageQuery.getEndDate(), 1);
+ salePageQuery.setEndDate(endDate);
+ }
final Page page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize());
// shopId从缓存中设置
final String shopId = securityUtil.getShopId();
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
index f461f173..4785cdb8 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/StockServiceImpl.java
@@ -3,6 +3,7 @@ package cc.hiver.mall.serviceimpl.mybatis;
import cc.hiver.core.common.constant.ProductConstant;
import cc.hiver.core.common.utils.ResultUtil;
import cc.hiver.core.common.utils.SecurityUtil;
+import cc.hiver.core.common.utils.SnowFlakeUtil;
import cc.hiver.core.common.utils.StringUtils;
import cc.hiver.core.common.vo.Result;
import cc.hiver.core.entity.User;
@@ -676,10 +677,17 @@ public class StockServiceImpl extends ServiceImpl implements
final User user = securityUtil.getCurrUser();
// Ai已经生成了入库单主表信息
+
final Purchase purchase = purchaseVo.getPurchase();
purchase.setCreateByName(user.getNickname());
purchase.setShopId(shopId);
- final String purchaseId = purchase.getId();
+ // 语音入库没有入库id
+ String purchaseId = purchase.getId();
+ if (StringUtils.isEmpty(purchaseId)){
+ purchaseId = SnowFlakeUtil.nextId().toString();
+ purchase.setId(purchaseId);
+ }
+
// 先根据入库单id 删除详情及库存履历表信息
purchaseDetailService.deleteByPurchaseId(purchaseId);
stockLogService.deleteByPurchaseId(purchaseId);
@@ -832,6 +840,8 @@ public class StockServiceImpl extends ServiceImpl implements
purchaseDetail.setUnit(product.getUnit());
purchaseDetail.setCategoryId(product.getCategoryId());
purchaseDetail.setAttrId(product.getAttrId());
+ purchaseDetail.setSupplierId(purchase.getSupplierId());
+ purchaseDetail.setSupplierName(purchase.getSupplierName());
// 供应商可能更新,这里保存本次前台选择的供应商信息
purchaseDetail.setProductSn(product.getProductSn());
// 条码去掉了,真实的条形码内容为商品的id
@@ -957,6 +967,7 @@ public class StockServiceImpl extends ServiceImpl implements
// 记录库存履历
stockLog.setProductId(purchaseDetail.getProductId());
stockLog.setOrderId(purchaseId);
+ stockLog.setDetailId(purchaseDetail.getId());
//入库
stockLog.setChangeType("0");
//入库前数量
@@ -1089,4 +1100,9 @@ public class StockServiceImpl extends ServiceImpl implements
public Stock getByProductIdAndAttributeList(String productId, String attributeList) {
return stockMapper.getByProductIdAndAttributeList(productId,attributeList);
}
+
+ @Override
+ public List getProductStockByAttrId(String attrId) {
+ return stockMapper.getProductStockByAttrId(attrId);
+ }
}
diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml
index 69bb0eb7..bc94c6d0 100644
--- a/hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml
+++ b/hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml
@@ -124,4 +124,42 @@
set del_flag = 1
where sale_id = #{saleId}
+
+
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml
index eab52242..aca1acce 100644
--- a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml
+++ b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml
@@ -471,25 +471,36 @@
+
+
+
+ update t_return_detail set purchase_price = #{item.purchasePrice} WHERE product_id = #{item.productId} and purchase_price is null
+
+
\ No newline at end of file
diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/ReturnSaleMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/ReturnSaleMapper.xml
index f9ab3003..67ec02af 100644
--- a/hiver-modules/hiver-mall/src/main/resources/mapper/ReturnSaleMapper.xml
+++ b/hiver-modules/hiver-mall/src/main/resources/mapper/ReturnSaleMapper.xml
@@ -5,6 +5,7 @@
+
@@ -89,7 +90,7 @@
- id, sale_id, create_by, create_time, del_flag, update_by, update_time, user_id,user_name, shop_id,
+ id, sale_id, create_by, create_by_name, create_time, del_flag, update_by, update_time, user_id,user_name, shop_id,
total_amount, discount, discount_amount, real_amount, already_earn, no_earn, pay_status,
status, transport_type, share_address, receive_address, province, city, area, trans_company,
trans_company_name, product_count
@@ -125,7 +126,7 @@
- insert into t_return_sale (id, sale_id, create_by,
+ insert into t_return_sale (id, sale_id, create_by,create_by_name,
create_time, del_flag, update_by,
update_time, user_id,user_name, shop_id,
total_amount, discount, discount_amount,
@@ -133,7 +134,7 @@
pay_status, status, transport_type,
share_address, receive_address, province,
city, area,trans_company, trans_company_name, product_count)
- values (#{id,jdbcType=VARCHAR}, #{saleId,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR},
+ values (#{id,jdbcType=VARCHAR}, #{saleId,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR},#{createByName,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{delFlag,jdbcType=INTEGER}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{userId,jdbcType=VARCHAR},#{userName,jdbcType=VARCHAR}, #{shopId,jdbcType=VARCHAR},
#{totalAmount,jdbcType=DECIMAL}, #{discount,jdbcType=DECIMAL}, #{discountAmount,jdbcType=DECIMAL},
@@ -153,6 +154,9 @@
create_by,
+
+
+ create_by_name,
create_time,
@@ -227,6 +231,9 @@
#{createBy,jdbcType=VARCHAR},
+
+
+ #{createByName,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP},
@@ -307,6 +314,9 @@
create_by = #{record.createBy,jdbcType=VARCHAR},
+
+
+ create_by_name = #{record.createByName,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
@@ -381,6 +391,7 @@
set id = #{record.id,jdbcType=VARCHAR},
sale_id = #{record.saleId,jdbcType=VARCHAR},
create_by = #{record.createBy,jdbcType=VARCHAR},
+ create_by_name = #{record.createByName,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
del_flag = #{record.delFlag,jdbcType=INTEGER},
update_by = #{record.updateBy,jdbcType=VARCHAR},
@@ -417,6 +428,9 @@
create_by = #{createBy,jdbcType=VARCHAR},
+
+
+ create_by_name = #{createByName,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
@@ -488,6 +502,7 @@
update t_return_sale
set sale_id = #{saleId,jdbcType=VARCHAR},
create_by = #{createBy,jdbcType=VARCHAR},
+ create_by_name = #{createByName,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
del_flag = #{delFlag,jdbcType=INTEGER},
update_by = #{updateBy,jdbcType=VARCHAR},
@@ -534,9 +549,9 @@
where sale_id = #{id,jdbcType=VARCHAR}
-