From 5ddfce2bc1c37265902b8f61d6e1c298b94a7091 Mon Sep 17 00:00:00 2001
From: D C <chenbangcai@prec-tech.com>
Date: 星期一, 07 八月 2023 14:20:57 +0800
Subject: [PATCH] 修理-批量选择修理  补充测试类,代码pmd

---
 force-app/main/default/classes/lexBatchSelectRepairLWCController.cls                   |   39 ----
 force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html        |  111 +++++-------
 force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls-meta.xml      |    5 
 force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml |    1 
 force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js          |  282 +++----------------------------
 force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls               |   89 +++++++++
 6 files changed, 171 insertions(+), 356 deletions(-)

diff --git a/force-app/main/default/classes/lexBatchSelectRepairLWCController.cls b/force-app/main/default/classes/lexBatchSelectRepairLWCController.cls
index 26d7565..d8e1f6e 100644
--- a/force-app/main/default/classes/lexBatchSelectRepairLWCController.cls
+++ b/force-app/main/default/classes/lexBatchSelectRepairLWCController.cls
@@ -7,7 +7,6 @@
     public static List<Repair__c> RepairList;
     public static List<RepairData> RAInfoList;
     public static List<String> repairIdList;
-    // public static String pdfURL;
 
     //鏌ヨRepair鏁版嵁
     @AuraEnabled
@@ -16,7 +15,6 @@
         //2023/04/07 LWC
         ReturnData returnData = new ReturnData();
         RetrievalData RevalInfo = (RetrievalData)System.JSON.deserialize(json,RetrievalData.class);
-        System.debug(LoggingLevel.INFO, '*** RevalInfo: ' + RevalInfo);
 
         //pageController 閫昏緫
         RepairList = new List<Repair__c>();
@@ -25,7 +23,6 @@
             && String.isBlank(RevalInfo.SerialNumber) && String.isBlank(RevalInfo.repair.Incharge_Staff__c) && String.isBlank(RevalInfo.onSiteRepair)
             && String.isBlank(String.valueOf(RevalInfo.repair.Aware_date__c)) && String.isBlank(String.valueOf(RevalInfo.repair.Aware_date2__c)) && String.isBlank(RevalInfo.workLocationSelect)
             && String.isBlank(RevalInfo.State_Hospital)){
-            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '璇疯嚦灏戞坊鍔犱竴涓绱㈡潯浠�!'));
             return null;
         }
         // 2023/04/10 add 鍨嬪彿锛屼慨鐞嗗鎵樿�� 鍚嶇О
@@ -43,7 +40,6 @@
             sql += ' and HP_Name__c like \'%' + RevalInfo.HospitalName.trim() + '%\'';
         }
         if(String.isNotBlank(RevalInfo.RepairName)){
-            System.debug(LoggingLevel.INFO, '***RevalInfo.RepairName.contains(): ' + RevalInfo.RepairName.contains(' '));
             String splitStr = null;
             if(RevalInfo.RepairName.contains(' ')){
                 splitStr = ' ';
@@ -61,10 +57,8 @@
             }else{
                 sql += ' and Name like \'%' + RevalInfo.RepairName.trim() + '%\'';
             }
-            System.debug(LoggingLevel.INFO, '*** sql: ' + sql);
         }
         if(String.isNotBlank(RevalInfo.SAPRepairNo)){
-            System.debug(LoggingLevel.INFO, '***RevalInfo.SAPRepairNo.contains(): ' + RevalInfo.SAPRepairNo.contains(' '));
             String splitStr = null;
             if(RevalInfo.SAPRepairNo.contains(' ')){
                 splitStr = ' ';
@@ -83,14 +77,12 @@
             }else{
                 sql += ' and SAP_Service_Repair_No__c like \'%' + RevalInfo.SAPRepairNo.trim() + '%\'';
             }
-            System.debug(LoggingLevel.INFO, '*** sql: ' + sql);
         }
         if(String.isNotBlank(RevalInfo.SerialNumber)){
             List<String> SerialNumberList = new List<String>();
             if(RevalInfo.SerialNumber.indexOf(',') != -1){
                 SerialNumberList = RevalInfo.SerialNumber.split(',');
             }
-            System.debug('SerialNumberList1:' + SerialNumberList);
             // 鏀寔妯$硦鏌ヨ澶氫釜锛屾枃鏈杈撳叆鐢ㄨ嫳鏂囧崐瑙掗�楀彿鍒嗛殧
             if(SerialNumberList.size() > 0){
                 sql += ' and (SerialNumber__c like \'%';
@@ -126,7 +118,6 @@
             if(RevalInfo.workLocationSelect.indexOf(',') != -1){
                 workLocationSelectList = RevalInfo.workLocationSelect.split(',');
             }
-            System.debug('workLocationSelectList1:' + workLocationSelectList);
             if(workLocationSelectList.size() > 0){
                 sql += ' and (work_location_select__c like \'%';
                 Integer i = 0;
@@ -147,17 +138,14 @@
             sql += ' and State_Hospital__c like \'%' + RevalInfo.State_Hospital.trim() + '%\'';
         }
         sql += 'and Status1__c not in(\'0.鍒犻櫎\',\'0.鍙栨秷\') limit 200';
-        System.debug('sql1LWC:' + sql);
         if(String.isNotBlank(sql)){
             RepairList = Database.query(sql);
         }
         if(RepairList.size() == 200){
-            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '妫�绱㈡暟鎹お澶�,璇风缉灏忔绱㈣寖鍥达紒'));
             //2023/04/07 returnData
             returnData.status = '妫�绱㈡暟鎹お澶�,璇风缉灏忔绱㈣寖鍥达紒';
         }
         if(RepairList.size() <= 0){
-            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '娌℃绱㈠埌浠讳綍淇悊'));
             //2023/04/07 returnData
             returnData.status = '娌℃绱㈠埌浠讳綍淇悊';
             return returnData;
@@ -166,17 +154,14 @@
             RepairData raData = new RepairData(ra);
             RAInfoList.add(raData);
         }
-        // return RAInfoList;
 
         returnData.repairData = RAInfoList;
-        System.debug(LoggingLevel.INFO, '*** returnData: ' + returnData);
         return returnData;
     }
 
     //鎵撳嵃PDF  
     @AuraEnabled
     public static String showPDF(String json) {
-        System.debug(LoggingLevel.INFO, '*** joinshoPDF: ');
         List<Repair__c> RepairList = (List<Repair__c>)System.JSON.deserialize(json,List<Repair__c>.class);
 
         if(RepairList == null || RepairList.isEmpty()){
@@ -184,39 +169,18 @@
         }
         repairIdList = new List<String>();
         for(Repair__c rd : RepairList) {
-            System.debug(LoggingLevel.INFO, '*** rd: ' + rd);
                 repairIdList.add(rd.Id);
         }
-        // RepairList = new List<Repair__c>();
         String url = '=';
-        /*System.debug('RAInfoList:' + RAInfoList);
-        if(RAInfoList == null || RAInfoList.isEmpty()){
-            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '璇峰厛妫�绱慨鐞�'));
-            return '璇峰厛妫�绱慨鐞�';
-        }*/
-        /*for(RepairData rd : RAInfoList) {
-            System.debug(LoggingLevel.INFO, '*** rd: ' + rd);
-            //閫変腑鐨剅epair
-            if(rd.IFCheck){
-                repairIdList.add(rd.repair.Id);
-                RepairList.add(rd.repair);
-            }
-        }*/
-        System.debug(LoggingLevel.INFO, '***repairIdList : ' + repairIdList);
-        System.debug(LoggingLevel.INFO, '***RepairList : ' + RepairList);
         if(repairIdList.size() > 0){
             if(repairIdList.size() <= 50){
                 if(RepairList.size() > 0){
-                    System.debug(LoggingLevel.INFO, '*** if size>0 generateAttachment: ');
                     generateAttachment(RepairList);
                 }
                 for(String Id : repairIdList){
                     url += Id + '=';
                 }
                 url = url.substring(0, url.lastIndexOf('='));
-                // PageReference pageRef = new PageReference('/apex/MaintenanceCommissionPDF?id' + url);
-                // pageRef.setRedirect(true);
-                // return pageRef;
                 String pdfURL = '';
                 if(isSandbox()){
                     pdfURL = 'https://ocsm--stagefull--c.visualforce.com/apex/MaintenanceCommissionPDF?id' + url;
@@ -225,18 +189,15 @@
                 }
                 return pdfURL;
             } else{
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '澶氬崟鎵撳嵃鏈�澶ф暟閲忎负50,璇烽�夋嫨灏戜簬50涓慨鐞嗭紒'));
                 return '澶氬崟鎵撳嵃鏈�澶ф暟閲忎负50,璇烽�夋嫨灏戜簬50涓慨鐞嗭紒';
             }
         } else{
-            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '璇疯嚦灏戦�夋嫨涓�涓慨鐞�'));
             return '璇疯嚦灏戦�夋嫨涓�涓慨鐞�';
         }
     }
 
     // 鐢熸垚pdf娣诲姞鍒板搴旂殑淇悊涓�
     public static PageReference generateAttachment(List<Repair__c> repList){
-        System.debug(LoggingLevel.INFO, '*** generateAttachment: ');
         BatchSelectRepairPDFDelete pdf = new BatchSelectRepairPDFDelete();
         pdf.deletePDF(repList);
         pdf.createPDF(repList);
diff --git a/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls b/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls
new file mode 100644
index 0000000..be36887
--- /dev/null
+++ b/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls
@@ -0,0 +1,89 @@
+// 2023/08/06  鎵归噺閫夋嫨淇悊LWC澶勭悊  娴嬭瘯绫�
+@isTest
+private class lexBatchSelectRepairLWCControllerTest {
+    @TestSetup
+    public static void init(){
+
+        Profile p = [SELECT Id FROM Profile WHERE id =:System.Label.ProfileId_SystemAdmin];
+        User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id);
+        insert hpOwner;
+        List<RecordType> rectHp = [SELECT Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'];
+        List<RecordType> rectDpt = [SELECT Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_GI'];
+        if (rectDpt.size() == 0) {
+            return;
+        }
+        Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'SoakupTestHp', OwnerId = hpOwner.Id);
+        insert hp;
+        Account dc = [SELECT Id, Name, RecordType_DeveloperName__c, Account2__c FROM Account WHERE ParentId = :hp.Id and RecordType_DeveloperName__c = 'Department_Class_GI'];
+        Account dpt = new Account(RecordTypeId = rectDpt[0].Id);
+        dpt.Name         = '*';
+        dpt.Department_Name__c  = 'TestDepart';
+        dpt.ParentId            = dc.Id;
+        dpt.Department_Class__c = dc.Id;
+        dpt.Hospital__c         = hp.Id;
+        insert dpt;
+        Asset asset = new Asset();
+        asset.Name = '銉嗐偣銉堟鍣�';
+        asset.AccountId = dpt.Id;
+        asset.Department_Class__c = dc.Id;
+        asset.Hospital__c = hp.Id;
+        asset.SerialNumber = 'testserial';
+
+        insert asset;
+    
+        Repair__c repair01 = new Repair__c();
+        repair01.Account__c = dpt.Id;
+        repair01.Department_Class__c = dc.Id;
+        repair01.Hospital__c = hp.Id;
+        repair01.Delivered_Product__c = asset.Id;
+        repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); 
+        repair01.FSE_Work_Location__c = '涓婃捣';
+        repair01.Service_Repair_No__c = 'SAP0001';
+        repair01.Incharge_Staff__c = hpOwner.Id;
+        repair01.On_site_repair__c = 'RC淇悊';
+        repair01.work_location_select__c = '鍖椾含鍔炰簨澶�';
+        insert repair01;
+        System.assertEquals(true,repair01.Id != null, '鎻掑叆澶辫触');
+    }
+    
+    static testMethod void testSearch() {
+        System.Test.StartTest();
+        List<Repair__c> objRepair = [SELECT Status1__c,Status2__c,HP_Name__c,Name,SAP_Service_Repair_No__c,SerialNumber__c,work_location_select__c,On_site_repair__c,Incharge_Staff__c
+                                      FROM Repair__c LIMIT 5];
+        lexBatchSelectRepairLWCController.RetrievalData returnData = new lexBatchSelectRepairLWCController.RetrievalData();
+        returnData.Status1 = objRepair[0].Status1__c;
+        returnData.Status2 = objRepair[0].Status2__c;
+        returnData.HospitalName = objRepair[0].HP_Name__c;
+        returnData.RepairName = objRepair[0].Name;
+        returnData.SAPRepairNo =objRepair[0].SAP_Service_Repair_No__c+','+objRepair[0].SAP_Service_Repair_No__c+' '+objRepair[0].SAP_Service_Repair_No__c;
+        returnData.SerialNumber =objRepair[0].SerialNumber__c+','+objRepair[0].SerialNumber__c;
+        returnData.workLocationSelect =objRepair[0].work_location_select__c+','+objRepair[0].work_location_select__c+' '+objRepair[0].work_location_select__c;
+        returnData.repair.Aware_date__c = Date.today();
+        returnData.repair.Incharge_Staff__c = objRepair[0].Incharge_Staff__c;
+
+        returnData.onSiteRepair = objRepair[0].On_site_repair__c;
+        lexBatchSelectRepairLWCController.ReturnData serachRes = lexBatchSelectRepairLWCController.search(JSON.serialize(returnData));
+        returnData = new lexBatchSelectRepairLWCController.RetrievalData();
+        serachRes = lexBatchSelectRepairLWCController.search(JSON.serialize(returnData));
+        serachRes = lexBatchSelectRepairLWCController.search('{"Status1":"0.鍒犻櫎"}');
+        System.Test.StopTest();
+
+    }
+    static testMethod void testShowPDF() {
+        System.Test.StartTest();
+        List<Repair__c> objRepair = [SELECT Status1__c,Status2__c,HP_Name__c,Name,SAP_Service_Repair_No__c,SerialNumber__c  FROM Repair__c LIMIT 10];
+        String showPDFRes = lexBatchSelectRepairLWCController.showPDF(JSON.serialize(objRepair));
+        System.assertEquals(true, showPDFRes != null);
+        objRepair = [SELECT Id,Status1__c,Status2__c,HP_Name__c,Name,SAP_Service_Repair_No__c,SerialNumber__c  FROM Repair__c WHERE FSE_Work_Location__c = '涓婃捣'];
+        showPDFRes = lexBatchSelectRepairLWCController.showPDF(JSON.serialize(objRepair));
+        System.assertEquals(true, showPDFRes != null);
+        objRepair = [SELECT Status1__c,Status2__c,HP_Name__c,Name,SAP_Service_Repair_No__c,SerialNumber__c  FROM Repair__c LIMIT 60];
+        showPDFRes = lexBatchSelectRepairLWCController.showPDF(JSON.serialize(objRepair));
+        System.assertEquals(true, showPDFRes != null);
+        objRepair.clear();
+        showPDFRes = lexBatchSelectRepairLWCController.showPDF(JSON.serialize(objRepair));
+        System.assertEquals(true, showPDFRes != null);      
+        System.Test.StopTest();
+    }
+    
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls-meta.xml b/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls-meta.xml
new file mode 100644
index 0000000..dd61d1f
--- /dev/null
+++ b/force-app/main/default/classes/lexBatchSelectRepairLWCControllerTest.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>52.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html
index 07ec8af..362ebef 100644
--- a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html
+++ b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.html
@@ -1,11 +1,4 @@
 <template>
- <!--  <div class="slds-box slds-theme--default">
-        Click on the link Below to Export data as csv/xls.
-        <p class="slds-m-top--large">
-            <a onclick={exportContactData}>Export Contact Data</a>
-            <lightning-button variant="brand" label="Export Contact data" title="Export Contact Data" onclick={exportContactData}></lightning-button>
-        </p>
-    </div> -->
   <lightning-card  variant="Narrow">
     <div style="padding: 0 20px">    
       <div>
@@ -13,67 +6,60 @@
           <div style="margin-top: 5px">
              <lightning-layout>
               <!-- cancelPaddingLeft -->
-                  <lightning-layout-item flexibility="auto" padding="around-small">
-                      <lightning-combobox name="progress" label="鐘舵��1" value={searchObj.Status1} options={status1Options} 
-                          onchange={handleStatus1Change} class="searchField"></lightning-combobox>
-                  </lightning-layout-item>
-                  <lightning-layout-item flexibility="auto" padding="around-small">
-                      <lightning-combobox
-                      name="progress" label="鐘舵��2" value={searchObj.Status2} options={status2Options} onchange={handleStatus2Change} 
-                      class="searchField"></lightning-combobox>
-                  </lightning-layout-item> 
-                  <lightning-layout-item flexibility="auto" padding="around-small">
-                      <lightning-combobox
-                      name="progress" label="鏈嶅姟鏂瑰紡" value={searchObj.onSiteRepair} options={siteRepairItems} onchange={handleSiteChange}
-                      class="searchField"></lightning-combobox>
-                  </lightning-layout-item> 
+                <lightning-layout-item size="4" padding="around-small">
+                  <lightning-combobox name="progress" label="鐘舵��1" value={searchObj.Status1} options={status1Options} 
+                        onchange={handleStatus1Change} class="searchField"></lightning-combobox>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="around-small">
+                  <lightning-combobox
+                    name="progress" label="鐘舵��2" value={searchObj.Status2} options={status2Options} onchange={handleStatus2Change} 
+                    class="searchField"></lightning-combobox>
+                </lightning-layout-item> 
+                <lightning-layout-item size="4" padding="around-small">
+                  <lightning-combobox
+                    name="progress" label="鏈嶅姟鏂瑰紡" value={searchObj.onSiteRepair} options={siteRepairItems} onchange={handleSiteChange}
+                    class="searchField"></lightning-combobox>
+                </lightning-layout-item> 
               </lightning-layout>
               <lightning-layout>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.RepairName} type="text" label="RS淇悊鍗曞彿" class="searchField" onchange={handleRepairNameChange}></lightning-input>
-                  </lightning-layout-item>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.SAPRepairNo} type="text" label="SAP淇悊鍗曞彿" class="searchField" onchange={handleSAPRepairNoChange}></lightning-input>
-                  </lightning-layout-item>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.workLocationSelect} type="text" label="缁翠慨涓績" class="searchField" onchange={handleWorkLocationChange}></lightning-input>
-                  </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.RepairName} type="text" label="RS淇悊鍗曞彿" class="searchField" onchange={handleRepairNameChange}></lightning-input>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.SAPRepairNo} type="text" label="SAP淇悊鍗曞彿" class="searchField" onchange={handleSAPRepairNoChange}></lightning-input>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.workLocationSelect} type="text" label="缁翠慨涓績" class="searchField" onchange={handleWorkLocationChange}></lightning-input>
+                </lightning-layout-item>
               </lightning-layout>
               <lightning-layout>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.SerialNumber} type="text" label="鏈鸿韩缂栫爜" class="searchField" onchange={handleSerialNumberChange}></lightning-input>
-                  </lightning-layout-item>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.State_Hospital} type="text" label="鐪佷唤" class="searchField" onchange={handleStateHospitalChange}></lightning-input>
-                  </lightning-layout-item>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <lightning-input value={searchObj.HospitalName} type="text" label="鍖婚櫌鍚嶇О" class="searchField" onchange={handleHospitalChange}></lightning-input>
-                  </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.SerialNumber} type="text" label="鏈鸿韩缂栫爜" class="searchField" onchange={handleSerialNumberChange}></lightning-input>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.State_Hospital} type="text" label="鐪佷唤" class="searchField" onchange={handleStateHospitalChange}></lightning-input>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-input value={searchObj.HospitalName} type="text" label="鍖婚櫌鍚嶇О" class="searchField" onchange={handleHospitalChange}></lightning-input>
+                </lightning-layout-item>
               </lightning-layout>
               <lightning-layout>
-                  <lightning-layout-item size="2" padding="horizontal-small">
-                    <lightning-input type="date" label="FSE鐢宠鏃�(寮�濮�)" value={repair.Aware_date__c} onchange={handleAwareDateDStart}></lightning-input>
-                  </lightning-layout-item>
-                  <!-- cancelPaddingLeft -->
-                  <lightning-layout-item size="2" padding="horizontal-small">
-                    <!-- variant="label-hidden" -->
-                    <lightning-input type="date" label="FSE鐢宠鏃�(缁撴潫)" value={repair.Aware_date2__c} onchange={handleAwareDateDEnd}></lightning-input>
-                  </lightning-layout-item>
-                  <lightning-layout-item size="4" padding="horizontal-small">
-                    <!-- record-id={recordId} 淇悊濮旀墭鑰�  Incharge_Staff__c-->
-                    <!-- <lightning-record-edit-form
-                        object-api-name={objectApiName}
-                        record-id=''
-                    >
-                        <lightning-input-field field-name={nameField} onclick={handleInchargeStaffChange}> </lightning-input-field>
-                    </lightning-record-edit-form> -->
-                    <lightning-record-edit-form
-                        object-api-name='Repair__c'
-                        record-id=''
-                    >
-                        <lightning-input-field field-name='Incharge_Staff__c' onclick={handleInchargeStaffChange}> </lightning-input-field>
-                    </lightning-record-edit-form>
-                  </lightning-layout-item>
+                <lightning-layout-item size="2" padding="horizontal-small">
+                  <lightning-input type="date" label="FSE鐢宠鏃�(寮�濮�)" value={repair.Aware_date__c} onchange={handleAwareDateDStart}></lightning-input>
+                </lightning-layout-item>
+                <!-- cancelPaddingLeft -->
+                <lightning-layout-item size="2" padding="horizontal-small">
+                  <!-- variant="label-hidden" -->
+                  <lightning-input type="date" label="FSE鐢宠鏃�(缁撴潫)" value={repair.Aware_date2__c} onchange={handleAwareDateDEnd}></lightning-input>
+                </lightning-layout-item>
+                <lightning-layout-item size="4" padding="horizontal-small">
+                  <lightning-record-edit-form
+                      object-api-name='Repair__c'
+                      record-id=''
+                  >
+                      <lightning-input-field field-name='Incharge_Staff__c' onchange={handleInchargeStaffChange}> </lightning-input-field>
+                  </lightning-record-edit-form>
+                </lightning-layout-item>
               </lightning-layout>
               <lightning-layout>
                   <lightning-layout-item flexibility="auto" padding="around-small">
@@ -88,7 +74,6 @@
             <lightning-button label="鎵撳嵃PDF" onclick={skipPage}></lightning-button>
             
             <lightning-button label="瀵煎嚭Excel" onclick={exportContactData}></lightning-button>
-            <!-- <lightning-button label="瀵煎嚭Excel" onclick={downloadCSVFile}></lightning-button> -->
           </div>
           <div>
             <lightning-datatable
diff --git a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js
index d1a1131..6f2d1a3 100644
--- a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js
+++ b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js
@@ -4,24 +4,14 @@
 import { NavigationMixin } from 'lightning/navigation';
 import { ShowToastEvent } from 'lightning/platformShowToastEvent';
 
-import NAME_FIELD from '@salesforce/schema/Repair__c.Incharge_Staff__c';
-import MY_CUSTOM_OBJECT from '@salesforce/schema/Repair__c';
-
 import search from '@salesforce/apex/lexBatchSelectRepairLWCController.search';
 import showPDF from '@salesforce/apex/lexBatchSelectRepairLWCController.showPDF';
-
-/*
-const actions = [
-    { label: 'Show details', name: 'show_details' },
-    { label: 'Delete', name: 'delete' },
-    ];*/
 
 const columns = [
         { label: '鐘舵��1', fieldName: 'Status1__c'},
         { label: '鐘舵��2', fieldName: 'Status2__c' },
         { label: 'RS淇悊鍗曞彿', fieldName: 'Name' },
         { label: 'SAP淇悊鍗曞彿', fieldName: 'SAP_Service_Repair_No__c' },
-        // { label: '鍨嬪彿', fieldName: 'deliveredProductName' },
         { label: '鍨嬪彿', fieldName: 'deliveredProductUrl',type:'url',
             typeAttributes:{
                 label:{
@@ -33,7 +23,6 @@
         { label: '鏈鸿韩缂栧彿', fieldName: 'SerialNumber__c' },
         { label: '鍖婚櫌鍚嶇О', fieldName: 'HP_Name__c' },
         { label: '鐪佷唤', fieldName: 'State_Hospital__c' },
-        // { label: '淇悊濮旀墭鑰�', fieldName: 'Incharge_Staff_Name' },
         { label: '淇悊濮旀墭鑰�', fieldName: 'inchargeStaffUrl',type:'url',
             typeAttributes:{
                 label:{
@@ -47,19 +36,9 @@
         { label: '鏈嶅姟鏂瑰紡', fieldName: 'On_site_repair__c' },
         { label: '鏈夋棤缁翠慨鍚堝悓瀵硅薄', fieldName: 'Number_of_EffectiveContract__c' },
         { label: '鏃犲伩鍖哄埆鏍囧織', fieldName: 'NewProductGuaranteeObject__c' }
-   /* {
-    type: 'action',
-    typeAttributes: { rowActions: actions },
-    },*/
     ];
-
+// 鎵归噺閫夋嫨淇悊LWC
 export default class lexBatchSelectRepairLWC extends LightningElement {
-    // Expose a field to make it available in the template
-    nameField = NAME_FIELD;
-
-    // Flexipage provides recordId and objectApiName
-    @api recordId;
-    @api objectApiName;
 
     data = [];
     columns = columns;
@@ -106,53 +85,29 @@
 
     searchObj = {};
     repair = {};
-    selectedRepairs;
-
-    /* @wire(CurrentPageReference)
-     getStateParameters(currentPageReference) {
-             console.log(111);
-             console.log(currentPageReference);
-
-         if (currentPageReference) {
-           const urlValue = currentPageReference.state.recordId;
-           if (urlValue) {
-             let str = `${urlValue}`;
-             console.log("str");
-             console.log(str);
-             this.recordId = str;
-           }
-         }
-     }*/
+    selectedRepairs = [];
 
     connectedCallback(){ 
-        // console.log(this.recordId);   
     }
     //鐘舵��1
     handleStatus1Change(event){
-        /*console.log(event);
-        console.log(event.detail);*/
         this.searchObj.Status1 = event.detail.value;
-        // console.log(JSON.stringify(this.searchObj));
     }
     //鐘舵��2
     handleStatus2Change(event){
         this.searchObj.Status2 = event.detail.value;
-        // console.log(this.searchObj);
     }
     //鏈嶅姟鏂瑰紡
     handleSiteChange(event){
         this.searchObj.onSiteRepair = event.detail.value;
-        // console.log(this.searchObj);
     }
     //RS淇悊鍗曞彿 RepairName
     handleRepairNameChange(event){
         this.searchObj.RepairName = event.detail.value;
-        // console.log(this.searchObj);
     }
     //SAP淇悊鍗曞彿 SAPRepairNo
     handleSAPRepairNoChange(event){
         this.searchObj.SAPRepairNo = event.detail.value;
-        // console.log(this.searchObj);
     }
     //缁翠慨涓績 workLocationSelect
     handleWorkLocationChange(event){
@@ -173,35 +128,20 @@
     //FSE鐢宠鏃� repair.Aware_date__c
     handleAwareDateDStart(event){
         this.repair.Aware_date__c = event.detail.value;
-        console.log(this.repair.Aware_date__c);
     }
     // repair.Aware_date2__c
     handleAwareDateDEnd(event){
         this.repair.Aware_date2__c = event.detail.value;
-        // console.log(this.repair.Aware_date2__c);
     }
     // 淇悊濮旀墭鑰� repair.Incharge_Staff__c
     handleInchargeStaffChange(event){
-        this.repair.Incharge_Staff__c = event.detail.value;
-        // console.log(this.repair.Aware_date2__c);
+        this.repair.Incharge_Staff__c = event.detail.value[0];
     }
 
    //妫�绱�
     searchRepair(event) {
-        console.log(this.repair.Aware_date__c);
         if (JSON.stringify(this.repair) != "{}") {
-            console.log('this.repair');
             this.searchObj.repair = this.repair;
-            // fse 鏃堕棿鏉′欢
-            /*if (!(this.repair.Aware_date__c != null && this.repair.Aware_date2__c != null) || this.repair.Aware_date__c > this.repair.Aware_date2__c) {
-                const event = new ShowToastEvent({
-                             title: 'error',
-                             message: 'FSE鐢宠鏃ヨ緭鍏ユ湁璇�',
-                             variant:'error',
-                            });
-                this.dispatchEvent(event);
-                return;
-            }*/
         }
         let jsonStr = JSON.stringify(this.searchObj);
         if (jsonStr === "{}") {     
@@ -212,36 +152,31 @@
                             });
             this.dispatchEvent(event);
         }else{
-            console.log(jsonStr);
             search({
                 json: jsonStr
             }).then(result => {
-                console.log(result.repairData);
-                console.log('length:'+result.repairData.length);
-                if (result.repairData.length == 0 || result.repairData.length == 200) {
+                if (!result.repairData || result.repairData && (result.repairData.length == 0 || result.repairData.length == 200)) {
                     const event = new ShowToastEvent({
                              title: 'warning',
                              message: result.status,
                              variant:'warning',
                             });
                     this.dispatchEvent(event);
+                    if (!result.repairData || result.repairData && result.repairData.length == 0) {
+                        result.repairData = [];
+                    }
                 }
                 let returnArr = [];
                 result.repairData.forEach(function(v){ 
                     let objRepair = v.repair;
                     //娣诲姞淇悊濮旀墭鑰呭拰鍨嬪彿鍚嶇О
-                    objRepair.deliveredProductName = objRepair.Delivered_Product__r.Name;
+                    objRepair.deliveredProductName = objRepair.Delivered_Product__r ? objRepair.Delivered_Product__r.Name : '';
                     objRepair.deliveredProductUrl = "/"+objRepair.Delivered_Product__c;
-                    objRepair.inchargeStaffName = objRepair.Incharge_Staff__r.Name;
+                    objRepair.inchargeStaffName = objRepair.Incharge_Staff__r ? objRepair.Incharge_Staff__r.Name : '';
                     objRepair.inchargeStaffUrl = "/"+objRepair.Incharge_Staff__c;
-                    // console.log(objRepair);
                     returnArr.push(objRepair);
                 }); 
-                /*console.log('arr');
-                console.log(arr);
-                console.log(arr.length);*/
                 this.data = returnArr;
-                // console.log(this.data);
             }).catch(error => {
                 console.log("error");
                 console.log(error);
@@ -278,7 +213,6 @@
                 fieldNameArr.push(v.fieldName);
             }
         }); 
-        console.log(fieldNameArr);
         fieldNameArr.forEach(v=>{
             console.log(v);
             // console.log(this.data[0].v);
@@ -355,10 +289,7 @@
             }else{
                 doc += '<th></th>'
             }
-                // fieldNameArr.forEach(fieldName =>{
-                //     doc += '<th>'+record.fieldName+'</th>'; 
-                // });
-                doc += '</tr>';
+            doc += '</tr>';
         });
         doc += '</table>';
         var element = 'data:application/vnd.ms-excel,' + encodeURIComponent(doc);
@@ -371,163 +302,9 @@
         downloadElement.click();
     }
 
-    // this method validates the data and creates the csv file to download  this.data鐨勬墍鏈夊瓧娈�
-     downloadCSVFile1() {   
-        console.log("downloadCSVFile1");
-        let rowEnd = '\n';
-        let csvString = '';
-        // this set elminates the duplicates if have any duplicate keys
-        let rowData = new Set();
-        let columnsData = new Set();
-        let columnsLabelData = new Set();
-
-        // getting keys from data
-        this.data.forEach(function (record) {
-            Object.keys(record).forEach(function (key) {
-                rowData.add(key);
-            });
-        });
-        console.log(rowData);
-
-        // Array.from() method returns an Array object from any object with a length property or an iterable object.
-        rowData = Array.from(rowData);
-        console.log(rowData);
-        
-        // splitting using ','
-        csvString += rowData.join(',');
-        csvString += rowEnd;
-        console.log(csvString);
-        this.columns.forEach(function(v){ 
-            columnsLabelData.add(v.label);
-            if (v['typeAttributes']) {
-                columnsData.add(v['typeAttributes'].label.fieldName);
-            }else{
-                columnsData.add(v.fieldName);
-            }
-        }); 
-        console.log("columnsData");
-        console.log(columnsLabelData);
-        console.log(columnsData);
-        console.log(rowData[1]);
-        console.log(Array.from(columnsData));
-        console.log(Array.from(columnsData).hasOwnProperty(rowData[1]));
-        console.log(this.data[0].Name);
-        console.log(this.data[0][rowData[1]]);
-        // main for loop to get the data based on key value
-        for(let i=0; i < this.data.length; i++){
-            let colValue = 0;
-
-            // validating keys in data
-            for(let key in rowData) {
-                if(rowData.hasOwnProperty(key)) {
-                    // Key value 
-                    // Ex: Id, Name
-                    let rowKey = rowData[key];
-                    // add , after every value except the first.
-                    if(colValue > 0){
-                        csvString += ',';
-                    }
-                    // If the column is undefined, it as blank in the CSV file.
-                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
-                    csvString += '"'+ value +'"';
-                    colValue++;
-                }
-            }
-            csvString += rowEnd;
-        }
-
-        // Creating anchor element to download
-        let downloadElement = document.createElement('a');
-
-        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
-        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
-        downloadElement.target = '_self';
-        // CSV File Name
-        downloadElement.download = 'Account Data.csv';
-        // below statement is required if you are using firefox browser
-        document.body.appendChild(downloadElement);
-        // click() Javascript function to download CSV file
-        downloadElement.click(); 
-    }
-    //瀵煎嚭涓篍xcel  
-    downloadCSVFile() {   
-        console.log("downloadCSVFile");
-        let rowEnd = '\n';
-        let csvString = '';
-        // this set elminates the duplicates if have any duplicate keys
-        //琛ㄦ牸鏍囬
-        let columnsData = new Set();
-        //琛ㄦ牸瀛楁
-        let rowData = new Set();
-
-        // getting keys from data
-        this.columns.forEach(function(v){ 
-            columnsData.add(v.label);
-            if (v['typeAttributes']) {
-                rowData.add(v['typeAttributes'].label.fieldName);
-            }else{
-                rowData.add(v.fieldName);
-            }
-        }); 
-        console.log(columnsData);
-        console.log(rowData);
-        // Array.from() method returns an Array object from any object with a length property or an iterable object.
-        rowData = Array.from(rowData);
-        columnsData = Array.from(columnsData);
-        // getting keys from data
-       /* console.log("rowData");
-        rowData.forEach(function(v){ 
-            console.log(v);
-        }); 
-        console.log("columnsData");
-        columnsData.forEach(function(v){ 
-            console.log(v);
-        }); */
-        
-        // splitting using ','
-        csvString += columnsData.join(',');
-        csvString += rowEnd;
-        // console.log(csvString);
-        // main for loop to get the data based on key value
-        for(let i=0; i < this.data.length; i++){
-            let colValue = 0;
-
-            // validating keys in data
-            for(let key in rowData) {
-                if(rowData.hasOwnProperty(key)) {//del
-                    // Key value 
-                    // Ex: Id, Name
-                    let rowKey = rowData[key];
-                    // add , after every value except the first.
-                    if(colValue > 0){
-                        csvString += ',';
-                    }
-                    // If the column is undefined, it as blank in the CSV file.
-                    let value = this.data[i][rowKey] === undefined ? '' : this.data[i][rowKey];
-                    csvString += '"'+ value +'"';
-                    colValue++;
-                }
-            }
-            csvString += rowEnd;
-        }
-
-        // Creating anchor element to download
-        let downloadElement = document.createElement('a');
-
-        // This  encodeURI encodes special characters, except: , / ? : @ & = + $ # (Use encodeURIComponent() to encode these characters).
-        downloadElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvString);
-        downloadElement.target = '_self';
-        // CSV File Name
-        downloadElement.download = '淇悊鏄庣粏琛�.csv';
-        // below statement is required if you are using firefox browser
-        document.body.appendChild(downloadElement);
-        // click() Javascript function to download CSV file
-        downloadElement.click(); 
-    }
     //鑾峰彇閫変腑Repair
     getSelectedRows(event) {
         const selectedRows = event.detail.selectedRows;
-        console.log(selectedRows);
         //Repair__c   selectedRepairs
         // Display that fieldName of the selected rows
         let selectedRepairsArr = [];
@@ -539,8 +316,6 @@
 
     //璺宠浆鍒皃df椤甸潰
     skipPage() {
-        console.log("selectedRows");
-        // console.log(jsonStr);
         if (this.selectedRepairs.length <= 0 ) {
             const event = new ShowToastEvent({
                                      title: 'error',
@@ -553,24 +328,23 @@
         let jsonStr = JSON.stringify(this.selectedRepairs);
         showPDF({
             json: jsonStr
-            }).then(result => {
-                console.log(result);
-                if (result.indexOf("https://ocsm") != -1) {
-                     window.open(result, "缁翠慨濮旀墭涔DF", "");
-                }else{
-                    const event = new ShowToastEvent({
-                                     title: 'error',
-                                     message: result,
-                                     variant:'error',
-                                    });
-                    this.dispatchEvent(event);
-                }
-            }).catch(error => {
-                console.log("error");
-                console.log(error);
-            }).finally(() => {
-                
-            }); 
-    }
+        }).then(result => {
+            if (result.indexOf("https://ocsm") != -1) {
+                 window.open(result, "缁翠慨濮旀墭涔DF", "");
+            }else{
+                const event = new ShowToastEvent({
+                                 title: 'error',
+                                 message: result,
+                                 variant:'error',
+                                });
+                this.dispatchEvent(event);
+            }
+        }).catch(error => {
+            console.log("error");
+            console.log(error);
+        }).finally(() => {
+            
+        }); 
+}
 
 }
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml
index 2b7649d..4cb49f2 100644
--- a/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml
+++ b/force-app/main/default/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js-meta.xml
@@ -3,6 +3,7 @@
 	<apiVersion>54.0</apiVersion>
 	<isExposed>true</isExposed>
 	<targets>
+		<target>lightning__Tab</target>
 		<target>lightning__RecordPage</target>
 		<target>lightning__AppPage</target>
 		<target>lightning__HomePage</target>

--
Gitblit v1.9.1