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/lwc/lexBatchSelectRepairLWC/lexBatchSelectRepairLWC.js |  282 +++++--------------------------------------------------
 1 files changed, 28 insertions(+), 254 deletions(-)

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

--
Gitblit v1.9.1