cl
6 天以前 c9e2d5efbb2ef8c67e71fd763a3935ac6a6a5870
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -8,6 +8,7 @@
import com.vincent.rsf.server.api.service.WcsService;
import com.vincent.rsf.server.api.utils.LocUtils;
import com.vincent.rsf.server.common.constant.Constants;
import com.vincent.rsf.server.common.utils.QuantityUtils;
import com.vincent.rsf.server.manager.controller.params.CheckLocQueryParams;
import com.vincent.rsf.server.manager.controller.params.LocToTaskParams;
import com.vincent.rsf.server.manager.entity.*;
@@ -58,7 +59,8 @@
    private BasStationService basStationService;
    @Autowired
    private MatnrService matnrService;
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    /** 入库/出库保存前:若规格或型号为空则从物料带出 */
    private void fillSpecModelFromMatnr(LocItem item) {
        if (item == null || item.getMatnrId() == null) {
@@ -370,7 +372,29 @@
                    taskItem.setWkType(order.getWkType())
                            .setSourceCode(order.getCode())
                            .setSourceId(order.getId())
                            .setOrderId(order.getId())
                            .setOrderItemId(item.getOrderItemId());
                    String poOrCode = StringUtils.isNotBlank(order.getPoCode()) ? order.getPoCode() : order.getCode();
                    if (StringUtils.isBlank(taskItem.getPlatOrderCode()) && StringUtils.isNotBlank(poOrCode)) {
                        taskItem.setPlatOrderCode(poOrCode);
                    }
                    if (item.getOrderItemId() != null) {
                        WkOrderItem oi = asnOrderItemService.getById(item.getOrderItemId());
                        if (oi != null) {
                            if (StringUtils.isBlank(taskItem.getPlatItemId()) && StringUtils.isNotBlank(oi.getPlatItemId())) {
                                taskItem.setPlatItemId(oi.getPlatItemId());
                            }
                            if (StringUtils.isBlank(taskItem.getPlatWorkCode()) && StringUtils.isNotBlank(oi.getPlatWorkCode())) {
                                taskItem.setPlatWorkCode(oi.getPlatWorkCode());
                            }
                            if (StringUtils.isBlank(taskItem.getPlatOrderCode())) {
                                String p = StringUtils.isNotBlank(oi.getPlatOrderCode()) ? oi.getPlatOrderCode() : poOrCode;
                                if (StringUtils.isNotBlank(p)) {
                                    taskItem.setPlatOrderCode(p);
                                }
                            }
                        }
                    }
                } else if (map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
                    taskItem.setSourceId(wave.getId())
                            .setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)
@@ -401,6 +425,13 @@
            if (!taskItemService.saveBatch(taskItems)) {
                throw new CoolException("任务明细生成失败!!");
            }
            List<TaskItem> persistedItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
            for (TaskItem ti : persistedItems) {
                if (ti.getAnfme() == null) {
                    throw new CoolException("任务明细数量异常");
                }
                taskService.enqueueCloudWmsOutNotifyLogEarly(task, ti, QuantityUtils.toScaledBigDecimal(ti.getAnfme()));
            }
        });
    }