| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO; |
| | | 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.dal.dataobject.md.workstation.MesMdWorkstationDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService; |
| | | import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi; |
| | | import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.productissue.MesWmProductIssueService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | |
| | | @Resource |
| | | private MesProWorkOrderService workOrderService; |
| | | @Resource |
| | | private MesMdClientService clientService; |
| | | private MesProTaskService taskService; |
| | | @Resource |
| | | private CrmCustomerApi customerApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建领料出库单") |
| | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "获得领料出库单") |
| | | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<MesWmProductIssueRespVO> getProductIssue(@RequestParam("id") Long id) { |
| | | MesWmProductIssueDO issue = issueService.getProductIssue(id); |
| | | if (issue == null) { |
| | |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获得领料出库单分页") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<PageResult<MesWmProductIssueRespVO>> getProductIssuePage( |
| | | @Valid MesWmProductIssuePageReqVO pageReqVO) { |
| | | PageResult<MesWmProductIssueDO> pageResult = issueService.getProductIssuePage(pageReqVO); |
| | |
| | | @GetMapping("/check-quantity") |
| | | @Operation(summary = "校验领料出库单数量", description = "校验每行明细数量之和是否等于行领料数量") |
| | | @Parameter(name = "id", description = "编号", required = true) |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<Boolean> checkProductIssueQuantity(@RequestParam("id") Long id) { |
| | | return success(issueService.checkProductIssueQuantity(id)); |
| | | } |
| | |
| | | convertSet(list, MesWmProductIssueDO::getWorkstationId)); |
| | | Map<Long, MesProWorkOrderDO> workOrderMap = workOrderService.getWorkOrderMap( |
| | | convertSet(list, MesWmProductIssueDO::getWorkOrderId)); |
| | | Map<Long, MesMdClientDO> clientMap = clientService.getClientMap( |
| | | Map<Long, MesProTaskDO> taskMap = taskService.getTaskMap( |
| | | convertSet(list, MesWmProductIssueDO::getTaskId)); |
| | | Map<Long, CrmCustomerRespDTO> clientMap = customerApi.getCustomerMap( |
| | | convertSet(workOrderMap.values(), MesProWorkOrderDO::getClientId)); |
| | | // 2. 构建结果 |
| | | return BeanUtils.toBean(list, MesWmProductIssueRespVO.class, vo -> { |
| | | MapUtils.findAndThen(workstationMap, vo.getWorkstationId(), |
| | | workstation -> vo.setWorkstationName(workstation.getName())); |
| | | MapUtils.findAndThen(taskMap, vo.getTaskId(), task -> |
| | | vo.setTaskCode(task.getCode()).setTaskName(task.getName())); |
| | | MapUtils.findAndThen(workOrderMap, vo.getWorkOrderId(), workOrder -> { |
| | | vo.setWorkOrderCode(workOrder.getCode()); |
| | | MapUtils.findAndThen(clientMap, workOrder.getClientId(), client -> |
| | | vo.setClientCode(client.getCode()).setClientName(client.getName())); |
| | | vo.setClientName(client.getName())); |
| | | }); |
| | | }); |
| | | } |