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 4f9d4659..19caa411 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
@@ -3,6 +3,8 @@ 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.debt.entity.Debt;
+import cc.hiver.mall.debt.service.DebtService;
import cc.hiver.mall.entity.Customer;
import cc.hiver.mall.entity.ReturnDetail;
import cc.hiver.mall.entity.SaleDetail;
@@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
+import java.text.ParseException;
import java.util.*;
@Service
@@ -36,6 +39,9 @@ public class BillServiceImpl implements BillService {
@Autowired
private DealingsRecordService dealingsRecordService;
+ @Autowired
+ private DebtService debtService;
+
/**
* 获取客户对账单
*
@@ -64,34 +70,66 @@ public class BillServiceImpl implements BillService {
if (saleArrearsVo != null) {
customerBillDataVo.setArrears(saleArrearsVo.getArrears());
customerBillDataVo.setTotalSale(saleArrearsVo.getTotalSale());
+ }else{
+ customerBillDataVo.setArrears(BigDecimal.ZERO);
+ customerBillDataVo.setTotalSale(BigDecimal.ZERO);
}
// 获取退货总金额
final ArrearsVo returnSaleArrearsVo = returnSaleService.getTotalReturn(customerBillQueryVo);
if (returnSaleArrearsVo != null) {
customerBillDataVo.setTotalReturn(returnSaleArrearsVo.getTotalReturn());
+ }else{
+ customerBillDataVo.setTotalReturn(BigDecimal.ZERO);
}
// 根据客户id及日期范围对账单明细
final Page
dealingRecordPage = dealingsRecordService.getDealingsRecordPageByUserId(customerBillQueryVo);
final List records = dealingRecordPage.getRecords();
-
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细
final List saleIdList = new ArrayList<>();
- for (int i = 0; i < records.size(); i++) {
- if(StringUtils.isNotEmpty(records.get(i).getSaleId())){
- saleIdList.add(records.get(i).getSaleId());
- }
- // 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
- if (i == 0) {
- final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount();
- customerBillDataVo.setInitialArrears(lastDebtAmount);
+ if(records.isEmpty()){
+ //未开单,查询客户欠款,作为初期欠款和期末欠款
+ final Debt debt = debtService.selectByUserId(customerBillQueryVo.getShopId(),customerBillQueryVo.getCustomerId());
+ // 要查新客户的创建时间,根据用户的创建时间来判断;
+ // 如果查询时间小于创建时间,那么初期欠款和期末欠款应该为0
+ // 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款
+ if(debt != null){
+ final Date createTime = debt.getCreateTime();
+ final String endDate = customerBillQueryVo.getEndDate();
+ final Date enddate;
+ try {
+ enddate = DateUtil.COMMON.getTextDate(endDate);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ // 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识
+ if(createTime.after(enddate)){
+ customerBillDataVo.setInitialArrears(BigDecimal.ZERO);
+ customerBillDataVo.setEndArrears(BigDecimal.ZERO);
+ }else{
+ customerBillDataVo.setInitialArrears(debt.getAmountOwed());
+ customerBillDataVo.setEndArrears(debt.getAmountOwed());
+ }
+
}
- // 获取最后一个的剩余欠款当做本次查询的剩余欠款
- if (i == records.size() - 1) {
- customerBillDataVo.setEndArrears(records.get(i).getBalanceDue());
+ }else{
+ for (int i = 0; i < records.size(); i++) {
+ if(StringUtils.isNotEmpty(records.get(i).getSaleId())){
+ saleIdList.add(records.get(i).getSaleId());
+ }
+ // 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
+ if (i == 0) {
+ final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount();
+ customerBillDataVo.setInitialArrears(lastDebtAmount);
+ }
+ // 获取最后一个的剩余欠款当做本次查询的剩余欠款
+ if (i == records.size() - 1) {
+ customerBillDataVo.setEndArrears(records.get(i).getBalanceDue());
+ }
}
}
+
if (!saleIdList.isEmpty()) {
// 获取销售单明细
final List saleDetailList = saleDetailService.getSaleDetails(saleIdList);
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 e71add35..81a14efc 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
@@ -147,7 +147,7 @@ public class SaleController {
saleQueryDTO.getSale().setShopName(shop.getShopName());
// 根据该客户的欠款信息
String userId = saleQueryDTO.getSale().getUserId();
- Debt debt = debtService.selectByUserId(userId);
+ Debt debt = debtService.selectByUserId(shopId,userId);
BigDecimal amountOwed = debt.getAmountOwed();
// 20240616 开单可能值包含退货单
Sale sale = saleQueryDTO.getSale();
@@ -433,17 +433,13 @@ public class SaleController {
@RequestMapping(value = "/listPages", method = RequestMethod.POST)
@ApiOperation("根据条件获得分页")
public Result queryPage(@RequestBody SaleVO saleVO) {
- /*String shopId = "";
- try {
- // 获取请求token
- shopId = securityUtil.getShopId();
- } catch (Exception e) {
- return ResultUtil.error(500, e.getMessage());
- }*/
if (ObjectUtils.isEmpty(saleVO)) {
return new ResultUtil().setErrorMsg("请输入查询条件后再查询!");
}
- // saleVO.setShopId(shopId);
+ if (StringUtils.isNotEmpty(saleVO.getEndTime())) {
+ final String newEnTime = DateUtil.addDay(saleVO.getEndTime(), 1);
+ saleVO.setEndTime(newEnTime);
+ }
final Page saleList = saleService.queryPage(saleVO);
return new ResultUtil>().setData(saleList);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/DebtService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/DebtService.java
index 00954e76..4c4c28cd 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/DebtService.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/DebtService.java
@@ -60,7 +60,7 @@ public interface DebtService extends IService {
* @param userId
* @return Debt
*/
- Debt selectByUserId(String userId);
+ Debt selectByUserId(String shopId,String userId);
Debt recharge(Debt debt);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/impl/DebtServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/impl/DebtServiceImpl.java
index 76a5681b..1eac465a 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/impl/DebtServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/debt/service/impl/DebtServiceImpl.java
@@ -228,8 +228,8 @@ public class DebtServiceImpl extends ServiceImpl implements De
return debtMapper.getDebtByUserIds(userIds);
}
- public Debt selectByUserId(String userId) {
- return debtMapper.selectByUserId(securityUtil.getShopId(), userId);
+ public Debt selectByUserId(String shopId, String userId) {
+ return debtMapper.selectByUserId(shopId, userId);
}
@Override
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalesRankingQueryCriteria.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalesRankingQueryCriteria.java
index 2435e7a5..fc15f8ef 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalesRankingQueryCriteria.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalesRankingQueryCriteria.java
@@ -1,16 +1,12 @@
package cc.hiver.mall.pojo.query;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-@ApiModel(value = "业绩管理返回实体")
+@ApiModel(value = "业绩管理查询实体")
@Data
public class SalesRankingQueryCriteria implements Serializable {
@@ -18,47 +14,9 @@ public class SalesRankingQueryCriteria implements Serializable {
private String shopId;
@ApiModelProperty(value = "开始时间")
- private Date startTime;
+ private String startTime;
@ApiModelProperty(value = "结束时间")
- private Date endTime;
-
- public Date getStartTime() {
- return startTime;
- }
-
- public void setStartTime(String startTime) {
- if (!StrUtil.isNotEmpty(startTime)) {
- this.startTime = null;
- return;
- }
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- try {
- this.startTime = formatter.parse(startTime + " 00:00:00");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public Date getEndTime() {
- return endTime;
- }
-
- public void setEndTime(String endTime) {
- if (!StrUtil.isNotEmpty(endTime)) {
- this.endTime = null;
- return;
- }
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- try {
- this.endTime = formatter.parse(endTime + "23:59:59");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public boolean isAnyFieldEmpty() {
- return ObjectUtils.isEmpty(this.startTime) && ObjectUtils.isEmpty(this.endTime);
- }
+ private String endTime;
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/CustomerSaleDetailVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/CustomerSaleDetailVo.java
index 4352f850..4ce4c75f 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/CustomerSaleDetailVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/CustomerSaleDetailVo.java
@@ -18,7 +18,7 @@ public class CustomerSaleDetailVo {
private String productCount;
@ApiModelProperty(value = " 拿货总金额")
- private String realAmount;
+ private String totalAmount;
@ApiModelProperty(value = " 成本")
private String totalCost;
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ProductAttributeValueVo.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ProductAttributeValueVo.java
index a0d11ec5..c2e58a8a 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ProductAttributeValueVo.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/ProductAttributeValueVo.java
@@ -11,6 +11,9 @@ public class ProductAttributeValueVo extends HiverBaseEntity {
private static final long serialVersionUID = 1L;
+ @ApiModelProperty(value = "属性值id")
+ private String id;
+
@ApiModelProperty(value = "商品属性ID")
private String attributeId;
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 8fdb84b7..68c328ae 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
@@ -259,7 +259,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
}
}
// 获取销售员的手机号
- User user = userService.get(sale.getCreateBy());
+ final User user = securityUtil.getCurrUser();
sale.setCreateByPhone(user.getMobile());
sale.setCreateTime(new Date());
sale.setDelFlag(CommonConstant.DEL_FLAG_FALSE);
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 97f88221..6ed65235 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
@@ -1,13 +1,11 @@
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;
@@ -32,9 +30,6 @@ public class DealingsRecordServiceImpl extends ServiceImpl i
@Override
public BigDecimal getPurchasingCost(String shopId, String startTime, String endTime) {
- if (StringUtils.isNotEmpty(endTime)) {
- endTime = DateUtil.addDay(endTime, 1);
- }
return purchaseMapper.getPurchasingCost(shopId, startTime, endTime);
}
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java
index de066d74..87ebde65 100644
--- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java
@@ -13,6 +13,7 @@ import cc.hiver.core.service.LogiticsCompanyService;
import cc.hiver.mall.bill.vo.ArrearsVo;
import cc.hiver.mall.bill.vo.CustomerBillQueryVo;
import cc.hiver.mall.bill.vo.CustomerBillSaleVo;
+import cc.hiver.mall.common.constant.OrderConstant;
import cc.hiver.mall.common.constant.StockConstant;
import cc.hiver.mall.common.constant.StockLogConstant;
import cc.hiver.mall.config.thread.AiSaleThread;
@@ -30,6 +31,7 @@ import cc.hiver.mall.saleaimsg.constant.SaleAiMsgConstant;
import cc.hiver.mall.saleaimsg.entity.SaleAiMsg;
import cc.hiver.mall.saleaimsg.service.SaleAiMsgService;
import cc.hiver.mall.service.OrderService;
+import cc.hiver.mall.service.SendMessageService;
import cc.hiver.mall.service.mybatis.*;
import cc.hiver.mall.utils.AliOcrUtil;
import cc.hiver.mall.utils.DateUtil;
@@ -106,6 +108,9 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
@Autowired
private DebtService debtService;
+ @Autowired
+ private SendMessageService sendMessageService;
+
@Override
public void editPayPrice(String id, BigDecimal price, String dealingsWay) {
// 修改采购单、实付、未付金额
@@ -157,11 +162,6 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
if (!ObjectUtils.isEmpty(saleVO.getPageVo())) {
page = new Page<>(saleVO.getPageVo().getPageNumber(), saleVO.getPageVo().getPageSize());
}
- if (StringUtils.isNotEmpty(saleVO.getEndTime())) {
- final String newEnTime = DateUtil.addDay(saleVO.getEndTime(), 1);
- saleVO.setEndTime(newEnTime);
- }
-
final Page saleList = saleMapper.queryPage(page, saleVO);
// 获取订单详情信息
for (Sale sale : saleList.getRecords()) {
@@ -351,6 +351,9 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
*/
@Override
public List getSalesRankingByShopId(SalesRankingQueryCriteria salesRankingQueryCriteria) {
+ if(StringUtils.isNotEmpty(salesRankingQueryCriteria.getEndTime())){
+ salesRankingQueryCriteria.setEndTime(DateUtil.addDay(salesRankingQueryCriteria.getEndTime(), 1));
+ }
return saleMapper.getSalesRankingByShopId(salesRankingQueryCriteria);
}
@@ -915,7 +918,7 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
// 4. 订单款项记录作废
// 根据订单获取交易记录
final String userId = sale.getUserId();
- final Debt oldDebt = debtService.selectByUserId(userId);
+ final Debt oldDebt = debtService.selectByUserId(sale.getShopId(),userId);
if (oldDebt != null) {
final BigDecimal newDebtAmount;
final BigDecimal lastDebtAmount = oldDebt.getAmountOwed();
@@ -954,6 +957,20 @@ public class SaleServiceImpl extends ServiceImpl implements Sa
}
// 作废当前订单的欠款记录
dealingsRecordService.cancelRecord(id);
+ // 如果有配送单,那么就取消配送,并给快递员发送消息
+ final OrderXd orderXd = orderService.findByOrderId(id);
+ if(orderXd != null && (orderXd.getOrderStatus().equals(OrderConstant.ORDER_STATUS[0]) || orderXd.getOrderStatus().equals(OrderConstant.ORDER_STATUS[1]))){
+ if (StringUtils.isNotEmpty(orderXd.getOrderByWorker())) {
+ // 如果订单被抢单了,那么需要给配送员发送消息
+ sendMessageService.handleSendAppMessageOfQuxiao(orderXd.getOrderByWorker());
+ }
+ orderXd.setOrderByWorker(null);
+ orderXd.setOrderByWorkertime(null);
+ orderXd.setWorker(null);
+ // 修改为作废
+ orderXd.setOrderStatus(OrderConstant.ORDER_STATUS[2]);
+ orderService.update(orderXd);
+ }
}
@Override
diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductAttributeValueMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductAttributeValueMapper.xml
index abc90ea2..86ba560b 100644
--- a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductAttributeValueMapper.xml
+++ b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductAttributeValueMapper.xml
@@ -259,7 +259,7 @@