|
@@ -14,6 +14,7 @@ import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.PageUtils;
|
|
|
import com.sd.business.entity.excel.enums.ExcelTypeEnum;
|
|
|
+import com.sd.business.entity.inventory.po.InventoryFinishedOrder;
|
|
|
import com.sd.business.entity.inventory.po.InventoryFinishedOrderDetail;
|
|
|
import com.sd.business.entity.order.enums.OrderClassifyEnum;
|
|
|
import com.sd.business.entity.order.po.OrderInfo;
|
|
@@ -28,6 +29,8 @@ import com.sd.business.entity.statement.vo.*;
|
|
|
import com.sd.business.service.department.DepartmentService;
|
|
|
import com.sd.business.service.excel.ExcelGenerateLogService;
|
|
|
import com.sd.business.service.inventory.InventoryFinishedOrderDetailService;
|
|
|
+import com.sd.business.service.inventory.InventoryFinishedOrderService;
|
|
|
+import com.sd.business.service.inventory.InventoryFinishedService;
|
|
|
import com.sd.business.service.order.OrderService;
|
|
|
import com.sd.business.service.order.OrderSkuProductionCostService;
|
|
|
import com.sd.business.service.order.OrderSkuService;
|
|
@@ -93,6 +96,12 @@ public class StatementOfAccountMergeServiceImpl implements StatementOfAccountMer
|
|
|
private InventoryFinishedOrderDetailService inventoryFinishedOrderDetailService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private InventoryFinishedService inventoryFinishedService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private InventoryFinishedOrderService inventoryFinishedOrderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private OutboundOrderService outboundOrderService;
|
|
|
|
|
|
@Override
|
|
@@ -528,6 +537,34 @@ public class StatementOfAccountMergeServiceImpl implements StatementOfAccountMer
|
|
|
ExcelUtil.export(response, "货物交接单", "货物交接单明细", deliveryOfGoodsVOList, DeliveryOfGoodsVO.class);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Long> getNotSalesOutOfWarehouseOrder(GetDocumentDto dto) {
|
|
|
+ List<OrderInfo> orderList = orderService.list(q -> q.in(OrderInfo::getStatementOfAccountId, getIdList(dto))
|
|
|
+ .eq(OrderInfo::getClassify, OrderClassifyEnum.NO_REASON_ORDER.getKey()));
|
|
|
+ if (orderList.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ List<Long> orderIds = orderList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
+ return inventoryFinishedOrderService.getNotSalesOutOfWarehouseOrderByIds(orderIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void salesOutOfWarehouseByOrderIds (List<Long> idList) {
|
|
|
+ Assert.notEmpty(idList, "订单id不能为空");
|
|
|
+ // 查询在成品库的订单
|
|
|
+ List<InventoryFinishedOrder> list = inventoryFinishedOrderService.list(q -> q
|
|
|
+ .in(InventoryFinishedOrder::getOrderInfoId, idList)
|
|
|
+ .eq(InventoryFinishedOrder::getStatus, StatusConstant.YES));
|
|
|
+ List<Long> orderIds = list.stream().map(InventoryFinishedOrder::getOrderInfoId).collect(Collectors.toList());
|
|
|
+ // 筛选出不在库订单
|
|
|
+ idList.removeAll(orderIds);
|
|
|
+ if (!idList.isEmpty()) {
|
|
|
+ List<OrderInfo> orderInfoList = orderService.listByIds(idList);
|
|
|
+ String orderCodes = orderInfoList.stream().map(OrderInfo::getWlnCode).collect(Collectors.joining(","));
|
|
|
+ throw new ServiceException("订单:" + orderCodes + "未在成品库中");
|
|
|
+ }
|
|
|
+ inventoryFinishedService.saleOutOfWarehouse(orderIds);
|
|
|
+ }
|
|
|
|
|
|
private List<Long> getIdList(GetDocumentDto dto) {
|
|
|
|