zhuwei 1 жил өмнө
parent
commit
40c54c6e31
20 өөрчлөгдсөн 763 нэмэгдсэн , 30 устгасан
  1. 1 0
      src/main/java/org/springblade/common/config/BladeConfiguration.java
  2. 162 0
      src/main/java/org/springblade/modules/project/controller/WorkFocusController.java
  3. 98 0
      src/main/java/org/springblade/modules/project/excel/WorkFocusExcel.java
  4. 63 0
      src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.java
  5. 33 0
      src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.xml
  6. 45 0
      src/main/java/org/springblade/modules/project/pojo/dto/WorkFocusDTO.java
  7. 79 0
      src/main/java/org/springblade/modules/project/pojo/entity/WorkFocusEntity.java
  8. 46 0
      src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusVO.java
  9. 61 0
      src/main/java/org/springblade/modules/project/service/IWorkFocusService.java
  10. 63 0
      src/main/java/org/springblade/modules/project/service/impl/WorkFocusServiceImpl.java
  11. 59 0
      src/main/java/org/springblade/modules/project/wrapper/WorkFocusWrapper.java
  12. 3 8
      src/main/java/org/springblade/modules/system/controller/MenuController.java
  13. 12 1
      src/main/java/org/springblade/modules/system/controller/RoleController.java
  14. 5 4
      src/main/java/org/springblade/modules/system/mapper/MenuMapper.java
  15. 13 2
      src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml
  16. 4 0
      src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java
  17. 2 2
      src/main/java/org/springblade/modules/system/service/IMenuService.java
  18. 8 8
      src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java
  19. 2 1
      src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java
  20. 4 4
      src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java

+ 1 - 0
src/main/java/org/springblade/common/config/BladeConfiguration.java

@@ -55,6 +55,7 @@ public class BladeConfiguration implements WebMvcConfigurer {
 		secureRegistry.setEnabled(true);
 		secureRegistry.excludePathPatterns("/blade-auth/**");
 		secureRegistry.excludePathPatterns("/blade-system/tenant/info");
+		secureRegistry.excludePathPatterns("/blade-system/tenant/info");
 		secureRegistry.excludePathPatterns("/blade-auth/oauth/token");
 		secureRegistry.excludePathPatterns("/blade-flow/process/resource-view");
 		secureRegistry.excludePathPatterns("/blade-flow/process/diagram-view");

+ 162 - 0
src/main/java/org/springblade/modules/project/controller/WorkFocusController.java

@@ -0,0 +1,162 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.controller;
+
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import jakarta.validation.Valid;
+
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusVO;
+import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
+import org.springblade.modules.project.wrapper.WorkFocusWrapper;
+import org.springblade.modules.project.service.IWorkFocusService;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import java.util.Map;
+import java.util.List;
+import jakarta.servlet.http.HttpServletResponse;
+
+/**
+ * 附件表 控制器
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("blade-attach/workfocus")
+@Tag(name = "附件表", description = "附件表接口")
+public class WorkFocusController extends BladeController {
+
+	private final IWorkFocusService workfocusService;
+
+	/**
+	 * 附件表 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@Operation(summary = "详情", description  = "传入workfocus")
+	public R<WorkFocusVO> detail(WorkFocusEntity workfocus) {
+		WorkFocusEntity detail = workfocusService.getOne(Condition.getQueryWrapper(workfocus));
+		return R.data(WorkFocusWrapper.build().entityVO(detail));
+	}
+	/**
+	 * 附件表 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@Operation(summary = "分页", description  = "传入workfocus")
+	public R<IPage<WorkFocusVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> workfocus, Query query) {
+		IPage<WorkFocusEntity> pages = workfocusService.page(Condition.getPage(query), Condition.getQueryWrapper(workfocus, WorkFocusEntity.class));
+		return R.data(WorkFocusWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 附件表 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "分页", description  = "传入workfocus")
+	public R<IPage<WorkFocusVO>> page(WorkFocusVO workfocus, Query query) {
+		IPage<WorkFocusVO> pages = workfocusService.selectWorkFocusPage(Condition.getPage(query), workfocus);
+		return R.data(pages);
+	}
+
+	/**
+	 * 附件表 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@Operation(summary = "新增", description  = "传入workfocus")
+	public R save(@Valid @RequestBody WorkFocusEntity workfocus) {
+		return R.status(workfocusService.save(workfocus));
+	}
+
+	/**
+	 * 附件表 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@Operation(summary = "修改", description  = "传入workfocus")
+	public R update(@Valid @RequestBody WorkFocusEntity workfocus) {
+		return R.status(workfocusService.updateById(workfocus));
+	}
+
+	/**
+	 * 附件表 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@Operation(summary = "新增或修改", description  = "传入workfocus")
+	public R submit(@Valid @RequestBody WorkFocusEntity workfocus) {
+		return R.status(workfocusService.saveOrUpdate(workfocus));
+	}
+
+	/**
+	 * 附件表 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@Operation(summary = "逻辑删除", description  = "传入ids")
+	public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(workfocusService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+	/**
+	 * 导出数据
+	 */
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	@GetMapping("/export-workfocus")
+	@ApiOperationSupport(order = 9)
+	@Operation(summary = "导出数据", description  = "传入workfocus")
+	public void exportWorkFocus(@Parameter(hidden = true) @RequestParam Map<String, Object> workfocus, BladeUser bladeUser, HttpServletResponse response) {
+		QueryWrapper<WorkFocusEntity> queryWrapper = Condition.getQueryWrapper(workfocus, WorkFocusEntity.class);
+		//if (!AuthUtil.isAdministrator()) {
+		//	queryWrapper.lambda().eq(WorkFocus::getTenantId, bladeUser.getTenantId());
+		//}
+		queryWrapper.lambda().eq(WorkFocusEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+		List<WorkFocusExcel> list = workfocusService.exportWorkFocus(queryWrapper);
+		ExcelUtil.export(response, "附件表数据" + DateUtil.time(), "附件表数据表", list, WorkFocusExcel.class);
+	}
+
+}

+ 98 - 0
src/main/java/org/springblade/modules/project/excel/WorkFocusExcel.java

@@ -0,0 +1,98 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.excel;
+
+
+import lombok.Data;
+
+import java.util.Date;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import java.io.Serializable;
+import java.io.Serial;
+
+
+/**
+ * 附件表 Excel实体类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class WorkFocusExcel implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 工作要点阶段
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("工作要点阶段")
+	private Integer workFocusStage;
+	/**
+	 * 目标任务
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("目标任务")
+	private String targetPlan;
+	/**
+	 * 开始年份
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("开始年份")
+	private Integer startYear;
+	/**
+	 * 结束年份
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("结束年份")
+	private Integer endYear;
+	/**
+	 * 工作任务
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("工作任务")
+	private String workPlan;
+	/**
+	 * 责任单位
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("责任单位")
+	private String dutyUnit;
+	/**
+	 * 是否已删除
+	 */
+	@ColumnWidth(20)
+	@ExcelProperty("是否已删除")
+	private Integer isDeleted;
+
+}

+ 63 - 0
src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.java

@@ -0,0 +1,63 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.mapper;
+
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusVO;
+import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * 附件表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+public interface WorkFocusMapper extends BaseMapper<WorkFocusEntity> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param workfocus
+	 * @return
+	 */
+	List<WorkFocusVO> selectWorkFocusPage(IPage page, WorkFocusVO workfocus);
+
+
+	/**
+	 * 获取导出数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<WorkFocusExcel> exportWorkFocus(@Param("ew") Wrapper<WorkFocusEntity> queryWrapper);
+
+}

+ 33 - 0
src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.xml

@@ -0,0 +1,33 @@
+<?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="org.springblade.modules.project.mapper.WorkFocusMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="workfocusResultMap" type="org.springblade.modules.project.pojo.entity.WorkFocusEntity">
+        <result column="id" property="id"/>
+        <result column="work_focus_stage" property="workFocusStage"/>
+        <result column="target_plan" property="targetPlan"/>
+        <result column="start_year" property="startYear"/>
+        <result column="end_year" property="endYear"/>
+        <result column="work_plan" property="workPlan"/>
+        <result column="duty_unit" property="dutyUnit"/>
+        <result column="create_time" property="createTime"/>
+        <result column="create_user" property="createUser"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="status" property="status"/>
+        <result column="create_dept" property="createDept"/>
+    </resultMap>
+
+
+    <select id="selectWorkFocusPage" resultMap="workfocusResultMap">
+        select * from d_work_focus where is_deleted = 0
+    </select>
+
+
+    <select id="exportWorkFocus" resultType="org.springblade.modules.project.pojo.excel.WorkFocusExcel">
+        SELECT * FROM d_work_focus ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 45 - 0
src/main/java/org/springblade/modules/project/pojo/dto/WorkFocusDTO.java

@@ -0,0 +1,45 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.pojo.dto;
+
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+
+/**
+ * 附件表 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WorkFocusDTO extends WorkFocusEntity {
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+}

+ 79 - 0
src/main/java/org/springblade/modules/project/pojo/entity/WorkFocusEntity.java

@@ -0,0 +1,79 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.pojo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.util.Date;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 附件表 实体类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+@TableName("d_work_focus")
+@Schema(description = "WorkFocus对象")
+@EqualsAndHashCode(callSuper = true)
+public class WorkFocusEntity extends TenantEntity {
+
+	/**
+	 * 工作要点阶段
+	 */
+	@Schema(description = "工作要点阶段")
+	private Integer workFocusStage;
+	/**
+	 * 目标任务
+	 */
+	@Schema(description = "目标任务")
+	private String targetPlan;
+	/**
+	 * 开始年份
+	 */
+	@Schema(description = "开始年份")
+	private Integer startYear;
+	/**
+	 * 结束年份
+	 */
+	@Schema(description = "结束年份")
+	private Integer endYear;
+	/**
+	 * 工作任务
+	 */
+	@Schema(description = "工作任务")
+	private String workPlan;
+	/**
+	 * 责任单位
+	 */
+	@Schema(description = "责任单位")
+	private String dutyUnit;
+
+}

+ 46 - 0
src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusVO.java

@@ -0,0 +1,46 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.pojo.vo;
+
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.core.tool.node.INode;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+
+/**
+ * 附件表 视图实体类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WorkFocusVO extends WorkFocusEntity {
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+}

+ 61 - 0
src/main/java/org/springblade/modules/project/service/IWorkFocusService.java

@@ -0,0 +1,61 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.service;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusVO;
+import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import java.util.List;
+
+/**
+ * 附件表 服务类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+public interface IWorkFocusService extends BaseService<WorkFocusEntity> {
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param workfocus
+	 * @return
+	 */
+	IPage<WorkFocusVO> selectWorkFocusPage(IPage<WorkFocusVO> page, WorkFocusVO workfocus);
+
+
+	/**
+	 * 导出数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<WorkFocusExcel> exportWorkFocus(Wrapper<WorkFocusEntity> queryWrapper);
+
+}

+ 63 - 0
src/main/java/org/springblade/modules/project/service/impl/WorkFocusServiceImpl.java

@@ -0,0 +1,63 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.service.impl;
+
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusVO;
+import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
+import org.springblade.modules.project.mapper.WorkFocusMapper;
+import org.springblade.modules.project.service.IWorkFocusService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import java.util.List;
+
+/**
+ * 附件表 服务实现类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Service
+public class WorkFocusServiceImpl extends BaseServiceImpl<WorkFocusMapper, WorkFocusEntity> implements IWorkFocusService {
+
+	@Override
+	public IPage<WorkFocusVO> selectWorkFocusPage(IPage<WorkFocusVO> page, WorkFocusVO workfocus) {
+		return page.setRecords(baseMapper.selectWorkFocusPage(page, workfocus));
+	}
+
+
+	@Override
+	public List<WorkFocusExcel> exportWorkFocus(Wrapper<WorkFocusEntity> queryWrapper) {
+		List<WorkFocusExcel> workfocusList = baseMapper.exportWorkFocus(queryWrapper);
+		//workfocusList.forEach(workfocus -> {
+		//	workfocus.setTypeName(DictCache.getValue(DictEnum.YES_NO, WorkFocus.getType()));
+		//});
+		return workfocusList;
+	}
+
+}

+ 59 - 0
src/main/java/org/springblade/modules/project/wrapper/WorkFocusWrapper.java

@@ -0,0 +1,59 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusVO;
+import java.util.Objects;
+
+/**
+ * 附件表 包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+public class WorkFocusWrapper extends BaseEntityWrapper<WorkFocusEntity, WorkFocusVO>  {
+
+	public static WorkFocusWrapper build() {
+		return new WorkFocusWrapper();
+ 	}
+
+	@Override
+	public WorkFocusVO entityVO(WorkFocusEntity workfocus) {
+		WorkFocusVO workfocusVO = Objects.requireNonNull(BeanUtil.copyProperties(workfocus, WorkFocusVO.class));
+
+		//User createUser = UserCache.getUser(workfocus.getCreateUser());
+		//User updateUser = UserCache.getUser(workfocus.getUpdateUser());
+		//workfocusVO.setCreateUserName(createUser.getName());
+		//workfocusVO.setUpdateUserName(updateUser.getName());
+
+		return workfocusVO;
+	}
+
+
+}

+ 3 - 8
src/main/java/org/springblade/modules/system/controller/MenuController.java

@@ -81,7 +81,6 @@ public class MenuController extends BladeController {
 	 * 详情
 	 */
 	@GetMapping("/detail")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 1)
 	@Operation(summary = "详情", description = "传入menu")
 	public R<MenuVO> detail(Menu menu) {
@@ -97,7 +96,7 @@ public class MenuController extends BladeController {
 		@Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
 		@Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
 	})
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+
 	@ApiOperationSupport(order = 2)
 	@Operation(summary = "列表", description = "传入menu")
 	public R<List<MenuVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> menu) {
@@ -113,7 +112,6 @@ public class MenuController extends BladeController {
 		@Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
 		@Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
 	})
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 3)
 	@Operation(summary = "懒加载列表", description = "传入menu")
 	public R<List<MenuVO>> lazyList(Long parentId, @Parameter(hidden = true) @RequestParam Map<String, Object> menu,BladeUser bladeUser) {
@@ -130,7 +128,6 @@ public class MenuController extends BladeController {
 		@Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
 		@Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
 	})
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 4)
 	@Operation(summary = "菜单列表", description = "传入menu")
 	public R<List<MenuVO>> menuList(@Parameter(hidden = true) @RequestParam Map<String, Object> menu) {
@@ -158,7 +155,6 @@ public class MenuController extends BladeController {
 	 * 新增或修改
 	 */
 	@PostMapping("/submit")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 6)
 	@Operation(summary = "新增或修改", description = "传入menu")
 	public R submit(@Valid @RequestBody Menu menu,BladeUser bladeUser) {
@@ -182,7 +178,6 @@ public class MenuController extends BladeController {
 	 * 删除
 	 */
 	@PostMapping("/remove")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
 	@ApiOperationSupport(order = 7)
 	@Operation(summary = "删除", description = "传入ids")
 	public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) {
@@ -198,7 +193,7 @@ public class MenuController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@Operation(summary = "前端菜单数据", description = "前端菜单数据")
 	public R<List<MenuVO>> routes(BladeUser user, Long topMenuId) {
-		List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
+		List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId,user.getClientId());
 		return R.data(list);
 	}
 
@@ -220,7 +215,7 @@ public class MenuController extends BladeController {
 	@ApiOperationSupport(order = 10)
 	@Operation(summary = "前端按钮数据", description = "前端按钮数据")
 	public R<List<MenuVO>> buttons(BladeUser user) {
-		List<MenuVO> list = menuService.buttons(user.getRoleId());
+		List<MenuVO> list = menuService.buttons(user.getRoleId(),user.getClientId());
 		return R.data(list);
 	}
 

+ 12 - 1
src/main/java/org/springblade/modules/system/controller/RoleController.java

@@ -58,6 +58,7 @@ import org.springblade.modules.system.pojo.vo.RoleVO;
 import org.springblade.modules.system.wrapper.RoleWrapper;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -137,6 +138,7 @@ public class RoleController extends BladeController {
 	public R submit(@Valid @RequestBody Role role) {
 		CacheUtil.clear(SYS_CACHE);
 		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+
 		return R.status(roleService.submit(role));
 	}
 
@@ -161,7 +163,16 @@ public class RoleController extends BladeController {
 	public R grant(@RequestBody GrantVO grantVO) {
 		CacheUtil.clear(SYS_CACHE);
 		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
-		boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds());
+		List<Long> roleIds = grantVO.getRoleIds();
+		if(roleIds!=null && Func.isNull(roleIds.get(0))){
+			Role role = new Role();
+			role.setParentId(0L);
+			role.setRoleName(grantVO.getRoleName());
+			roleService.submit(role);
+			roleIds = new ArrayList<>();
+			roleIds.add(role.getId());
+		}
+		boolean temp = roleService.grant(roleIds, grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds());
 		return R.status(temp);
 	}
 

+ 5 - 4
src/main/java/org/springblade/modules/system/mapper/MenuMapper.java

@@ -26,6 +26,7 @@
 package org.springblade.modules.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.swagger.v3.oas.annotations.Parameter;
 import org.springblade.core.tool.node.TreeNode;
 import org.springblade.modules.system.pojo.dto.MenuDTO;
 import org.springblade.modules.system.pojo.entity.Menu;
@@ -79,7 +80,7 @@ public interface MenuMapper extends BaseMapper<Menu> {
 	 * @param roleId
 	 * @return
 	 */
-	List<TreeNode> grantTreeByRole(List<Long> roleId);
+	List<TreeNode> grantTreeByRole(List<Long> roleId,String clientId);
 
 	/**
 	 * 顶部菜单树形结构
@@ -148,7 +149,7 @@ public interface MenuMapper extends BaseMapper<Menu> {
 	 * @param roleId
 	 * @return
 	 */
-	List<Menu> roleMenuByRoleId(List<Long> roleId);
+	List<Menu> roleMenuByRoleId(List<Long> roleId,String clientId);
 
 	/**
 	 * 权限配置菜单
@@ -192,10 +193,10 @@ public interface MenuMapper extends BaseMapper<Menu> {
 	/**
 	 * 按钮树形结构
 	 *
-	 * @param roleId
+	 * @param list
 	 * @return
 	 */
-	List<Menu> buttons(List<Long> roleId);
+	List<Menu> buttons(List<Long> list, String clientId);
 
 	/**
 	 * 获取配置的角色权限

+ 13 - 2
src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml

@@ -137,10 +137,13 @@
     <select id="roleMenuByRoleId" resultMap="menuResultMap">
         select * from blade_menu where is_deleted = 0 and id IN
             ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
-                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                <foreach collection="roleId" index="index" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             )
+        <if test="param2!=null">
+            and sys_type = #{param2}
+        </if>
     </select>
 
     <select id="roleMenuByTopMenuId" resultMap="menuResultMap">
@@ -223,7 +226,9 @@
                         #{item}
                     </foreach>
                   ) ) )
-
+                <if test="param2!=null">
+                    and sys_type = #{param2}
+                 </if>
             UNION ALL
 
             SELECT
@@ -243,6 +248,9 @@
                 <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>)
+            <if test="param2!=null">
+                and sys_type = #{param2}
+            </if>
         ) a ORDER BY sort
     </select>
 
@@ -263,6 +271,9 @@
                 #{item}
             </foreach> )
           )
+        <if test="param2!=null">
+            and sys_type = #{param2}
+        </if>
         order by sort
     </select>
 

+ 4 - 0
src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java

@@ -57,4 +57,8 @@ public class GrantVO implements Serializable {
 	@Schema(description = "apiScopeIds集合")
 	private List<Long> apiScopeIds;
 
+	@Schema(description = "角色名称")
+	private String roleName;
+
+
 }

+ 2 - 2
src/main/java/org/springblade/modules/system/service/IMenuService.java

@@ -67,7 +67,7 @@ public interface IMenuService extends IService<Menu> {
 	 * @param topMenuId
 	 * @return
 	 */
-	List<MenuVO> routes(String roleId, Long topMenuId);
+	List<MenuVO> routes(String roleId, Long topMenuId,String clientId);
 
 	/**
 	 * 菜单树形结构
@@ -84,7 +84,7 @@ public interface IMenuService extends IService<Menu> {
 	 * @param roleId
 	 * @return
 	 */
-	List<MenuVO> buttons(String roleId);
+	List<MenuVO> buttons(String roleId,String clientId);
 
 	/**
 	 * 树形结构

+ 8 - 8
src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java

@@ -90,7 +90,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 	}
 
 	@Override
-	public List<MenuVO> routes(String roleId, Long topMenuId) {
+	public List<MenuVO> routes(String roleId, Long topMenuId,String clientId) {
 		if (StringUtil.isBlank(roleId)) {
 			return null;
 		}
@@ -102,12 +102,12 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 		}
 		// 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单
 		else if (!AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
-			roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId)));
+			roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId),clientId));
 		}
 		// 顶部菜单请求返回对应角色权限菜单
 		else {
 			// 角色配置对应菜单
-			List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId));
+			List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId),clientId);
 			// 反向递归角色菜单所有父级
 			List<Menu> routes = new LinkedList<>(roleIdMenus);
 			roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
@@ -149,8 +149,8 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 	}
 
 	@Override
-	public List<MenuVO> buttons(String roleId) {
-		List<Menu> buttons = (AuthUtil.isAdministrator()) ? baseMapper.allButtons() : baseMapper.buttons(Func.toLongList(roleId));
+	public List<MenuVO> buttons(String roleId,String clientId) {
+		List<Menu> buttons = (AuthUtil.isAdministrator()) ? baseMapper.allButtons() : baseMapper.buttons(Func.toLongList(roleId),clientId);
 		MenuWrapper menuWrapper = new MenuWrapper();
 		return menuWrapper.listNodeVO(buttons);
 	}
@@ -162,7 +162,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 
 	@Override
 	public List<TreeNode> grantTree(BladeUser user) {
-		List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
+		List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()),user.getClientId());
 		return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
 	}
 
@@ -287,13 +287,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
 		if (menu.getId() == null) {
 			menuQueryWrapper.eq(Menu::getCode, menu.getCode()).or(
 				wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
-			);
+			).eq(Menu::getSysType,menu.getSysType());
 		} else {
 			menuQueryWrapper.ne(Menu::getId, menu.getId()).and(
 				wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
 					o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
 				)
-			);
+			).and(wrapper -> wrapper.eq(Menu::getSysType, menu.getSysType()));
 		}
 		Long cnt = baseMapper.selectCount(menuQueryWrapper);
 		if (cnt > 0L) {

+ 2 - 1
src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java

@@ -90,7 +90,8 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds) {
-		return grantRoleMenu(roleIds, menuIds) && grantDataScope(roleIds, dataScopeIds) && grantApiScope(roleIds, apiScopeIds);
+		//return grantRoleMenu(roleIds, menuIds) && grantDataScope(roleIds, dataScopeIds) && grantApiScope(roleIds, apiScopeIds);
+		return grantRoleMenu(roleIds, menuIds);
 	}
 
 	private boolean grantRoleMenu(List<Long> roleIds, List<Long> menuIds) {

+ 4 - 4
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java

@@ -104,7 +104,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				throw new ServiceException("当前租户已到最大账号额度!");
 			}
 		}
-		user.setPassText(user.getPassText());
+		user.setPassText(user.getPassword());
+		user.setDeptId("1123598813738675202");
 		if (Func.isNotEmpty(user.getPassword())) {
 			user.setPassword(DigestUtil.encrypt(user.getPassword()));
 		}
@@ -112,9 +113,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 		if (userCount > 0L && Func.isEmpty(user.getId())) {
 			throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
 		}
-		//System.out.println(save(user));
-		//System.out.println(submitUserDept(user));
-		return save(user);
+
+		return save(user) && submitUserDept(user);
 	}
 
 	@Override