| | |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestSaveReqVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportExcelVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestImportRespVO; |
| | | import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestDeptStatisticsRespVO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDeptStatisticsDO; |
| | | import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestItemDO; |
| | | import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper; |
| | | import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderMapper; |
| | |
| | | import cn.iocoder.yudao.module.srm.api.supplier.SrmSupplierApi; |
| | | import cn.iocoder.yudao.module.srm.api.supplier.dto.SrmSupplierRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | | import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; |
| | | import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | |
| | | throw exception(PURCHASE_REQUEST_NO_EXISTS); |
| | | } |
| | | |
| | | // 4. 获取当前用户信息 |
| | | Long userId = Long.parseLong(getCurrentUserId()); |
| | | // 4. 解析申请人 / 申请部门:未指定时取当前登录用户及其所属部门 |
| | | Long userId = createReqVO.getRequestUserId() != null |
| | | ? createReqVO.getRequestUserId() : Long.parseLong(getCurrentUserId()); |
| | | AdminUserRespDTO user = adminUserApi.getUser(userId); |
| | | Long deptId = user != null ? user.getDeptId() : null; |
| | | Long deptId = createReqVO.getRequestDeptId() != null |
| | | ? createReqVO.getRequestDeptId() : (user != null ? user.getDeptId() : null); |
| | | |
| | | // 5. 插入申请单 |
| | | ErpPurchaseRequestDO purchaseRequest = BeanUtils.toBean(createReqVO, ErpPurchaseRequestDO.class, req -> req |
| | |
| | | return purchaseOrder.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public List<ErpPurchaseRequestDeptStatisticsRespVO> getDeptStatistics(LocalDateTime beginTime, LocalDateTime endTime) { |
| | | List<ErpPurchaseRequestDeptStatisticsDO> statisticsList = purchaseRequestMapper.selectDeptStatistics(beginTime, endTime); |
| | | if (CollUtil.isEmpty(statisticsList)) { |
| | | return Collections.emptyList(); |
| | | } |
| | | Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(statisticsList, ErpPurchaseRequestDeptStatisticsDO::getDeptId)); |
| | | return BeanUtils.toBean(statisticsList, ErpPurchaseRequestDeptStatisticsRespVO.class, vo -> { |
| | | if (vo.getDeptId() == null) { |
| | | vo.setDeptName("未指定部门"); |
| | | return; |
| | | } |
| | | DeptRespDTO dept = deptMap.get(vo.getDeptId()); |
| | | // 部门已删除时回退为可读编号,避免出现空白的部门列 |
| | | vo.setDeptName(dept != null ? dept.getName() : "部门(ID=" + vo.getDeptId() + ")"); |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 校验采购申请审批分类和流程定义是否存在 |
| | | */ |