From 0793b78361e77ac25bb3a38da75678ff5d40eaed Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 24 三月 2022 18:33:18 +0800
Subject: [PATCH] PDF空白优化
---
force-app/main/default/classes/QISToETQWebServiceTest.cls-meta.xml | 5
force-app/main/default/classes/QISToETQWebService.cls-meta.xml | 5
force-app/main/default/classes/QISToETQWebServiceTest.cls | 171 ++++++++++++++++++++++++
force-app/main/default/classes/RepairSendToETQBatch.cls | 18 +-
force-app/main/default/classes/QISToETQWebService.cls | 169 ++++++++++++++++++++++++
5 files changed, 361 insertions(+), 7 deletions(-)
diff --git a/force-app/main/default/classes/QISToETQWebService.cls b/force-app/main/default/classes/QISToETQWebService.cls
new file mode 100644
index 0000000..bcba6d8
--- /dev/null
+++ b/force-app/main/default/classes/QISToETQWebService.cls
@@ -0,0 +1,169 @@
+global without sharing class QISToETQWebService {
+ public static List<ImgObj> ImgObjs = new List<ImgObj>();
+ webservice static String sendToETQ(String iflog_Id,BatchIF_Log__c rowDataSFDC, List<String> repairIds,String statu){
+ List<QIS_Report__c> temp = [select id,name,GeneratedPDFField__c,problem_detail_photo__c,Photo_1__c,Photo_2__c,Photo_3__c,Photo_4__c,
+ Photo_OSH_1__c,Photo_OSH_2__c,Photo_OSH_3__c,Photo_OSH_4__c
+ from QIS_Report__c where GeneratedPDFField__c = null and id in :repairIds ];
+ List<Repair__c> tempRe = [select id,name,GeneratedPDFField__c,ProblemDescription__c,ASReportedCodeAC__c,AE_DetermineResult__c,PAE_Determine__c,PAE_DetermineAC__c from Repair__c where GeneratedPDFField__c = null
+ and id in :repairIds ];
+ if(temp != null && temp.size() > 0){
+ // try {
+ // 闇�瑕佺敓鎴恜df鐨勫瓧娈�
+ List<String> apiNames = new List<String>();
+ apiNames.add('problem_detail_photo__c');
+ apiNames.add('Photo_1__c');
+ apiNames.add('Photo_2__c');
+ apiNames.add('Photo_3__c');
+ apiNames.add('Photo_4__c');
+ apiNames.add('Photo_OSH_1__c');
+ apiNames.add('Photo_OSH_2__c');
+ apiNames.add('Photo_OSH_3__c');
+ apiNames.add('Photo_OSH_4__c');
+ List<QIS_Report__c> updateQis = new List<QIS_Report__c>();
+ List<Attachment> attachments = new List<Attachment>();
+ PageReference pdfPage ;
+ for(QIS_Report__c qis : temp){
+ for (String apiName : apiNames) {
+ String generatedFields = qis.GeneratedPDFField__c;
+ if (checkFieldisGeneratedPDF(apiName,qis)) {
+ continue;
+ }
+ if (qis.get(apiName) == null) {
+ continue;
+ }
+ setImgSrcs(qis, apiName);
+ pdfPage = new PageReference('/apex/repairandqistopdf?api=qis&id='+qis.Id+'&field='+apiName);
+ Blob pdfBody;
+ if(Test.isRunningTest()) {
+ pdfBody = blob.valueOf('Unit.Test');
+ } else {
+ pdfBody = pdfPage.getContentAsPDF();
+ }
+ Attachment attach = new Attachment();
+ attach.Body = pdfBody;
+ if ('problem_detail_photo__c'.equals(apiName)) {
+ attach.Name = substringApiName(qis.name) + '_Problem_Discription.pdf';
+ }else {
+ attach.Name = substringApiName(qis.name) + '_' + 'Problem_' + apiName.substring(0,apiName.length()-3) + '.pdf';
+ }
+ attach.ParentId = qis.id;
+
+ attachments.add(attach);
+ if (generatedFields == null) {
+ qis.GeneratedPDFField__c = apiName;
+ }else {
+ qis.GeneratedPDFField__c += ',' + apiName;
+ }
+ }
+ updateQis.add(qis);
+ }
+ insert attachments;
+ update updateQis;
+ // RepairAndQISToPDFController.generateAttachment(temp);
+ NFM401Controller.callout(null, null, repairIds, statu);
+ // }
+ // catch (Exception e) {
+ // return '鏇存柊QIS鎶ラ敊:'+ e.getMessage();
+ // }
+ // Database.executeBatch(new QISToPDFBatch(iflog_Id, rowDataSFDC,repairIds,statu),50); //鐢熸垚PDF
+ }else{
+
+ BatchIF_Log__c iflog = new BatchIF_Log__c();
+ iflog.Type__c = 'sendToETQ';
+ iflog.ErrorLog__c = '';
+ iflog.Log__c = 'NFM401WebService start--';
+
+ Repair__c updateRe = new Repair__c();
+ updateRe.Id = tempRe[0].id;
+ updateRe.INTERFACE_RECORD_ID__c = null;
+ updateRe.ETQ_UPLOAD_STATUS__c = null;
+ updateRe.ETQ_UPLOAD_MESSAGE__c = null;
+ updateRe.OSH_ConfirmationDate__c = Date.today();
+ updateRe.OSH_Affirmant__c = UserInfo.getUserId();
+ updateRe.AWS_Interface_Time__c = Datetime.now();
+ updateRe.AsyncData__c = true;
+ //update by rentx 2021-03-23 start 闇�瑕佸厛鏇存柊淇悊鐨勪俊鎭啀鎺�401鎺ュ彛 涓嶇劧鐨勮瘽鍙兘浼氬嚭鐜� 璋冪敤鎴愬姛浣嗘槸閮ㄥ垎淇悊鏇存柊澶辫触鐨勬儏鍐� 灏嗘洿鏂颁慨鐞嗙殑姝ラ鎻愬墠 鍒欏綋淇悊鏇存柊澶辫触鏃� 灏变笉浼氬線涓嬫墽琛�401鐨勬帴鍙d簡
+ // try{
+ update updateRe;
+ // Database.executeBatch(new RepairToPDFBatch(iflog_Id, rowDataSFDC,repairIds,statu)); //鐢熸垚PDF
+ // RepairAndQISToPDFController.generateAttachment(reList);
+ PageReference pdfPage ;
+
+ List<Repair__c> updateRpr = new List<Repair__c>();
+ List<Attachment> attachments = new List<Attachment>();
+ for(Repair__c re : tempRe){
+ String generatedFields = re.GeneratedPDFField__c;
+ if (checkFieldisGeneratedPDF('ProblemDescription__c',re)) {
+ continue;
+ }
+ if (re.get('ProblemDescription__c') == null) {
+ continue;
+ }
+ setImgSrcs(re, 'ProblemDescription__c');
+
+ pdfPage = new PageReference('/apex/repairandqistopdf?api=repair&id='+re.Id);
+ Blob pdfBody;
+ if(Test.isRunningTest()) {
+ pdfBody = blob.valueOf('Unit.Test');
+ } else {
+ pdfBody = pdfPage.getContentAsPDF();
+ }
+ Attachment attach = new Attachment();
+ attach.Body = pdfBody;
+ attach.Name = re.name + '_' + 'Problem_Discription.pdf';
+ attach.ParentId = re.id;
+ attachments.add(attach);
+ re.GeneratedPDFField__c = 'ProblemDescription__c';
+ updateRpr.add(re);
+ }
+ insert attachments;
+ update updateRpr;
+
+ Database.executeBatch(new RepairSendToETQBatch(null, null,repairIds,statu),1);
+
+ iflog.Log__c += '\n淇悊:'+updateRe+' 鏇存柊鎴愬姛';
+ iflog.Log__c = '\nNFM401WebService end--';
+ insert iflog;
+ // }catch(Exception ex){
+ // iflog.ErrorLog__c += '淇悊:'+updateRe+' 鏇存柊澶辫触,鍥犱负::'+ex.getMessage();
+ // iflog.Log__c = '\nNFM401WebService end--';
+ // // System.debug('鏇存柊淇悊鎶ラ敊::36'+updateRe);
+ // insert iflog;
+ // return '鏇存柊淇悊鎶ラ敊:'+ ex.getMessage();
+ // }
+ }
+ return '鍙戦�佹垚鍔�!';
+ }
+
+ // 涓昏鐢ㄤ簬鐢熸垚qis涓棶棰樻弿杩板搴旂殑pdf鏂囦欢鍚嶇О(姣旇緝鐗规畩)
+ public static String substringApiName(String name){
+ for(Integer i = 0; i < 2; i++){
+ name = name.substring(name.indexOf('-')+1);
+ }
+ return name;
+ }
+
+ public static Boolean checkFieldisGeneratedPDF(String apiName,SObject obj){
+ String generatedFields = (String) obj.get('GeneratedPDFField__c');
+ if (generatedFields != null) {
+ List<String> ele = generatedFields.split(',');
+ return ele.contains(apiName);
+ }
+ return false;
+ }
+ public class ImgObj{
+ public String imgSrc {get; set;}
+ public String height {get; set;}
+ }
+ // 璁剧疆椤甸潰灞曠ず鐨勬暟鎹�
+ public static void setImgSrcs(SObject obj,String apiName){
+ ImgObjs = new List<ImgObj>();
+ String content = (String) obj.get(apiName);
+ ImgObj ImgObj = new ImgObj();
+ ImgObj.imgSrc = content;
+ ImgObj.height = '900px';
+ ImgObjs.add(ImgObj);
+ System.debug('ImgObjs++'+ImgObjs);
+
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/QISToETQWebService.cls-meta.xml b/force-app/main/default/classes/QISToETQWebService.cls-meta.xml
new file mode 100644
index 0000000..40d6793
--- /dev/null
+++ b/force-app/main/default/classes/QISToETQWebService.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>54.0</apiVersion>
+ <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/QISToETQWebServiceTest.cls b/force-app/main/default/classes/QISToETQWebServiceTest.cls
new file mode 100644
index 0000000..4e43493
--- /dev/null
+++ b/force-app/main/default/classes/QISToETQWebServiceTest.cls
@@ -0,0 +1,171 @@
+@isTest
+public with sharing class QISToETQWebServiceTest {
+ @testSetup
+ static void makeTestQIS() {
+ StaticParameter.EscapeNFM001Trigger = true;
+ StaticParameter.EscapeNFM001AgencyContractTrigger = true;
+ StaticParameter.EscapeNFM001AgencyContractTrigger2 = true;
+ StaticParameter.EscapeNFM007Trigger = true;
+ StaticParameter.EscapeOpportunityBefUpdTrigger = true;
+ StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true;
+
+ // List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '鐥呴櫌'];
+ // if (rectCo.size() == 0) {
+ // throw new ControllerUtil.myException('not found 鐥呴櫌 recodetype');
+ // }
+ List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '鎴︾暐绉戝鍒嗛 娑堝寲绉�'];
+ if (rectSct.size() == 0) {
+ throw new ControllerUtil.myException('not found 鎴︾暐绉戝鍒嗛 鍛煎惛绉� recodetype');
+ }
+ // List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Department_GI'];
+ // if (rectDpt.size() == 0) {
+ // throw new ControllerUtil.myException('not found 瑷虹檪绉� 娑堝寲绉� recodetype');
+ // }
+ // 銉嗐偣銉堛儑銉笺偪
+ Account company = new Account();
+ company.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId();
+ // company.RecordTypeId = rectCo[0].Id;
+ company.Name = 'NFM105TestCompany';
+ upsert company;
+ Account section = [Select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id];
+
+ Account depart = new Account();
+ depart.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId();
+ depart.Name = '*';
+ depart.Department_Name__c = 'NFM105TestDepart';
+ depart.ParentId = section.Id;
+ depart.Department_Class__c = section.Id;
+ depart.Hospital__c = company.Id;
+ upsert depart;
+
+ // 鍐嶅彇寰�
+ List<Account> accList = new List<Account>();
+ company = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :company.Id];
+ accList.add(company);
+ accList.add(section);
+ depart = [select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where Id = :depart.Id];
+ accList.add(depart);
+
+ List<Product2> prdList = new List<Product2>();
+ Product2 prd1 = new Product2();
+ prd1.ProductCode_Ext__c = 'NFM105Prd1';
+ prd1.ProductCode = 'NFM105Prd1';
+ prd1.Repair_Product_Code__c = 'NFM105Prd1_RP';
+ prd1.Name = 'NFM105Prd1';
+ prd1.Manual_Entry__c = false;
+ prdList.add(prd1);
+ Product2 prd2 = new Product2();
+ prd2.ProductCode_Ext__c = 'NFM105Prd2';
+ prd2.ProductCode = 'NFM105Prd2';
+ prd2.Repair_Product_Code__c = 'NFM105Prd2_RP';
+ prd2.Name = 'NFM105Prd2';
+ prd2.Manual_Entry__c = false;
+ prdList.add(prd2);
+ insert prdList;
+
+ Asset ast = new Asset();
+ ast.Name = 'NFM105Ast1';
+ ast.AccountId = depart.Id;
+ ast.Department_Class__c = section.Id;
+ ast.Hospital__c = company.Id;
+ ast.Product2Id = prd1.Id;
+ ast.SerialNumber = 'NFM105SerialNumber';
+ ast.Guarantee_period_for_products__c = Date.today();
+ ast.InstallDate = Date.today();
+ insert ast;
+ ast = [select Id, Name, Product_Serial_No__c, AccountId, Department_Class__c, Department_Class__r.Management_Code_Auto__c, Hospital__c, Product2Id, Product2.ProductCode, Product2.Repair_Product_Code__c, SerialNumber
+ from Asset
+ where Id = :ast.Id];
+
+
+ // User testUser = new User();
+ // testUser.Job_Category__c = '閿�鍞湇鍔�';
+
+ Repair__c rpr = new Repair__c();
+ rpr.SAPRepairNo__c = 'NFM105Rpr1';
+ rpr.Account__c = depart.Id;
+ rpr.Department_Class__c = section.Id;
+ rpr.Hospital__c = company.Id;
+ rpr.Delivered_Product__c = ast.Id;
+ rpr.Status__c = '1.鍙楃悊瀹屾瘯';
+ rpr.Incharge_Staff__c = Userinfo.getUserId();
+ rpr.Repair_Detail__c = 'test';
+ // rpr.ProblemDescription__c = '<img alt="鐢ㄦ埛娣诲姞鐨勫浘鐗�" src="https://ocsm--stagefull--c.documentforce.com/servlet/rtaImage?eid=a0J10000008VbEm&feoid=00N10000008rsVu&refid=0EM1s0000005LCs" style="height: 666px; width: 500px;"></img><img alt="鐢ㄦ埛娣诲姞鐨勫浘鐗�" src="https://ocsm--stagefull--c.documentforce.com/servlet/rtaImage?eid=a0J10000008VbEm&feoid=00N10000008rsVu&refid=0EM1s0000005LD2" style="height: 666px; width: 500px;"></img><br>2020/06/24';
+ rpr.GeneratedPDFField__c = null;
+
+ //update by rentx 2020-10-1
+ System.runAs(new User(Id = Userinfo.getUserId())){
+ upsert rpr;
+ }
+
+
+ QIS_Report__c qr = new QIS_Report__c(
+ RC__c = UserInfo.getUserId(),
+ // Photo_1__c = '<img alt="鐢ㄦ埛娣诲姞鐨勫浘鐗�" src="https://ocsm--stagefull--c.documentforce.com/servlet/rtaImage?eid=a0J10000008VbEm&feoid=00N10000008rsVu&refid=0EM1s0000005LCs" style="height: 666px; width: 500px;"></img>',
+ Damage_For_Doc_Or_Pat__c = '鏈�',
+ Relation_With_The_Problem__c = '鏈夊彲鑳�',
+ Report_For_Goz__c = '涓嶇煡閬�',
+ Name = 'QIS012345',
+ GeneratedPDFField__c = null,
+ QIS_Submit_day__c = Date.Today(),
+ problem_detail_photo__c = '1231'
+ );
+ insert qr;
+ }
+
+ // @IsTest
+ // static void myTest(){
+
+ // QIS_Report__c qis = [select id,name,GeneratedPDFField__c,problem_detail_photo__c,Photo_1__c,Photo_2__c,Photo_3__c,
+ // Photo_4__c,Photo_OSH_1__c,Photo_OSH_2__c,Photo_OSH_3__c,Photo_OSH_4__c from QIS_Report__c];
+
+ // Test.startTest();
+ // List<String> ids = new List<String>();
+ // ids.add(qis.Id);
+ // Database.executeBatch(new QISToPDFBatch(ids));
+ // Test.stopTest();
+
+ // }
+
+ @IsTest
+ static void myTest1(){
+
+ QIS_Report__c qis = [select id,name,GeneratedPDFField__c,problem_detail_photo__c,Photo_1__c,Photo_2__c,Photo_3__c,
+ Photo_4__c,Photo_OSH_1__c,Photo_OSH_2__c,Photo_OSH_3__c,Photo_OSH_4__c from QIS_Report__c];
+
+ Test.startTest();
+ List<String> ids = new List<String>();
+ ids.add(qis.Id);
+ QISToETQWebService.sendToETQ(null, null,ids,null);
+ // Database.executeBatch(new QISToPDFBatch(null,null,ids,null));
+ Test.stopTest();
+
+ }
+
+
+
+ // 淇悊
+ @isTest
+ static void myTest(){
+ StaticParameter.EscapeNFM001Trigger = true;
+ StaticParameter.EscapeNFM001AgencyContractTrigger = true;
+ StaticParameter.EscapeNFM001AgencyContractTrigger2 = true;
+ StaticParameter.EscapeNFM007Trigger = true;
+ StaticParameter.EscapeOpportunityBefUpdTrigger = true;
+ StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true;
+ Repair__c res = [select id,name,GeneratedPDFField__c,ProblemDescription__c from Repair__c];
+ List<String> ids = new List<String>();
+ ids.add(res.Id);
+ Test.startTest();
+ QISToETQWebService.sendToETQ(null, null,ids,'');
+ // Database.executeBatch(new RepairToPDFBatch(ids));
+ // //add by rentx 2020-10-21 start
+ // Database.executeBatch(new RepairToPDFBatch(null,null,ids,''));
+ // Database.executeBatch(new RepairToPDFBatch());
+ //add by rentx 2020-10-21 end
+ Test.stopTest();
+
+ }
+
+
+}
diff --git a/force-app/main/default/classes/QISToETQWebServiceTest.cls-meta.xml b/force-app/main/default/classes/QISToETQWebServiceTest.cls-meta.xml
new file mode 100644
index 0000000..40d6793
--- /dev/null
+++ b/force-app/main/default/classes/QISToETQWebServiceTest.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>54.0</apiVersion>
+ <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/RepairSendToETQBatch.cls b/force-app/main/default/classes/RepairSendToETQBatch.cls
index 636d838..b9ede3d 100644
--- a/force-app/main/default/classes/RepairSendToETQBatch.cls
+++ b/force-app/main/default/classes/RepairSendToETQBatch.cls
@@ -201,14 +201,18 @@
public void finish(Database.BatchableContext BC) {
- //HHOA-C3LJWQ 鍏堟洿鏂颁慨鐞嗗啀鍙戦�乪tq 20210616 start byrentx
- if (this.idss != null && this.idss.size() > 0) {
- NFM401Controller.callout(null,null,this.idss,statu);
-
- }
- //HHOA-C3LJWQ 鍏堟洿鏂颁慨鐞嗗啀鍙戦�乪tq 20210616 end byrentx
+ // gzw PDF绌虹櫧浼樺寲 璺宠繃娴嬭瘯绋嬪簭
+ if (!Test.isRunningTest()) {
+ //HHOA-C3LJWQ 鍏堟洿鏂颁慨鐞嗗啀鍙戦�乪tq 20210616 start byrentx
+ if (this.idss != null && this.idss.size() > 0) {
+ NFM401Controller.callout(null,null,this.idss,statu);
+
+ }
+ //HHOA-C3LJWQ 鍏堟洿鏂颁慨鐞嗗啀鍙戦�乪tq 20210616 end byrentx
- Database.executeBatch(new NFM402Batch(),100);
+ Database.executeBatch(new NFM402Batch(),100);
+ }
+ // gzw PDF绌虹櫧浼樺寲 璺宠繃娴嬭瘯绋嬪簭
}
}
\ No newline at end of file
--
Gitblit v1.9.1