刘力 3 years ago
parent
commit
6e1b9b4f84
  1. 8
      archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesCaseRepository.java
  2. 30
      archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java

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

@ -4,7 +4,9 @@ import com.storeroom.modules.archives.domain.ArchivesCase;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, String>{ public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, String>{
@ -23,4 +25,10 @@ public interface ArchivesCaseRepository extends JpaRepository<ArchivesCase, Stri
@Query(nativeQuery = true, @Query(nativeQuery = true,
value = "update archives_case set tid ?1 where id = ?2 ") value = "update archives_case set tid ?1 where id = ?2 ")
Integer bindTag(String tid,String archivesId); Integer bindTag(String tid,String archivesId);
@Modifying
@Transactional(rollbackFor = Exception.class)
@Query(nativeQuery = true,
value = "update archives_case set case_type = ?2,deposit_num = ?3 where id = ?1")
Integer cartoning(String caseId,Integer caseType,Integer depositNum);
} }

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

@ -21,10 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
@Service @Service
@ -131,20 +129,38 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Object cartoning(List<ArchivesCaseCartoning> dtos) { public Object cartoning(List<ArchivesCaseCartoning> dtos) {
Set<String> caseIds = new HashSet<>(); Set<String> caseIds = new HashSet<>();
// Map<String,Integer>
dtos = archivesCaseCartoningRepository.saveAllAndFlush(dtos); dtos = archivesCaseCartoningRepository.saveAllAndFlush(dtos);
ArchivesType archivesType = new ArchivesType();
Integer caseType = 0; Integer caseType = 0;
for(ArchivesCaseCartoning archivesCaseCartoning:dtos){ for(ArchivesCaseCartoning archivesCaseCartoning:dtos){
caseIds.add(archivesCaseCartoning.getCaseId()); caseIds.add(archivesCaseCartoning.getCaseId());
//判断档案是案卷还是文件 //判断档案是案卷还是文件
ArchivesType archivesType = archivesTypeRepository.findById(archivesCaseCartoning.getCategoryId()).get();
archivesType = archivesTypeRepository.findById(archivesCaseCartoning.getCategoryId()).get();
caseType = archivesType.getIsType() == 4 ? 2 : archivesType.getIsType() == 5 ? 1 : 0; caseType = archivesType.getIsType() == 4 ? 2 : archivesType.getIsType() == 5 ? 1 : 0;
String sql = "update "+archivesType.getEnName()+" set case_no = '"+archivesCaseCartoning.getCaseId()+"' where id = '"+archivesCaseCartoning.getArchivesId()+"'";
entityManager.createNativeQuery(sql).executeUpdate();
} }
for (String caseId:caseIds){ for (String caseId:caseIds){
Integer count = 0;
for(ArchivesCaseCartoning archivesCaseCartoning:dtos){
if(caseId.equals(archivesCaseCartoning.getCaseId())){
count++;
}
}
caseRepository.cartoning(caseId,caseType,count);
}
String caseIdArr = caseIds.stream().collect(Collectors.joining(","));
//当装盒为案卷
if(caseType == 2){
ArchivesType archivesTypeP = archivesTypeRepository.findById(archivesType.getPid()).get();
String psql = "update "+archivesTypeP.getEnName()+" set case_no = '"+caseIdArr
+"' where id = (select pid from "+archivesType.getEnName()+" where id = '"+dtos.get(0).getArchivesId()+"' limit 0,1)";
entityManager.createNativeQuery(psql).executeUpdate();
} }
return null; return null;
} }
} }
Loading…
Cancel
Save