skyouc
2 天以前 aecc30be4f72119829bf7f607aa6031e15fc3c0c
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -13,8 +13,10 @@
import com.vincent.rsf.server.manager.service.impl.TransferOrderServiceImpl;
import com.vincent.rsf.server.manager.utils.LocManageUtil;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.Config;
import com.vincent.rsf.server.system.service.ConfigService;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import com.vincent.rsf.server.system.utils.SystemAuthUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -92,6 +94,7 @@
     * @version 1.0
     */
    @Scheduled(cron = "0/5 * * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void complateOutStock() throws Exception {
        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
                .eq(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id)
@@ -118,7 +121,7 @@
     * @version 1.0
     */
    @Transactional(rollbackFor = Exception.class)
    public void genInStock(List<TaskItem> taskItems) {
    public void genInStock(List<TaskItem> taskItems) throws Exception {
        Set<Long> orderIds = taskItems.stream().map(TaskItem::getSourceId).collect(Collectors.toSet());
        List<WkOrder> wkOrders = outStockService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, orderIds));
        wkOrders.forEach(wkOrder -> {
@@ -126,10 +129,21 @@
            if (!orderItems.isEmpty()) {
                WkOrder order = new WkOrder();
                BeanUtils.copyProperties(wkOrder, order);
                String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, order);
                if (StringUtils.isNotBlank(ruleCode)) {
                    throw new CoolException("入库单号生成失败!!");
                }
                order.setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)
                        .setId(null)
                        .setType(OrderType.ORDER_IN.type)
                        .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val);
                        .setCode(ruleCode)
                        .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)
                        .setType(OrderType.ORDER_IN.type);
//                Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.DIRECT_WAIT_PAKIN));
//                if (!Boolean.parseBoolean(config.getVal())) {
//                    order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val);
//                } else {
//                    order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val);
//                }
                if (!asnOrderService.save(order)) {
                    throw new CoolException("入库单生成失败!!");
                }
@@ -140,50 +154,60 @@
                       throw new CoolException("入库单明细保存失败!!");
                   }
                });
                Transfer transfer = transferService.getById(order.getPoId());
                TransferOrder transferOrder = new TransferOrder();
                transferOrder.setOrderId(order.getId())
                        .setType(OrderType.ORDER_IN.type)
                        .setTransferId(transfer.getId());
                if (!transferOrderService.save(transferOrder)) {
                    throw new CoolException("关联单保存失败!!");
                }
            }
        });
        Set<Long> taskIds = taskItems.stream().map(TaskItem::getTaskId).collect(Collectors.toSet());
        List<Task> tasks = taskService.listByIds(taskIds);
        if (!tasks.isEmpty()) {
            tasks.forEach(task -> {
                TaskItem one = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()), false);
                if (Objects.isNull(one)) {
                    throw new CoolException("数据错误:任务明细丢失!!");
                }
                TransferOrder order = transferOrderService.getOne(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getOrderId, one.getOrderId()));
                if (Objects.isNull(order)) {
                    throw new CoolException("数据错误!!");
                }
                Transfer transfer = transferService.getById(order.getTransferId());
                Task task1 = new Task();
                BeanUtils.copyProperties(task, task1);
                String targetLoc = LocManageUtil.getTargetLoc(transfer.getTarAreaId());
                if (Objects.isNull(targetLoc)) {
                    throw new CoolException("未能找到有效库位");
                }
                task.setTaskType(TaskType.TASK_TYPE_IN.type)
                        .setTargLoc(targetLoc)
                        .setTargSite(null)
                        .setId(null)
                        .setTaskStatus(TaskStsType.GENERATE_IN.id);
                if (!taskService.save(task1)) {
                    throw new CoolException("任务生成失败!!");
                }
                List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
                if (items.isEmpty()) {
                    throw new CoolException("数据错误!!");
                }
                items.forEach(taskItem -> {
                    TaskItem item = new TaskItem();
                    BeanUtils.copyProperties(taskItem, item);
                    item.setTaskId(task1.getId()).setId(null);
                    if (!taskItemService.save(item)) {
                        throw new CoolException("入库任务明细保存失败!!");
                    }
                });
            });
        }
//        Set<Long> taskIds = taskItems.stream().map(TaskItem::getTaskId).collect(Collectors.toSet());
//        List<Task> tasks = taskService.listByIds(taskIds);
//        if (!tasks.isEmpty()) {
//            tasks.forEach(task -> {
//                TaskItem one = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()), false);
//                if (Objects.isNull(one)) {
//                    throw new CoolException("数据错误:任务明细丢失!!");
//                }
//                TransferOrder order = transferOrderService.getOne(new LambdaQueryWrapper<TransferOrder>().eq(TransferOrder::getOrderId, one.getOrderId()));
//                if (Objects.isNull(order)) {
//                    throw new CoolException("数据错误!!");
//                }
//                Transfer transfer = transferService.getById(order.getTransferId());
//                Task task1 = new Task();
//                BeanUtils.copyProperties(task, task1);
//                String targetLoc = LocManageUtil.getTargetLoc(transfer.getTarAreaId());
//                if (Objects.isNull(targetLoc)) {
//                    throw new CoolException("未能找到有效库位");
//                }
//                task.setTaskType(TaskType.TASK_TYPE_IN.type)
//                        .setTargLoc(targetLoc)
//                        .setTargSite(null)
//                        .setId(null)
//                        .setTaskStatus(TaskStsType.GENERATE_IN.id);
//                if (!taskService.save(task1)) {
//                    throw new CoolException("任务生成失败!!");
//                }
//                List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
//                if (items.isEmpty()) {
//                    throw new CoolException("数据错误!!");
//                }
//                items.forEach(taskItem -> {
//                    TaskItem item = new TaskItem();
//                    BeanUtils.copyProperties(taskItem, item);
//                    item.setTaskId(task1.getId()).setId(null);
//                    if (!taskItemService.save(item)) {
//                        throw new CoolException("入库任务明细保存失败!!");
//                    }
//                });
//            });
//        }
    }
    /**