diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java index d8e2c10..09003a3 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java +++ b/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 doeditIsRepeat( + String categoryId,String archivesId,String fieldName,String value + ){ + return ApiResponse.success(archivesService.doeditIsRepeat(categoryId,archivesId,fieldName,value)); + } + @ApiOperation("档案编辑") @PostMapping("/edit") public ApiResponse edit( diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java index fa4939f..33c0c3b 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/CaseController.java +++ b/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 caseNameIsRepeat( + String caseId, String caseName + ){ + return ApiResponse.success(caseService.caseNameIsRepeat(caseId,caseName)); + } + + @ApiOperation("档案盒条形码是否重复") + @GetMapping("/barcodeIsRepeat") + public ApiResponse barcodeIsRepeat( + String caseId, String barcode + ){ + return ApiResponse.success(caseService.barcodeIsRepeat(caseId,barcode)); + } + @ApiOperation("档案盒编辑") @PostMapping("/edit") public ApiResponse edit( diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java index a7bc7df..605ac06 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java @@ -12,10 +12,12 @@ import java.util.List; public interface ArchivesCaseRepository extends JpaRepository{ - Page 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 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 initCartoningList(String caseName, String tid,String barcode,Integer caseType, Pageable page); Integer countAllByTid(String tid); @@ -37,5 +39,8 @@ public interface ArchivesCaseRepository extends JpaRepository findAllByCaseName(String caseName); + List findAllByBarcode(String barcode); + } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java index b80641d..8433e7c 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java +++ b/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); //查询该标签是否绑定过 diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java index 03a58e4..e5fd114 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java +++ b/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); //编辑档案附件 diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java index 5ce8a85..4102194 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java +++ b/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 pageCase = caseRepository.findAllByCaseNameLikeAndTidLikeAndBarcodeLike(caseName,tid,barcode,page); + tid = StringUtils.isEmpty(tid) ? "" : tid; + caseName = StringUtils.isEmpty(caseName) ? "" : caseName; + barcode = StringUtils.isEmpty(barcode) ? "" : barcode; + Page pageCase = caseRepository.findAllByCaseNameLikeAndTidLikeAndBarcodeLike(caseName,tid,barcode,page); return PageUtil.toPage(pageCase); } + @Override + public Object caseNameIsRepeat(String caseId, String caseName) { + List 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 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 pageCase = caseRepository.initCartoningList(caseName,tid,barcode,caseType,page); return PageUtil.toPage(pageCase); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java index 84fd5f6..53280b6 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java +++ b/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 countList = entityManager.createNativeQuery("select count(1) from "+queryTable+additional).getResultList(); Object count = countList.get(0); - List list = entityManager.createNativeQuery("select "+queryField+" from "+queryTable+additional+quertOrder).getResultList(); + List list = entityManager.createNativeQuery("select "+queryField+" from "+queryTable+additional+quertOrder + +" limit "+page.getPageNumber()*page.getPageSize()+","+page.getPageSize()).getResultList(); List 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 allFiled = archivesDictionaryRepository.findAllByCategoryIdOrderByIsSequenceAsc(categoryId); List 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 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 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()+"不可重复"; } } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java b/archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java index 3a60962..0816932 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/repository/ArchivesDictionaryRepository.java @@ -42,5 +42,7 @@ public interface ArchivesDictionaryRepository extends JpaRepository querybyName(String fName,String fcName); + ArchivesDictionary findFirstByCategoryIdAndFieldName(String categoryId,String fieldName); + }