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