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 78b0092..1c4d1a7 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 @@ -1,6 +1,7 @@ package com.storeroom.modules.archives.controller; import com.storeroom.exception.constant.ResponseStatus; +import com.storeroom.modules.archives.domain.ArchivesCaseCartoning; import com.storeroom.modules.archives.service.ArchivesCaseService; import com.storeroom.modules.archives.service.dto.CaseDTO; import com.storeroom.utils.ApiResponse; @@ -11,6 +12,8 @@ import org.springframework.data.domain.Pageable; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequiredArgsConstructor @Api(tags = "盒管理") @@ -61,10 +64,10 @@ public class CaseController { @ApiOperation("装盒") @PostMapping("/cartoning") public ApiResponse cartoning( - @Validated @RequestBody CaseDTO dto + @Validated @RequestBody List dtos ){ - return ApiResponse.success(null); + return ApiResponse.success(caseService.cartoning(dtos)); } } diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesCaseCartoning.java b/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesCaseCartoning.java similarity index 95% rename from archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesCaseCartoning.java rename to archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesCaseCartoning.java index 5eebaae..1060d8f 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesCaseCartoning.java +++ b/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesCaseCartoning.java @@ -1,4 +1,4 @@ -package com.storeroom.modules.dictionary.domain; +package com.storeroom.modules.archives.domain; import com.storeroom.base.BaseEntity; import io.swagger.annotations.ApiModelProperty; diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseCartoningRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseCartoningRepository.java new file mode 100644 index 0000000..d868840 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseCartoningRepository.java @@ -0,0 +1,12 @@ +package com.storeroom.modules.archives.repository; + +import com.storeroom.modules.archives.domain.ArchivesCase; +import com.storeroom.modules.archives.domain.ArchivesCaseCartoning; +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.Query; + +public interface ArchivesCaseCartoningRepository extends JpaRepository{ + +} 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 64a50c3..5bdce48 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 @@ -10,7 +10,8 @@ public interface ArchivesCaseRepository extends JpaRepository findAllByCaseNameLikeAndTidLikeAndBarcodeLike(String caseName, String tid,String barcode, Pageable page); - @Query(" 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 ?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") Page initCartoningList(String caseName, String tid,String barcode,Integer caseType, Pageable page); Integer countAllByTid(String tid); 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 b346b9b..f7a70cc 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 @@ -1,8 +1,11 @@ package com.storeroom.modules.archives.service; +import com.storeroom.modules.archives.domain.ArchivesCaseCartoning; import com.storeroom.modules.archives.service.dto.CaseDTO; import org.springframework.data.domain.Pageable; +import java.util.List; + public interface ArchivesCaseService { //初始化档案盒列表 Object initCaseList(String tid, String caseName,String barcode, Pageable page); @@ -14,6 +17,8 @@ public interface ArchivesCaseService { Object addCaseTag(String caseId,String tid,Integer labelType,String bindingCount,String tagType); //档案盒装盒列表 Object initCartoningList(String tid, String caseName,String barcode,Integer caseType, Pageable page); + //装盒 + Object cartoning(List dtos); } 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 42e3da9..81a030f 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 @@ -1,11 +1,15 @@ package com.storeroom.modules.archives.service.impl; import com.storeroom.modules.archives.domain.ArchivesCase; +import com.storeroom.modules.archives.domain.ArchivesCaseCartoning; import com.storeroom.modules.archives.domain.ArchivesSummary; +import com.storeroom.modules.archives.repository.ArchivesCaseCartoningRepository; import com.storeroom.modules.archives.repository.ArchivesCaseRepository; import com.storeroom.modules.archives.repository.ArchivesSummaryRepository; import com.storeroom.modules.archives.service.ArchivesCaseService; import com.storeroom.modules.archives.service.dto.CaseDTO; +import com.storeroom.modules.dictionary.domain.ArchivesType; +import com.storeroom.modules.dictionary.repository.ArchivesTypeRepository; import com.storeroom.utils.NanoIdUtils; import com.storeroom.utils.PageUtil; import com.storeroom.utils.StringUtils; @@ -17,6 +21,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; @Service @@ -25,6 +33,9 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { private final ArchivesCaseRepository caseRepository; private final ArchivesSummaryRepository archivesSummaryRepository; + private final ArchivesTypeRepository archivesTypeRepository; + private final ArchivesCaseCartoningRepository archivesCaseCartoningRepository; + @PersistenceContext EntityManager entityManager; @@ -118,4 +129,22 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { Page pageCase = caseRepository.initCartoningList(caseName,tid,barcode,caseType,page); return PageUtil.toPage(pageCase); } + + @Override + public Object cartoning(List dtos) { + Set caseIds = new HashSet<>(); +// Map + dtos = archivesCaseCartoningRepository.saveAllAndFlush(dtos); + Integer caseType = 0; + for(ArchivesCaseCartoning archivesCaseCartoning:dtos){ + caseIds.add(archivesCaseCartoning.getCaseId()); + //判断档案是案卷还是文件 + ArchivesType archivesType = archivesTypeRepository.findById(archivesCaseCartoning.getCategoryId()).get(); + caseType = archivesType.getIsType() == 4 ? 2 : archivesType.getIsType() == 5 ? 1 : 0; + } + for (String caseId:caseIds){ + + } + return null; + } }