|
@@ -45,6 +45,7 @@ import java.io.File;
|
|
|
import java.io.FileInputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.OutputStream;
|
|
|
+import java.nio.charset.Charset;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
@@ -201,7 +202,7 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
log.info("7 loopGenerateCode save tablestore async -->"+System.currentTimeMillis());
|
|
|
|
|
|
// 创建码文件
|
|
|
- String md5 = createCodeFile(coverFactory,qrRepertory,splitCache, batchNumber, qrBoxCodeFormat, fileList, codeList);
|
|
|
+ String md5 = createCodeFile(qrPackage,coverFactory,qrRepertory,splitCache, batchNumber, qrBoxCodeFormat, fileList, codeList);
|
|
|
fileVerifyMd5List.add(md5);
|
|
|
log.info("8 loopGenerateCode create file -->"+System.currentTimeMillis());
|
|
|
}catch(Exception e){
|
|
@@ -235,9 +236,9 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
//上传阿里云,并更新码包的下载路径 保存zip密码
|
|
|
try{
|
|
|
MultipartFile multipartFile = toMultipartFile(file.getPath()+"/"+zipName, zipName);
|
|
|
- Object returDat = basicServiceClient.uploadFileOss(multipartFile);
|
|
|
- if(null != returDat){
|
|
|
- Map<String,Object> result =(Map<String, Object>)returDat;
|
|
|
+ Object returnData = basicServiceClient.uploadFileOss(multipartFile);
|
|
|
+ if(null != returnData){
|
|
|
+ Map<String,Object> result =(Map<String, Object>)returnData;
|
|
|
//放入oss地址
|
|
|
qrPackage.setDownloadPath(null == result.get("data") ? "" :(String) result.get("data"));
|
|
|
}
|
|
@@ -500,7 +501,7 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
/**
|
|
|
* 创建码文件
|
|
|
*/
|
|
|
- private String createCodeFile(BaseFactory coverFactory, QrRepertoryVO qrRepertory,
|
|
|
+ private String createCodeFile(QrPackage qrPackage,BaseFactory coverFactory, QrRepertoryVO qrRepertory,
|
|
|
Map<Long,QrBoxCodeFormatSplit> splitCache,String batchNumber,QrBoxCodeFormat boxCodeFormat,
|
|
|
ArrayList<File> fileList,List<QrData> codeList) {
|
|
|
List<QrRepertoryColumnVO> qrRepertoryColumnList = qrRepertory.getQrRepertoryColumnList();
|
|
@@ -535,7 +536,12 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
}
|
|
|
content.append("\r\n");
|
|
|
|
|
|
- // 2-第二行开始拼接码
|
|
|
+ // 2-第二行放固定的校验密钥;密钥样式为:ABI I-QMS,放置于码包内第二行
|
|
|
+ String checkInfo = AesEncodeUtil.aesEncode("ABI I-QMS", encodeKey);
|
|
|
+ content.append(checkInfo);
|
|
|
+ content.append("\r\n");
|
|
|
+
|
|
|
+ // 2-第三行开始拼接码
|
|
|
for (QrData qrData : codeList) {
|
|
|
List<String> codeTextList = new ArrayList<>();
|
|
|
for(QrInnerData qrInnerData:qrData.getInnerDataList()){
|
|
@@ -582,8 +588,13 @@ public class GenerateCodeServiceImpl implements GenerateCodeService {
|
|
|
log.error("创建文件异常",e);
|
|
|
}
|
|
|
|
|
|
+ //箱码码包输出格式为:GBK文本格式;盖码码包输出格式为:UTF-8格式
|
|
|
+ Charset charset = StandardCharsets.UTF_8;
|
|
|
+ if(QrTypeEnum.CARTON.is(qrPackage.getQrType())){
|
|
|
+ charset = Charset.forName("GBK");
|
|
|
+ }
|
|
|
// 生成txt
|
|
|
- FileWriter fileWriter = new FileWriter(file.getPath()+"/"+ batchNumber + ".txt");
|
|
|
+ FileWriter fileWriter = new FileWriter(file.getPath()+"/"+ batchNumber + ".txt", charset);
|
|
|
fileWriter.write(contentText);
|
|
|
fileList.add(new File(file.getPath()+"/"+ batchNumber + ".txt"));
|
|
|
|