| | |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.common.utils.ExcelUtil; |
| | | import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; |
| | | import com.vincent.rsf.server.manager.controller.params.CheckOrderItemParams; |
| | | import com.vincent.rsf.server.manager.controller.params.CheckOrderParams; |
| | | import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam; |
| | | import com.vincent.rsf.server.manager.controller.params.*; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.entity.excel.CheckOrderTemplate; |
| | | import com.vincent.rsf.server.manager.enums.*; |
| | |
| | | @Override |
| | | public R getSiteNos() { |
| | | List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type); |
| | | List<DeviceSite> sites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>().in(DeviceSite::getType, list).groupBy(DeviceSite::getSite)); |
| | | // 先查全部再按 site 去重,避免 GROUP BY 与 only_full_group_by 冲突 |
| | | List<DeviceSite> all = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>().in(DeviceSite::getType, list)); |
| | | List<DeviceSite> sites = all.stream() |
| | | .collect(Collectors.toMap(DeviceSite::getSite, d -> d, (a, b) -> a)) |
| | | .values().stream() |
| | | .collect(Collectors.toList()); |
| | | return R.ok().add(sites); |
| | | } |
| | | |
| | |
| | | * @version 1.0 |
| | | */ |
| | | @Override |
| | | public R getAllLocByMatnr(List<String> matnrs) { |
| | | public R getAllLocByMatnr(CheckLocQueryParams matnrs) { |
| | | if (Objects.isNull(matnrs.getMatnrCode()) && matnrs.getMatnrCode().isEmpty()) { |
| | | throw new CoolException("参数不能为空!!"); |
| | | } |
| | | List<LocItem> locItems = locItemService.listByMatnr(matnrs); |
| | | if (!locItems.isEmpty()) { |
| | | List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type); |
| | | DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | .in(DeviceSite::getType, list) |
| | | .groupBy(DeviceSite::getSite) |
| | | .last("limit 1")); |
| | | if (Objects.isNull(deviceSite)) { |
| | | throw new CoolException("库口不为空!!"); |
| | |
| | | itemParams.forEach(item -> { |
| | | TaskItem taskItem = new TaskItem(); |
| | | taskItem.setTaskId(task.getId()) |
| | | .setOrderId(checkParam.getOrderId()) |
| | | .setOrderType(OrderType.ORDER_CHECK.type) |
| | | .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type)) |
| | | .setAnfme(item.getAnfme()) |
| | | .setWorkQty(0.0) |
| | | .setBatch(checkParam.getBatch()) |
| | |
| | | .setMatnrCode(checkParam.getMatnrCode()) |
| | | .setPlatOrderCode(checkParam.getPlatOrderCode()) |
| | | .setPlatWorkCode(checkParam.getPlatWorkCode()) |
| | | .setUnit(checkParam.getStockUnit()) |
| | | .setSpec(checkParam.getSpec()) |
| | | .setModel(checkParam.getModel()) |
| | | .setFieldsIndex(checkParam.getFieldsIndex()) |
| | | .setMatnrId(checkParam.getMatnrId()) |
| | | .setCreateBy(loginUserId) |
| | | .setSource(checkParam.getId()) |
| | | .setSourceId(checkParam.getOrderId()) |
| | | .setSourceCode(checkParam.getOrderCode()) |
| | | .setCreateTime(new Date()) |
| | | .setUpdateBy(loginUserId) |
| | | .setUpdateTime(new Date()) |
| | | .setOrderItemId(checkItem.getId()) |
| | | .setOrderItemId(checkParam.getId()) |
| | | .setOrderId(checkParam.getOrderId()) |
| | | .setPlatItemId(checkParam.getPlatItemId()); |
| | | items.add(taskItem); |