From 06b8996a6024b183694dbc958a893da63c5f0230 Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Fri, 27 Jun 2025 16:04:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=99=84=E4=BB=B6=E5=A2=9E=E5=8A=A0=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../znpt/enums/AttachBusinessTypeEnum.java | 49 +++++++++++++++++++ .../dite/znpt/service/AttachInfoService.java | 13 ++++- .../service/impl/AttachInfoServiceImpl.java | 27 +++++++--- .../service/impl/ProjectTaskServiceImpl.java | 12 +++-- .../web/controller/AttachInfoController.java | 8 +-- .../znpt/web/controller/CommonController.java | 6 +++ 6 files changed, 99 insertions(+), 16 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java diff --git a/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java new file mode 100644 index 0000000..9f58fff --- /dev/null +++ b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java @@ -0,0 +1,49 @@ +package com.dite.znpt.enums; + +import cn.hutool.json.JSONObject; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: gaoxiong + * @Date: 2025/4/24 21:25 + * @Description: + */ +@Getter +public enum AttachBusinessTypeEnum { + PROJECT_TASK("PROJECT_TASK", "项目任务"), + ; + private final String code; + private final String desc; + + AttachBusinessTypeEnum(String code, String desc){ + this.code = code; + this.desc = desc; + } + + public static AttachBusinessTypeEnum getByCode(String code){ + for (AttachBusinessTypeEnum e : AttachBusinessTypeEnum.values() ) { + if(e.code.equals(code)){ + return e; + } + } + return null; + } + + public static String getDescByCode(String code){ + AttachBusinessTypeEnum e = getByCode(code); + return null == e ? null : e.desc; + } + + public static List listAll(){ + List list = new ArrayList<>(AttachBusinessTypeEnum.values().length); + for (AttachBusinessTypeEnum e : AttachBusinessTypeEnum.values() ) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set(e.code, e.desc); + list.add(jsonObject); + } + return list; + } +} diff --git a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java index c24dd80..539e47b 100644 --- a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java +++ b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java @@ -2,6 +2,7 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.AttachInfoEntity; +import com.dite.znpt.enums.AttachBusinessTypeEnum; import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -37,7 +38,15 @@ public interface AttachInfoService extends IService { * @author huise23 * @date 2025/04/11 23:17 **/ - void deleteByBusinessIds(List businessIds, String businessType); + void deleteByBusinessId(String businessId, AttachBusinessTypeEnum typeEnum); + + /** + * 功能描述:删除附件信息 + * + * @author huise23 + * @date 2025/04/11 23:17 + **/ + void deleteByBusinessIds(List businessIds, AttachBusinessTypeEnum typeEnum); /** * 功能描述:更新附件关联的业务id @@ -45,6 +54,6 @@ public interface AttachInfoService extends IService { * @author huise23 * @date 2025/04/11 23:17 **/ - void updateBusinessIdByAttachIds(String businessId, List attachIds); + void updateBusinessIdByAttachIds(String businessId, List attachIds, AttachBusinessTypeEnum typeEnum); } diff --git a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java index 6fd21ab..50df536 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java @@ -1,17 +1,21 @@ package com.dite.znpt.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.domain.entity.AttachInfoEntity; +import com.dite.znpt.enums.AttachBusinessTypeEnum; import com.dite.znpt.enums.FilePathEnum; import com.dite.znpt.service.AttachInfoService; import com.dite.znpt.mapper.FileInfoMapper; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.dite.znpt.util.PageUtil; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; @@ -53,7 +57,7 @@ public class AttachInfoServiceImpl extends ServiceImpl saveData(String businessType, MultipartFile[] files) { - String temPathPrefix = FilePathEnum.ATTACH.getFileAbsolutePath().concat(DateUtil.today()).concat(FileUtil.FILE_SEPARATOR); + String temPathPrefix = FilePathEnum.ATTACH.getFileAbsolutePath().concat(businessType).concat(FileUtil.FILE_SEPARATOR).concat(DateUtil.today()).concat(FileUtil.FILE_SEPARATOR); if (!FileUtil.exist(temPathPrefix)) { FileUtil.mkdir(temPathPrefix); } @@ -76,15 +80,19 @@ public class AttachInfoServiceImpl extends ServiceImpl businessIds, String businessType) { + public void deleteByBusinessId(String businessId, AttachBusinessTypeEnum typeEnum) { + deleteByBusinessIds(ListUtil.toList(businessId), typeEnum); + } + + public void deleteByBusinessIds(List businessIds, AttachBusinessTypeEnum typeEnum) { lambdaUpdate().in(AttachInfoEntity::getBusinessId, businessIds) - .eq(StrUtil.isNotEmpty(businessType), AttachInfoEntity::getBusinessType, businessType).remove(); + .eq(AttachInfoEntity::getBusinessType, typeEnum.getCode()).remove(); } /** @@ -96,10 +104,15 @@ public class AttachInfoServiceImpl extends ServiceImpl attachIds) { + @Transactional(rollbackFor = Exception.class) + public void updateBusinessIdByAttachIds(String businessId, List attachIds, AttachBusinessTypeEnum typeEnum) { + baseMapper.delete(Wrappers.lambdaUpdate().eq(AttachInfoEntity::getBusinessId, businessId) + .eq(AttachInfoEntity::getBusinessType, typeEnum.getCode())); if (CollUtil.isEmpty(attachIds)) { return; } - lambdaUpdate().in(AttachInfoEntity::getAttachId, attachIds).set(AttachInfoEntity::getBusinessId, businessId).update(); + lambdaUpdate().in(AttachInfoEntity::getAttachId, attachIds) + .eq(AttachInfoEntity::getBusinessType, typeEnum.getCode()) + .set(AttachInfoEntity::getBusinessId, businessId).update(); } } diff --git a/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java index b5c31a9..d734aee 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java @@ -13,6 +13,7 @@ import com.dite.znpt.domain.vo.ProjectTaskListReq; import com.dite.znpt.domain.vo.ProjectTaskResp; import com.dite.znpt.domain.vo.ProjectTaskReq; import com.dite.znpt.domain.vo.ProjectTaskStartReq; +import com.dite.znpt.enums.AttachBusinessTypeEnum; import com.dite.znpt.enums.ProjectTaskStateEnum; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.ProjectTaskGroupMapper; @@ -97,7 +98,7 @@ public class ProjectTaskServiceImpl extends ServiceImpl list = lambdaQuery().eq(ProjectTaskEntity::getTaskGroupId, groupId).list().stream().map(ProjectTaskEntity::getTaskId).toList(); + attachInfoService.deleteByBusinessIds(list, AttachBusinessTypeEnum.PROJECT_TASK); + baseMapper.deleteByIds(list); } /** diff --git a/web/src/main/java/com/dite/znpt/web/controller/AttachInfoController.java b/web/src/main/java/com/dite/znpt/web/controller/AttachInfoController.java index bf01aa2..14c59f3 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/AttachInfoController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/AttachInfoController.java @@ -22,14 +22,14 @@ public class AttachInfoController { private AttachInfoService attachInfoService; @ApiOperation(value = "新增附件信息", httpMethod = "POST") - @PostMapping - public Result add(@RequestParam("businessType") String businessType, @RequestParam("file") MultipartFile file) { + @PostMapping("/{businessType}") + public Result add(@PathVariable("businessType") String businessType, @RequestParam("file") MultipartFile file) { return Result.ok(attachInfoService.saveData(businessType, new MultipartFile[]{file}).get(0)); } @ApiOperation(value = "批量新增附件信息", httpMethod = "POST") - @PostMapping("/batch") - public Result> add(@RequestParam("businessType") String businessType, @RequestParam("files") MultipartFile[] files) { + @PostMapping("/batch/{businessType}") + public Result> add(@PathVariable("businessType") String businessType, @RequestParam("files") MultipartFile[] files) { return Result.ok(attachInfoService.saveData(businessType, files)); } diff --git a/web/src/main/java/com/dite/znpt/web/controller/CommonController.java b/web/src/main/java/com/dite/znpt/web/controller/CommonController.java index 626cdf2..94f0d86 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/CommonController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/CommonController.java @@ -151,5 +151,11 @@ public class CommonController { return Result.ok(InsuranceStatusEnum.listAll()); } + @ApiOperation(value = "查询附件业务类型", httpMethod = "GET") + @GetMapping("/list/attach_business_type") + public Result listAttachBusinessType(){ + return Result.ok(AttachBusinessTypeEnum.listAll()); + } + }