|
|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
+import com.gree.mall.manager.bean.goods.GoodsMaterialStockDTO;
|
|
|
import com.gree.mall.manager.bean.order.OrderOldProductDTO;
|
|
|
import com.gree.mall.manager.bean.order.refund.OrderOfflineRefundAddBean;
|
|
|
import com.gree.mall.manager.bean.order.refund.OrderOfflineRefundDetailBean;
|
|
|
@@ -21,6 +22,7 @@ import com.gree.mall.manager.enums.material.PayTypeEnum;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
import com.gree.mall.manager.logic.goods.GoodsMaterialStockAccLogic;
|
|
|
+import com.gree.mall.manager.logic.goods.GoodsMaterialStockLogic;
|
|
|
import com.gree.mall.manager.logic.goods.JxGoodsLogic;
|
|
|
import com.gree.mall.manager.plus.entity.*;
|
|
|
import com.gree.mall.manager.plus.service.*;
|
|
|
@@ -72,6 +74,7 @@ public class OrderOfflineRefundLogic {
|
|
|
private final OrderDeliveryService orderDeliveryService;
|
|
|
private final OrderDeliveryDetailService orderDeliveryDetailService;
|
|
|
private final GoodsSaleLedgerService goodsSaleLedgerService;
|
|
|
+ private final GoodsMaterialStockLogic goodsMaterialStockLogic;
|
|
|
|
|
|
/**
|
|
|
* 退货单列表
|
|
|
@@ -203,33 +206,6 @@ public class OrderOfflineRefundLogic {
|
|
|
}
|
|
|
orderOfflineRefundItemService.saveBatch(orderOfflineRefundItems);
|
|
|
|
|
|
- //旧机退货
|
|
|
-
|
|
|
- orderOfflineRefundOldItemService.lambdaUpdate().eq(OrderOfflineRefundOldItem::getOrderOfflineRefundId,orderOfflineRefund.getId()).remove();
|
|
|
- if (!CollectionUtils.isEmpty(orderOfflineRefundAddBean.getIds())){
|
|
|
-
|
|
|
- if (orderOldProductService.lambdaQuery().in(OrderOldProduct::getId,orderOfflineRefundAddBean.getIds())
|
|
|
- .eq(OrderOldProduct::getRefund,true).count() > 0) {
|
|
|
- throw new RemoteServiceException("存在已经退货得旧机");
|
|
|
- }
|
|
|
-
|
|
|
- List<OrderOfflineRefundOldItem> orderOfflineRefundOldItems = new ArrayList<>();
|
|
|
- for (String orderOfflineRefundOldItem : orderOfflineRefundAddBean.getIds()) {
|
|
|
- OrderOldProduct orderOldProduct = orderOldProductService.getById(orderOfflineRefundOldItem);
|
|
|
-
|
|
|
- OrderOfflineRefundOldItem orderOfflineRefundOldItemAdd = new OrderOfflineRefundOldItem();
|
|
|
- orderOfflineRefundOldItemAdd.setOrderOfflineRefundId(orderOfflineRefund.getId());
|
|
|
- orderOfflineRefundOldItemAdd.setOrderOldProductId(orderOldProduct.getId());
|
|
|
- orderOfflineRefundOldItemAdd.setRefundNum(orderOldProduct.getNum());
|
|
|
- orderOfflineRefundOldItemAdd.setRefundAmount(orderOldProduct.getPayAmount());
|
|
|
- orderOfflineRefundOldItemAdd.setOrderId(orderOldProduct.getOrderId());
|
|
|
- orderOfflineRefundOldItemAdd.setId(null);
|
|
|
-
|
|
|
- orderOfflineRefundOldItems.add(orderOfflineRefundOldItemAdd);
|
|
|
- }
|
|
|
-
|
|
|
- orderOfflineRefundOldItemService.saveBatch(orderOfflineRefundOldItems);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -251,6 +227,7 @@ public class OrderOfflineRefundLogic {
|
|
|
bean.setSmallName(orderDetail.getSmallName());
|
|
|
bean.setGoodsName(orderDetail.getGoodsName());
|
|
|
bean.setGoodsSpecName(orderDetail.getGoodsSpecName());
|
|
|
+ bean.setGoodsMaterialUnit(orderDetail.getGoodsMaterialUnit());
|
|
|
bean.setPrice(orderDetail.getPrice());
|
|
|
bean.setNum(orderDetail.getNum());
|
|
|
bean.setPayAmount(orderDetail.getPayAmount());
|
|
|
@@ -302,7 +279,7 @@ public class OrderOfflineRefundLogic {
|
|
|
* @param remark
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public void examine(String id,ExamineStatusEnum examineStatusEnum,String remark) throws InterruptedException {
|
|
|
+ public void examine(String id,ExamineStatusEnum examineStatusEnum,String remark) throws Exception {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
OrderOfflineRefund orderOfflineRefund = orderOfflineRefundService.getById(id);
|
|
|
if(!orderOfflineRefund.getExamineStatus().equals(ExamineStatusEnum.WAIT.getKey())){
|
|
|
@@ -324,8 +301,8 @@ public class OrderOfflineRefundLogic {
|
|
|
List<OrderDeliveryDetail> orderDeliveryDetails = orderDeliveryDetailService.lambdaQuery().eq(OrderDeliveryDetail::getDeliveryId, orderOfflineRefund.getDeliveryId()).list();
|
|
|
List<OrderDetail> orderDetails = orderDetailService.lambdaQuery().eq(OrderDetail::getOrderId, orderOfflineRefund.getOrderId()).list();
|
|
|
//订单明细map
|
|
|
- Map<String, OrderDetail> orderDetailMap = orderDetails.stream().collect(Collectors.toMap(v -> v.getOrderDetailId(), Function.identity()));
|
|
|
- Map<String, OrderDeliveryDetail> orderDeliveryDetailMap = orderDeliveryDetails.stream().collect(Collectors.toMap(v -> v.getOrderDetailId(), Function.identity()));
|
|
|
+ Map<String, OrderDetail> orderDetailMap = orderDetails.stream().collect(Collectors.toMap(OrderDetail::getOrderDetailId, Function.identity()));
|
|
|
+ Map<String, OrderDeliveryDetail> orderDeliveryDetailMap = orderDeliveryDetails.stream().collect(Collectors.toMap(OrderDeliveryDetail::getOrderDetailId, Function.identity()));
|
|
|
|
|
|
if(examineStatusEnum.getKey().equals(ExamineStatusEnum.OK.getKey())){
|
|
|
|
|
|
@@ -381,24 +358,24 @@ public class OrderOfflineRefundLogic {
|
|
|
|
|
|
//回退仓库库存
|
|
|
if (!StringUtil.isEmpty(orderDetail.getGoodsMaterialId()) && !adminUser.getJoinCode().equals("NO")) {
|
|
|
-
|
|
|
- jxGoodsLogic.addMaterialStock(orderDetail.getGoodsMaterialId(), item.getRefundNum(),orderOfflineRefund.getStorageStockId(),orderDelivery.getStorageStockId());
|
|
|
- goodsMaterialStockAccLogic.add(orderDetail.getGoodsMaterialId(), orderDetail.getPrice(), item.getRefundNum(),
|
|
|
- DirectFlagEnum.ADD, orderRefund.getOrderId(), GoodsMaterialStockAccBillTypeEnum.E,orderOfflineRefund.getStorageStockId(),orderOfflineRefund.getStorageName());
|
|
|
- if (adminUser.getJoinCode().equals("CODE")) {
|
|
|
- //加条码
|
|
|
- if (!CollectionUtils.isEmpty(codeList))
|
|
|
- jxGoodsLogic.addCodeAccOffline(codeList,orderOfflineRefund.getStorageStockId());
|
|
|
-
|
|
|
- }
|
|
|
+// jxGoodsLogic.addMaterialStock(orderDetail.getGoodsMaterialId(), item.getRefundNum(),orderOfflineRefund.getStorageStockId(),orderDelivery.getStorageStockId());
|
|
|
+// goodsMaterialStockAccLogic.add(orderDetail.getGoodsMaterialId(), orderDetail.getPrice(), item.getRefundNum(),
|
|
|
+// DirectFlagEnum.ADD, orderRefund.getOrderId(), GoodsMaterialStockAccBillTypeEnum.E,orderOfflineRefund.getStorageStockId(),orderOfflineRefund.getStorageName());
|
|
|
+// if (adminUser.getJoinCode().equals("CODE")) {
|
|
|
+// //加条码
|
|
|
+// if (!CollectionUtils.isEmpty(codeList))
|
|
|
+// jxGoodsLogic.addCodeAccOffline(codeList,orderOfflineRefund.getStorageStockId());
|
|
|
+//
|
|
|
+// }
|
|
|
+ this.handleGoodsMaterialStock(orderOfflineRefund, orderOfflineRefundItems, orderDetailMap, adminUser);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
orderDelivery.updateById();
|
|
|
//线上支付,需退款
|
|
|
- if (orderInfo.getPayTypeId().equals(PayTypeEnum.WECHAT.getKey())) {
|
|
|
- orderRefundLogic.refund(orderRefund);
|
|
|
- }
|
|
|
+// if (orderInfo.getPayTypeId().equals(PayTypeEnum.WECHAT.getKey())) {
|
|
|
+// orderRefundLogic.refund(orderRefund);
|
|
|
+// }
|
|
|
|
|
|
List<GoodsSaleLedger> goodsSaleLedgers = goodsSaleLedgerService.lambdaQuery()
|
|
|
.eq(GoodsSaleLedger::getDeliveryId, orderDelivery.getDeliveryId()).list();
|
|
|
@@ -418,6 +395,48 @@ public class OrderOfflineRefundLogic {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private void handleGoodsMaterialStock(OrderOfflineRefund orderOfflineRefund, List<OrderOfflineRefundItem> orderOfflineRefundItems,
|
|
|
+ Map<String, OrderDetail> orderDetailMap, AdminUserCom adminUser) throws Exception {
|
|
|
+ List<GoodsMaterialStockDTO> dtoList = new ArrayList<>();
|
|
|
+ for (OrderOfflineRefundItem refundItem : orderOfflineRefundItems) {
|
|
|
+ GoodsMaterialStockDTO dto = new GoodsMaterialStockDTO();
|
|
|
+ final OrderDetail orderDetail = orderDetailMap.get(refundItem.getOrderDetailId());
|
|
|
+ int insideNum = orderDetail.getInsideNum() == 0 ? 0 : (orderDetail.getInsideNum() / orderDetail.getNum());
|
|
|
+ int outNum = orderDetail.getOutNum() == 0 ? 0 : (orderDetail.getOutNum() / orderDetail.getNum());
|
|
|
+ int partNum = orderDetail.getPartNum() == 0 ? 0 : (orderDetail.getPartNum() / orderDetail.getNum());
|
|
|
+ dto.setDirectFlag(DirectFlagEnum.ADD.getKey())
|
|
|
+ .setRemindName(orderDetail.getGoodsSpecName())
|
|
|
+ .setCompanyWechatId(orderOfflineRefund.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(orderOfflineRefund.getCompanyWechatName())
|
|
|
+ .setBrandId(orderDetail.getBrandId())
|
|
|
+ .setBrandName(orderDetail.getBrandName())
|
|
|
+ .setMainId(orderDetail.getMainNumber())
|
|
|
+ .setMainName(orderDetail.getMainName())
|
|
|
+ .setSmallId(orderDetail.getSmallNumber())
|
|
|
+ .setSmallName(orderDetail.getSmallName())
|
|
|
+ .setGoodsName(orderDetail.getGoodsMaterialName())
|
|
|
+ .setSeriesName(orderDetail.getGoodsMaterialSeriesName())
|
|
|
+ .setSpecsName(orderDetail.getGoodsSpecValue())
|
|
|
+ .setUnit(orderDetail.getGoodsMaterialUnit())
|
|
|
+ .setInsideQty(insideNum)
|
|
|
+ .setOutQty(outNum)
|
|
|
+ .setPartsQty(partNum)
|
|
|
+ .setPrice(orderDetail.getPrice())
|
|
|
+ .setSdate(orderOfflineRefund.getExamineTime())
|
|
|
+ .setChangeQty(refundItem.getRefundNum())
|
|
|
+ .setRefBillNo(orderOfflineRefund.getId())
|
|
|
+ .setRefBillType("销售退货单")
|
|
|
+ .setStorageId(orderOfflineRefund.getStorageStockId())
|
|
|
+ .setStorageName(orderOfflineRefund.getStorageStockName())
|
|
|
+ .setGoodsMaterialId(orderDetail.getGoodsMaterialId())
|
|
|
+ .setRemark(orderOfflineRefund.getRemark())
|
|
|
+ .setOperateBy(adminUser.getAdminUserId());
|
|
|
+ dtoList.add(dto);
|
|
|
+ }
|
|
|
+
|
|
|
+ goodsMaterialStockLogic.handleGoodsMaterialStock(dtoList);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void refundOver(String orderId){
|
|
|
List<OrderDetail> orderDetails = orderDetailService.lambdaQuery().eq(OrderDetail::getOrderId, orderId).list();
|