skyouc
2025-11-27 505fc31385d5a40a1240c4677f2493513d95085e
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -24,6 +24,7 @@
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.service.impl.LocItemWorkingServiceImpl;
import com.vincent.rsf.server.manager.service.impl.LocServiceImpl;
import com.vincent.rsf.server.manager.service.impl.WaveOrderRelaServiceImpl;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
@@ -99,6 +100,9 @@
    private ReportMsgService reportMsgService;
    @Autowired
    private WaveOrderRelaService waveOrderRelaService;
    @Autowired
    private LocItemWorkingService locItemWorkingService;
    /**
     * @param
@@ -612,19 +616,30 @@
                if (wkOrders.isEmpty()) {
                    throw new CoolException("单据不存在!!");
                }
                Config allowChang = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.ALLOW_OVER_CHANGE));
                wkOrders.forEach(order -> {
                    //检查单据是否完成
                    if (order.getAnfme().compareTo(order.getQty()) == 0) {
                        order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
//                        if (order.getType().equals(OrderType.ORDER_IN)) {
//                            order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
//                        } else {
//                            order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
//                        }
                        if (!asnOrderService.updateById(order)) {
                            throw new CoolException("出库单更新状态失败");
                    //判断是否允许超收,不允许超收添加拒收判断
                    if (!Objects.isNull(allowChang)) {
                        if (!Boolean.parseBoolean(allowChang.getVal())) {
                            if (order.getAnfme().compareTo(order.getQty()) == 0) {
                                order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
                                if (!asnOrderService.updateById(order)) {
                                    throw new CoolException("出库单更新状态失败");
                                }
                            }
                        } else {
                            if (order.getAnfme().compareTo(order.getQty()) <= 0) {
                                order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
                                if (!asnOrderService.updateById(order)) {
                                    throw new CoolException("出库单更新状态失败");
                                }
                            }
                        }
                    }
                    //检查单据是否完成
                });
                //出库单上报RCS修改库位状态
                try {
@@ -645,6 +660,9 @@
                itemLogs.add(itemLog);
            }
            locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getTaskId, task.getId()));
            if (!taskService.removeById(task.getId())) {
                throw new CoolException("原始任务删除失败!!");
            }
@@ -657,6 +675,8 @@
                    throw new CoolException("原始任务明细删除失败!!");
                }
            }
        });
    }