From d4e4dc4a180cea919dfc86a1a3e5af0abe8b6d36 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 20 十月 2025 18:48:14 +0800 Subject: [PATCH] 无形广告资产接口 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java | 40 ++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java | 2 ruoyi-system/pom.xml | 9 ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java | 12 ++ ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml | 31 +++++ ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java | 13 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java | 36 ++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java | 38 ++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java | 18 -- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java | 6 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java | 1 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java | 23 +++ ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java | 57 +++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java | 12 ++ 23 files changed, 294 insertions(+), 32 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java index fccb633..44a79ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.api; +import cn.idev.excel.FastExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.R; @@ -31,7 +32,12 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.Collections; +import java.util.List; /** * <p> @@ -79,13 +85,43 @@ public R<AssetAdDetailVO> getDetail(@ApiParam(name = "id", value = "广告无形资产ID") @PathVariable Integer id) { return R.ok(assetAdService.getDetail(id)); } + + @ApiOperation("下载导入模板") + @GetMapping("/template") + public void getTemplate(HttpServletResponse response){ + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = null; + try { + fileName = URLEncoder.encode("广告无形资产导入模板", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + FastExcel.write(response.getOutputStream(), AssetAdDTO.class) + .sheet("广告无形资产") + .doWrite(Collections.emptyList()); + } catch (IOException e) { + log.error("下载导入模板异常", e); + } + } + @ApiOperation("导入") @Log(title = "导入广告无形资产", businessType = BusinessType.IMPORT) @PostMapping("/import") public R<?> importAssetAd(@RequestPart("file") MultipartFile file){ - //TODO 待完成 - return R.ok(); + if (file.isEmpty()) { + return R.fail("请选择一个文件上传!"); + } + try { + List<AssetAdDTO> list = FastExcel.read(file.getInputStream()).head(AssetAdDTO.class) + .sheet() + .doReadSync(); + assetAdService.importAssetAd(list); + return R.ok(); + } catch (IOException e) { + log.error("文件处理失败", e); + return R.fail("文件处理失败!"); + } } + @ApiOperation("删除") @Transactional(rollbackFor = Exception.class) @DeleteMapping("/{id}") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java new file mode 100644 index 0000000..cb4e0b6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdMakeController.java @@ -0,0 +1,38 @@ +package com.ruoyi.web.controller.api; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.query.ApprovalApplicationAdQuery; +import com.ruoyi.system.service.OaApprovalApplicationAdService; +import com.ruoyi.system.vo.ApprovalApplicationAdVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Lazy; +import org.springframework.validation.annotation.Validated; +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; + +/** + * @author mitao + * @date 2025/10/20 + */ +@Api(tags = {"广告制作申请相关接口"}) +@Slf4j +@Validated +@RestController +@RequestMapping("/asset-ad-make") +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) +public class AssetAdMakeController { + private final OaApprovalApplicationAdService oaApprovalApplicationAdService; + + @PostMapping("/page") + @ApiOperation("广告制作申请分页列表") + public R<IPage<ApprovalApplicationAdVO>> getPageList(@RequestBody ApprovalApplicationAdQuery query){ + return R.ok(oaApprovalApplicationAdService.getPageList(query)); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java index 4ade46e..58966a1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetMainController.java @@ -45,7 +45,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { @@ -74,7 +74,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java index 84275e7..265cead 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java @@ -55,7 +55,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java index b684ab7..ff8562e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationAssetController.java @@ -64,7 +64,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { @@ -154,7 +154,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { @@ -183,7 +183,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java index 249a1d9..f360762 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationChangeController.java @@ -64,8 +64,8 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); - + String deptName = sysUserService.selectUserById(userId).getDeptName(); + // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { pageQuery.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId())); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java index d0e754f..8cb3d6d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationDisposeController.java @@ -64,7 +64,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java index a0c5174..2b3935f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationStorageController.java @@ -136,7 +136,7 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java index 6351495..d6ffde2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalApplicationsController.java @@ -608,7 +608,7 @@ oaApprovalApplicationAd.setNumber(dto.getNumber()); oaApprovalApplicationAd.setTotalAmount(dto.getTotalAmount()); oaApprovalApplicationAd.setSpec(dto.getSpec()); - oaApprovalApplicationAd.setStatus(false); + oaApprovalApplicationAd.setStatus(0); approvalApplicationAdvertisementService.save(oaApprovalApplicationAd); // 根据节点类型 生成代办 oaApprovalTodoService.createApprovalTodos(oaApprovalApplications.getId(), code, approvalFlowNode, diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index 6f393c1..e3b68e4 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -60,11 +60,12 @@ <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.2</version> </dependency> - <!--集成EasyExcel --> + <!--集成FastExcel --> + <!-- https://mvnrepository.com/artifact/cn.idev.excel/fastexcel --> <dependency> - <groupId>com.alibaba</groupId> - <artifactId>easyexcel</artifactId> - <version>2.1.6</version> + <groupId>cn.idev.excel</groupId> + <artifactId>fastexcel</artifactId> + <version>1.3.0</version> </dependency> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java index 016eba0..e3ef974 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdDTO.java @@ -1,5 +1,8 @@ package com.ruoyi.system.dto.asset; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import cn.idev.excel.annotation.write.style.ColumnWidth; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,6 +13,7 @@ * @author mitao * @date 2025/10/17 */ +@ExcelIgnoreUnannotated @Data @ApiModel("广告无形资产数据传输对象") public class AssetAdDTO { @@ -18,16 +22,24 @@ private Integer id; @ApiModelProperty(value = "资产名称") + @ExcelProperty("资产名称") + @ColumnWidth(11) @NotBlank(message = "资产名称") private String assetName; @ApiModelProperty(value = "位置") + @ExcelProperty("位置") + @ColumnWidth(6) private String location; @ApiModelProperty(value = "租赁形式(长期租赁、一次性租赁等)") + @ExcelProperty("租赁形式") + @ColumnWidth(11) private String rentalType; @ApiModelProperty(value = "备注") + @ExcelProperty("备注") + @ColumnWidth(6) private String remarks; @ApiModelProperty(value = "附件URL列表(多个使用英文逗号拼接)") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java index 5812d35..f6c5f90 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationAdMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.model.OaApprovalApplicationAd; +import com.ruoyi.system.query.ApprovalApplicationAdQuery; +import com.ruoyi.system.vo.ApprovalApplicationAdVO; +import org.apache.ibatis.annotations.Param; /** * <p> @@ -13,4 +18,5 @@ */ public interface OaApprovalApplicationAdMapper extends BaseMapper<OaApprovalApplicationAd> { + IPage<ApprovalApplicationAdVO> getPageList(Page<ApprovalApplicationAdVO> page, @Param("query") ApprovalApplicationAdQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java index 4e15866..7fddb21 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/OaApprovalApplicationAd.java @@ -59,7 +59,7 @@ @ApiModelProperty(value = "处理状态 0-待处理 ,1-已处理") @TableField("status") - private Boolean status; + private Integer status; @ApiModelProperty(value = "接单人员") @TableField("order_taker") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java new file mode 100644 index 0000000..8188db6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalApplicationAdQuery.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author mitao + * @date 2025/10/20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel("广告制作申请查询条件") +public class ApprovalApplicationAdQuery extends BasePage { + private static final long serialVersionUID = -5492903582651207121L; + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("部门ID,前端不传") + private Integer deptId; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java index 8b0ebb2..a40fcfa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetAdService.java @@ -8,6 +8,8 @@ import com.ruoyi.system.vo.asset.AssetAdDetailVO; import com.ruoyi.system.vo.asset.AssetAdVO; +import java.util.List; + /** * <p> * 广告无形资产表 服务类 @@ -36,5 +38,16 @@ */ IPage<AssetAdVO> getPageList(AssetAdQuery query); + /** + * 获取详情 + * @param id + * @return + */ AssetAdDetailVO getDetail(Integer id); + + /** + * 导入广告无形资产 + * @param list + */ + void importAssetAd(List<AssetAdDTO> list); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java index 5a0e824..0bef412 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationAdService.java @@ -1,7 +1,10 @@ package com.ruoyi.system.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.OaApprovalApplicationAd; +import com.ruoyi.system.query.ApprovalApplicationAdQuery; +import com.ruoyi.system.vo.ApprovalApplicationAdVO; /** * <p> @@ -13,4 +16,5 @@ */ public interface OaApprovalApplicationAdService extends IService<OaApprovalApplicationAd> { + IPage<ApprovalApplicationAdVO> getPageList(ApprovalApplicationAdQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java index 97ed50b..29d748e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdServiceImpl.java @@ -181,4 +181,16 @@ return detailVO; } + + @Override + public void importAssetAd(List<AssetAdDTO> list) { + List<AssetAd> collect = list.stream().map(item -> { + AssetAd assetAd = BeanUtil.copyProperties(item, AssetAd.class); + assetAd.setAssetTypeId(2); + assetAd.setAssetCode(generateCode()); + assetAd.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); + return assetAd; + }).collect(Collectors.toList()); + saveBatch(collect); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java index ba48eb4..cb0c6bb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetInventoryTaskServiceImpl.java @@ -198,33 +198,25 @@ if (!isAdmin) { try { // 获取当前用户的部门名称 - String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + String deptName = sysUserService.selectUserById(userId).getDeptName(); // 非超级管理员且非资产管理部,设置部门权限 if (!AssetDeptConstant.ASSET_INVENTORY_DEPT_NAMES.contains(deptName)) { hasNoPermission = true; } } catch (Exception e) { + log.error("获取当前登录用户部门信息异常", e); // 如果获取部门信息失败 } } // 1. 查询所有有效的盘点任务,支持筛选条件 LambdaQueryWrapper<AssetInventoryTask> taskWrapper = new LambdaQueryWrapper<>(); - taskWrapper.eq(AssetInventoryTask::getDisabled, false) - .ne(AssetInventoryTask::getStatus, AssetInventoryTaskStatusEnum.CANCELED.getCode()) - .orderByDesc(AssetInventoryTask::getCreateTime); + taskWrapper.ne(AssetInventoryTask::getStatus, AssetInventoryTaskStatusEnum.CANCELED.getCode()) + .orderByDesc(AssetInventoryTask::getCreateTime); // 按部门筛选 if (hasNoPermission) { //没有权限,根据盘点人查询任务列表 - taskWrapper.apply("EXISTS (SELECT 1 FROM asset_inventory_task_item item WHERE item.inventory_task_id = id AND item.user_id = {0})", Math.toIntExact(userId)); - } - - try { - SysUser currentUser = SecurityUtils.getLoginUser().getUser(); - taskWrapper.eq(AssetInventoryTask::getUserId, Math.toIntExact(currentUser.getUserId())); - } catch (Exception e) { - // 如果获取用户信息失败,不应用筛选条件 - log.warn("获取当前用户信息失败,不应用'我的任务'筛选条件", e); + taskWrapper.apply("EXISTS (SELECT 1 FROM asset_inventory_task_item item WHERE item.inventory_task_id = asset_inventory_task.id AND item.user_id = {0})", Math.toIntExact(userId)); } List<AssetInventoryTask> tasks = this.list(taskWrapper); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java index 41186fe..78f5c67 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAdServiceImpl.java @@ -1,9 +1,18 @@ package com.ruoyi.system.service.impl; +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.constants.AssetDeptConstant; import com.ruoyi.system.mapper.OaApprovalApplicationAdMapper; import com.ruoyi.system.model.OaApprovalApplicationAd; +import com.ruoyi.system.query.ApprovalApplicationAdQuery; +import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.OaApprovalApplicationAdService; +import com.ruoyi.system.vo.ApprovalApplicationAdVO; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; /** @@ -15,6 +24,33 @@ * @since 2025-09-15 */ @Service +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class OaApprovalApplicationAdServiceImpl extends ServiceImpl<OaApprovalApplicationAdMapper, OaApprovalApplicationAd> implements OaApprovalApplicationAdService { + private final ISysUserService sysUserService; + @Override + public IPage<ApprovalApplicationAdVO> getPageList(ApprovalApplicationAdQuery query) { + // 数据权限:超级管理员/资产管理部查看所有数据,其他部门查看当前及下级部门的数据 + Long userId = SecurityUtils.getUserId(); + boolean isAdmin = SecurityUtils.isAdmin(userId); + if (!isAdmin) { + try { + // 获取当前用户的部门名称 + String deptName = sysUserService.selectUserById(userId).getDeptName(); + + // 非超级管理员且非资产管理部,设置部门权限 + if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { + query.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId())); + } + } catch (Exception e) { + // 如果获取部门信息失败,默认设置部门权限 + try { + query.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId())); + } catch (Exception ex) { + // ignore parse, leave null if cannot parse + } + } + } + return baseMapper.getPageList(new Page<>(query.getPageNum(), query.getPageSize()), query); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java index b626667..62b6ccb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationChangeServiceImpl.java @@ -162,6 +162,7 @@ vo.setAddress(detail.getAddress()); vo.setOwnershipDeptId(detail.getOwnershipDeptId()); vo.setUserName(detail.getUserName()); + vo.setChangeTime(detail.getChangeTime()); vo.setItems(assetMainVOS); return vo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java index 1af869a..ffb53ed 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java @@ -60,7 +60,7 @@ // 查询当天已生成的申请单号数量 Long count = this.lambdaQuery() - .likeLeft(OaApprovalApplications::getApplicationCode, prefix) + .likeRight(OaApprovalApplications::getApplicationCode, prefix) .ge(OaApprovalApplications::getCreateTime, LocalDate.now().atStartOfDay()) .lt(OaApprovalApplications::getCreateTime, LocalDate.now().plusDays(1).atStartOfDay()) .count(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java new file mode 100644 index 0000000..6326d86 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalApplicationAdVO.java @@ -0,0 +1,57 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author mitao + * @date 2025/10/20 + */ +@Data +@ApiModel("广告制作申请视图对象") +public class ApprovalApplicationAdVO { + + @ApiModelProperty(value = "广告制作申请关联表主键") + private Integer id; + + @ApiModelProperty(value = "事项标题") + private String title; + + @ApiModelProperty(value = "申请日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDateTime createTime; + + @ApiModelProperty(value = "申请人") + private String applicantName; + + @ApiModelProperty(value = "申请人部门") + private String deptName; + + @ApiModelProperty(value = "内容") + private String content; + + @ApiModelProperty(value = "数量") + private Integer number; + + @ApiModelProperty(value = "总金额") + private BigDecimal totalAmount; + + @ApiModelProperty(value = "规格") + private String spec; + + @ApiModelProperty(value = "处理状态 0-待处理 ,1-已处理") + private Integer status; + + @ApiModelProperty(value = "接单人员") + private String orderTaker; + + @ApiModelProperty(value = "处理时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDateTime handleTime; + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml index 22e143d..74ea648 100644 --- a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAdMapper.xml @@ -21,5 +21,36 @@ <sql id="Base_Column_List"> id, approval_application_id, title, content, number, total_amount, spec, status, order_taker, file_url, handle_time </sql> + <select id="getPageList" resultType="com.ruoyi.system.vo.ApprovalApplicationAdVO"> + SELECT oaaa.id, + oaaa.approval_application_id, + oaaa.title, + oaaa.content, + oaaa.number, + oaaa.total_amount, + oaaa.spec, + oaaa.status, + oaaa.order_taker, + oaaa.file_url, + oaaa.handle_time, + su.nick_name as applicant_name, + td.dept_name, + oaa.create_time + FROM oa_approval_applications oaa + LEFT JOIN oa_approval_application_ad oaaa ON oaaa.approval_application_id = oaa.id + LEFT JOIN sys_user su ON oaa.applicant_user_id = su.user_id + LEFT JOIN t_dept td ON oaa.dept_id = td.id + <where> + oaa.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + oaa.approval_id = ${@com.ruoyi.system.emums.ApprovalTypeEnum@ASSET_CHANGE.getCode()} + AND oaa.approval_status = ${@com.ruoyi.system.emums.ApprovalStatusEnum@PASSED.getCode()} + <if test="query.title != null and query.title != ''"> + AND oaaa.title LIKE CONCAT('%', #{query.title}, '%') + </if> + <if test="query.deptId != null"> + AND (od.id = #{query.deptId} OR FIND_IN_SET(#{query.deptId}, od.parent_id)) + </if> + </where> + </select> </mapper> -- Gitblit v1.7.1