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} - select - trs.id,trs.sale_id,trs.create_by,trs.create_time,trs.del_flag,trs.update_by,trs.update_time,trs.user_id,user_name,trs.shop_id, + trs.id,trs.sale_id,trs.create_by,trs.create_by_name,trs.create_time,trs.del_flag,trs.update_by,trs.update_time,trs.user_id,trs.user_name,trs.shop_id, trs.total_amount,trs.discount,trs.discount_amount,trs.real_amount,trs.already_earn,trs.no_earn,trs.pay_status, trs.status,trs.transport_type,trs.share_address,trs.receive_address,trs.province,trs.city,trs.area, tdr.return_amount, @@ -551,6 +566,7 @@ and trs.del_flag = '0' + and trs.status != '02' and trs.shop_id = #{queryParams.shopId,jdbcType=VARCHAR} @@ -559,16 +575,16 @@ and trs.create_time BETWEEN #{queryParams.startTime,jdbcType=VARCHAR} AND #{queryParams.endTime,jdbcType=VARCHAR} - - and create_by_name like concat('%',#{queryParams.createByName,jdbcType=VARCHAR},'%') + + and trs.create_by_name like concat('%',#{queryParams.createByName,jdbcType=VARCHAR},'%') - - and user_name like concat('%',#{queryParams.userName,jdbcType=VARCHAR},'%') + + and trs.user_name like concat('%',#{queryParams.userName,jdbcType=VARCHAR},'%') - - and user_id = #{queryParams.userId,jdbcType=VARCHAR} + + and trs.user_id = #{queryParams.userId,jdbcType=VARCHAR} @@ -595,7 +611,7 @@ select id as return_sale_id, + sale_id create_by, create_by_name, user_id, @@ -655,7 +672,7 @@ + \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml index d0713228..ac0770b1 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml @@ -823,12 +823,14 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr ts.other_expense,ts.transport_type,ts.share_address,ts.receive_address,ts.province,ts.city,ts.area, ts.trans_company,ts.company_name,ts.product_count,ts.remark,ts.sale_name,ts.company_phone,ts.create_by_phone,ts.mode_of_service, ts.ai_flag,ts.ai_result,ts.ai_not_recognition, - trs.return_sale_total_amount ,trs.return_sale_product_count + trs.return_sale_total_amount ,trs.return_sale_product_count, + tdr.last_debt_amount FROM t_sale ts left join ( select n.sale_id,sum(n.total_amount) as return_sale_total_amount ,sum(n.product_count) as return_sale_product_count from t_sale m left join t_return_sale n on m.id = n.sale_id group by n.sale_id ) trs on ts.id = trs.sale_id + left join t_dealings_record tdr ON ts.id = tdr.sale_id and ts.shop_id = #{saleVO.shopId} @@ -837,6 +839,33 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr and ts.pay_type = #{saleVO.payType} + + + + + and ts.status not in ('6','7') + + + and ts.status not in ('2','6','7') + + and ts.id in (select sale_id from t_sale_detail tsd + where tsd.shop_id = #{saleVO.shopId} + + and tsd.create_time BETWEEN #{saleVO.startTime} AND #{saleVO.endTime} + + ) + + + and ts.status = #{saleVO.status} + + + + and ts.status not in ('6','7') + + and ts.status = #{saleVO.status} @@ -859,15 +888,19 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr select date(create_time) as payment_day, - sum(case when pay_type = '0' then real_amount else 0 end) as xianjin, - sum(case when pay_type = '1' then real_amount else 0 end) as weixin, - sum(case when pay_type = '2' then real_amount else 0 end) as zhifubao, - sum(case when pay_type = '3' then real_amount else 0 end) as yihangzhuanzhang, - sum(case when pay_type = '4' then real_amount else 0 end) as shouhuanma, - sum(case when pay_type = '5' then real_amount else 0 end) as yuliu_one, - sum(case when pay_type = '6' then real_amount else 0 end) as yuliu_two, - sum(case when pay_type = '7' then real_amount else 0 end) as yuliu_three + sum(case when pay_type = '0' then already_earn else 0 end) as xianjin, + sum(case when pay_type = '1' then already_earn else 0 end) as weixin, + sum(case when pay_type = '2' then already_earn else 0 end) as zhifubao, + sum(case when pay_type = '3' then already_earn else 0 end) as yihangzhuanzhang, + sum(case when pay_type = '4' then already_earn else 0 end) as shouhuanma, + sum(case when pay_type = '5' then already_earn else 0 end) as yuliu_one, + sum(case when pay_type = '6' then already_earn else 0 end) as yuliu_two, + sum(case when pay_type = '7' then already_earn else 0 end) as yuliu_three from t_sale WHERE diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml index b4630f86..37c059c0 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/StockMapper.xml @@ -663,4 +663,12 @@ and attribute_list = #{attributeList,jdbcType=VARCHAR} + + \ No newline at end of file