Browse Source

档案模块优化

master
xia 3 years ago
parent
commit
0ae6882c40
  1. 8
      archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java
  2. 16
      archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java
  3. 11
      archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java
  4. 4
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java
  5. 2
      archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java
  6. 54
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java
  7. 29
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java
  8. 2
      archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java

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

@ -44,6 +44,14 @@ public class ArchivesController {
return ApiResponse.success(archivesService.doedit(categoryId,archivesId));
}
@ApiOperation("档案判断值是否重复")
@GetMapping("/doeditIsRepeat")
public ApiResponse<Object> doeditIsRepeat(
String categoryId,String archivesId,String fieldName,String value
){
return ApiResponse.success(archivesService.doeditIsRepeat(categoryId,archivesId,fieldName,value));
}
@ApiOperation("档案编辑")
@PostMapping("/edit")
public ApiResponse<Object> edit(

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

@ -31,6 +31,22 @@ public class CaseController {
return ApiResponse.success(caseService.initCaseList(tid,caseName,barcode,page));
}
@ApiOperation("档案盒名称是否重复")
@GetMapping("/caseNameIsRepeat")
public ApiResponse<Object> caseNameIsRepeat(
String caseId, String caseName
){
return ApiResponse.success(caseService.caseNameIsRepeat(caseId,caseName));
}
@ApiOperation("档案盒条形码是否重复")
@GetMapping("/barcodeIsRepeat")
public ApiResponse<Object> barcodeIsRepeat(
String caseId, String barcode
){
return ApiResponse.success(caseService.barcodeIsRepeat(caseId,barcode));
}
@ApiOperation("档案盒编辑")
@PostMapping("/edit")
public ApiResponse<Object> edit(

11
archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java

@ -12,10 +12,12 @@ import java.util.List;
public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, String>{
Page<ArchivesCase> findAllByCaseNameLikeAndTidLikeAndBarcodeLike(String caseName, String tid,String barcode, Pageable page);
@Query(countQuery = "select count(id) from ArchivesCase where caseName like concat('%',?1,'%') and tid like concat('%',?2,'%') and barcode like concat('%',?3,'%') ",
value = "from ArchivesCase where caseName like concat('%',?1,'%') and tid like concat('%',?2,'%') and barcode like concat('%',?3,'%')")
Page<Object> findAllByCaseNameLikeAndTidLikeAndBarcodeLike(String caseName, String tid,String barcode, Pageable page);
@Query(countQuery = "select count(id) from ArchivesCase where caseType in (0,?4) and caseName like ?1 and tid like ?2 and barcode like ?3",
value = "from ArchivesCase where caseType in (0,?4) and caseName like ?1 and tid like ?2 and barcode like ?3")
@Query(countQuery = "select count(id) from ArchivesCase where caseType in (0,?4) and caseName like concat('%',?1,'%') and tid like concat('%',?2,'%') and barcode like concat('%',?3,'%')",
value = "from ArchivesCase where caseType in (0,?4) and caseName like concat('%',?1,'%') and tid like concat('%',?2,'%') and barcode like concat('%',?3,'%')")
Page<ArchivesCase> initCartoningList(String caseName, String tid,String barcode,Integer caseType, Pageable page);
Integer countAllByTid(String tid);
@ -37,5 +39,8 @@ public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, Stri
value = "update archives_case set case_type = ?2,deposit_num = ?3 where id = ?1")
Integer cartoning(String caseId,Integer caseType,Integer depositNum);
List<ArchivesCase> findAllByCaseName(String caseName);
List<ArchivesCase> findAllByBarcode(String barcode);
}

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

@ -10,6 +10,10 @@ import java.util.List;
public interface ArchivesCaseService {
//初始化档案盒列表
Object initCaseList(String tid, String caseName,String barcode, Pageable page);
//判断档案盒名称是否重复
Object caseNameIsRepeat(String caseId,String caseName);
//判断档案盒条形码是否重复
Object barcodeIsRepeat(String caseId,String barcode);
//编辑档案盒信息
Object edit(CaseDTO dto);
//查询该标签是否绑定过

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

@ -10,6 +10,8 @@ public interface ArchivesService {
Object initArchivesView(String categoryId, String query,Integer archivesState, boolean isdel,Pageable page);
//预编辑档案 初始化信息
Object doedit(String categoryId,String archivesId);
//档案编辑 判断值是否超昂福
Object doeditIsRepeat(String categoryId,String archivesId,String fieldName,String value);
//编辑档案
Object edit(ArchivesDTO dto);
//编辑档案附件

54
archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java

@ -43,19 +43,59 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
@Override
public Object initCaseList(String tid, String caseName,String barcode, Pageable page) {
tid = StringUtils.isEmpty(tid) ? "%%" : "%"+tid+"%";
caseName = StringUtils.isEmpty(caseName) ? "%%" : "%"+caseName+"%";
barcode = StringUtils.isEmpty(barcode) ? "%%" : "%"+barcode+"%";
Page<ArchivesCase> pageCase = caseRepository.findAllByCaseNameLikeAndTidLikeAndBarcodeLike(caseName,tid,barcode,page);
tid = StringUtils.isEmpty(tid) ? "" : tid;
caseName = StringUtils.isEmpty(caseName) ? "" : caseName;
barcode = StringUtils.isEmpty(barcode) ? "" : barcode;
Page<Object> pageCase = caseRepository.findAllByCaseNameLikeAndTidLikeAndBarcodeLike(caseName,tid,barcode,page);
return PageUtil.toPage(pageCase);
}
@Override
public Object caseNameIsRepeat(String caseId, String caseName) {
List<ArchivesCase> caseList = caseRepository.findAllByCaseName(caseName);
if(caseList.size()>1)
return true;
if(StringUtils.isEmpty(caseId)){
if(caseList.size()>0){
return true;
}
}else{
if(!caseId.equals(caseList.get(0).getId())){
return true;
}
}
return false;
}
@Override
public Object barcodeIsRepeat(String caseId, String barcode) {
List<ArchivesCase> caseList = caseRepository.findAllByBarcode(barcode);
if(caseList.size()>1)
return true;
if(StringUtils.isEmpty(caseId)){
if(caseList.size()>0){
return true;
}
}else{
if(!caseId.equals(caseList.get(0).getId())){
return true;
}
}
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object edit(CaseDTO dto) {
ArchivesCase archivesCase = null;
if(!StringUtils.isEmpty(dto.getId())){
archivesCase = caseRepository.findById(dto.getId()).get();
archivesCase.setTid("");
archivesCase.setBarcode("");
archivesCase.setFolderLocation("");
archivesCase.setFolderLocationDetails("");
}else{
archivesCase = new ArchivesCase();
archivesCase.setId(NanoIdUtils.randomNanoId());
@ -126,9 +166,9 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
@Override
public Object initCartoningList(String tid, String caseName, String barcode, Integer caseType, Pageable page) {
tid = StringUtils.isEmpty(tid) ? "%%" : "%"+tid+"%";
caseName = StringUtils.isEmpty(caseName) ? "%%" : "%"+caseName+"%";
barcode = StringUtils.isEmpty(barcode) ? "%%" : "%"+barcode+"%";
tid = StringUtils.isEmpty(tid) ? "" : tid;
caseName = StringUtils.isEmpty(caseName) ? "" : caseName;
barcode = StringUtils.isEmpty(barcode) ? "" : barcode;
Page<ArchivesCase> pageCase = caseRepository.initCartoningList(caseName,tid,barcode,caseType,page);
return PageUtil.toPage(pageCase);
}

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

@ -55,6 +55,11 @@ public class ArchivesServiceImpl implements ArchivesService {
queryFields.add("tid");
queryFields.add("case_no");
String queryField = queryFields.stream().map(String::valueOf).collect(Collectors.joining(","));
if(archivesType.getIsType() == ArchivesTypeEnum.project.getCode() || archivesType.getIsType() == ArchivesTypeEnum.archives.getCode()){
queryFields.add("chichildren_num");
}
String queryTable = archivesType.getEnName();
String quertOrder = "";
Sort sort = page.getSort();
@ -72,7 +77,8 @@ public class ArchivesServiceImpl implements ArchivesService {
List<Object[]> countList = entityManager.createNativeQuery("select count(1) from "+queryTable+additional).getResultList();
Object count = countList.get(0);
List<Object[]> list = entityManager.createNativeQuery("select "+queryField+" from "+queryTable+additional+quertOrder).getResultList();
List<Object[]> list = entityManager.createNativeQuery("select "+queryField+" from "+queryTable+additional+quertOrder
+" limit "+page.getPageNumber()*page.getPageSize()+","+page.getPageSize()).getResultList();
List<Map> returnlist = new ArrayList<>();
for(Object[] objs:list){
Map map = new HashMap();
@ -89,6 +95,8 @@ public class ArchivesServiceImpl implements ArchivesService {
JSONObject json = new JSONObject();
List<ArchivesDictionary> allFiled = archivesDictionaryRepository.findAllByCategoryIdOrderByIsSequenceAsc(categoryId);
List<ArchivesDictionary> showFiled = archivesDictionaryRepository.findAllByCategoryIdAndIsInputOrderByIsSequenceAsc(categoryId,true);
ArchivesDictionary showappendFiled = archivesDictionaryRepository.findFirstByCategoryIdAndFieldName(categoryId,"barcode");
showFiled.add(showappendFiled);
if(!StringUtils.isEmpty(archivesId)){
ArchivesType archivesType = archivesTypeRepository.findById(categoryId).get();
List<String> queryFields = new ArrayList<>();
@ -112,6 +120,23 @@ public class ArchivesServiceImpl implements ArchivesService {
return json;
}
@Override
public Object doeditIsRepeat(String categoryId,String archivesId, String fieldName, String value) {
ArchivesType archivesType = archivesTypeRepository.findById(categoryId).get();
String thissql = "select id,"+fieldName+" from "+archivesType.getEnName()+" where "+ fieldName +" = '"+value+"'";
List<Object[]> list = entityManager.createNativeQuery(thissql).getResultList();
if(list.size()!=0){
for(Object[] objs:list){
if(value.equals(objs[1])){
if(archivesId == null || !archivesId.equals(objs[0])){
return true;
}
}
}
}
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Object edit(ArchivesDTO dto) {
@ -141,7 +166,7 @@ public class ArchivesServiceImpl implements ArchivesService {
if(list.size()!=0){
for(Object[] objs:list){
if(json.get(archivesDictionary.getFieldName()).equals(objs[1])){
if(!dto.getId().equals(objs[0])){
if(dto.getId() == null || !dto.getId().equals(objs[0])){
return archivesDictionary.getFieldName()+"不可重复";
}
}

2
archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java

@ -42,5 +42,7 @@ public interface ArchivesDictionaryRepository extends JpaRepository<ArchivesDict
@Query(value = "select * from archives_dictionary where field_name = ?1 or field_cn_name = ?2 ", nativeQuery = true)
List<ArchivesDictionary> querybyName(String fName,String fcName);
ArchivesDictionary findFirstByCategoryIdAndFieldName(String categoryId,String fieldName);
}
Loading…
Cancel
Save