yangys
2025-09-23 72e6bac02526caebc3797a7c2934d12896805708
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -1,7 +1,6 @@
package org.springblade.mdm.program.service;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
@@ -18,10 +17,7 @@
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb;
import org.springblade.mdm.basesetting.producedivision.service.QinzheFgbService;
import org.springblade.mdm.commons.contants.RegExpConstants;
import org.springblade.mdm.commons.service.ParamService;
import org.springblade.mdm.commons.contants.ZipConstants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.CureFlowService;
import org.springblade.mdm.flow.service.FlowCommonService;
@@ -32,11 +28,8 @@
import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springblade.mdm.program.vo.DncSendBackFile;
import org.springblade.mdm.program.vo.ProgramAnnotation;
import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springblade.mdm.utils.ZipTextFileContentUtil;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -49,11 +42,8 @@
import java.nio.file.StandardOpenOption;
import java.time.Duration;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
/**
 * DNC回传文件处理服务
@@ -82,7 +72,7 @@
    * 偏离单文件末尾的模式:P+数字
    */
   private static final String P_NUMBER_PATTERN = "(?i)P\\d+";
   static String[] encodings = {"UTF-8","GBK", "GB2312", "ISO-8859-1"};
   //static String[] encodings = {"UTF-8","GBK", "GB2312", "ISO-8859-1"};
   private String getFileKey(){
      return "dncimpfile-"+ AuthUtil.getUserId();
   }
@@ -125,7 +115,7 @@
      List<DncSendBackData> result = null;
      ByteArrayInputStream byteInsStream = new ByteArrayInputStream(FileUtil.copyToByteArray(inputStream));
      for (String encoding : encodings) {
      for (String encoding : ZipConstants.TRY_ENCODINGS) {
         try {
            result = parseProgramListByCharset(byteInsStream,Charset.forName(encoding));
            log.error("使用编码 {} 解析成功 ",encoding);
@@ -274,7 +264,7 @@
      Map<Long, List<FlowProgramFile>> pkgIdFileMap = new HashMap<>();
      //ByteArrayInputStream byteInsStream = new ByteArrayInputStream(FileUtil.copyToByteArray(inputStream));
      for (String encoding : encodings) {
      for (String encoding : ZipConstants.TRY_ENCODINGS) {
         try {
            pkgIdFileMap = dealWithBackFileWithCharset(ossFileName,acceptIdList,Charset.forName(encoding));
            log.error("使用编码 {} 解析成功 ",encoding);
@@ -290,7 +280,7 @@
   /**
    * 处理回传文件
    * @param inputStream
    * @param ossFileName
    * @param acceptIdList
    * @return
    * @throws IOException