| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderBomDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderProcessDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderBomService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderProcessService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | private MesProProcessService processService; |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesWmWarehouseService warehouseService; |
| | | @Resource |
| | | private MesWmWarehouseLocationService warehouseLocationService; |
| | | @Resource |
| | | private MesWmWarehouseAreaService warehouseAreaService; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建工单工序") |
| | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "获得工单工序") |
| | | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')") |
| | | public CommonResult<MesProWorkOrderProcessRespVO> getWorkOrderProcess(@RequestParam("id") Long id) { |
| | | MesProWorkOrderProcessDO workOrderProcess = workOrderProcessService.getWorkOrderProcess(id); |
| | | if (workOrderProcess == null) { |
| | |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获得工单工序分页") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')") |
| | | public CommonResult<PageResult<MesProWorkOrderProcessRespVO>> getWorkOrderProcessPage(@Valid MesProWorkOrderProcessPageReqVO pageReqVO) { |
| | | PageResult<MesProWorkOrderProcessDO> pageResult = workOrderProcessService.getWorkOrderProcessPage(pageReqVO); |
| | | return success(new PageResult<>(buildWorkOrderProcessRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | |
| | | @GetMapping("/list-by-work-order-id") |
| | | @Operation(summary = "获得工单的工序列表") |
| | | @Parameter(name = "workOrderId", description = "工单编号", required = true) |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')") |
| | | public CommonResult<List<MesProWorkOrderProcessRespVO>> getWorkOrderProcessListByWorkOrderId( |
| | | @RequestParam("workOrderId") Long workOrderId) { |
| | | List<MesProWorkOrderProcessDO> list = workOrderProcessService.getWorkOrderProcessListByWorkOrderId(workOrderId); |
| | |
| | | @GetMapping("/list-by-product-id") |
| | | @Operation(summary = "根据产品获取工艺路线工序列表(用于工单预填)") |
| | | @Parameter(name = "productId", description = "产品编号", required = true) |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-work-order:query')") |
| | | public CommonResult<List<MesProWorkOrderProcessRespVO>> getProcessListByProductId( |
| | | @RequestParam("productId") Long productId) { |
| | | List<MesProWorkOrderProcessDO> list = workOrderProcessService.getProcessListByProductId(productId); |
| | |
| | | } |
| | | Map<Long, MesMdItemDO> itemMap = CollUtil.isNotEmpty(allOutputItemIds) |
| | | ? itemService.getItemMap(allOutputItemIds) : Collections.emptyMap(); |
| | | // 获取报工仓库/库区/库位 |
| | | Set<Long> warehouseIds = convertSet(list, MesProWorkOrderProcessDO::getWarehouseId); |
| | | warehouseIds.removeAll(Collections.singleton(null)); |
| | | Set<Long> locationIds = convertSet(list, MesProWorkOrderProcessDO::getLocationId); |
| | | locationIds.removeAll(Collections.singleton(null)); |
| | | Set<Long> areaIds = convertSet(list, MesProWorkOrderProcessDO::getAreaId); |
| | | areaIds.removeAll(Collections.singleton(null)); |
| | | Map<Long, MesWmWarehouseDO> warehouseMap = CollUtil.isNotEmpty(warehouseIds) |
| | | ? warehouseService.getWarehouseMap(warehouseIds) : Collections.emptyMap(); |
| | | Map<Long, MesWmWarehouseLocationDO> locationMap = CollUtil.isNotEmpty(locationIds) |
| | | ? warehouseLocationService.getWarehouseLocationMap(locationIds) : Collections.emptyMap(); |
| | | Map<Long, MesWmWarehouseAreaDO> areaMap = CollUtil.isNotEmpty(areaIds) |
| | | ? warehouseAreaService.getWarehouseAreaMap(areaIds) : Collections.emptyMap(); |
| | | |
| | | // 2. 查询投料BOM(按工序分组) |
| | | Set<Long> workOrderIds = convertSet(list, MesProWorkOrderProcessDO::getWorkOrderId); |
| | |
| | | MapUtils.findAndThen(processMap, vo.getNextProcessId(), process -> { |
| | | vo.setNextProcessName(process.getName()); |
| | | }); |
| | | // 报工仓库/库区/库位名称 |
| | | MapUtils.findAndThen(warehouseMap, vo.getWarehouseId(), |
| | | warehouse -> vo.setWarehouseName(warehouse.getName())); |
| | | MapUtils.findAndThen(locationMap, vo.getLocationId(), |
| | | location -> vo.setLocationName(location.getName())); |
| | | MapUtils.findAndThen(areaMap, vo.getAreaId(), |
| | | area -> vo.setAreaName(area.getName())); |
| | | // 产出物料(支持多选) |
| | | List<Long> ids = voOutputItemIdsMap.getOrDefault((long) i, Collections.emptyList()); |
| | | if (!ids.isEmpty()) { |