| | |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmSalesNoticeStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockReserveBizTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum; |
| | | import cn.iocoder.yudao.module.mes.framework.qrcode.MesTraceCodeUtils; |
| | | import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; |
| | | import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO; |
| | | import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; |
| | |
| | | /** 只读识别,并返回每袋的可选状态,不创建库存批次或拣货记录。 */ |
| | | @Override |
| | | public MesWmProductSalesScanRespVO previewScan(String code, String scanType, Long salesId) { |
| | | PickingScope scope = pickingScope(code, scanType, false); |
| | | PickingScope scope = pickingScope(MesTraceCodeUtils.extractCode(code), scanType, false); |
| | | if (salesId != null) { |
| | | MesWmProductSalesDO sales = validateProductSalesExists(salesId); |
| | | if (!Integer.valueOf(2).equals(sales.getStatus())) throw exception(WM_PRODUCT_SALES_CANNOT_PICK); |
| | |
| | | MesWmProductSalesDO sales = productSalesMapper.selectByIdForUpdate(reqVO.getSalesId()); |
| | | if (sales == null) throw exception(WM_PRODUCT_SALES_NOT_EXISTS); |
| | | if (!Integer.valueOf(2).equals(sales.getStatus())) throw exception(WM_PRODUCT_SALES_CANNOT_PICK); |
| | | PickingScope scope = pickingScope(reqVO.getScanContent(), reqVO.getScanType(), true); |
| | | PickingScope scope = pickingScope(MesTraceCodeUtils.extractCode(reqVO.getScanContent()), reqVO.getScanType(), true); |
| | | List<Long> ids = reqVO.getBagIds(); |
| | | if (ids == null && "BAG".equals(scope.type())) ids = List.of(scope.id()); |
| | | if (ids == null || ids.isEmpty() || new HashSet<>(ids).size() != ids.size()) |