| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.arrivalnotice.MesWmArrivalNoticeDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService; |
| | | import cn.iocoder.yudao.module.mes.service.wm.arrivalnotice.MesWmArrivalNoticeService; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi; |
| | | import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | private MesWmArrivalNoticeService arrivalNoticeService; |
| | | @Resource |
| | | private MesMdVendorService vendorService; |
| | | @Resource |
| | | private ErpPurchaseOrderApi purchaseOrderApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建到货通知单") |
| | |
| | | return success(true); |
| | | } |
| | | |
| | | @PostMapping("/generate-from-purchase-order") |
| | | @Operation(summary = "根据采购订单生成到货通知单") |
| | | @Parameter(name = "purchaseOrderId", description = "采购订单编号", required = true) |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-arrival-notice:create')") |
| | | public CommonResult<Long> generateFromPurchaseOrder(@RequestParam("purchaseOrderId") Long purchaseOrderId) { |
| | | return success(arrivalNoticeService.generateArrivalNoticeFromPurchaseOrder(purchaseOrderId)); |
| | | } |
| | | |
| | | // ==================== 拼接 VO ==================== |
| | | |
| | | private List<MesWmArrivalNoticeRespVO> buildRespVOList(List<MesWmArrivalNoticeDO> list) { |
| | |
| | | // 1. 获得关联数据 |
| | | Map<Long, MesMdVendorDO> vendorMap = vendorService.getVendorMap( |
| | | convertSet(list, MesWmArrivalNoticeDO::getVendorId)); |
| | | // 2. 构建结果 |
| | | // 2. 获得采购订单信息 |
| | | List<Long> purchaseOrderIds = list.stream() |
| | | .map(MesWmArrivalNoticeDO::getPurchaseOrderId) |
| | | .filter(id -> id != null) |
| | | .distinct() |
| | | .toList(); |
| | | Map<Long, ErpPurchaseOrderRespDTO> purchaseOrderMap = purchaseOrderApi.getPurchaseOrderList(purchaseOrderIds) |
| | | .getCheckedData().stream() |
| | | .collect(java.util.stream.Collectors.toMap(ErpPurchaseOrderRespDTO::getId, v -> v, (a, b) -> a)); |
| | | // 3. 构建结果 |
| | | return BeanUtils.toBean(list, MesWmArrivalNoticeRespVO.class, vo -> { |
| | | MapUtils.findAndThen(vendorMap, vo.getVendorId(), vendor -> |
| | | vo.setVendorCode(vendor.getCode()).setVendorName(vendor.getName())); |
| | | MapUtils.findAndThen(purchaseOrderMap, vo.getPurchaseOrderId(), purchaseOrder -> |
| | | vo.setPurchaseOrderNo(purchaseOrder.getNo())); |
| | | }); |
| | | } |
| | | |