知识库和意见反馈模块新增附件内容添加

main
jinna 1 year ago
parent 6a1bacefa5
commit 8c434629ce
  1. 1
      src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java
  2. 7
      src/main/java/org/springblade/modules/workOrder/controller/DeviceController.java
  3. 49
      src/main/java/org/springblade/modules/workOrder/controller/FeedbackController.java
  4. 80
      src/main/java/org/springblade/modules/workOrder/controller/KnowledgeDetailsController.java
  5. 2
      src/main/java/org/springblade/modules/workOrder/entity/Attachs.java
  6. 8
      src/main/java/org/springblade/modules/workOrder/entity/Feedback.java
  7. 20
      src/main/java/org/springblade/modules/workOrder/entity/KnowledgeDetails.java
  8. 31
      src/main/java/org/springblade/modules/workOrder/service/impl/KnowledgeDetailsServiceImpl.java
  9. 3
      src/main/java/org/springblade/modules/workOrder/vo/AttachVO.java

@ -40,5 +40,4 @@ public class UserWrapper extends BaseEntityWrapper<User, UserVO> {
userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
return userVO;
}
}

@ -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<DeviceAttach> attaches = device.getAttaches();
// 如果有重复的附件
if (CollectionUtil.isNotEmpty(attaches)) {
//
attaches.forEach(attache -> attache.setDeviceId(device.getId()));
deviceAttachService.saveBatch(attaches);
}

@ -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<Attachs> attachQueryWrapper = new QueryWrapper<>();
LambdaQueryWrapper<Attachs> eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, detail.getId());
List<Attachs> 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<Attachs> attachQueryWrapper = new QueryWrapper<>();
LambdaQueryWrapper<Attachs> eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, record.getId());
List<Attachs> 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<Attachs> 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<Attachs> 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<Attachs> 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)));
}
/**
* 导出数据
*/

@ -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<IPage<KnowledgeDetails>> list(@ApiIgnore @RequestParam Map<String, Object> knowledgeDetails, Query query) {
// 查找知识库类型是在dictKey字典类型的内容
LambdaQueryWrapper<KnowledgeDetails> wrapper = Wrappers.lambdaQuery(KnowledgeDetails.class)
.eq(StringUtils.isNotBlank((CharSequence) knowledgeDetails.get("dictKey")), KnowledgeDetails::getDictKey, knowledgeDetails.get("dictKey"));
// 分页查询
IPage<KnowledgeDetails> pages = knowledgeDetailsService.page(Condition.getPage(query), wrapper);
// 从分页中取出数据
List<KnowledgeDetails> records = pages.getRecords();
// 遍历数据,从附件表中取出每一条数据的附件
for (KnowledgeDetails record : records) {
LinkedList<AttachVO> 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<Attachs> attachQueryWrapper = new QueryWrapper<>();
LambdaQueryWrapper<Attachs> eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, record.getId());
List<Attachs> 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<KnowledgeDetails> detail(KnowledgeDetails knowledgeDetails) {
KnowledgeDetails detail = knowledgeDetailsService.getById(knowledgeDetails.getId());
if(detail == null){
return R.fail("数据不存在");
}
LinkedList<AttachVO> 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<Attachs> attachQueryWrapper = new QueryWrapper<>();
// attachQueryWrapper.eq()
// 附件查询
LambdaQueryWrapper<Attachs> eq = attachQueryWrapper.lambda().eq(Attachs::getRelationId, detail.getId());
List<Attachs> 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<Attachs> wrapper = Wrappers.lambdaQuery(Attachs.class).eq(Attachs::getRelationId,knowledgeDetails.getId());
attachaService.remove(wrapper);
// for(Attachs attachs : knowledgeDetails.getAttach()){
// // 排除当前记录的ID
// LambdaQueryWrapper<Attachs> wrapper = Wrappers.lambdaQuery(Attachs.class)
// .ne(Attachs::getId, attachs.getId())
// .eq(Attachs::getRelationId,knowledgeDetails.getId());
// }
// 查询更新无关的数据,逻辑删除
// List<Attachs> list = attachaService.list(wrapper);
// List<Long> 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));
}
}

@ -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 {

@ -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<Attachs> attach;
}

@ -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<AttachVO> attach;
private List<Attachs> attach;
}

@ -63,9 +63,6 @@ public class KnowledgeDetailsServiceImpl extends BaseServiceImpl<KnowledgeDetail
private final IAttachaService attachaService;
@Autowired
AttachsMapper attachsMapper;
@Override
public KnowledgeDetails insertKnowledgeContent(KnowledgeDetailsDTO knowledgeDetailsDTO) {
@ -93,21 +90,8 @@ public class KnowledgeDetailsServiceImpl extends BaseServiceImpl<KnowledgeDetail
// 插入数据
int insert = knowledgeDetailsMapper.insert(knowledgeDetails);
// boolean save = this.save(knowledgeDetails);
// 插入附件表
// List<Attachs> 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<Attachs> attach = knowledgeDetailsDTO.getAttach();
if (CollectionUtil.isNotEmpty(attach)) {
attach.forEach(attachVO -> attachVO.setRelationId(knowledgeDetails.getId()));
@ -125,19 +109,4 @@ public class KnowledgeDetailsServiceImpl extends BaseServiceImpl<KnowledgeDetail
}
return null;
}
/*
保存附件通用方法
*/
public void insertAttach(List<Attachs> attachs){
// 插入当前时间
for (Attachs attach : attachs) {
attach.setCreateTime(new Date());
}
// 插入附件
attachsMapper.insertBatch(attachs);
}
}

@ -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;

Loading…
Cancel
Save