release-v1.0 #1

Merged
panchichun merged 41 commits from release-v1.0 into main 2024-09-13 17:03:09 +08:00
16 changed files with 222 additions and 132 deletions
Showing only changes of commit a230a1c2d8 - Show all commits

View File

@ -4,24 +4,26 @@ import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.blueland.bpmclient.model.ProcessInstanceModel; import com.blueland.bpmclient.model.ProcessInstanceModel;
import com.rzdata.common.annotation.Log; import com.rzdata.common.annotation.Log;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.core.controller.BaseController; import com.rzdata.common.core.controller.BaseController;
import com.rzdata.common.core.domain.AjaxResult; import com.rzdata.common.core.domain.AjaxResult;
import com.rzdata.common.core.page.TableDataInfo; import com.rzdata.common.core.page.TableDataInfo;
import com.rzdata.common.enums.BizExceptionCodeEnum;
import com.rzdata.common.enums.BusinessType; import com.rzdata.common.enums.BusinessType;
import com.rzdata.common.enums.RecordStatusEnum; import com.rzdata.common.enums.RecordStatusEnum;
import com.rzdata.common.exception.RestException; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.common.utils.StringUtils; import com.rzdata.common.utils.StringUtils;
import com.rzdata.common.utils.poi.ExcelUtil; import com.rzdata.common.utils.poi.ExcelUtil;
import com.rzdata.system.service.ISysDeptService;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import com.rzdata.web.service.IToolService; import com.rzdata.web.service.IToolService;
import com.rzdata.web.service.IUseApplyService;
import com.rzdata.web.service.WorkflowService; import com.rzdata.web.service.WorkflowService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -40,6 +42,12 @@ public class ToolController extends BaseController
@Autowired @Autowired
private WorkflowService workflowService; private WorkflowService workflowService;
@Autowired
private IUseApplyService iUseApplyService;
@Autowired
private ISysDeptService iSysDeptService;
/** /**
* 查询工具信息列表 * 查询工具信息列表
*/ */
@ -48,6 +56,17 @@ public class ToolController extends BaseController
{ {
startPage(); startPage();
List<Tool> list = toolService.selectToolList(tool); List<Tool> list = toolService.selectToolList(tool);
//前端传传参开启下载权限验证
if (BooleanUtil.isTrue(tool.getDownloadCheck())) {
String userId = SecurityUtils.getUserId().toString();
for (Tool vo:list) {
//已发布的工具 是创建人 或者 配置了下载权限 或者 通过了使用申请的
vo.setDownloadStatus(RecordStatusEnum.DONE.getCode().equals(vo.getRecordStatus())&&
(userId.equals(vo.getCreateBy())||
SecurityUtils.hasPermi(Constants.DOWNLOAD_TOOL_PERMISSION)||
iUseApplyService.checkUseApply(vo.getToolId(),userId)));
}
}
return getDataTable(list); return getDataTable(list);
} }
@ -60,7 +79,7 @@ public class ToolController extends BaseController
{ {
List<Tool> list = toolService.selectToolList(tTool); List<Tool> list = toolService.selectToolList(tTool);
ExcelUtil<Tool> util = new ExcelUtil<Tool>(Tool.class); ExcelUtil<Tool> util = new ExcelUtil<Tool>(Tool.class);
util.exportExcel(response, list, "工具信息数据"); util.exportExcel(response, list, "工具信息数据",tTool.getExcludeFields());
} }
/** /**
@ -78,7 +97,9 @@ public class ToolController extends BaseController
@GetMapping(value = "/bpmc/{bpmcId}") @GetMapping(value = "/bpmc/{bpmcId}")
public AjaxResult getInfoByBpmcId(@PathVariable("bpmcId") String bpmcId) public AjaxResult getInfoByBpmcId(@PathVariable("bpmcId") String bpmcId)
{ {
return success(toolService.getInfoByBpmcId(bpmcId)); Tool tool= toolService.getInfoByBpmcId(bpmcId);
tool.setToolRespDeptName(iSysDeptService.getDeptName(tool.getToolRespDept()));
return success(tool);
} }
@ApiOperation("判断文件名称是否存在 true 存在 false 不存在") @ApiOperation("判断文件名称是否存在 true 存在 false 不存在")

View File

@ -129,8 +129,8 @@ public class UseApplyController extends BaseController
useApplyItemService.updateItemList(useApply.getItemList(),useApply.getId()); useApplyItemService.updateItemList(useApply.getItemList(),useApply.getId());
}else { }else {
UseApply updateStatus = new UseApply(); UseApply updateStatus = new UseApply();
useApply.setId(useApply.getId()); updateStatus.setId(useApply.getId());
useApply.setRecordStatus(useApply.getRecordStatus()); updateStatus.setRecordStatus(useApply.getRecordStatus());
useApplyService.updateUseApply(updateStatus); useApplyService.updateUseApply(updateStatus);
} }
return AjaxResult.success("操作成功",processInstanceModel); return AjaxResult.success("操作成功",processInstanceModel);

View File

@ -9,6 +9,8 @@ import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/** /**
* 工具信息对象 t_tool * 工具信息对象 t_tool
* *
@ -24,70 +26,64 @@ public class Tool extends BaseEntity
private String toolId; private String toolId;
/** 工具编号 */ /** 工具编号 */
@Excel(name = "工具编号")
private String toolCode; private String toolCode;
/** 工具名称 */ /** 工具名称 */
@Excel(name = "工具名称") @Excel(name = "工具名称",sort=1)
private String toolName; private String toolName;
/** 工具类别 */ /** 工具类别 */
@Excel(name = "工具类别") @Excel(name = "工具类别",dictType="tool_type",sort=2)
private String toolType; private String toolType;
/** 来源 */ /** 来源 */
@Excel(name = "来源") @Excel(name = "工具来源",sort=3)
private String toolSource; private String toolSource;
/** 用途 */ /** 用途 */
@Excel(name = "用途") @Excel(name = "工具用途",sort=7)
private String toolUse; private String toolUse;
/** 测试情况 */ /** 测试情况 */
@Excel(name = "试情况") @Excel(name = "评情况",sort=8)
private String testSituation; private String testSituation;
/** 功能描述 */ /** 功能描述 */
@Excel(name = "功能描述") @Excel(name = "功能描述",sort=9)
private String functionDesc; private String functionDesc;
/** 适用条件 */ /** 适用条件 */
@Excel(name = "适用条件") @Excel(name = "适用条件",sort=10)
private String applyCondition; private String applyCondition;
/** 操作说明 */ /** 操作说明 */
@Excel(name = "操作说明") @Excel(name = "操作说明",sort=11)
private String operateExplain; private String operateExplain;
/** 负责人 */ /** 负责人 */
@Excel(name = "负责人")
private String toolPrincipals; private String toolPrincipals;
/** 负责人名称 */ /** 负责人名称 */
@Excel(name = "负责人") @Excel(name = "负责人",sort=4)
private String toolPrincipalsName; private String toolPrincipalsName;
/** 归属单位 */ /** 归属单位 */
@Excel(name = "归属单位")
private String toolRespDept; private String toolRespDept;
@Excel(name = "归属单位",sort=5)
private String toolRespDeptName;
/** 状态 */ /** 状态 */
@Excel(name = "状态") @Excel(name = "状态",dictType="sys_normal_disable",sort=6)
private String status; private String status;
/** 备注 */ /** 备注 */
@Excel(name = "备注",sort=12)
private String remark; private String remark;
/** 发布时间 */ /** 发布时间 */
private String releaseTime; private String releaseTime;
/** 部门对象 */
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
@Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
})
private SysDept dept;
private BpmClientInputModelBo bpmClientInputModel; private BpmClientInputModelBo bpmClientInputModel;
private String recordStatus; private String recordStatus;
@ -95,4 +91,14 @@ public class Tool extends BaseEntity
private Boolean editStatus; private Boolean editStatus;
private String procInstId; private String procInstId;
private Boolean permissionCheck;
private Boolean permission;
private Boolean downloadCheck;
private Boolean downloadStatus;
private List<String> excludeFields;
} }

View File

@ -3,6 +3,7 @@ package com.rzdata.web.mapper;
import java.util.List; import java.util.List;
import com.rzdata.web.domain.UseApply; import com.rzdata.web.domain.UseApply;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import org.apache.ibatis.annotations.Param;
/** /**
* 使用申请Mapper接口 * 使用申请Mapper接口
@ -61,4 +62,6 @@ public interface UseApplyMapper
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyByIds(String[] ids); public int deleteUseApplyByIds(String[] ids);
int checkUseApply(@Param("toolId") String toolId, @Param("userId") String userId);
} }

View File

@ -61,4 +61,6 @@ public interface IUseApplyService
* @return 结果 * @return 结果
*/ */
public int deleteUseApplyById(String id); public int deleteUseApplyById(String id);
boolean checkUseApply(String toolId, String userId);
} }

View File

@ -1,6 +1,8 @@
package com.rzdata.web.service.impl; package com.rzdata.web.service.impl;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.rzdata.common.constant.Constants;
import com.rzdata.common.utils.DateUtils; import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
@ -49,6 +51,9 @@ public class ToolServiceImpl implements IToolService
@Override @Override
public List<Tool> selectToolList(Tool tool) public List<Tool> selectToolList(Tool tool)
{ {
if (BooleanUtil.isTrue(tool.getPermissionCheck())) {
tool.setPermission(SecurityUtils.hasPermi(Constants.VIEW_TOOL_PERMISSION));
}
return toolMapper.selectToolList(tool); return toolMapper.selectToolList(tool);
} }

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.rzdata.common.utils.DateUtils; import com.rzdata.common.utils.DateUtils;
import com.rzdata.common.utils.SecurityUtils; import com.rzdata.common.utils.SecurityUtils;
import com.rzdata.web.domain.Tool; import com.rzdata.web.domain.Tool;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.rzdata.web.mapper.UseApplyMapper; import com.rzdata.web.mapper.UseApplyMapper;
@ -101,4 +102,8 @@ public class UseApplyServiceImpl implements IUseApplyService
{ {
return useApplyMapper.deleteUseApplyById(id); return useApplyMapper.deleteUseApplyById(id);
} }
public boolean checkUseApply(String toolId, String userId){
return useApplyMapper.checkUseApply(toolId, userId)>0;
}
} }

View File

@ -130,5 +130,5 @@ xss:
bpmc: bpmc:
tenantId: TLTC_SYS tenantId: TLTC_SYS
serviceUrl: http://192.168.2.20:8081/ebpm-process-rest/ serviceUrl: http://192.168.2.18:8081/ebpm-process-rest/
uniteWorkUrl: http://localhost/tool-tech/workflowRouter uniteWorkUrl: http://localhost/tool-tech/workflowRouter

View File

@ -18,6 +18,7 @@
<result property="toolPrincipals" column="tool_principals" /> <result property="toolPrincipals" column="tool_principals" />
<result property="toolPrincipalsName" column="tool_principals_name" /> <result property="toolPrincipalsName" column="tool_principals_name" />
<result property="toolRespDept" column="tool_resp_dept" /> <result property="toolRespDept" column="tool_resp_dept" />
<result property="toolRespDeptName" column="tool_resp_dept_name" />
<result property="status" column="status" /> <result property="status" column="status" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -26,7 +27,6 @@
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="procInstId" column="proc_inst_id" /> <result property="procInstId" column="proc_inst_id" />
<result property="recordStatus" column="record_status" /> <result property="recordStatus" column="record_status" />
<association property="dept" javaType="SysDept" resultMap="deptResult" />
</resultMap> </resultMap>
<resultMap id="deptResult" type="SysDept"> <resultMap id="deptResult" type="SysDept">
@ -142,7 +142,7 @@
<select id="selectToolList" parameterType="Tool" resultMap="ToolResult"> <select id="selectToolList" parameterType="Tool" resultMap="ToolResult">
select u.tool_id, u.tool_code, u.tool_name, u.tool_type, u.tool_source, u.tool_use, u.test_situation, u.function_desc, u.apply_condition, u.operate_explain,u.record_status,u.proc_inst_id, select u.tool_id, u.tool_code, u.tool_name, u.tool_type, u.tool_source, u.tool_use, u.test_situation, u.function_desc, u.apply_condition, u.operate_explain,u.record_status,u.proc_inst_id,
u.tool_principals, u.tool_principals_name, u.tool_resp_dept, u.status, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from t_tool u u.tool_principals, u.tool_principals_name, u.tool_resp_dept, u.status, u.create_by, u.create_time, u.remark, d.dept_name as tool_resp_dept_name from t_tool u
left join sys_dept d on u.tool_resp_dept = d.dept_id left join sys_dept d on u.tool_resp_dept = d.dept_id
where 1=1 where 1=1
and u.record_status != 'cancel' and u.record_status != 'cancel'
@ -167,7 +167,7 @@
<if test="toolRespDept != null and toolRespDept != ''"> <if test="toolRespDept != null and toolRespDept != ''">
AND u.tool_resp_dept = #{toolRespDept} AND u.tool_resp_dept = #{toolRespDept}
</if> </if>
<if test="createBy != null and createBy != ''"> <if test="createBy != null and createBy != '' and permission != true">
AND (u.create_by = #{createBy} or u.record_status = 'done') AND (u.create_by = #{createBy} or u.record_status = 'done')
</if> </if>
order by create_time desc order by create_time desc

View File

@ -101,4 +101,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id} #{id}
</foreach> </foreach>
</delete> </delete>
<select id="checkUseApply" resultType="int">
SELECT count(*) FROM `t_use_apply_item` uai
left join `t_use_apply` ua on uai.apply_id = ua.id
WHERE ua.record_status = 'done'
and uai.tool_id = #{toolId}
and ua.user_id = #{userId}
</select>
</mapper> </mapper>

View File

@ -170,4 +170,16 @@ public class Constants
*/ */
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.rzdata.common.utils.file", "com.rzdata.common.config", "com.rzdata.generator" }; "org.springframework", "org.apache", "com.rzdata.common.utils.file", "com.rzdata.common.config", "com.rzdata.generator" };
/**
* 查看审批中的工具权限
*/
public static final String VIEW_TOOL_PERMISSION = "view:doing:tool";
/**
* 查看审批中的工具权限
*/
public static final String DOWNLOAD_TOOL_PERMISSION = "download:done:tool";
} }

View File

@ -210,9 +210,11 @@ public class ExcelUtil<T>
* @param fields 列属性名 示例[单个"name"/多个"id","name"] * @param fields 列属性名 示例[单个"name"/多个"id","name"]
* @throws Exception * @throws Exception
*/ */
public void hideColumn(String... fields) public void hideColumn(List<String> fields)
{ {
this.excludeFields = fields; if (fields!=null) {
this.excludeFields = fields.toArray(new String[0]);
}
} }
public void init(List<T> list, String sheetName, String title, Type type) public void init(List<T> list, String sheetName, String title, Type type)
@ -543,6 +545,20 @@ public class ExcelUtil<T>
exportExcel(response, list, sheetName, StringUtils.EMPTY); exportExcel(response, list, sheetName, StringUtils.EMPTY);
} }
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param response 返回数据
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @return 结果
*/
public void exportExcel(HttpServletResponse response, List<T> list, String sheetName,List<String> excludeFields)
{
hideColumn(excludeFields);
exportExcel(response, list, sheetName, StringUtils.EMPTY);
}
/** /**
* 对list数据源将其里面的数据导入到excel表单 * 对list数据源将其里面的数据导入到excel表单
* *

View File

@ -115,4 +115,6 @@ public interface SysDeptMapper
* @return 结果 * @return 结果
*/ */
public int deleteDeptById(Long deptId); public int deleteDeptById(Long deptId);
String getDeptNameByDeptId(String deptId);
} }

View File

@ -121,4 +121,6 @@ public interface ISysDeptService
* @return 结果 * @return 结果
*/ */
public int deleteDeptById(Long deptId); public int deleteDeptById(Long deptId);
String getDeptName(String deptId);
} }

View File

@ -335,4 +335,9 @@ public class SysDeptServiceImpl implements ISysDeptService
{ {
return getChildList(list, t).size() > 0; return getChildList(list, t).size() > 0;
} }
@Override
public String getDeptName(String deptId){
return deptMapper.getDeptNameByDeptId(deptId);
}
} }

View File

@ -156,4 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update sys_dept set del_flag = '2' where dept_id = #{deptId} update sys_dept set del_flag = '2' where dept_id = #{deptId}
</delete> </delete>
<select id="getDeptNameByDeptId" resultType="string" >
select dept_name from sys_dept where dept_id = #{deptId}
</select>
</mapper> </mapper>