|
@@ -6,11 +6,16 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotlockstock.vo.IotLockStockPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialrequisitiondetail.vo.IotMaterialRequisitionDetailPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialrequisitiondetail.vo.IotMaterialRequisitionDetailRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotmaterialrequisitiondetail.vo.IotMaterialRequisitionDetailSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.pms.convert.iotmaterialreq.IotMaterialReqConvert;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotmaterialrequisitiondetail.IotMaterialRequisitionDetailDO;
|
|
|
+import cn.iocoder.yudao.module.pms.service.iotlockstock.IotLockStockService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotmaterialrequisitiondetail.IotMaterialRequisitionDetailService;
|
|
|
+import cn.iocoder.yudao.module.system.api.saporg.SapOrgApi;
|
|
|
+import cn.iocoder.yudao.module.system.api.saporg.dto.SapOrgRespDTO;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
|
import io.swagger.v3.oas.annotations.Parameter;
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
@@ -22,10 +27,14 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
|
|
|
@Tag(name = "管理后台 - PMS 物料领用明细")
|
|
|
@RestController
|
|
@@ -35,6 +44,10 @@ public class IotMaterialRequisitionDetailController {
|
|
|
|
|
|
@Resource
|
|
|
private IotMaterialRequisitionDetailService iotMaterialRequisitionDetailService;
|
|
|
+ @Resource
|
|
|
+ private SapOrgApi sapOrgApi;
|
|
|
+ @Resource
|
|
|
+ private IotLockStockService iotLockStockService;
|
|
|
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建PMS 物料领用明细")
|
|
@@ -77,6 +90,24 @@ public class IotMaterialRequisitionDetailController {
|
|
|
return success(BeanUtils.toBean(pageResult, IotMaterialRequisitionDetailRespVO.class));
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/list")
|
|
|
+ @Operation(summary = "获得PMS 物料领用明细列表")
|
|
|
+ @PreAuthorize("@ss.hasPermission('pms:iot-material-requisition-detail:query')")
|
|
|
+ public CommonResult<List<IotMaterialRequisitionDetailRespVO>> getIotMaterialRequisitionDetailList(@Valid IotMaterialRequisitionDetailPageReqVO pageReqVO) {
|
|
|
+ List<IotMaterialRequisitionDetailDO> list = iotMaterialRequisitionDetailService.getIotMaterialRequisitionDetailList(pageReqVO);
|
|
|
+ // 查询每个行物料的 工厂名称 成本中心名称 当前库存
|
|
|
+ Map<Long, SapOrgRespDTO> factoryMap = sapOrgApi.getSapOrgMap(
|
|
|
+ convertList(list, IotMaterialRequisitionDetailDO::getFactoryId));
|
|
|
+ Map<Long, SapOrgRespDTO> costCenterMap = sapOrgApi.getSapOrgMap(
|
|
|
+ convertList(list, IotMaterialRequisitionDetailDO::getCostCenterId));
|
|
|
+ IotLockStockPageReqVO reqVO = new IotLockStockPageReqVO();
|
|
|
+ reqVO.setCostCenterIds(new HashSet<>(convertList(list, IotMaterialRequisitionDetailDO::getCostCenterId)));
|
|
|
+ reqVO.setMaterialCodes(new HashSet<>(convertList(list, IotMaterialRequisitionDetailDO::getMaterialCode)));
|
|
|
+ Map<String, BigDecimal> stockQuantityPair = iotLockStockService.getIotLockStockList(reqVO);
|
|
|
+ // return success(BeanUtils.toBean(list, IotMaterialRequisitionDetailRespVO.class));
|
|
|
+ return success(IotMaterialReqConvert.INSTANCE.convertList(list, factoryMap, costCenterMap, stockQuantityPair));
|
|
|
+ }
|
|
|
+
|
|
|
@GetMapping("/export-excel")
|
|
|
@Operation(summary = "导出PMS 物料领用明细 Excel")
|
|
|
@PreAuthorize("@ss.hasPermission('pms:iot-material-requisition-detail:export')")
|