|
@@ -21,10 +21,7 @@ import com.yiqi.core.domain.GoodsInfo;
|
|
|
import com.yiqi.core.domain.GoodsSkuStore;
|
|
|
import com.yiqi.core.domain.SettlementBalanceRecord;
|
|
|
import com.yiqi.core.domain.dto.GoodsSkuStockRecordDTO;
|
|
|
-import com.yiqi.core.service.IGoodsInfoService;
|
|
|
-import com.yiqi.core.service.IGoodsSkuStockRecordService;
|
|
|
-import com.yiqi.core.service.IGoodsSkuStoreService;
|
|
|
-import com.yiqi.core.service.ISettlementBalanceRecordService;
|
|
|
+import com.yiqi.core.service.*;
|
|
|
import com.yiqi.order.domain.*;
|
|
|
import com.yiqi.order.domain.dto.*;
|
|
|
import com.yiqi.order.domain.vo.OrderDeliveryPathVO;
|
|
@@ -43,6 +40,7 @@ import org.springframework.stereotype.Service;
|
|
|
import com.yiqi.order.mapper.OrderPurchaseGoodsMapper;
|
|
|
import com.yiqi.order.service.IOrderPurchaseGoodsService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
/**
|
|
|
* 商品订单Service业务层处理
|
|
@@ -67,6 +65,8 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
@Autowired
|
|
|
private IGoodsSkuStoreService goodsSkuStoreService;
|
|
|
@Autowired
|
|
|
+ private IGoodsSkuService goodsSkuService;
|
|
|
+ @Autowired
|
|
|
private IGoodsSkuStockRecordService goodsSkuStockRecordService;
|
|
|
@Autowired
|
|
|
private IThirdDeliveryService thirdDeliveryService;
|
|
@@ -204,13 +204,6 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
if (!purchaseGoodsStatusType.CONFIRM_PAY.getCode().equals(orderPurchaseGoods.getOrderStatus())) {
|
|
|
throw new GlobalException("订单状态非待确认,无法接单");
|
|
|
}
|
|
|
-// // 材料进货,扣除金额
|
|
|
-// if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoods.getGoodsType()) && SysBoolType.YES.getCode().equals(orderPurchaseGoods.getIsUseBalance())){
|
|
|
-// this.handleSetBalanceDeductAmount(orderPurchaseGoods);
|
|
|
-// // 保存记录
|
|
|
-// SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildConsumeBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
-// settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
-// }
|
|
|
orderPurchaseGoods.setPayTime(DateUtils.getNowDate());
|
|
|
orderPurchaseGoods.setOrderStatus(purchaseGoodsStatusType.NO_SEND.getCode());
|
|
|
orderPurchaseGoods.buildUpdateData();
|
|
@@ -238,14 +231,13 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
// 更新订单状态
|
|
|
orderPurchaseGoods.setOrderStatus(purchaseGoodsStatusType.REFUSE.getCode());
|
|
|
orderPurchaseGoods.buildUpdateData();
|
|
|
-
|
|
|
- // 如果勾选了使用抵扣金额,则退回余额
|
|
|
- if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoods.getGoodsType()) && SysBoolType.YES.getCode().equals(orderPurchaseGoods.getIsUseBalance())) {
|
|
|
- this.handleRefundBalanceDeductAmount(orderPurchaseGoods);
|
|
|
- // 保存记录
|
|
|
- SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildRefundBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
- settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
- }
|
|
|
+// // 如果勾选了使用抵扣金额,则退回余额
|
|
|
+// if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoods.getGoodsType()) && SysBoolType.YES.getCode().equals(orderPurchaseGoods.getIsUseBalance())) {
|
|
|
+// this.handleRefundBalanceDeductAmount(orderPurchaseGoods);
|
|
|
+// // 保存记录
|
|
|
+// SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildRefundBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
+// settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
+// }
|
|
|
return baseMapper.updateById(orderPurchaseGoods);
|
|
|
}
|
|
|
|
|
@@ -274,12 +266,12 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
orderPurchaseGoods.buildUpdateData();
|
|
|
|
|
|
// 如果勾选了使用抵扣金额,则退回余额
|
|
|
- if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoods.getGoodsType()) && SysBoolType.YES.getCode().equals(orderPurchaseGoods.getIsUseBalance())) {
|
|
|
- this.handleRefundBalanceDeductAmount(orderPurchaseGoods);
|
|
|
- // 保存记录
|
|
|
- SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildRefundBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
- settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
- }
|
|
|
+// if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoods.getGoodsType()) && SysBoolType.YES.getCode().equals(orderPurchaseGoods.getIsUseBalance())) {
|
|
|
+// this.handleRefundBalanceDeductAmount(orderPurchaseGoods);
|
|
|
+// // 保存记录
|
|
|
+// SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildRefundBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
+// settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
+// }
|
|
|
return baseMapper.updateById(orderPurchaseGoods);
|
|
|
}
|
|
|
|
|
@@ -291,6 +283,7 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public int outOrderGoods(OrderGoodsOutGoodsDTO orderGoodsOutGoodsDTO, String deliveryWay) throws Exception {
|
|
|
OrderPurchaseGoods orderPurchaseGoods = baseMapper.selectById(orderGoodsOutGoodsDTO.getOrderId());
|
|
|
if (orderPurchaseGoods == null) {
|
|
@@ -309,31 +302,10 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
if (CollUtil.isEmpty(orderPurchaseGoodsSkus)) {
|
|
|
throw new GlobalException("未查询到订单进货商品信息,无法出货");
|
|
|
}
|
|
|
- List<GoodsSkuStore> goodsSkuStoreList = new ArrayList<>();
|
|
|
- // 总部代理工厂出货
|
|
|
- if (SourceType.MANAGER.getCode().equals(SecurityUtils.getLoginUser().getSourceType())
|
|
|
- && SourceType.FACTORY.getCode().equals(orderPurchaseGoods.getParentSourceType())
|
|
|
- && SourceType.HQ_FACTORY.getCode().equals(String.valueOf(orderPurchaseGoods.getParentOrgId()))) {
|
|
|
- // 复制一份 处理库存
|
|
|
- OrderPurchaseGoods copyPurchase = new OrderPurchaseGoods();
|
|
|
- BeanUtils.copyProperties(orderPurchaseGoods, copyPurchase);
|
|
|
- copyPurchase.setParentSourceType(SourceType.MANAGER.getCode());
|
|
|
- copyPurchase.setParentOrgId(null);
|
|
|
- // 组装 扣总部库存VOList
|
|
|
- goodsSkuStoreList = goodsSkuStoreService.buildGoodsSkuStockVOByPurchase2MinusStock(orderPurchaseGoodsSkus, copyPurchase);
|
|
|
- // 扣订单上级parent库存
|
|
|
- goodsSkuStoreService.minusGoodsSkuStockByOrder(goodsSkuStoreList);
|
|
|
- // 库存记录
|
|
|
- this.buildStockRecord(copyPurchase, orderPurchaseGoodsSkus, Boolean.FALSE, Boolean.FALSE);
|
|
|
- } else {
|
|
|
- //正常上下级出货
|
|
|
- // 组装 扣订单上级parent库存VOList
|
|
|
- goodsSkuStoreList = goodsSkuStoreService.buildGoodsSkuStockVOByPurchase2MinusStock(orderPurchaseGoodsSkus, orderPurchaseGoods);
|
|
|
- // 扣订单上级parent库存
|
|
|
- goodsSkuStoreService.minusGoodsSkuStockByOrder(goodsSkuStoreList);
|
|
|
- // 库存记录
|
|
|
- this.buildStockRecord(orderPurchaseGoods, orderPurchaseGoodsSkus, Boolean.FALSE, Boolean.FALSE);
|
|
|
- }
|
|
|
+ //扣减总部库存
|
|
|
+ goodsSkuService.minusGoodsSkuStockByPurchase(orderPurchaseGoodsSkus);
|
|
|
+ // 库存记录
|
|
|
+ this.buildStockRecord(orderPurchaseGoods, orderPurchaseGoodsSkus, Boolean.FALSE, Boolean.FALSE);
|
|
|
// 自己配送
|
|
|
if (DeliveryWayType.SELF_SEND.getCode().equals(deliveryWay)) {
|
|
|
orderPurchaseGoods.setDeliveryWay(DeliveryWayType.SELF_SEND.getCode());
|
|
@@ -455,6 +427,7 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public int confirmReceiveGoodsByOrderGoods(Long orderId) {
|
|
|
OrderPurchaseGoods orderPurchaseGoods = baseMapper.selectById(orderId);
|
|
|
if (orderPurchaseGoods == null) {
|
|
@@ -501,6 +474,7 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public int insertOrderPurchaseGoods(OrderPurchaseGoodsAddDTO orderPurchaseGoodsAddDTO) {
|
|
|
// 保存进货订单
|
|
|
OrderPurchaseGoods orderPurchaseGoods = this.buildOrderPurchaseGoodsInfo(orderPurchaseGoodsAddDTO);
|
|
@@ -539,6 +513,10 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
* @return
|
|
|
*/
|
|
|
private OrderPurchaseGoods buildOrderPurchaseGoodsInfo(OrderPurchaseGoodsAddDTO orderPurchaseGoodsAddDTO) {
|
|
|
+ List<OrderPurchaseGoodsVO> purchaseGoodsVOList = orderPurchaseGoodsAddDTO.getPurchaseGoodsVOList();
|
|
|
+ if (CollUtil.isEmpty(purchaseGoodsVOList)) {
|
|
|
+ throw new GlobalException("操作失败,商品信息为空");
|
|
|
+ }
|
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
|
// 保存订单
|
|
|
OrderPurchaseGoods orderPurchaseGoods = new OrderPurchaseGoods();
|
|
@@ -547,10 +525,6 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
if (!SourceType.MANAGER.getCode().equals(user.getUserType())) {
|
|
|
orderPurchaseGoods.setOrderStatus(purchaseGoodsStatusType.CONFIRM_PAY.getCode());
|
|
|
orderPurchaseGoods.setOrgId(SourceType.STORE.getCode().equals(user.getUserType()) ? user.getStoreId() : user.getFactoryId());
|
|
|
- orderPurchaseGoods.setParentSourceType(SourceType.FACTORY.getCode().equals(user.getUserType()) ? SourceType.MANAGER.getCode() : SourceType.FACTORY.getCode());
|
|
|
- if (SourceType.STORE.getCode().equals(user.getUserType())) {
|
|
|
- orderPurchaseGoods.setParentOrgId(sysStoreService.selectSysStoreById(user.getStoreId()).getFactoryId());
|
|
|
- }
|
|
|
} else {
|
|
|
orderPurchaseGoods.setOrderStatus(purchaseGoodsStatusType.CONFIRM_RECEIVE.getCode());
|
|
|
orderPurchaseGoods.setSendTime(DateUtils.getNowDate());
|
|
@@ -568,22 +542,9 @@ public class OrderPurchaseGoodsServiceImpl extends ServiceImpl<OrderPurchaseGood
|
|
|
orderPurchaseGoods.setCreateById(user.getUserId());
|
|
|
// 生成订单编号
|
|
|
orderPurchaseGoods.setOrderNo(orderNoUtils.getPurchaseOrderNo());
|
|
|
- // 材料进货,设置是否抵扣金额
|
|
|
- if (GoodsType.MATERIAL.getCode().equals(orderPurchaseGoodsAddDTO.getGoodsType()) && orderPurchaseGoodsAddDTO.getIsUserBalance()) {
|
|
|
- orderPurchaseGoods.setIsUseBalance(SysBoolType.YES.getCode());
|
|
|
-// this.handleSetBalanceDeductAmount(orderPurchaseGoods);
|
|
|
- // 保存记录
|
|
|
-// SettlementBalanceRecord settlementBalanceRecord = SettlementBalanceRecord.buildConsumeBalanceRecordByPurchaseOrder(orderPurchaseGoods);
|
|
|
-// settlementBalanceRecordService.save(settlementBalanceRecord);
|
|
|
- } else {
|
|
|
- orderPurchaseGoods.setIsUseBalance(SysBoolType.NO.getCode());
|
|
|
- }
|
|
|
+ orderPurchaseGoods.setIsUseBalance(SysBoolType.NO.getCode());
|
|
|
this.save(orderPurchaseGoods);
|
|
|
|
|
|
- List<OrderPurchaseGoodsVO> purchaseGoodsVOList = orderPurchaseGoodsAddDTO.getPurchaseGoodsVOList();
|
|
|
- if (CollUtil.isEmpty(purchaseGoodsVOList)) {
|
|
|
- throw new GlobalException("操作失败,商品信息为空");
|
|
|
- }
|
|
|
// 无法批量插入
|
|
|
for (OrderPurchaseGoodsVO orderPurchaseGoodsVO : purchaseGoodsVOList) {
|
|
|
OrderPurchaseGoodsSku orderPurchaseGoodsSku = new OrderPurchaseGoodsSku();
|