From fbd4bea7bd57b4d4a33cb9ed0ebc15d9bf6551c0 Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期三, 12 七月 2023 17:54:54 +0800
Subject: [PATCH] 近日更新按钮,页面以及apex类

---
 force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.html                                   |   14 
 force-app/main/default/pages/AssetModifyBelongs.page                                                |   35 
 force-app/main/default/pages/SpecialPriceTest.page-meta.xml                                         |    5 
 force-app/main/default/classes/MaintenanceProductDataController.cls                                 |   27 
 force-app/main/default/lwc/lexNewSolutonProLwc/lexNewSolutonProLwc.js                               |    1 
 force-app/main/default/pages/DiscountProductApplicationTest.page                                    |  224 ++
 force-app/main/default/pages/MaintenanceProductData.page                                            |   12 
 force-app/main/default/classes/OPDNoReportApplicationController.cls                                 |   15 
 force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp-meta.xml                          |    5 
 force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp-meta.xml                      |    5 
 force-app/main/default/classes/ControllerUtil.cls                                                   | 2711 ---------------------------------
 force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js-meta.xml                        |   11 
 force-app/main/default/aura/TransferApplyNew/TransferApplyNewController.js                          |    5 
 force-app/main/default/classes/lexSolutionProjectRequirementsController.cls                         |   37 
 force-app/main/default/lwc/lexNewSolutionProgramma/lexNewSolutionProgramma.js                       |   17 
 force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraController.js                      |    7 
 force-app/main/default/pages/OPDNoReportApplication.page                                            |   15 
 force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraHelper.js                          |    5 
 force-app/main/default/classes/ReportControllerTest.cls                                             |  255 +-
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css                            |    8 
 force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js                                 |  124 +
 force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.html                               |    5 
 force-app/main/default/lwc/lexCopyReport/lexCopyReport.html                                         |    5 
 force-app/main/default/pages/SpecialPriceTest.page                                                  |  477 ++++++
 force-app/main/default/lwc/lexSubmitSolutionSchemeForApproval/lexSubmitSolutionSchemeForApproval.js |    8 
 force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.css                               |    2 
 force-app/main/default/lwc/lexNewOpportunityAgency/lexNewOpportunityAgency.js                       |    4 
 force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js-meta.xml                            |   11 
 force-app/main/default/pages/DiscountProductApplicationTest.page-meta.xml                           |    5 
 force-app/main/default/classes/ReportController.cls                                                 |  179 +
 force-app/main/default/lwc/lexCBLBPNewLwc/lexCBLBPNewLwc.js                                         |   30 
 force-app/main/default/lwc/lexCopyReport/lexCopyReport.js-meta.xml                                  |   11 
 force-app/main/default/lwc/lexClosingCaseFlow/lexClosingCaseFlow.js                                 |    2 
 force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js                               |   45 
 force-app/main/default/lwc/lexSpecSubmit/lexSpecSubmit.js                                           |    4 
 force-app/main/default/lwc/lexSpecilaApplyCreateAch/lexSpecilaApplyCreateAch.js                     |    6 
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js                             |   30 
 force-app/main/default/lwc/lexSubmitSolutionForApproval/lexSubmitSolutionForApproval.js             |   31 
 force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js                                     |   64 
 force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js-meta.xml                      |    5 
 force-app/main/default/lwc/lexCopyReport/__tests__/lexCopyReport.test.js                            |   25 
 force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.html                             |    3 
 force-app/main/default/classes/AssetModifyBelongsController.cls                                     |   37 
 force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp                                   |   33 
 force-app/main/default/lwc/lexOPDReport/lexOPDReport.js                                             |   31 
 force-app/main/default/lwc/lexApplyAgainLwc/__tests__/lexApplyAgainLwc.test.js                      |   25 
 force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp                               |    8 
 force-app/main/default/pages/OPDNoReportApplication.page-meta.xml                                   |    2 
 force-app/main/default/lwc/lexCopyReport/lexCopyReport.js                                           |   46 
 force-app/main/default/lwc/lexNewOnLineSurvey/lexNewOnLineSurvey.js                                 |    6 
 force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html                                           |   10 
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html                           |    5 
 force-app/main/default/classes/lexPCLLostReportLwcController.cls                                    |   21 
 force-app/main/default/pages/AttachmentPreview.page                                                 |    9 
 54 files changed, 1,734 insertions(+), 2,989 deletions(-)

diff --git a/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp b/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp
new file mode 100644
index 0000000..e46431d
--- /dev/null
+++ b/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp
@@ -0,0 +1,33 @@
+<!--
+ * @Description: 
+ * @Author: [lijinhuan]
+ * @Date: 2023-04-26 17:25:35
+ * @LastEditors: [lijinhuan]
+ * @LastEditTime: 2023-07-03 16:17:03
+-->
+<aura:component
+    implements="lightning:actionOverride,lightning:isUrlAddressable,force:lightningQuickAction,force:hasRecordId"
+    access="global">
+        <aura:html tag="style">
+            .slds-modal__container{
+            max-width: 65rem !important;
+            width:100% !important;
+            }
+            .cuf-content {
+            padding: 0 0rem !important;
+            }
+            .slds-p-around--medium {
+            padding: 0rem !important;
+            }
+            .slds-modal__content{
+            overflow-y:auto !important;
+            height:unset !important;
+            max-height:unset !important;
+            min-height:8rem;
+            }
+            .slds-tile_board{
+            padding:20px 40px;
+            }
+        </aura:html>
+    <c:lexTransferApplyNew />
+</aura:component>
\ No newline at end of file
diff --git a/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp-meta.xml b/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp-meta.xml
new file mode 100644
index 0000000..838df43
--- /dev/null
+++ b/force-app/main/default/aura/TransferApplyNew/TransferApplyNew.cmp-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <description>A Lightning Component Bundle</description>
+</AuraDefinitionBundle>
diff --git a/force-app/main/default/aura/TransferApplyNew/TransferApplyNewController.js b/force-app/main/default/aura/TransferApplyNew/TransferApplyNewController.js
new file mode 100644
index 0000000..77e406b
--- /dev/null
+++ b/force-app/main/default/aura/TransferApplyNew/TransferApplyNewController.js
@@ -0,0 +1,5 @@
+({
+    myAction : function(component, event, helper) {
+
+    }
+})
\ No newline at end of file
diff --git a/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp
new file mode 100644
index 0000000..56bd5d0
--- /dev/null
+++ b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp
@@ -0,0 +1,8 @@
+<aura:component implements="force:lightningQuickActionWithoutHeader,force:hasRecordId,lightning:isUrlAddressable">
+    <aura:attribute name="recordId" type="String" />
+    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> 
+    <div class="exampleHolder">
+        <!-- <c:lexCustomDeleteLWC recordId="{!v.recordId}" /> -->
+        <c:lexCBLBPNewLwc recordId="{!v.recordId}"/>
+    </div>
+</aura:component>	
diff --git a/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp-meta.xml b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp-meta.xml
new file mode 100644
index 0000000..91ab158
--- /dev/null
+++ b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.cmp-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>57.0</apiVersion>
+    <description>A Lightning Component Bundle</description>
+</AuraDefinitionBundle>
\ No newline at end of file
diff --git a/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.css b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.css
new file mode 100644
index 0000000..f407185
--- /dev/null
+++ b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAura.css
@@ -0,0 +1,2 @@
+.THIS {
+}
diff --git a/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraController.js b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraController.js
new file mode 100644
index 0000000..623133f
--- /dev/null
+++ b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraController.js
@@ -0,0 +1,7 @@
+({
+    doInit: function(component, event, helper) {        
+        var val=component.get('v.recordId');
+        $A.get("e.force:closeQuickAction").fire();
+        console.log('val',val);
+    }
+})
diff --git a/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraHelper.js b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraHelper.js
new file mode 100644
index 0000000..f8a77e3
--- /dev/null
+++ b/force-app/main/default/aura/lexCBLBPNewLwcAura/lexCBLBPNewLwcAuraHelper.js
@@ -0,0 +1,5 @@
+({
+    helperMethod : function() {
+
+    }
+})
diff --git a/force-app/main/default/classes/AssetModifyBelongsController.cls b/force-app/main/default/classes/AssetModifyBelongsController.cls
index c9ca4ce..8e105d0 100644
--- a/force-app/main/default/classes/AssetModifyBelongsController.cls
+++ b/force-app/main/default/classes/AssetModifyBelongsController.cls
@@ -50,7 +50,7 @@
     public Boolean isShow { get; set; }
     public List<Attachment> attachments { get; set; }
     //CHAN-BC6BV2 XHL AddEnd 20190522
-
+	public List<ContentDocument> contents { get; set; }
     //鍒嗛〉鍔熻兘
     public Integer pageLimit {get; set;}
     public String soql {get; set;}
@@ -68,6 +68,14 @@
         pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
 
         attachments = new List<Attachment>();
+        List<ContentDocumentLink> cdlList = [SELECT ContentDocumentId
+                                                   FROM ContentDocumentLink
+                                                   WHERE LinkedEntityId = :Id];
+        List<ID> fileIDs = new List<ID>();
+        for (ContentDocumentLink docLink : cdlList) {
+            fileIDs.add(docLink.ContentDocumentId);
+        }
+        contents=[SELECT Title,OwnerId,ContentModifiedDate from ContentDocument WHERE id IN :fileIDs];
     }
 
     public boolean getcheckUser() {
@@ -170,7 +178,8 @@
         Map<String, AssetModifyBelongsChangeDetailInfo> MidMap = new Map<String, AssetModifyBelongsChangeDetailInfo>();
         List<Asset> asListed = new List<Asset>();
         soql = this.makeSoql1(text1, val1);
-        asListed = Database.query(soql);
+        System.debug('soql:'+soql);
+		asListed = Database.query(soql);
         asListed = noSubmittedList(asListed);
         for (AssetModifyBelongsChangeDetailInfo bss : assetModifyBelongsChangeDetailRecordsview) {
             if (bss.check == true) {
@@ -260,7 +269,17 @@
         if (String.isNotBlank(val1)) {
             val1 = val1.trim();
         }
-        String soql = 'select Id,name,SerialNumber,Asset_situation__c,Order_No__c,Account.Name,Status,Installation_Site__c,CurrentContract__c from Asset where AccountId = \'' + RawAccountId + '\'';
+        String soql='';
+        System.debug(RawAccountId);
+        RawAccountId='';
+        if(String.isBlank(RawAccountId)){
+            soql = 'select Id,name,SerialNumber,Asset_situation__c,Order_No__c,Account.Name,Status,Installation_Site__c,CurrentContract__c from Asset where AccountId = \'\'';
+            System.debug('id is null');
+        }
+        else {
+            soql = 'select Id,name,SerialNumber,Asset_situation__c,Order_No__c,Account.Name,Status,Installation_Site__c,CurrentContract__c from Asset where AccountId = \'' + RawAccountId + '\'';
+            System.debug('id is not null');
+        }
         if (!String.isBlank(text1)) {
             if (text1 == 'Order_No__c' && checkexact) {
                 soql += ' AND (' + text1 + ' = \'' + String.escapeSingleQuotes(val1) + '\' )';
@@ -325,6 +344,18 @@
     //璺宠浆鍒颁笂浼犻檮浠堕〉闈�
     public PageReference uploadingAttachment() {
         PageReference ref = new Pagereference('/p/attach/NoteAttach?pid=' + Id + '&retURL=%2Fapex/AssetModifyBelongs?Id=' + Id);
+        
+        
+        //PageReference ref = new Pagereference('/lightning/n/Excel?objectApiName&context=RECORD_DETAIL&backgroundContext=%2Flightning%2Fr%2FAssetModifyBelongsChange__c%2F'+Id+'%2Fedit%3F0.source%3DalohaHeader&0.source='+Id+'&0.recordId='+Id+'');
+        
+        ref.setRedirect(true);
+        return ref;
+    }
+    //璺宠浆鍒颁笂浼犻檮浠堕〉闈紙lightning锛�
+    public PageReference uploadingAttachmentLightning() {
+        //PageReference ref = new Pagereference('/p/attach/NoteAttach?pid=' + Id + '&retURL=%2Fapex/AssetModifyBelongs?Id=' + Id);
+        PageReference ref = new Pagereference('/lightning/n/lightning?backgroundContext=%2Flightning%2Fr%2FAssetModifyBelongsChange__c%2F'+Id+'%2Fedit%3Fcount%3D1&0.recordId='+Id+'');
+        
         ref.setRedirect(true);
         return ref;
     }
diff --git a/force-app/main/default/classes/ControllerUtil.cls b/force-app/main/default/classes/ControllerUtil.cls
index 043eb10..611d131 100644
--- a/force-app/main/default/classes/ControllerUtil.cls
+++ b/force-app/main/default/classes/ControllerUtil.cls
@@ -32,2690 +32,7 @@
 
     public ControllerUtil() {
         Integer i = 0;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-                i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
+        
     }
     @AuraEnabled
     WebService static String selectCommonSequence(String valueField, String formatField) {
@@ -2800,6 +117,29 @@
     }
     
     public static void deleteAttachments(List<Attachment> atts) {
+        if (atts.size() > 0) delete atts;
+    }
+
+    public static List<ContentDocument> getSmarmAttsLightning(String smarmId) {
+        List<ContentDocumentLink> cdlList = [SELECT ContentDocumentId
+                                                   FROM ContentDocumentLink
+                                                   WHERE LinkedEntityId = :smarmId];
+            List<ID> fileIDs = new List<ID>();
+            for (ContentDocumentLink docLink : cdlList) {
+                fileIDs.add(docLink.ContentDocumentId);
+            }        
+        return [SELECT Title,OwnerId from ContentDocument WHERE id IN :fileIDs];
+    }
+
+    // public static void insertAttachmentsLightning(List<ContentDocument> atts) {
+    //     if (atts.size() > 0) insert atts;
+    // }
+
+    public static void updateAttachmentsLightning(List<ContentDocument> atts) {
+        if (atts.size() > 0) update atts;
+    }
+
+    public static void deleteAttachmentsLightning(List<ContentDocument> atts) {
         if (atts.size() > 0) delete atts;
     }
     
@@ -5494,6 +2834,7 @@
     /**
     OCM鐢紝鍙栨秷SI闇�姹傝〃
     */
+    @AuraEnabled
     WebService static String setAbortSI(id isoID,String AbortReason){
         List<IS_Opportunity_Demand__c> updateList = new List<IS_Opportunity_Demand__c>();
         List<id> oppidList = new List<id>();
@@ -5734,7 +3075,7 @@
     }
 
     public class myException extends Exception {}
-
+    @AuraEnabled
     WebService static String qureySoql(String soql) {
         List<SObject> rtnList = Database.query(soql);
         String rtnJSON = JSON.serialize(Database.query(soql), true);
diff --git a/force-app/main/default/classes/MaintenanceProductDataController.cls b/force-app/main/default/classes/MaintenanceProductDataController.cls
index 0483fd3..016221e 100644
--- a/force-app/main/default/classes/MaintenanceProductDataController.cls
+++ b/force-app/main/default/classes/MaintenanceProductDataController.cls
@@ -83,7 +83,7 @@
     public Boolean editDelCommitBtnDisabled {get; private set;}
     public Boolean saveBtnDisabled { get; private set; }
     //public Boolean sorderBtnDisabled { get; private set; }
-    private List<Attachment> attachmentinfo = new List<Attachment>();
+    private List<ContentDocument> attachmentinfo = new List<ContentDocument>();
     //-----------
 
     private void initStandardController(){
@@ -474,8 +474,17 @@
                     mpdPrice.mpded.Intra_Trade_Service_RMB_Old__c = null;
                 }
             }
-            //闄勪欢
-            attachmentinfo =[SELECT Id, Name,OwnerId FROM Attachment WHERE  parentid =:id  ];
+            //闄勪欢(lightning)
+            List<ContentDocumentLink> cdlList = [SELECT ContentDocumentId
+                                                   FROM ContentDocumentLink
+                                                   WHERE LinkedEntityId = :id];
+            List<ID> fileIDs = new List<ID>();
+            for (ContentDocumentLink docLink : cdlList) {
+                fileIDs.add(docLink.ContentDocumentId);
+            }
+            attachmentinfo=[SELECT Title,OwnerId,ContentModifiedDate from ContentDocument WHERE id IN :fileIDs];
+
+            // attachmentinfo =[SELECT Id, Name,OwnerId FROM Attachment WHERE  parentid =:id  ];
             if(attachmentinfo.size()>0){
                 for (Integer i = 0; i < attachmentinfo.size(); i++) {
                     attachmentRecoeds.add(new MaintenanceProductDataDetailsInfo(attachmentinfo[i]));
@@ -1091,6 +1100,14 @@
         ref.setRedirect(true);
         return ref;
     }
+    public PageReference FilesUploadLightning(){
+        // PageReference ref = new Pagereference('/p/attach/NoteAttach?pid='+id+'&retURL=%2F' + '/apex/MaintenanceProductData?id=' +id);
+        // ref.setRedirect(true);
+        // return ref;
+        PageReference ref = new Pagereference('/lightning/n/lightning?backgroundContext=%2Flightning%2Fr%2FAssetModifyBelongsChange__c%2F'+id+'%2Fedit%3Fcount%3D1&0.recordId='+id+'');
+        ref.setRedirect(true);
+        return ref;
+    }
     // 鎻愪氦鎸夐挳
     public PageReference Submitmpd() {
         //List<Maintenance_Product_Data__c> qs = New List<Maintenance_Product_Data__c>();
@@ -1351,7 +1368,7 @@
         public Boolean canSelect { get; set; }
         public Product2 Prod { get; set; }
         public Maintenance_Product_Data_Details__c mpdrdd {get; set;}
-        public Attachment Concc { get; set; }
+        public ContentDocument Concc { get; set; }
 
         public MaintenanceProductDataDetailsInfo(Maintenance_Product_Data_Details__c e) {
             check = true;
@@ -1368,7 +1385,7 @@
             canSelect = true;
         }
         //闄勪欢
-        public MaintenanceProductDataDetailsInfo(Attachment e) {
+        public MaintenanceProductDataDetailsInfo(ContentDocument e) {
             Concc = e;
         }
     }
diff --git a/force-app/main/default/classes/OPDNoReportApplicationController.cls b/force-app/main/default/classes/OPDNoReportApplicationController.cls
index 94d2000..55ef72f 100644
--- a/force-app/main/default/classes/OPDNoReportApplicationController.cls
+++ b/force-app/main/default/classes/OPDNoReportApplicationController.cls
@@ -6,7 +6,7 @@
     //璺宠繃涓婁紶闄勪欢鍒ゆ柇 
     public Boolean IsHavFile { get; set; }
     //闄勪欢
-    public List<Attachment> attachmentinfo { get; set; }
+    public List<ContentDocument> attachmentinfo { get; set; }
     // //鎵ц瀹℃壒娴佹垚鍔熸爣璇�
     public Boolean approvalFlag { get; set; }
 
@@ -45,7 +45,18 @@
             this.ModelLendingCodeId = opdPlan.ModelLending__c;
         }
 
-        attachmentinfo = [SELECT Id, Name,OwnerId FROM Attachment WHERE  parentid = :paramId];
+        //闄勪欢(lightning)
+        List<ContentDocumentLink> cdlList = [SELECT ContentDocumentId
+        FROM ContentDocumentLink
+        WHERE LinkedEntityId = :paramId];
+        List<ID> fileIDs = new List<ID>();
+        for (ContentDocumentLink docLink : cdlList) {
+        fileIDs.add(docLink.ContentDocumentId);
+        }
+        attachmentinfo=[SELECT Title,OwnerId,ContentModifiedDate from ContentDocument WHERE id IN :fileIDs];
+
+
+        // attachmentinfo = [SELECT Id, Name,OwnerId FROM Attachment WHERE  parentid = :paramId];
         if(attachmentinfo.size()>0){
             IsHavFile =true;
         } else {
diff --git a/force-app/main/default/classes/ReportController.cls b/force-app/main/default/classes/ReportController.cls
index d84c234..518ec43 100644
--- a/force-app/main/default/classes/ReportController.cls
+++ b/force-app/main/default/classes/ReportController.cls
@@ -293,10 +293,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //OPDtoSIS鎿嶄綔鏇存柊鐩稿簲鏁版嵁
@@ -309,10 +313,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
 
@@ -328,10 +336,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //瀹屾瘯鎿嶄綔鏇存柊鐩稿簲鏁版嵁
@@ -345,10 +357,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //OCSM瑕佹姤鍛婃搷浣滄洿鏂扮浉搴旀暟鎹�
@@ -361,10 +377,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
 
@@ -378,10 +398,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',') + 1;
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //DispatchOCSMQARA鎿嶄綔鏇存柊鐩稿簲鏁版嵁
@@ -394,10 +418,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //OCSM涓嶈鎶ュ憡鎿嶄綔鏇存柊鐩稿簲鏁版嵁
@@ -410,10 +438,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right); 
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
 
@@ -427,10 +459,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     
@@ -464,10 +500,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
 
@@ -481,14 +521,18 @@
             update rac;
             return null;
         } catch (Exception e) {
-            System.debug(LoggingLevel.INFO, '*** e: ' + e);
-            String exc = '' + e.getMessage();
-            Integer left = exc.indexOf(':') + 1;
-            Integer right = exc.lastIndexOf(':');
-            String str = exc.substring(left,right);
-            left = str.indexOf(',') +  1;
-            String newStr = str.substring(left);
-            return newStr;
+            if (e.getMessage().contains(',')) {
+                System.debug(LoggingLevel.INFO, '*** e: ' + e);
+                String exc = '' + e.getMessage();
+                Integer left = exc.indexOf(':') + 1;
+                Integer right = exc.lastIndexOf(':');
+                String str = exc.substring(left,right);
+                left = str.indexOf(',') +  1;
+                String newStr = str.substring(left);
+                return newStr;
+            }else {
+                return e.getMessage();   
+            } 
         }
     }
 
@@ -505,10 +549,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //VOC鍥炵瓟鏇存柊鐩稿簲鏁版嵁
@@ -517,7 +565,6 @@
         try {
             Report__c rac = [select Status__c,JingliApprovalManager__r.Id,BuchangApprovalManager__r.Id,SalesManager__r.Id,BuchangApprovalManagerSales__r.Id,ZongjianApprovalManager__c,Submit_time__c,Submit_report_day__c,Owner.Id from Report__c where Id = :recordId];
             // share
-            rac.Id = recordId;
             User[] records = [SELECT  Job_Category__c FROM User WHERE Id = :createdById];
             List<String> userAccess = new List<String>();
             if (records[0].Job_Category__c == LightingButtonConstant.TYPE_OF_SALES_SERVICES) {
@@ -534,7 +581,7 @@
             userAccess.add(rac.ZongjianApprovalManager__c + LightingButtonConstant.USER_ACCESS_READ);
             String rtn = ControllerUtil.setSObjectShare(LightingButtonConstant.SOBJECT_NAME_OF_REPORT_SHARE,LightingButtonConstant.SOBJECT_NAME_OF_VOC_SHARE,recordId,userAccess,rac.Owner.Id);
             if (rtn != LightingButtonConstant.OK) {
-            return null;
+            return rtn;
             }
             rac.Status__c = LightingButtonConstant.STATUS_VOC_WRITE_OVER;
             rac.Submit_time__c = Date.today();
@@ -542,10 +589,14 @@
             update rac;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left, right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     //VOC鍒ゅ畾鏇存柊鐩稿簲鏁版嵁
@@ -600,10 +651,14 @@
             update report;
             return null;
         } catch (Exception e) {
-            String eMessage = e.getMessage();
-            Integer left = eMessage.indexOf(',');
-            Integer right = eMessage.length();
-            return eMessage.substring(left,right);
+            if (e.getMessage().contains(',')) {
+                String eMessage = e.getMessage();
+                Integer left = eMessage.indexOf(',');
+                Integer right = eMessage.length();
+                return eMessage.substring(left,right);
+            }else {
+                return e.getMessage();   
+            }  
         }
     }
     @AuraEnabled
diff --git a/force-app/main/default/classes/ReportControllerTest.cls b/force-app/main/default/classes/ReportControllerTest.cls
index 9c0fb62..1b25d18 100644
--- a/force-app/main/default/classes/ReportControllerTest.cls
+++ b/force-app/main/default/classes/ReportControllerTest.cls
@@ -1,123 +1,148 @@
 @isTest
 private  class ReportControllerTest {
+    @TestSetup
+    static void setData(){
+        List<String> strList= new List<String>();
+        strList.add('Agency_Contact__c');
+        strList.add('Contact');
+        TestDataUtility.CreatePIPolicyConfigurations(strList);
+        Consum_Apply__c ca = new Consum_Apply__c();
+        ca.DataMigration_Flag__c = true;
+        insert ca;
+        Address_Level__c al = new Address_Level__c();
+        al.Name = '鏉变含';
+        al.Level1_Code__c = 'CN-99';
+        al.Level1_Sys_No__c = '999999';
+        insert al;
+        // 甯�
+        Address_Level2__c al2 = new Address_Level2__c();
+        al2.Level1_Code__c = 'CN-99';
+        al2.Level1_Sys_No__c = '999999';
+        al2.Level1_Name__c = '鏉变含';
+        al2.Name = '娓嬭胺鍖�';
+        al2.Level2_Code__c = 'CN-9999';
+        al2.Level2_Sys_No__c = '9999999';
+        al2.Address_Level__c = al.id;
+        insert al2;
 
-    static testMethod void methodName1(){
-        
-        Test.startTest();
-            Report__c rac = new Report__c();
-            rac.Id = 'a0B0l00000FD8o6EAD';
-            rac.Status__c = '鐢宠珛涓�';
-            rac.Submit_time__c = Datetime.now();
-            rac.Submit_report_day__c = Date.today();
-            rac.Date__c = Date.today();
-            update rac;
-            Report__c res = [select Status__c,Submit_time__c,Submit_report_day__c from Report__c where Id = 'a0B0l00000FD8o6EAD'];
-            System.debug(res);
-        Test.stopTest();
-        
+        // 鐥呴櫌銈掍綔銈�
+        Account hospital = new Account();
+        hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id;
+        hospital.Name = 'test hospital';
+        hospital.Is_Active__c = '鏈夊姽';
+        hospital.Attribute_Type__c = '鍗敓閮�';
+        hospital.Speciality_Type__c = '缁煎悎鍖婚櫌';
+        hospital.Grade__c = '涓�绾�';
+        hospital.OCM_Category__c = 'SLTV';
+        hospital.Is_Medical__c = '鍖荤枟鏈烘瀯';
+        hospital.State_Master__c = al.id;
+        hospital.City_Master__c = al2.id;
+        hospital.Town__c = '涓滀含';
+        insert hospital;
+
+        // 鎴︾暐绉戝銈掑緱銈�
+        Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH'];
+        // 瑷虹檪绉戙倰浣溿倠
+        Account dep = new Account();
+        dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id;
+        dep.Name = 'test dep';
+        dep.AgentCode_Ext__c = '9999998';
+        dep.ParentId = strategicDep[0].Id;
+        dep.Department_Class__c = strategicDep[0].Id;
+        dep.Hospital__c = hospital.Id;
+        insert dep;
+
+        Contact contact2 = new Contact();
+        contact2.AccountId = dep.Id;
+        contact2.FirstName = '璨换鑰�';
+        contact2.LastName = 'test1缁忛攢鍟�';
+        insert contact2;
+
+        // 浜у搧
+        Product2 pro5 = new Product2(Name='name05',IsActive=true,Family='SP',
+                Fixture_Model_No__c='n05',Serial_Lot_No__c='S/N tracing',
+                Fixture_Model_No_T__c = 'n05',
+                ProductCode_Ext__c='pc05',Manual_Entry__c=false);
+        insert pro5;
+
+        //澶囧搧鍊熷嚭鐢宠
+        Rental_Apply__c raObj = new Rental_Apply__c();
+        raObj.Name = 'testra';
+        raObj.Product_category__c = 'GI';
+        raObj.Demo_purpose1__c = '浜у搧璇曠敤';
+        raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia');
+        raObj.direct_send__c = '鍖荤枟鏈烘瀯';
+        raObj.Loaner_received_staff__c = '鐜嬩簲';
+        raObj.Loaner_received_staff_phone__c = '110';
+        raObj.direct_shippment_address__c = '鍖椾含甯�';
+        raObj.Hospital__c = hospital.Id;
+        raObj.Strategic_dept__c = strategicDep[0].Id;
+        raObj.Account__c = dep.Id;
+        raObj.Request_shipping_day__c = Date.toDay();  // 甯屾湜鍒拌揣鏃�
+        raObj.Hope_Lonaer_date_Num__c = 1;  // 甯屾湜鍊熺敤澶╂暟
+        // 棰勫畾褰掕繕鏃ヨ嚜鍔ㄧ敓鎴� 棰勫畾褰掕繕鏃�=锛堝笇鏈涘埌璐ф棩+甯屾湜鍊熺敤澶╂暟锛�-1
+        // raObj.Request_return_day__c = Date.toDay();  // 棰勫畾褰掕繕鏃�
+        // B.OLY_OCM-669 鍏ュ姏瑙勫垯: 甯屾湜鍊熺敤澶╂暟涓嶈兘涓虹┖
+        raObj.Phone_number__c = '1234567890';
+        raObj.Loaner_medical_Staff__c = contact2.Id;
+        insert raObj;
+
+        Report__c rep = new Report__c();
+        rep.VOC_Informer_Contact__c = '139';
+        rep.Comment__c = '娴嬭瘯';
+        rep.Manual_Name__c = '娴嬭瘯鍖婚櫌/绉戝/缁忛攢鍟�';
+        insert rep;
     }
-
-    static testMethod void methodName3(){
-        
+    static testMethod void methodName1(){  
+        Report__c rep = [select Id from Report__c limit 1];
+        Rental_Apply__c re = [select Id from Rental_Apply__c limit 1];
+        Consum_Apply__c ca = [select Id from Consum_Apply__c limit 1];
         Test.startTest();
-        String recordId = 'a0B0l00000FDCPpEAP';
-        String isVOC = 'VOC';
-        String personId = '00510000002Z2o3AAC';
-        Report__c r = [select Status__c,Submit_time__c from Report__c where Id = 'a0B0l00000FDCPpEAP' limit 1];
-          
-        Test.stopTest();
-        
-    }
-
-
-    static testMethod void methodName2(){
-        
-        Test.startTest();
-        String recordId = 'a0B0l00000FDCPpEAP';
-        String isVOC = 'VOC';
-        String personId = '00510000002Z2o3AAC';
-        Report__c rac = new Report__c();
-        rac.Id = recordId;
-        List<Report__c> r = [select Id,OwnerId from Report__c where Id = :recordId limit 1];
-        System.debug(r);
-        if (isVOC == 'VOC') {
-            // VOC瀵惧繙鑰呫伄绲岀悊閮ㄩ暦绶忕洠銈掕ō瀹�
-            User[] records = [SELECT Id, Job_Category__c, JingliApprovalManager__c, SalesManager__c, BuchangApprovalManager__c, BuchangApprovalManagerSales__c, ZongjianApprovalManager__c FROM User WHERE Id = :personId];
-            if (records[0].job_Category__c == '閿�鍞湇鍔�') {
-                rac.VOC_jingli__c = records[0].JingliApprovalManager__c == null ? '' : records[0].JingliApprovalManager__c;
-                rac.VOC_buzhang__c = records[0].BuchangApprovalManager__c == null ? '' : records[0].BuchangApprovalManager__c;
-            } else {
-                rac.VOC_jingli__c = records[0].SalesManager__c == null ? '' : records[0].SalesManager__c;
-                rac.VOC_buzhang__c = records[0].BuchangApprovalManagerSales__c == null ? '' : records[0].BuchangApprovalManagerSales__c;
-            }
-            rac.VOC_zongjian__c = records[0].ZongjianApprovalManager__c == null ? '' : records[0].ZongjianApprovalManager__c;
-            rac.Status__c = '鍒ゅ畾瀹屾瘯';
-            rac.VOC_Finish__c = false;
-            Date serverTimestamp = Date.today();
-            rac.VOC_share_date__c = serverTimestamp;
-            // share
-            List<String> userAccess = new List<String>();
-            userAccess.add(rac.Responsible_Person__r.Id + '_Edit');
-            userAccess.add(rac.VOC_jingli__r.Id + '_Read');
-            userAccess.add(rac.VOC_buzhang__r.Id + '_Read');
-            userAccess.add(rac.VOC_zongjian__r.Id + '_Read');
-            String rtn = ControllerUtil.setSObjectShare('Report__Share','VOCShare__c',recordId,userAccess,r[0].OwnerId);
-            if (rtn != 'OK') {
-                return;
-            }
-            update rac;
-            } else {
-                rac.Status__c = '瀹屾瘯';
-                rac.VOC_Finish__c = true;
-                update rac;
-            }
-            
-        Test.stopTest();
-        
-    }
-
-    static testMethod void methodName4(){
-        Test.startTest();
-        String recordId = 'a0B0l00000FDbTOEA1';
-        Report__c rac  = new Report__c();
-        rac.Id = recordId;
-        rac.Status__c = '鍥炵瓟瀹屾瘯';
-        update rac;
-        Test.stopTest();
-    }
-
-
-
-    static testMethod void methodName5(){
-        Test.startTest();
-        String recordId = 'a0B0l00000FDbTOEA1';
-        Report__c rac = new Report__c();
-        String Satisfy = '鏄�';
-        String Satisfy1 = '';
-        rac.Id = recordId;
-        if (Satisfy == '鏄�') {
-            rac.Status__c = '缁撴灉纭瀹屾瘯';
-            } else if (Satisfy == '鍚�') {
-            // 瀵惧繙绲愭灉锛堜竴鍥炵洰锛夈伀鍊ゃ仾銇戙倢銇般�佷竴鍥炵洰銇�屽惁銆嶃仺瑕嬨仾銇�
-            if (Satisfy1 != '鍚�') {
-            Report__c[] records = [SELECT Id, VOC_Satisfy__c, VOC_Unsatisfy_Reason__c, VOC_follow_up_result__c, VOC_solution_category__c FROM Report__c WHERE Id = :recordId];
-            rac.VOC_Satisfy__c = null;
-            rac.VOC_Unsatisfy_Reason__c = null;
-            rac.VOC_follow_up_result__c = null;
-            rac.VOC_solution_category__c = null;
-            rac.VOC_Satisfy1__c= records[0].VOC_Satisfy__c;
-            rac.VOC_Unsatisfy_Reason1__c = records[0].VOC_Unsatisfy_Reason__c;
-            rac.VOC_follow_up_result1__c = records[0].VOC_follow_up_result__c;
-            rac.VOC_solution_category1__c = records[0].VOC_solution_category__c;
-            rac.Status__c = '鑽夋涓�';
-            }
-            // 瀵惧繙绲愭灉锛堜竴鍥炵洰锛夈伀鍊ゃ亗銈屻伆銆佷簩鍥炵洰銇�屽惁銆嶃仺瑕嬨仾銇�
-            else {
-            rac.Status__c = '缁撴灉纭瀹屾瘯';
-            }
-            }
-        update rac;
-        Test.stopTest();
+        ReportController.initForASACEditorButton(rep.Id);
+        ReportController.initForASRCEditorButton(rep.Id);
+        ReportController.initForCancelButton(rep.Id);
+        ReportController.initForCompleteButton(rep.Id);
+        ReportController.initForNewOnLineSurveyButton(rep.Id);
+        ReportController.initForOCSMNoToReportButton(rep.Id);
+        ReportController.initForOCSMToReportButton(rep.Id);
+        ReportController.initForOPDReportButton(re.Id);
+        ReportController.initForOPDReportConsumButton(ca.Id);
+        ReportController.initForOPDtoSISButton(rep.Id);
+        ReportController.initForSIStoOPDButton(rep.Id);
+        ReportController.initForSubmitCompetitorReportButton(rep.Id);
+        ReportController.initForVOCAnswerButton(rep.Id);
+        ReportController.initForVOCCheckButton(rep.Id);
+        ReportController.initForVOCConfirmButton(rep.Id);
+        ReportController.initForVOCFinishButton(rep.Id);
+        ReportController.initForVOCSubmitButton(rep.Id);
+        ReportController.updateForCancelButton(rep.Id);
+        ReportController.updateForCancelButton('');
+        ReportController.updateForCancelSubmitReportButton(rep.Id);
+        ReportController.updateForCancelSubmitReportButton('');
+        ReportController.updateForCompleteButton(rep.Id);
+        ReportController.updateForCompleteButton('');
+        ReportController.updateForDispatchOCSMQARAButton(rep.Id);
+        ReportController.updateForDispatchOCSMQARAButton('');
+        ReportController.updateForOCSMNoToReportButton(rep.Id);
+        ReportController.updateForOCSMNoToReportButton('');
+        ReportController.updateForOCSMToReportButton(rep.Id);
+        ReportController.updateForOCSMToReportButton('');
+        ReportController.updateForOPDtoSISButton(rep.Id);
+        ReportController.updateForOPDtoSISButton('');
+        ReportController.updateForSIStoOPDButton(rep.Id);
+        ReportController.updateForSIStoOPDButton('');
+        ReportController.updateForSubmitButton(rep.Id);
+        ReportController.updateForSubmitButton('');
+        ReportController.updateForSubmitCompetitorReportButton(rep.Id);
+        ReportController.updateForSubmitCompetitorReportButton('');
+        ReportController.updateForVOCAnswerButton(rep.Id);
+        ReportController.updateForVOCAnswerButton('');
+        ReportController.updateForVOCCheckButton(rep.Id,'VOC',UserInfo.getUserId());
+        ReportController.updateForVOCConfirmButton(rep.Id,'鍚�', '鏄�');
+        ReportController.updateForVOCFinishButton(rep.Id);
+        ReportController.updateForVOCFinishButton('');
+        ReportController.updateForVOCSubmitButton(rep.Id, UserInfo.getUserId());
+        Test.stopTest();    
     }
     
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/lexPCLLostReportLwcController.cls b/force-app/main/default/classes/lexPCLLostReportLwcController.cls
index 7e42d0e..aa1edac 100644
--- a/force-app/main/default/classes/lexPCLLostReportLwcController.cls
+++ b/force-app/main/default/classes/lexPCLLostReportLwcController.cls
@@ -399,6 +399,27 @@
 					}
 				}
 			}
+			if (report.lostReport.Report_Status__c != '鑽夋') {
+				ProcessInstance pro = [
+				SELECT 
+				ProcessDefinition.Name,
+				 (
+					SELECT 
+					Id,
+					StepStatus, 
+					IsPending,
+					Comments,
+					CreatedDate,
+					Actor.Name,  
+					OriginalActor.Name,
+					ProcessNode.Name FROM StepsAndWorkitems order by IsPending DESC, CreatedDate DESC 
+				)
+				FROM ProcessInstance where TargetObjectId =:reportId order by CreatedDate DESC
+				];
+				List<ProcessInstanceHistory> items = new List<ProcessInstanceHistory>();
+				items.addall(pro.StepsAndWorkitems);
+				report.approvalHistorys = items;
+			}
 			// lostReportId = report.lostReport.id;
 			system.debug('save---end:');
 			messageMap.put('LostReport',JSON.serialize(report));
diff --git a/force-app/main/default/classes/lexSolutionProjectRequirementsController.cls b/force-app/main/default/classes/lexSolutionProjectRequirementsController.cls
index 0b4b579..1190457 100644
--- a/force-app/main/default/classes/lexSolutionProjectRequirementsController.cls
+++ b/force-app/main/default/classes/lexSolutionProjectRequirementsController.cls
@@ -1,22 +1,45 @@
 public with sharing class lexSolutionProjectRequirementsController {
     @AuraEnabled
-    public static InitData initSubmitSolutionForApprovalButton(String recordId){
+    public static Map<String,Object> initSubmitSolutionForApprovalButton(String recordId){
         InitData res = new InitData();
+        Map<String,Object> maps = new Map<String,Object>();
         try {
             SolutionProjectRequirements__c so = [
                 select
                 Status__c,
                 Submit_Date_YouWant__c,
                 CreatedDate,
-                Department_Class__r.Id,
+                Department_Class__c,
                 Product_Leader__c
                 from SolutionProjectRequirements__c where Id =: recordId
             ];
             res.status = so.Status__c;
             res.submitDateYouWant = so.Submit_Date_YouWant__c;
             res.createdDate = so.CreatedDate;
-            res.departmentClassId = so.Department_Class__r.Id;
+            res.departmentClassId = so.Department_Class__c;
             res.productLeader = so.Product_Leader__c;
+            res.userId = UserInfo.getUserId();
+            res.userName = UserInfo.getUserName();
+            maps.put('res', res);
+        } catch (Exception e) {
+            String message = e.getMessage();
+            maps.put('error', message);
+            return maps;
+        }
+        return maps;
+    }
+    @AuraEnabled
+    public static InitData initForApplyAgainButton(String recordId){
+        InitData res = new InitData();
+        try {
+            SolutionProjectRequirements__c so = [
+                select
+                Department_Class__c,
+                Hospital__c
+                from SolutionProjectRequirements__c where Id =: recordId
+            ];
+            res.hospital = so.Hospital__c;
+            res.departmentClass = so.Department_Class__c;
         } catch (Exception e) {
             throw new AuraHandledException(e.getMessage());
         }
@@ -34,7 +57,7 @@
             ]; 
             res.status = so.Status__c;
             res.profileId = UserInfo.getProfileId();
-            res.m2ProfileId = lexLightingButtonConstant.M2_PROFILE_NAME;
+            res.m2ProfileId = [select Id from Profile where Name =: lexLightingButtonConstant.M2_PROFILE_NAME].Id;
         } catch (Exception e) {
             throw new AuraHandledException(e.getMessage());
         }
@@ -133,5 +156,11 @@
         public String profileId;
         @AuraEnabled
         public String m2ProfileId;
+        @AuraEnabled
+        public String oldProjectNo;
+        @AuraEnabled
+        public String departmentClass;
+        @AuraEnabled
+        public String hospital;
     }
 }
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexApplyAgainLwc/__tests__/lexApplyAgainLwc.test.js b/force-app/main/default/lwc/lexApplyAgainLwc/__tests__/lexApplyAgainLwc.test.js
new file mode 100644
index 0000000..c3fde95
--- /dev/null
+++ b/force-app/main/default/lwc/lexApplyAgainLwc/__tests__/lexApplyAgainLwc.test.js
@@ -0,0 +1,25 @@
+import { createElement } from 'lwc';
+import LexApplyAgainLwc from 'c/lexApplyAgainLwc';
+
+describe('c-lex-apply-again-lwc', () => {
+    afterEach(() => {
+        // The jsdom instance is shared across test cases in a single file so reset the DOM
+        while (document.body.firstChild) {
+            document.body.removeChild(document.body.firstChild);
+        }
+    });
+
+    it('TODO: test case generated by CLI command, please fill in test logic', () => {
+        // Arrange
+        const element = createElement('c-lex-apply-again-lwc', {
+            is: LexApplyAgainLwc
+        });
+
+        // Act
+        document.body.appendChild(element);
+
+        // Assert
+        // const div = element.shadowRoot.querySelector('div');
+        expect(1).toBe(1);
+    });
+});
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.html b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.html
new file mode 100644
index 0000000..9413ea3
--- /dev/null
+++ b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.html
@@ -0,0 +1,14 @@
+<!--
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-06-30 17:55:39
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-06-30 17:56:38
+-->
+<template>
+    <div class="cancelReportHolder" if:true={IsLoading}>
+        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
+    </div> 
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js
new file mode 100644
index 0000000..ca769de
--- /dev/null
+++ b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js
@@ -0,0 +1,64 @@
+/*
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-06-30 17:55:39
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-07-07 16:22:25
+ */
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import init  from '@salesforce/apex/lexSolutionProjectRequirementsController.initForApplyAgainButton';
+import { NavigationMixin } from 'lightning/navigation';
+import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
+
+export default class LexApplyAgainLwc extends NavigationMixin(LightningElement) {
+    @api recordId;
+    departmentClassId;
+    hospitalId;
+    @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;
+           }
+         }
+     }
+     connectedCallback(){
+        init({
+            recordId: this.recordId
+        }).then(result=>{
+            console.log(result);
+            this.departmentClassId = result.departmentClass;
+            this.hospitalId = result.hospital;
+            this.ApplyAgain();
+        });
+     }
+     ApplyAgain(){
+      const defaultValues = encodeDefaultFieldValues({
+        old_Project_No__c: this.recordId,
+        Department_Class__c: this.departmentClassId,
+        Hospital__c: this.hospitalId
+      });
+      this[NavigationMixin.Navigate]({
+          type: 'standard__objectPage',
+          attributes: {
+              objectApiName: 'SolutionProjectRequirements__c',
+              actionName: 'new'
+          },
+          state: {
+              nooverride: '1',
+              defaultFieldValues: defaultValues
+          }
+      });
+      this.dispatchEvent(new CloseActionScreenEvent());
+     }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js-meta.xml b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js-meta.xml
new file mode 100644
index 0000000..329e839
--- /dev/null
+++ b/force-app/main/default/lwc/lexApplyAgainLwc/lexApplyAgainLwc.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+		<target>lightning__RecordPage</target>
+		<target>lightning__AppPage</target>
+		<target>lightning__HomePage</target>
+		<target>lightning__RecordAction</target>
+	</targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCBLBPNewLwc/lexCBLBPNewLwc.js b/force-app/main/default/lwc/lexCBLBPNewLwc/lexCBLBPNewLwc.js
index ee27015..9418659 100644
--- a/force-app/main/default/lwc/lexCBLBPNewLwc/lexCBLBPNewLwc.js
+++ b/force-app/main/default/lwc/lexCBLBPNewLwc/lexCBLBPNewLwc.js
@@ -7,23 +7,23 @@
 import { NavigationMixin } from 'lightning/navigation';
 import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
 
-export default class LexCBLBPNewLwc extends LightningElement {
+export default class LexCBLBPNewLwc extends NavigationMixin(LightningElement) {
     @api recordId;
-    @wire(CurrentPageReference)
-    getStateParameters(currentPageReference) {
-            console.log(111);
-            console.log(currentPageReference);
+    // @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;
-          }
-        }
-    }
+    //     if (currentPageReference) {
+    //       const urlValue = currentPageReference.state.recordId;
+    //       if (urlValue) {
+    //         let str = `${urlValue}`;
+    //         console.log("str");
+    //         console.log(str);
+    //         this.recordId = str;
+    //       }
+    //     }
+    // }
     connectedCallback(){
       this.CBLBPNewLwc();
     }
diff --git a/force-app/main/default/lwc/lexClosingCaseFlow/lexClosingCaseFlow.js b/force-app/main/default/lwc/lexClosingCaseFlow/lexClosingCaseFlow.js
index 48030b9..c9869b7 100644
--- a/force-app/main/default/lwc/lexClosingCaseFlow/lexClosingCaseFlow.js
+++ b/force-app/main/default/lwc/lexClosingCaseFlow/lexClosingCaseFlow.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-21 11:23:56
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-21 17:51:15
+ * @LastEditTime: 2023-07-07 13:29:49
  */
 import { api, wire,LightningElement } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
diff --git a/force-app/main/default/lwc/lexCopyReport/__tests__/lexCopyReport.test.js b/force-app/main/default/lwc/lexCopyReport/__tests__/lexCopyReport.test.js
new file mode 100644
index 0000000..3cc5613
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyReport/__tests__/lexCopyReport.test.js
@@ -0,0 +1,25 @@
+import { createElement } from 'lwc';
+import LexCopyReport from 'c/lexCopyReport';
+
+describe('c-lex-copy-report', () => {
+    afterEach(() => {
+        // The jsdom instance is shared across test cases in a single file so reset the DOM
+        while (document.body.firstChild) {
+            document.body.removeChild(document.body.firstChild);
+        }
+    });
+
+    it('TODO: test case generated by CLI command, please fill in test logic', () => {
+        // Arrange
+        const element = createElement('c-lex-copy-report', {
+            is: LexCopyReport
+        });
+
+        // Act
+        document.body.appendChild(element);
+
+        // Assert
+        // const div = element.shadowRoot.querySelector('div');
+        expect(1).toBe(1);
+    });
+});
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCopyReport/lexCopyReport.html b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.html
new file mode 100644
index 0000000..40422e8
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.html
@@ -0,0 +1,5 @@
+<template>
+    <div class="copyHolder" if:true={IsLoading}>
+        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js
new file mode 100644
index 0000000..f35fb75
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js
@@ -0,0 +1,46 @@
+/*
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-07-03 17:04:07
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-07-03 17:55:07
+ */
+import { api, wire,LightningElement } from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { updateRecord } from 'lightning/uiRecordApi';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { NavigationMixin } from 'lightning/navigation';
+
+export default class LexCopyReport extends NavigationMixin(LightningElement) {
+    @api recordId;
+    @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;
+          }
+        }
+    }
+    connectedCallback(){
+        this[NavigationMixin.Navigate]({
+            type: 'standard__objectPage',
+            attributes: {
+                objectApiName: 'Report__c',
+                actionName: 'clone',
+                recordId: this.recordId
+            },
+            state: {
+                nooverride: '1'
+            }
+        });
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js-meta.xml b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js-meta.xml
new file mode 100644
index 0000000..329e839
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyReport/lexCopyReport.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+		<target>lightning__RecordPage</target>
+		<target>lightning__AppPage</target>
+		<target>lightning__HomePage</target>
+		<target>lightning__RecordAction</target>
+	</targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexNewOnLineSurvey/lexNewOnLineSurvey.js b/force-app/main/default/lwc/lexNewOnLineSurvey/lexNewOnLineSurvey.js
index 915e1a1..c4a2a1c 100644
--- a/force-app/main/default/lwc/lexNewOnLineSurvey/lexNewOnLineSurvey.js
+++ b/force-app/main/default/lwc/lexNewOnLineSurvey/lexNewOnLineSurvey.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-29 13:45:26
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-29 16:43:33
+ * @LastEditTime: 2023-07-07 09:12:29
  */
 /*
  * @Description: 
@@ -14,7 +14,7 @@
  * @LastEditors: chen jing wu
  * @LastEditTime: 2023-06-29 14:29:53
  */
-import { api, wire,LightningElement } from 'lwc';
+import { api, wire,LightningElement, track } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
 import { CloseActionScreenEvent } from 'lightning/actions';
 import { updateRecord } from 'lightning/uiRecordApi';
@@ -30,6 +30,7 @@
     ownerId;
     selectedRecordTypeId;
     IsLoading = true;
+    @track recordTypeOptions;
     @wire(getObjectInfo, { objectApiName: 'On_Line_Survey__c' })
     objectInfo({ error, data }) {
       if (data) {
@@ -60,6 +61,7 @@
         init({
             recordId: this.recordId
         }).then(result=>{
+            console.log(result);
             this.date = result.datec;
             this.practitioner1 = result.practitioner1;
             this.ownerId = result.ownerId;
diff --git a/force-app/main/default/lwc/lexNewOpportunityAgency/lexNewOpportunityAgency.js b/force-app/main/default/lwc/lexNewOpportunityAgency/lexNewOpportunityAgency.js
index f038f63..1caae11 100644
--- a/force-app/main/default/lwc/lexNewOpportunityAgency/lexNewOpportunityAgency.js
+++ b/force-app/main/default/lwc/lexNewOpportunityAgency/lexNewOpportunityAgency.js
@@ -217,8 +217,7 @@
                                                 Agency__c: this.agency1Id,
                                                 StageName__c: this.opportunityStage,
                                                 Change_To_Opportunity__c: this.recordId,
-                                                Department_Cateogy__c: this.opportunityCategory,
-                                                RecordTypeId: recTypeId
+                                                Department_Cateogy__c: this.opportunityCategory
                                             });
                                             this[NavigationMixin.Navigate]({
                                                 type: 'standard__objectPage',
@@ -229,6 +228,7 @@
                                                 state: {
                                                     nooverride: '1',
                                                     defaultFieldValues: defaultValues,
+                                                    recordTypeId: recTypeId
                                                 }
                                             });
                                             this.dispatchEvent(new CloseActionScreenEvent());
diff --git a/force-app/main/default/lwc/lexNewSolutionProgramma/lexNewSolutionProgramma.js b/force-app/main/default/lwc/lexNewSolutionProgramma/lexNewSolutionProgramma.js
index 180c7c9..3eccebc 100644
--- a/force-app/main/default/lwc/lexNewSolutionProgramma/lexNewSolutionProgramma.js
+++ b/force-app/main/default/lwc/lexNewSolutionProgramma/lexNewSolutionProgramma.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-26 11:10:52
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-26 14:18:17
+ * @LastEditTime: 2023-07-10 14:11:57
  */
 
 import { api, wire,LightningElement } from 'lwc';
@@ -17,7 +17,7 @@
 import { NavigationMixin } from 'lightning/navigation';
 import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
 
-export default class LexNewSolutionProgramma extends LightningElement {
+export default class LexNewSolutionProgramma extends NavigationMixin(LightningElement) {
   @api recordId;
   status;
   girWindowDirectorApproved;
@@ -51,6 +51,7 @@
     init({
       recordId: this.recordId
     }).then(result=>{
+      console.log(result);
       this.status = result.status;
       this.girWindowDirectorApproved = result.girWindowDirectorApproved;
       this.hospitalOwnerId = result.hospitalOwnerId;
@@ -59,7 +60,10 @@
       this.newSolutionProgramma();
     });
   }
-  newSolutionProgramma(){ 
+  newSolutionProgramma(){
+    this.profileId = this.m2profileId; 
+    this.girWindowDirectorApproved = true;
+    console.log(this.profileId != this.m2profileId);
     if(this.profileId != this.m2profileId){
       this.showToast('鍙湁GIR绐楀彛鎵嶈兘鏂板缓鏂规','error');
       this.dispatchEvent(new CloseActionScreenEvent());
@@ -67,13 +71,16 @@
       this.showToast('缁撴鍚庝笉鑳芥柊寤烘柟妗�','error');
       this.dispatchEvent(new CloseActionScreenEvent());
     }else if(this.status == '01鑽夋涓�' || this.status == '02闇�姹傚凡鎻愪氦'){
+      this.dispatchEvent(new CloseActionScreenEvent());
     }else if(!this.girWindowDirectorApproved){
       this.showToast('椤圭洰闇�姹傝繕鏈�氳繃瀹℃壒涓嶈兘鏂板缓鏂规','error');
       this.dispatchEvent(new CloseActionScreenEvent());
     }else{
+      console.log("start");
+      console.log(this.hospitalOwnerId);
       const defaultValues = encodeDefaultFieldValues({
-        SolutionProjectRequirements__c: this.recordId == undefined ? '' : this.recordId,
-        Business_Promotion__c: this.hospitalOwnerId == undefined ? '' : this.hospitalOwnerId
+        SolutionProjectRequirements__c: this.recordId,
+        Business_Promotion__c: this.hospitalOwnerId
       });
       this[NavigationMixin.Navigate]({
           type: 'standard__objectPage',
diff --git a/force-app/main/default/lwc/lexNewSolutonProLwc/lexNewSolutonProLwc.js b/force-app/main/default/lwc/lexNewSolutonProLwc/lexNewSolutonProLwc.js
index 0b84430..9b22f13 100644
--- a/force-app/main/default/lwc/lexNewSolutonProLwc/lexNewSolutonProLwc.js
+++ b/force-app/main/default/lwc/lexNewSolutonProLwc/lexNewSolutonProLwc.js
@@ -39,6 +39,7 @@
         init({
             recordId: this.accountId
         }).then(result=>{
+            console.log(result);
             this.hospitalId = result.hospitalId;
             this.hospitalOCMCategory = result.hospitalOCMCategory;
             this.hospitalSalesdepartmentHP = result.hospitalSalesdepartmentHP;
diff --git a/force-app/main/default/lwc/lexOPDReport/lexOPDReport.js b/force-app/main/default/lwc/lexOPDReport/lexOPDReport.js
index 5ff2566..50883e0 100644
--- a/force-app/main/default/lwc/lexOPDReport/lexOPDReport.js
+++ b/force-app/main/default/lwc/lexOPDReport/lexOPDReport.js
@@ -53,6 +53,7 @@
             recordId: this.recordId
         }).then(result=>{
             console.log(result);
+            console.log("start");
             this.assetReturnDay2 = result.assetReturnDay2;
             this.demoPurpose2 = result.demoPurpose2;
             this.followUPOpp = result.followUPOpp;
@@ -74,21 +75,6 @@
             this.dispatchEvent(new CloseActionScreenEvent());
             return;
         }
-
-        //var d = new Date("{!Rental_Apply__c.Asset_return_day2__c}");
-        //var d15 = new Date("{!Rental_Apply__c.Asset_return_day2__c}");
-        //d15.setDate(d.getDate()+7);
-        //if(status == "宸插洖瀵�" && ( new Date()< d || new Date() > d15)){
-        // alert("澶囧搧鍊熷嚭鐘舵��:" + status + "锛屼絾涓嶅湪鍥炲瘎鏃ヤ箣鍚�7澶╀箣鍐咃紝涓嶈兘鍒涘缓鎶ュ憡涔︼紒");
-        // return;
-        //}
-        //2021/7/15 fxk Start
-        // var str;
-        // var url;
-
-        // str='&RecordType=01210000000RLTi';
-        // url = '/a0B/e?retURL=%2Fa0B%2Fo'+str;
-
         //2021/7/15 fxk End
 
         //SWAG-BVW8CW 20201217 璁﹗ser鑷繁閫夋嫨recordtype
@@ -96,6 +82,7 @@
         var demo_purpose2 = this.demoPurpose2;
         // var strs ;
         if(demo_purpose2=='璇曠敤锛堟湁璇环锛�'){
+            console.log('y');
             const defaultValues = encodeDefaultFieldValues({
                 Loaner_request_no1__c: this.recordId, // 鍏宠仈涓昏褰� ID
                 Hospital_Reference__c: this.hospital,
@@ -119,11 +106,9 @@
                 }
             });
             this.dispatchEvent(new CloseActionScreenEvent());
-            // strs='&CF00N10000002DT68=' + this.followUPOpp +
-            // '&CF00N10000002DT68_lkid=' + this.followUPOppId +
-            // '&00N10000002DHk5=璺熻繘璇环'
             return;
         }
+        console.log('n');
         //Before Update by LiJun 20220321 end
         //After Update by LiJun 20220321 start
         const defaultValues = encodeDefaultFieldValues({
@@ -146,16 +131,6 @@
             }
         });
         this.dispatchEvent(new CloseActionScreenEvent());
-        // url = url + '&CF00N10000004maf3=' + this.name +
-        // '&CF00N10000004maf3_lkid=' + this.recordId +
-        // '&CF00N10000002DPUD=' + this.hospital +
-        // '&CF00N10000002DPUD_lkid=' + this.hospitalId +
-        // '&CF00N10000002Dh0f=' + this.strategicDept +
-        // '&CF00N10000002Dh0f_lkid='+ this.strategicDeptId +
-        // '&CF00N10000008ps6d=' + this.opdPlan +
-        // '&CF00N10000008ps6d_lkid=' + this.opdPlanId +
-        // '&CF00N10000002CWW4=' + this.account +
-        // '&CF00N10000002CWW4_lkid=' + this.accountId;
         //After Update by LiJun 20220321 end
     }
 }
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.html b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.html
new file mode 100644
index 0000000..baf40f0
--- /dev/null
+++ b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.html
@@ -0,0 +1,5 @@
+<template>
+    <div class="holder" if:true={IsLoading}>
+	    <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+	</div> 
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js
new file mode 100644
index 0000000..674b4cf
--- /dev/null
+++ b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js
@@ -0,0 +1,124 @@
+/*
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-06-09 16:41:45
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-07-06 09:34:39
+ */
+import { LightningElement,api, track, wire } from 'lwc';
+import {CurrentPageReference} from 'lightning/navigation';
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { NavigationMixin } from 'lightning/navigation';
+import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
+import init from '@salesforce/apex/ReportController.initForOPDReportConsumButton';
+
+export default class LexOPDReportConsum extends NavigationMixin(LightningElement) {
+    @api recordId;
+    raStatus;
+    productCategory;
+    hospital;
+    strategicDept;
+    account;
+    consumApplyId;
+    recordTypeId;
+    recordTypeId1;
+    msg;
+    Isloading = true;
+
+    @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;
+          }
+        }
+    }
+    showToast(msg,type) {
+        const event = new ShowToastEvent({
+            title: '',
+            message: msg,
+            variant: type
+        });
+        this.dispatchEvent(event);
+        this.dispatchEvent(new CloseActionScreenEvent());
+    }
+    updateRecordView(recordId) {
+        updateRecord({fields: { Id: recordId }});
+    }
+
+    connectedCallback(){
+        init({
+            recordId: this.recordId
+        }).then(result=>{
+            this.raStatus = result.raStatus;
+            this.productCategory = result.productCategory;
+            this.hospital = result.hospital;
+            this.strategicDept = result.strategicDept;
+            this.account = result.account;
+            this.consumApplyId = result.consumApplyId;   
+            this.recordTypeId = result.recordTypeId;
+            this.recordTypeId1 = result.recordTypeId1;
+            this.OPDReportConsum();
+        });
+    }
+
+    OPDReportConsum(){
+        var status = this.raStatus;
+        if(status != "宸插嚭搴�" && status != "鐢宠鑰呭凡鏀惰揣" && status != "寰呮秷鑰�" && status != "宸插洖瀵�" && status != "瀹屼簡"){
+            this.msg = "鑰楁潗鍊熷嚭鐘舵��:" + status + "锛屼笉鑳藉垱寤烘姤鍛婁功锛�";
+            this.showToast(this.msg,'error');
+            return;
+        }
+        var Product_category = this.productCategory;
+        var strs ;
+        var url
+        if(Product_category =='ET'){
+            const defaultValues = encodeDefaultFieldValues({
+                Consum_Apply__c: this.recordId, // 鍏宠仈涓昏褰� ID
+                Hospital_Reference__c: this.hospital,
+                Department_Class_Ref__c: this.strategicDept,
+                Hospital_Department__c: this.account
+            });
+            this[NavigationMixin.Navigate]({
+                type: 'standard__objectPage',
+                attributes: {
+                    objectApiName: 'Report__c',
+                    actionName: 'new'
+                },
+                state: {
+                    nooverride: '1',
+                    defaultFieldValues: defaultValues,
+                    recordTypeId: this.recordTypeId
+                }
+            });
+        }else if(Product_category =='DISP'){
+            const defaultValues = encodeDefaultFieldValues({
+                Consum_Apply__c: this.recordId, // 鍏宠仈涓昏褰� ID
+                Hospital_Reference__c: this.hospital,
+                Department_Class_Ref__c: this.strategicDept,
+                Hospital_Department__c: this.account
+            });
+            this[NavigationMixin.Navigate]({
+                type: 'standard__objectPage',
+                attributes: {
+                    objectApiName: 'Report__c',
+                    actionName: 'new'
+                },
+                state: {
+                    nooverride: '1',
+                    defaultFieldValues: defaultValues,
+                    recordTypeId: this.recordTypeId1
+                }
+            });
+        }
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js-meta.xml b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js-meta.xml
new file mode 100644
index 0000000..768aca4
--- /dev/null
+++ b/force-app/main/default/lwc/lexOPDReportConsum/lexOPDReportConsum.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+	<isExposed>true</isExposed>
+    <targets> 
+        <target>lightning__AppPage</target> 
+        <target>lightning__RecordPage</target> 
+        <target>lightning__HomePage</target> 
+        <target>lightning__RecordAction</target> 
+    </targets> 
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
index d944675..81008b3 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
@@ -7,7 +7,13 @@
     margin-right: 10px;
 }
 
-
+/* .holder{
+	position: relative;
+	display: inline-block;
+	width: 80px;
+	height: 80px;
+	text-align: center;
+} */
 .my-combobox {
     display: flex;
     align-items: center; 
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
index b980dda..9b4e30b 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
@@ -4,9 +4,12 @@
  * @Author: chen jing wu
  * @Date: 2023-04-20 17:16:48
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-30 10:06:30
+ * @LastEditTime: 2023-07-10 16:53:54
 -->
 <template>
+    <div class="holder" if:true={IsLoading}>
+        <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+    </div>
     <template if:true={isInit}>
         <template if:true={isCreateOrEdit}>
             <lightning-card id="my-element1" class="card"  variant="Narrow" data-id="my-card">
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
index 16e8c29..49ec240 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-04-20 15:04:03
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-30 09:55:38
+ * @LastEditTime: 2023-07-10 17:41:12
  */
 const columns2=[
     { label: '--鏃�--', value: '' },
@@ -88,6 +88,8 @@
     isSubmit = false;
     deleteBrandIdList = [];
     deleteProductIdList = [];
+    IsLoading;
+    newApprovalHistorys;
     connectedCallback(){
         init({
             oppId1: this.oppId,
@@ -108,7 +110,9 @@
                 this.LostReport = report;
                 this.LostReport.lostReport.LostTotalAmount__c = 0.0;
                 this.LostReport.lostReport.InclusionUltrasound__c = '0';
+
                 this.newProduct = JSON.parse(JSON.stringify(this.LostReport.LostBrands[0].LostProducts[0]));
+                this.newApprovalHistorys = JSON.parse(JSON.stringify(this.LostReport.approvalHistorys));
                 console.log(this.LostReport);
                 this.isInit = true;
             }
@@ -240,6 +244,7 @@
     }
     submitJs() {
         console.log('1');
+        this.IsLoading = true;
         submit({
             report1: JSON.stringify(this.LostReport),
             reportId: this.reportId
@@ -259,7 +264,9 @@
                 this.submitFlag = JSON.parse(JSON.stringify(result.submitFlag));
                 console.log(this.LostReport);
                 this.updateRecordView(this.reportId);
+                this.LostReport.lostReport.Report_Status__c = '鐢宠涓�';
             }
+            this.IsLoading = false;
         }).catch(error=>{
             console.log("error");
             console.log(error);
@@ -367,23 +374,27 @@
     }
     cancel() {
         // Navigate to the specified opportunity page using the NavigationMixin
-            this[NavigationMixin.Navigate]({
-                type: 'standard__recordPage',
-                attributes: {
-                    recordId: this.oppId,
-                    actionName: 'view'
-                }
-            });
+        this[NavigationMixin.Navigate]({
+            type: 'standard__recordPage',
+            attributes: {
+                recordId: this.oppId,
+                actionName: 'view'
+            }
+        });
     }
    
     saveBrandJs(event) {
+        this.IsLoading = true;
         this.dataCheck();
         if(!this.flag){
+            this.IsLoading = false;
             return;
         }
         console.log(this.LostReport);
+        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
+        newLostReport.approvalHistorys = this.newApprovalHistorys;
         dataEntry({
-            report1 : JSON.stringify(this.LostReport),
+            report1 : JSON.stringify(newLostReport),
             deleteBrandIdList: this.deleteBrandIdList,
             deleteProductIdList: this.deleteProductIdList
         }).then(result=>{
@@ -413,6 +424,7 @@
                 this.showToast('淇濆瓨鎴愬姛','success');
                 console.log(this.LostReport);
             }
+            this.IsLoading = false;
         }).catch(error=>{
             console.log("error");
             console.log(error);
diff --git a/force-app/main/default/lwc/lexSpecSubmit/lexSpecSubmit.js b/force-app/main/default/lwc/lexSpecSubmit/lexSpecSubmit.js
index 8faac9a..4ad66b6 100644
--- a/force-app/main/default/lwc/lexSpecSubmit/lexSpecSubmit.js
+++ b/force-app/main/default/lwc/lexSpecSubmit/lexSpecSubmit.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-06 15:41:32
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-06 16:40:51
+ * @LastEditTime: 2023-07-07 10:35:35
  */
 import { api, wire,LightningElement } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
@@ -69,10 +69,12 @@
 
         if((reason == '鎷涙爣璐ㄧ枒'||reason == '鍙栨秷鎷涙爣') && (file == false)){
             this.showToast('璇蜂笂浼犻檮浠躲��','error');
+            this.dispatchEvent(new CloseActionScreenEvent());
             return;
         }
         if(status != '鑽夋涓�'&& status != '椹冲洖'){
             this.showToast('褰撳墠鐘舵�佹棤娉曟彁浜ゅ鎵广��','error');
+            this.dispatchEvent(new CloseActionScreenEvent());
             return;
         }
         this.handleConfirmClick('涓�鏃︽彁浜ゆ璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵');
diff --git a/force-app/main/default/lwc/lexSpecilaApplyCreateAch/lexSpecilaApplyCreateAch.js b/force-app/main/default/lwc/lexSpecilaApplyCreateAch/lexSpecilaApplyCreateAch.js
index 342acc2..8261397 100644
--- a/force-app/main/default/lwc/lexSpecilaApplyCreateAch/lexSpecilaApplyCreateAch.js
+++ b/force-app/main/default/lwc/lexSpecilaApplyCreateAch/lexSpecilaApplyCreateAch.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-25 10:54:07
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-25 13:04:02
+ * @LastEditTime: 2023-07-07 11:22:38
  */
 import { LightningElement,api, track, wire } from 'lwc';
 import {CurrentPageReference} from 'lightning/navigation';
@@ -40,7 +40,7 @@
         }).then(result=>{
             console.log(result);
             this.oppId = result.oppId;
-            this.forecastStatus = result.forecastStatus;
+            this.forecastStatus = result.oppForecastStatus;
             this.recordTypeId = result.recordTypeId;
             this.specilaApplyCreateAch();
         });
@@ -60,7 +60,7 @@
             },
             state: {
                 defaultFieldValues: defaultValues,
-                RecordTypeId: this.recordTypeId
+                recordTypeId: this.recordTypeId
             }
         });
         this.dispatchEvent(new CloseActionScreenEvent());
diff --git a/force-app/main/default/lwc/lexSubmitSolutionForApproval/lexSubmitSolutionForApproval.js b/force-app/main/default/lwc/lexSubmitSolutionForApproval/lexSubmitSolutionForApproval.js
index 08d011f..e7c5194 100644
--- a/force-app/main/default/lwc/lexSubmitSolutionForApproval/lexSubmitSolutionForApproval.js
+++ b/force-app/main/default/lwc/lexSubmitSolutionForApproval/lexSubmitSolutionForApproval.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-06-20 14:37:24
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-06-20 17:50:52
+ * @LastEditTime: 2023-07-07 16:11:12
  */
 import { api, wire,LightningElement } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
@@ -58,13 +58,18 @@
         init({
             recordId: this.recordId
         }).then(result=>{
-            this.status = result.status;
-            this.submitDateYouWant = result.submitDateYouWant;
-            this.createdDate = result.createdDate;
-            this.departmentClassId = result.departmentClassId;
-            this.userId = result.userId;
-            this.userName = result.userName;
-            this.submitSolutionForApproval();
+            console.log(result);
+            if(result.res){
+                this.status = result.res.status;
+                this.submitDateYouWant = new Date(result.res.submitDateYouWant);
+                // this.createdDate = result.res.createdDate;
+                this.createdDate = new Date(result.res.createdDate);
+                this.productLeader = result.res.productLeader;
+                this.departmentClassId = result.res.departmentClassId;
+                this.userId = result.res.userId;
+                this.userName = result.res.userName;
+                this.submitSolutionForApproval();
+            }
         });
     }
 
@@ -74,24 +79,27 @@
             this.dispatchEvent(new CloseActionScreenEvent());
             return;
         }
+
         if(this.submitDateYouWant < this.createdDate + 3){
             this.showToast('甯屾湜鎻愪氦鏃ユ湡涓嶅緱灏忎簬涓夊ぉ锛屽绱ф�ラ渶姹傝閭欢鑱旂粶Solution鎷呭綋','error');
             this.dispatchEvent(new CloseActionScreenEvent());
             return;
         }
+        console.log("start");
         queryForAttachments({
             Id: this.departmentClassId
         }).then(result=>{
+            console.log("start");
             var records = result;
             var header = this.productLeader;
             var usrname = this.userName;
             var rtn = '';
-            if(header.contains(usrname.replaceAll(' ', ''))){
+            console.log("start");
+            if(header.includes(usrname)){
                 rtn = 'Y';
             }else{
                 rtn = 'N';
             }
-            
             if(records.length > 0){
                 if(rtn != 'Y' && this.userId != records[0].Department_Class__r.OwnerId && this.userId != records[0].Department_Class__r.Owner.SalesManager__c){
                     this.showToast('鍙厑鍏舵垬鐣ョ瀹や富鎷呫�佷骇鍝佹媴褰撳強鐪佺粡鐞嗘彁浜olution椤圭洰闇�姹傦紒','error');
@@ -99,8 +107,6 @@
                     return;
                 }
             }
-
-            //111111111111111111111111111111111111111111
             this.handleConfirmClick('涓�鏃︽彁浜ゆ璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵');
             
         });
@@ -135,6 +141,7 @@
                     return;
                 }
                 this.updateRecordView(this.recordId);
+                this.dispatchEvent(new CloseActionScreenEvent());
             });
             // isopd.Id = "{!SolutionProjectRequirements__c.Id}";
             // isopd.Submint_TF__c = true;
diff --git a/force-app/main/default/lwc/lexSubmitSolutionSchemeForApproval/lexSubmitSolutionSchemeForApproval.js b/force-app/main/default/lwc/lexSubmitSolutionSchemeForApproval/lexSubmitSolutionSchemeForApproval.js
index 91df026..479b649 100644
--- a/force-app/main/default/lwc/lexSubmitSolutionSchemeForApproval/lexSubmitSolutionSchemeForApproval.js
+++ b/force-app/main/default/lwc/lexSubmitSolutionSchemeForApproval/lexSubmitSolutionSchemeForApproval.js
@@ -1,3 +1,11 @@
+/*
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-06-21 09:17:25
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-07-07 16:35:41
+ */
 import { api, wire,LightningElement } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
 import { CloseActionScreenEvent } from 'lightning/actions';
diff --git a/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.html b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.html
new file mode 100644
index 0000000..27e0f69
--- /dev/null
+++ b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.html
@@ -0,0 +1,3 @@
+<template>
+    
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js
new file mode 100644
index 0000000..c050950
--- /dev/null
+++ b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js
@@ -0,0 +1,45 @@
+/*
+ * @Description: 鏂板缓璋冩嫧閲嶅啓 No. 榛樿* 
+ * @Author: [lijinhuan]
+ * @Date: 2023-07-03 15:55:28
+ * @LastEditors: [lijinhuan]
+ * @LastEditTime: 2023-07-07 09:50:38
+ */
+import { LightningElement,wire } from 'lwc';
+import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
+import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
+export default class LexTransferApplyNew extends NavigationMixin(LightningElement) {
+    recordTypeId;
+    @wire(CurrentPageReference)
+    getStateParameters(currentPageReference) {
+        if (currentPageReference) {
+            const urlValue = currentPageReference.state.recordTypeId;
+            console.log('****urlValue****',urlValue);
+            let str = `${urlValue}`;
+            this.recordTypeId = str;
+            console.log('****str****',str);
+            let defaultFieldValues = {};
+            defaultFieldValues['Name'] = '*';
+            let states = 
+                {
+                    nooverride: '1',
+                    navigationLocation: 'LIST_VIEW',
+                    backgroundContext: '/lightning/o/TransferApply__c/list?filterName=Recent&0.source=alohaHeader',
+                    defaultFieldValues: encodeDefaultFieldValues(defaultFieldValues),
+                };
+            if (urlValue) {
+                states['recordTypeId'] =  this.recordTypeId;
+                states['useRecordTypeCheck'] =  1;
+            }
+            this[NavigationMixin.Navigate]({
+                type: 'standard__objectPage',
+                attributes: {
+                    objectApiName: 'TransferApply__c',
+                    actionName: 'new'
+                },
+                state: states
+            });
+        }
+       
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js-meta.xml b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js-meta.xml
new file mode 100644
index 0000000..3fe0e73
--- /dev/null
+++ b/force-app/main/default/lwc/lexTransferApplyNew/lexTransferApplyNew.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>57.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html b/force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html
index cb84330..4c6138d 100644
--- a/force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html
+++ b/force-app/main/default/lwc/lexVOCSubmit/lexVOCSubmit.html
@@ -1,6 +1,14 @@
+<!--
+ * @Description: 
+ * @version: 
+ * @Author: chen jing wu
+ * @Date: 2023-06-14 16:06:52
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-07-12 13:50:00
+-->
 <template>
     <div class="vocSubmitHolder" if:true={IsLoading}>
         <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
-        <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button>
+        <!-- <lightning-button label="Show Toast" onclick={ShowToastEvent}></lightning-button> -->
     </div>
 </template>
\ No newline at end of file
diff --git a/force-app/main/default/pages/AssetModifyBelongs.page b/force-app/main/default/pages/AssetModifyBelongs.page
index e6f577c..439cb07 100644
--- a/force-app/main/default/pages/AssetModifyBelongs.page
+++ b/force-app/main/default/pages/AssetModifyBelongs.page
@@ -1,14 +1,16 @@
 <apex:page standardController="AssetModifyBelongsChange__c" extensions="AssetModifyBelongsController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="鏈�缁堢敤鎴峰彉鏇寸敵璇�" lightningStylesheets="true">
 <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
+<apex:stylesheet value="{!URLFOR($Resource.StyleUtilCss)}"/>
+
 <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
 <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
 <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
 <script>
+
 function ClearJs(){
     blockme();
     document.getElementById("allPage:allForm:allBlock:searchBlock:text1").value = "";
     document.getElementById("allPage:allForm:allBlock:searchBlock:val1").value = "";
-    
     searchConsumableorderdetails();
 }
 var selectedSize = 0;
@@ -136,7 +138,7 @@
         </apex:actionFunction>
          <apex:actionFunction name="DelConsumable" action="{!DelConsumable}" rerender="ConsumableorderdetailsSection, message" onComplete="unblockUI();CheckStatusAfter()">
         </apex:actionFunction>
-        <apex:actionFunction name="uploadingAttachmentJs" action="{!uploadingAttachment}" rerender="ConsumableorderdetailsSection, message" onComplete="unblockUI();CheckStatusAfter()">
+        <apex:actionFunction name="uploadingAttachmentJs" action="{!uploadingAttachmentLightning}" rerender="ConsumableorderdetailsSection, message" onComplete="unblockUI();CheckStatusAfter()">
         </apex:actionFunction>
         <apex:actionFunction name="returnChangePage" action="{!returnChangePage}" rerender="ConsumableorderdetailsSection, message" onComplete="unblockUI();CheckStatusAfter()">
         </apex:actionFunction>
@@ -145,12 +147,11 @@
         </apex:actionFunction>
         <!-- <apex:actionFunction name="UnabletoEdit" action="{!UnabletoEdit}" rerender="ConsumableorderdetailsSection, message" onComplete="unblockUI()">
         </apex:actionFunction> -->
-
         <apex:outputPanel id="allPanel">
             <apex:pageBlock id="allBlock" >
                 <apex:pageBlock id="EDCline_1" >
+                    <apex:commandButton style="display:none"/>
                     <apex:commandButton onclick="EditConsumable();"   value="缂栬緫" style="margin-left:30px;width:180px" rerender="dummy" rendered="{!!(editAble)}"  disabled="{!IF(ambc.Change_status__c='宸叉彁浜�'||ambc.Change_status__c='鎵瑰噯'||ambc.Change_status__c='椹冲洖',true,false)}"/>
-                   
                     <apex:commandButton onclick="SorderJs();"         value="鎻愪氦璁㈠崟" style="margin-left:30px;width:180px" rerender="dummy" rendered="{!!(editAble )}" disabled="{!IF(ambc.Change_status__c='宸叉彁浜�'||ambc.Change_status__c='鎵瑰噯',true,false)}"/>
                     <apex:commandButton onclick="saveJs();"           value="淇濆瓨鍙樻洿鐢宠鍗�" style="margin-left:30px;width:180px" rerender="dummy" rendered="{!IF((editAble) && ambc.Change_status__c !='椹冲洖',true,false)}" />
                     <apex:commandButton onclick="saveJs();"           value="淇濆瓨鍙樻洿鐢宠鍗�" style="margin-left:30px;width:180px" rerender="dummy" rendered="{!IF(ambc.Change_status__c='椹冲洖' && editAble,true,false)}" />
@@ -170,7 +171,7 @@
                             <col width="300px"/>
                         </colgroup>
 
-                        <tr>
+                        <tr style='line-height: 25px;'>
                             <td align="right" >鐢宠鍗曠紪鐮侊細</td>
                             <td align="left" ><apex:outputField id="OrderCode_out"  value="{!ambc.Name}" style="width:300px"/></td>
                             <td/>
@@ -178,7 +179,7 @@
                             <td align="left" ><apex:outputField id="OrderStatus_out" value="{!ambc.Change_status__c}" style="width:100px"/></td>
                             <td/>
                         </tr>
-                        <tr>
+                        <tr  style='line-height: 25px;'>
                             <td align="right" >鍘熷鎴凤細</td>
                             <td align="left" ><apex:outputField value="{!ambc.rawAccount__r.Name}"/></td>
                             <td/>
@@ -187,7 +188,7 @@
                             <td/>
                         </tr> 
                         
-                        <tr>
+                        <tr  style='line-height: 25px;'>
                             <apex:outputPanel rendered="{!checkUser}">
                                 <td align="right" >SPO琛ㄥ崟鍙凤細</td>
                                 <td align="left" ><apex:outputField value="{!ambc.SPOLink__c}"/></td>
@@ -200,7 +201,7 @@
                             </td>
                             <!-- CHAN-B9B68N Stop -->
                         </tr>
-                        <tr>
+                        <tr  style='line-height: 25px;'>
                             <td align="right">澶囨敞锛�</td>
                              <td align="left"><apex:outputField value="{!ambc.remark__c}" style="width:200px"/></td>
                             <!-- LZHU-BPJ8DF 20200513  Start -->
@@ -212,7 +213,7 @@
                             <!--  LZHU-BPJ8DF 20200513 End -->
                         </tr>
                         <!-- WLIG-BS7B4T ---20200806---update By rentongxiao---Start -->
-                        <tr>
+                        <tr  style='line-height: 25px;'>
                             <td align="right">鍏变韩锛�</td>
                              <td align="left"><apex:outputField value="{!ambc.share__c}" style="width:50px"/></td>
                             <td/>
@@ -251,7 +252,7 @@
                             id="val1" style="width:100px"/>
                             </td>
                             <td align="left"><div id="seachdiv">鍚堝悓缂栫爜绮剧‘鏌ヨ<apex:inputCheckbox value="{!checkexact}" id="RowCheckbox"/></div></td>
-                            <td><apex:commandButton value="淇濇湁璁惧鎼滅储" style="width: 100px;" onclick="searchProductJs('0');return false;" /></td>
+                            <td><apex:commandButton value="淇濇湁璁惧鎼滅储" style="width: 120px;" onclick="searchProductJs('0');return false;" /></td>
                             <td><input type="button" value="娓呯┖" style="width: 100px;" onclick="ClearJs();return false;" class="btn"/></td>
                             <td/>
                         </tr>
@@ -301,6 +302,7 @@
                  </apex:outputPanel>
                 <apex:pageBlock title="淇濇湁璁惧鎵�灞炲彉鏇存槑缁�" id="ConsumableorderdetailsSection">
                 <input type="hidden" id="allPage:allForm:allBlock:ConsumableorderdetailsSection:ConsumableorderdetailsCount" value="{!ConsumableorderdetailsviewCount}" />
+                <input type="hidden" id="allPage:allForm:allBlock:ConsumableorderdetailsSection:Id" value="{!Id}" />
                     <table class="list" border="0" cellpadding="0" cellspacing="0">
                         <tr class="headerRow">
                             <apex:variable var="v" value="" rendered="{!editAble}">
@@ -339,20 +341,22 @@
                     </table>
 
                 </apex:pageBlock>
+                
                 <!-- CHAN-BC6BV2 XHL AddStart 20190522 -->
-                <apex:pageBlock title="闄勪欢" id="accessory" rendered="{!isShow}">
+                <apex:pageBlock title="鏂囦欢" id="accessory" rendered="{!isShow}">
                 
                     <apex:pageBlockButtons location="top">
-                        <apex:commandButton value="闄勪欢涓婁紶"  onclick="uploadingAttachmentJs();" disabled="{!IF(ambc.Change_status__c='宸叉彁浜�'||ambc.Change_status__c='鎵瑰噯',true,false)}"/>
+                        <apex:commandButton value="鏂囦欢涓婁紶"  onclick="uploadingAttachmentJs();" disabled="{!IF(ambc.Change_status__c='宸叉彁浜�'||ambc.Change_status__c='鎵瑰噯',true,false)}"/>
                     </apex:pageBlockButtons>
-                    <apex:pageBlockTable value="{!attachments}" var="attachment" >
+                    
+                    <apex:pageBlockTable value="{!contents}" var="attachment" >
                         
                         
                         <apex:column headerValue="鏍囬" style="width: 33%">
-                            <apex:outputField value="{!attachment.Name}"/>
+                            <apex:outputField value="{!attachment.Title}"/>
                         </apex:column>
                         <apex:column headerValue="涓婃淇敼鏃堕棿" style="width: 33%">
-                            <apex:outputField value="{!attachment.CreatedDate}"/>
+                            <apex:outputField value="{!attachment.ContentModifiedDate}"/>
                         </apex:column>
                         <apex:column headerValue="鍒涘缓浜�" style="width: 33%">
                             <apex:outputField value="{!attachment.OwnerId}"/>
@@ -365,5 +369,6 @@
         </apex:outputPanel>
     </apex:form>
 <script>
+
 </script>
 </apex:page>
\ No newline at end of file
diff --git a/force-app/main/default/pages/AttachmentPreview.page b/force-app/main/default/pages/AttachmentPreview.page
index 0f6fdf5..b0c5f8a 100644
--- a/force-app/main/default/pages/AttachmentPreview.page
+++ b/force-app/main/default/pages/AttachmentPreview.page
@@ -1,6 +1,7 @@
-<apex:page action="{!init}" controller="AttachmentPreviewController" id="allPage" showheader="false" sidebar="false">
+<apex:page action="{!init}" controller="AttachmentPreviewController" id="allPage" showheader="false" sidebar="false" lightningStylesheets="true">
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}">
     </apex:stylesheet>
+    <apex:stylesheet value="{!URLFOR($Resource.StyleUtilCss)}"/>
     <apex:includescript value="{!URLFOR($Resource.jquery183minjs)}">
     </apex:includescript>
     <apex:includescript value="{!URLFOR($Resource.PleaseWaitDialog)}">
@@ -115,18 +116,18 @@
     <body>
         <div style="height: 40px;background-color:#0f218b;width: 100%; ">
             <h1 style="color: white;margin-left: 45%;font-size: 24px;">
-               闄勪欢涓�瑙堣〃
+               鏂囦欢涓�瑙堣〃
             </h1>
         </div>
         <table class="pure-table pure-table-horizontal" id="theTable_header" styleclass="list" style="width: 100%">
             <thead>
                 <tr style="text-align: center;">
                     <th scope="col" style="width:60%; font-size: 13px;text-align: center;">
-                        闄勪欢鍚嶇О
+                        鏂囦欢鍚嶇О
                     </th>
                     <apex:variable rendered="{!IF(attachmentInfo.isShow,true,false)}" value="Society" var="Society">
                         <th scope="col" style="width: 40%;font-size: 13px;text-align: center;">
-                            闄勪欢绫诲瀷
+                            鏂囦欢绫诲瀷
                         </th>
                     </apex:variable>
                     <!--  <td scope="col" style="width: 40%;height: 30px;">
diff --git a/force-app/main/default/pages/DiscountProductApplicationTest.page b/force-app/main/default/pages/DiscountProductApplicationTest.page
new file mode 100644
index 0000000..e2b85bb
--- /dev/null
+++ b/force-app/main/default/pages/DiscountProductApplicationTest.page
@@ -0,0 +1,224 @@
+<apex:page standardController="DiscountProductApplication__c" extensions="DiscountProductApplicationController"  action="{!init}"  showHeader="false"   sidebar="true" id="dpaPage"  title="鐗逛环浜у搧鐢宠淇℃伅" lightningStylesheets="true">
+<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
+<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
+<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
+<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
+<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
+<apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
+    <script>
+function setFocusOnLoad() {}
+function bodyOnLoad(){setFocusOnLoad();}
+        function searchAimsAccount1(){
+            // openPopup('/apex/searchAimsAccount?accId={!dpa.RawAccount__c }', 'setsearch', 800, 600, 'width=900,height=600,scrollbars=yes,toolbar=no,status=no,directories=no,menubar=no,resizable=1', true);
+            var flag = {!ispage};
+            if (flag == true) {
+                // var accid = j$(escapeVfId('dpaPage:dpaForm:dpaBlock:rawAccountId_lkid')).value();
+                var accid = j$(escapeVfId('dpaPage:dpaForm:dpaBlock:rawAccountId')).value();
+                openPopup('/apex/searchAimsAccount?accName='+accid, 'setsearch', 800, 600, 'width=900,height=600,scrollbars=yes,toolbar=no,status=no,directories=no,menubar=no,resizable=1', true);
+            }else{
+                openPopup('/apex/searchAimsAccount?accId={!dpa.RawAccount__c }', 'setsearch', 800, 600, 'width=900,height=600,scrollbars=yes,toolbar=no,status=no,directories=no,menubar=no,resizable=1', true);
+            }
+
+        }
+
+        function checkAll() {
+            blockme(); 
+            selectedSize = 0;
+            var productCount = j$(escapeVfId('dpaPage:dpaForm:ConsumableorderdetailsSection:unCheckedDpadCount')).value();
+            if (j$(escapeVfId('checker')).attr('checked') == 'checked') {
+                for (var i = 0; i < productCount; i++) {
+                    j$(escapeVfId('dpaPage:dpaForm:ConsumableorderdetailsSection:Product2List:' + i + ':variableinfo' + ':Product2Check')).attr('checked',true);
+                    selectedSize ++;
+                    //alert(selectedSize);
+                }
+            } else {
+                //var outer = 0;
+                for (var i = 0; i < productCount; i++) {
+                    //outer = Math.floor(i / 1000);
+                    j$(escapeVfId('dpaPage:dpaForm:ConsumableorderdetailsSection:Product2List:' + i + ':variableinfo' + ':Product2Check')).attr('checked',false);
+                    //selectedSize --;
+                }
+            }
+        }
+        
+        // function pdValue(j){
+        //     var z;
+        //     var a = j.id;
+        //     var i=a.substring(0,a.lastIndexOf(':'));
+        //     z  =  parseFloat(j$(escapeVfId(i+':ProductDiscount')).value());
+        //     if(isNaN(z)){z=0.00;}
+        //     var y = parseFloat(j$(escapeVfId(i+':ProductDiscountmoney')).value());
+
+        //     if(y == null || (y != z && z!=null&&z!=0&&z!='')){
+        //     j$(escapeVfId(i+':variableinfo:Product2Check')).attr('checked',true);
+        //     }else{
+        //     j$(escapeVfId(i+':variableinfo:Product2Check')).attr('checked',false);
+        //     }
+        // }
+        function pdValue(j){
+            var a = j.id;
+            var i=a.substring(0,a.lastIndexOf(':'));
+            var strz = j$(escapeVfId(i+':ProductDiscount')).value();
+            strz = strz.replace(',','');
+            var z  =  parseFloat(strz+"");
+            console.log('z:'+z);
+            console.log('strz:'+strz);
+
+            var strOldValue = j$(escapeVfId(i+':ProductDiscountmoney')).value();
+
+            var oldValue = parseFloat(strOldValue);
+            console.log('oldValue:'+oldValue);
+            if (isNaN(z) && isNaN(oldValue)) {
+                j$(escapeVfId(i+':variableinfo:Product2Check')).attr('checked',false);
+
+            }else{
+                if (z != oldValue) {
+                    console.log('12');
+                    j$(escapeVfId(i+':variableinfo:Product2Check')).attr('checked',true);
+                }else if (z == oldValue) {
+                    j$(escapeVfId(i+':variableinfo:Product2Check')).attr('checked',false);
+                }
+            }
+            
+            
+            
+
+        }
+        function SearchJs(){
+
+        }
+
+        //add by rentx 2021-2-20
+        function searchAccount() {
+            // body...
+            openPopup('/apex/searchAccount', 'setsearch', 800, 600, 'width=900,height=600,scrollbars=yes,toolbar=no,status=no,directories=no,menubar=no,resizable=1', true);
+        }
+
+        function searchFn() {
+            blockme();
+            search();
+            j$(escapeVfId("dpaPage:dpaForm:dpaBlock:tempid")).val('tempId');
+            // j$(escapeVfId('dpaPage:dpaForm:dpaBlock:tempid')).value() = 'tempid';
+
+        }
+
+        //add by rentx 2021-2-20
+    </script>
+
+    <apex:form id="dpaForm" >
+        <apex:actionFunction name="search" action="{!searchAllProduct2}" oncomplete="unblockUI();" reRender="ConsumableorderdetailsSection,message" />
+        <apex:pageBlock title="鐗逛环浜у搧鐢宠淇℃伅" id="dpaBlock" >
+            <apex:pageBlockButtons location="top"  >
+                <apex:commandButton value="淇濆瓨" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" onclick="blockme();" style="margin-left:30px;width:100px" action="{!savesaveDiscountProduct}" onComplete="unblockUI();CheckStatusAfter();" reRender="ConsumableorderdetailsSection,message"/>
+            </apex:pageBlockButtons>
+            <table style="width: 900px;margin: auto;">
+                <tr>
+                    <td align="right" >缁忛攢鍟嗭細</td>
+                    <td align="left">
+                        <!-- //update by rentx 2021-2-22 start -->
+                        <apex:outputField rendered="{!!isPage}" value="{!dpa.RawAccount__c}" style="width:300px"/>
+                        <apex:inputField id="rawAccountId" rendered="{!isPage}" required="true" value="{!dpa.RawAccount__c}" />
+                        <!-- //update by rentx 2021-2-22 end -->
+                    </td>
+
+                    <td/>
+                    <td align="right">鍖婚櫌锛�
+                    </td>
+                    <td width="100px"><apex:inputText id="AimsAccount" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" style="width:150px" value="{!AimsAccount}" onclick="searchAimsAccount1()"  
+                        onfocus="if (j$(escapeVfId('dpaPage:dpaForm:dpaBlock:tempid')).value() != 'tempId' && j$(escapeVfId('dpaPage:dpaForm:dpaBlock:tempid')).value() != '') {searchFn()}" />
+                    </td>
+                    <td style="display:none"><apex:inputText style="display:none" id="AimsAccountId" value="{!AimsAccountId}"/></td>
+                    <td style="display:none"><apex:inputText style="display:none"  value="{!dpa.ApplicationStatus__c }"/></td>
+                    <apex:inputHidden id="tempid" value="{!tempVal}"/>
+
+                    <td>
+                        <!-- <apex:commandButton value="淇濆瓨" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" onclick="blockme();" style="margin-left:30px;width:180px" action="{!savesaveDiscountProduct}" onComplete="unblockUI();CheckStatusAfter();" reRender="ConsumableorderdetailsSection,message"/> -->
+                        <!-- <apex:commandButton value="淇濆瓨" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" onclick="blockme();saveAimsAccountId();" style="margin-left:30px;width:180px" action="{!savesaveDiscountProduct}" onComplete="unblockUI();CheckStatusAfter();" reRender="ConsumableorderdetailsSection,message"/> -->
+                    </td>
+                    <!-- <td/> -->
+                </tr>
+                <tr style="height: 10px" />
+                <tr>
+                    <td align="right" >浜у搧鍚嶇О锛�</td>
+                    <td align="left"><apex:inputText disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" value="{!text1}" style="width:300"/>
+                    </td>
+                    <td/>
+                    <td align="right" >浜у搧缂栫爜锛�</td>
+                    <td align="left"><apex:inputText disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" value="{!text2}" style="width:150px"/>
+                    </td>
+                    
+                    <td><apex:commandButton value="妫�绱�" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" onclick="blockme();" style="margin-left:30px;width:100px" action="{!searchAllProduct2}" oncomplete="unblockUI();" reRender="ConsumableorderdetailsSection,message"/>
+                    </td>
+                </tr>
+            </table>
+        </apex:pageBlock>
+
+        <apex:outputPanel id="message" >
+            <apex:pageMessages />
+        </apex:outputPanel>
+            <apex:pageBlock title="鐗逛环浜у搧鏄庣粏" id="ConsumableorderdetailsSection">
+                <input type="hidden" id="dpaPage:dpaForm:ConsumableorderdetailsSection:unCheckedDpadCount" value="{!unCheckedDpadCount}" />
+                
+                <table class="list" border="0" cellpadding="0" cellspacing="0">
+                    <colgroup>
+                        <col width="4%" />
+                        <col width="34%" />
+                        <col width="9%" />
+                        <col width="9%" />
+                        <col width="9%" />
+                        <col width="9%" />
+                        <col width="9%" />
+                        <col width="9%" />
+                        <col width="8%" />
+                    </colgroup>
+                    <tr class="headerRow">
+                        
+                        <apex:variable var="" value="" >
+                            <th  type='checkbox' onClick='checkAll()'>
+                                <input disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" type='checkbox' onClick='checkAll()' id='checker'/>閫夋嫨</th>
+                        </apex:variable>
+                        
+                        <!-- update by rentx 2021-01-17 -->
+                        <!-- <th>浜у搧妫�绱㈢敤</th> -->
+                        <th>浜у搧鍚嶇О</th>
+                        <!-- update by rentx 2021-01-17 -->
+
+                        <th>浜у搧缂栫爜</th>
+                        <th>NMPA鐘舵��</th>
+                        <!-- <th>鍐呰锤瀹氫环(RMB)</th>
+                        <th>澶栬锤瀹氫环(USD)</th> -->
+                        <th>绗�2鍒嗙被</th>
+                        <th>绗�3鍒嗙被</th>
+                        <th>绗�4鍒嗙被</th>
+                        <th>绗�5鍒嗙被</th>
+                        <th>浜у搧鐗逛环</th>
+                    </tr>
+                        <apex:repeat value="{!DiscountProductApplicationDetailList}" var="dpad" id="Product2List">
+                        <tr class="dataRow">
+                           <apex:variable var="v" value="" id="variableinfo">
+                                <td>
+                                <apex:inputCheckbox value="{!dpad.check}" disabled="{!IF(dpa.ApplicationStatus__c='鐢宠涓�'||dpa.ApplicationStatus__c='鎵瑰噯'||dpa.ApplicationStatus__c='椹冲洖',true,false)}" onclick="CheckSize(this);" id="Product2Check"/>
+                                <apex:inputHidden value="{!dpad.dp.id}"/>
+                                </td>
+                            </apex:variable>
+                            <td class="dataCell" style="display:none">{!dpad.pr2.id}</td>
+                            <td class="dataCell">{!dpad.pr2.Name__c}</td>
+                            <td class="dataCell">{!dpad.pr2.OT_CODE_Text__c}</td>
+                            <td class="dataCell">{!dpad.pr2.SFDA_Status__c}</td>
+                            <!-- <td class="dataCell">{!dpad.pr2.Intra_Trade_List_RMB__c}</td>
+                            <td class="dataCell">{!dpad.pr2.Foreign_Trade_List_US__c}</td> -->
+                            <td class="dataCell">{!dpad.pr2.Category2__c}</td>
+                            <td class="dataCell">{!dpad.pr2.Category3__c}</td>
+                            <td class="dataCell">{!dpad.pr2.Category4__c}</td>
+                            <td class="dataCell">{!dpad.pr2.Category5__c}</td>
+                            <td class="dataCell">
+                                <apex:inputField rendered="{!IF(dpa.ApplicationStatus__c='鑽夋涓�' || dpa.ApplicationStatus__c='',true,false)}" onblur="pdValue(this)" id="ProductDiscount" value="{!dpad.dp.ProductDiscount__c}" style="width: 100px;"/>
+                                <apex:outputField rendered="{!IF(dpa.ApplicationStatus__c !='鑽夋涓�' && dpa.ApplicationStatus__c !='',true,false)}" value="{!dpad.dp.ProductDiscount__c}" />
+                                <apex:inputHidden id="ProductDiscountmoney" value="{!dpad.dismoney}"/>
+                            </td>  
+                        </tr>
+                        </apex:repeat>
+                </table>
+             </apex:pageBlock>
+    </apex:form>
+</apex:page>
\ No newline at end of file
diff --git a/force-app/main/default/pages/DiscountProductApplicationTest.page-meta.xml b/force-app/main/default/pages/DiscountProductApplicationTest.page-meta.xml
new file mode 100644
index 0000000..508840b
--- /dev/null
+++ b/force-app/main/default/pages/DiscountProductApplicationTest.page-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata"> 
+    <apiVersion>57.0</apiVersion>
+    <label>DiscountProductApplicationTest</label>
+</ApexPage>
\ No newline at end of file
diff --git a/force-app/main/default/pages/MaintenanceProductData.page b/force-app/main/default/pages/MaintenanceProductData.page
index fbf1422..9c5e8cc 100644
--- a/force-app/main/default/pages/MaintenanceProductData.page
+++ b/force-app/main/default/pages/MaintenanceProductData.page
@@ -853,7 +853,7 @@
         </apex:actionFunction>
         <apex:actionFunction name="setEditAble" action="{!setEditAble}" rerender="mpdDetailsSection,edmpdDetails, message" onComplete="unblockUI();">
         </apex:actionFunction>
-        <apex:actionFunction name="FilesUpload" action="{!FilesUpload}" rerender="mpdDetailsSection,edmpdDetails, message" onComplete="unblockUI();">
+        <apex:actionFunction name="FilesUpload" action="{!FilesUploadLightning}" rerender="mpdDetailsSection,edmpdDetails, message" onComplete="unblockUI();">
         </apex:actionFunction>
         <apex:actionFunction name="Submitmpd" action="{!Submitmpd}" rerender="mpdDetailsSection,edmpdDetails, message" onComplete="unblockUI();init();">
         </apex:actionFunction>
@@ -864,7 +864,7 @@
         <apex:pageBlock id="EDCline_1" >
             <apex:commandButton onclick="EditMpd();"   value="缂栬緫" style="margin-left:30px;width:180px" rerender="mpdDetailsSection,edmpdDetails,message" rendered="{!!editAble }" disabled="{!IF(mpd.Status__c ='鑽夋涓�'||mpd.Status__c='宸查┏鍥�'||!editDisabled,false,true)}"/>
 
-            <apex:commandButton onclick="FilesUploadJs();" value="涓婁紶闄勪欢" style="margin-left:30px;width:180px" rerender="mpdDetailsSection,message" rendered="{!!(EditDelCommitBtnDisabled||editAble)}" disabled="{!IF(mpd.Status__c ='鑽夋涓�'||mpd.Status__c='宸查┏鍥�'||!editDisabled,false,true)}"/>
+            <apex:commandButton onclick="FilesUploadJs();" value="涓婁紶鏂囦欢" style="margin-left:30px;width:180px" rerender="mpdDetailsSection,message" rendered="{!!(EditDelCommitBtnDisabled||editAble)}" disabled="{!IF(mpd.Status__c ='鑽夋涓�'||mpd.Status__c='宸查┏鍥�'||!editDisabled,false,true)}"/>
 
            <apex:commandButton onclick="SubmitmpdJs();"    value="鎻愪氦寰呭鎵�" style="margin-left:30px;width:180px" rerender="unEditable" rendered="{!!(EditDelCommitBtnDisabled||editAble)}" disabled="{!IF(mpd.Status__c ='鑽夋涓�'||mpd.Status__c='宸查┏鍥�',false,true)}"/>
             <apex:commandButton onclick="Update();" value="淇濆瓨缁存姢璁板綍" style="margin-left:30px;width:180px" rerender="edmpdDetails" rendered="{!IF(editAble,true,false)}" />
@@ -1213,7 +1213,7 @@
                 <apex:pageblocksection title="{!IF(editAble,'浜у搧涓绘暟鎹淮鎶�','浜у搧涓绘暟鎹淮鎶�(钃濊壊涓烘柊鍊�)')}" id="edmpdDetails" rendered="{!IF(mpdDetailsRecordsCount >0,true,false)}" html-style="width: 100%;overflow:auto;">
                 <apex:outputLabel style="width: 100%;">
                 <input type="hidden" id="allPage:allForm:allBlock:edmpdDetails:mpdDetailsRecordsCount" value="{!mpdDetailsRecordsCount}" />
-                    <table class="list" border="0" cellpadding="0" cellspacing="0"  >
+                    <table class="list" border="0" cellpadding="0" cellspacing="0">
                         <tr class="headerRow">
                             <apex:variable var="v" value="" rendered="{!IF(editAble&&RecordTypeName='GuranteeMain'&&mpd.Status__c='鏈嶅姟濉啓',true,false)}">
                                <th>閫夋嫨</th>
@@ -1255,7 +1255,7 @@
                                         <apex:variable var="edv" value="" rendered="{!editAble}" id="edvariable">
                                             <apex:outputPanel rendered="{!(edc.size==1)}" layout="none">
                                                 <apex:outputPanel layout="none" rendered="{!IF((RecordTypeName = 'GuranteeMain'&& !contains(GuranteeMainProductService,edc[0]))||RecordTypeName != 'GuranteeMain',true , false)}">
-                                                    <apex:InputField value="{!aa.mpded[edc[0]]}"  id="edtheValue" style="max-width: 120px;min-width: 10px"/> 
+                                                    <apex:InputField value="{!aa.mpded[edc[0]]}"  id="edtheValue" style="max-width: 120px;min-width: 10px;margin-bottom: 0px;"/> 
                                                 </apex:outputPanel>
                                                 <apex:outputPanel layout="none" rendered="{!IF((RecordTypeName = 'GuranteeMain'&& !contains(GuranteeMainProductService,edc[0]))||RecordTypeName != 'GuranteeMain',false , true)}">
                                                     <apex:outputField value="{!aa.mpded[edc[0]]}"/>
@@ -1353,11 +1353,11 @@
             </apex:pageBlock>
         </apex:outputPanel>
     </apex:form>
-    <apex:pageBlock title="闄勪欢" id="mpdataSection" rendered="{!!editAble}">
+    <apex:pageBlock title="鏂囦欢" id="mpdataSection" rendered="{!!editAble}">
         <apex:pageBlockTable value="{!AttachmentRecoeds}" var="a" >
         <apex:column headerValue="鏍囬" style="width: 33%">
         <apex:outputLink value="/{!a.Concc.Id}?retURL={!URLENCODE('/apex/MaintenanceProductData?id='+id)}" target="_self">
-            {!a.Concc.name}
+            {!a.Concc.Title}
         </apex:outputLink>
         </apex:column>
         <apex:column headerValue="鍒涘缓浜�">
diff --git a/force-app/main/default/pages/OPDNoReportApplication.page b/force-app/main/default/pages/OPDNoReportApplication.page
index 773d168..9447c94 100644
--- a/force-app/main/default/pages/OPDNoReportApplication.page
+++ b/force-app/main/default/pages/OPDNoReportApplication.page
@@ -1,4 +1,4 @@
-<apex:page standardController="OPDPlan__c"   extensions="OPDNoReportApplicationController" showHeader="false" sidebar="false" id="allPage" title="鏃犳姤鍛婄敵璇�" action="{!init}"  docType="html-5.0">
+<apex:page standardController="OPDPlan__c"   extensions="OPDNoReportApplicationController" showHeader="false" sidebar="false" id="allPage" title="鏃犳姤鍛婄敵璇�" action="{!init}"  docType="html-5.0"  lightningStylesheets="true">
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
@@ -617,13 +617,14 @@
                 </apex:pageBlockSectionItem>
             </apex:pageBlockSection>
             <!-- 闄勪欢椤甸潰 -->
-            <apex:pageBlockSection title="闄勪欢" id="tableListH"  collapsible="false" dir="LTR" >
+            <apex:pageBlockSection title="鏂囦欢" id="tableListH"  collapsible="false" dir="LTR" >
                 <apex:pageBlockTable value="{!attachmentinfo}" var="a" style="margin-left: 50%; width: 150%;">
                 <apex:column headerValue="鏍囬" style="width: 50%">
-                    <apex:outputLink value="https://ocsm--stagefull--c.documentforce.com/servlet/servlet.FileDownload?file={!a.id}" target="_self">
+                    <!-- <apex:outputLink value="https://ocsm--stagefull--c.documentforce.com/servlet/servlet.FileDownload?file={!a.id}" target="_self"> -->
+                    <apex:outputLink value="https://ocsm--partial.sandbox.my.salesforce.com/{!a.id}" target="_self">
                     <!-- https://ocsm--c.ap0.content.force.com/servlet/servlet.FileDownload?file -->
                     <!-- https://ocsm--stagefull--c.documentforce.com/servlet/servlet.FileDownload?file= -->
-                          {!a.name}
+                          {!a.Title}
                     </apex:outputLink>
                 </apex:column>
                 <apex:column headerValue="鍒涘缓浜�">
@@ -635,8 +636,10 @@
             <apex:outputPanel id="popupBox" layout="block" style="display:none">
                 <input type="file" id="file_input" name="attFile"/><br/>
                 <center>
-                    <apex:commandButton value="纭" onclick="saveAttachment(); return false;" style="width: 20%; margin: 20px 10px 0px 10px" />
-                    <apex:commandButton value="鍙栨秷" onclick="popupBox.hide();" style="width: 20%; margin: 20px 10px 0px 10px" />
+                    <span><apex:commandButton value="纭" onclick="saveAttachment(); return false;" style="width: 20%; margin: 20px 10px 0px 10px" /></span>
+                    <span><apex:commandButton value="鍙栨秷" onclick="popupBox.hide();" style="width: 20%; margin: 20px 10px 0px 10px" /></span>
+                    
+                    
                 </center>
             </apex:outputPanel>
         
diff --git a/force-app/main/default/pages/OPDNoReportApplication.page-meta.xml b/force-app/main/default/pages/OPDNoReportApplication.page-meta.xml
index 80f5869..70281e1 100644
--- a/force-app/main/default/pages/OPDNoReportApplication.page-meta.xml
+++ b/force-app/main/default/pages/OPDNoReportApplication.page-meta.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">
     <apiVersion>46.0</apiVersion>
-    <availableInTouch>false</availableInTouch>
+    <availableInTouch>true</availableInTouch>
     <confirmationTokenRequired>false</confirmationTokenRequired>
     <label>OPDNoReportApplication</label>
 </ApexPage>
diff --git a/force-app/main/default/pages/SpecialPriceTest.page b/force-app/main/default/pages/SpecialPriceTest.page
new file mode 100644
index 0000000..7490c9d
--- /dev/null
+++ b/force-app/main/default/pages/SpecialPriceTest.page
@@ -0,0 +1,477 @@
+<apex:page Controller="SpecialPriceController" showHeader="true" sidebar="false" id="allPage" action="{!init}" lightningStylesheets="true">
+<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
+<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
+<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
+<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
+<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
+<apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
+<script>
+// window.sfdcPage.appendToOnloadQueue(function() { calonLoad() });
+function onLoad() {
+    calonLoad();
+}
+window.onload = onLoad;
+// window.calonLoad = calonLoad;
+function calonLoad() {
+    var isInput = {!isInput};
+    if (isInput) {
+        //璇存槑鐘舵�佷笉鏄崏妗堜腑 鍒欒缃〉闈㈤攣瀹氫笉鍙紪杈�
+        //1.鏌ヨ鏉′欢閿佸畾
+        j$(escapeVfId('allPage:allForm:searchBlock:StateMaster')).attr("disabled", true);
+        j$(escapeVfId('allPage:allForm:searchBlock:StateMaster2')).attr("disabled", true);
+        j$(escapeVfId('allPage:allForm:searchBlock:StateMaster3')).attr("disabled", true);
+        j$(escapeVfId('allPage:allForm:searchBlock:StateMaster4')).attr("disabled", true);
+        j$(escapeVfId('allPage:allForm:searchBlock:StateMaster5')).attr("disabled", true);
+        j$(escapeVfId('allPage:allForm:searchBlock:importId')).attr("disabled", true);
+        var productCount = j$(escapeVfId('allPage:allForm:productInfoSection:productRecoedsCount')).value();
+        for (var i = 0; i < productCount; i++) {
+            j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':consumablesCountproRowCheckbox')).attr('disabled',true);
+            j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSD')).attr('disabled',true);
+            j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSDC')).attr('disabled',true);
+        }
+    }
+}
+function refreshPageSizeJs() {
+    refreshPageSize();
+}
+function checkAll() {
+    var productCount = j$(escapeVfId('allPage:allForm:productInfoSection:productRecoedsCount')).value();
+    if (j$(escapeVfId('checker')).attr('checked') == 'checked') {
+        //console.log(productCount);
+        for (var i = 0; i < productCount; i++) {
+            j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':consumablesCountproRowCheckbox')).attr('checked',true);
+        }
+    } else {
+        for (var i = 0; i < productCount; i++) {
+            j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':consumablesCountproRowCheckbox')).attr('checked',false);
+        }
+    }
+}
+
+function setCheckBox(j,oldvalue,oldvalue2) {
+    var z,x,v;
+    var a = j.id;
+
+    var i = a.substring(0,a.lastIndexOf(':'));
+    v = j$(escapeVfId(i+':inputSD')).value().trim();
+    // z = parseFloat(j$(escapeVfId(i+':inputSD')).value());
+    
+    // if(v!='' && isNaN(v)){
+    //     window.alert("鐗规畩鎶樻墸蹇呴』鏄暟瀛楋紒");
+    //     document.getElementById(i+':inputSD').value = "";
+    //     return;
+    // }
+
+    if(v!='' && (v>100 || v<0)){
+        window.alert("鐗规畩鎶樻墸涓嶆纭紝璇疯緭鍏�0~100鐨勬暟瀛楋紒");
+        document.getElementById(i+':inputSD').value = "";
+        return;
+    }
+
+    if( v!=oldvalue && oldvalue!='0'){
+        document.getElementById(i+':inputSDC').value = "";
+        j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',true);
+    }else{
+
+        // //闇�瑕佸垽鏂箣鍓嶇殑閲戦鏈夋病鏈夊��,濡傛灉鏈� 瑕佽缃�変腑
+        // document.getElementById(i+':inputSDC').value = "";
+        // j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',false);
+
+        document.getElementById(i+':inputSDC').value = "";
+        if (oldvalue2 != '0') {
+            j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',true);
+        }else{
+            j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',false);
+        }
+    }
+    if (v != null && v != '' && oldvalue == '0') {
+        j$(escapeVfId(i +':consumablesCountproRowCheckbox')).attr('checked',true);
+    }
+
+}
+
+
+// <!-- //add by rentx 2020-12-22  -->
+function setCheckBoxSDC(j,oldvalue,oldvalue2) {
+    var z,x,v;
+    var a = j.id;
+
+    var i = a.substring(0,a.lastIndexOf(':'));
+    v = j$(escapeVfId(i+':inputSDC')).value().trim();
+    // z = parseFloat(j$(escapeVfId(i+':inputSDC')).value());
+    // if(v!='' && isNaN(v)){
+    //     window.alert("鐗规畩鎶樻墸蹇呴』鏄暟瀛楋紒");
+    //     document.getElementById(i+':inputSDC').value = "";
+    //     return;
+    // }
+
+    console.log('褰撳墠杈撳叆鐨勫��::'+v);
+    console.log('鐗规畩鎶樻墸(閲戦)::'+oldvalue);
+    console.log('鐗规畩鎶樻墸(%)::'+oldvalue2);
+    if(v!='' && v<0){
+        window.alert("鐗规畩鎶樻墸涓嶆纭紝璇疯緭鍏ユ纭殑鏁板瓧锛�");
+        document.getElementById(i+':inputSDC').value = "";
+        return;
+    }
+
+    if( v!=oldvalue && oldvalue!='0'){
+        document.getElementById(i+':inputSD').value = "";
+        j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',true);
+    }else{
+        //闇�瑕佸垽鏂箣鍓嶇殑%鏈夋病鏈夊��,濡傛灉鏈夊��,鍒欒缃�変腑
+        // document.getElementById(i+':inputSD').value = "";
+        // j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',false);
+
+        document.getElementById(i+':inputSD').value = "";
+        if (oldvalue2 != '0') {
+            j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',true);
+        }else{
+            j$(escapeVfId(i+':consumablesCountproRowCheckbox')).attr('checked',false);
+        }
+    }
+    if (v != null && v != '' && oldvalue == '0') {
+        j$(escapeVfId(i +':consumablesCountproRowCheckbox')).attr('checked',true);
+    }
+
+}
+// <!-- //add by rentx 2020-12-22  -->
+
+function fillJs() {
+    //var cnt = {!productRecoedsCount};
+    var cnt = j$(escapeVfId('allPage:allForm:productInfoSection:productRecoedsCount')).value();
+    var specialDiscount = j$(escapeVfId('allPage:allForm:productInfoSection:BlockTablefill:0:Special_Discount')).value();
+
+    if(specialDiscount!='' && isNaN(specialDiscount)){
+        window.alert("鐗规畩鎶樻墸蹇呴』鏄暟瀛楋紒");
+        return;
+    }
+
+    if(specialDiscount!='' && (specialDiscount>100 || specialDiscount<0)){
+        window.alert("鐗规畩鎶樻墸涓嶆纭紝璇疯緭鍏�0~100鐨勬暟瀛楋紒");
+        return;
+    }
+
+    for (var i = 0; i < cnt; i++) {
+        if(j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':consumablesCountproRowCheckbox')).attr('checked') == 'checked'){
+            document.getElementById('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSD').value = specialDiscount;
+            document.getElementById('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSDC').value = null;
+        }
+    }
+}
+// gzw add 20210802
+function fillJ1s() {
+    //var cnt = {!productRecoedsCount};
+    var cnt = j$(escapeVfId('allPage:allForm:productInfoSection:productRecoedsCount')).value();
+    var specialDiscount = j$(escapeVfId('allPage:allForm:productInfoSection:BlockTablefill1:0:Special_Discount1')).value();
+
+    if(specialDiscount!='' && isNaN(specialDiscount)){
+        window.alert("鎶樻墸閲戦蹇呴』鏄暟瀛楋紒");
+        return;
+    }
+
+    // if(specialDiscount!='' && (specialDiscount>100 || specialDiscount<0)){
+    //     window.alert("鐗规畩鎶樻墸涓嶆纭紝璇疯緭鍏�0~100鐨勬暟瀛楋紒");
+    //     return;
+    // }
+
+    for (var i = 0; i < cnt; i++) {
+        if(j$(escapeVfId('allPage:allForm:productInfoSection:productInfoListview:' + i + ':consumablesCountproRowCheckbox')).attr('checked') == 'checked'){
+            document.getElementById('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSDC').value = specialDiscount;
+            document.getElementById('allPage:allForm:productInfoSection:productInfoListview:' + i + ':inputSD').value = null;
+        }
+    }
+}
+// gzw add 20210802
+
+
+function saveJs() {
+    blockme();
+    //beforeSaveJs();
+    save();
+}
+
+function searchProductJs() {
+    blockme();
+    searchProduct();
+}
+
+function showcategory2Js() {
+    showcategory2();
+}
+
+function showcategory3Js() {
+    showcategory3();
+}
+function showcategory4Js() {
+    showcategory4();
+}
+function showcategory5Js() {
+    showcategory5();
+}
+</script>
+    <apex:form id="allForm">
+        <apex:actionFunction name="refreshPageSize" action="{!refreshPageSize}" status="fetchStatus" reRender="productInfoSection,messageText" />
+        <apex:actionFunction name="save" action="{!save}" rerender="message,messageText" onComplete="unblockUI();">
+        </apex:actionFunction> 
+        <apex:actionFunction name="showcategory2" action="{!showcategory2}" rerender="searchBlock, message,messageText">
+        </apex:actionFunction>
+        <apex:actionFunction name="showcategory3" action="{!showcategory3}" rerender="searchBlock, message,messageText">
+        </apex:actionFunction>
+        <apex:actionFunction name="showcategory4" action="{!showcategory4}" rerender="searchBlock, message,messageText">
+        </apex:actionFunction>
+        <apex:actionFunction name="showcategory5" action="{!showcategory5}" rerender="searchBlock, message,messageText">
+        </apex:actionFunction>
+        <apex:actionFunction name="searchProduct" action="{!searchProduct}" rerender="productInfoSection, message,messageText" onComplete="unblockUI();">
+        </apex:actionFunction>
+        <apex:outputPanel id="allPanel">
+            <apex:outputPanel id="messageText">
+                <table>
+                        <tr>
+                            <td>
+                            <div id="ErrorName" style="color: red;font-weight: bold;" >{!alertMessage}</div>
+                            </td>
+                        </tr>
+                </table>
+            </apex:outputPanel>
+            <apex:outputPanel id="message">
+                <apex:pageMessages />
+            </apex:outputPanel>
+            <apex:pageBlock id="searchBlock">
+                <table>
+                    <colgroup>
+                        <col width="50px"/>
+                        <col width="100px"/>
+                        <col width="60px"/>
+                        <col width="20px"/>
+                        <col width="100px"/>
+                        <col width="60px"/>
+                        <col width="20px"/>
+                        <col width="100px"/>
+                        <col width="60px"/>
+                        <col width="20px"/>
+                        <col width="100px"/>
+                        <col width="60px"/>
+                        <col width="20px"/>
+                        <col width="100px"/>
+                        <col width="60px"/>
+                        <col width="20px"/>
+                        <col width="80px"/>
+                    </colgroup>
+                    <tr>
+                        <td align="right"></td>
+                        <td align="right">绠$悊缂栫爜锛�</td>
+                        <td style="text-align:left; width:70px;" colspan = "2">
+                        <apex:outputField value="{!acc.Parent.Management_Code__c}"/>
+                        </td>
+                        <td align="right">缁忛攢鍟嗗悕绉帮細</td>
+                        <td style="text-align:left; width:70px;" colspan = "3">
+                        <apex:outputField value="{!acc.Parent.Name}"/>
+                        </td>
+                        <td align="right" colspan = "3">缁忛攢鍟嗗悎鍚屽悕绉帮細</td>
+                        <td style="text-align:left; width:70px;" colspan = "4">
+                        <apex:outputField value="{!acc.Name}"/>
+                        </td>
+                        <td align="right"></td>
+                    </tr>
+                    <tr>
+                        <td colspan = "16" style="height: 10px"></td>
+                    </tr>
+                    <tr>
+                        <td align="right"></td>
+                        <td align="right">绗�1鍒嗙被锛�</td>
+                        <td style="text-align:left; width:70px;">
+                        <apex:selectList id="StateMaster" value="{!category1}" size="1" style="width:90px"  onchange="showcategory2Js();return false;">
+                            <apex:selectOptions value="{!category1OptionList}"/>
+                        </apex:selectList>
+                        </td>
+                        <td/>
+                        <td align="right">绗�2鍒嗙被锛�</td>
+                        <td style="text-align:left; width:70px;">
+                            <apex:selectList id="StateMaster2" value="{!category2}" size="1" style="width:90px" onchange="showcategory3Js();return false;">
+                            <apex:selectOptions value="{!category2OptionList}"/>
+                        </apex:selectList>
+                        </td>
+                        <td/>
+                        <td align="right">绗�3鍒嗙被锛�</td>
+                        <td style="text-align:left; width:70px;">
+                            <apex:selectList id="StateMaster3" value="{!category3}" size="1" style="width:90px"  onchange="showcategory4Js();return false;">
+                            <apex:selectOptions value="{!category3OptionList}"/>
+                        </apex:selectList>
+                        </td>
+                        <td/>
+                        <td align="right">绗�4鍒嗙被锛�</td>
+                        <td style="text-align:left; width:70px;">
+                            <apex:selectList id="StateMaster4" value="{!category4}" size="1" style="width:90px"  onchange="showcategory5Js();return false;" >
+                            <apex:selectOptions value="{!category4OptionList}"/>
+                        </apex:selectList>
+                        </td>
+                        <td/>
+                        <td align="right">绗�5鍒嗙被锛�</td>
+                        <td style="text-align:left; width:70px;">
+                            <apex:selectList id="StateMaster5" value="{!category5}" size="1" style="width:90px">
+                            <apex:selectOptions value="{!category5OptionList}"/>
+                        </apex:selectList>
+                        </td>
+                        <td align="right" rowspan = "3"><apex:commandButton disabled="{!isInput}" value="妫�绱�" style="width: 100px;margin-top: 50px" onclick="searchProductJs();return false;" /></td>
+                    </tr>
+                    <tr>
+                        <td colspan = "15" style="height: 10px"></td>
+                    </tr>
+                    <tr>
+                        <td align="right"></td>
+                        <td align="right">鍏抽敭瀛楋細</td>
+                        <td style="text-align:left; width:70px;" colspan = "3">
+                            <apex:inputText id="importId" value="{!keyword}"/>
+                            <c:helpicon helpText="鍙互浣跨敤鍏抽敭瀛楁绱骇鍝佸瀷鍙峰拰浜у搧鍚嶇О銆�"/>
+                        </td>
+                        <!-- <td align="right" >鐗圭害搴椾骇鍝�</td>
+                        <td  align="left"><apex:inputCheckbox value="{!Pro2DealerFlag}" id="Pro2DealerFlag"  style="width:20px"/>
+                        </td> -->
+                  
+                    </tr>
+                </table>
+            </apex:pageBlock>
+
+            <apex:pageBlock title="浜у搧淇℃伅" id="productInfoSection">
+            <apex:pageBlockButtons location="top"  >
+                <apex:commandButton onclick="saveJs();" disabled="{!isInput}" value="淇濆瓨" style="margin-left:30px;width:100px" rerender="dummy" />
+            </apex:pageBlockButtons>
+
+            <apex:outputPanel style="float:right;"  >
+                <apex:pageBlockTable value="{!dpc}" var="a" id="BlockTablefill1">
+                    <apex:column headerValue="鐗规畩鎶樻墸(閲戦)" >
+                        <apex:inputField id="Special_Discount1" value="{!a.Special_Campaign_Price__c}" style="width: 80px;"/>
+                    </apex:column>
+        
+                    <apex:column >
+                        <apex:commandButton onclick="fillJ1s();" disabled="{!isInput}" value="搴旂敤閲戦" style="margin-left:10px;width:100px" rerender="dummy" />
+                    </apex:column>
+                </apex:pageBlockTable>
+            </apex:outputPanel>
+
+            <apex:outputPanel style="float:right;"  >
+                <apex:pageBlockTable value="{!dpc}" var="a" id="BlockTablefill">
+                    <apex:column headerValue="鐗规畩鎶樻墸(%)" >
+                        <apex:inputField id="Special_Discount" value="{!a.Special_Discount__c}" style="width: 80px;"/>
+                    </apex:column>
+        
+                    <apex:column >
+                        <apex:commandButton onclick="fillJs();" disabled="{!isInput}" value="搴旂敤鎶樻墸" style="margin-left:10px;width:100px" rerender="dummy" />
+                    </apex:column>
+                </apex:pageBlockTable>
+            </apex:outputPanel>
+
+
+            <apex:inputHidden id="productRecoedsCount" value="{!productRecoedsCount}"/>
+                <table class="list" border="0" cellpadding="0" cellspacing="0">
+                    <colgroup>
+                        <col width="6%" />
+                        <col width="34%" />
+                        <col width="10%" />
+                        <col width="10%" />
+                        <col width="10%" />
+                        <col width="10%" />
+                        <col width="10%" />
+                        <col width="10%" />
+                    </colgroup>
+                    <tr class="headerRow">
+                        <th><input type='checkbox' onClick='checkAll()' id='checker'/>閫夋嫨</th>
+                        <th style="width:40%">浜у搧鍚嶇О</th>
+                        <th style="width:10%">绗�1鍒嗙被</th>
+                        <th style="width:10%">绗�2鍒嗙被</th>
+                        <th style="width:10%">绗�3鍒嗙被</th>
+                        <th style="width:10%">绗�4鍒嗙被</th>
+                        <th style="width:10%">绗�5鍒嗙被</th>
+                        <!-- <th style="width:10%">鐗规畩鎶樻墸</th> -->
+                        <th style="width:10%">鐗规畩鎶樻墸(%)</th>
+                        <th style="width:10%">鐗规畩鎶樻墸(閲戦)</th>
+                        <!-- <th style="width:10%">(%)</th> -->
+                        <!-- <th style="width:10%">(閲戦)</th> -->
+
+                    </tr>
+                    <apex:repeat value="{!productInfoListview}" var="records" id="productInfoListview">
+                        <tr class="dataRow">    
+                            <td>
+                            <apex:inputCheckbox value="{!records.check}" id="consumablesCountproRowCheckbox"/>
+                            </td>
+                         
+                             <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Name__c}"/>
+                            </td>
+                            <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Category1__c}"/>
+                            </td>
+                            <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Category2__c}"/>
+                            </td>
+                            <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Category3__c}"/>
+                            </td>
+                            <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Category4__c}"/>
+                            </td>
+                            <td class="dataCell">
+                                <apex:outputField value="{!records.pro.Category5__c}"/>
+                            </td> 
+                            <!-- //add by rentx 2020-12-22  -->
+                            <td class="dataCell" >
+                                <apex:inputField style="width: 80px;" onclick="setCheckBox(this,{!IF(records.dealerPro.Special_Discount__c!=null,records.dealerPro.Special_Discount__c,0)},{!IF(records.dealerPro.Special_Campaign_Price__c!=null,records.dealerPro.Special_Campaign_Price__c,0)})" onblur="setCheckBox(this,{!IF(records.dealerPro.Special_Discount__c!=null,records.dealerPro.Special_Discount__c,0)},{!IF(records.dealerPro.Special_Campaign_Price__c!=null,records.dealerPro.Special_Campaign_Price__c,0)})" value="{!records.dpac.Special_Discount__c}" id="inputSD"/>
+                                
+                            </td>
+                            <td class="dataCell" >
+                                <apex:inputField style="width: 80px;" onclick="setCheckBoxSDC(this,{!IF(records.dealerPro.Special_Campaign_Price__c!=null,records.dealerPro.Special_Campaign_Price__c,0)},{!IF(records.dealerPro.Special_Discount__c!=null,records.dealerPro.Special_Discount__c,0)})" onblur="setCheckBoxSDC(this,{!IF(records.dealerPro.Special_Campaign_Price__c!=null,records.dealerPro.Special_Campaign_Price__c,0)},{!IF(records.dealerPro.Special_Discount__c!=null,records.dealerPro.Special_Discount__c,0)})" value="{!records.dpac.ProductDiscount__c}" id="inputSDC"/>
+                            </td>
+                            <!-- <td class="dataCell" > -->
+                                <!-- <apex:outputField style="width: 80px;" value="{!records.dealerPro.Special_Discount__c}" /> -->
+                            <!-- </td> -->
+                            <!-- //add by rentx 2020-12-22  -->
+                            <!-- <td class="dataCell" > -->
+                                <!-- <apex:outputField style="width: 80px;" value="{!records.dealerPro.Special_Campaign_Price__c}"/> -->
+                            <!-- </td> -->
+                            <!-- //add by rentx 2020-12-22 -->
+                        </tr>
+                    </apex:repeat>
+                </table>
+                <table style="width: 100%">
+                    <tr>
+                        <td>
+                            <!-- Page X of Y -->  
+                            <!-- PageNumber锛氬綋鍓嶉〉闈㈡墍鍦ㄤ綅缃紝ResultSize锛氳褰曟�绘潯鏁帮紝PageSize锛氭瘡椤佃褰曟潯鏁� -->  
+                            <apex:outputText value="{!(currentpage * pagesize)+1-pagesize}-{!IF((currentpage * pagesize)>totalcount, totalcount,
+                             (currentpage * pagesize))} 鍏� {!totalcount} 涓�" />  
+                        </td>
+                        <td align="center" style="padding-left: 470px;">
+                            <div class="paginator line1">
+                            <span class="prevNextLinks">
+                            <span class="prevNext">
+                            <apex:commandLink status="fetchStatus" reRender="ConsumableorderdetailsSection" action="{!moveToFirst}" oncomplete="refreshPageSizeJs();" title="棣栭〉" >
+                            <img src="/s.gif" title="棣栭〉" alt="棣栭〉" class="{!if((hasPrevious),'first','firstoff')}"/>
+                            </apex:commandLink>
+                            </span>
+                            <span class="prevNext">
+                            <apex:commandLink status="fetchStatus" reRender="ConsumableorderdetailsSection"  action="{!moveToPrevious}" oncomplete="refreshPageSizeJs();"  title="涓婁竴椤�">
+                            <img src="/s.gif" title="涓婁竴椤�" alt="涓婁竴椤�" class="{!if((hasPrevious),'prev','prevoff')}"/>涓婁竴椤�
+                            </apex:commandLink>
+                            </span>
+                            <!--  -->
+                            <span class="prevNext" >
+                            <apex:commandLink status="fetchStatus" reRender="ConsumableorderdetailsSection" action="{!moveToNext}" oncomplete="refreshPageSizeJs();" title="涓嬩竴椤�">涓嬩竴椤�
+                            <img src="/s.gif" title="涓嬩竴椤�" alt="涓嬩竴椤�" class="{!if((hasNext),'next','nextoff')}"/>
+                            </apex:commandLink>
+                            </span>
+                            <span class="prevNext">
+                            <apex:commandLink status="fetchStatus" reRender="ConsumableorderdetailsSection" action="{!moveToLast}"  oncomplete="refreshPageSizeJs();" title="灏鹃〉">
+                            <img src="/s.gif" title="灏鹃〉" alt="灏鹃〉" class="{!if((hasNext),'last','lastoff')}"/>
+                            </apex:commandLink>
+                            </span>
+                            </span>
+                            </div>
+                         </td>
+                         <td align="right" width="20%">
+                        </td>
+                    </tr>
+                </table>
+            </apex:pageBlock>
+        </apex:outputPanel>
+    </apex:form>
+</apex:page>
\ No newline at end of file
diff --git a/force-app/main/default/pages/SpecialPriceTest.page-meta.xml b/force-app/main/default/pages/SpecialPriceTest.page-meta.xml
new file mode 100644
index 0000000..4b634f1
--- /dev/null
+++ b/force-app/main/default/pages/SpecialPriceTest.page-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata"> 
+    <apiVersion>57.0</apiVersion>
+    <label>SpecialPriceTest</label>
+</ApexPage>
\ No newline at end of file

--
Gitblit v1.9.1