From 8aa2918ae8ed2921c870e07accaa848287bccecf Mon Sep 17 00:00:00 2001 From: xia Date: Mon, 11 Jul 2022 09:18:30 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E6=A1=A3=E6=A1=88=E6=A3=80?= =?UTF-8?q?=E7=B4=A2=202.=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AFmac=203.=E7=9B=92=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=8B=86=E7=9B=92=E4=BC=98=E5=8C=96=204.=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=B1=82=E6=9E=B6=E4=BD=8D=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archives/pom.xml | 5 + .../controller/ArchivesController.java | 5 +- .../archives/controller/CaseController.java | 2 +- .../archives/controller/RFIDController.java | 49 ++++++++ .../archives/domain/ArchivesSummary.java | 4 + .../repository/ArchivesSummaryRepository.java | 8 +- .../archives/service/ArchivesCaseService.java | 2 +- .../service/impl/ArchivesCaseServiceImpl.java | 113 ++++++++++-------- .../service/impl/ArchivesServiceImpl.java | 78 +++++++++++- .../service/impl/ArchivesTagServiceImpl.java | 19 ++- .../DeviceArchivesTagRepository.java | 11 ++ 11 files changed, 228 insertions(+), 68 deletions(-) diff --git a/archives/pom.xml b/archives/pom.xml index a433380..7412a56 100644 --- a/archives/pom.xml +++ b/archives/pom.xml @@ -29,6 +29,11 @@ logging 1.0 + + com.storeroom + storeroom + 1.0 + org.apache.httpcomponents httpclient 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 04a5311..ac63251 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 @@ -55,8 +55,9 @@ public class ArchivesController { @ApiOperation("档案列表") @GetMapping("/initArchivesView") public ApiResponse initArchivesView( - String categoryId,String parentsId,Integer queryType,String queryTitle,String itemNo,String archiveNo,String archiveCtgNo,String responsibleby, - Integer archivesState,String archiveYear,String department,String retention,String securityClass,String organizationMatter,boolean isdel,Pageable page + String categoryId,String parentsId,Integer queryType,String queryTitle,String itemNo,String archiveNo,String archiveCtgNo, + String responsibleby,Integer archivesState,String archiveYear,String department,String retention,String securityClass, + String organizationMatter,boolean isdel,Pageable page ){ return ApiResponse.success(archivesService.initArchivesView(categoryId,parentsId,queryType,queryTitle,itemNo,archiveNo,archiveCtgNo,responsibleby, archivesState,archiveYear,department,retention,securityClass,organizationMatter,isdel,page)); 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 408c285..cfef146 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 @@ -104,7 +104,7 @@ public class CaseController { @ApiOperation("拆盒") @PostMapping("/unpacking") public ApiResponse unpacking( - @Validated @RequestBody String caseId + @Validated @RequestBody List caseId ){ return ApiResponse.success(caseService.unpacking(caseId)); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java index ffe8797..4003d36 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/RFIDController.java @@ -2,6 +2,7 @@ package com.storeroom.modules.archives.controller; import cn.hutool.http.HttpResource; +import com.storeroom.annotaion.rest.AnonymousGetMapping; import com.storeroom.utils.ApiResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -16,13 +17,17 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @RestController @RequiredArgsConstructor @@ -146,4 +151,48 @@ public class RFIDController { return ApiResponse.success(result); } + @ApiOperation("获取设备mac地址") + @AnonymousGetMapping("/getDeviceMac") + public ApiResponse getDeviceMac(HttpServletRequest request){ + String ip = request.getHeader("X-real-ip"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("x-forwarded-for"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + + String macAddr = null; + try { + Process process = Runtime.getRuntime().exec("nbtstat -a " + ip); + BufferedReader br = new BufferedReader( + new InputStreamReader(process.getInputStream())); + Pattern pattern = Pattern.compile("([A-F0-9]{2}-){5}[A-F0-9]{2}"); + Matcher matcher; + for (String strLine = br.readLine(); strLine != null; + strLine = br.readLine()) { + matcher = pattern.matcher(strLine); + if (matcher.find()) { + macAddr = matcher.group(); + break; + } + } + } catch (IOException e) { + e.printStackTrace(); + } + return ApiResponse.success(macAddr); + } + } diff --git a/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesSummary.java b/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesSummary.java index e91340f..51ad576 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesSummary.java +++ b/archives/src/main/java/com/storeroom/modules/archives/domain/ArchivesSummary.java @@ -121,4 +121,8 @@ public class ArchivesSummary extends BaseEntity implements Serializable { @ApiModelProperty(value = "子条目数") private Integer child; + @Column(name = "is_delete_time") + @ApiModelProperty(value = "删除时间") + private String isDeleteTime; + } diff --git a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java index 6cb5483..fa24679 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java +++ b/archives/src/main/java/com/storeroom/modules/archives/repository/ArchivesSummaryRepository.java @@ -27,25 +27,25 @@ public interface ArchivesSummaryRepository extends JpaRepository caseId); //查看盒内详情 Object findInCase(String caseId); 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 b463a4f..8721d45 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 @@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import java.sql.Timestamp; import java.util.*; import java.util.stream.Collectors; @@ -278,63 +279,75 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { @Override @Transactional(rollbackFor = Exception.class) - public Object unpacking(String caseId) { - ArchivesCase archivesCase = caseRepository.findById(caseId).get(); - List editArchivesSummaries = new ArrayList<>(); - List archivesIds = new ArrayList<>(); - Set caseIds = new HashSet<>(); - String categoryId = ""; - //文件类型档案盒 - if(archivesCase.getCaseType()==1){ - List archivesSummaries = archivesSummaryRepository.findAllByCaseNoAndCategoryType(caseId, ArchivesTypeEnum.files.getCode()); - for(ArchivesSummary archivesSummary:archivesSummaries){ - categoryId = archivesSummary.getCategoryId(); - archivesIds.add(archivesSummary.getArchivesId()); - archivesSummary.setCaseNo(null); - editArchivesSummaries.add(archivesSummary); - } - caseIds.add(archivesCase.getId()); - //案卷类型盒 - }else if(archivesCase.getCaseType()==2){ - List archivesSummaries = archivesSummaryRepository.findAllByCaseNoAndCategoryType(caseId,ArchivesTypeEnum.inChive.getCode()); - for(ArchivesSummary archivesSummary:archivesSummaries){ - categoryId = archivesSummary.getCategoryId(); - archivesIds.add(archivesSummary.getArchivesId()); - caseIds.add(archivesSummary.getCaseNo()); - archivesSummary.setCaseNo(null); - editArchivesSummaries.add(archivesSummary); - } - if(caseIds.size()>1) { - for (String thisCaseId : caseIds) { - if(!caseId.equals(thisCaseId)){ - for (ArchivesSummary thisSummary : archivesSummaries) { - if (thisCaseId.equals(thisSummary.getCaseNo())) { - thisSummary.setCaseNo(null); - archivesIds.add(thisSummary.getArchivesId()); - editArchivesSummaries.add(thisSummary); + public Object unpacking(List caseIdList) { + Integer result = 0; + for(String caseId:caseIdList){ + ArchivesCase archivesCase = caseRepository.findById(caseId).get(); + List editArchivesSummaries = new ArrayList<>(); + List archivesIds = new ArrayList<>(); + Set caseIds = new HashSet<>(); + String categoryId = ""; + //文件类型档案盒 + if(archivesCase.getCaseType()==1){ + List archivesSummaries = archivesSummaryRepository.findAllByCaseNoAndCategoryType(caseId, ArchivesTypeEnum.files.getCode()); + for(ArchivesSummary archivesSummary:archivesSummaries){ + categoryId = archivesSummary.getCategoryId(); + archivesIds.add(archivesSummary.getArchivesId()); + archivesSummary.setCaseNo(null); + editArchivesSummaries.add(archivesSummary); + } + caseIds.add(archivesCase.getId()); + //案卷类型盒 + }else if(archivesCase.getCaseType()==2){ + List archivesSummaries = archivesSummaryRepository.findAllByCaseNoAndCategoryType(caseId,ArchivesTypeEnum.inChive.getCode()); + for(ArchivesSummary archivesSummary:archivesSummaries){ + categoryId = archivesSummary.getCategoryId(); + archivesIds.add(archivesSummary.getArchivesId()); + caseIds.add(archivesSummary.getCaseNo()); + archivesSummary.setCaseNo(null); + archivesSummary.setCaseName(null); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + editArchivesSummaries.add(archivesSummary); + } + if(caseIds.size()>1) { + for (String thisCaseId : caseIds) { + if(!caseId.equals(thisCaseId)){ + for (ArchivesSummary thisSummary : archivesSummaries) { + if (thisCaseId.equals(thisSummary.getCaseNo())) { + thisSummary.setCaseNo(null); + thisSummary.setCaseName(null); + thisSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesIds.add(thisSummary.getArchivesId()); + editArchivesSummaries.add(thisSummary); + } } + caseRepository.cartoning(thisCaseId,0,0); + result = result+1; } } } } - } - - ArchivesType archivesType = archivesTypeRepository.findById(categoryId).get(); - //清空总表盒关联 - archivesSummaryRepository.saveAllAndFlush(editArchivesSummaries); - Integer result = 0; - //清空具体档案表盒信息 - for(String archivesId:archivesIds){ - //若为案卷 - if(archivesType.getIsType() == 2){ - ArchivesType archivesTypeP = archivesTypeRepository.findById(archivesType.getPid()).get(); - String sonsql = "update " +archivesTypeP.getEnName() + " set case_no = null where parent_id = '"+archivesId+"'"; - entityManager.createNativeQuery(sonsql).executeUpdate(); + if(StringUtils.isEmpty(categoryId)){ + return 0; + } + ArchivesType archivesType = archivesTypeRepository.findById(categoryId).get(); + //清空总表盒关联 + archivesSummaryRepository.saveAllAndFlush(editArchivesSummaries); + //清空具体档案表盒信息 + for(String archivesId:archivesIds){ + //若为案卷 + if(archivesType.getIsType() == 2){ + ArchivesType archivesTypeP = archivesTypeRepository.findById(archivesType.getPid()).get(); + String sonsql = "update " +archivesTypeP.getEnName() + " set case_no = null where parent_id = '"+archivesId+"'"; + entityManager.createNativeQuery(sonsql).executeUpdate(); + } + String sql = "update " +archivesType.getEnName() + " set case_no = null where id = '"+archivesId+"'"; + entityManager.createNativeQuery(sql).executeUpdate(); } - String sql = "update " +archivesType.getEnName() + " set case_no = null where id = '"+archivesId+"'"; - result = entityManager.createNativeQuery(sql).executeUpdate(); + archivesCaseCartoningRepository.deleteByCaseId(Arrays.asList(caseIds.toArray())); + caseRepository.cartoning(caseId,0,0); + result = result+1; } - archivesCaseCartoningRepository.deleteByCaseId(Arrays.asList(caseIds.toArray())); return result; } 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 b2c9171..bfaf9d6 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 @@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.io.File; +import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -522,10 +523,16 @@ public class ArchivesServiceImpl implements ArchivesService { ArchivesType archivesType = archivesTypeRepository.findById(dto.getCategoryId()).get(); List ids = dto.getIds(); String queryTable = archivesType.getEnName(); - String sql = "update " + queryTable + " set is_delete_time = '" +sdf.format(new Date())+"',is_delete_man='"+dto.getDelMan() + String delTime = sdf.format(new Date()); + String sql = "update " + queryTable + " set is_delete_time = '" +delTime+"',is_delete_man='"+dto.getDelMan() +"' where id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; int result = entityManager.createNativeQuery(sql).executeUpdate(); - + for(String id:ids){ + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(delTime); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } //若删除为项目 if(archivesType.getIsType() == 2){ //获取档案表名 @@ -535,22 +542,49 @@ public class ArchivesServiceImpl implements ArchivesService { List list3 = entityManager.createNativeQuery(query3sql).getResultList(); if(null != list3 && list3.size()!=0){ //删除案卷 - String update3sql = "update " + archivesType_3.getEnName() + " set is_delete_time = '" +sdf.format(new Date())+"',is_delete_man='"+dto.getDelMan() + String update3sql = "update " + archivesType_3.getEnName() + " set is_delete_time = '" +delTime+"',is_delete_man='"+dto.getDelMan() +"' where id in ('"+list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; //获取卷内表名 String enName_4 = archivesTypeRepository.findEnNameByPid(archivesType_3.getId()); + String query4sql = "select id from "+enName_4+" where parent_id in ('"+list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; + List list4 = entityManager.createNativeQuery(query4sql).getResultList(); //删除卷内 - String update4sql = "update " + enName_4 + " set is_delete_time = '" +sdf.format(new Date())+"',is_delete_man='"+dto.getDelMan() + String update4sql = "update " + enName_4 + " set is_delete_time = '" +delTime+"',is_delete_man='"+dto.getDelMan() +"' where parent_id in ('"+list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; entityManager.createNativeQuery(update3sql).executeUpdate(); entityManager.createNativeQuery(update4sql).executeUpdate(); + + for(String id:list3){ + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(delTime); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } + + for(String id:list4){ + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(delTime); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } + } //若删除为案卷 }else if(archivesType.getIsType() == 3){ String enName_4 = archivesTypeRepository.findEnNameByPid(archivesType.getId()); - String update4sql = "update " + enName_4 + " set is_delete_time = '" +sdf.format(new Date())+"',is_delete_man='"+dto.getDelMan() + String update4sql = "update " + enName_4 + " set is_delete_time = '" +delTime+"',is_delete_man='"+dto.getDelMan() +"' where parent_id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; + + String query4sql = "select id from "+enName_4+" where parent_id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; + List list4 = entityManager.createNativeQuery(query4sql).getResultList(); + entityManager.createNativeQuery(update4sql).executeUpdate(); + for(String id:list4){ + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(delTime); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } } return result; } @@ -596,6 +630,12 @@ public class ArchivesServiceImpl implements ArchivesService { String sql = "update " + archivesType.getEnName() + " set is_delete_time = null,is_delete_man = null " + "where id = '"+id+"'"; int result = entityManager.createNativeQuery(sql).executeUpdate(); + + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(null); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + success += result; } @@ -628,6 +668,12 @@ public class ArchivesServiceImpl implements ArchivesService { String sql_3 = "update " + archivesType_3.getEnName() + " set is_delete_time = null,is_delete_man = null " + "where id = '"+id+"'"; int result_3 = entityManager.createNativeQuery(sql_3).executeUpdate(); + + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(null); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } @@ -658,6 +704,12 @@ public class ArchivesServiceImpl implements ArchivesService { String sql_4 = "update " + archivesType_4.getEnName() + " set is_delete_time = null,is_delete_man = null " + "where id = '"+id+"'"; int result_3 = entityManager.createNativeQuery(sql_4).executeUpdate(); + + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(null); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); + } //若恢复为案卷时 }else if(archivesType.getIsType() == 3){ @@ -689,6 +741,11 @@ public class ArchivesServiceImpl implements ArchivesService { String sql_3 = "update " + archivesType_3.getEnName() + " set is_delete_time = null,is_delete_man = null " + "where id = '"+id+"'"; int result_3 = entityManager.createNativeQuery(sql_3).executeUpdate(); + + ArchivesSummary archivesSummary = archivesSummaryRepository.findByArchivesId(id); + archivesSummary.setIsDeleteTime(null); + archivesSummary.setUpdateTime(new Timestamp(System.currentTimeMillis())); + archivesSummaryRepository.saveAndFlush(archivesSummary); } } @@ -704,7 +761,7 @@ public class ArchivesServiceImpl implements ArchivesService { String sql = "delete from " +queryTable+" where id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; int result = entityManager.createNativeQuery(sql).executeUpdate(); int result1 = 0; - + archivesSummaryRepository.deleteAllById(ids); //若删除为文件级 则删除附件 if(ArchivesTypeEnum.inChive.getCode() == archivesType.getIsType() || ArchivesTypeEnum.files.getCode() == archivesType.getIsType()){ String fileSql = "select file_path from file_"+queryTable+" where archive_id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; @@ -731,8 +788,16 @@ public class ArchivesServiceImpl implements ArchivesService { //删除案卷 String delete3sql = "delete from " + archivesType_3.getEnName() + " where id in ('"+list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; entityManager.createNativeQuery(delete3sql).executeUpdate(); + archivesSummaryRepository.deleteAllById(list3); + //获取卷内表名 String enName_4 = archivesTypeRepository.findEnNameByPid(archivesType_3.getId()); + + String query4sql = "select id from "+enName_4+" where is_delete_time is not null and parent_id in ('" + +list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; + List list4 = entityManager.createNativeQuery(query4sql).getResultList(); + archivesSummaryRepository.deleteAllById(list4); + //删除卷内 String delete4sql = "delete from " + enName_4 + " where is_delete_time is not null " + "and parent_id in ('"+list3.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')"; @@ -775,6 +840,7 @@ public class ArchivesServiceImpl implements ArchivesService { +" where is_delete_time is not null and parent_id in ('"+ids.stream().map(String::valueOf).collect(Collectors.joining("','"))+"')) "; //删除卷内 entityManager.createNativeQuery(delete3sql).executeUpdate(); + archivesSummaryRepository.deleteAllById(list3); //删除卷内附件 result1 = entityManager.createNativeQuery(sql1).executeUpdate(); for(String paths : filePath){ diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java index fe75769..670119a 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesTagServiceImpl.java @@ -10,6 +10,8 @@ import com.storeroom.modules.archives.repository.ArchivesTagLogRepository; import com.storeroom.modules.archives.repository.ArchivesTagRepository; import com.storeroom.modules.archives.service.ArchivesTagService; import com.storeroom.modules.archives.service.dto.CaseDTO; +import com.storeroom.modules.device.domain.DeviceArchivesTag; +import com.storeroom.modules.device.repository.DeviceArchivesTagRepository; import com.storeroom.utils.PageUtil; import com.storeroom.utils.StringUtils; import lombok.RequiredArgsConstructor; @@ -30,6 +32,7 @@ public class ArchivesTagServiceImpl implements ArchivesTagService { private final ArchivesTagLogRepository archivesTagLogRepository; private final ArchivesSummaryRepository archivesSummaryRepository; private final ArchivesCaseRepository caseRepository; + private final DeviceArchivesTagRepository deviceArchivesTagRepository; @PersistenceContext EntityManager entityManager; @@ -84,6 +87,9 @@ public class ArchivesTagServiceImpl implements ArchivesTagService { case 2: caseRepository.unbindTag(tid); break; + case 3: + deviceArchivesTagRepository.unbindTag(tid); + break; default: break; } @@ -106,6 +112,10 @@ public class ArchivesTagServiceImpl implements ArchivesTagService { returnCount = caseRepository.bindTag(tid,parentId); break; case 3: + DeviceArchivesTag deviceArchivesTag = deviceArchivesTagRepository.findById(parentId).get(); + title = deviceArchivesTag.getPosition(); + oldTid = deviceArchivesTag.getTid(); + returnCount = deviceArchivesTagRepository.bindTag(tid,parentId); break; default: break; @@ -162,17 +172,18 @@ public class ArchivesTagServiceImpl implements ArchivesTagService { archivesSummaryRepository.unbindTag(tid); String archivesTable = archivesSummary.getArchivesTableName(); String sql = "update "+archivesTable+" set tid = null where id = '"+archivesSummary.getArchivesId()+"'"; - result = entityManager.createNativeQuery(sql).executeUpdate(); - archivesTagLogRepository.save(unbingLog); + entityManager.createNativeQuery(sql).executeUpdate(); break; case 2: caseRepository.unbindTag(tid); - archivesTagLogRepository.save(unbingLog); - result = 1; + break; + case 3: + deviceArchivesTagRepository.unbindTag(tid); break; default: break; } + archivesTagLogRepository.save(unbingLog); archivesTagRepository.unbindTag(tid); result++; } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java index dfc2739..0b9f078 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/DeviceArchivesTagRepository.java @@ -3,6 +3,17 @@ package com.storeroom.modules.device.repository; import com.storeroom.modules.device.domain.DeviceArchivesTag; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; public interface DeviceArchivesTagRepository extends JpaRepository, JpaSpecificationExecutor { + + @Modifying + @Query(value = "update DeviceArchivesTag set tid = ?1 where id = ?2 ") + Integer bindTag(String tid,String shelfId); + + @Modifying + @Query(value = "update DeviceArchivesTag set tid = null where tid = ?1") + void unbindTag(String tid); + }