|
@@ -16,6 +16,7 @@ import com.sd.business.entity.in.emums.InOutTypeEnum;
|
|
|
import com.sd.business.entity.in.emums.OutDetailTypeEnum;
|
|
|
import com.sd.business.entity.in.po.InOutStorageBom;
|
|
|
import com.sd.business.entity.inventory.po.Inventory;
|
|
|
+import com.sd.business.entity.order.enums.OrderClassifyEnum;
|
|
|
import com.sd.business.entity.order.enums.OrderExceptionTypeEnum;
|
|
|
import com.sd.business.entity.order.enums.OrderStatusEnum;
|
|
|
import com.sd.business.entity.order.po.OrderInfo;
|
|
@@ -30,6 +31,7 @@ import com.sd.business.entity.production.vo.StockPreparationVo;
|
|
|
import com.sd.business.entity.production.vo.UncompletedVo;
|
|
|
import com.sd.business.entity.sku.po.Sku;
|
|
|
import com.sd.business.entity.sku.po.SkuSpec;
|
|
|
+import com.sd.business.entity.statement.dto.StatementOfAccountDto;
|
|
|
import com.sd.business.entity.warehouse.constant.WarehouseConstant;
|
|
|
import com.sd.business.mapper.production.StockPreparationMapper;
|
|
|
import com.sd.business.service.bom.BomClassifyService;
|
|
@@ -45,6 +47,7 @@ import com.sd.business.service.production.ProductionWorkOrderService;
|
|
|
import com.sd.business.service.production.StockPreparationService;
|
|
|
import com.sd.business.service.sku.SkuService;
|
|
|
import com.sd.business.service.sku.SkuSpecService;
|
|
|
+import com.sd.business.service.statement.StatementOfAccountService;
|
|
|
import com.sd.framework.util.Assert;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -99,6 +102,9 @@ public class StockPreparationServiceImpl implements StockPreparationService {
|
|
|
@Autowired
|
|
|
private InventoryService inventoryService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StatementOfAccountService statementOfAccountService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<UncompletedVo> uncompletedList(StockPreparationDto dto) {
|
|
|
|
|
@@ -219,6 +225,29 @@ public class StockPreparationServiceImpl implements StockPreparationService {
|
|
|
productionWorkOrderService.saveBatch(productionWorkOrderList);
|
|
|
}
|
|
|
|
|
|
+ List<OrderInfo> orderInfoList = orderService.list(q -> q.in(BaseIdPo::getId, orderIdList));
|
|
|
+ List<OrderInfo> statementOrderList = new ArrayList<>();
|
|
|
+ for (OrderInfo orderInfo : orderInfoList) {
|
|
|
+ // 订单分类为无理由的订单,直接完成并生成对账单
|
|
|
+ if (ObjectUtil.equals(orderInfo.getClassify(), OrderClassifyEnum.NO_REASON_ORDER.getKey())) {
|
|
|
+ orderService.update(q -> q
|
|
|
+ .eq(BaseIdPo::getId, orderInfo.getId())
|
|
|
+ .set(OrderInfo::getStatus, OrderStatusEnum.COMPLETION_PRODUCTION.getKey()));
|
|
|
+ statementOrderList.add(orderInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 生成对账单
|
|
|
+ if (!statementOrderList.isEmpty()) {
|
|
|
+ Map<Long, List<OrderInfo>> statementMap = statementOrderList.stream().collect(Collectors.groupingBy(OrderInfo::getDepartmentId));
|
|
|
+ for (Long departmentId : statementMap.keySet()) {
|
|
|
+ List<Long> orderIds = statementMap.get(departmentId).stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
+ StatementOfAccountDto statement = new StatementOfAccountDto();
|
|
|
+ statement.setDepartmentId(departmentId);
|
|
|
+ statement.setOrderIdList(orderIds);
|
|
|
+ statementOfAccountService.add(statement);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|