修复文件ossbug全部改用ossId二次请求方式

This commit is contained in:
2025-05-21 11:55:43 +08:00
parent 1715aa3639
commit 69de2b28cf
21 changed files with 73 additions and 147 deletions

View File

@@ -66,7 +66,6 @@ public class SysOssController extends BaseController {
*
* @param file 文件
*/
@SaCheckPermission("system:oss:upload")
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Map<String, String>> upload(@RequestPart("file") MultipartFile file,
@@ -87,7 +86,6 @@ public class SysOssController extends BaseController {
*
* @param ossId OSS对象ID
*/
@SaCheckPermission("system:oss:download")
@GetMapping("/download/{ossId}")
public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException {
iSysOssService.download(ossId,response);

View File

@@ -34,7 +34,6 @@ public class WfTaskController {
* 取消申请
*/
@PostMapping(value = "/stopProcess")
@SaCheckPermission("workflow:process:cancel")
public R stopProcess(@RequestBody WfTaskBo bo) {
flowTaskService.stopProcess(bo);
return R.ok();
@@ -44,7 +43,6 @@ public class WfTaskController {
* 撤回流程
*/
@PostMapping(value = "/revokeProcess")
@SaCheckPermission("workflow:process:revoke")
public R revokeProcess(@RequestBody WfTaskBo bo) {
flowTaskService.revokeProcess(bo);
return R.ok();
@@ -55,7 +53,6 @@ public class WfTaskController {
* @param taskId 流程任务Id
*/
@GetMapping(value = "/processVariables/{taskId}")
@SaCheckPermission("workflow:process:query")
public R processVariables(@PathVariable(value = "taskId") String taskId) {
return R.ok(flowTaskService.getProcessVariables(taskId));
}
@@ -64,7 +61,6 @@ public class WfTaskController {
* 审批任务
*/
@PostMapping(value = "/complete")
@SaCheckPermission("workflow:process:approval")
public R complete(@RequestBody WfTaskBo bo) {
flowTaskService.complete(bo);
return R.ok();
@@ -74,7 +70,6 @@ public class WfTaskController {
* 拒绝任务
*/
@PostMapping(value = "/reject")
@SaCheckPermission("workflow:process:approval")
public R taskReject(@RequestBody WfTaskBo taskBo) {
flowTaskService.taskReject(taskBo);
return R.ok();
@@ -84,7 +79,6 @@ public class WfTaskController {
* 退回任务
*/
@PostMapping(value = "/return")
@SaCheckPermission("workflow:process:approval")
public R taskReturn(@RequestBody WfTaskBo bo) {
flowTaskService.taskReturn(bo);
return R.ok();
@@ -94,7 +88,6 @@ public class WfTaskController {
* 获取所有可回退的节点
*/
@PostMapping(value = "/returnList")
@SaCheckPermission("workflow:process:query")
public R findReturnTaskList(@RequestBody WfTaskBo bo) {
return R.ok(flowTaskService.findReturnTaskList(bo));
}
@@ -103,7 +96,6 @@ public class WfTaskController {
* 删除任务
*/
@DeleteMapping(value = "/delete")
@SaCheckPermission("workflow:process:approval")
public R delete(@RequestBody WfTaskBo bo) {
flowTaskService.deleteTask(bo);
return R.ok();
@@ -113,7 +105,6 @@ public class WfTaskController {
* 认领/签收任务
*/
@PostMapping(value = "/claim")
@SaCheckPermission("workflow:process:claim")
public R claim(@RequestBody WfTaskBo bo) {
flowTaskService.claim(bo);
return R.ok();
@@ -123,7 +114,6 @@ public class WfTaskController {
* 取消认领/签收任务
*/
@PostMapping(value = "/unClaim")
@SaCheckPermission("workflow:process:claim")
public R unClaim(@RequestBody WfTaskBo bo) {
flowTaskService.unClaim(bo);
return R.ok();
@@ -133,7 +123,6 @@ public class WfTaskController {
* 委派任务
*/
@PostMapping(value = "/delegate")
@SaCheckPermission("workflow:process:approval")
public R delegate(@RequestBody WfTaskBo bo) {
if (ObjectUtil.hasNull(bo.getTaskId(), bo.getUserId())) {
return R.fail("参数错误!");
@@ -146,7 +135,6 @@ public class WfTaskController {
* 转办任务
*/
@PostMapping(value = "/transfer")
@SaCheckPermission("workflow:process:approval")
public R transfer(@RequestBody WfTaskBo bo) {
if (ObjectUtil.hasNull(bo.getTaskId(), bo.getUserId())) {
return R.fail("参数错误!");

View File

@@ -42,7 +42,6 @@ public class SysOaDetailController extends BaseController {
/**
* 查询进出账明细列表
*/
@SaCheckPermission("oa:detail:list")
@GetMapping("/list")
public TableDataInfo<SysOaDetailVo> list(SysOaDetailBo bo, PageQuery pageQuery) {
return iSysOaDetailService.queryPageList(bo, pageQuery);
@@ -51,7 +50,6 @@ public class SysOaDetailController extends BaseController {
/**
* 导出进出账明细列表
*/
@SaCheckPermission("oa:detail:export")
@Log(title = "进出账明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SysOaDetailBo bo, HttpServletResponse response) {
@@ -64,7 +62,6 @@ public class SysOaDetailController extends BaseController {
*
* @param detailId 主键
*/
@SaCheckPermission("oa:detail:query")
@GetMapping("/{detailId}")
public R<SysOaDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long detailId) {
@@ -74,7 +71,6 @@ public class SysOaDetailController extends BaseController {
/**
* 新增进出账明细
*/
@SaCheckPermission("oa:detail:add")
@Log(title = "进出账明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -85,7 +81,6 @@ public class SysOaDetailController extends BaseController {
/**
* 修改进出账明细
*/
@SaCheckPermission("oa:detail:edit")
@Log(title = "进出账明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -98,7 +93,6 @@ public class SysOaDetailController extends BaseController {
*
* @param detailIds 主键串
*/
@SaCheckPermission("oa:detail:remove")
@Log(title = "进出账明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{detailIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -116,4 +116,8 @@ public class EmployeeOnboardingBo extends BaseEntity {
private String nickName;
private Long status;
private String checkInFile;
private String registerFile;
private String trainFile;
}

View File

@@ -49,5 +49,7 @@ public class EmployeeFilesVo {
*/
private Date uploadTime;
private Long ossId;
}

View File

@@ -138,5 +138,4 @@ public class SysOaContractVo {
@ExcelProperty(value = "备注")
private String remark;
private List<SysOss> fileList;
}

View File

@@ -10,6 +10,7 @@ import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.oa.domain.SysOaDetail;
import com.ruoyi.oa.domain.SysOaFinance;
import com.ruoyi.oa.domain.SysOaProject;
import com.ruoyi.system.domain.SysOss;
import lombok.Data;
import java.util.Date;

View File

@@ -241,7 +241,6 @@ public class SysOaProjectVo {
*/
private Double prePay;
private List<SysOss> fileList;
/**
* 代号类型
*/

View File

@@ -111,6 +111,4 @@ public class SysOaTaskItemVo {
private String nickName;
private List<SysOss> itemFileList;
}

View File

@@ -211,6 +211,4 @@ public class SysOaTaskVo {
private List<SysOaTaskItemVo> taskItemVoList;
private String files;
private List<SysOss> fileList;
}

View File

@@ -12,6 +12,8 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.oa.domain.vo.FileUser;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 文件档案管理Mapper接口
*
@@ -23,4 +25,6 @@ public interface EmployeeFilesMapper extends BaseMapperPlus<EmployeeFilesMapper,
Page<FileUser> selectFileUserVoPage(Page<Object> build,@Param(Constants.WRAPPER) Wrapper<SysUser> userLambdaQueryWrapper);
void deleteByUserId(Long userId);
List<EmployeeFilesVo> selectVoListPlus(@Param(Constants.WRAPPER) LambdaQueryWrapper<EmployeeFiles> employeeFilesLambdaQueryWrapper);
}

View File

@@ -83,7 +83,7 @@ public class EmployeeFilesServiceImpl implements IEmployeeFilesService {
@Override
public Boolean insertByBo(UserFilesVo userFilesVo) {
// 删除该用户所有的文件,重新填入
// baseMapper.deleteByUserId(userFilesVo.getUserId()); 似乎不用删
// baseMapper.deleteByUserId(userFilesVo.getUserId());
List<String> fileUrls = new ArrayList<>();
if (userFilesVo.getUserId() != null){
fileUrls = Arrays.stream( userFilesVo.getFiles().split(","))
@@ -93,6 +93,7 @@ public class EmployeeFilesServiceImpl implements IEmployeeFilesService {
fileUrls.forEach(file -> {
EmployeeFiles employeeFiles = new EmployeeFiles();
// 此处的filePath已经改为ossId
employeeFiles.setFilePath(file);
employeeFiles.setUserId(userFilesVo.getUserId());
baseMapper.insert(employeeFiles);
@@ -138,7 +139,7 @@ public class EmployeeFilesServiceImpl implements IEmployeeFilesService {
EmployeeFilesBo employeeFilesBo = new EmployeeFilesBo();
employeeFilesBo.setUserId(userId);
LambdaQueryWrapper<EmployeeFiles> employeeFilesLambdaQueryWrapper = buildQueryWrapper(employeeFilesBo);
List<EmployeeFilesVo> list = baseMapper.selectVoList(employeeFilesLambdaQueryWrapper);
List<EmployeeFilesVo> list = baseMapper.selectVoListPlus(employeeFilesLambdaQueryWrapper);
userFilesVo.setFileList(list);
return userFilesVo;
}

View File

@@ -9,16 +9,22 @@ import com.ruoyi.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.EmployeeFiles;
import com.ruoyi.oa.domain.EmployeeOnboarding;
import com.ruoyi.oa.domain.bo.EmployeeOnboardingBo;
import com.ruoyi.oa.domain.vo.EmployeeFilesVo;
import com.ruoyi.oa.domain.vo.EmployeeOnboardingVo;
import com.ruoyi.oa.domain.vo.FileUser;
import com.ruoyi.oa.domain.vo.UserFilesVo;
import com.ruoyi.oa.mapper.EmployeeOnboardingMapper;
import com.ruoyi.oa.service.IEmployeeFilesService;
import com.ruoyi.oa.service.IEmployeeOnboardingService;
import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@@ -38,6 +44,9 @@ public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService
@Autowired
private ISysUserService userService;
@Autowired
private IEmployeeFilesService employeeFilesService;
/**
* 查询入职管理
*/
@@ -108,6 +117,24 @@ public class EmployeeOnboardingServiceImpl implements IEmployeeOnboardingService
EmployeeOnboarding update = BeanUtil.toBean(bo, EmployeeOnboarding.class);
validEntityBeforeSave(update);
StringBuilder files = new StringBuilder();
if (bo.getCheckInFile() != null) {
files.append(bo.getCheckInFile())
.append(",");
}
if (bo.getRegisterFile() != null) {
files.append(bo.getRegisterFile())
.append(",");
}
if (bo.getTrainFile() != null) {
files.append(bo.getTrainFile())
.append(",");
}
UserFilesVo filesVo = new UserFilesVo();
filesVo.setUserId(bo.getUserId());
filesVo.setFiles(String.valueOf(files));
employeeFilesService.insertByBo(filesVo);
return baseMapper.updateByUserId(update);
}

View File

@@ -151,9 +151,11 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
List<Long> workerIdList = new ArrayList<>();
// 拿到所有的执行人id列表进行遍历添加
if (bo.getWorkerIds()!=null) {
System.out.println(bo.getWorkerIds());
workerIdList = Arrays.stream(bo.getWorkerIds().split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
System.out.println(workerIdList);
}else{
// 适配文件上传
bo.setBeginTime(new Date());
@@ -166,13 +168,9 @@ public class SysOaTaskServiceImpl implements ISysOaTaskService {
for (Long workerId : workerIdList) {
SysOaTask add = BeanUtil.toBean(bo, SysOaTask.class);
add.setCreateUserId(LoginHelper.getUserId());
validEntityBeforeSave(add);
add.setOriginFinishTime(add.getFinishTime());
add.setWorkerId(workerId);
flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setTaskId(add.getTaskId());
}
// 判断是否为报工模式
if (bo.getStatus()==1L){
// 这里新增item数据为单个条目

View File

@@ -7,6 +7,7 @@
<resultMap type="com.ruoyi.oa.domain.EmployeeFiles" id="EmployeeFilesResult">
<result property="fileId" column="file_id"/>
<result property="userId" column="user_id"/>
<result property="fileType" column="file_type"/>
<result property="fileName" column="file_name"/>
<result property="filePath" column="file_path"/>
@@ -34,6 +35,20 @@
eo.joining_date
</select>
<select id="selectVoListPlus" resultType="com.ruoyi.oa.domain.vo.EmployeeFilesVo">
select
employee_files.upload_time as uploadTime,
so.oss_id as ossId,
original_name as fileName,
url as filePath,
so.create_time,
so.create_by,
so.update_time,
so.update_by
from employee_files
left join sys_oss so on find_in_set(so.oss_id, file_path)
${ew.getCustomSqlSegment}
</select>
</mapper>

View File

@@ -71,9 +71,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
soc.del_flag,
soc.proc_ins_id,
soc.completed_time,
so.oss_id,
url,
so.file_name,
socd.claim_detail_id,
claim_type,
socd.begin_time ,
@@ -91,7 +88,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sop.project_name
FROM sys_oa_claim soc
left join sys_oa_claim_detail socd on soc.claim_id = socd.claim_id
left join sys_oss so on FIND_IN_SET(so.oss_id, soc.file_ids) > 0
left join sys_oa_project sop on soc.project_id = sop.project_id
where soc.claim_id = #{claimId}
</select>
@@ -142,9 +138,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
soc.del_flag,
soc.proc_ins_id,
soc.completed_time,
so.oss_id,
url,
so.file_name,
socd.claim_detail_id,
claim_type,
socd.begin_time ,
@@ -162,7 +155,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sop.project_name
FROM sys_oa_claim soc
left join sys_oa_claim_detail socd on soc.claim_id = socd.claim_id
left join sys_oss so on FIND_IN_SET(so.oss_id, soc.file_ids) > 0
left join sys_oa_project sop on soc.project_id = sop.project_id
where soc.proc_ins_id = #{procInsId}
</select>

View File

@@ -22,14 +22,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<collection property="fileList" ofType="com.ruoyi.system.domain.SysOss" javaType="list">
<result property="ossId" column="oss_id"/>
<result property="fileName" column="file_name"/>
<result property="fileSuffix" column="file_suffix"/>
<result property="originalName" column="original_name"/>
<result property="url" column="url"/>
<result property="service" column="service"/>
</collection>
</resultMap>
@@ -89,15 +81,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
soc.create_by,
soc.create_time,
soc.update_by,
soc.update_time,
so.oss_id,
file_name,
original_name,
file_suffix,
url,
service,
is_public,
owner_id
soc.update_time
from sys_oa_contract soc
left join sys_oss so on FIND_IN_SET(so.oss_id, soc.accessory)
${ew.getCustomSqlSegment}

View File

@@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="receiveAccountName" column="receive_account_name"/>
<association property="project" column="project_id" javaType="SysOaProject" resultMap="SysOaProjectResult"/>
<association property="detailList" javaType="java.util.List" resultMap="detailResult"/>
</resultMap>
<resultMap id="detailResult" type="SysOaDetail">

View File

@@ -61,14 +61,7 @@
<result property="count" column="count"/>
<result property="laborCost" column="labor_cost"/>
<result property="projectCode" column="project_code"/>
<collection property="fileList" ofType="com.ruoyi.system.domain.SysOss" javaType="list">
<result property="ossId" column="oss_id"/>
<result property="fileName" column="file_name"/>
<result property="fileSuffix" column="file_suffix"/>
<result property="originalName" column="original_name"/>
<result property="url" column="url"/>
<result property="service" column="service"/>
</collection>
</resultMap>
@@ -587,17 +580,9 @@
postpone_time,
color,
trade_type,
pre_pay,
so.oss_id,
file_name,
original_name,
file_suffix,
url,
service,
is_public,
owner_id
pre_pay
from sys_oa_project sop
left join sys_oss so on FIND_IN_SET(so.oss_id, sop.accessory)
where sop.project_id = #{projectId}
</select>

View File

@@ -31,28 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="endTime" column="itemEndTime"/>
<result property="remark" column="itemRemark"/>
<result property="completedTime" column="itemCompletedTime"/>
<!-- ========== 附件列表:多对一 折叠 ========= -->
<collection property="itemFileList"
ofType="com.ruoyi.system.domain.SysOss"
javaType="java.util.ArrayList">
<result property="ossId" column="item_oss_id"/>
<result property="url" column="item_attach_url"/>
<result property="fileName" column="item_attach_file_name"/>
<result property="createBy" column="item_create_by"/>
<result property="isPublic" column="item_is_public"/>
<result property="ownerId" column="item_owner_id"/>
</collection>
</collection>
<!-- ========== 附件列表:多对一 折叠 ========= -->
<collection property="fileList"
ofType="com.ruoyi.system.domain.SysOss"
javaType="java.util.ArrayList">
<result property="ossId" column="oss_id"/>
<result property="url" column="attach_url"/>
<result property="fileName" column="attach_file_name"/>
<result property="createBy" column="create_by"/>
<result property="isPublic" column="is_public"/>
<result property="ownerId" column="owner_id"/>
</collection>
</resultMap>
@@ -159,10 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
su1.nick_name AS createUserNickName,
su2.nick_name AS workerNickName,
(SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0) AS accessory,
sot.accessory,
sot.rank_number,
sot.remark,
sot.task_rank,
@@ -201,24 +177,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
ELSE 0
END AS overDays,
so.oss_id AS oss_id,
so.url AS attach_url,
so.original_name AS attach_file_name, -- 如有需要
so.create_by,
so.is_public,
so.owner_id,
so2.oss_id AS item_oss_is,
so2.url AS item_attach_url,
so2.original_name AS item_attach_file_name, -- 如有需要
so2.create_by as item_create_by,
so2.is_public as item_is_public,
so2.owner_id as item_owner_id
soti.files
FROM sys_oa_task sot
LEFT JOIN sys_user su1
ON su1.user_id = sot.create_user_id
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
LEFT JOIN sys_oa_project sop ON sop.project_id = sot.project_id
LEFT JOIN sys_oss so ON FIND_IN_SET(so.oss_id, sot.accessory)
LEFT JOIN sys_oa_task_item soti ON soti.task_id = sot.task_id
LEFT JOIN sys_oss so2 ON FIND_IN_SET(so2.oss_id, soti.files)
WHERE
@@ -337,12 +301,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sot.postponements,
sot.completed_time,
sot.content,
(
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
) AS accessory,
sot.accessory,
sot.rank_number,
sot.remark,
sot.task_rank,
@@ -365,11 +324,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
THEN DATEDIFF(NOW(), COALESCE(sot.finish_time, soti.end_time))
ELSE 0
END AS overDays,
(
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
) AS files
soti.files
FROM sys_oa_task_user sotu
left join sys_oa_task sot on sot.task_id = sotu.task_id
@@ -390,18 +345,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
sot.create_user_id,
sot.worker_id,
(
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
) AS accessory,
sop.accessory,
su1.nick_name AS createUserNickName,
su2.nick_name AS workerNickName,
(
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
) AS files
soti.files
FROM sys_oa_task sot
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
LEFT JOIN sys_user su2 ON su2.user_id = sot.worker_id
@@ -410,18 +358,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
sot.project_id = #{projectId}
AND sot.del_flag = '0'
AND (
IFNULL((
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
), '') != ''
OR IFNULL((
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
FROM sys_oss so
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
), '') != ''
)
</select>

View File

@@ -390,6 +390,7 @@ public class WfProcessServiceImpl extends FlowServiceFactory implements IWfProce
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId())
.singleResult();
if (Objects.nonNull(historicProcessInstance)) {}
Long userId = Long.parseLong(historicProcessInstance.getStartUserId());
String nickName = userService.selectNickNameById(userId);
flowTask.setStartUserId(userId);