From 9f5127b6c58a297104bccc75a4c5125733f5ff4b Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期四, 27 十一月 2025 14:33:11 +0800
Subject: [PATCH] 修改了对应代码
---
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java | 254 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 233 insertions(+), 21 deletions(-)
diff --git a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
index 22f5ae5..f0fcaf7 100644
--- a/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
+++ b/archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -3,6 +3,8 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,13 +13,20 @@
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.ArchiveRecords;
import com.ruoyi.domain.Archiverecordstouser;
+import com.ruoyi.domain.vo.AnalysisResult;
+import com.ruoyi.domain.vo.ArchiveInfoVo;
+import com.ruoyi.domain.vo.ArchiveRecordSmall;
import com.ruoyi.mapper.ArchiveRecordsMapper;
import com.ruoyi.mapper.ArchiverecordstouserMapper;
import com.ruoyi.service.IArchiveRecordsService;
+import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.util.Arrays;
/**
* 妗f璁板綍Service涓氬姟灞傚鐞�
@@ -37,13 +46,81 @@
- private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords){
+ private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords, Long userId){
LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
- lqw.like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
- .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
- .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
- .like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId());
+ // 鏍规嵁寮�濮嬪拰缁撴潫鐨刢ategoryNumber鐢熸垚杩炵画鐨剅ecordId
+ String categoryNumberStart = archiveRecords.getCategoryNumberStart();
+ String categoryNumberEnd = archiveRecords.getCategoryNumberEnd();
+
+ if (!StringUtils.isEmpty(categoryNumberStart) && !StringUtils.isEmpty(categoryNumberEnd)) {
+ try {
+ // 瑙f瀽寮�濮嬪拰缁撴潫鐨勭紪鍙凤紝鎻愬彇鍓嶇紑鍜屾暟瀛楅儴鍒�
+ // 渚嬪锛欱1.3-999-2024-1 -> 鍓嶇紑: B1.3-999-2024-, 鏁板瓧: 1
+ int lastDashIndexStart = categoryNumberStart.lastIndexOf('-');
+ int lastDashIndexEnd = categoryNumberEnd.lastIndexOf('-');
+
+ if (lastDashIndexStart > 0 && lastDashIndexEnd > 0) {
+ String prefixStart = categoryNumberStart.substring(0, lastDashIndexStart + 1);
+ String prefixEnd = categoryNumberEnd.substring(0, lastDashIndexEnd + 1);
+
+ // 纭繚鍓嶇紑鐩稿悓锛屾墠鐢熸垚杩炵画缂栧彿
+ if (prefixStart.equals(prefixEnd)) {
+ int startNum = Integer.parseInt(categoryNumberStart.substring(lastDashIndexStart + 1));
+ int endNum = Integer.parseInt(categoryNumberEnd.substring(lastDashIndexEnd + 1));
+
+ // 鐢熸垚杩炵画鐨剅ecordId鍒楄〃锛屽皢鏁板瓧鏍煎紡鍖栦负5浣嶏紙濡�00001, 00101锛�
+ List<String> recordIds = new ArrayList<>();
+ for (int i = startNum; i <= endNum; i++) {
+ // 浣跨敤String.format灏嗘暟瀛楁牸寮忓寲涓�5浣嶏紝涓嶈冻鍓嶉潰琛�0
+ String formattedNumber = String.format("%05d", i);
+ recordIds.add(prefixStart + formattedNumber);
+ }
+
+ // 娣诲姞鍒版煡璇㈡潯浠朵腑
+ lqw.in(ArchiveRecords::getRecordId, recordIds);
+ }
+ }
+ } catch (Exception e) {
+ // 濡傛灉瑙f瀽澶辫触锛屽拷鐣ユ鏉′欢
+ e.printStackTrace();
+ }
+ }
+
+ System.out.println(archiveRecords.getIds());
+
+ // 濡傛灉娌℃湁浣跨敤杩炵画缂栧彿鏉′欢锛屾墠浣跨敤鏅�氱殑like鏉′欢
+ if (StringUtils.isEmpty(categoryNumberStart) || StringUtils.isEmpty(categoryNumberEnd)) {
+ lqw.like(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId, archiveRecords.getRecordId());
+ }
+ else {
+ lqw.
+ like(!StringUtils.isEmpty(archiveRecords.getInquiryNumber()), ArchiveRecords::getInquiryNumber, archiveRecords.getInquiryNumber())
+ .like(!StringUtils.isEmpty(archiveRecords.getCaseTitle()), ArchiveRecords::getCaseTitle, archiveRecords.getCaseTitle())
+ .like(!StringUtils.isEmpty(archiveRecords.getPublicAttribute()), ArchiveRecords::getPublicAttribute, archiveRecords.getPublicAttribute())
+ .like(!StringUtils.isEmpty(archiveRecords.getPreparationUnit()), ArchiveRecords::getPreparationUnit, archiveRecords.getPreparationUnit())
+ .like(!StringUtils.isEmpty(archiveRecords.getRetentionPeriod()), ArchiveRecords::getRetentionPeriod, archiveRecords.getRetentionPeriod())
+ .like(!StringUtils.isEmpty(archiveRecords.getSecurityClassification()), ArchiveRecords::getSecurityClassification, archiveRecords.getSecurityClassification())
+ .like(!StringUtils.isEmpty(archiveRecords.getFilingNumber()), ArchiveRecords::getFilingNumber, archiveRecords.getFilingNumber())
+ .like(!StringUtils.isEmpty(archiveRecords.getConstructionUnit()), ArchiveRecords::getConstructionUnit, archiveRecords.getConstructionUnit())
+ .like(!StringUtils.isEmpty(archiveRecords.getConstructionAddress()), ArchiveRecords::getConstructionAddress, archiveRecords.getConstructionAddress())
+ .like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
+ .like(!StringUtils.isEmpty(archiveRecords.getProjectNumber()), ArchiveRecords::getProjectNumber, archiveRecords.getProjectNumber())
+ .like(!StringUtils.isEmpty(archiveRecords.getScanningCompany()), ArchiveRecords::getScanningCompany, archiveRecords.getScanningCompany())
+ .like(!StringUtils.isEmpty(archiveRecords.getArchiveRoomNumber()), ArchiveRecords::getArchiveRoomNumber, archiveRecords.getArchiveRoomNumber())
+ .like(!StringUtils.isEmpty(archiveRecords.getMicrofilmNumber()), ArchiveRecords::getMicrofilmNumber, archiveRecords.getMicrofilmNumber())
+ .like(!StringUtils.isEmpty(archiveRecords.getHistoricalReferenceNumber()), ArchiveRecords::getHistoricalReferenceNumber, archiveRecords.getHistoricalReferenceNumber())
+ .eq(!StringUtils.isEmpty(archiveRecords.getRecordStatus()), ArchiveRecords::getRecordStatus, archiveRecords.getRecordStatus())
+ .like(!StringUtils.isEmpty(archiveRecords.getEveryProjectName()), ArchiveRecords::getEveryProjectName, archiveRecords.getEveryProjectName())
+ .like(!StringUtils.isEmpty(archiveRecords.getRemarks()), ArchiveRecords::getRemarks, archiveRecords.getRemarks());
+
+ }
+
+ if(archiveRecords.getIds()!=null)
+ lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
+
+
+
// .like(!StringUtils.isEmpty(zfProperty.getLocation()), ZfProperty::getLocation, zfProperty.getLocation())
// .like(!StringUtils.isEmpty(zfProperty.getHolder()), ZfProperty::getHolder, zfProperty.getHolder())
// .like(!StringUtils.isEmpty(zfProperty.getAddress()), ZfProperty::getAddress, zfProperty.getAddress())
@@ -53,9 +130,9 @@
// .eq(zfProperty.getHappenTime()!=null,ZfProperty::getHappenTime,zfProperty.getHappenTime())
// .between(zfProperty.getHappenStartTime() != null && zfProperty.getHappenEndTime() != null, ZfProperty::getHappenTime, zfProperty.getHappenStartTime(), zfProperty.getHappenEndTime());
// lqw.orderByDesc(ZfProperty::getCreateTime);
- // lqw.orderByDesc(ArchiveRecords::isOwnData);
- // lqw.orderByDesc(ArchiveRecords::getCreateTime);
- lqw.orderByDesc(ArchiveRecords::getCreateTime);
+ if(userId==1)
+
+ lqw.orderByDesc(ArchiveRecords::getCreateTime);
System.out.println("ssssssssssssddd0000000000000000");
return lqw;
@@ -69,8 +146,10 @@
@Override
public AjaxResult selectDataList(ArchiveRecords archiveRecords, Integer pageNum, Integer pageSize) {
-
- LambdaQueryWrapper<ArchiveRecords> lqw = buildCondition(archiveRecords);
+ //鎷垮埌褰撳墠鐢ㄦ埛鐨刬d
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ Long userid = SecurityUtils.getUserId();
+ LambdaQueryWrapper<ArchiveRecords> lqw = buildCondition(archiveRecords, userid);
System.out.println("-------------");
System.out.println(pageNum);
@@ -81,7 +160,7 @@
Page<ArchiveRecords> page = new Page<>(pageNum, pageSize);
// 浣跨敤鑷畾涔夌殑鍒嗛〉鏌ヨ鏂规硶锛屽厛杩炴帴鍐嶅垎椤�
- Page<ArchiveRecords> pageResult = this.baseMapper.selectJoinUserPage(page, lqw);
+ Page<ArchiveRecords> pageResult = this.baseMapper.selectJoinUserPage(page, userid, lqw);
//selectJoinUserPage(page, lqw);
@@ -92,9 +171,7 @@
// List<ArchiveRecords> beanRecords = list(lqw);
// log.info("浠庢暟鎹簱涓煡鍒扮殑涓�:{}", beanRecords);
// return markOwnData(familyId, fatherFaId, motherFaId, beanRecords);
- //鎷垮埌褰撳墠鐢ㄦ埛鐨刬d
- // 鑾峰彇褰撳墠鐢ㄦ埛ID
- Long userid = SecurityUtils.getUserId();
+
beanRecords.forEach(record ->{
if(record.isArchiveRecordsId()!=null&&record.getUserId()==userid)
@@ -104,8 +181,9 @@
else
record.setOwnData(false);
});
-
- // Collections.sort(beanRecords, Comparator.comparing(ArchiveRecords::isOwnData));
+ //涓嶆槸绠$悊鍛樿繘琛屾帓搴�
+ // if(userid != 1)
+ // Collections.sort(beanRecords, Comparator.comparing(ArchiveRecords::isOwnData));
HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
// System.out.println(data.get("data"));
// System.out.println(data.get("pageNum"));
@@ -143,9 +221,33 @@
@Override
public List<ArchiveRecords> selectArchiveRecordsList(ArchiveRecords archiveRecords)
{
- LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = buildCondition(archiveRecords);
+ //鎷垮埌褰撳墠鐢ㄦ埛鐨刬d
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ Long userid = SecurityUtils.getUserId();
+ LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = buildCondition(archiveRecords,userid);
List<ArchiveRecords> beanRecords = list(lambdaQueryWrapper);
+ return beanRecords;
+ }
+
+ @Override
+ public List<ArchiveRecords> selectArchiveRecordsByIds(Long[] ids)
+ {
+ // 鑾峰彇褰撳墠鐢ㄦ埛ID
+ Long userid = SecurityUtils.getUserId();
+
+ // 鍒涘缓鏌ヨ鏉′欢
+ LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+ // 鏍规嵁ids鏌ヨ
+ lambdaQueryWrapper.in(ArchiveRecords::getId, Arrays.asList(ids));
+
+ // 濡傛灉涓嶆槸绠$悊鍛橈紝闇�瑕佽�冭檻鏉冮檺杩囨护锛堝彲鏍规嵁瀹為檯鏉冮檺闇�姹傝皟鏁达級
+ if (userid != 1) {
+ // 杩欓噷鍙互娣诲姞鏉冮檺鐩稿叧鐨勮繃婊ゆ潯浠�
+ }
+
+ List<ArchiveRecords> beanRecords = list(lambdaQueryWrapper);
return beanRecords;
}
@@ -162,7 +264,21 @@
Date date = Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
archiveRecords.setCreateTime(date);
+ System.out.println(archiveRecords.getRecordId());
+ //鏍规嵁妗e彿鏌ヨ锛屾槸鍚﹀凡缁忔湁妗e彿锛屾湁鐨勮瘽锛屽氨涓嶈鎻掑叆
+ LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId,
+ archiveRecords.getRecordId());
+ List<ArchiveRecords> lis = list(lambdaQueryWrapper);
+ if(!lis.isEmpty())
+ {
+ return 0;
+ }
+ archiveRecords.setRecordStatus("鏈綍鍏�");
+ // archiveRecords
boolean res = this.save(archiveRecords);
+
+ //0琛ㄧず澶辫触锛�1琛ㄧず鎴愬姛
if(res)
return 1;
else
@@ -194,11 +310,13 @@
@Override
public int deleteArchiveRecordsByIds(Long[] ids)
{
- if (this.removeByIds(Arrays.asList(ids))) {
- return 1;
+ Long res = 0L;
+ for(Long id: ids)
+ {
+ this.baseMapper.updateAllInfoById(id);
+
}
- else
- return 0;
+ return 1;
}
/**
@@ -212,4 +330,98 @@
{
return 0;
}
+
+ @Override
+ public ArchiveInfoVo selectByRecordId(Long id) {
+ return this.baseMapper.findByRecordId(id);
+ }
+
+ @Override
+ public AjaxResult importExcel(MultipartFile file) {
+ ExcelUtil<ArchiveRecords> util = new ExcelUtil<>(ArchiveRecords.class);
+ List<ArchiveRecords> dataList = null;
+ try {
+ dataList = util.importExcel(file.getInputStream());
+ } catch (Exception e) {
+ throw new RuntimeException("娌℃湁鎸夌収瑙勫垯瀵煎叆鏁版嵁");
+ }
+
+ assert dataList != null;
+
+ for (ArchiveRecords archiveRecords : dataList) {
+ // physcialService.mySave(physcial);
+ archiveRecords.setRecordStatus("鏈綍鍏�");
+ LocalDateTime time = LocalDateTime.now();
+
+ Date date = Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
+ archiveRecords.setCreateTime(date);
+ this.mySave(archiveRecords);
+ }
+
+ return AjaxResult.success();
+ }
+
+ @Override
+ public List<AnalysisResult> statisticAya() {
+ return this.baseMapper.statisticAyasis();
+ }
+
+ @Override
+ public int updateArchiveById(String status, Long id) {
+ this.baseMapper.updateStatusById(status, id);
+ return 0;
+ }
+
+ @Override
+ public int updateStatusByIds(Long[] ids) {
+ for(Long id : ids)
+ this.baseMapper.updateStatusById("褰曞叆瀹屾垚",id);
+ return 0;
+ }
+
+ @Override
+ public List<ArchiveRecordSmall> findByIds(ArchiveRecords archiveRecords) {
+
+ LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
+ if(archiveRecords.getIds()!=null)
+ lqw.in(ArchiveRecords::getId,new ArrayList<>(Arrays.asList(archiveRecords.getIds())));
+ return this.baseMapper.selectByIds(lqw);
+ }
+
+
+ public AjaxResult mySave(ArchiveRecords archiveRecords) {
+
+
+ //妫�鏌ユ槸鍚︽湁閲嶅鏁版嵁鎻掑叆
+ LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId,archiveRecords.getRecordId());
+ List<ArchiveRecords> list = list(lqw);
+ if (list.size() > 0) {
+ // throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
+ //濡傛灉鏈夐噸澶嶆暟鎹紝鍒欐牴鎹畆ecordId杩涜鏁版嵁淇敼
+ // if()
+
+ this.baseMapper.update(archiveRecords, lqw);
+ return AjaxResult.success();
+
+
+ }
+ else {
+ Long userid = SecurityUtils.getUserId();
+ if(userid==1) {
+ if (save(archiveRecords)) {
+ return AjaxResult.success();
+ } else {
+ return AjaxResult.error();
+ }
+ }
+ else
+ return AjaxResult.error("妗f鍙蜂笉瀛樺湪锛�");
+ }
+
+ }
+ @Override
+ public boolean whether(@Param("recordId") Long recordId){
+ return this.baseMapper.whether(recordId);
+ }
}
--
Gitblit v1.9.1