Просмотр исходного кода

Merge branch 'master' of http://111.75.220.136:10030/turborao/jyyy

Tyx 2 дней назад
Родитель
Сommit
178581dc79

+ 10 - 8
code/base/nckd-jimin-base-helper/src/main/java/nckd/base/helper/CusFileServiceExt.java

@@ -43,20 +43,22 @@ public class CusFileServiceExt extends FilePathService {
     public InputStream decode(String originalPath, InputStream in) {
         logger.info("--------------SEC附件解密 "+originalPath+"----------------");
 
-        InputStream inForSEC = FileSECUtils.processFileWithSEC(originalPath, in);
-        if (inForSEC != null) {
-            return inForSEC;
-        }
+//        InputStream inForSEC = FileSECUtils.processFileWithSEC(originalPath, in);
+//        if (inForSEC != null) {
+//            return inForSEC;
+//        }
         return in;
     }
 
     @Override
     public InputStream beforeWriteToResponse(String originalPath, InputStream in, String userAgent) {
-        logger.info("--------------beforeWriteToResponse测试 "+originalPath+"----------------");
+        logger.info("--------------beforeWriteToResponse测试 "+originalPath+"----------------" + userAgent);
 
-//        if("preview".equals(userAgent)){
-//            in = FileSECUtils.processFileWithSEC(originalPath, in);
-//        }
+        if("preview".equals(userAgent)){
+            logger.info("--------------beforeWriteToResponse 解密 ");
+
+            in = FileSECUtils.processFileWithSEC(originalPath, in);
+        }
 
         return super.beforeWriteToResponse(originalPath, in, userAgent);
     }

+ 18 - 25
code/base/nckd-jimin-base-helper/src/main/java/nckd/base/helper/DefaultPreviewCusServiceImpl.java

@@ -115,7 +115,7 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
         Map result;
         logger.info("testpreviewWPS..." + path + ", " + ext);
 
-        if (YunHomeService.isNotNeedDeal(ext)) {
+        if (YunHomeService.isNotNeedDeal(ext) && !"pdf".equals(ext) && !"txt".equals(ext)) {
             logger.info("testpreviewWPS...10001001");
 
             Map<String, String> headerMap = new HashMap();
@@ -125,6 +125,8 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
             try {
                 in = this.fileService.download(path, headerMap, new HashMap());
+
+                in = FileSECUtils.processFileWithSEC(path, in);
             } catch (Exception var19) {
                 result = ExceptionUtil.setErrorInfo(var19.getMessage());
                 previewResult.put(PreviewParams.STATUS.getEnumName(), PreviewParams.ERROR.getEnumName());
@@ -163,8 +165,6 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
                     logger.info("testpreviewWPS...10001003解密");
 
-                    in = FileSECUtils.processFileWithSEC(path, in);
-
                     endTime = System.currentTimeMillis();
                     if (!"xls".equalsIgnoreCase(ext) && !"xlsx".equalsIgnoreCase(ext)) {
                         previewResult.put(PreviewParams.STATUS.getEnumName(), PreviewParams.PDF_SUCCESS.getEnumName());
@@ -208,7 +208,7 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
         logger.info("testpreviewFromCacheWPS...");
 
         String ext = fileName.substring(fileName.lastIndexOf(46) + 1);
-        if (YunHomeService.isNotNeedDeal(ext)) {
+        if (YunHomeService.isNotNeedDeal(ext) && !"pdf".equals(ext) && !"txt".equals(ext)) {
             logger.info("testpreviewFromCacheWPS...10001001");
 
             InputStream in = DecodeFileFactory.getDecodeService().getDecodeFileStream(cacheIn);
@@ -247,7 +247,6 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
 
                 logger.info("getYunPanCovertRs...100010012");
-                checkInputStream = FileSECUtils.processFileWithSEC(path, checkInputStream);
 
                 boolean checkResult = checkFileSize(checkInputStream, fileName, limit == 0L ? limitMax : limit);
                 if (!checkResult) {
@@ -269,8 +268,6 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
             in = this.yunPanConvert(path, fileName, userAgent, detail, temp);
             logger.info("getYunPanCovertRs...100010014");
 
-            in = FileSECUtils.processFileWithSEC(path, in);
-
 
         } catch (Exception var19) {
             result = ExceptionUtil.setErrorInfo(var19.getMessage());
@@ -408,8 +405,6 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
         logger.info("yunPanConvert...fileName" + fileName);
 
-        in = FileSECUtils.processFileWithSEC(fileName, in);
-
         if (in == null) {
             throw new KDException(BosErrorCode.previewFailed, new Object[]{BosRes.get("bos-fileservice-sdk", "DefaultPreviewServiceImpl_3", "从云盘中未获取到pdf流数据,pdf转换失败:", new Object[0])});
         } else {
@@ -420,23 +415,21 @@ public class DefaultPreviewCusServiceImpl  implements PreviewService {
 
             logger.info("yunPanConvert...in:" + in);
 
-//            if (statusCode != 200) {
-//                try {
-//                    if (isLog()) {
-//                        logger.error("yunpan return msg:" + IOUtils.toString(in, "utf-8"));
-//                    }
-//
-//                    in.close();
-//                } catch (IOException var17) {
-//                    logger.error("logger error info fail");
-//                }
-//
-//                throw new KDException(BosErrorCode.previewFailed, new Object[]{this.getErrorMsg(statusCode)});
-//            } else {
-//                return in;
-//            }
+            if (statusCode != 200) {
+                try {
+                    if (isLog()) {
+                        logger.error("yunpan return msg:" + IOUtils.toString(in, "utf-8"));
+                    }
 
-            return in;
+                    in.close();
+                } catch (IOException var17) {
+                    logger.error("logger error info fail");
+                }
+
+                throw new KDException(BosErrorCode.previewFailed, new Object[]{this.getErrorMsg(statusCode)});
+            } else {
+                return in;
+            }
         }
     }
 

+ 31 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/mservice/impl/SynSapFIServiceImpl.java

@@ -8,8 +8,10 @@ import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.QueryServiceHelper;
 
+import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.bos.util.StringUtils;
 import nckd.jimin.jyyy.fi.mservice.SynSapService;
 import nckd.jimin.jyyy.fi.mservice.SyncSapFIUtils;
@@ -108,6 +110,35 @@ public class SynSapFIServiceImpl implements SynSapService {
                     logger.info("同步SAP凭证:"  + voucherInfo + ",错误信息:" + msg + "|" + notes);
                     errCount++;
                 }else{
+
+                    /**
+                     * 需要保存SAP返回的值
+                     */
+                    // 1. 查询 gl_voucher 对象
+                    DynamicObject voucherDyn = BusinessDataServiceHelper.loadSingle(vouchsreId, "gl_voucher");
+
+                    if (voucherDyn != null) {
+                        /**
+                         * 2. 解析 SAP 返回的 JSON 数据
+                         * 同步SAP凭证 retur:{"E_MESSAGE":"创建成功!","E_TYPE":"S","E_XBLNR"."" "ET RETURN":{"item":[{"BKTXT":"BX2010202506-0030","ZZTM""FDZT","TYPE":"S","MESSAGE":"V凭证已成功预制:BKPFF 160000005620102025 S4DCLIT120"}]}}
+                         * */
+                        String regex = ".*\\s(\\d+)\\s([A-Z0-9]+)";
+
+                        java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);
+                        java.util.regex.Matcher matcher = pattern.matcher(msg);
+
+                        if (matcher.find()) {
+                            String eXblnr = matcher.group(1); // 160000005620102025
+                           // String bktxt = matcher.group(2); // S4DCLIT120
+                            // 3. 设置 gl_voucher 对象的字段
+                            voucherDyn.set("nckd_xblnr", eXblnr); // 设置 E_XBLNR 到 nckd_xblnr
+                            //voucherDyn.set("nckd_xrlnr_alt", bktxt); // 设置 BKTXT 到 nckd_xrlnr_alt
+                        }
+
+                        // 保存更新后的 gl_voucher 对象
+                        SaveServiceHelper.save(new DynamicObject[]{voucherDyn});
+                    }
+
                     count++;
                 }
             }

+ 10 - 2
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/ViewImageByDownloadFilePlugin.java

@@ -5,6 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import kd.bos.context.RequestContext;
 import kd.bos.dataentity.utils.StringUtils;
 import kd.bos.fileservice.path.DecodeFileFactory;
+import kd.bos.form.container.Tab;
+import kd.bos.form.control.EntryGrid;
+import kd.bos.form.control.Search;
 import kd.bos.form.control.events.ItemClickEvent;
 import kd.bos.form.plugin.AbstractFormPlugin;
 import kd.bos.logging.Log;
@@ -16,6 +19,7 @@ import kd.imc.bds.common.utils.UrlServiceUtils;
 import kd.imc.bds.common.utils.ViewUtil;
 import kd.sdk.plugin.Plugin;
 
+import java.util.EventObject;
 import java.util.Map;
 
 /**
@@ -25,17 +29,21 @@ public class ViewImageByDownloadFilePlugin extends AbstractFormPlugin implements
 
     private static Log logger = LogFactory.getLog(ViewImageByDownloadFilePlugin.class);
 
+    public void registerListener(EventObject event) {
+        this.addItemClickListeners(new String[]{"toolbarap"});
+    }
 
     @Override
     public void itemClick(ItemClickEvent evt) {
         String itemKey = evt.getItemKey();
+        logger.info("ViewImages itemKey: " + itemKey);
         if (StringUtils.equals(itemKey, "down_test")) {
-            this.downOneFile();
+            this.downOneFile1();
         }
     }
 
 
-    private void downOneFile() {
+    private void downOneFile1() {
         JSONObject selectImage = this.getSelectImage();
         if (selectImage != null) {
             String viewFileIndexList = selectImage.getString("viewFileIndexList");