Browse Source

1.新增附件映射 附件下载

2.新增标签模块
3.修改绑定标签部分问题
4.修改编辑文档部分bug
master
xia 3 years ago
parent
commit
4d196c0625
  1. 17
      archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java
  2. 2
      archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java
  3. 29
      archives/src/main/java/com/storeroom/modules/archives/controller/TagController.java
  4. 40
      archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesTag.java
  5. 20
      archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesTagRepository.java
  6. 2
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java
  7. 10
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesTagService.java
  8. 4
      archives/src/main/java/com/storeroom/modules/archives/service/dto/ArchivesFileDTO.java
  9. 22
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java
  10. 22
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java
  11. 28
      common/src/main/java/com/storeroom/config/WebMvcConfig.java
  12. 3
      system/src/main/java/com/storeroom/modules/security/config/SpringSecurityConfig.java
  13. 6
      system/src/main/resources/application-dev.yml

17
archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java

@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.OutputStream;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@RestController
@ -117,6 +118,14 @@ public class ArchivesController {
return ApiResponse.success(archivesService.editFile(dto));
}
@ApiOperation("删除档案附件")
@PostMapping("/fileSort")
public ApiResponse<Object> fileSort(
@Validated @RequestBody ArchivesFileDTO dto
){
return ApiResponse.success(archivesService.fileSort(dto));
}
@ApiOperation("删除档案附件")
@PostMapping("/deleteFile")
public ApiResponse<Object> deleteFile(
@ -151,8 +160,8 @@ public class ArchivesController {
}
@ApiOperation("根据门类导出数据")
@GetMapping("/exportArchives")
// @AnonymousGetMapping("/exportArchives")
// @GetMapping("/exportArchives")
@AnonymousGetMapping("/exportArchives")
@ResponseBody
public void exportArchives(
HttpServletResponse response,
@ -212,8 +221,8 @@ public class ArchivesController {
path += categoryIds[i] + "/";
}
String originalFilename = file.getOriginalFilename();
// String fileType = originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length());//file.getContentType();
path = path + originalFilename;
String fileType = originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length());//file.getContentType();
path = path + UUID.randomUUID() + fileType;
File dest = new File(prefixPath +path);
// 判断文件父目录是否存在
if (!dest.getParentFile().exists()) {

2
archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java

@ -65,7 +65,7 @@ public class CaseController {
if("0".equals(bindings[1]) || coverLabel){
return ApiResponse.success(caseService.addCaseTag(dto.getId(),dto.getTid(),dto.getLabelType(),bindings[1],bindings[0]));
}else{
return ApiResponse.error(ResponseStatus.LABEL_BOUND);
return ApiResponse.success(ResponseStatus.LABEL_BOUND);
}
}

29
archives/src/main/java/com/storeroom/modules/archives/controller/TagController.java

@ -0,0 +1,29 @@
package com.storeroom.modules.archives.controller;
import com.storeroom.modules.archives.service.ArchivesTagService;
import com.storeroom.utils.ApiResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "标签管理")
@RequestMapping("/api/tag")
public class TagController {
private final ArchivesTagService archivesTagService;
@ApiOperation("标签列表")
@GetMapping("/initTagList")
public ApiResponse<Object> initTagList(
String tid, String query,Integer isType, Pageable page
){
return ApiResponse.success(archivesTagService.initTagList(tid,query,isType,page));
}
}

40
archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesTag.java

@ -0,0 +1,40 @@
package com.storeroom.modules.archives.domain;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Getter
@Setter
@Table(name = "archives_tag")
public class ArchivesTag extends BaseEntity implements Serializable {
@Id
@Column(name = "tid")
private String tid;
@Column(name = "parents_id")
@ApiModelProperty(value = "绑定id 档案id/盒id/层架位id")
private String parentsId;
@Column(name = "title")
@ApiModelProperty(value = "标签名称")
private String title;
@Column(name = "is_type")
@ApiModelProperty(value = "标签类别 1.档案标签 2.盒标签 3.层架位标签")
private Integer isType;
@Column(name = "eas")
@ApiModelProperty(value = "报警状态 1.报警 0.不报警")
private Integer eas;
}

20
archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesTagRepository.java

@ -0,0 +1,20 @@
package com.storeroom.modules.archives.repository;
import com.storeroom.modules.archives.domain.ArchivesTag;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface ArchivesTagRepository extends JpaRepository<ArchivesTag, String>{
@Query(nativeQuery = true,
value = "select * from archives_tag where if(?1 is null,1=1,tid like ?1) and if(?2 is null,1=1,title like ?2) and if(?3 is null,1=1,is_type = ?3)")
// @Query("")
Page<ArchivesTag> initTagList(String tid, String query,Integer isType, Pageable page);
}

2
archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java

@ -32,6 +32,8 @@ public interface ArchivesService {
Object editFile(ArchivesFileDTO dto);
//删除档案附件
Object deleteFile(ArchivesFileDTO dto,String prefixPath);
//档案附件排序
Object fileSort(ArchivesFileDTO dto);
//档案删除进回收站
Object delete(ArchivesDTO dto);
//档案从回收站还原

10
archives/src/main/java/com/storeroom/modules/archives/service/ArchivesTagService.java

@ -0,0 +1,10 @@
package com.storeroom.modules.archives.service;
import org.springframework.data.domain.Pageable;
public interface ArchivesTagService {
Object initTagList(String tid, String query,Integer isType, Pageable page);
}

4
archives/src/main/java/com/storeroom/modules/archives/service/dto/ArchivesFileDTO.java

@ -19,6 +19,10 @@ public class ArchivesFileDTO {
@JsonProperty("ids")
private List<String> ids;
@JSONField(name="sequences")
@JsonProperty("sequences")
private List<Integer> sequences;
@JSONField(name="jsonString")
@JsonProperty("jsonString")
private String jsonString;

22
archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java

@ -445,9 +445,6 @@ public class ArchivesServiceImpl implements ArchivesService {
idad.setFieldName("id");idad.setIsDataType(1);
queryShow.add(idad);
JSONArray jsonArray = new JSONArray(dto.getJsonString());
String archivesId = new JSONObject(jsonArray.get(0)).get("archive_id")+"";
String delsql = "delete from file_"+archivesType.getEnName()+" where archive_id = '"+archivesId+"'";
entityManager.createNativeQuery(delsql).executeUpdate();
List<String> fields = queryShow.stream().map(archivesDictionary -> {
return archivesDictionary.getFieldName();
}).collect(Collectors.toList());
@ -456,13 +453,13 @@ public class ArchivesServiceImpl implements ArchivesService {
JSONObject json = new JSONObject(obj);
String insertValue = "";
for(ArchivesDictionary archivesDictionary:queryShow){
if("id".equals(archivesDictionary.getFieldName()) && (StringUtils.isEmpty(json.get("id")+"") || "null".equals(json.get("id")))){
if("id".equals(archivesDictionary.getFieldName()) && (StringUtils.isEmpty(json.get("id")+"") || "null".equals(json.get("id")+""))){
insertValue += "'"+NanoIdUtils.randomNanoId() +"',";
break;
}
insertValue += archivesDictionary.getIsDataType() == 1 ?
StringUtils.isEmpty(json.get(archivesDictionary.getFieldName())+"") || "null".equals(json.get(archivesDictionary.getFieldName())) ? null : "'"+json.get(archivesDictionary.getFieldName()) +"',"
: StringUtils.isEmpty(json.get(archivesDictionary.getFieldName())+"") || "null".equals(json.get(archivesDictionary.getFieldName())) ? null : json.get(archivesDictionary.getFieldName()) +",";
StringUtils.isEmpty(json.get(archivesDictionary.getFieldName())+"") || "null".equals(json.get(archivesDictionary.getFieldName())) ? null+"," : "'"+json.get(archivesDictionary.getFieldName()) +"',"
: StringUtils.isEmpty(json.get(archivesDictionary.getFieldName())+"") || "null".equals(json.get(archivesDictionary.getFieldName())) ? null+"," : json.get(archivesDictionary.getFieldName()) +",";
}
insertValue = insertValue.length() != 0 ? insertValue.substring(0,insertValue.length()-1) : "";
String sql = "insert into file_"+archivesType.getEnName()+"("+queryFields+") values ("+insertValue+")";
@ -495,6 +492,19 @@ public class ArchivesServiceImpl implements ArchivesService {
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object fileSort(ArchivesFileDTO dto) {
int returnInt = 0;
ArchivesType archivesType = archivesTypeRepository.findById(dto.getCategoryId()).get();
for(int i = 0;i<dto.getIds().size();i++){
String sql = "update file_"+ archivesType.getEnName() + " set sequence = " + dto.getSequences().get(i) + " where id = '"+dto.getIds().get(i)+"'";
int result = entityManager.createNativeQuery(sql).executeUpdate();
returnInt = returnInt + result;
}
return returnInt;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object delete(ArchivesDTO dto) {

22
archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java

@ -0,0 +1,22 @@
package com.storeroom.modules.archives.service.impl;
import com.storeroom.modules.archives.repository.ArchivesTagRepository;
import com.storeroom.modules.archives.service.ArchivesTagService;
import com.storeroom.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class ArchivesTagServiceImpl implements ArchivesTagService {
private final ArchivesTagRepository archivesTagRepository;
@Override
public Object initTagList(String tid, String query, Integer isType, Pageable page) {
tid = null != tid ? "%"+tid+"%" : null;
query = null != query ? "%"+query+"%" : null;
return archivesTagRepository.initTagList(tid,query,isType,page);
}
}

28
common/src/main/java/com/storeroom/config/WebMvcConfig.java

@ -0,0 +1,28 @@
package com.storeroom.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${accessFile.resourceHandler}")
private String resourceHandler; //匹配url 中的资源映射
@Value("${accessFile.location}")
private String location; //上传文件保存的本地目录
/**
* 配置静态资源映射
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//匹配到resourceHandler,将URL映射至location,也就是本地文件夹
registry.addResourceHandler(resourceHandler).addResourceLocations("file:///" + location);
}
}

3
system/src/main/java/com/storeroom/modules/security/config/SpringSecurityConfig.java

@ -94,7 +94,8 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
"/**/*.html",
"/**/*.css",
"/**/*.js",
"/webSocket/**"
"/webSocket/**",
"/downloadFile/**"
).permitAll()
// swagger 文档
.antMatchers("/swagger-ui.html").permitAll()

6
system/src/main/resources/application-dev.yml

@ -112,4 +112,8 @@ file:
avatar: D:\yxk_App\avatar\
# 文件大小 /M
maxSize: 100
avatarMaxSize: 5
avatarMaxSize: 5
accessFile:
resourceHandler: /downloadFile/**
location: D:\yxk_App\file\
Loading…
Cancel
Save