From c266ddc4a1e61b77501b35f1c69b14f0b3408432 Mon Sep 17 00:00:00 2001 From: zyd Date: Wed, 12 Oct 2022 22:58:48 +0800 Subject: [PATCH 1/9] =?UTF-8?q?add:=E6=A3=80=E6=9F=A5=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=BA=E5=8A=A0=E5=AF=86=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SarBussionessStandController.java | 9 ++ .../service/ISarBussionessStandService.java | 3 + .../impl/SarBussionessStandServiceImpl.java | 76 ++++++++++- .../SarStandardsInfoController.java | 8 ++ .../service/ISarStandardsInfoService.java | 1 + .../impl/SarStandardsInfoServiceImpl.java | 69 ++++++++++ .../adc/da/utils/util/EncryptFileUtils.java | 127 ++++++++++++++++++ 7 files changed, 289 insertions(+), 4 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java index 19da6266..6287698b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java @@ -365,5 +365,14 @@ public class SarBussionessStandController extends BaseController List getSarBussionStandPageQd(SarBussionessStandEOPage page) throws Exception; void convertDocAllQB(List list); + + void checkFileByEncrypt(); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index e59a3a23..8b75f2d8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -57,10 +57,7 @@ import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard; import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService; import com.adc.da.sys.util.LoginUserUtil; import com.adc.da.util.UUIDUtils; -import com.adc.da.utils.util.FieldConvertUtil; -import com.adc.da.utils.util.InitStandAttrUtil; -import com.adc.da.utils.util.SarAdvanceSearchUtil; -import com.adc.da.utils.util.Utils; +import com.adc.da.utils.util.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.sf.json.JSONObject; @@ -71,6 +68,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.sql.Clob; @@ -170,6 +168,10 @@ public class SarBussionessStandServiceImpl extends ServiceImpl standQueryWrapper = new QueryWrapper<>(); + standQueryWrapper.eq("VALID_FLAG",0); + List sarBussionessStands = sarBussionessStandEODao.selectList(standQueryWrapper); + int checkStandNum = 0; + List outLogList = new ArrayList<>(); + if(sarBussionessStands!=null && !sarBussionessStands.isEmpty()){ + for (SarBussionessStand data:sarBussionessStands) { + logger.info("开始处理第 "+(checkStandNum++)+" 个企标: "+data.getId()+" "+data.getStandCode()); + QueryWrapper fileQueryWrapper = new QueryWrapper<>(); + fileQueryWrapper.eq("STAND_ID",data.getId()); + fileQueryWrapper.eq("USE_MODEL","SOURCE_FILE"); + fileQueryWrapper.eq("validFlag",0); + List sarBussStandFiles = sarBussStandFileEODao.selectList(fileQueryWrapper); + if(sarBussStandFiles!=null && !sarBussStandFiles.isEmpty()){ + for(SarBussStandFile file : sarBussStandFiles){ + StringBuilder fileLog = new StringBuilder(); + String fileAttId = file.getAttId(); + if(StringUtils.isNotBlank(fileAttId)){ + fileLog.append("标准 ").append(data.getStandCode()).append(" ").append(data.getId()); + fileLog.append(" 下的文件: ").append(file.getId()).append(" ").append(file.getFileName()); + //获取文件信息 + AttFileEO fileInfo = attFileEOService.getFileInfo(fileAttId); + String checkResult = encryptFileUtils.checkFileIsEncryFile(fileInfo); + switch (checkResult){ + case "NOFILE": + fileLog.append(" 检查结果为 不存在该数据 "); + break; + case "READERR": + fileLog.append(" 检查结果为 读取文件失败 "); + break; + case "READNO": + fileLog.append(" 检查结果为 读取文件为空 "); + break; + case "UNENCRYPT": + fileLog.setLength(0); + break; + case "ENCRYPT": + fileLog.append(" 检查结果为 读取文件为空 "); + break; + } + } + if(fileLog.length()>0){ + outLogList.add(fileLog.toString()); + } + } + } + } + } + if(!outLogList.isEmpty()){ + encryptFileUtils.writeTxt(outLogList); + } + logger.info("================================文件检查完毕=================================================="); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index 945da70f..61285b71 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -899,4 +899,12 @@ public class SarStandardsInfoController extends BaseController return "1"; } + @ApiOperation(value = "企业标准原始文件判断是否是加密文件") + @GetMapping("/checkFileByEncrypt") + public ResponseMessage checkFileByEncrypt() { + sarStandardsInfoEOService.checkFileByEncrypt(); + return Result.success("开始判断中稍后到服务器中查看文件"); + } + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java index 85d0593e..a1899b2b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java @@ -71,5 +71,6 @@ public interface ISarStandardsInfoService extends IService { void convertDocAll(List list); + void checkFileByEncrypt(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 7581859b..3da396b7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -115,6 +115,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -289,6 +290,9 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl standQueryWrapper = new QueryWrapper<>(); + standQueryWrapper.eq("VALID_FLAG","0"); + List sarStandardsInfos = dao.selectList(standQueryWrapper); + int checkStandNum = 0; + List outLogList = new ArrayList<>(); + if(sarStandardsInfos!=null && !sarStandardsInfos.isEmpty()){ + for (SarStandardsInfo data:sarStandardsInfos) { + logger.info("开始处理第 "+(checkStandNum++)+" 个标准: "+data.getId()+" "+data.getStandSort()+" "+data.getStandNumber()+"-"+data.getStandYear()); + QueryWrapper fileQueryWrapper = new QueryWrapper<>(); + fileQueryWrapper.eq("STAND_ID",data.getId()); + fileQueryWrapper.eq("USE_MODEL","SOURCE_FILE"); + fileQueryWrapper.eq("validFlag",0); + List sarStandFiles = sarStandFileEODao.selectList(fileQueryWrapper); + if(sarStandFiles!=null && !sarStandFiles.isEmpty()){ + for(SarStandFile file : sarStandFiles){ + StringBuilder fileLog = new StringBuilder(); + String fileAttId = file.getAttId(); + if(org.apache.commons.lang.StringUtils.isNotBlank(fileAttId)){ + fileLog.append("标准 ").append(data.getStandSort()+" "+data.getStandNumber()+"-"+data.getStandYear()).append(" ").append(data.getId()); + fileLog.append(" 下的文件: ").append(file.getId()).append(" ").append(file.getFileName()); + //获取文件信息 + AttFileEO fileInfo = attFileEOService.getFileInfo(fileAttId); + String checkResult = encryptFileUtils.checkFileIsEncryFile(fileInfo); + switch (checkResult){ + case "NOFILE": + fileLog.append(" 检查结果为 不存在该数据 "); + break; + case "READERR": + fileLog.append(" 检查结果为 读取文件失败 "); + break; + case "READNO": + fileLog.append(" 检查结果为 读取文件为空 "); + break; + case "UNENCRYPT": + fileLog.setLength(0); + break; + case "ENCRYPT": + fileLog.append(" 检查结果为 读取文件为空 "); + break; + } + } + if(fileLog.length()>0){ + outLogList.add(fileLog.toString()); + } + } + } + } + } + if(!outLogList.isEmpty()){ + encryptFileUtils.writeTxt(outLogList); + } + logger.info("================================文件检查完毕=================================================="); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java new file mode 100644 index 00000000..cc62e2c0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java @@ -0,0 +1,127 @@ +package com.adc.da.utils.util; + +import com.adc.da.att.entity.AttFileEO; +import com.adc.da.util.UUIDUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.*; +import java.util.List; + +/** + * 加密文件判断工具类 + */ +@Component +public class EncryptFileUtils { + + private static final Logger logger = LoggerFactory.getLogger(EncryptFileUtils.class); + + @Value("${file.path}") + private String filePath;//文件存储路径 + + public static final String ENCRYPT_FILE_HEX ="18 1B 03 1A 15 10 19 7C 0A 19 0E 7C 6F 72 6C 5F 5C 5C 5C 5C 5C 5C 5C C3 AD E5 AF 5C 5C 5C 5C 5C 8F EF EF 80 B5 AE 85 B3 94 86 A7 8C 86 E3 A2 FC B5 B4 83 8A B7 8B A9 87 F2 F1 BC F5 8E BF 90 E3 A4 86 8F 8B 94 FC A7 90 A4 EF 87 BC B6 8F 89 B1 F4 8E F7 8D 8A B5 8B 9D F3 89 AA 80 B1 90 82 8C 9F B7 85 A9 B0 89 B2 96 B3 B0 A6 B7 B5 8F 93 E1 AD BD E6 AE 8F 95 92 97 8D F0 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 C5 "; + + + + public String checkFileIsEncryFile(AttFileEO fileEO){ + if(fileEO!=null){ + String readFilePath = filePath+fileEO.getFilePath()+fileEO.getFileName(); + boolean readFlag = true; + byte[] b = new byte[160]; + InputStream inputStream = null; + try { + inputStream = new FileInputStream(readFilePath); + inputStream.read(b, 0, 160); + } catch (IOException e) { + logger.error(e.getMessage(),e); + readFlag = false; + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + logger.error(e.getMessage(),e); + } + } + } + String hexString = bytesToHexString(b); + if(readFlag){ + if(StringUtils.isNotBlank(hexString)){ + if(StringUtils.equals(hexString,ENCRYPT_FILE_HEX)){ + return "ENCRYPT"; + }else{ + return "UNENCRYPT"; + } + }else{ + return "READNO"; + } + }else{ + return "READERR"; + } + }else{ + return "NOFILE"; + } + } + + /** + * 将文件头转换成16进制字符串 + * + * @param 原生byte + * @return 16进制字符串 + */ + private static String bytesToHexString(byte[] src) { + StringBuilder stringBuilder = new StringBuilder(); + if (src == null || src.length <= 0) { + return null; + } + for (int i = 0; i < src.length; i++) { + int v = src[i] & 0xFF; + String hv = Integer.toHexString(v); + if (hv.length() < 2) { + stringBuilder.append(0); + } + stringBuilder.append(hv.toUpperCase()).append(" "); + } + return stringBuilder.toString(); + } + + + /** + * 本地写TXT文件 + * @param path + * @param list + */ + public void writeTxt(List list) { + String savePath = filePath+"/TEMPPATH/"+ UUIDUtils.randomSnowflakeID()+".txt"; + BufferedWriter bw = null; + FileWriter fr = null; + try { + //将写入转化为流的形式 + fr = new FileWriter(savePath); + bw = new BufferedWriter(fr); + //一次写一行 + for (String s : list) { + bw.write(s); + bw.newLine(); //换行用 + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (bw != null) { + bw.close(); + } + if (fr != null) { + fr.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} From 3c89f8bdbd11a3b88f26743fd7f281edf0ded7b5 Mon Sep 17 00:00:00 2001 From: zyd Date: Wed, 12 Oct 2022 23:10:35 +0800 Subject: [PATCH 2/9] =?UTF-8?q?add:=20=E6=9B=B4=E6=96=B0swagger=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/adc/da/login/security/WebMvcConfig.java | 5 +++++ .../src/main/java/com/adc/da/main/config/SwaggerConfig.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 0ade319e..2aff26bd 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -112,6 +112,11 @@ public class WebMvcConfig implements WebMvcConfigurer { //预警导出 addInterceptor.excludePathPatterns("/api/sys/EarlyWarning/exportWarning"); + //企标文件检查接口 + addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/checkFileByEncrypt"); + + //标准文件检查接口 + addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/checkFileByEncrypt"); //OCR回调存储文件 addInterceptor.excludePathPatterns("/api/ocr/OCRRestful/OcrHandleResult"); diff --git a/adc-da-main/src/main/java/com/adc/da/main/config/SwaggerConfig.java b/adc-da-main/src/main/java/com/adc/da/main/config/SwaggerConfig.java index acba54fe..4d754ba5 100644 --- a/adc-da-main/src/main/java/com/adc/da/main/config/SwaggerConfig.java +++ b/adc-da-main/src/main/java/com/adc/da/main/config/SwaggerConfig.java @@ -35,7 +35,7 @@ public class SwaggerConfig { ParameterBuilder tokenPar = new ParameterBuilder(); List pars = new ArrayList<>(); - tokenPar.name("Authorization") + tokenPar.name("token") .description("令牌") .modelRef(new ModelRef("string")) .parameterType("header") From d6771eabe145fc8a5f525e56fcc064a63a90de15 Mon Sep 17 00:00:00 2001 From: zyd Date: Wed, 12 Oct 2022 23:43:55 +0800 Subject: [PATCH 3/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adc/da/login/security/WebMvcConfig.java | 5 +-- .../adc/da/scheduled/CheckEncryFileJob.java | 34 ++++++++++++++++++ .../da/scheduled/controller/Controller.java | 20 ++++++++--- .../SarBussionessStandController.java | 7 +--- .../impl/SarBussionessStandServiceImpl.java | 1 - .../SarStandardsInfoController.java | 8 ----- .../service/ISarStandardsInfoService.java | 1 - .../impl/SarStandardsInfoServiceImpl.java | 36 ------------------- 8 files changed, 52 insertions(+), 60 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/scheduled/CheckEncryFileJob.java diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 2aff26bd..9fc0eb38 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -112,11 +112,8 @@ public class WebMvcConfig implements WebMvcConfigurer { //预警导出 addInterceptor.excludePathPatterns("/api/sys/EarlyWarning/exportWarning"); - //企标文件检查接口 - addInterceptor.excludePathPatterns("/api/lawss/sarBussionessStand/checkFileByEncrypt"); - //标准文件检查接口 - addInterceptor.excludePathPatterns("/api/sarStandardsInfo/sar-standards-info/checkFileByEncrypt"); + addInterceptor.excludePathPatterns("/api/scheduled/checkFileByEncrypt"); //OCR回调存储文件 addInterceptor.excludePathPatterns("/api/ocr/OCRRestful/OcrHandleResult"); diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/CheckEncryFileJob.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/CheckEncryFileJob.java new file mode 100644 index 00000000..8b51559d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/CheckEncryFileJob.java @@ -0,0 +1,34 @@ +package com.adc.da.scheduled; + + +import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.stereotype.Component; + +@EnableScheduling +@Component +@Slf4j +public class CheckEncryFileJob { + + @Autowired + ISarBussionessStandService iSarBussionessStandService; + + @Autowired + ISarStandardsInfoService iSarStandardsInfoService; + + @Async + public void asyncCheckBussStandEncryptFile(){ + iSarBussionessStandService.checkFileByEncrypt(); + } + + + @Async + public void asyncCheckStandEncryptFile(){ + iSarStandardsInfoService.checkFileByEncrypt(); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/controller/Controller.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/controller/Controller.java index b38dfaa3..af254984 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/controller/Controller.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/controller/Controller.java @@ -1,12 +1,13 @@ package com.adc.da.scheduled.controller; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.scheduled.CheckEncryFileJob; import com.adc.da.scheduled.ScheduledJob; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/${restPath}/scheduled") @@ -17,6 +18,9 @@ public class Controller { @Autowired ScheduledJob scheduledJob; + @Autowired + CheckEncryFileJob checkEncryFileJob; + @PutMapping("/warning") public void warning(){ scheduledJob.warningSchedulingTasks(); @@ -28,4 +32,12 @@ public class Controller { } + @ApiOperation(value = "标准原始文件判断是否是加密文件") + @GetMapping("/checkFileByEncrypt") + public ResponseMessage checkFileByEncrypt() { + checkEncryFileJob.asyncCheckStandEncryptFile(); + checkEncryFileJob.asyncCheckBussStandEncryptFile(); + return Result.success("开始判断中稍后到服务器中查看文件"); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java index 6287698b..7f93d5b5 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/controller/SarBussionessStandController.java @@ -365,12 +365,7 @@ public class SarBussionessStandController extends BaseController return "1"; } - @ApiOperation(value = "企业标准原始文件判断是否是加密文件") - @GetMapping("/checkFileByEncrypt") - public ResponseMessage checkFileByEncrypt() { - sarStandardsInfoEOService.checkFileByEncrypt(); - return Result.success("开始判断中稍后到服务器中查看文件"); - } - - } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java index a1899b2b..bb5f2df4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java @@ -1,6 +1,5 @@ package com.adc.da.slrs.sarStandardsInfo.service; -import com.adc.da.slrs.sarBussStandFile.entity.SarBussStandFile; import com.adc.da.slrs.sarStandFile.entity.SarStandFile; import com.adc.da.slrs.sarStandardsInfo.entity.*; import com.adc.da.http.ResponseMessage; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 3da396b7..48f2c7cd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -11,18 +11,11 @@ import com.adc.da.slrs.regulations.entity.SearchStandContext; import com.adc.da.slrs.regulations.entity.StandData; import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao; import com.adc.da.slrs.sarBussStandAttrInfo.entity.SarBussStandAttrInfo; -import com.adc.da.slrs.sarBussStandAttrInfo.service.ISarBussStandAttrInfoService; -import com.adc.da.slrs.sarBussStandFile.entity.SarBussStandFile; -import com.adc.da.slrs.sarBussStandFile.service.ISarBussStandFileService; -import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; -import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.adc.da.slrs.sarLawsAttrDetailedList.dao.SarLawsAttrDetailedListDao; import com.adc.da.slrs.sarLawsAttrDetailedList.entity.SarFindDto; import com.adc.da.slrs.sarPosition.entity.TsPosition; import com.adc.da.slrs.sarPosition.service.ITsPositionService; -import com.adc.da.slrs.sarStandAttrInfo.service.ISarStandAttrInfoService; import com.adc.da.slrs.sarStandFile.service.ISarStandFileService; -import com.adc.da.slrs.sarStandWarning.dao.WarningDateDao; import com.adc.da.slrs.sarStandWarning.entity.WarningDate; import com.adc.da.slrs.sarStandWarning.service.Impl.WarningDateServiceImpl; import com.adc.da.slrs.sarUser.entity.TsUser; @@ -79,10 +72,6 @@ import com.adc.da.slrs.standardSplit.dao.SarFileSplitInfoEODao; import com.adc.da.slrs.standardSplit.entity.SarFileSplitInfoEO; import com.adc.da.slrs.standardSplit.entity.SarFileSplitInfoEOPage; import com.adc.da.slrs.sysInfo.service.SysInfoEOService; -import com.adc.da.slrs.tsDictionaryType.dao.TsDicTypeDao; -import com.adc.da.slrs.tsDictionaryType.dao.TsDictionaryDao; -import com.adc.da.slrs.tsDictionaryType.entity.TsDicType; -import com.adc.da.slrs.tsDictionaryType.entity.TsDictionary; import com.adc.da.sys.common.SelectionResult; import com.adc.da.sys.constant.ValueStateEnum; import com.adc.da.sys.dao.DicTypeEODao; @@ -97,7 +86,6 @@ import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.sf.json.JSONObject; -import org.apache.catalina.User; import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; @@ -113,7 +101,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -255,28 +242,6 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl Date: Wed, 12 Oct 2022 23:52:39 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SarBussionessStandServiceImpl.java | 2 +- .../service/impl/SarStandardsInfoServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index b81b0c39..11bbe3e5 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -1832,7 +1832,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl fileQueryWrapper = new QueryWrapper<>(); fileQueryWrapper.eq("STAND_ID",data.getId()); fileQueryWrapper.eq("USE_MODEL","SOURCE_FILE"); - fileQueryWrapper.eq("validFlag",0); + fileQueryWrapper.eq("VALID_FLAG",0); List sarBussStandFiles = sarBussStandFileEODao.selectList(fileQueryWrapper); if(sarBussStandFiles!=null && !sarBussStandFiles.isEmpty()){ for(SarBussStandFile file : sarBussStandFiles){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 48f2c7cd..b4430356 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -3586,7 +3586,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl fileQueryWrapper = new QueryWrapper<>(); fileQueryWrapper.eq("STAND_ID",data.getId()); fileQueryWrapper.eq("USE_MODEL","SOURCE_FILE"); - fileQueryWrapper.eq("validFlag",0); + fileQueryWrapper.eq("VALID_FLAG","0"); List sarStandFiles = sarStandFileEODao.selectList(fileQueryWrapper); if(sarStandFiles!=null && !sarStandFiles.isEmpty()){ for(SarStandFile file : sarStandFiles){ From 452ed1920b63e5050b94135337b8c7259fcb5e21 Mon Sep 17 00:00:00 2001 From: zyd Date: Thu, 13 Oct 2022 00:53:48 +0800 Subject: [PATCH 5/9] =?UTF-8?q?add:=E8=A7=A3=E5=86=B3=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/adc/da/utils/util/EncryptFileUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java index cc62e2c0..cadea2d4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/EncryptFileUtils.java @@ -96,7 +96,7 @@ public class EncryptFileUtils { * @param list */ public void writeTxt(List list) { - String savePath = filePath+"/TEMPPATH/"+ UUIDUtils.randomSnowflakeID()+".txt"; + String savePath = filePath+"/TEMPPATH/"+ UUIDUtils.randomUUID20()+".txt"; BufferedWriter bw = null; FileWriter fr = null; try { From 91e26a51c585dd063fc0380978d8dc84f5a538d6 Mon Sep 17 00:00:00 2001 From: zhangyanduan Date: Thu, 13 Oct 2022 11:06:15 +0800 Subject: [PATCH 6/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/slrs/processModel/exportWkExcel.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java index 53043a1e..8d8b9259 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/processModel/exportWkExcel.java @@ -11,6 +11,7 @@ import com.adc.da.sys.service.IDicTypeEOService; import com.adc.da.util.exception.AdcDaBaseException; import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.Result; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -52,9 +53,10 @@ public class exportWkExcel { ExportParams exportParams = new ExportParams(); exportParams.setType(ExcelType.HSSF); exportParams.setSheetName(exportName); - List types=new ArrayList<>(); - types.add("BUSSSTANDCLASS"); - Map dicTypeEO = dicTypeEOService.getDicTypeListCodeByType(types); +// List types=new ArrayList<>(); +// types.add("BUSSSTANDCLASS"); +// Map dicTypeEO = dicTypeEOService.getDicTypeListCodeByType(types); + Map dicTypeEO = getBussStandTypeData(); workbook = ExcelExportUtilByWk.getHSSFWorkbook(exportParams, exportExcel.class,workbook,"1",dicTypeEO); os = response.getOutputStream(); workbook.write(os); @@ -66,6 +68,24 @@ public class exportWkExcel { } } + /** + * 静态加载企标类别下拉框 + * @return + */ + private static Map getBussStandTypeData(){ + Map resultMap = new HashMap<>(); + List> bussStandTypeList = new ArrayList<>(); + char letter = 'A'; + for(letter = 'A'; letter <= 'Z'; ++letter){ + Map typeMap = new HashMap<>(); + typeMap.put("Q/FT "+letter,"Q/FT "+letter); + bussStandTypeList.add(typeMap); + } + resultMap.put("BUSSSTANDCLASS",bussStandTypeList); + return resultMap; + } + + @ApiOperation(value = "|SarFileSplitItemsEO|导入") @PostMapping(value = "/importData") public ResponseMessage importSplitItemsZip(@RequestParam(value = "importFileId", required = false) String importFileId) throws Exception { From 61e8851ebf8186f362200315e18d2b99f6912f39 Mon Sep 17 00:00:00 2001 From: liyawei Date: Thu, 13 Oct 2022 13:51:54 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=8A=80=E6=9C=AF=E6=A0=87=E5=87=86=E6=B5=81?= =?UTF-8?q?=E7=A8=8B,=E8=B5=B7=E8=8D=89=E5=8D=95=E4=BD=8D=E9=AB=98?= =?UTF-8?q?=E7=BA=A7=E7=BB=8F=E7=90=86=E5=AE=A1=E6=A0=B8=E8=8A=82=E7=82=B9?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActSarItemsBussEOController.java | 73 ++++++++++++++++++- .../adc/da/login/security/WebMvcConfig.java | 2 + 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java index f203eda4..b7628543 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsBussEOController.java @@ -5,14 +5,23 @@ import com.adc.da.base.web.BaseController; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.slrs.sarStandardsInfo.entity.ActSarItemsEO; +import com.adc.da.workFlow.entity.GetQBZXDExcelDto; import com.adc.da.workFlow.service.ActSarItemsBussEOService; -import com.adc.da.workFlow.service.ActSarItemsLawsEOService; +import com.alibaba.excel.EasyExcel; +import com.alibaba.fastjson.JSON; +import com.google.common.collect.Lists; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.*; +import java.util.stream.Collectors; + @RestController @RequestMapping("/${restPath}/lawss/actSarItemsBuss") @Api(description = "|ActSarItemsBuss|") @@ -50,4 +59,66 @@ public class ActSarItemsBussEOController extends BaseController { public void autoUpdIndex(@RequestParam("pid") String pid,@RequestParam("bussId") String bussId) { actSarItemsEOService.autoUpdIndex(pid,bussId); } + + @ApiOperation(value = "导出全部意见-企标制修订-技术标准-起草单位高级经理审核节点") + @PostMapping("/exportAllBZZXDJSBZ") + public void getAllStandYJCL(HttpServletResponse response, @RequestBody Map params){ + try { + net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(params.get("json")); + List> data = (List>) jsonArray; + + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String textName="意见信息"; + + Map map=new HashMap<>(); + map.put("1","采纳"); + map.put("2","部分采纳"); + map.put("3","不采纳"); + String fileName = URLEncoder.encode(textName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + data = data.stream().sorted(Comparator.comparing(m->m.get("modelNum"))).collect(Collectors.toList()); + List standExcel=new ArrayList<>(); + int i=0; + for (Map idea : data){ + i++; + GetQBZXDExcelDto getExcelDto = GetQBZXDExcelDto.builder() + .partCode(idea.get("modelNum")) + .oldText(idea.get("modelUpdBefore")) + .newText(idea.get("modelUpdAfter")) + .reason(idea.get("modelContent")) + .userName(idea.get("zrUserIdName")) + .deptName(idea.get("zrDeptIdName")) + .state(map.get(idea.get("opinionsAdopted"))) + .cause(idea.get("opinionsAdoptedCont")) + .num(String.valueOf(i)) + .build(); + standExcel.add(getExcelDto); + } + + List> headList=new ArrayList>(); + headList.add(Lists.newArrayList("序号")); + headList.add(Lists.newArrayList("条款号")); + headList.add(Lists.newArrayList("修改前")); + headList.add(Lists.newArrayList("修改后")); + headList.add(Lists.newArrayList("修改理由")); + headList.add(Lists.newArrayList("提出部门")); + headList.add(Lists.newArrayList("责任人")); + headList.add(Lists.newArrayList("意见是否采纳")); + headList.add(Lists.newArrayList("采纳原因")); + EasyExcel.write(response.getOutputStream(), GetQBZXDExcelDto.class).head(headList).autoCloseStream(Boolean.FALSE).sheet("sheet1") + .doWrite(standExcel); + + } catch (Exception e) { + response.reset(); + response.setContentType("application/json"); + response.setCharacterEncoding("utf-8"); + try { + response.getWriter().println(JSON.toJSONString(Result.error())); + } catch (IOException ioException) { + ioException.printStackTrace(); + } + } + } } diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java index 9fc0eb38..22da1a26 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/security/WebMvcConfig.java @@ -73,6 +73,8 @@ public class WebMvcConfig implements WebMvcConfigurer { //从excl中导入标准 addInterceptor.excludePathPatterns("/api/ImportExcel/import"); + //企标制修订-技术标准 意见导出 + addInterceptor.excludePathPatterns("/api/lawss/actSarItemsBuss/exportAllBZZXDJSBZ"); //标准征求意见导出 addInterceptor.excludePathPatterns("/api/slrs/sar-public-idea-all/tuallStand"); // 标准征求意见流程意见导出 From bb8021122e096422803dc1a1f8def49fae8df3e9 Mon Sep 17 00:00:00 2001 From: liyawei Date: Thu, 13 Oct 2022 14:57:51 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=8A=80=E6=9C=AF=E6=A0=87=E5=87=86=E6=B5=81?= =?UTF-8?q?=E7=A8=8B,=E8=B5=B7=E8=8D=89=E5=8D=95=E4=BD=8D=E9=AB=98?= =?UTF-8?q?=E7=BA=A7=E7=BB=8F=E7=90=86=E5=AE=A1=E6=A0=B8=E8=8A=82=E7=82=B9?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/workFlow/entity/GetQBZXDExcelDto.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/GetQBZXDExcelDto.java diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/GetQBZXDExcelDto.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/GetQBZXDExcelDto.java new file mode 100644 index 00000000..eb600cb3 --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/entity/GetQBZXDExcelDto.java @@ -0,0 +1,35 @@ +package com.adc.da.workFlow.entity; + +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@HeadRowHeight(20) +@ColumnWidth(15) +public class GetQBZXDExcelDto { + private String num; // 序号 + + private String partCode; // 条款号 + + private String oldText; // 修改前 + + private String newText; // 修改后 + + private String reason; // 修改理由 + + private String deptName; // 提出部门 + + private String userName; // 责任人 + + private String state; // 意见是否采纳 + + private String cause; // 采纳理由 + +} From 12635bbdc4a9e14201d98679d5048c76491ccc09 Mon Sep 17 00:00:00 2001 From: zhangyanduan Date: Thu, 13 Oct 2022 18:09:17 +0800 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=94=99=E8=AF=AF=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SarBussionessStandServiceImpl.java | 3 +- .../impl/SarStandardsInfoServiceImpl.java | 3 +- .../adc/da/utils/util/EncryptFileUtils.java | 43 +++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index 11bbe3e5..369af477 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -1844,6 +1844,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl