ruoyi-admin/pom.xml
@@ -17,11 +17,6 @@ <dependencies> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> <!-- 请根据需要选择合适的版本 --> ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java
@@ -3,11 +3,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageDTO; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageGeneralDTO; import com.ruoyi.system.dto.asset.OaApprovalApplicationStoragePropertyDTO; import com.ruoyi.system.dto.asset.OaApprovalApplicationStorageVehicleDTO; @@ -16,21 +17,22 @@ import com.ruoyi.system.service.AssetWarehouseService; import com.ruoyi.system.service.OaApprovalApplicationStorageService; import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageGeneralDetailVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePropertyDetailVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageVehicleDetailVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.GetMapping; import javax.validation.Valid; @@ -42,6 +44,7 @@ * @author CodeBuddy * @since 2025-09-17 */ @Slf4j @Api(tags = {"OA审批-资产入库申请相关接口"}) @Validated @RestController @@ -57,7 +60,7 @@ @PostMapping("/submit-general") @Log(title = "通用资产入库申请-提交", businessType = BusinessType.INSERT) public R<Void> submitGeneralAssetStorage(@Valid @RequestBody OaApprovalApplicationStorageGeneralDTO dto) { validateAddress(dto); // 校验每条明细的权属单位/部门名称是否存在 for (OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item : dto.getAssetItems()) { if (StringUtils.isEmpty(item.getOwnershipDeptName())) { @@ -67,7 +70,11 @@ if (owner == null) { throw new ServiceException("权属单位/部门不存在: " + item.getOwnershipDeptName()); } validateAddress(item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); } LoginUser loginUser = SecurityUtils.getLoginUser(); dto.setApplicantUserId(loginUser.getUserId().intValue()); dto.setApplicantName(loginUser.getUser().getNickName()); oaApprovalApplicationStorageService.submitGeneralAssetStorage(dto); return R.ok(); } @@ -76,7 +83,6 @@ @PostMapping("/submit-property") @Log(title = "房产资产入库申请-提交", businessType = BusinessType.INSERT) public R<Void> submitPropertyAssetStorage(@Valid @RequestBody OaApprovalApplicationStoragePropertyDTO dto) { validateAddress(dto); for (OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item : dto.getAssetItems()) { if (StringUtils.isEmpty(item.getOwnershipDeptName())) { throw new ServiceException("权属单位/部门名称不能为空"); @@ -85,7 +91,11 @@ if (owner == null) { throw new ServiceException("权属单位/部门不存在: " + item.getOwnershipDeptName()); } validateAddress(item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); } LoginUser loginUser = SecurityUtils.getLoginUser(); dto.setApplicantUserId(loginUser.getUserId().intValue()); dto.setApplicantName(loginUser.getUser().getNickName()); oaApprovalApplicationStorageService.submitPropertyAssetStorage(dto); return R.ok(); } @@ -94,7 +104,6 @@ @PostMapping("/submit-vehicle") @Log(title = "车辆资产入库申请-提交", businessType = BusinessType.INSERT) public R<Void> submitVehicleAssetStorage(@Valid @RequestBody OaApprovalApplicationStorageVehicleDTO dto) { validateAddress(dto); for (OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item : dto.getAssetItems()) { if (StringUtils.isEmpty(item.getOwnershipDeptName())) { throw new ServiceException("权属单位/部门名称不能为空"); @@ -103,7 +112,11 @@ if (owner == null) { throw new ServiceException("权属单位/部门不存在: " + item.getOwnershipDeptName()); } validateAddress(item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); } LoginUser loginUser = SecurityUtils.getLoginUser(); dto.setApplicantUserId(loginUser.getUserId().intValue()); dto.setApplicantName(loginUser.getUser().getNickName()); oaApprovalApplicationStorageService.submitVehicleAssetStorage(dto); return R.ok(); } @@ -111,7 +124,13 @@ @ApiOperation("获取资产入库申请分页列表") @PostMapping("/page-list") public R<IPage<OaApprovalApplicationStoragePageVO>> getPageList(@RequestBody OaApprovalApplicationStoragePageQuery pageQuery) { IPage<OaApprovalApplicationStoragePageVO> page = oaApprovalApplicationStorageService.getPageList(pageQuery); IPage<OaApprovalApplicationStoragePageVO> page = null; try { page = oaApprovalApplicationStorageService.getPageList(pageQuery); } catch (Exception e) { log.error("获取资产入库申请分页列表失败", e); return R.fail("服务器开小差啦"); } return R.ok(page); } @@ -147,39 +166,38 @@ /** * 校验位置类型与相关名称/地址 */ private void validateAddress(OaApprovalApplicationStorageDTO dto) { Integer addressType = dto.getAddressType(); private void validateAddress(Integer addressType,String useDeptName,String wareHouseName,String address) { if (addressType == null) { throw new ServiceException("位置类型不能为空"); } switch (addressType) { case 0: // 部门 if (StringUtils.isEmpty(dto.getUseDeptName())) { if (StringUtils.isEmpty(useDeptName)) { throw new ServiceException("使用部门名称不能为空"); } TDept dept = deptService.lambdaQuery() .eq(TDept::getDeptName, dto.getUseDeptName()) .eq(TDept::getDeptName, useDeptName) .one(); if (dept == null) { throw new ServiceException("使用部门不存在: " + dto.getUseDeptName()); throw new ServiceException("使用部门不存在: " + useDeptName); } break; case 1: // 仓库 if (StringUtils.isEmpty(dto.getWarehouseName())) { if (StringUtils.isEmpty(wareHouseName)) { throw new ServiceException("仓库名称不能为空"); } AssetWarehouse wh = assetWarehouseService.lambdaQuery() .eq(AssetWarehouse::getWarehouseName, dto.getWarehouseName()) .eq(AssetWarehouse::getWarehouseName, wareHouseName) .one(); if (wh == null) { throw new ServiceException("仓库不存在: " + dto.getWarehouseName()); throw new ServiceException("仓库不存在: " + wareHouseName); } break; case 2: // 地址 if (StringUtils.isEmpty(dto.getAddress())) { if (StringUtils.isEmpty(address)) { throw new ServiceException("所在位置不能为空"); } break; ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
@@ -7,22 +7,89 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AddLeaveDTO; import com.ruoyi.system.dto.AuditDTO; import com.ruoyi.system.emums.ApprovalTypeEnum; import com.ruoyi.system.model.*; import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.AssetType; import com.ruoyi.system.model.OaApproval; import com.ruoyi.system.model.OaApprovalApplicationAdvertisement; import com.ruoyi.system.model.OaApprovalApplicationAsset; import com.ruoyi.system.model.OaApprovalApplicationAssetItem; import com.ruoyi.system.model.OaApprovalApplicationAttendance; import com.ruoyi.system.model.OaApprovalApplicationChange; import com.ruoyi.system.model.OaApprovalApplicationContract; import com.ruoyi.system.model.OaApprovalApplicationDispose; import com.ruoyi.system.model.OaApprovalApplicationMoney; import com.ruoyi.system.model.OaApprovalApplicationPayment; import com.ruoyi.system.model.OaApprovalApplicationPurchase; import com.ruoyi.system.model.OaApprovalApplicationReimbursement; import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem; import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.model.OaApprovalApplications; import com.ruoyi.system.model.OaApprovalFlowAudit; import com.ruoyi.system.model.OaApprovalFlowNode; import com.ruoyi.system.model.OaApprovalTodo; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.ApprovalTodoListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.*; import com.ruoyi.system.service.AssetMainService; import com.ruoyi.system.service.AssetTypeService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService; import com.ruoyi.system.service.OaApprovalApplicationAssetItemService; import com.ruoyi.system.service.OaApprovalApplicationAssetService; import com.ruoyi.system.service.OaApprovalApplicationAttendanceService; import com.ruoyi.system.service.OaApprovalApplicationChangeService; import com.ruoyi.system.service.OaApprovalApplicationContactService; import com.ruoyi.system.service.OaApprovalApplicationContractService; import com.ruoyi.system.service.OaApprovalApplicationDisposeService; import com.ruoyi.system.service.OaApprovalApplicationMoneyService; import com.ruoyi.system.service.OaApprovalApplicationPaymentService; import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService; import com.ruoyi.system.service.OaApprovalApplicationPurchaseService; import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService; import com.ruoyi.system.service.OaApprovalApplicationReimbursementService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; import com.ruoyi.system.service.OaApprovalApplicationStorageService; import com.ruoyi.system.service.OaApprovalApplicationsService; import com.ruoyi.system.service.OaApprovalFlowAuditService; import com.ruoyi.system.service.OaApprovalFlowNodeService; import com.ruoyi.system.service.OaApprovalFlowService; import com.ruoyi.system.service.OaApprovalService; import com.ruoyi.system.service.OaApprovalTodoService; import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.vo.AdvertisementDetailVO; import com.ruoyi.system.vo.ApprovalFlowNodeListVO; import com.ruoyi.system.vo.ApprovalTodoVO; import com.ruoyi.system.vo.BackDetailVO; import com.ruoyi.system.vo.BorrowDetailVO; import com.ruoyi.system.vo.BusinessTripDetailVO; import com.ruoyi.system.vo.ChangeDetailVO; import com.ruoyi.system.vo.ContactDetailVO; import com.ruoyi.system.vo.ContractDetailVO; import com.ruoyi.system.vo.DisposeDetailVO; import com.ruoyi.system.vo.GrabDetailVO; import com.ruoyi.system.vo.GrabListVO; import com.ruoyi.system.vo.LeaveDestroyDetailVO; import com.ruoyi.system.vo.LeaveDetailVO; import com.ruoyi.system.vo.MoneyDetailVO; import com.ruoyi.system.vo.OutDetailVO; import com.ruoyi.system.vo.PaymentDetailVO; import com.ruoyi.system.vo.PurchaseDetailVO; import com.ruoyi.system.vo.PurchaseListVO; import com.ruoyi.system.vo.ReimbursementDetailVO; import com.ruoyi.system.vo.StorageDetailVO; import com.ruoyi.system.vo.StorageListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -74,6 +141,8 @@ private OaApprovalApplicationMoneyService approvalApplicationMoneyService; @Resource private AssetMainService assetMainService; @Resource private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; @Resource private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService; @Resource @@ -457,816 +526,114 @@ res.setRecords(resList); return R.ok(res); } OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId()); if (approvalFlowAudit!=null){ approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName()); approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName()); approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl()); approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()); }else{ approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName()); } approvalFlowNodeListVOS.add(approvalFlowNodeVO); } return approvalFlowNodeListVOS; } // @ApiOperation(value = "合同文件审批详情") // @GetMapping(value = "/detailContract") // public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery() // .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // ContractDetailVO res = new ContractDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList( sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setContractUrl(approvalApplicationContract.getContractUrl()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // return R.ok(res); // } // @ApiOperation(value = "进度款支付审批详情") // @GetMapping(value = "/detailPayment") // public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery() // .eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // PaymentDetailVO res = new PaymentDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // // todo 三阶段设计项目表之后完善 // res.setProjectName("本期还未涉及到项目"); // res.setApplyAmount(approvalApplicationPayment.getApplyAmount()); // return R.ok(res); // } // @ApiOperation(value = "请假申请审批详情") // @GetMapping(value = "/detailLeave") // public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() // .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // LeaveDetailVO res = new LeaveDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setStartTime(approvalApplicationAttendance.getStartTime()); // res.setEndTime(approvalApplicationAttendance.getEndTime()); // res.setDuration(approvalApplicationAttendance.getDuration()); // return R.ok(res); // } // @ApiOperation(value = "销假审批详情") // @GetMapping(value = "/detailLeaveDestroy") // public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() // .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // OaApprovalApplicationAttendance leaveApplication = approvalApplicationAttendanceService.getById(approvalApplicationAttendance.getLeaveApprovalApplicationId()); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // LeaveDestroyDetailVO res = new LeaveDestroyDetailVO(); // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE_DESTROY.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setStartTime(approvalApplicationAttendance.getStartTime()); // res.setEndTime(approvalApplicationAttendance.getEndTime()); // res.setStartTimeLeave(leaveApplication.getStartTime()); // res.setEndTimeLeave(leaveApplication.getEndTime()); // res.setDurationLeave(leaveApplication.getDuration()); // res.setDuration(approvalApplicationAttendance.getDuration()); // return R.ok(res); // } // @ApiOperation(value = "外出申请审批详情") // @GetMapping(value = "/detailOut") // public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() // .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // OutDetailVO res = new OutDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.OUT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setStartTime(approvalApplicationAttendance.getStartTime()); // res.setEndTime(approvalApplicationAttendance.getEndTime()); // res.setDuration(approvalApplicationAttendance.getDuration()); // return R.ok(res); // } // @ApiOperation(value = "出差审批详情") // @GetMapping(value = "/detailBusinessTrip") // public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery() // .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // BusinessTripDetailVO res = new BusinessTripDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BUSINESS_TRIP.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setStartTime(approvalApplicationAttendance.getStartTime()); // res.setEndTime(approvalApplicationAttendance.getEndTime()); // res.setDuration(approvalApplicationAttendance.getDuration()); // res.setAddress(approvalApplicationAttendance.getAddress()); // res.setProjectName(approvalApplicationAttendance.getProjectName()); // return R.ok(res); // } // @ApiOperation(value = "采购审批详情-采购物品清单") // @PostMapping(value = "/detailPurchaseList") // public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "采购审批详情") // @GetMapping(value = "/detailPurchase") // public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery() // .eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // PurchaseDetailVO res = new PurchaseDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PURCHASE.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setCreateTime(approvalApplications.getCreateTime()); // res.setTotalAmount(approvalApplicationPurchase.getTotalAmount()); // res.setTitle(approvalApplicationPurchase.getTitle()); // AssetType assetType = assetTypeService.getById(approvalApplicationPurchase.getAssetTypeId()); // if (assetType!=null){ // res.setAssetTypeName(assetType.getTypeName()); // } // return R.ok(res); // } // @ApiOperation(value = "物品领用-领用资产列表") // @PostMapping(value = "/detailGrabList") // public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "物品领用审批详情") // @GetMapping(value = "/detailGrab") // public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery() // .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // GrabDetailVO res = new GrabDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.GRAB.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setOperateTime(approvalApplicationAsset.getOperateTime()); // res.setTitle(approvalApplicationAsset.getTitle()); // AssetType assetType = assetTypeService.getById(approvalApplicationAsset.getAssetTypeId()); // if (assetType!=null){ // res.setAssetTypeName(assetType.getTypeName()); // } // return R.ok(res); // } // @ApiOperation(value = "资产入库-入库资产列表") // @PostMapping(value = "/detailInStockList") // public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "资产入库审批详情") // @GetMapping(value = "/detailInStock") // public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery() // .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // StorageDetailVO res = new StorageDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.IN_STOCK.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setTitle(approvalApplicationStorage.getTitle()); // res.setStorageType(approvalApplicationStorage.getStorageType()); // res.setStorageTime(approvalApplicationStorage.getStorageTime()); // res.setRemarks(approvalApplicationStorage.getTitle()); // return R.ok(res); // } // @ApiOperation(value = "物品借用-借用资产列表") // @PostMapping(value = "/detailBurrowList") // public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "物品借用审批详情") // @GetMapping(value = "/detailBurrow") // public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery() // .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // BorrowDetailVO res = new BorrowDetailVO(); // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BURROW.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setOperateTime(approvalApplicationAsset.getOperateTime()); // res.setExpectReturnDate(approvalApplicationAsset.getExpectReturnDate()); // return R.ok(res); // } // @ApiOperation(value = "物品借用归还-归还资产列表") // @PostMapping(value = "/detailBackList") // public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "物品借用归还审批详情") // @GetMapping(value = "/detailBack") // public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery() // .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId()) // .last("limit 1").one(); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalApplicationAssetBack.getBorrowApplicationId()); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplicationsBack.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // BackDetailVO res = new BackDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.RETURN.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplicationsBack.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplicationsBack.getId()); // res.setApplicationReason(approvalApplicationsBack.getApplicationReason()); // res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl()); // res.setOperateTime(approvalApplicationAssetBack.getOperateTime()); // res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate()); // res.setTitle(approvalApplicationAssetBack.getTitle()); // res.setApplicationCode(approvalApplications.getApplicationCode()); // return R.ok(res); // } // @ApiOperation(value = "资产处置-处置资产列表") // @PostMapping(value = "/detailDisposeList") // public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "资产处置审批详情") // @GetMapping(value = "/detailDispose") // public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery() // .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // DisposeDetailVO res = new DisposeDetailVO(); // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_DISPOSE.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // // res.setDisposeTime(approvalApplicationDispose.getDisposeTime()); // res.setTitle(approvalApplicationDispose.getTitle()); // AssetType assetType = assetTypeService.getById(approvalApplicationDispose.getAssetTypeId()); // if (assetType!=null){ // res.setAssetTypeName(assetType.getTypeName()); // } // res.setDisposeType(approvalApplicationDispose.getDisposeType()); // res.setDisposeTotalAmount(approvalApplicationDispose.getDisposeTotalAmount()); // return R.ok(res); // } // // @ApiOperation(value = "资产变更-变更资产列表") // @PostMapping(value = "/detailChangeList") // public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId()); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // query.setId(approvalApplications.getId()); // PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query); // return R.ok(items); // } // @ApiOperation(value = "资产变更审批详情") // @GetMapping(value = "/detailChange") // public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery() // .eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // ChangeDetailVO res = new ChangeDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_CHANGE.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // AssetType assetType = assetTypeService.getById(approvalApplicationChange.getAssetTypeId()); // if (assetType!=null){ // res.setAssetTypeName(assetType.getTypeName()); // } // res.setChangeTime(approvalApplicationChange.getChangeTime()); // res.setTitle(approvalApplicationChange.getTitle()); // TDept dept = deptService.getById(approvalApplicationChange.getOwnershipDeptId()); // if (dept!=null){ // res.setOwnershipDeptName(dept.getDeptName()); // } // // todo 三阶段完善 仓库名称 // res.setWarehouseName("三阶段完善"); // res.setAddress(approvalApplicationChange.getAddress()); // return R.ok(res); // } // @ApiOperation(value = "报销申请审批详情") // @GetMapping(value = "/detailReimbursement") // public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery() // .eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalApplicationReimbursementItem> oaApprovalApplicationReimbursementItems = approvalApplicationReimbursementItemService.lambdaQuery() // .eq(OaApprovalApplicationReimbursementItem::getApprovalApplicationId, approvalApplications.getId()) // .list(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // ReimbursementDetailVO res = new ReimbursementDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.REIMBURSEMENT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // // res.setType(approvalApplicationReimbursement.getType()); // res.setApprovalApplicationReimbursementItems(oaApprovalApplicationReimbursementItems); // return R.ok(res); // } // @ApiOperation(value = "款项申请审批详情") // @GetMapping(value = "/detailMoney") // public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery() // .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // MoneyDetailVO res = new MoneyDetailVO(); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.MONEY.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setProjectName(approvalApplicationMoney.getProjectName()); // res.setApplyAmount(approvalApplicationMoney.getApplyAmount()); // res.setDescription(approvalApplicationMoney.getDescription()); // res.setPayer(approvalApplicationMoney.getPayer()); // res.setPayee(approvalApplicationMoney.getPayee()); // res.setPayeeContact(approvalApplicationMoney.getPayeeContact()); // res.setPayeeAccount(approvalApplicationMoney.getPayeeAccount()); // return R.ok(res); // } // @ApiOperation(value = "内部联系单审批详情") // @GetMapping(value = "/detailContact") // public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery() // .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // ContactDetailVO res = new ContactDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTACT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setDescription(approvalApplicationMoney.getDescription()); // return R.ok(res); // } // @ApiOperation(value = "广告制作审批详情") // @GetMapping(value = "/detailAdvertisement") // public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) { // OaApprovalTodo approvalTodo = approvalTodoService.getById(id); // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId()); // OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery() // .eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // // List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId()) // .orderByAsc(OaApprovalFlowAudit::getSortOrder) // .list(); // AdvertisementDetailVO res = new AdvertisementDetailVO(); // // // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery() // .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ADVERTISEMENT.getCode()) // .orderByAsc(OaApprovalFlowNode::getSortOrder) // .eq(OaApprovalFlowNode::getStatus, 1).list(); // SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue()); // if (sysUser!=null){ // res.setUserName(sysUser.getUserName()); // TDept dept = deptService.getById(sysUser.getDeptId()); // if (dept!=null){ // res.setDeptName(dept.getDeptName()); // } // } // List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes); // res.setApprovalFlowNodeListVOS(flowNodeList); // res.setApprovalApplicationId(approvalApplications.getId()); // res.setApplicationReason(approvalApplications.getApplicationReason()); // res.setAttachmentUrl(approvalApplications.getAttachmentUrl()); // res.setTitle(applicationAdvertisement.getTitle()); // res.setCreateTime(approvalApplications.getCreateTime()); // res.setContent(applicationAdvertisement.getContent()); // res.setNumber(applicationAdvertisement.getNumber()); // res.setTotalAmount(applicationAdvertisement.getTotalAmount()); // res.setSpec(applicationAdvertisement.getSpec()); // return R.ok(res); // } // private List<ApprovalFlowNodeListVO> getFlowNodeList(SysUser sysUser, List<OaApprovalFlowAudit> approvalFlowAudits // ,List<OaApprovalFlowNode> approvalFlowNodes) { // List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS = new ArrayList<>(); // Map<Integer, OaApprovalFlowAudit> approvalFlowAuditMap = approvalFlowAudits.stream().collect(Collectors.toMap(OaApprovalFlowAudit::getFlowNodeId, e -> e)); // // ApprovalFlowNodeListVO approvalFlowNodeListVO = new ApprovalFlowNodeListVO(); // approvalFlowNodeListVO.setFlowName("发起"); // if (sysUser!=null){ // approvalFlowNodeListVO.setUserName(sysUser.getUserName()); // } // approvalFlowNodeListVOS.add(approvalFlowNodeListVO); // for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) { // ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO(); // // OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId()); // if (approvalFlowAudit!=null){ // approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName()); // approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName()); // approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl()); // approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()); // }else{ // approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName()); // } // approvalFlowNodeListVOS.add(approvalFlowNodeVO); // } // return approvalFlowNodeListVOS; // } // // // // @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT) // @ApiOperation(value = "通用审批接口") // @PostMapping(value = "/audit") // public R addLeave(@RequestBody AuditDTO dto) { // // OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId()); // Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId(); // Long userId = tokenService.getLoginUser().getUserId(); // SysUser sysUser = sysUserService.selectUserById(userId); // // OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId) // .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId) // .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId()) // .last("limit 1").one(); // approvalTodo.setStatus(1); // approvalTodo.setHandleTime(LocalDateTime.now()); // approvalTodoService.updateById(approvalTodo); // // OaApproval approval = approvalService.getById(approvalApplications.getApprovalId()); // if (dto.getApprovalStatus()==0){ // // 中断审批流程 // approvalApplications.setApprovalStatus(3); // approvalApplicationsService.updateById(approvalApplications); // // 删除除当前审批人该申请单的未处理的所有待办 // approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>() // .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId()) // .eq(OaApprovalTodo::getStatus,0)); // } // OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId); // OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit(); // approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId()); // approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId()); // approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName()); // approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder()); // approvalFlowAudit.setUserId(userId.intValue()); // approvalFlowAudit.setUserName(sysUser.getUserName()); // approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0); // approvalFlowAudit.setApprovalTime(LocalDateTime.now()); // approvalFlowAudit.setReason(dto.getReason()); // approvalFlowAuditService.save(approvalFlowAudit); // List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId()) // .orderByAsc(OaApprovalFlowNode::getSortOrder).list(); // if (dto.getApprovalStatus()==1){ // // 判断当前是否处于最后一个节点 // if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){ // // 审批通过 审批流程结束 // approvalApplications.setApprovalStatus(2); // approvalApplicationsService.updateById(approvalApplications); // if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7 // ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){ // List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery() // .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list(); // List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); // List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list(); // switch (approval.getApprovalCategory()){ // case 10: // assetMains.forEach(assetMain -> { // assetMain.setDisposed(1); // }); // break; // case 7: // assetMains.forEach(assetMain -> { // assetMain.setInUse(1); // }); // break; // default: // assetMains.forEach(assetMain -> { // assetMain.setBorrowed(1); // }); // break; // } // assetMainService.updateBatchById(assetMains); // } // }else{ // // 生成下一个节点的待办事项 // for (int i = 0; i < approvalFlowNodes.size(); i++) { // if(approvalApplications.getCurrentFlowNodeId() // .equals(approvalFlowNodes.get(i).getId())){ // approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId()); // OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId()); // approvalTodoService.createApprovalTodos(approvalApplications.getId(), // approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId()); // } // } // } // // } // // return R.ok(); // } @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT) @ApiOperation(value = "通用审批接口") @PostMapping(value = "/audit") public R addLeave(@RequestBody AuditDTO dto) { OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId()); Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId(); Long userId = tokenService.getLoginUser().getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId) .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId) .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId()) .last("limit 1").one(); approvalTodo.setStatus(1); approvalTodo.setHandleTime(LocalDateTime.now()); approvalTodoService.updateById(approvalTodo); OaApproval approval = approvalService.getById(approvalApplications.getApprovalId()); if (dto.getApprovalStatus()==0){ // 中断审批流程 approvalApplications.setApprovalStatus(3); approvalApplicationsService.updateById(approvalApplications); // 删除除当前审批人该申请单的未处理的所有待办 approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>() .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId()) .eq(OaApprovalTodo::getStatus,0)); } OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId); OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit(); approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId()); approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId()); approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName()); approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder()); approvalFlowAudit.setUserId(userId.intValue()); approvalFlowAudit.setUserName(sysUser.getUserName()); approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0); approvalFlowAudit.setApprovalTime(LocalDateTime.now()); approvalFlowAudit.setReason(dto.getReason()); approvalFlowAuditService.save(approvalFlowAudit); List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId()) .orderByAsc(OaApprovalFlowNode::getSortOrder).list(); if (dto.getApprovalStatus()==1){ // 判断当前是否处于最后一个节点 if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){ // 审批通过 审批流程结束 approvalApplications.setApprovalStatus(2); approvalApplicationsService.updateById(approvalApplications); if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7 ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){ List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery() .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list(); List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList()); List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list(); switch (approval.getApprovalCategory()){ case 10: assetMains.forEach(assetMain -> { assetMain.setDisposed(1); }); break; case 7: assetMains.forEach(assetMain -> { assetMain.setInUse(1); }); break; default: assetMains.forEach(assetMain -> { assetMain.setBorrowed(1); }); break; } assetMainService.updateBatchById(assetMains); } //如果为资产入库审批,处理审批通过逻辑,创建该审批的资产信息 if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) { assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId()); } }else{ // 生成下一个节点的待办事项 for (int i = 0; i < approvalFlowNodes.size(); i++) { if(approvalApplications.getCurrentFlowNodeId() .equals(approvalFlowNodes.get(i).getId())){ approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId()); OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId()); approvalTodoService.createApprovalTodos(approvalApplications.getId(), approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId()); } } } return R.ok(); } } ruoyi-admin/src/main/resources/application-prod.yml
@@ -226,6 +226,6 @@ accessKeyId: LTAI5tNW8B4CYP1WK7yS3bfW accessKeySecret: 9RrPDLd7wh4VGCjXxD8ULIdKiuY5Ly upload-endpoint: https://oss-cn-chengdu.aliyuncs.com download-endpoint: https://zhpt-oss.oss-cn-chengdu.aliyuncs.com bucketName: zhpt download-endpoint: https://zhpt-oss.oss-cn-chengdu.aliyuncs.com/ bucketName: zhpt-oss folder: shehongchengtou ruoyi-admin/src/main/resources/application-test.yml
@@ -227,8 +227,8 @@ accessKeyId: LTAI5tNW8B4CYP1WK7yS3bfW accessKeySecret: 9RrPDLd7wh4VGCjXxD8ULIdKiuY5Ly upload-endpoint: https://oss-cn-chengdu.aliyuncs.com download-endpoint: https://zhpt-oss.oss-cn-chengdu.aliyuncs.com bucketName: zhpt download-endpoint: https://zhpt-oss.oss-cn-chengdu.aliyuncs.com/ bucketName: zhpt-oss folder: shehongchengtou sms: enable: true ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/OaApprovalApplicationStorageDTO.java
@@ -29,11 +29,9 @@ private String deptName; @ApiModelProperty(value = "申请人ID") @NotNull(message = "申请人不能为空") private Integer applicantUserId; @ApiModelProperty(value = "申请人姓名") @NotBlank(message = "申请人姓名不能为空") private String applicantName; @ApiModelProperty(value = "入库备注") @@ -53,17 +51,12 @@ @ApiModelProperty(value = "入库类型 0-正常入库") @NotNull(message = "入库类型不能为空") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @NotNull(message = "入库日期不能为空") @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; // 新增:统一的资产所在单位信息(用于整单校验) @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") @NotNull(message = "位置类型不能为空") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/OaApprovalApplicationStoragePropertyDTO.java
@@ -139,8 +139,8 @@ @ApiModelProperty(value = "安置情况") private String resettlementSituation; @ApiModelProperty(value = "是否抵押:0-否,1-是") private Integer mortgaged; @ApiModelProperty(value = "是否抵押:否,是") private String mortgaged; @ApiModelProperty(value = "承租方") private String tenantName; ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationStorageAssetMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.mapper; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 资产入库申请主表 Mapper 接口 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetMapper extends BaseMapper<OaApprovalApplicationStorageAsset> { } ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationStorageAssetPropertyExtMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.mapper; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 资产入库申请房产资产扩展表 Mapper 接口 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetPropertyExtMapper extends BaseMapper<OaApprovalApplicationStorageAssetPropertyExt> { } ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationStorageAssetVehicleExtMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.mapper; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * <p> * 资产入库申请车辆资产扩展表 Mapper 接口 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetVehicleExtMapper extends BaseMapper<OaApprovalApplicationStorageAssetVehicleExt> { } ruoyi-system/src/main/java/com/ruoyi/system/model/AssetPropertyExt.java
@@ -82,9 +82,9 @@ @TableField("resettlement_situation") private String resettlementSituation; @ApiModelProperty(value = "是否抵押:0-否,1-是") @ApiModelProperty(value = "是否抵押:否,是") @TableField("is_mortgaged") private Integer mortgaged; private String mortgaged; @ApiModelProperty(value = "承租方") @TableField("tenant_name") ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorage.java
@@ -46,7 +46,7 @@ @ApiModelProperty(value = "入库类型 0-正常入库") @TableField("storage_type") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @TableField("storage_time") ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAsset.java
New file @@ -0,0 +1,140 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; /** * <p> * 资产入库申请主表 * </p> * * @author mitao * @since 2025-09-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("oa_approval_application_storage_asset") @ApiModel(value="OaApprovalApplicationStorageAsset对象", description="资产入库申请主表") public class OaApprovalApplicationStorageAsset implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "审批申请记录ID") private Integer approvalApplicationId; @ApiModelProperty(value = "资产原编码") private String assetOriginalCode; @ApiModelProperty(value = "资产名称") private String assetName; @ApiModelProperty(value = "规格型号") private String specificationModel; @ApiModelProperty(value = "类别") private String category; @ApiModelProperty(value = "资产类别ID,关联asset_type表") private Integer assetTypeId; @ApiModelProperty(value = "类别名称(冗余字段)") private String assetCategory; @ApiModelProperty(value = "资产主类型:0-通用资产,1-房产资产,2-车辆资产") private Integer assetMainType; @ApiModelProperty(value = "计量单位") private String measurementUnit; @ApiModelProperty(value = "数量") private BigDecimal quantity; @ApiModelProperty(value = "单价") private BigDecimal unitPrice; @ApiModelProperty(value = "总价值(数量*单价)") private BigDecimal totalValue; @ApiModelProperty(value = "使用年限(年)") private Integer usefulLife; @ApiModelProperty(value = "权属单位/部门ID") private Integer ownershipDeptId; @ApiModelProperty(value = "使用人") private String userName; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置ID") private Integer useDeptId; @ApiModelProperty(value = "仓库名称(冗余字段)") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "仓库ID,关联warehouse表") private Integer warehouseId; @ApiModelProperty(value = "资产状态") private String assetStatus; @ApiModelProperty(value = "备注") private String remarks; @ApiModelProperty(value = "入账状态") private String accountingStatus; @ApiModelProperty(value = "入账时间") private LocalDate accountingDate; @ApiModelProperty(value = "会计凭证号") private String accountingVoucherNo; @ApiModelProperty(value = "会计科目") private String accountingSubject; @ApiModelProperty(value = "入账金额") private BigDecimal accountingAmount; @ApiModelProperty(value = "附件URL列表(多个附件使用英文逗号拼接)") private String attachmentUrls; @ApiModelProperty(value = "创建时间") private LocalDateTime createTime; @ApiModelProperty(value = "创建人") private String createBy; @ApiModelProperty(value = "更新时间") private LocalDateTime updateTime; @ApiModelProperty(value = "更新人") private String updateBy; @ApiModelProperty(value = "是否删除 0-否,1-是") @TableLogic private Boolean disabled; } ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAssetPropertyExt.java
New file @@ -0,0 +1,107 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; /** * <p> * 资产入库申请房产资产扩展表 * </p> * * @author mitao * @since 2025-09-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("oa_approval_application_storage_asset_property_ext") @ApiModel(value="OaApprovalApplicationStorageAssetPropertyExt对象", description="资产入库申请房产资产扩展表") public class OaApprovalApplicationStorageAssetPropertyExt implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "资产入库申请主表ID,关联oa_approval_application_storage_asset表") private Integer storageAssetId; @ApiModelProperty(value = "所在区域") private String region; @ApiModelProperty(value = "设计用途") private String designPurpose; @ApiModelProperty(value = "楼栋") private String building; @ApiModelProperty(value = "房间号") private String roomNumber; @ApiModelProperty(value = "建筑面积(平方米)") private BigDecimal constructionArea; @ApiModelProperty(value = "结构") private String structureType; @ApiModelProperty(value = "权证编号") private String certificateNumber; @ApiModelProperty(value = "建成年月") private LocalDate completionDate; @ApiModelProperty(value = "详细位置") private String detailedLocation; @ApiModelProperty(value = "省资产平台填报价值") private BigDecimal provincialPlatformValue; @ApiModelProperty(value = "安置情况") private String resettlementSituation; @ApiModelProperty(value = "是否抵押:是,否") @TableField("is_mortgaged") private String mortgaged; @ApiModelProperty(value = "承租方") private String tenantName; @ApiModelProperty(value = "租金") private BigDecimal rentalAmount; @ApiModelProperty(value = "租赁期限起") private LocalDate leaseStartDate; @ApiModelProperty(value = "租赁期限止") private LocalDate leaseEndDate; @ApiModelProperty(value = "创建时间") private LocalDateTime createTime; @ApiModelProperty(value = "创建人") private String createBy; @ApiModelProperty(value = "更新时间") private LocalDateTime updateTime; @ApiModelProperty(value = "更新人") private String updateBy; @ApiModelProperty(value = "是否删除 0-否,1-是") private Boolean disabled; } ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationStorageAssetVehicleExt.java
New file @@ -0,0 +1,80 @@ package com.ruoyi.system.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; /** * <p> * 资产入库申请车辆资产扩展表 * </p> * * @author mitao * @since 2025-09-22 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("oa_approval_application_storage_asset_vehicle_ext") @ApiModel(value="OaApprovalApplicationStorageAssetVehicleExt对象", description="资产入库申请车辆资产扩展表") public class OaApprovalApplicationStorageAssetVehicleExt implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "资产入库申请主表ID,关联oa_approval_application_storage_asset表") private Integer storageAssetId; @ApiModelProperty(value = "车牌号") private String licensePlate; @ApiModelProperty(value = "车辆识别代码") private String vinCode; @ApiModelProperty(value = "发动机号") private String engineNumber; @ApiModelProperty(value = "排量") private String displacement; @ApiModelProperty(value = "编制情况") private String staffingSituation; @ApiModelProperty(value = "产地") private String origin; @ApiModelProperty(value = "取得日期") private LocalDate acquisitionDate; @ApiModelProperty(value = "产权形式") private String propertyRightForm; @ApiModelProperty(value = "创建时间") private LocalDateTime createTime; @ApiModelProperty(value = "创建人") private String createBy; @ApiModelProperty(value = "更新时间") private LocalDateTime updateTime; @ApiModelProperty(value = "更新人") private String updateBy; @ApiModelProperty(value = "是否删除 0-否,1-是") private Boolean disabled; } ruoyi-system/src/main/java/com/ruoyi/system/service/AssetMainService.java
@@ -6,6 +6,8 @@ import com.ruoyi.system.query.AssetMainPageQuery; import com.ruoyi.system.vo.asset.AssetMainPageVO; import java.time.LocalDate; /** * 资产主表 服务类 */ @@ -18,4 +20,17 @@ */ IPage<AssetMainPageVO> getApprovedPageList(AssetMainPageQuery pageQuery); /** * 生成资产编码 * @param assetTypeId * @param storageDate * @return */ String generateAssetCode(Integer assetTypeId, LocalDate storageDate); /** * 根据审批单ID保存资产信息 * @param id */ void saveAssetByApprovalApplicationId(Integer id); } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetPropertyExtService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.service; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 资产入库申请房产资产扩展表 服务类 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetPropertyExtService extends IService<OaApprovalApplicationStorageAssetPropertyExt> { } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.service; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 资产入库申请主表 服务类 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetService extends IService<OaApprovalApplicationStorageAsset> { } ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationStorageAssetVehicleExtService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; /** * <p> * 资产入库申请车辆资产扩展表 服务类 * </p> * * @author mitao * @since 2025-09-22 */ public interface OaApprovalApplicationStorageAssetVehicleExtService extends IService<OaApprovalApplicationStorageAssetVehicleExt> { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetMainServiceImpl.java
@@ -1,24 +1,187 @@ package com.ruoyi.system.service.impl; import cn.hutool.core.bean.BeanUtil; import org.springframework.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.AssetMainMapper; import com.ruoyi.system.mapper.AssetPropertyExtMapper; import com.ruoyi.system.mapper.AssetVehicleExtMapper; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetMapper; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetPropertyExtMapper; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetVehicleExtMapper; import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.AssetPropertyExt; import com.ruoyi.system.model.AssetVehicleExt; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.ruoyi.system.query.AssetMainPageQuery; import com.ruoyi.system.service.AssetMainService; import com.ruoyi.system.service.AssetPropertyExtService; import com.ruoyi.system.service.AssetTypeService; import com.ruoyi.system.service.AssetVehicleExtService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetPropertyExtService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetVehicleExtService; import com.ruoyi.system.vo.asset.AssetMainPageVO; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; /** * 资产主表 服务实现类 */ @Service @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class AssetMainServiceImpl extends ServiceImpl<AssetMainMapper, AssetMain> implements AssetMainService { private final AssetTypeService assetTypeService; private final OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; private final OaApprovalApplicationStorageAssetPropertyExtService oaApprovalApplicationStorageAssetPropertyExtService; private final OaApprovalApplicationStorageAssetVehicleExtService oaApprovalApplicationStorageAssetVehicleExtService; private final AssetVehicleExtService assetVehicleExtService; private final AssetPropertyExtService assetPropertyExtService; private final AssetMainMapper assetMainMapper; private final OaApprovalApplicationStorageAssetMapper oaApprovalApplicationStorageAssetMapper; private final OaApprovalApplicationStorageAssetPropertyExtMapper oaApprovalApplicationStorageAssetPropertyExtMapper; private final OaApprovalApplicationStorageAssetVehicleExtMapper oaApprovalApplicationStorageAssetVehicleExtMapper; private final AssetPropertyExtMapper assetPropertyExtMapper; private final AssetVehicleExtMapper assetVehicleExtMapper; @Override public IPage<AssetMainPageVO> getApprovedPageList(AssetMainPageQuery pageQuery) { Page<AssetMainPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); return this.baseMapper.selectApprovedAssetPage(page, pageQuery); } /** * 生成资产编码 * 格式:资产类型一级分类简写+资产类型子类简写+入库日期+【-】+数量顺序编号(4位) * 例如:GDFC20250917-0001 */ @Override public String generateAssetCode(Integer assetTypeId, LocalDate storageDate) { // 根据资产类型ID获取资产编码前缀 String typeCodePrefix = assetTypeService.getAssetCodePrefix(assetTypeId); String dateStr = storageDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); String prefix = typeCodePrefix + dateStr + "-"; // 查询当天该类型资产的数量 Long count = this.lambdaQuery() .like(AssetMain::getAssetCode, prefix) .ge(AssetMain::getCreateTime, storageDate.atStartOfDay()) .lt(AssetMain::getCreateTime, storageDate.plusDays(1).atStartOfDay()) .count(); int sequence = (count != null ? count.intValue() : 0) + 1; String sequenceStr = String.format("%04d", sequence); return prefix + sequenceStr; } @Override public void saveAssetByApprovalApplicationId(Integer approvalApplicationId) { // 1. 根据approvalApplicationId查询审批通过的资产列表 List<OaApprovalApplicationStorageAsset> storageAssets = oaApprovalApplicationStorageAssetMapper .selectList(new QueryWrapper<OaApprovalApplicationStorageAsset>() .eq("approval_application_id", approvalApplicationId)); if (CollectionUtils.isEmpty(storageAssets)) { return; } for (OaApprovalApplicationStorageAsset storageAsset : storageAssets) { Integer assetMainType = storageAsset.getAssetMainType(); BigDecimal quantity = storageAsset.getQuantity(); // 根据数量生成对应条数的资产记录 int assetCount = quantity != null ? quantity.intValue() : 1; for (int i = 0; i < assetCount; i++) { // 创建资产主表记录 AssetMain assetMain = new AssetMain(); BeanUtil.copyProperties(storageAsset, assetMain); // 为每个资产生成编码 String assetCode = generateAssetCode(storageAsset.getAssetTypeId(), LocalDate.now()); assetMain.setAssetCode(assetCode); // 单个资产的数量设为1 assetMain.setQuantity(BigDecimal.ONE); // 单个资产的总价值等于单价 assetMain.setTotalValue(storageAsset.getUnitPrice()); // 设置创建信息 assetMain.setCreateTime(LocalDateTime.now()); assetMain.setCreateBy(SecurityUtils.getUsername()); assetMain.setDisabled(false); // 保存资产主表 assetMainMapper.insert(assetMain); // 2. 根据资产类型保存扩展信息 if (assetMainType != null) { if (assetMainType == 1) { // 房产资产 - 保存房产扩展信息 savePropertyExtension(storageAsset.getId(), assetMain.getId()); } else if (assetMainType == 2) { // 车辆资产 - 保存车辆扩展信息 saveVehicleExtension(storageAsset.getId(), assetMain.getId()); } // assetMainType == 0 为通用资产,无需保存扩展信息 } } } } /** * 保存房产资产扩展信息 */ private void savePropertyExtension(Integer storageAssetId, Integer assetMainId) { // 查询房产扩展信息 OaApprovalApplicationStorageAssetPropertyExt propertyExt = oaApprovalApplicationStorageAssetPropertyExtMapper .selectOne(new QueryWrapper<OaApprovalApplicationStorageAssetPropertyExt>() .eq("storage_asset_id", storageAssetId)); if (propertyExt != null) { AssetPropertyExt assetPropertyExt = new AssetPropertyExt(); BeanUtil.copyProperties(propertyExt, assetPropertyExt); assetPropertyExt.setAssetMainId(assetMainId); assetPropertyExt.setCreateTime(LocalDateTime.now()); assetPropertyExt.setCreateBy(SecurityUtils.getUsername()); assetPropertyExt.setDisabled(false); assetPropertyExtMapper.insert(assetPropertyExt); } } /** * 保存车辆资产扩展信息 */ private void saveVehicleExtension(Integer storageAssetId, Integer assetMainId) { // 查询车辆扩展信息 OaApprovalApplicationStorageAssetVehicleExt vehicleExt = oaApprovalApplicationStorageAssetVehicleExtMapper .selectOne(new QueryWrapper<OaApprovalApplicationStorageAssetVehicleExt>() .eq("storage_asset_id", storageAssetId)); if (vehicleExt != null) { AssetVehicleExt assetVehicleExt = new AssetVehicleExt(); BeanUtil.copyProperties(vehicleExt, assetVehicleExt); assetVehicleExt.setAssetMainId(assetMainId); assetVehicleExt.setCreateTime(LocalDateTime.now()); assetVehicleExt.setCreateBy(SecurityUtils.getUsername()); assetVehicleExt.setDisabled(false); assetVehicleExtMapper.insert(assetVehicleExt); } } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java
@@ -15,6 +15,7 @@ import com.ruoyi.system.service.AssetTypeService; import com.ruoyi.system.vo.asset.AssetTypeTreeVO; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,7 +35,7 @@ * @since 2025-09-15 */ @Service @RequiredArgsConstructor @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class AssetTypeServiceImpl extends ServiceImpl<AssetTypeMapper, AssetType> implements AssetTypeService { private final AssetMainService assetMainService; ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageAssetPropertyExtServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.system.service.impl; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetPropertyExtMapper; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetPropertyExtService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 资产入库申请房产资产扩展表 服务实现类 * </p> * * @author mitao * @since 2025-09-22 */ @Service public class OaApprovalApplicationStorageAssetPropertyExtServiceImpl extends ServiceImpl<OaApprovalApplicationStorageAssetPropertyExtMapper, OaApprovalApplicationStorageAssetPropertyExt> implements OaApprovalApplicationStorageAssetPropertyExtService { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageAssetServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.system.service.impl; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetMapper; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 资产入库申请主表 服务实现类 * </p> * * @author mitao * @since 2025-09-22 */ @Service public class OaApprovalApplicationStorageAssetServiceImpl extends ServiceImpl<OaApprovalApplicationStorageAssetMapper, OaApprovalApplicationStorageAsset> implements OaApprovalApplicationStorageAssetService { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageAssetVehicleExtServiceImpl.java
New file @@ -0,0 +1,20 @@ package com.ruoyi.system.service.impl; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetVehicleExtMapper; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetVehicleExtService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 资产入库申请车辆资产扩展表 服务实现类 * </p> * * @author mitao * @since 2025-09-22 */ @Service public class OaApprovalApplicationStorageAssetVehicleExtServiceImpl extends ServiceImpl<OaApprovalApplicationStorageAssetVehicleExtMapper, OaApprovalApplicationStorageAssetVehicleExt> implements OaApprovalApplicationStorageAssetVehicleExtService { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationStorageServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -13,30 +14,24 @@ import com.ruoyi.system.emums.ApprovalTypeEnum; import com.ruoyi.system.emums.AssetTypeEnum; import com.ruoyi.system.mapper.OaApprovalApplicationStorageMapper; import com.ruoyi.system.model.AssetGeneralExt; import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.AssetPropertyExt; import com.ruoyi.system.model.AssetVehicleExt; import com.ruoyi.system.model.AssetWarehouse; import com.ruoyi.system.model.OaApprovalApplicationStorage; import com.ruoyi.system.model.OaApprovalApplicationStorageAsset; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetPropertyExt; import com.ruoyi.system.model.OaApprovalApplicationStorageAssetVehicleExt; import com.ruoyi.system.model.OaApprovalApplications; import com.ruoyi.system.model.OaApprovalFlowNode; import com.ruoyi.system.query.ApprovalDetailQuery; import com.ruoyi.system.query.OaApprovalApplicationStoragePageQuery; import com.ruoyi.system.service.AssetGeneralExtService; import com.ruoyi.system.service.AssetMainService; import com.ruoyi.system.service.AssetPropertyExtService; import com.ruoyi.system.service.AssetTypeService; import com.ruoyi.system.service.AssetVehicleExtService; import com.ruoyi.system.service.AssetWarehouseService; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetPropertyExtService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService; import com.ruoyi.system.service.OaApprovalApplicationStorageAssetVehicleExtService; import com.ruoyi.system.service.OaApprovalApplicationStorageService; import com.ruoyi.system.service.OaApprovalApplicationsService; import com.ruoyi.system.service.OaApprovalFlowNodeService; import com.ruoyi.system.service.OaApprovalTodoService; import com.ruoyi.system.service.TDeptService; import com.ruoyi.system.vo.PurchaseListVO; import com.ruoyi.system.vo.StorageListVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStorageGeneralDetailVO; import com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO; @@ -47,12 +42,13 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; /** @@ -68,15 +64,11 @@ public class OaApprovalApplicationStorageServiceImpl extends ServiceImpl<OaApprovalApplicationStorageMapper, OaApprovalApplicationStorage> implements OaApprovalApplicationStorageService { private final OaApprovalApplicationsService oaApprovalApplicationsService; private final AssetMainService assetMainService; private final AssetGeneralExtService assetGeneralExtService; private final AssetPropertyExtService assetPropertyExtService; private final AssetVehicleExtService assetVehicleExtService; private final AssetTypeService assetTypeService; private final OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService; private final OaApprovalApplicationStorageAssetPropertyExtService oaApprovalApplicationStorageAssetPropertyExtService; private final OaApprovalApplicationStorageAssetVehicleExtService oaApprovalApplicationStorageAssetVehicleExtService; private final OaApprovalFlowNodeService oaApprovalFlowNodeService; private final OaApprovalTodoService oaApprovalTodoService; private final ISysUserService sysUserService; private final ISysDeptService sysDeptService; private final TDeptService tDeptService; private final AssetWarehouseService assetWarehouseService; @@ -150,104 +142,78 @@ * 保存通用资产数据 */ private void saveGeneralAssets(List<OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO> assetItems, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageGeneralDTO baseDto) { List<AssetMain> allAssetMains = new ArrayList<>(); List<OaApprovalApplicationStorageAsset> storageAssets = new ArrayList<>(); for (OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item : assetItems) { // 根据数量创建对应数量的资产记录 int quantity = item.getQuantity().intValue(); for (int i = 0; i < quantity; i++) { AssetMain assetMain = buildAssetMain(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.GENERAL.getCode()); assetMain.setQuantity(BigDecimal.ONE); // 每个资产记录数量为1 assetMain.setTotalValue(item.getUnitPrice()); // 总价值等于单价 allAssetMains.add(assetMain); } OaApprovalApplicationStorageAsset assetMain = buildAssetMain(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.GENERAL.getCode()); storageAssets.add(assetMain); } // 批量保存资产主表数据 assetMainService.saveBatch(allAssetMains); oaApprovalApplicationStorageAssetService.saveBatch(storageAssets); } /** * 保存房产资产数据 */ private void savePropertyAssets(List<OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO> assetItems, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStoragePropertyDTO baseDto) { List<AssetMain> allAssetMains = new ArrayList<>(); List<AssetPropertyExt> allPropertyExts = new ArrayList<>(); List<OaApprovalApplicationStorageAsset> allAssetMains = new ArrayList<>(); List<OaApprovalApplicationStorageAssetPropertyExt> allPropertyExts = new ArrayList<>(); for (OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item : assetItems) { // 根据数量创建对应数量的资产记录 int quantity = item.getQuantity().intValue(); for (int i = 0; i < quantity; i++) { AssetMain assetMain = buildAssetMainFromProperty(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.HOUSE.getCode()); assetMain.setQuantity(BigDecimal.ONE); // 每个资产记录数量为1 assetMain.setTotalValue(item.getUnitPrice()); // 总价值等于单价 allAssetMains.add(assetMain); } OaApprovalApplicationStorageAsset assetMain = buildAssetMainFromProperty(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.HOUSE.getCode()); allAssetMains.add(assetMain); } // 批量保存资产主表数据 assetMainService.saveBatch(allAssetMains); oaApprovalApplicationStorageAssetService.saveBatch(allAssetMains); // 为每个资产主表记录创建对应的扩展信息 int assetMainIndex = 0; for (OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item : assetItems) { int quantity = item.getQuantity().intValue(); for (int i = 0; i < quantity; i++) { AssetPropertyExt propertyExt = buildAssetPropertyExt(item, allAssetMains.get(assetMainIndex).getId()); for (OaApprovalApplicationStorageAsset allAssetMain : allAssetMains) { for (OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item : assetItems) { OaApprovalApplicationStorageAssetPropertyExt propertyExt = buildAssetPropertyExt(item, allAssetMain.getId()); allPropertyExts.add(propertyExt); assetMainIndex++; } } assetPropertyExtService.saveBatch(allPropertyExts); oaApprovalApplicationStorageAssetPropertyExtService.saveBatch(allPropertyExts); } /** * 保存车辆资产数据 */ private void saveVehicleAssets(List<OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO> assetItems, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageVehicleDTO baseDto) { List<AssetMain> allAssetMains = new ArrayList<>(); List<AssetVehicleExt> allVehicleExts = new ArrayList<>(); List<OaApprovalApplicationStorageAsset> allAssetMains = new ArrayList<>(); List<OaApprovalApplicationStorageAssetVehicleExt> allVehicleExts = new ArrayList<>(); for (OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item : assetItems) { // 根据数量创建对应数量的资产记录 int quantity = item.getQuantity().intValue(); for (int i = 0; i < quantity; i++) { AssetMain assetMain = buildAssetMainFromVehicle(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.VEHICLE.getCode()); assetMain.setQuantity(BigDecimal.ONE); // 每个资产记录数量为1 assetMain.setTotalValue(item.getUnitPrice()); // 总价值等于单价 allAssetMains.add(assetMain); } OaApprovalApplicationStorageAsset assetMain = buildAssetMainFromVehicle(item, applicationId, assetTypeId, storageDate, baseDto); assetMain.setAssetMainType(AssetTypeEnum.VEHICLE.getCode()); allAssetMains.add(assetMain); } // 批量保存资产主表数据 assetMainService.saveBatch(allAssetMains); oaApprovalApplicationStorageAssetService.saveBatch(allAssetMains); // 为每个资产主表记录创建对应的扩展信息 int assetMainIndex = 0; for (OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item : assetItems) { int quantity = item.getQuantity().intValue(); for (int i = 0; i < quantity; i++) { AssetVehicleExt vehicleExt = buildAssetVehicleExt(item, allAssetMains.get(assetMainIndex).getId()); for (OaApprovalApplicationStorageAsset allAssetMain : allAssetMains) { for (OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item : assetItems) { OaApprovalApplicationStorageAssetVehicleExt vehicleExt = buildAssetVehicleExt(item, allAssetMain.getId()); allVehicleExts.add(vehicleExt); assetMainIndex++; } } assetVehicleExtService.saveBatch(allVehicleExts); oaApprovalApplicationStorageAssetVehicleExtService.saveBatch(allVehicleExts); } /** * 构建通用资产主表数据 */ private AssetMain buildAssetMain(OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageGeneralDTO baseDto) { AssetMain assetMain = new AssetMain(); private OaApprovalApplicationStorageAsset buildAssetMain(OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageGeneralDTO baseDto) { OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); assetMain.setApprovalApplicationId(applicationId.intValue()); assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); assetMain.setAssetCode(generateAssetCode(assetTypeId, storageDate)); // 系统生成资产编码 assetMain.setAssetName(item.getAssetName()); assetMain.setCategory(item.getCategory()); assetMain.setSpecificationModel(item.getSpecificationModel()); @@ -266,8 +232,9 @@ } assetMain.setUserName(item.getUserName()); // 根据整单 addressType 写入使用部门ID或仓库ID applyAddressToAssetMain(assetMain, baseDto.getAddressType(), baseDto.getUseDeptName(), baseDto.getWarehouseName(), baseDto.getAddress()); assetMain.setAssetMainType(baseDto.getAddressType()); applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); assetMain.setAddressType(item.getAddressType()); assetMain.setAssetMainType(AssetTypeEnum.GENERAL.getCode()); assetMain.setAssetStatus(item.getAssetStatus()); assetMain.setRemarks(item.getRemarks()); assetMain.setAccountingStatus(item.getAccountingStatus()); @@ -282,11 +249,10 @@ /** * 构建房产资产主表数据 */ private AssetMain buildAssetMainFromProperty(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStoragePropertyDTO baseDto) { AssetMain assetMain = new AssetMain(); private OaApprovalApplicationStorageAsset buildAssetMainFromProperty(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStoragePropertyDTO baseDto) { OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); assetMain.setApprovalApplicationId(applicationId.intValue()); assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); assetMain.setAssetCode(generateAssetCode(assetTypeId, storageDate)); assetMain.setAssetName(item.getAssetName()); assetMain.setCategory(item.getCategory()); assetMain.setSpecificationModel(item.getSpecificationModel()); @@ -303,8 +269,9 @@ } } assetMain.setUserName(item.getUserName()); applyAddressToAssetMain(assetMain, baseDto.getAddressType(), baseDto.getUseDeptName(), baseDto.getWarehouseName(), baseDto.getAddress()); assetMain.setAssetMainType(baseDto.getAddressType()); applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); assetMain.setAddressType(item.getAddressType()); assetMain.setAssetMainType(AssetTypeEnum.HOUSE.getCode()); assetMain.setAssetStatus(item.getAssetStatus()); assetMain.setRemarks(item.getRemarks()); assetMain.setAccountingStatus(item.getAccountingStatus()); @@ -319,11 +286,10 @@ /** * 构建车辆资产主表数据 */ private AssetMain buildAssetMainFromVehicle(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageVehicleDTO baseDto) { AssetMain assetMain = new AssetMain(); private OaApprovalApplicationStorageAsset buildAssetMainFromVehicle(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer applicationId, Integer assetTypeId, LocalDate storageDate, OaApprovalApplicationStorageVehicleDTO baseDto) { OaApprovalApplicationStorageAsset assetMain = new OaApprovalApplicationStorageAsset(); assetMain.setApprovalApplicationId(applicationId.intValue()); assetMain.setAssetOriginalCode(item.getAssetOriginalCode()); assetMain.setAssetCode(generateAssetCode(assetTypeId, storageDate)); assetMain.setAssetName(item.getAssetName()); assetMain.setCategory(item.getCategory()); assetMain.setSpecificationModel(item.getSpecificationModel()); @@ -340,8 +306,9 @@ } } assetMain.setUserName(item.getUserName()); applyAddressToAssetMain(assetMain, baseDto.getAddressType(), baseDto.getUseDeptName(), baseDto.getWarehouseName(), baseDto.getAddress()); assetMain.setAssetMainType(baseDto.getAddressType()); applyAddressToAssetMain(assetMain, item.getAddressType(), item.getUseDeptName(), item.getWarehouseName(), item.getAddress()); assetMain.setAddressType(item.getAddressType()); assetMain.setAssetMainType(AssetTypeEnum.VEHICLE.getCode()); assetMain.setAssetStatus(item.getAssetStatus()); assetMain.setRemarks(item.getRemarks()); assetMain.setAccountingStatus(item.getAccountingStatus()); @@ -356,7 +323,7 @@ /** * 按整单地址类型设置资产主表位置信息(使用部门ID或仓库ID或地址) */ private void applyAddressToAssetMain(AssetMain assetMain, Integer addressType, String useDeptName, String warehouseName, String address) { private void applyAddressToAssetMain(OaApprovalApplicationStorageAsset assetMain, Integer addressType, String useDeptName, String warehouseName, String address) { if (addressType == null) { return; } @@ -393,22 +360,14 @@ } } /** * 构建通用资产扩展数据 */ private AssetGeneralExt buildAssetGeneralExt(OaApprovalApplicationStorageGeneralDTO.GeneralAssetItemDTO item, Integer assetMainId) { AssetGeneralExt generalExt = new AssetGeneralExt(); generalExt.setAssetMainId(assetMainId); generalExt.setDisabled(false); return generalExt; } /** * 构建房产资产扩展数据 */ private AssetPropertyExt buildAssetPropertyExt(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer assetMainId) { AssetPropertyExt propertyExt = new AssetPropertyExt(); propertyExt.setAssetMainId(assetMainId); private OaApprovalApplicationStorageAssetPropertyExt buildAssetPropertyExt(OaApprovalApplicationStoragePropertyDTO.PropertyAssetItemDTO item, Integer assetMainId) { OaApprovalApplicationStorageAssetPropertyExt propertyExt = new OaApprovalApplicationStorageAssetPropertyExt(); propertyExt.setStorageAssetId(assetMainId); propertyExt.setRegion(item.getRegion()); propertyExt.setDesignPurpose(item.getDesignPurpose()); propertyExt.setBuilding(item.getBuilding()); @@ -432,9 +391,9 @@ /** * 构建车辆资产扩展数据 */ private AssetVehicleExt buildAssetVehicleExt(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer assetMainId) { AssetVehicleExt vehicleExt = new AssetVehicleExt(); vehicleExt.setAssetMainId(assetMainId); private OaApprovalApplicationStorageAssetVehicleExt buildAssetVehicleExt(OaApprovalApplicationStorageVehicleDTO.VehicleAssetItemDTO item, Integer assetMainId) { OaApprovalApplicationStorageAssetVehicleExt vehicleExt = new OaApprovalApplicationStorageAssetVehicleExt(); vehicleExt.setStorageAssetId(assetMainId); vehicleExt.setLicensePlate(item.getLicensePlate()); vehicleExt.setVinCode(item.getVinCode()); vehicleExt.setEngineNumber(item.getEngineNumber()); @@ -557,31 +516,6 @@ return prefix + sequenceStr; } /** * 生成资产编码 * 格式:资产类型一级分类简写+资产类型子类简写+入库日期+【-】+数量顺序编号(4位) * 例如:GDFC20250917-0001 */ private String generateAssetCode(Integer assetTypeId, LocalDate storageDate) { // 根据资产类型ID获取资产编码前缀 String typeCodePrefix = assetTypeService.getAssetCodePrefix(assetTypeId); String dateStr = storageDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); String prefix = typeCodePrefix + dateStr + "-"; // 查询当天该类型资产的数量 Long count = assetMainService.lambdaQuery() .like(AssetMain::getAssetCode, prefix) .ge(AssetMain::getCreateTime, storageDate.atStartOfDay()) .lt(AssetMain::getCreateTime, storageDate.plusDays(1).atStartOfDay()) .count(); int sequence = (count != null ? count.intValue() : 0) + 1; String sequenceStr = String.format("%04d", sequence); return prefix + sequenceStr; } @Override public IPage<OaApprovalApplicationStoragePageVO> getPageList(OaApprovalApplicationStoragePageQuery pageQuery) { Page<OaApprovalApplicationStoragePageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); @@ -602,41 +536,39 @@ OaApprovalApplicationStorageGeneralDetailVO vo = new OaApprovalApplicationStorageGeneralDetailVO(); fillBaseFields(vo, app, storage); List<AssetMain> mains = assetMainService.lambdaQuery() .eq(AssetMain::getApprovalApplicationId, app.getId()) .eq(AssetMain::getAssetTypeId, storage.getAssetTypeId()) List<OaApprovalApplicationStorageAsset> mains = oaApprovalApplicationStorageAssetService.lambdaQuery() .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); setAddressInfo(vo, mains); if (!CollectionUtils.isEmpty(mains)) { List<Integer> mainIds = mains.stream().map(AssetMain::getId).collect(Collectors.toList()); // 批量查询权属部门,避免循环内查询 List<Integer> ownerIds = mains.stream().map(AssetMain::getOwnershipDeptId) .filter(id -> id != null).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() // 批量查询权属部门 List<Integer> ownerIds = mains.stream().map(OaApprovalApplicationStorageAsset::getOwnershipDeptId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询使用部门 List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap() : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询仓库 List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap() : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d)); List<OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO> items = mains.stream().map(m -> { OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO item = new OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO(); item.setAssetOriginalCode(m.getAssetOriginalCode()); item.setAssetName(m.getAssetName()); item.setSpecificationModel(m.getSpecificationModel()); item.setMeasurementUnit(m.getMeasurementUnit()); item.setQuantity(m.getQuantity()); item.setUnitPrice(m.getUnitPrice()); item.setUsefulLife(m.getUsefulLife()); OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStorageGeneralDetailVO.GeneralAssetItemVO.class); if (m.getOwnershipDeptId() != null) { TDept dept = ownerDeptMap.get(m.getOwnershipDeptId()); item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null); } item.setUserName(m.getUserName()); item.setAssetStatus(m.getAssetStatus()); item.setRemarks(m.getRemarks()); item.setAccountingStatus(m.getAccountingStatus()); item.setAccountingDate(m.getAccountingDate()); item.setAccountingVoucherNo(m.getAccountingVoucherNo()); item.setAccountingSubject(m.getAccountingSubject()); item.setAccountingAmount(m.getAccountingAmount()); if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { TDept dept = useDeptMap.get(m.getUseDeptId()); item.setUseDeptName(dept != null ? dept.getDeptName() : null); } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); } return item; }).collect(Collectors.toList()); vo.setAssetItems(items); @@ -658,44 +590,45 @@ OaApprovalApplicationStoragePropertyDetailVO vo = new OaApprovalApplicationStoragePropertyDetailVO(); fillBaseFields(vo, app, storage); List<AssetMain> mains = assetMainService.lambdaQuery() .eq(AssetMain::getApprovalApplicationId, app.getId()) .eq(AssetMain::getAssetTypeId, storage.getAssetTypeId()) List<OaApprovalApplicationStorageAsset> mains = oaApprovalApplicationStorageAssetService.lambdaQuery() .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); setAddressInfo(vo, mains); if (!CollectionUtils.isEmpty(mains)) { List<Integer> mainIds = mains.stream().map(AssetMain::getId).collect(Collectors.toList()); List<AssetPropertyExt> exts = assetPropertyExtService.lambdaQuery().in(AssetPropertyExt::getAssetMainId, mainIds).list(); Map<Integer, AssetPropertyExt> extMap = exts.stream().collect(Collectors.toMap(AssetPropertyExt::getAssetMainId, e -> e)); List<Integer> mainIds = mains.stream().map(OaApprovalApplicationStorageAsset::getId).collect(Collectors.toList()); List<OaApprovalApplicationStorageAssetPropertyExt> exts = oaApprovalApplicationStorageAssetPropertyExtService.lambdaQuery().in(OaApprovalApplicationStorageAssetPropertyExt::getStorageAssetId, mainIds).list(); Map<Integer, OaApprovalApplicationStorageAssetPropertyExt> extMap = exts.stream().collect(Collectors.toMap(OaApprovalApplicationStorageAssetPropertyExt::getStorageAssetId, e -> e)); // 批量查询权属部门 List<Integer> ownerIds = mains.stream().map(AssetMain::getOwnershipDeptId) List<Integer> ownerIds = mains.stream().map(OaApprovalApplicationStorageAsset::getOwnershipDeptId) .filter(id -> id != null).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询使用部门 List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap() : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询仓库 List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap() : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d)); List<OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO> items = mains.stream().map(m -> { OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO item = new OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO(); item.setAssetOriginalCode(m.getAssetOriginalCode()); item.setAssetName(m.getAssetName()); item.setSpecificationModel(m.getSpecificationModel()); item.setMeasurementUnit(m.getMeasurementUnit()); item.setQuantity(m.getQuantity()); item.setUnitPrice(m.getUnitPrice()); item.setUsefulLife(m.getUsefulLife()); OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStoragePropertyDetailVO.PropertyAssetItemVO.class); if (m.getOwnershipDeptId() != null) { TDept dept = ownerDeptMap.get(m.getOwnershipDeptId()); item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null); } item.setUserName(m.getUserName()); item.setAssetStatus(m.getAssetStatus()); item.setRemarks(m.getRemarks()); item.setAccountingStatus(m.getAccountingStatus()); item.setAccountingDate(m.getAccountingDate()); item.setAccountingVoucherNo(m.getAccountingVoucherNo()); item.setAccountingSubject(m.getAccountingSubject()); item.setAccountingAmount(m.getAccountingAmount()); AssetPropertyExt ext = extMap.get(m.getId()); if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { TDept dept = useDeptMap.get(m.getUseDeptId()); item.setUseDeptName(dept != null ? dept.getDeptName() : null); } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); } OaApprovalApplicationStorageAssetPropertyExt ext = extMap.get(m.getId()); if (ext != null) { item.setRegion(ext.getRegion()); item.setDesignPurpose(ext.getDesignPurpose()); @@ -735,44 +668,44 @@ OaApprovalApplicationStorageVehicleDetailVO vo = new OaApprovalApplicationStorageVehicleDetailVO(); fillBaseFields(vo, app, storage); List<AssetMain> mains = assetMainService.lambdaQuery() .eq(AssetMain::getApprovalApplicationId, app.getId()) .eq(AssetMain::getAssetTypeId, storage.getAssetTypeId()) List<OaApprovalApplicationStorageAsset> mains = oaApprovalApplicationStorageAssetService.lambdaQuery() .eq(OaApprovalApplicationStorageAsset::getApprovalApplicationId, app.getId()) .eq(OaApprovalApplicationStorageAsset::getAssetTypeId, storage.getAssetTypeId()) .list(); setAddressInfo(vo, mains); if (!CollectionUtils.isEmpty(mains)) { List<Integer> mainIds = mains.stream().map(AssetMain::getId).collect(Collectors.toList()); List<AssetVehicleExt> exts = assetVehicleExtService.lambdaQuery().in(AssetVehicleExt::getAssetMainId, mainIds).list(); Map<Integer, AssetVehicleExt> extMap = exts.stream().collect(Collectors.toMap(AssetVehicleExt::getAssetMainId, e -> e)); List<Integer> mainIds = mains.stream().map(OaApprovalApplicationStorageAsset::getId).collect(Collectors.toList()); List<OaApprovalApplicationStorageAssetVehicleExt> exts = oaApprovalApplicationStorageAssetVehicleExtService.lambdaQuery().in(OaApprovalApplicationStorageAssetVehicleExt::getStorageAssetId, mainIds).list(); Map<Integer, OaApprovalApplicationStorageAssetVehicleExt> extMap = exts.stream().collect(Collectors.toMap(OaApprovalApplicationStorageAssetVehicleExt::getStorageAssetId, e -> e)); // 批量查询权属部门 List<Integer> ownerIds = mains.stream().map(AssetMain::getOwnershipDeptId) List<Integer> ownerIds = mains.stream().map(OaApprovalApplicationStorageAsset::getOwnershipDeptId) .filter(id -> id != null).distinct().collect(Collectors.toList()); Map<Integer, TDept> ownerDeptMap = ownerIds.isEmpty() ? java.util.Collections.emptyMap() : tDeptService.listByIds(ownerIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询使用部门 List<Integer> useDeptIds = mains.stream().map(OaApprovalApplicationStorageAsset::getUseDeptId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, TDept> useDeptMap = ownerIds.isEmpty() ? Collections.emptyMap() : tDeptService.listByIds(useDeptIds).stream().collect(Collectors.toMap(TDept::getId, d -> d)); // 批量查询仓库 List<Integer> warehouseIds = mains.stream().map(OaApprovalApplicationStorageAsset::getWarehouseId) .filter(Objects::nonNull).distinct().collect(Collectors.toList()); Map<Integer, AssetWarehouse> warehouseMap = warehouseIds.isEmpty() ? Collections.emptyMap() : assetWarehouseService.listByIds(useDeptIds).stream().collect(Collectors.toMap(AssetWarehouse::getId, d -> d)); List<OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO> items = mains.stream().map(m -> { OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO item = new OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO(); item.setAssetOriginalCode(m.getAssetOriginalCode()); item.setAssetName(m.getAssetName()); item.setSpecificationModel(m.getSpecificationModel()); item.setMeasurementUnit(m.getMeasurementUnit()); item.setQuantity(m.getQuantity()); item.setUnitPrice(m.getUnitPrice()); item.setUsefulLife(m.getUsefulLife()); OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO item = BeanUtil.copyProperties(m, OaApprovalApplicationStorageVehicleDetailVO.VehicleAssetItemVO.class); if (m.getOwnershipDeptId() != null) { TDept dept = ownerDeptMap.get(m.getOwnershipDeptId()); item.setOwnerShipDeptName(dept != null ? dept.getDeptName() : null); } item.setUserName(m.getUserName()); item.setAssetStatus(m.getAssetStatus()); item.setRemarks(m.getRemarks()); item.setAccountingStatus(m.getAccountingStatus()); item.setAccountingDate(m.getAccountingDate()); item.setAccountingVoucherNo(m.getAccountingVoucherNo()); item.setAccountingSubject(m.getAccountingSubject()); item.setAccountingAmount(m.getAccountingAmount()); AssetVehicleExt ext = extMap.get(m.getId()); if (m.getAddressType().equals(0) && m.getUseDeptId() != null) { TDept dept = useDeptMap.get(m.getUseDeptId()); item.setUseDeptName(dept != null ? dept.getDeptName() : null); } else if (m.getAddressType().equals(1) && m.getWarehouseId() != null){ AssetWarehouse assetWarehouse = warehouseMap.get(m.getWarehouseId()); item.setWarehouseName(assetWarehouse != null ? assetWarehouse.getWarehouseName() : null); } OaApprovalApplicationStorageAssetVehicleExt ext = extMap.get(m.getId()); if (ext != null) { item.setLicensePlate(ext.getLicensePlate()); item.setVinCode(ext.getVinCode()); @@ -830,49 +763,6 @@ v.setAssetTypeId(storage.getAssetTypeId()); v.setStorageType(storage.getStorageType()); v.setStorageTime(storage.getStorageTime()); } } private void setAddressInfo(Object vo, List<AssetMain> mains) { if (CollectionUtils.isEmpty(mains)) { return; } AssetMain sample = mains.get(0); Integer addressType = null; String useDeptName = null; String warehouseName = null; String address = null; if (sample.getUseDeptId() != null) { addressType = 0; TDept dept = tDeptService.getById(sample.getUseDeptId()); useDeptName = dept != null ? dept.getDeptName() : null; } else if (sample.getWarehouseId() != null) { addressType = 1; AssetWarehouse wh = assetWarehouseService.getById(sample.getWarehouseId()); warehouseName = wh != null ? wh.getWarehouseName() : null; } else if (sample.getAddress() != null && !sample.getAddress().isEmpty()) { addressType = 2; address = sample.getAddress(); } if (vo instanceof OaApprovalApplicationStorageGeneralDetailVO) { OaApprovalApplicationStorageGeneralDetailVO v = (OaApprovalApplicationStorageGeneralDetailVO) vo; v.setAddressType(addressType); v.setUseDeptName(useDeptName); v.setWarehouseName(warehouseName); v.setAddress(address); } else if (vo instanceof OaApprovalApplicationStoragePropertyDetailVO) { OaApprovalApplicationStoragePropertyDetailVO v = (OaApprovalApplicationStoragePropertyDetailVO) vo; v.setAddressType(addressType); v.setUseDeptName(useDeptName); v.setWarehouseName(warehouseName); v.setAddress(address); } else if (vo instanceof OaApprovalApplicationStorageVehicleDetailVO) { OaApprovalApplicationStorageVehicleDetailVO v = (OaApprovalApplicationStorageVehicleDetailVO) vo; v.setAddressType(addressType); v.setUseDeptName(useDeptName); v.setWarehouseName(warehouseName); v.setAddress(address); } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OssServiceImpl.java
@@ -63,30 +63,35 @@ */ @Override public String upload(String storagePath, MultipartFile file) throws IOException { CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET); String region = "cn-chengdu"; // 创建OSSClient实例。 ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(OssConfig.UPLOAD_ENDPOINT) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); InputStream inputStream = file.getInputStream(); OSS ossClient = null; try { CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET); String region = "cn-chengdu"; // 创建OSSClient实例。 ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); ossClient = OSSClientBuilder.create() .endpoint(OssConfig.UPLOAD_ENDPOINT) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); InputStream inputStream = file.getInputStream(); String originFileName = file.getOriginalFilename(); String fileExt = Objects.requireNonNull(originFileName).substring(originFileName.lastIndexOf(".") + 1); String fileName = originFileName.substring(0, originFileName.lastIndexOf(".")); // 设置文件名 String filePathName = generateRelativeStoragePath(storagePath, fileExt, fileName); // 创建PutObjectRequest对象。 PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream); // 创建PutObject请求。 PutObjectResult result = ossClient.putObject(putObjectRequest); String originFileName = file.getOriginalFilename(); String fileExt = Objects.requireNonNull(originFileName).substring(originFileName.lastIndexOf(".") + 1); String fileName = originFileName.substring(0, originFileName.lastIndexOf(".")); // 设置文件名 String filePathName = generateRelativeStoragePath(storagePath, fileExt, fileName); // 创建PutObjectRequest对象。 PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream); // 创建PutObject请求。 PutObjectResult result = ossClient.putObject(putObjectRequest); return OssConfig.DOWNLOAD_ENDPOINT + filePathName; return OssConfig.DOWNLOAD_ENDPOINT + filePathName; } finally { ossClient.shutdown(); } } /** ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java
@@ -1,11 +1,6 @@ package com.ruoyi.system.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.system.model.OaApprovalTodo; import com.ruoyi.system.model.OaNotification; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -48,7 +43,7 @@ @ApiModelProperty(value = "报销金额/申请金额/合计金额/总金额(报销申请/款项申请/款项支付审批/广告制作)") private BigDecimal amount; @ApiModelProperty(value = "入库类型 0-正常入库(资产入库)") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "领用/借用/归还日期(物品借用/领用归还)") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDate operateTime; ruoyi-system/src/main/java/com/ruoyi/system/vo/StorageDetailVO.java
@@ -8,7 +8,6 @@ import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Data @@ -24,7 +23,7 @@ @ApiModelProperty(value = "标题") private String title; @ApiModelProperty(value = "入库类型 0-正常入库") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDate storageTime; ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.vo.asset; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -29,6 +30,7 @@ private String applicantName; @ApiModelProperty(value = "申请日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate applicationDate; @ApiModelProperty(value = "入库备注") @@ -44,22 +46,11 @@ private Integer assetTypeId; @ApiModelProperty(value = "入库类型 0-正常入库") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "通用资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<GeneralAssetItemVO> assetItems; @@ -114,5 +105,17 @@ @ApiModelProperty(value = "入账金额") private BigDecimal accountingAmount; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePageVO.java
@@ -19,6 +19,9 @@ @ApiModelProperty("主键ID") private Integer id; @ApiModelProperty("资产类型ID") private Integer assetTypeId; @ApiModelProperty("所属部门") private String deptName; ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStoragePropertyDetailVO.java
@@ -30,6 +30,7 @@ private String applicantName; @ApiModelProperty(value = "申请日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate applicationDate; @ApiModelProperty(value = "入库备注") @@ -45,22 +46,11 @@ private Integer assetTypeId; @ApiModelProperty(value = "入库类型 0-正常入库") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "房产资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<PropertyAssetItemVO> assetItems; @@ -150,8 +140,8 @@ @ApiModelProperty(value = "安置情况") private String resettlementSituation; @ApiModelProperty(value = "是否抵押:0-否,1-是") private Integer mortgaged; @ApiModelProperty(value = "是否抵押:否,是") private String mortgaged; @ApiModelProperty(value = "承租方") private String tenantName; @@ -166,5 +156,17 @@ @ApiModelProperty(value = "租赁期限止") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate leaseEndDate; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageVehicleDetailVO.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.vo.asset; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -29,6 +30,7 @@ private String applicantName; @ApiModelProperty(value = "申请日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate applicationDate; @ApiModelProperty(value = "入库备注") @@ -44,22 +46,11 @@ private Integer assetTypeId; @ApiModelProperty(value = "入库类型 0-正常入库") private Boolean storageType; private Integer storageType; @ApiModelProperty(value = "入库日期") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate storageTime; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; @ApiModelProperty(value = "车辆资产明细列表(按保存展开后的一条资产记录对应一条明细)") private List<VehicleAssetItemVO> assetItems; @@ -139,5 +130,18 @@ @ApiModelProperty(value = "产权形式") private String propertyRightForm; @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址") private Integer addressType; @ApiModelProperty(value = "使用部门/位置名称") private String useDeptName; @ApiModelProperty(value = "仓库名称") private String warehouseName; @ApiModelProperty(value = "所在位置") private String address; } } ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageAssetPropertyExtMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetPropertyExtMapper"> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageAssetVehicleExtMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetVehicleExtMapper"> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageAssetVehicleExtService.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.system.mapper.OaApprovalApplicationStorageAssetMapper"> </mapper> ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationStorageMapper.xml
@@ -21,6 +21,7 @@ <select id="selectApplicationStoragePage" resultType="com.ruoyi.system.vo.asset.OaApprovalApplicationStoragePageVO"> SELECT oas.id AS id, oas.asset_type_id AS assetTypeId, aaa.dept_name AS deptName, aaa.application_code AS applicationCode, oas.title AS title, @@ -56,9 +57,9 @@ end as useName from asset_main t1 left join asset_type t2 on t3.id = t1.asset_type_id left join t_dept t3 on t4.id = t3.ownership_dept_id from oa_approval_application_storage_asset t1 left join asset_type t2 on t2.id = t1.asset_type_id left join t_dept t3 on t3.id = t1.ownership_dept_id where t1.approval_application_id = #{query.approvalApplicationId} order by t1.create_time desc