diff --git a/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java index 1735aff..4d1ca7e 100644 --- a/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java +++ b/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java @@ -40,5 +40,4 @@ public class UserWrapper extends BaseEntityWrapper { userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); return userVO; } - } diff --git a/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java b/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java index be31fe8..9a251c5 100644 --- a/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java +++ b/src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java @@ -163,9 +163,14 @@ public class DeviceController extends BladeController { @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入device") public R update(@Valid @RequestBody DeviceDTO device) { - deviceAttachService.remove(Wrappers.lambdaQuery(DeviceAttach.class).eq(DeviceAttach::getDeviceId, device.getId())); + deviceAttachService.remove(Wrappers.lambdaQuery(DeviceAttach.class) + // 删除的id与传入的id相同 + .eq(DeviceAttach::getDeviceId, device.getId())); + // 获取到重复的内容(之情提交过的附件) List attaches = device.getAttaches(); + // 如果有重复的附件 if (CollectionUtil.isNotEmpty(attaches)) { + // attaches.forEach(attache -> attache.setDeviceId(device.getId())); deviceAttachService.saveBatch(attaches); } diff --git a/src/main/java/org/springblade/modules/workOrder/controller/FeedbackController.java b/src/main/java/org/springblade/modules/workOrder/controller/FeedbackController.java index 790df2e..a19c578 100644 --- a/src/main/java/org/springblade/modules/workOrder/controller/FeedbackController.java +++ b/src/main/java/org/springblade/modules/workOrder/controller/FeedbackController.java @@ -21,10 +21,15 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.service.IAttachService; import org.springblade.modules.system.entity.User; import org.springblade.modules.workOrder.dto.FeedbackDTO; +import org.springblade.modules.workOrder.entity.Attachs; +import org.springblade.modules.workOrder.entity.KnowledgeDetails; import org.springblade.modules.workOrder.entity.WorkOrder; +import org.springblade.modules.workOrder.service.IAttachaService; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -44,6 +49,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import static org.springblade.common.enums.DictBizEnum.FEED_BACK_TYPE; +import static org.springblade.common.enums.DictBizEnum.KNOWLEDGE_TYPE; /** * 意见反馈表 控制器 @@ -59,6 +65,8 @@ public class FeedbackController extends BladeController { private final IFeedbackService feedbackService; + private final IAttachaService attachService; + /** * 意见反馈表 详情 */ @@ -70,6 +78,12 @@ public class FeedbackController extends BladeController { User user = UserCache.getUser(detail.getCreateUser()); detail.setFeedUser(user != null ? user.getRealName() : ""); detail.setTypeName(DictBizCache.getValue(FEED_BACK_TYPE, detail.getType())); + + // 附件查询 + QueryWrapper attachQueryWrapper = new QueryWrapper<>(); + LambdaQueryWrapper eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, detail.getId()); + List list = attachService.list(eq); + detail.setAttach(list); return R.data(detail); } /** @@ -89,7 +103,14 @@ public class FeedbackController extends BladeController { User user = UserCache.getUser(record.getCreateUser()); record.setFeedUser(user != null ? user.getRealName() : ""); record.setTypeName(DictBizCache.getValue(FEED_BACK_TYPE, record.getType())); + + // 附件内容查询 + QueryWrapper attachQueryWrapper = new QueryWrapper<>(); + LambdaQueryWrapper eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, record.getId()); + List list = attachService.list(eq); + record.setAttach(list); } + return R.data(pages); } @@ -115,6 +136,14 @@ public class FeedbackController extends BladeController { feedback.setCode("编码格式待定"); feedback.setUnitName("测试单位名称"); feedback.setStatus(0); + + // 将附件集合插入附件表 + List attach = feedback.getAttach(); + if (CollectionUtil.isNotEmpty(attach)) { + attach.forEach(attachVO -> attachVO.setRelationId(feedback.getId())); + attachService.saveBatch(attach); + } + // 接口返回boolean类型 return R.status(feedbackService.saveOrUpdate(feedback)); } @@ -128,6 +157,17 @@ public class FeedbackController extends BladeController { public R update(@Valid @RequestBody Feedback feedback) { feedback.setStatus(1); feedback.setFinishTime(new Date()); + + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Attachs.class).eq(Attachs::getRelationId,feedback.getId()); + attachService.remove(wrapper); + + // 赋值id给附件表 + for(Attachs attachs: feedback.getAttach()){ + attachs.setRelationId(feedback.getId()); + } + // 更新附件表 + attachService.saveOrUpdateBatch(feedback.getAttach()); + return R.status(feedbackService.updateById(feedback)); } @@ -142,6 +182,14 @@ public class FeedbackController extends BladeController { if (feedback.getStatus() == null) { feedback.setStatus(3); } + + // 将附件集合插入附件表 + List attach = feedback.getAttach(); + // 判断是否为空 + if (CollectionUtil.isNotEmpty(attach)) { + attach.forEach(attachVO -> attachVO.setRelationId(feedback.getId())); + attachService.saveBatch(attach); + } return R.status(feedbackService.saveOrUpdate(feedback)); } @@ -155,7 +203,6 @@ public class FeedbackController extends BladeController { return R.status(feedbackService.deleteLogic(Func.toLongList(ids))); } - /** * 导出数据 */ diff --git a/src/main/java/org/springblade/modules/workOrder/controller/KnowledgeDetailsController.java b/src/main/java/org/springblade/modules/workOrder/controller/KnowledgeDetailsController.java index b3a696b..cc6d6a3 100644 --- a/src/main/java/org/springblade/modules/workOrder/controller/KnowledgeDetailsController.java +++ b/src/main/java/org/springblade/modules/workOrder/controller/KnowledgeDetailsController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; +import org.apache.velocity.runtime.directive.Foreach; import org.springblade.common.cache.DictBizCache; import org.springblade.common.cache.UserCache; import org.springblade.core.boot.ctrl.BladeController; @@ -38,6 +39,7 @@ import org.springblade.modules.workOrder.service.IKnowledgeDetailsService; import org.springblade.modules.workOrder.vo.AttachVO; import org.springblade.modules.workOrder.vo.DeviceVO; import org.springblade.modules.workOrder.vo.KnowledgeBaseVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; @@ -61,7 +63,8 @@ public class KnowledgeDetailsController extends BladeController { private final IKnowledgeDetailsService knowledgeDetailsService; - + @Autowired + private IAttachaService attachaService; /** * 知识库内容提报操作 @@ -98,20 +101,23 @@ public class KnowledgeDetailsController extends BladeController { @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入goods") public R> list(@ApiIgnore @RequestParam Map knowledgeDetails, Query query) { + // 查找知识库类型是在dictKey字典类型的内容 LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(KnowledgeDetails.class) .eq(StringUtils.isNotBlank((CharSequence) knowledgeDetails.get("dictKey")), KnowledgeDetails::getDictKey, knowledgeDetails.get("dictKey")); + // 分页查询 IPage pages = knowledgeDetailsService.page(Condition.getPage(query), wrapper); + // 从分页中取出数据 List records = pages.getRecords(); + // 遍历数据,从附件表中取出每一条数据的附件 for (KnowledgeDetails record : records) { - LinkedList attachVOS = new LinkedList<>(); - for (int i = 0; i < record.getAttachUrl().split(",").length; i++) { - AttachVO attachVO1 = new AttachVO(); - attachVO1.setAttachName(record.getAttachName().split(",")[i]); - attachVO1.setAttachUrl(record.getAttachUrl().split(",")[i]); - attachVOS.add(attachVO1); - } - record.setAttach(attachVOS); + + QueryWrapper attachQueryWrapper = new QueryWrapper<>(); + + LambdaQueryWrapper eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, record.getId()); + List list = attachaService.list(eq); + record.setAttach(list); + record.setDictKeyStr(DictBizCache.getValue(KNOWLEDGE_TYPE, record.getDictKey())); } return R.data(pages); @@ -125,18 +131,21 @@ public class KnowledgeDetailsController extends BladeController { @ApiOperation(value = "详情", notes = "传入device") public R detail(KnowledgeDetails knowledgeDetails) { KnowledgeDetails detail = knowledgeDetailsService.getById(knowledgeDetails.getId()); + if(detail == null){ + return R.fail("数据不存在"); + } LinkedList attachVOS = new LinkedList<>(); - for (int i = 0; i < detail.getAttachUrl().split(",").length; i++) { - AttachVO attachVO1 = new AttachVO(); - attachVO1.setAttachName(detail.getAttachName().split(",")[i]); - attachVO1.setAttachUrl(detail.getAttachUrl().split(",")[i]); - attachVOS.add(attachVO1); - } + QueryWrapper attachQueryWrapper = new QueryWrapper<>(); +// attachQueryWrapper.eq() + // 附件查询 + LambdaQueryWrapper eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, detail.getId()); + List list = attachaService.list(eq); + detail.setAttach(list); KnowledgeDetails knowledgeBaseVO = Objects.requireNonNull(BeanUtil.copy(detail, KnowledgeDetails.class)); - knowledgeBaseVO.setAttach(attachVOS); +// knowledgeBaseVO.setAttach(attachVOS); return R.data(knowledgeBaseVO); } @@ -151,12 +160,49 @@ public class KnowledgeDetailsController extends BladeController { } /** - * 资料表 修改 + * 知识库 修改 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入information") public R update(@Valid @RequestBody KnowledgeDetails knowledgeDetails) { + + // 判断入参内容 + if(knowledgeDetails.getId() == null){ + return R.fail(400, "输入参数不合法"); + } + + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Attachs.class).eq(Attachs::getRelationId,knowledgeDetails.getId()); + + attachaService.remove(wrapper); + +// for(Attachs attachs : knowledgeDetails.getAttach()){ +// // 排除当前记录的ID +// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(Attachs.class) +// .ne(Attachs::getId, attachs.getId()) +// .eq(Attachs::getRelationId,knowledgeDetails.getId()); +// } + + // 查询更新无关的数据,逻辑删除 +// List list = attachaService.list(wrapper); +// List longs = new LinkedList<>(); +// for(Attachs attachs : list){ +// longs.add(attachs.getId()); +// } + + // 将本次更新与数据库中不相关的数据逻辑删除 +// attachaService.deleteLogic(longs); +// attachaService.remove(wrapper); + + // 赋值id给附件表 + for(Attachs attachs: knowledgeDetails.getAttach()){ + attachs.setRelationId(knowledgeDetails.getId()); + } + // 更新附件表 + attachaService.saveOrUpdateBatch(knowledgeDetails.getAttach()); + + // 更新知识库表,返回保存数据 return R.status(knowledgeDetailsService.updateById(knowledgeDetails)); } } + diff --git a/src/main/java/org/springblade/modules/workOrder/entity/Attachs.java b/src/main/java/org/springblade/modules/workOrder/entity/Attachs.java index 3d5b26c..3b4652a 100644 --- a/src/main/java/org/springblade/modules/workOrder/entity/Attachs.java +++ b/src/main/java/org/springblade/modules/workOrder/entity/Attachs.java @@ -2,6 +2,7 @@ package org.springblade.modules.workOrder.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; @@ -11,6 +12,7 @@ import java.util.Date; 附件表实体类 */ @Data +@TableName("busin_attachs") @EqualsAndHashCode(callSuper = true) public class Attachs extends BaseEntity { diff --git a/src/main/java/org/springblade/modules/workOrder/entity/Feedback.java b/src/main/java/org/springblade/modules/workOrder/entity/Feedback.java index d881e6f..f58ffa4 100644 --- a/src/main/java/org/springblade/modules/workOrder/entity/Feedback.java +++ b/src/main/java/org/springblade/modules/workOrder/entity/Feedback.java @@ -6,8 +6,10 @@ import lombok.Data; import io.swagger.annotations.ApiModel; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import org.springblade.modules.resource.entity.Attach; import java.util.Date; +import java.util.List; /** * 意见反馈表 实体类 @@ -72,4 +74,10 @@ public class Feedback extends BaseEntity { */ @TableField(exist = false) private String typeName; + + /** + * 附件集合 + */ + @TableField(exist = false) + private List attach; } diff --git a/src/main/java/org/springblade/modules/workOrder/entity/KnowledgeDetails.java b/src/main/java/org/springblade/modules/workOrder/entity/KnowledgeDetails.java index aa1cba1..10f206a 100644 --- a/src/main/java/org/springblade/modules/workOrder/entity/KnowledgeDetails.java +++ b/src/main/java/org/springblade/modules/workOrder/entity/KnowledgeDetails.java @@ -33,15 +33,21 @@ public class KnowledgeDetails extends BaseEntity { private Long id; // 知识库类型 private String dictKey; - // 附件url - @JsonIgnore - private String attachUrl; - // 附件名 - @JsonIgnore - private String attachName; + + // 知识库类型(中文) + @TableField(exist = false) + private String dictKeyStr; +// // 附件url +// @JsonIgnore +// private String attachUrl; +// // 附件名 +// @JsonIgnore +// private String attachName; // 知识库内容 private String content; + + // 附件类型 @TableField(exist = false) - private List attach; + private List attach; } diff --git a/src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeDetailsServiceImpl.java b/src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeDetailsServiceImpl.java index eeb8c7c..2a1fd51 100644 --- a/src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeDetailsServiceImpl.java +++ b/src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeDetailsServiceImpl.java @@ -63,9 +63,6 @@ public class KnowledgeDetailsServiceImpl extends BaseServiceImpl attachsList = new LinkedList<>(); -// for (AttachVO attachVO : knowledgeDetailsDTO.getAttach()){ -// Attachs attachs = new Attachs(); -// attachs.setAttachUrl(attachVO.getAttachUrl()); -// attachs.setAttachName(attachVO.getAttachName()); -// attachs.setCreateUser(knowledgeDetailsDTO.getUserId()); -// attachs.setRelationId(knowledgeDetails.getId()); -// attachsList.add(attachs); -// } -// // 插入附件 -// insertAttach(attachsList); - List attach = knowledgeDetailsDTO.getAttach(); if (CollectionUtil.isNotEmpty(attach)) { attach.forEach(attachVO -> attachVO.setRelationId(knowledgeDetails.getId())); @@ -125,19 +109,4 @@ public class KnowledgeDetailsServiceImpl extends BaseServiceImpl attachs){ - - // 插入当前时间 - for (Attachs attach : attachs) { - attach.setCreateTime(new Date()); - } - - // 插入附件 - attachsMapper.insertBatch(attachs); - } } diff --git a/src/main/java/org/springblade/modules/workOrder/vo/AttachVO.java b/src/main/java/org/springblade/modules/workOrder/vo/AttachVO.java index e24ff27..95a9730 100644 --- a/src/main/java/org/springblade/modules/workOrder/vo/AttachVO.java +++ b/src/main/java/org/springblade/modules/workOrder/vo/AttachVO.java @@ -3,6 +3,7 @@ package org.springblade.modules.workOrder.vo; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springblade.modules.workOrder.entity.Attachs; import org.springblade.modules.workOrder.entity.DeviceAttach; /** @@ -12,7 +13,7 @@ import org.springblade.modules.workOrder.entity.DeviceAttach; * @since 2024-10-14 */ @Data -public class AttachVO { +public class AttachVO extends Attachs { private static final long serialVersionUID = 1L; private String attachUrl;