|
@@ -20,6 +20,7 @@ import com.gree.mall.miniapp.bean.order.WorkerOrderDetail;
|
|
import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
|
|
import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
|
|
import com.gree.mall.miniapp.commonmapper.MaterialMapper;
|
|
import com.gree.mall.miniapp.commonmapper.MaterialMapper;
|
|
import com.gree.mall.miniapp.enums.*;
|
|
import com.gree.mall.miniapp.enums.*;
|
|
|
|
+import com.gree.mall.miniapp.enums.material.NormTypeEnum;
|
|
import com.gree.mall.miniapp.enums.material.PartsAttrEnum;
|
|
import com.gree.mall.miniapp.enums.material.PartsAttrEnum;
|
|
import com.gree.mall.miniapp.enums.material.WebsitGoodsTypeEnum;
|
|
import com.gree.mall.miniapp.enums.material.WebsitGoodsTypeEnum;
|
|
import com.gree.mall.miniapp.exception.RemoteServiceException;
|
|
import com.gree.mall.miniapp.exception.RemoteServiceException;
|
|
@@ -611,7 +612,7 @@ public class PayOrderLogic {
|
|
Map<String, WorkerNormStockBean> workerStockMap = new HashMap<>();
|
|
Map<String, WorkerNormStockBean> workerStockMap = new HashMap<>();
|
|
for (WorkerOrderItem item : workerOrderItems) {
|
|
for (WorkerOrderItem item : workerOrderItems) {
|
|
WebsitNormCharge websitNormCharge = websitNormChargeService.getById(item.getGoodsId());
|
|
WebsitNormCharge websitNormCharge = websitNormChargeService.getById(item.getGoodsId());
|
|
- if (websitNormCharge.getNormType().equals("M")) {
|
|
|
|
|
|
+ if (websitNormCharge.getNormType().equals(NormTypeEnum.M.getKey())) {
|
|
// 获取当前关联师傅库存记录
|
|
// 获取当前关联师傅库存记录
|
|
List<WorkerNormStockBean> stockBeanList = materialMapper.queryWorkerStockQty(item.getGoodsId(), workerOrder.getWorkerId());
|
|
List<WorkerNormStockBean> stockBeanList = materialMapper.queryWorkerStockQty(item.getGoodsId(), workerOrder.getWorkerId());
|
|
if (CollectionUtil.isNotEmpty(stockBeanList)) {
|
|
if (CollectionUtil.isNotEmpty(stockBeanList)) {
|
|
@@ -619,7 +620,7 @@ public class PayOrderLogic {
|
|
for (WorkerNormStockBean stockBean : stockBeanList) {
|
|
for (WorkerNormStockBean stockBean : stockBeanList) {
|
|
// 当前订单收费标准扣总数量
|
|
// 当前订单收费标准扣总数量
|
|
BigDecimal useTotalQty = totalNum.multiply(stockBean.getQty());
|
|
BigDecimal useTotalQty = totalNum.multiply(stockBean.getQty());
|
|
- if (!workerStockMap.containsKey(stockBean.getWorkerGoodsId())) {
|
|
|
|
|
|
+ if (!workerStockMap.containsKey(stockBean.getWorkerGoodsId() + item.getGoodsAmount())) {
|
|
WorkerNormStockBean bean = new WorkerNormStockBean();
|
|
WorkerNormStockBean bean = new WorkerNormStockBean();
|
|
BeanUtils.copyProperties(stockBean, bean);
|
|
BeanUtils.copyProperties(stockBean, bean);
|
|
bean.setRealQty(BigDecimal.ZERO);
|
|
bean.setRealQty(BigDecimal.ZERO);
|
|
@@ -628,6 +629,11 @@ public class PayOrderLogic {
|
|
WorkerNormStockBean stock = workerStockMap.get(stockBean.getWorkerGoodsId() + item.getGoodsAmount());
|
|
WorkerNormStockBean stock = workerStockMap.get(stockBean.getWorkerGoodsId() + item.getGoodsAmount());
|
|
stock.setRealQty(stock.getRealQty().add(useTotalQty));
|
|
stock.setRealQty(stock.getRealQty().add(useTotalQty));
|
|
stock.setNormPrice(item.getGoodsAmount());
|
|
stock.setNormPrice(item.getGoodsAmount());
|
|
|
|
+
|
|
|
|
+ if (!stockBean.getIsSmall() && stock.getRealQty().compareTo(stockBean.getStockQty()) > 0) {
|
|
|
|
+ throw new RemoteServiceException("收费标准关联的 " + stockBean.getGoodsName() + "库存数量"
|
|
|
|
+ + stock.getStockQty() + ", 需扣" + stock.getRealQty() + ", 库存数量不够扣减");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|