|
@@ -46,10 +46,12 @@ import com.yc.ship.module.otc.api.agency.dto.AgencyUserLoginInfoRespDTO;
|
|
|
import com.yc.ship.module.otc.api.store.StoreApi;
|
|
import com.yc.ship.module.otc.api.store.StoreApi;
|
|
|
import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
|
|
import com.yc.ship.module.otc.api.store.dto.StoreInfoRespDTO;
|
|
|
import com.yc.ship.module.product.api.ProductApi;
|
|
import com.yc.ship.module.product.api.ProductApi;
|
|
|
|
|
+import com.yc.ship.module.product.api.VoyageApi;
|
|
|
import com.yc.ship.module.product.api.dto.*;
|
|
import com.yc.ship.module.product.api.dto.*;
|
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
|
|
import com.yc.ship.module.product.controller.admin.voyage.vo.VoyageRespVO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.priceroommodeltype.PriceRoomModelTypeDO;
|
|
import com.yc.ship.module.product.dal.dataobject.priceroommodeltype.PriceRoomModelTypeDO;
|
|
|
import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
|
|
|
+import com.yc.ship.module.product.enums.DistributorOrStoreEnum;
|
|
|
import com.yc.ship.module.product.service.priceroommodeltype.PriceRoomModelTypeService;
|
|
import com.yc.ship.module.product.service.priceroommodeltype.PriceRoomModelTypeService;
|
|
|
import com.yc.ship.module.product.service.voyage.VoyageService;
|
|
import com.yc.ship.module.product.service.voyage.VoyageService;
|
|
|
import com.yc.ship.module.resource.api.route.RouteApi;
|
|
import com.yc.ship.module.resource.api.route.RouteApi;
|
|
@@ -225,6 +227,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private PriceRoomModelTypeService priceRoomModelTypeService;
|
|
private PriceRoomModelTypeService priceRoomModelTypeService;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private VoyageApi voyageApi;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
|
|
public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
|
|
|
|
|
|
|
@@ -493,6 +498,39 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderFloorMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
tradeOrderFloorMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
|
tradeOrderTotalMapper.updateDeleted(orderId, 1);
|
|
tradeOrderTotalMapper.updateDeleted(orderId, 1);
|
|
|
tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
|
|
|
|
|
+ reqDTO.setOldOrderId(tradeOrderDO.getId());
|
|
|
|
|
+ reqDTO.setOrderId(lastTradeOrder.getId());
|
|
|
|
|
+ reqDTO.setOrderStatus(lastTradeOrder.getOrderStatus());
|
|
|
|
|
+ //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
|
|
|
|
|
+ reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
|
|
|
|
|
+ reqDTO.setVoyageId(lastTradeOrder.getVoyageId());
|
|
|
|
|
+ reqDTO.setDistributorId(Long.valueOf(lastTradeOrder.getSourceId()));
|
|
|
|
|
+ reqDTO.setStoreId(lastTradeOrder.getStoreId());
|
|
|
|
|
+ TradeOrderTotalDO tradeOrderTotal = tradeOrderTotalMapper.selectOne(new LambdaQueryWrapper<TradeOrderTotalDO>().eq(TradeOrderTotalDO::getOldOrderId, lastTradeOrder.getId()));
|
|
|
|
|
+ reqDTO.setUseRoomNum(BigDecimal.valueOf(tradeOrderTotal.getUseRoomTotalNum()));
|
|
|
|
|
+
|
|
|
|
|
+ List<TradeVisitorDO> tradeDetailDOList = tradeVisitorMapper.selectShipVisitor(lastTradeOrder.getId());
|
|
|
|
|
+ List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
|
|
|
+ Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
|
|
|
+ collect.keySet().forEach(roomId -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(roomId)) {
|
|
|
|
|
+ OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
|
|
|
+ orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
|
|
|
+ orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
|
|
|
+ orderRoomUseDTOList.add(orderRoomUseDTO);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
|
|
|
+ Integer orderStatus = reqDTO.getOrderStatus();
|
|
|
|
|
+ if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
|
|
+ voyageApi.preReduceStock(reqDTO);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ voyageApi.reduceStock(reqDTO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
Map<String, Object> extMap = new HashMap<>();
|
|
Map<String, Object> extMap = new HashMap<>();
|
|
|
extMap.put("result", "审核不通过");
|
|
extMap.put("result", "审核不通过");
|
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|
|
@@ -534,6 +572,38 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
tradeOrderTotalMapper.updateDeleted(orderId, 1);
|
|
tradeOrderTotalMapper.updateDeleted(orderId, 1);
|
|
|
tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
tradeOrderTotalMapper.updateDeleted(lastTradeOrder.getId(), 0);
|
|
|
|
|
|
|
|
|
|
+ ReduceStockReqDTO reqDTO = new ReduceStockReqDTO();
|
|
|
|
|
+ reqDTO.setOldOrderId(tradeOrderDO.getId());
|
|
|
|
|
+ reqDTO.setOrderId(lastTradeOrder.getId());
|
|
|
|
|
+ reqDTO.setOrderStatus(lastTradeOrder.getOrderStatus());
|
|
|
|
|
+ //TODO: 当前默认为分销商,扣分销商库存,门店的后续再完善
|
|
|
|
|
+ reqDTO.setType(DistributorOrStoreEnum.DISTRIBUTOR.getValue());
|
|
|
|
|
+ reqDTO.setVoyageId(lastTradeOrder.getVoyageId());
|
|
|
|
|
+ reqDTO.setDistributorId(Long.valueOf(lastTradeOrder.getSourceId()));
|
|
|
|
|
+ reqDTO.setStoreId(lastTradeOrder.getStoreId());
|
|
|
|
|
+ TradeOrderTotalDO tradeOrderTotal = tradeOrderTotalMapper.selectOne(new LambdaQueryWrapper<TradeOrderTotalDO>().eq(TradeOrderTotalDO::getOldOrderId, lastTradeOrder.getId()));
|
|
|
|
|
+ reqDTO.setUseRoomNum(BigDecimal.valueOf(tradeOrderTotal.getUseRoomTotalNum()));
|
|
|
|
|
+
|
|
|
|
|
+ List<TradeVisitorDO> tradeDetailDOList = tradeVisitorMapper.selectShipVisitor(lastTradeOrder.getId());
|
|
|
|
|
+ List<OrderRoomUseDTO> orderRoomUseDTOList = new ArrayList<>();
|
|
|
|
|
+ Map<String, Long> collect = tradeDetailDOList.stream().filter(tradeVisitorDO -> tradeVisitorDO.getRoomId() != null).collect(Collectors.groupingBy(TradeVisitorDO::getRoomId, Collectors.counting()));
|
|
|
|
|
+ collect.keySet().forEach(roomId -> {
|
|
|
|
|
+ if (StringUtils.isNotBlank(roomId)) {
|
|
|
|
|
+ OrderRoomUseDTO orderRoomUseDTO = new OrderRoomUseDTO();
|
|
|
|
|
+ orderRoomUseDTO.setRoomId(Long.valueOf(roomId));
|
|
|
|
|
+ orderRoomUseDTO.setNum(BigDecimal.valueOf(collect.get(roomId)).divide(new BigDecimal(2)));
|
|
|
|
|
+ orderRoomUseDTOList.add(orderRoomUseDTO);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ reqDTO.setOrderRoomList(orderRoomUseDTOList);
|
|
|
|
|
+ Integer orderStatus = reqDTO.getOrderStatus();
|
|
|
|
|
+ if(Objects.equals(orderStatus, TradeOrderStatusEnum.YD.getStatus())) {
|
|
|
|
|
+ voyageApi.preReduceStock(reqDTO);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ voyageApi.reduceStock(reqDTO);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
Map<String, Object> extMap = new HashMap<>();
|
|
Map<String, Object> extMap = new HashMap<>();
|
|
|
extMap.put("result", "审核撤回");
|
|
extMap.put("result", "审核撤回");
|
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|