Browse Source

1.档案列表优化

2.生成附件表名称规则修改
master
xia 3 years ago
parent
commit
63cd006a8f
  1. 12
      archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java
  2. 4
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java
  3. 58
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java
  4. 3
      archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java
  5. 3
      archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesTypeRepository.java
  6. 3
      archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java

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

@ -32,9 +32,9 @@ public class ArchivesController {
@ApiOperation("档案列表")
@GetMapping("/initArchivesView")
public ApiResponse<Object> initArchivesView(
String categoryId,String query,Integer archivesState,boolean isdel,Pageable page
String categoryId,String parentsId,String query,Integer archivesState,boolean isdel,Pageable page
){
return ApiResponse.success(archivesService.initArchivesView(categoryId,query,archivesState,isdel,page));
return ApiResponse.success(archivesService.initArchivesView(categoryId,parentsId,query,archivesState,isdel,page));
}
@ApiOperation("档案预编辑")
@ -77,6 +77,14 @@ public class ArchivesController {
return ApiResponse.success(archivesService.editFile(dto));
}
@ApiOperation("删除档案附件")
@PostMapping("/deleteFile")
public ApiResponse<Object> deleteFile(
@Validated @RequestBody ArchivesFileDTO dto
){
return ApiResponse.success(archivesService.deleteFile(dto));
}
@ApiOperation("档案删除")
@PostMapping("/delete")
public ApiResponse<Object> delete(

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

@ -9,7 +9,7 @@ public interface ArchivesService {
//初始化档案列表标题
Object initArchivesViewTable(String categoryId);
//初始化档案列表
Object initArchivesView(String categoryId, String query,Integer archivesState, boolean isdel,Pageable page);
Object initArchivesView(String categoryId,String parentsId, String query,Integer archivesState, boolean isdel,Pageable page);
//预编辑档案 初始化信息
Object doedit(String categoryId,String archivesId);
//档案编辑 判断值是否超昂福
@ -20,6 +20,8 @@ public interface ArchivesService {
Object initArchiveFilesView(String categoryId,String archiveId);
//编辑档案附件
Object editFile(ArchivesFileDTO dto);
//删除档案附件
Object deleteFile(ArchivesFileDTO dto);
//档案删除进回收站
Object delete(ArchivesDTO dto);
//档案回收站删除

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

@ -47,7 +47,7 @@ public class ArchivesServiceImpl implements ArchivesService {
}
@Override
public Object initArchivesView(String categoryId, String query,Integer archivesState, boolean isdel,Pageable page) {
public Object initArchivesView(String categoryId,String parentsId, String query,Integer archivesState, boolean isdel,Pageable page) {
Optional<ArchivesType> optional = archivesTypeRepository.findById(categoryId);
if(!optional.isPresent())
return "未查询到到门类信息!";
@ -57,29 +57,35 @@ public class ArchivesServiceImpl implements ArchivesService {
queryFields.add("tid");
queryFields.add("case_no");
String queryField = queryFields.stream().map(String::valueOf).collect(Collectors.joining(","));
String queryTable = archivesType.getEnName();
String quertOrder = "";
String appendQuery = "";
queryFields.add("children_num");
if(archivesType.getIsType() == ArchivesTypeEnum.project.getCode() || archivesType.getIsType() == ArchivesTypeEnum.archives.getCode()){
queryFields.add("chichildren_num");
String childrenTable = archivesTypeRepository.findEnNameByPid(archivesType.getId());
appendQuery = StringUtils.isEmpty(childrenTable) ? ",0 " :",(select count(1) from "+childrenTable+" c where c.parent_id = t.id) ";
}else{
appendQuery = ",(select count(1) from file_"+queryTable+" c where c.archive_id = t.id) ";
}
String queryTable = archivesType.getEnName();
String quertOrder = "";
Sort sort = page.getSort();
Object[] objects = sort.get().toArray();
for(Object obj:objects){
String[] splits = obj.toString().split(":");
quertOrder += splits[0].trim()+" "+splits[1].trim() +",";
}
String additional = isdel ? " where is_delete_time is not null " : " where is_delete_time is null ";
String additional = isdel ? " t where is_delete_time is not null " : " where is_delete_time is null ";
String queryparentsId = StringUtils.isEmpty(parentsId) ? " " : " and parent_id = '"+parentsId+"' ";
additional = StringUtils.isEmpty(query) ? additional : additional
+ "and (maintitle like '%"+query+"%' or archive_no like '%"+query+"%' or archive_year like '%"+query+"%') ";
+ " and (maintitle like '%"+query+"%' or archive_no like '%"+query+"%' or archive_year like '%"+query+"%') ";
if(objects.length > 0)
quertOrder = " order by " + quertOrder.substring(0,quertOrder.length()-1);
List<Object[]> countList = entityManager.createNativeQuery("select count(1) from "+queryTable+additional).getResultList();
List<Object[]> countList = entityManager.createNativeQuery("select count(1) from "+queryTable+additional+queryparentsId).getResultList();
Object count = countList.get(0);
List<Object[]> list = entityManager.createNativeQuery("select "+queryField+" from "+queryTable+additional+quertOrder
List<Object[]> list = entityManager.createNativeQuery("select "+queryField+appendQuery+" from "+queryTable+additional+queryparentsId+quertOrder
+" limit "+page.getPageNumber()*page.getPageSize()+","+page.getPageSize()).getResultList();
List<Map> returnlist = new ArrayList<>();
for(Object[] objs:list){
@ -286,24 +292,50 @@ public class ArchivesServiceImpl implements ArchivesService {
@Override
@Transactional(rollbackFor = Exception.class)
public Object editFile(ArchivesFileDTO dto) {
int result = 0;
ArchivesType archivesType = archivesTypeRepository.findById(dto.getCategoryId()).get();
List<ArchivesDictionary> queryShow = archivesDictionaryRepository.findAllByCategoryIdAndIsTypeOrderByIsSequenceAsc(dto.getCategoryId(),3);
ArchivesDictionary idad = new ArchivesDictionary();
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());
fields.add("id");
String queryFields = fields.stream().map(String::valueOf).collect(Collectors.joining(","));
for (Object obj:jsonArray){
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")))){
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()) +",";
}
insertValue = insertValue.length() != 0 ? insertValue.substring(0,insertValue.length()-1) : "";
String sql = "insert into file_"+archivesType.getEnName()+"("+queryFields+") values ("+insertValue+")";
int thisresult = entityManager.createNativeQuery(sql).executeUpdate();
result += thisresult;
}
return null;
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object deleteFile(ArchivesFileDTO dto) {
ArchivesType archivesType = archivesTypeRepository.findById(dto.getCategoryId()).get();
String ids = dto.getIds().stream().map(String::valueOf).collect(Collectors.joining("','"));
ids = ids.length() > 0 ? "'"+ids+"'" : ids;
String sql = "delete from "+archivesType.getEnName()+" where id in ("+ids+")";
int result = entityManager.createNativeQuery(sql).executeUpdate();
return result;
}
@Override

3
archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java

@ -4,6 +4,8 @@ import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@ -29,6 +31,7 @@ public class ArchivesDictionary extends BaseEntity implements Serializable {
@ManyToOne(targetEntity = Dictionary.class)
@ApiModelProperty(value = "系统字典id")
@NotFound(action= NotFoundAction.IGNORE)
@JoinColumn(name = "dictionary_config_id",referencedColumnName = "id")
private Dictionary dictionaryConfigId;

3
archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesTypeRepository.java

@ -11,4 +11,7 @@ import java.util.List;
public interface ArchivesTypeRepository extends JpaRepository<ArchivesType, String>, JpaSpecificationExecutor<ArchivesType> {
List<ArchivesType> findByCnName(String cn);
@Query("select enName from ArchivesType where pid = ?1")
String findEnNameByPid(String pid);
}

3
archives/src/main/java/com/storeroom/modules/dictionary/service/impl/DynamicTableImpl.java

@ -46,7 +46,7 @@ public class DynamicTableImpl implements DynamicTableService {
List<Integer> integerList = new ArrayList<>();
if (type == 4 || type == 5) {
//#生成文件表名称
String fileTableName = "file_tb_";
String fileTableName = "file_"+tableName;
integerList.add(1);
integerList.add(2);
@ -57,7 +57,6 @@ public class DynamicTableImpl implements DynamicTableService {
integerList.add(3);
List<FieldVO> fileList = queryList(integerList);
DynamicInsert(fileList, archiveTypeId);
fileTableName += DateUtils.getNowDateTime();
DynamicCreateFileTable(fileList, fileTableName);
} else {

Loading…
Cancel
Save