黄千龙
2023-03-08 962519811b7c4be07f30d09e791798b0ea79d3ae
同步代码
122个文件已添加
196个文件已修改
35245 ■■■■■ 已修改文件
force-app/main/default/aura/DealerPersonnelInformationImport/DealerPersonnelInformationImport.cmp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/DealerPersonnelInformationImport/DealerPersonnelInformationImportHelper.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReport.cmp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReportHelper.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignAgencyPage/eSignAgencyPageHelper.js 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHomePage/eSignHomePage.cmp 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHomePage/eSignHomePageController.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHomePage/eSignHomePageHelper.js 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPage.cmp 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPageController.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPageHelper.js 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/eSignHospitalQR/eSignHospitalQRHelper.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AccountDailyUpdateBatchSchedule.cls 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AccountDailyUpdateBatchScheduleTest.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AgencyOppUpdHandler.cls 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AgencyOppUpdHandlerTest.cls 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AgencyOpportunityHandler.cls 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AgencyOpportunityHandlerTest.cls 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AgencyShareUpdateBatch.cls 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ArriveGoodsController.cls 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetHandler.cls 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetHandler.cls-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetUpdateContractBatch.cls 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetUseInfoSchedule.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AttachmentTriggerTest.cls 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/BatchEmailUtil.cls 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/CM_SearchContactServiceController.cls 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/CM_SearchContactServiceControllerTest.cls 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/CampaignCopyToOPDPlanHandler.cls 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/CancelPostponePlanHandler.cls 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ChoiceAssetController.cls 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/DealerPersonnelController.cls 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/DealerPersonnelControllerTest.cls 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/DirectAssignController.cls 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/DirectAssignControllerTest.cls 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ESignFormHandler.cls 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/ESignFormHandlerTest.cls 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentRentalExtendController.cls 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentRentalExtendControllerTest.cls 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentSetShippmentReceived1Controller.cls 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentSetShippmentReceived2Controller.cls 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentSetShippmentReceived3Controller.cls 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/EquipmentSetShippmentReceived5Controller.cls 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/FixtureUtil.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/InventoryController.cls 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/InventoryControllerTest.cls 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LogAutoSendBatch.cls 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LogAutoSendSchedule.cls 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LostCancelReportHandler.cls 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LostCancelReportOppBatch.cls 284 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/LostCancelReportOppBatchTest.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/MainFixtureSelectController.cls 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM010UpsertStatuAchievementsTriggerTest.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM103Controller.cls 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM104Rest.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM105Rest.cls 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM301Rest.cls 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM402Batch.cls 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM504Controller.cls 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM603Controller.cls 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM612Rest.cls 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM624Rest.cls 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFM704Rest.cls 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NFMUtil.cls 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/NewQuoteIraiController.cls 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OPDPlanMarkBatchSchedule.cls 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OncallFinalStatusManager.cls 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OpdAmountBatch.cls 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OpdAmountBatchTest.cls 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OpdPlanWebService.cls 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/OpportunityWebService.cls 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/PCLLostProduct2AssetHandlerTest.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/PCLLostReportController.cls 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyDetailStatusUpdateBatch.cls 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplySequenceController.cls 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyTriggerHandler.cls 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalApplyWebService.cls 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalFixtureManage5Test.cls 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalFixtureSetAssignController.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RentalFixtureSetAssignControllerTest.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairAgainAnHandler.cls 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairBeforeInsertHandler.cls 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairTrigger.cls 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RepairTriggerTester.cls 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RetrospectiveWeeklyReportController.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RollupToHPBatch.cls 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RollupToHPBatchTest.cls 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/RollupToMaintenanceContractBatch.cls 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/SelectAssetEstimateVMController.cls 370 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/SelectAssetEstimateVMControllerTest.cls 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/SetOlympusCalendarWorkDayBatch.cls 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/StraightBackAddressController.cls 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/TenderDeleteControllerTest.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/TenderDeleteLwcController.cls 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/UpdateUserTextColBatch.cls 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/WeeklyReportCmp.cls 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/XinDailyReportController.cls 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/eSignAgencyPageControllerTest.cls 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/eSignHospitalPageController.cls 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/eSignHospitalPageControllerTest.cls 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/updateESignBatch.cls 648 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/updateESignBatchTest.cls 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/homePageComponents/服务 自定义链接.homePageComponent 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/homePageComponents/经销商管理.homePageComponent 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account2__c/fields/Dealer_Final_Price__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account2__c/fields/HospitalTransactionAmount__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account2__c/fields/LostPrices__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/Dealer_Final_Price__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/Dealer_Final_Priceqt__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/HospitalTransactionAmount__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/HospitalTransactionAmountqt__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/LostPrices__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Account_Number_of_target__c/fields/LostPricesqt__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Address__c/fields/Beipin_Center__c.field-meta.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Address__c/recordTypes/mainType.recordType-meta.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/BatchIF_Log__c/listViews/NFM612S.listView-meta.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Consumable_order_details2__c/fields/Intra_Trade_List__c.field-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Inventory_Header_Copy__c/Inventory_Header_Copy__c.object-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Inventory_Header_Copy__c/fields/Photo1__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Inventory_Header_Copy__c/fields/Photo2__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Inventory_Header_Copy__c/listViews/All.listView-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Lost_cancel_report__c/fields/TotalAmountLost__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset_Estimate__c/fields/IS_StandardPricing__c.field-meta.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Asset_Consumption_rate__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Asset_Months__c.field-meta.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Delivery_Date__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/IS_VMContract_Asset__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Installation_Date__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Maintenance_Price_Year__c.field-meta.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Summary_FM_Months__c.field-meta.xml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Summary_FM_Year__c.field-meta.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Warranty_Period__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/Limit_Price_Amount_F__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/Limit_Price_Amount__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/RenewAssetInfo__c.field-meta.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/fields/Limit_Price__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/fields/Remaining_Amount_F__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/fields/Remaining_Amount__c.field-meta.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/fields/Sum_repair_price_new_F__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/listViews/All.listView-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/validationRules/Agree_Upper_Limit_Check.validationRule-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/validationRules/LimitPrice_check.validationRule-meta.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/validationRules/URFContact_LimitPriceContact_check.validationRule-meta.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Contract__c/webLinks/Create_NewServiceContract.webLink-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/EquipmentInfo.recordType-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/GuranteeMain.recordType-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/GuranteePrice.recordType-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/ImportantProduct.recordType-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/RepairInfo.recordType-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_31_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_32_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_33_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_34_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_35_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_36_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_37_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_38_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_39_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_40_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_41_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_42_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_43_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_44_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_45_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_46_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_47_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_48_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_49_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_50_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_51_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_52_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_53_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_54_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_55_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_56_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_57_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_58_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_59_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/OlympusCalendar__c/fields/After_60_WorkDay__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Product_Register__c/fields/test1__c.field-meta.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/QIS_Report__c/fields/NewProDeliveryDate__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/QIS_Report__c/fields/ReplaceDeliveryDate__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/QuoteIrai__c/fields/Agency2_entrust__c.field-meta.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/ReceivingNoteDetail__c/fields/Salesdepartment__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply_Equipment_Set_Detail__c/fieldSets/Lost_Item_Fields.fieldSet-meta.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply_Equipment_Set_Detail__c/fields/Rental_Apply_Object__c.field-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply_Equipment_Set__c/webLinks/Loaner_arranged_e_mail.webLink-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/Rental_Apply__c.object-meta.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/Add_Approval_Status__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/Add_Request_approval_time__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/Add_Request_demo_time__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/CancelApplyDay__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/CancelDay__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/Loaner_Storage_mail_address__c.field-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/Salesdepartment__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/fields/SalesdeptSelect__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/recordTypes/AgencyRequest.recordType-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/recordTypes/Demo_request_past_data.recordType-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/recordTypes/StandardRequest.recordType-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/webLinks/Loaner_arranged_e_mail.webLink-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Rental_Apply__c/webLinks/Rental_Apply_FaultReport.webLink-meta.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/AfterFailureInformation__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/BreakORFallOff__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/DateReceiptQuestions__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Delay15Min__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/DelayReportReason__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/FailureQInHospital__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/FailureReason__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/IfDeadHurt__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/InformationFrom__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/IsOts__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/IsProductFaultRelated__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Item0010__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Item0020__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Item0030__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Item0040__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Item0050__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/LogisticsSendDate__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/OTSFile__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/OTSRepairOrder__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/OperationOrExaminationName__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/OrderNumber__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/ProblemOccurredSelect__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/ProblemOccurred__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientAddress__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientCompany__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientMobilePhone__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientName__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendAddress__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendName__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendPhone__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/ReportAdverseEvents__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/ReturnWayType__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/Returns_Product_way__c.field-meta.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SenderAddress__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SenderCompany__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SenderMobilePhone__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SenderName__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SenderOrgCode__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/SupportingProducts__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/UseFailProductFinish__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/WhatProject__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/engineerSendDate__c.field-meta.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/RepairSubOrder__c/fields/work_location_select__c.field-meta.xml 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair_Quotation__c/fields/LimitPrice_contract_discount_amount__c.field-meta.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair_Quotation__c/fields/Usage_Ratio_Price__c.field-meta.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Average_Maintenance_Cost__c.field-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Average_Usage_Time__c.field-meta.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/BreakORFallOff__c.field-meta.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Cumulative_Times__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Cumulative_Uses__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Cycle_between_failure__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Delay15Min__c.field-meta.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/InformationFrom__c.field-meta.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/Remaining_Amount__c.field-meta.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/UseFailProductFinish__c.field-meta.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/WhatProject__c.field-meta.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/fields/work_location_select__c.field-meta.xml 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/listViews/testzyh.listView-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/validationRules/work_location_select_self_or_4RC.validationRule-meta.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Repair__c/webLinks/Send_NFM103.webLink-meta.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/SS_Prospect_5days_list__c/fields/OP_ThousandY_Copy__c.field-meta.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/SS_Prospect_5days_list__c/fields/Opportunity_ThousandY_Copy__c.field-meta.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/SolutionProjectRequirements__c/webLinks/NewSolutonPro.webLink-meta.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/Statu_Achievements_DN__c/webLinks/insertFrameNumManag.webLink-meta.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/TransferApplyDetail__c/fields/Salesdepartment_After__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/TransferApplyDetail__c/fields/Salesdepartment__c.field-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/eSignForm__c/fields/agencyAccOrSAPConfirmDate__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/eSignForm__c/fields/hpAccOrSAPConfirmDate__c.field-meta.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/eSignForm__c/listViews/View_Agency_machi.listView-meta.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/objects/eSignForm__c/webLinks/insertFrameNumManag.webLink-meta.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/AccessoryAdd.page 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/AccountTargetTab.page 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/AssetMaintain.page 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/CM_SearchContactService.page 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ConsumEquipmentSetReturn.page 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ConsumTrialDis.page-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/DirectAssign.page 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/EquipmentRentalExtend.page 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/EquipmentRentalLostReport.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/EquipmentSetShippmentReceived1.page 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/EquipmentSetShippmentReceived3.page 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/EquipmentSetShippmentReceived5.page 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/FixtureSetManage.page 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/GSurveys.page 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/InsReportPDF.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ListShip.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/MaintenanceProductData.page 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewAndEditLead.page 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewMCHPDFLimit.page 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewQuoteEntry.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/NewQuoteIrai.page 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/OFSInsReportLayout.page 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/OPDSortManage.page 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PCLLostReportPage.page 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PaymentPlanLoad.page 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PersonalCalendar.page 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PersonalEvaluation.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PersonalEvaluation2.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/PersonalEvaluationClipEdit.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/QueuePageByAssetId.page 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/ReceivingNoteDetailSelect.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RentalApplySequence.page 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/RetrospectiveWeeklyReportPage.page 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/SelectAssetEstimateVM.page 349 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/SetupCheck_PicklistValuesGet.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/StraightBackAddress.page 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/StraightBackAddress.page-meta.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/XinDailyReport.page 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/pages/searchAimsAccount.page 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/AttachmentTrigger.trigger 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/NFM010UpsertStatuAchievements.trigger 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/Repair.trigger 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/triggers/UserToContact.trigger 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 27089 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/aura/DealerPersonnelInformationImport/DealerPersonnelInformationImport.cmp
@@ -2,7 +2,7 @@
 * @Author: Thhto 997058689@qq.com
 * @Date: 2022-07-08 10:47:25
 * @LastEditors: Thhto 997058689@qq.com
 * @LastEditTime: 2023-01-30 16:21:38
 * @LastEditTime: 2023-02-03 15:25:46
 * @FilePath: \ceshihuanj\force-app\main\default\aura\DealerPersonnelInformationImport\DealerPersonnelInformationImport.cmp
 * @Description: è¿™æ˜¯é»˜è®¤è®¾ç½®,请设置`customMade`, æ‰“å¼€koroFileHeader查看配置 è¿›è¡Œè®¾ç½®: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -87,7 +87,7 @@
            <aura:set attribute="else">
                <ui:outputRichText class="uiOutputRichText slds-m--around-large" value="{!v.TableContent}" />
                <div class="slds-p-around--large slds-align--absolute-center">
                    <lightning:button label="保存" variant="brand" onclick="{!c.processFileContent}" />
                    <lightning:button aura:id="save_con" label="保存" variant="brand" onclick="{!c.processFileContent}" disabled="false" />
                    <lightning:button label="取消" variant="brand" onclick="{!c.cancel}" />
                </div>
force-app/main/default/aura/DealerPersonnelInformationImport/DealerPersonnelInformationImportHelper.js
@@ -1,5 +1,6 @@
({
    readFile: function (component, helper, file) {
        debugger
        if (!file) return;
        if (!file.name.match(/\.(csv||CSV)$/)) {
            return alert('only support csv files');
@@ -78,6 +79,7 @@
        reader.readAsDataURL(file);
    },
    saveRecords: function (component, event, helper) {
        debugger
        component.set('v.login', true);
        var action = component.get("c.processData");
        var fieldsList = ['Name', 'Phone', 'AccountNumber']; //Please write your code dynamic fields
@@ -103,12 +105,14 @@
                    component.set('v.errorMessage', res1 + "请修改后重新上传");
                    this.showErrorToast(component);
                    component.set('v.login', false);
                    component.find('save_con').set('v.disabled', true);
                } else {
                    // this.success('导入成功');
                    component.set('v.successMessage', '导入成功');
                    this.showSuccessToast01(component);
                    component.set("v.showMain", true);
                    component.set('v.login', false);
                    component.find('save_con').set('v.disabled', false);
                }
            }
            else if (state === "INCOMPLETE") {
@@ -146,7 +150,7 @@
        window.setTimeout($A.getCallback(function () {
            $A.util.addClass(component.find('errorDiv'), 'slds-hide');
        }),
            4000
            7000
        );
    },
    success : function(message) {
force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReport.cmp
@@ -6,8 +6,7 @@
    <aura:handler event="c:strike_evt" action="{!c.createAopp}" name="strike_evt_addNewRecord" />
    <aura:attribute name="data" type="Agency_Report__c" default="{sobjectType:'Agency_Report__c'}" />
    <aura:attribute name="oppdata" type="Agency_Opportunity__c" default="{sobjectType:'Agency_Opportunity__c'}" />
    <aura:attribute name="acondata" type="Agency_Contact__c" default="{sobjectType:'Ag
    ency_Contact__c'}" />
    <aura:attribute name="acondata" type="Agency_Contact__c" default="{sobjectType:'Agency_Contact__c'}" />
    <aura:attribute name="successMessage" type="String" />
    <aura:attribute name="etEng" type="String" />
    <aura:attribute name="errorMessage" type="String" />
force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReportHelper.js
@@ -1,6 +1,7 @@
({
    doinit: function (component, event, helper) {
        debugger
        console.warn('123321')
        this.report_date_list(component, event, helper, 5);
        component.set('v.login', true);
        var action = component.get('c.getalldata');
@@ -487,7 +488,7 @@
    },
    //新建按钮
    new_report: function (component, event, helper) {
        debugger;
        component.set('v.mode', 'new');
        component.set('v.dialog_type', '新建');
        //  å‘¨
@@ -1911,6 +1912,7 @@
        });
    },
    saveRecords: function (component, event, helper) {
        debugger
        component.set('v.login', true);
        //fy å¯¼å…¥ 202200506 start
        var action1 = component.get("c.processDataAWSId");
@@ -2026,7 +2028,6 @@
         var sd = searchData[i];
         searchDataMap.set(sd.name.replace(' ',''),sd.dataId);
         }
         console.log('searchDataMap='+searchDataMap);
         var error = '';
         var fileData = component.get("v.fileContentData");
         fileData=this.ToCDB(fileData);//全角转半角
@@ -2047,6 +2048,7 @@
                            var nameDataId = searchDataMap.get(fileName.replace(' ',''));
                            if (dataMap.get(nameDataId)) {
                                filelist[5] = dataMap.get(nameDataId);      //zhj æ–°æ–¹æ¡ˆæ”¹é€  filelist[5]不再存的nameEncrpt 2022-12-21
                                console.log('filelist[5] = ' + filelist[5]);
                            }else {
                                error += 'error1 ç¬¬'+i+'行数据拜访人SF不存在';
                            }
force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
@@ -1446,6 +1446,9 @@
        // });
    },
    search_core : function(token,searchUrl,payload,callback,component) {
        console.log('token = ' + token);
        console.log('searchUrl = ' + searchUrl);
        console.log('payload = ' + payload);
        fetch(searchUrl, {
            method: 'POST',
            body: payload,
@@ -1459,6 +1462,7 @@
            component.set('v.login',false);
            if(callback)callback(result);
        }).catch(error => {
            console.log('error = ' + JSON.stringify(error));
            this.error('AWS search error.');
            component.set('v.login',false);
        });
@@ -1905,13 +1909,16 @@
            fileData : component.get("v.fileContentData"),
        }); 
        action1.setCallback(this, function(response) {
            console.log('response = '  + JSON.stringify(response));
            var state = response.getState();
            if (state === "SUCCESS") {
                var ress = response.getReturnValue();
                console.log('ress = '  + JSON.stringify(ress));
                if(ress){
                    var valur =ress.split('error1');
                    if(valur.length<=1){
                        var res = JSON.parse(response.getReturnValue());
                        console.log('res = '  + JSON.stringify(res));
                        var dataArr = new Array();
                        var dataMap = new Map();
                        res.forEach(item => {
force-app/main/default/aura/eSignAgencyPage/eSignAgencyPageHelper.js
@@ -799,7 +799,7 @@
    },
    MAX_FILE_SIZE: 4608000, //Max file size 4.5 MB
    CHUNK_SIZE: 750000, //Chunk Max size 750Kb
    CHUNK_SIZE: 750000, //Chunk Max size 750Kb //2023-03-07 zhj ä¹‹å‰æ˜¯750000
    uploadHelper: function(component, event) {
        // start/show the loading spinner
        component.set("v.showLoadingSpinner", true);
@@ -807,6 +807,7 @@
        var fileInput = component.find("fileId").get("v.files");
        // get the first file using array index[0]
        var file = fileInput[0];
        console.log('file.size å¼€å§‹ = ' + file.length);
        //var test = this.compress(file);
        var self = this;
        var pdf = file.type;
@@ -952,19 +953,20 @@
                    fileContents.length,
                    startPosition + this.CHUNK_SIZE
                );
                if (startPosition < endPosition) {
                    this.uploadInChunk(
                        component,
                        file,
                        fileContents,
                        startPosition,
                        endPosition,
                        ''
                    );
                }
                // if (startPosition < endPosition) {
                //     this.uploadInChunk(
                //         component,
                //         file,
                //         fileContents,
                //         startPosition,
                //         endPosition,
                //         ''
                //     );
                // }
                let staticResource = component.get('v.staticResource');
                var reader = new FileReader();
                reader.readAsDataURL(file.slice(0, endPosition));
                console.log('file.size è°ƒç”¨ = ' + file.length);
                reader.readAsDataURL(file);
                var that = this;
                reader.onloadend = function(evt){
                    if(evt.target.readyState == FileReader.DONE){
@@ -1117,19 +1119,19 @@
                fileContents.length,
                startPosition + this.CHUNK_SIZE
            );
            if (startPosition < endPosition) {
                this.uploadInChunk(
                    component,
                    file,
                    fileContents,
                    startPosition,
                    endPosition,
                    ''
                );
            }
            // if (startPosition < endPosition) {
            //     this.uploadInChunk(
            //         component,
            //         file,
            //         fileContents,
            //         startPosition,
            //         endPosition,
            //         ''
            //     );
            // }
            let staticResource = component.get('v.staticResource');
            var reader = new FileReader();
            reader.readAsDataURL(file.slice(0, endPosition));
            reader.readAsDataURL(file);
            var that = this;
            reader.onloadend = function(evt){
                if(evt.target.readyState == FileReader.DONE){
force-app/main/default/aura/eSignHomePage/eSignHomePage.cmp
@@ -82,6 +82,9 @@
    <!-- æ ¡éªŒcode -->
    <aura:attribute name="code" type="string" default="" />
    <aura:attribute name="decodeCode" type="string" default="" />
    <!-- 20230302 è¿›å£å•证改造 fy start -->
    <aura:attribute name="AgencyIDM" type="string" default="" />
    <!-- 20230302 è¿›å£å•证改造 fy end -->
    <aura:attribute name="isLastPage" type="Boolean" default="false" description="是否最后一页,如果是最后一页,那么表格分页的下一页不可用" />
@@ -436,13 +439,12 @@
                            <!-- è¡Œé¡¹ç›® ç¬¬å››åˆ—  è¿›å£å•证明细   fy--> 
                            <!-- è¿›å£å•证 fy start  -->
                            <th class="slds-is-resizable" tabindex="-1" data-label="进口单证明细" scope="row">
                                <span class="slds-grid slds-grid_align-spread" style="text-align: center;display:block;">
                                            <div class="slds-truncate">
                                                    <!-- <lightning:formattedText value="{!curr.AttachmentName}" /> -->
                                                    <!-- <a href="https://sfpi-mebg-test.olympuschina.com:8081/stg/api/file/preview?key=20220419/8cf583ab71c94eee96da7bbfcc1b376b.html">附件名1</a> -->
                                                    <button tabindex="-1" class="slds-button ReturnButton" style="width: 40px;" name="{!curr.Id}" onclick="{!c.showAttachmentDisplay}">查看</button>
                                                    <!-- <a onclick="{!c.showAttachmentDisplay}">查看</a> -->
                                                    <!-- <a href="{!'/eSignSystem/s/AttachmentDisplay?DNId='+ curr.Id}" target="_blank">查看</a> -->
                                                    <!-- <a href="https://ocsm stagefull.sandbox.file.force.com/servlet/servlet.FileDownload?file=00P1000001QkhvQ">{!curr.AttachmentName}</a> -->
                                            </div>
                                        </span>
force-app/main/default/aura/eSignHomePage/eSignHomePageController.js
@@ -84,10 +84,11 @@
    },
    // è¿›å£å•证 fy start
    showAttachmentDisplay: function(cmp, event, helper) {
        helper.showAttachmentDisplay(cmp, event);
        // helper.showAttachmentDisplay(cmp, event);
        helper.showAttachmentDisplay2(cmp, event);
    },
    rebackDNListPage: function(cmp, event, helper) {
        helper.rebackDNListPage(cmp, event);
    }
    },
    // è¿›å£å•证 fy end
})
force-app/main/default/aura/eSignHomePage/eSignHomePageHelper.js
@@ -1,6 +1,6 @@
({
    init: function(cmp, event) {
        debugger
        // åˆ›å»ºBase64对象
        var Base64 = {
            _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
@@ -87,7 +87,10 @@
        debugger
        var flag = this.getURLISTrueParameter();
        //参数对象map
        var paramValue = this.getURLParameterValue();
        //20230302 è¿›å£å•证改造 fy start
        // var paramValue = this.getURLParameterValue();
        var paramValue = this.getURLParameterValue(cmp);
        //20230302 è¿›å£å•证改造 fy end
        //参数对象map的长度
        var length = Object.keys(paramValue).length;
@@ -223,11 +226,25 @@
            //解码后的管理编码
            cmp.set("v.decodeCode", code.replace(reg, "$2"));
            //20230302 è¿›å£å•证改造 fy start
            //隐藏检索页
            cmp.set("v.DNNameInput", true);
            // cmp.set("v.DNNameInput", true);
            //20230302 è¿›å£å•证改造 fy start
            //显示首页
            cmp.set('v.buttonGroup', false);
            //20230302 è¿›å£å•证改造 fy start
            if(paramValue.pinit=='true'){
                cmp.set("v.DNNameInput", false);
                cmp.set("v.code", code.replace(reg, "$2"));
                cmp.set('v.allWidth', document.documentElement.clientWidth - 40);
                cmp.set('v.floatWidth', document.documentElement.clientWidth * 0.85);
                cmp.set('v.floatWidth1', document.documentElement.clientWidth);
                console.log('floatWidth:' + document.documentElement.clientWidth * 0.85);
                this.getAccountHandler(cmp);
            }else{
                cmp.set("v.DNNameInput", true);
            }
            //20230302 è¿›å£å•证改造 fy end
        }
        //判断DNName是否为空 ä¸ä¸ºç©ºåˆ™éšè—æ£€ç´¢é¡µ
@@ -1030,14 +1047,21 @@
        // add slds-hide class from mySpinner
        var spinner = cmp.find("mySpinner");
        $A.util.addClass(spinner, "slds-hide");
    },
    getURLParameterValue: function() {
    }, //20230302 è¿›å£å•证改造 fy start
    getURLParameterValue: function(cmp) {
    // getURLParameterValue: function() {
       //20230302 è¿›å£å•证改造 fy end
        var querystring = window.location.search.substr(1);
        var paramValue = {};
        querystring.split("&").forEach(function(part) {
            var param = part.split("=");
            paramValue[param[0]] = decodeURIComponent(param[1]);
            //20230302 è¿›å£å•证改造 fy start
            if(param[0]=='AgencyID'){
                cmp.set("v.AgencyIDM", param[1]);
            }
            //20230302 è¿›å£å•证改造 fy end
        });
        //console.log('paramValue-' + paramValue);
@@ -1446,7 +1470,15 @@
        debugger
        cmp.set('v.AttachmentDisplayflag', false);
        cmp.set('v.DNListPage', true);
    }
    },
    showAttachmentDisplay2: function(cmp, event) {
        debugger
        var DNId = event.target.name;
        //20230302 è¿›å£å•证改造 fy start
        var AgencyIDM = cmp.get('v.AgencyIDM');
        window.open('/eSignSystem/s/AttachmentDisplay?DNId=' + DNId+'&AgencyIDM='+AgencyIDM, '_blank');
        //20230302 è¿›å£å•证改造 fy end
    },
    // è¿›å£å•证 fy end
})
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPage.cmp
@@ -1,5 +1,10 @@
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes" 
access="global"  controller="eSignHospitalPageController">
<!-- èŽ·å–AWS信息  deloitte zhj 2022-01-03 start -->
<aura:attribute name="staticResource" type="Object" />
<!-- èŽ·å–AWS信息  deloitte zhj 2022-01-03 end -->
<!-- eSignHospitalPageController -->
        <aura:attribute name="DNName" type="String" 
                    description="用来从父对象接收传递过来的DN号"
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPageController.js
@@ -8,6 +8,21 @@
        helper.getColumnAndAction(cmp);
        // ä»Žæ•°æ®åº“里面读取数据
        helper.geteSign(cmp);
        //zhj 2022-01-03 start
        helper.CallBackAction(cmp,'getAWS',{
            objectName : 'Document'
        },function(data){
            console.log('进入getAWS');
            if(data.getState() == "SUCCESS"){
                var rv = data.getReturnValue()
                if(rv.IsSuccess){
                    let staticResource = JSON.parse(rv.Data);
                    console.log('staticResource = ' + staticResource);
                    cmp.set('v.staticResource',staticResource);
                }
            }
        });
        //zhj 2022-01-03 end
    },
    // æ˜Žç»†é¡µè¡¨æ ¼çš„翻页下一页 
    handleNext : function(cmp, event, helper) { 
@@ -703,15 +718,28 @@
        var deletecount = count - 1;
        cmp.set("v.fileSize", deletecount);
        //关联后端代码删除签收单录入表中的附件
        var action = cmp.get("c.deleteChunk");
        //var action = cmp.get("c.deleteChunk");
        var action = cmp.get("c.deleteFile");             //zhj åˆ é™¤sf的附件 2023-01-23
        var attachmentID = cmp.get("v.attachmentID");
        var AttachmentID = attachmentID[name];
        action.setParams({
            AttachmentId : AttachmentID
            //AttachmentId: AttachmentID
            fileId : AttachmentID
        });
        //通过页面断点验证action方法是否成功
        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                var awsKey = response.getReturnValue();
                var keyList = [];
                keyList.push(awsKey);
                //zhj åˆ é™¤AWS的附件 2023-01-23
                let staticResource = cmp.get('v.staticResource');
                helper.awsPushData(staticResource.deleteUrl,keyList, function(result){
                    console.log('删除附件');
                    console.log('result = ' + JSON.stringify(result))
                },staticResource.token,'POST')
            }
        });
        //执行action方法
        $A.enqueueAction(action);    
force-app/main/default/aura/eSignHospitalPage/eSignHospitalPageHelper.js
@@ -869,45 +869,58 @@
            //用于判断上传同一个文件提示
            component.set("v.messageFlag",false);
            messageFlag = component.get("v.messageFlag");
            var action = component.get("c.saveChunk");
            action.setParams({
              parentId: component.get("v.parentId"),
              fileName: file.name,
              base64Data: encodeURIComponent(getchunk),
              contentType: file.type,
              fileId: attachId
            });
            // set call back
            action.setCallback(this, function(response) {
              // store the response / Attachment Id
              attachId = response.getReturnValue();
              //增加文件列表删除功能  精琢技术 thh 2021-09-02 start
              //关联附件ID和附件名
              var attachmentID = component.get("v.attachmentID");
              attachmentID[file.name] = attachId;
              component.set("v.attachmentID", attachmentID);
              //增加文件列表删除功能  精琢技术 thh 2021-09-02 end
              var state = response.getState();
              if (state === "SUCCESS") {
                // update the start position with end postion
            //zhj ä¸ä½¿ç”¨åˆ†æ‰¹ä¸Šä¼ çš„功能,等该文件累计完成之后再上传到AWS然后存在sf的FileAddress__c start
            debugger
                startPosition = endPosition;
                endPosition = Math.min(
                  fileContents.length,
                  startPosition + this.CHUNK_SIZE
                );
                // check if the start postion is still less then end postion
                // then call again 'uploadInChunk' method ,
                // else, diaply alert msg and hide the loading spinner
                if (startPosition < endPosition) {
                  this.uploadInChunk(
                    component,
                    file,
                    fileContents,
                    startPosition,
                    endPosition,
                    attachId
                  );
                } else {
            // if (startPosition < endPosition) {
            //     this.uploadInChunk(
            //         component,
            //         file,
            //         fileContents,
            //         startPosition,
            //         endPosition,
            //         ''
            //     );
            // }
            let staticResource = component.get('v.staticResource');
            var reader = new FileReader();
            reader.readAsDataURL(file);
            var that = this;
            reader.onloadend = function(evt){
                if(evt.target.readyState == FileReader.DONE){
                    var base64value = evt.target.result;
                    var Base64 = {};
                    Base64.file = base64value;
                    Base64.fileName = file.name;
                    Base64.size = fileContents.length;
                    //调用AWS ä¿å­˜æ–‡ä»¶v.staticResource
                    that.awsPushData(staticResource.newUrl,JSON.stringify(Base64), function(result){
                        console.log('result = ' + result);
                            if(result.status == '0'){
                                that.CallBackAction(component,'saveFile',{
                                    fileName: file.name,
                                    key : result.object,
                                    transId : result.txId,
                                    parentId: component.get("v.parentId")
                                },function(response){
                                    //增加文件列表删除功能  精琢技术 thh 2021-09-02 end
                                    var state = response.getState();
                                    if (state === "SUCCESS") {
                                        //执行trans方法,进行确认成功
                                        that.awsPushData(staticResource.updateUrl,JSON.stringify({ 'txId': result.txId, "isSuccess": 1 }), function(result){
                                            console('确认事务 =' + json.stringify(result));
                                        },staticResource.token,'POST');
                                        // store the response / Attachment Id
                                        attachId = response.getReturnValue();       //attachId改造之后变成了是File_Address__c的Id deloitte-zhj 2023-01-11
                                        //增加文件列表删除功能  精琢技术 thh 2021-09-02 start
                                        //关联附件ID和附件名
                                        var attachmentID = component.get("v.attachmentID");
                                        attachmentID[file.name] = attachId;
                                        component.set("v.attachmentID", attachmentID);
                  //判断上传文件内容 æç¤ºä¸€æ¬¡ä¿¡æ¯
                  var base = component.get("v.getchunk");
                  if(!base || (base&&base!=getchunk)){
@@ -975,7 +988,8 @@
                    }
                  }
                  //上传成功后文件列表的文件名变色  ç²¾ç¢æŠ€æœ¯ thh 2021-09-26 end
                }
                                    //}
                                    //zhj ä¸ä½¿ç”¨åˆ†æ‰¹ä¸Šä¼ çš„功能,等该文件累计完成之后再上传到AWS然后存在sf的FileAddress__c end
                // handel the response errors
              } else if (state === "INCOMPLETE") {
                alert("From server: " + response.getReturnValue());
@@ -994,9 +1008,11 @@
                  console.log("Unknown error");
                }
              }
            });
            // enqueue the action
            $A.enqueueAction(action);
                                })
                            }
                    })
                }
            }
        }
@@ -1007,52 +1023,77 @@
    //用于判断上传同一个文件提示
    component.set("v.messageFlag",false);
    messageFlag = component.get("v.messageFlag");
    var action = component.get("c.saveChunk");
    action.setParams({
      parentId: component.get("v.parentId"),
      fileName: file.name,
      base64Data: encodeURIComponent(getchunk),
      contentType: file.type,
      fileId: attachId
    });
    // set call back
    action.setCallback(this, function(response) {
      // store the response / Attachment Id
      attachId = response.getReturnValue();
      //增加文件列表删除功能  精琢技术 thh 2021-09-02 start
      //关联附件ID和附件名
      var attachmentID = component.get("v.attachmentID");
      attachmentID[file.name] = attachId;
      component.set("v.attachmentID", attachmentID);
      //增加文件列表删除功能  精琢技术 thh 2021-09-02 end
      var state = response.getState();
      if (state === "SUCCESS") {
        // update the start position with end postion
    //zhj ä¸ä½¿ç”¨åˆ†æ‰¹ä¸Šä¼ çš„功能,等该文件累计完成之后再上传到AWS然后存在sf的FileAddress__c start
    debugger
        startPosition = endPosition;
        endPosition = Math.min(
          fileContents.length,
          startPosition + this.CHUNK_SIZE
        );
        // check if the start postion is still less then end postion
        // then call again 'uploadInChunk' method ,
        // else, diaply alert msg and hide the loading spinner
        if (startPosition < endPosition) {
          this.uploadInChunk(
            component,
            file,
            fileContents,
            startPosition,
            endPosition,
            attachId
          );
        } else {
    // if (startPosition < endPosition) {
    //     this.uploadInChunk(
    //         component,
    //         file,
    //         fileContents,
    //         startPosition,
    //         endPosition,
    //         ''
    //     );
    // }
    let staticResource = component.get('v.staticResource');
    var reader = new FileReader();
    reader.readAsDataURL(file);
    var that = this;
    reader.onloadend = function(evt){
        if(evt.target.readyState == FileReader.DONE){
            var base64value = evt.target.result;
            var Base64 = {};
            Base64.file = base64value;
            Base64.fileName = file.name;
            Base64.size = fileContents.length;
            //调用AWS ä¿å­˜æ–‡ä»¶v.staticResource
            that.awsPushData(staticResource.newUrl,JSON.stringify(Base64), function(result){
                console.log('result = ' + result);
                if(result.status == '0'){
                    //sf去保存
                    // var action = component.get("c.saveFile");
                    // action.setParams({
                    //     fileName: file.name,
                    //     key : result.object,
                    //     transId : result.txId,
                    //     parentId: component.get("v.parentId")
                    // });
                    that.CallBackAction(component,'saveFile',{
                        fileName: file.name,
                        key : result.object,
                        transId : result.txId,
                        parentId: component.get("v.parentId")
                    },function(response){
                    // });
                    // action.setCallback(that, function(response) {
                        //增加文件列表删除功能  精琢技术 thh 2021-09-02 end
                        var state = response.getState();
                        if (state === "SUCCESS") {
                            //执行trans方法,进行确认成功
                            that.awsPushData(staticResource.updateUrl,JSON.stringify({ 'txId': result.txId, "isSuccess": 1 }), function(result){
                                console('确认事务 =' + JSON.stringify(result));
                            },staticResource.token,'POST');
                            // store the response / Attachment Id
                            attachId = response.getReturnValue();       //attachId改造之后变成了是File_Address__c的Id deloitte-zhj 2023-01-11
                            //增加文件列表删除功能  精琢技术 thh 2021-09-02 start
                            //关联附件ID和附件名
                            var attachmentID = component.get("v.attachmentID");
                            attachmentID[file.name] = attachId;
                            component.set("v.attachmentID", attachmentID);
          //判断上传文件内容 æç¤ºä¸€æ¬¡ä¿¡æ¯
          var base = component.get("v.getchunk");
          if(!base || (base&&base!=getchunk)){
            // alert("您已经成功上传文件。");
            component.set("v.getchunk",getchunk );
          }
          alert("您已经成功上传文件。\n请点击提交后退出。");
          //用于提交按钮判断是否有已上传的文件
          component.set('v.IsUpLoad',true);
@@ -1113,12 +1154,13 @@
            }
          }
          //上传成功后文件列表的文件名变色  ç²¾ç¢æŠ€æœ¯ thh 2021-09-26 end
        }
                            //zhj ä¸ä½¿ç”¨åˆ†æ‰¹ä¸Šä¼ çš„功能,等该文件累计完成之后再上传到AWS然后存在sf的FileAddress__c end
        // handel the response errors
      } else if (state === "INCOMPLETE") {
        alert("From server: " + response.getReturnValue());
        component.set("v.showLoadingSpinner", false);
        component.set("v.errorFlag", true);
      } else if (state === "ERROR") {
        var errors = response.getError();
        component.set("v.showLoadingSpinner", false);
@@ -1133,7 +1175,13 @@
      }
    });
    // enqueue the action
    $A.enqueueAction(action);
                    //$A.enqueueAction(action);
                }
            },staticResource.token,'POST');
        }else{
            alert('Could not read file');
        }
    }
    }else{
     if(messageFlag){
          alert("您已经上传过该文件了!")
@@ -1222,5 +1270,54 @@
    }
    
    return imgScale;
},
},CallBackAction  : function(component,action_name,para,callback) {  //调用后台方法 zhj 2022-01-03
    var action = component.get("c." + action_name.trimStart().replace("c.",""));
    if(para){
        action.setParams(para);
    }
    if(callback){
        action.setCallback(this,function(data){
            callback(data);
        });
    }
    $A.enqueueAction(action);
},trans : function (fileName,txId,isSuccess){       //确认事务 AWS zhj 2022-01-03
    let transParameters = {
        txId: txId,
        isSuccess: isSuccess
    };
    console.log('txId = ' + txId);
    AWSService.confirmTrans(staticResource.updateUrl,JSON.stringify(transParameters),function(result){
        console.log(fileName);
        console.log(JSON.stringify(result))
    },staticResource.token)
},awsPushData : function(destUrl, payloadForNewPI, callback, token,type) {  //确认事务 AWS zhj 2022-01-03
   console.log('enter '+type);
   let payloadstr= null;
   if (payloadForNewPI) {
       if (typeof payloadForNewPI == 'string') {
           payloadstr = payloadForNewPI;
       }else{
           payloadstr = JSON.stringify(payloadForNewPI);
       }
   }
   console.log(payloadstr);
   fetch(destUrl, {
        method: type,
        body: payloadstr,
        headers: {
            'Content-Type': 'application/json',
            'pi-token': token
        }
    }).then((data) => {
        return data.json();
    }).then((result) => {
        console.log(result);
        callback(result);
    }).catch(error => {
        console.log(error);
        callback(0);
    });
}
})
force-app/main/default/aura/eSignHospitalQR/eSignHospitalQRHelper.js
@@ -20,8 +20,8 @@
            function makeCode() {
                //qrcode.clear();
                
                qrcode.makeCode("https://ocm.force.com/eSignSystem/s/EsignDataEntry?DNName="+encode);
                //qrcode.makeCode("https://stagefull-ocm.cs113.force.com/eSignSystem/s/EsignDataEntry?DNName="+encode);
                // qrcode.makeCode("https://ocm.force.com/eSignSystem/s/EsignDataEntry?DNName="+encode);
                qrcode.makeCode("https://ocsm--stagefull.sandbox.my.site.com/eSignSystem/s/EsignDataEntry?DNName="+encode);
            };
            //调用生成二维码方法
force-app/main/default/classes/AccountDailyUpdateBatchSchedule.cls
@@ -9,10 +9,12 @@
        Integer workdays = UpdateUserTextColBatch.getOlympusWorkDayCount(mon1stDate, toDate);
        //每月到昨天的工作日
        Integer workdays1 = UpdateUserTextColBatch.getOlympusWorkDayCount(mon1stDate, yesterDate);
        Integer day = Date.today().day();
        System.debug(day + '===========123');
        //Integer Soakup_NotExecute_Day = Integer.valueOf(System.Label.Soakup_NotExecute_Day);
        Integer SSBacth_Execute_Day = Integer.valueOf(System.Label.SSBacth_Execute_Day);
        if (workdays1 == SSBacth_Execute_Day || workdays != SSBacth_Execute_Day) {
        // if (workdays1 == SSBacth_Execute_Day || workdays != SSBacth_Execute_Day) { // 2023-3-1   zyh   æ³¨é‡Š
        if (day != SSBacth_Execute_Day) { // 2023-3-1   zyh   add
            // Id execBTId = Database.executeBatch(new AccountDailyUpdateBatch('1.华北'),4);      // 2022-06-01   zyh   udate
            // execBTId = Database.executeBatch(new AccountDailyUpdateBatch('2.东北'),4);     // 2022-06-01   zyh   udate
            // execBTId = Database.executeBatch(new AccountDailyUpdateBatch('3.西北'),4);     // 2022-06-01   zyh   udate
force-app/main/default/classes/AccountDailyUpdateBatchScheduleTest.cls
@@ -3,7 +3,7 @@
    
    @isTest static void test_method_one() {
        // Implement test code
        String CRON_EXP = '0 0 0 3 9 ? 2022';
        String CRON_EXP = '0 0 0 4 2 ? 2025';
         System.Test.startTest();
        // Schedule the test job
        String jobId = system.schedule('AccountDailyUpdateBatchScheduleTest', CRON_EXP, new AccountDailyUpdateBatchSchedule());
force-app/main/default/classes/AgencyOppUpdHandler.cls
@@ -27,7 +27,10 @@
        set_AgencyOpportunity_OCSMOwner();
        if (updAgencyOpportunityMap.size() > 0) {
            // è·³è¿‡è¯¢ä»·trigger
            StaticParameter.EscapeOppandStaTrigger = true;
            update updAgencyOpportunityMap.values();
            StaticParameter.EscapeOppandStaTrigger = false;
        }
    }
@@ -36,7 +39,10 @@
        set_AgencyOpportunity_OCSMOwner();
        if (updAgencyOpportunityMap.size() > 0) {
            // è·³è¿‡è¯¢ä»·trigger
            StaticParameter.EscapeOppandStaTrigger = true;
            update updAgencyOpportunityMap.values();
            StaticParameter.EscapeOppandStaTrigger = false;
        }
        updateTask(); // 2022-6-27 yjk  è¯¢ä»·ä»»åŠ¡
force-app/main/default/classes/AgencyOppUpdHandlerTest.cls
@@ -87,7 +87,7 @@
        opp.Agency_Opportunity__c = agency_Opp.Id;
        opp.Name = 'test询价';
        opp.StageName = '目標';
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        Test.startTest();
        insert opp;
@@ -174,7 +174,7 @@
        opp.StageName = '目標';
        //opp.AgencyOpp_FromOCM__c = true;
        opp.SAP_Send_OK__c = false;
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        Test.startTest();
        insert opp;
@@ -267,7 +267,7 @@
        opp.Name = 'test询价';
        opp.StageName = '目標';
        opp.SAP_Send_OK__c = false;
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        opp.SAP_Send_OK__c = true;
        insert opp;
force-app/main/default/classes/AgencyOpportunityHandler.cls
@@ -239,6 +239,7 @@
        }
        // FIXME develoerNameより
        /*20230214 you  DB202302187947 101去掉一个sql
        String[] deptTypes = new String[] {'Department_Class_OTH', 'Department_Class_BF', 'Department_Class_GYN', 'Department_Class_GS', 'Department_Class_URO', 'Department_Class_GI', 'Department_Class_ENT', 'Department_Class_ET'};
        List<RecordType> deptRects = [select Id, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName IN :deptTypes];
        Map<String, String> deptRectMap = new Map<String, String>();
@@ -262,6 +263,32 @@
                deptRectMap.put('ET', rect.Id);
            }
        }
        */
        //添加新逻辑 start
        String[] deptTypes = new String[] {'Department_Class_OTH', 'Department_Class_BF', 'Department_Class_GYN', 'Department_Class_GS', 'Department_Class_URO', 'Department_Class_GI', 'Department_Class_ENT', 'Department_Class_ET'};
        Map<String, String> deptRectMap = new Map<String, String>();
        Map<String, Schema.RecordTypeInfo> deptrectAllMap = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName();
        for (string rect : deptTypes) {
            ID accid=deptrectAllMap.get(rect).getRecordTypeId();
            if (rect == 'Department_Class_OTH') {
                deptRectMap.put('OTH', accid);
            } else if (rect == 'Department_Class_BF') {
                deptRectMap.put('BF', accid);
            } else if (rect == 'Department_Class_GYN') {
                deptRectMap.put('GYN', accid);
            } else if (rect == 'Department_Class_GS') {
                deptRectMap.put('GS', accid);
            } else if (rect == 'Department_Class_URO') {
                deptRectMap.put('URO', accid);
            } else if (rect == 'Department_Class_GI') {
                deptRectMap.put('GI', accid);
            } else if (rect == 'Department_Class_ENT') {
                deptRectMap.put('ENT', accid);
            } else if (rect == 'Department_Class_ET') {
                deptRectMap.put('ET', accid);
            }
        }
         //添加新逻辑 end
        Map<Id, Id> ahMap = new Map<Id, Id>();
        List<Agency_Hospital_Link__c> ahlist = [select Id, Hospital__c from Agency_Hospital_Link__c where Id in :ahId];
force-app/main/default/classes/AgencyOpportunityHandlerTest.cls
@@ -256,6 +256,8 @@
        insert new List<contact> {contact1,contact2,contact3};
        Test.startTest();
        User thisUser= [select Id from User where Id=:UserInfo.getUserId()];
        System.runAs (thisUser){
        // ãƒ¦ãƒ¼ã‚¶ãƒ¼
        //Profile p = [select Id from Profile where Name = '901_经销商周报'];
        Profile p = [select Id from Profile where Name = '901_经销商活动系统'];
@@ -329,7 +331,7 @@
        opp.StageName = '目標';
        //opp.AgencyOpp_FromOCM__c = true;
        opp.SAP_Send_OK__c = false;
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        insert opp;
        opp.SAP_Send_OK__c = true;
@@ -350,7 +352,7 @@
        opp2.Name = 'test询价2';
        opp2.StageName = '目標2';
        opp2.SAP_Send_OK__c = false;
        opp2.CloseDate = Date.newInstance(2222, 7, 15);
        opp2.CloseDate = Date.newInstance(2023, 7, 15);
        opp2.SAP_Send_OK__c = true;
        
        // Test.startTest();
@@ -370,6 +372,7 @@
                FROM Agency_Opportunity__Share
                WHERE ParentId=:agency_opportunity.Id and RowCause <>:rowCause];
        System.assertEquals(user.Id, agencyopportunityShare[0].UserOrGroupId);
    }
    }
    // ç»é”€å•†æ‰€æœ‰è€…テスト
@@ -408,7 +411,8 @@
        insert new List<contact> {contact1,contact2,contact3};
        //insert new List<contact> {contact1,contact2};
User thisUser= [select Id from User where Id=:UserInfo.getUserId()];
System.runAs (thisUser){
        // ãƒ¦ãƒ¼ã‚¶ãƒ¼
        //Profile p = [select Id from Profile where Name = '901_经销商周报'];
        Profile p = [select Id from Profile where Name = '901_经销商活动系统'];
@@ -482,7 +486,7 @@
        opp.StageName = '目標';
        //opp.AgencyOpp_FromOCM__c = true;
        opp.SAP_Send_OK__c = false;
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        opp.OwnerId = user.Id;
        insert opp;
@@ -520,6 +524,7 @@
        System.assertEquals(userList[0].SalesManager__c, aoList[0].Sales_Manager_F__c);
        //System.assertEquals(aoList[0].Sales_Manager_F__c, aoList[0].Sales_Manager__c);
    }
    }
   // æ™®é€šæ‰€æœ‰è€…テスト
    @isTest
@@ -549,7 +554,8 @@
        contact3.FirstName = '責任者';
        contact3.LastName = 'test2经销商';
        insert new List<contact> {contact1,contact2,contact3};
User thisUser= [select Id from User where Id=:UserInfo.getUserId()];
System.runAs (thisUser){
        // ãƒ¦ãƒ¼ã‚¶ãƒ¼
        //Profile p = [select Id from Profile where Name = '901_经销商周报'];
        Profile p = [select Id from Profile where Name = '901_经销商活动系统'];
@@ -633,7 +639,7 @@
        opp.StageName = '目標';
        //opp.AgencyOpp_FromOCM__c = true;
        opp.SAP_Send_OK__c = false;
        opp.CloseDate = Date.newInstance(2222, 7, 15);
        opp.CloseDate = Date.newInstance(2023, 7, 15);
        opp.OwnerId = user3.Id;
        insert opp;
@@ -679,6 +685,7 @@
        System.assertEquals(userList[0].SalesManager__c, aoList[0].Sales_Manager_F__c);
        //System.assertEquals(aoList[0].Sales_Manager_F__c, aoList[0].Sales_Manager__c);
    }
    }
    public static void makeNormalData(boolean withAgencyDetail) {
        ControllerUtil.EscapeNFM001Trigger = true;
force-app/main/default/classes/AgencyShareUpdateBatch.cls
@@ -2,12 +2,28 @@
 * Class名: AgencyShareUpdateBatch
 * ç†ç”±: çŽ°åœ¨åªæœ‰ Agency_Opportunity__c, ä»¥åŽä¼šæœ‰æ‰©å±•的可能
 */
global class AgencyShareUpdateBatch implements Database.Batchable<sObject> {
//20230203 lt è®¡åˆ’的作业优化   ---  ç»§æ‰¿åŠ â€œ, Database.Stateful”,不然removeOtherSc方法空指针
global class AgencyShareUpdateBatch implements Database.Batchable<sObject>, Database.Stateful {
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
    private BatchEmailUtil.ScBean scB1;
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
    global AgencyShareUpdateBatch() {
    }
    global Database.QueryLocator start(Database.BatchableContext bc) {
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
        scB1 = BatchEmailUtil.setSc1('AgencyShareUpdateBatchSchedule', 0, 23, 0, '0 30 *', null);
        if (System.Test.isRunningTest() == false) {
            for(CronTrigger ct : [SELECT Id FROM CronTrigger WHERE CronJobDetail.Name =: scB1.scName]) {
                System.abortJob(ct.Id);
            }
            system.schedule(scB1.scName, scB1.scTime, new AgencyShareUpdateBatchSchedule());
        }
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
        return Database.getQueryLocator([SELECT Id
                , OCSM_Owner__c
                , Department_Class_Opp__c
@@ -30,6 +46,7 @@
    }
    global void finish(Database.BatchableContext bc) {
        BatchEmailUtil.removeOtherSc('AgencyShareUpdateBatchSchedule', scB1.scName);  //20230203 lt è®¡åˆ’的作业优化
        // å¦‚果前一个603的batch正在等待状态,则取消掉前一个batch的执行
        List<AsyncApexJob> lstJobs = [SELECT Id FROM AsyncApexJob WHERE (Status = 'Queued' OR Status = 'Holding') AND ApexClass.Name = 'NFM603Batch'];
force-app/main/default/classes/ArriveGoodsController.cls
@@ -667,7 +667,8 @@
                                Consumable_order_details2__c codsIns = new Consumable_order_details2__c();
                                codsIns.RecordTypeId                = System.Label.RT_ConOrderDetail2_Delivery;
                                codsIns.Intra_Trade_List_RMB__c     =null;
                                codsIns.Intra_Trade_List_RMB__c     = reSet1[i].Intra_Trade_List_RMB__c;
                                //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                                codsIns.Asset_Model_No__c           = reSet1[i].Asset_Model_No__c;
                                codsIns.Direct_Arrive_Product__c    = true;
                                codsIns.Sterilization_limit__c      = reSet1[i].Sterilization_limit__c;
@@ -722,7 +723,7 @@
                                Dealer_Shipment__c, Dealer_Saled__c,Consumable_Product__r.Asset_Model_No__c
                                // æ›´æ–°å€Ÿè°ƒä¿¡æ¯ add by gzw 2020-0-415 start
                                ,SummonsForDirction_det__c,Transfer_Time__c,Frist_Transfer_Agency__c,Agency_Transfer__c,
                                Dealer_Info_text__c
                                Dealer_Info_text__c,Intra_Trade_List_RMB__c
                                // æ›´æ–°å€Ÿè°ƒä¿¡æ¯ add by gzw 2020-0-415 start
                                // é¦–次入库经销商信息 add by gzw 2020-04-27 start
                                ,Agencyinfo_fromSAP__c,Frist_Storage_Agency__c 
@@ -784,7 +785,8 @@
                                Consumable_order_details2__c codsIns = new Consumable_order_details2__c();
                                codsIns.RecordTypeId                = System.Label.RT_ConOrderDetail2_Delivery;
                                codsIns.Intra_Trade_List_RMB__c     =null;
                                codsIns.Intra_Trade_List_RMB__c     = reSet1[i].Intra_Trade_List_RMB__c;
                                //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                                codsIns.Asset_Model_No__c           = reSet1[i].Asset_Model_No__c;
                                codsIns.Direct_Arrive_Product__c    = true;
                                codsIns.Sterilization_limit__c      = reSet1[i].Sterilization_limit__c;
@@ -2767,7 +2769,6 @@
            arriveId = orderMain.id;
            Decimal arriveAmount =0;
            for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsUse)  {
                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------1------'));
                Consumable_order_details2__c insDetails = new Consumable_order_details2__c();
                insDetails.Id                           = ass.esd.Id;
                insDetails.Consumable_Arrived_order__c  = orderMain.id;
@@ -2799,11 +2800,14 @@
                // }
                insAfterDel.Name                        = consumable_order[0].Name + '-'+ str;
                insAfterDel.RecordTypeId                = System.Label.RT_ConOrderDetail2_Delivery;
                if(EsetId != null && EsetId != ''){
                // gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                // if(EsetId != null && EsetId != ''){
                //     insAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
                // }else{
                //     insAfterDel.Intra_Trade_List_RMB__c = 0;
                // }
                    insAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
                }else{
                    insAfterDel.Intra_Trade_List_RMB__c = 0;
                }
                //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                insAfterDel.Asset_Model_No__c           = ass.Prod.Asset_Model_No__c;
                if(EsetId != null && EsetId != ''){
                    insAfterDel.Consumable_order_minor__c   = ESetId;
@@ -2876,7 +2880,6 @@
            if(updateconsumableorderdetails2.size() > 0){
                update updateconsumableorderdetails2;
            }
            List<Consumable_order_details2__c> insertconsumableorderdetails2 = new List<Consumable_order_details2__c>();
            for(Consumable_order_details2__c Cod2 : consumableorderdetails2Insert){
                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------4------'));
@@ -3070,6 +3073,7 @@
                            // tcm end
                            //add by rentx 2020-10-14 end
                            ,Report_Product_Expiration__c 
                            ,Intra_Trade_List__c
                    FROM    Consumable_order_details2__c
                    WHERE   ((Dealer_Arrive__c = true
                            AND(  Dealer_Shipment__c = true
@@ -3180,6 +3184,8 @@
                             // tcm end
                            ,Report_Product_Expiration__c
                            //add by rentx 2020-10-13 end
                            ,Intra_Trade_List__c
                            //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                    FROM    Consumable_order_details2__c
                    WHERE
                            // WYIN-BLZE48盘点丢失产品增加入库方式 update by vivek 2020-03-05 start
@@ -3381,7 +3387,8 @@
                                codcorderdet.SerialLotNo__c              = codi.esd.SerialLotNo__c;
                                codcorderdet.TracingCode__c              = codi.esd.TracingCode__c;
                                codcorderdet.Sterilization_limit__c      = codi.esd.Sterilization_limit__c;
                                codcorderdet.Intra_Trade_List_RMB__c     = codi.esd.Intra_Trade_List_RMB__c;
                                //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                                codcorderdet.Intra_Trade_List_RMB__c     =  (codi.esd.Intra_Trade_List_RMB__c == null || codi.esd.Intra_Trade_List_RMB__c == 0) ? codi.esd.Intra_Trade_List__c : codi.esd.Intra_Trade_List_RMB__c;
                                codcorderdet.RemoveBox_No__c             = codctmp.RemoveBox_No__c;
                                codcorderdet.RemoveBox_date__c           = codctmp.RemoveBox_date__c;
                                codcorderdet.Box_Piece__c                = codctmp.Box_Piece__c;
@@ -3463,7 +3470,8 @@
                        codcorderdet.SerialLotNo__c              = codi.esd.SerialLotNo__c;
                        codcorderdet.TracingCode__c              = codi.esd.TracingCode__c;
                        codcorderdet.Sterilization_limit__c      = codi.esd.Sterilization_limit__c;
                        codcorderdet.Intra_Trade_List_RMB__c     = codi.esd.Intra_Trade_List_RMB__c;
                        //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                        codcorderdet.Intra_Trade_List_RMB__c     =  (codi.esd.Intra_Trade_List_RMB__c == null || codi.esd.Intra_Trade_List_RMB__c == 0) ? codi.esd.Intra_Trade_List__c : codi.esd.Intra_Trade_List_RMB__c;
                        // WYIN-BLZE48盘点丢失产品增加入库方式 update by vivek 2020-03-05 start
                        if(hasLoseGoods){
                            codcorderdet.loseInventory__c = true;
@@ -3496,7 +3504,6 @@
                        codcList.add(   codi.esd    );
                    }
                }
                //明细2不存在的对应的到货订单明细 2017-07-05
                Integer i = 1;
                //for(ConsumableorderdetailsInfo ass : consumableInventoryUse){
@@ -3517,7 +3524,8 @@
                    //到货明细
                    codcorderdetail.Name                        = consumable_order_arr[0].Name + '-'+ str;
                    codcorderdetail.RecordTypeId                = System.Label.RT_ConOrderDetail2_Delivery;
                    codcorderdetail.Intra_Trade_List_RMB__c     = null;
                    codcorderdetail.Intra_Trade_List_RMB__c     = ass.Prod.Intra_Trade_List_RMB__c;
                    //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                    codcorderdetail.Asset_Model_No__c           = ass.Prod.Asset_Model_No__c;
                    codcorderdetail.Direct_Arrive_Product__c    = true;
                    codcorderdetail.Sterilization_limit__c      = ass.sterilizationlimitDate;
@@ -3557,7 +3565,8 @@
                    
                    retorddetail.Name                        = consumable_order_ret[0].Name + '-'+ str;
                    retorddetail.RecordTypeId                = System.Label.RT_ConOrderDetail2_Return;
                    retorddetail.Intra_Trade_List_RMB__c     = null;
                    retorddetail.Intra_Trade_List_RMB__c     = ass.Prod.Intra_Trade_List_RMB__c;
                    //gzw æ‰‹åŠ¨å…¥åº“ é»˜è®¤äº§å“å•ä»· 20230307
                    retorddetail.Dealer_Info_IF__c           = accountid;
                    retorddetail.Asset_Model_No__c           = ass.Prod.Asset_Model_No__c;
                    retorddetail.Direct_Arrive_Product__c    = true;
force-app/main/default/classes/AssetHandler.cls
@@ -5,6 +5,7 @@
    private Map<Id, Asset> oldMap;
    private List<Asset> newList;
    private List<Asset> oldList;
    private static final Map<String,Schema.RecordTypeInfo>  DEVELOPERNAMEMAP  = Schema.SObjectType.Asset.getRecordTypeInfosByDeveloperName();// 20230306 ljh add
    @TestVisible private static Set<String> testTargetDepts;
    @TestVisible private static Id Account_Asset_Id;
     public static Boolean disabled = false;
@@ -109,7 +110,11 @@
        StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger = true;
        Set<id> AssetIDSet = new Set<id>();
        for(Asset tempAsset : newList){
            if(String.isNotBlank(tempAsset.warrantyType__c)){
            // 20230306 ljh update start
            Id Shipment = DEVELOPERNAMEMAP.get('Shipment').getRecordTypeId();
            // if(String.isNotBlank(tempAsset.warrantyType__c)){
            if(String.isNotBlank(tempAsset.warrantyType__c) && Shipment != tempAsset.RecordTypeId){
            // 20230306 ljh update end
                AssetIDSet.add(tempAsset.id);
            }
        }
force-app/main/default/classes/AssetHandler.cls-meta.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>35.0</apiVersion>
    <apiVersion>50.0</apiVersion>
    <status>Active</status>
</ApexClass>
force-app/main/default/classes/AssetUpdateContractBatch.cls
@@ -107,25 +107,7 @@
    global void execute(Database.BatchableContext BC,
                        list<Maintenance_Contract__c> MCList) {
        //URF限次合同2期 LY 20220908 start
        set<id> mcIDSet = new set<id>();
        for (Maintenance_Contract__c tempMCA : MCList) {
            mcIDSet.add(tempMCA.id);
        }
        //获取非限次合同
        List<Maintenance_Contract__c> mcPList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c ,
                                                previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c
                                                , RecordType_DeveloperName__c
                                                from Maintenance_Contract__c
                                                where URF_Contract__c = false and ID in :mcIDSet];
        //获取限次合同
        List<Maintenance_Contract__c> urfMCList =[select id , previousTotalRepairAmount__c , currentTotalRepairAmount__c ,
                                                previousTotalContractAmount__c , currentTotalContractAmountVM__c , currentTotalGuaranteePrice__c
                                                , RecordType_DeveloperName__c
                                                from Maintenance_Contract__c
                                                where URF_Contract__c = true and ID in :mcIDSet];
                                               
        //URF限次合同2期 LY 20220908 end
        map<string, asset> updateAssetMap = new map<string, asset>();
        map<string, Maintenance_Contract__c> UpdateMCMap =
@@ -142,7 +124,7 @@
        Set<ID> allAssetIDSet = new Set<ID>();
        List<asset> allAssetList = new List<asset>();
        // åˆå§‹åŒ–维修合同消费率相关金额字段为0;
        for (Maintenance_Contract__c tempMC : mcPList) {
        for (Maintenance_Contract__c tempMC : MCList) {
            mcIDmap.put(tempMC.id,null);
            tempMC.currentTotalRepairAmount__c  = 0;
            tempMC.previousTotalRepairAmount__c = 0;
@@ -172,6 +154,7 @@
             Maintenance_Contract__r.Estimation_Id__r.Submit_quotation_day__c,
             Maintenance_Contract__r.RecordType.DeveloperName
             , ifHaveleftInPrevious__c
             ,Maintenance_Contract__r.URF_Contract__c
             from Maintenance_Contract_Asset__c
             where Maintenance_Contract__c in: mcIDmap.keyset()
            ];
@@ -253,13 +236,15 @@
            allAssetIDSet.add(mca.Asset__c);
            newToOldMCA.put(mca.id, null);
        }
        //system.debug('allAssetIDSet:' + allAssetIDSet);
        system.debug('allAssetIDSet:' + allAssetIDSet);
        //system.debug('newToOldMCA:' + newToOldMCA);
        allAssetList =
            [select id, CurrentContract_F__c,
             CurrentContract_F__r.Contract_End_Date__c,
             CurrentContract_F_asset__c,
             CurrentContract_F_asset__r.endDate_sum__c
             ,URF_Maintenance_Contract__c
             ,URF_Maintenance_Contract__r.Contract_End_Date__c
             from asset
             where id in: allAssetIDSet];
        // æ›´æ–°ä¿æœ‰è®¾å¤‡ä¸Šçš„上一期维修合同和维修合同保有设备
@@ -267,70 +252,30 @@
        for (asset ass : allAssetList) {
            Maintenance_Contract_Asset__c tempMCA =
                assetIDtoMCA.get(ass.Id);
            if (tempMCA != null &&
            if (tempMCA != null) {
                if (tempMCA.Maintenance_Contract__r.URF_Contract__c==true &&
                    (ass.URF_Maintenance_Contract__c == null ||
                       ass.URF_Maintenance_Contract__r.Contract_End_Date__c <= tempMCA.endDate_sum__c
                        )) {
                    ass.URF_Maintenance_Contract__c = tempMCA.Maintenance_Contract__c;
                }
                if (tempMCA.Maintenance_Contract__r.URF_Contract__c==false &&
                    (
                        ass.CurrentContract_F__c == null  ||
                        ass.CurrentContract_F_asset__c == null ||
                        ass.CurrentContract_F_asset__r.endDate_sum__c <=
                        tempMCA.endDate_sum__c
                    ) ) {
                    )
                    ){
                ass.CurrentContract_F__c = tempMCA.Maintenance_Contract__c;
                ass.CurrentContract_F_asset__c = tempMCA.id;
                }
                updateAssetMap.put(ass.id, ass);
            }
        }
        //URF限次合同2期 LY 20220908 start
        Map<string,Maintenance_Contract__c> mcURFIDmap = new Map<string,Maintenance_Contract__c>();
        for (Maintenance_Contract__c tempURFMC : urfMCList) {
            mcURFIDmap.put(tempURFMC.Id, null);
        }
        //检索本次限次合同的保有设备
        List<Maintenance_Contract_Asset__c> mcURFList =
            [select Id, Asset__c, Maintenance_Contract__c,
             Estimate_Cost_formula__c,
             startDate_sum__c,
             endDate_sum__c,
             No_discount__c,
             GuaranteePrice_Amount_Text__c,
             Maintenance_Contract__r.Status__c,
             Maintenance_Contract__r.Name,
             Maintenance_Contract__r.Contract_End_Date__c,
             Maintenance_Contract__r.Contract_Start_Date__c,
             Maintenance_Contract__r.RecordType_DeveloperName__c,
             Maintenance_Contract__r.Estimation_Id__r.Submit_quotation_day__c,
             Maintenance_Contract__r.RecordType.DeveloperName
             , ifHaveleftInPrevious__c
             from Maintenance_Contract_Asset__c
             where Maintenance_Contract__c in: mcURFIDmap.keyset()
            ];
        Set<ID> allURFAssetIDSet = new Set<ID>();
        Map<string, Maintenance_Contract_Asset__c> assetIDtoURF =new Map<string, Maintenance_Contract_Asset__c>();
        for (Maintenance_Contract_Asset__c mcaURF : mcURFList) {
            // æ‰¾å‡ºæ¥æ£€ç´¢å‡ºæ¥çš„维修合同保有中的最新的
            if (assetIDtoURF.containsKey(mcaURF.Asset__c)) {
                Maintenance_Contract_Asset__c tempURF =
                    assetIDtoURF.get(mcaURF.Asset__c);
                if (tempURF.endDate_sum__c < mcaURF.endDate_sum__c) {
                    assetIDtoURF.put(mcaURF.Asset__c, mcaURF);
                }
            } else {
                assetIDtoURF.put(mcaURF.Asset__c, mcaURF);
            }
            allURFAssetIDSet.add(mcaURF.Asset__c);
        }
        List<asset> allURFAssetList =[select id, URF_Maintenance_Contract__c
                         from asset
                         where id in: allURFAssetIDSet];
        for (asset ass : allURFAssetList) {
            Maintenance_Contract_Asset__c tempMCA =
                assetIDtoURF.get(ass.Id);
            ass.URF_Maintenance_Contract__c = tempMCA.Maintenance_Contract__c;
            updateAssetMap.put(ass.id, ass);
        }
        //URF限次合同2期 LY 20220908 end
        //检索出历届保有设备
        list<Maintenance_Contract_Asset__c> allMCAList =
            [select Id, Asset__c, Maintenance_Contract__c,
force-app/main/default/classes/AssetUseInfoSchedule.cls
@@ -8,7 +8,7 @@
global class AssetUseInfoSchedule implements Schedulable {
    global void execute(SchedulableContext sc) {
        // ä¿æœ‰è®¾å¤‡å‰ä¸€å¹´ä½¿ç”¨æƒ…况记录(每年12月31日执行)
        if(Test.isRunningTest() || checkDate(date.today().addDays(-1))){
        if(Test.isRunningTest() || checkDate(date.today().addDays(-2))){
            Id execBTId = Database.executeBatch(new AssetUseInfoBatch(), 200);
        }
    }
force-app/main/default/classes/AttachmentTriggerTest.cls
@@ -57,7 +57,7 @@
        opp.Name                = 'GZ-SP-NFM007_1';
        opp.Trade__c            = '内貿';
        opp.StageName           = '引合';
        opp.CloseDate           = date.newinstance(2022, 11, 30);
        opp.CloseDate           = date.newinstance(2023, 12, 30);
        opp.Stock_apply_status__c = '申请中';
        insert opp;
@@ -190,7 +190,7 @@
        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.Is_Active__c = '草案中';
        hospital.Attribute_Type__c = '卫生部';
        hospital.Speciality_Type__c = '综合医院';
        hospital.Grade__c = '一级';
@@ -234,6 +234,7 @@
            Name = 'test',
            ParentId = hospital.Id,
            Body = EncodingUtil.base64Decode('test')
        );
        insert att;
        
@@ -293,7 +294,7 @@
        opp.Name                = 'GZ-SP-NFM007_1';
        opp.Trade__c            = '内貿';
        opp.StageName           = '引合';
        opp.CloseDate           = date.newinstance(2022, 11, 30);
        opp.CloseDate           = date.newinstance(2023, 11, 30);
        opp.Stock_apply_status__c = '申请中';
        insert opp;
@@ -459,61 +460,85 @@
        System.Test.stopTest();
    }
    @isTest
    /*@isTest
    static void test_method_8() {
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
            return;
        }
        List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 å‘¼å¸ç§‘'];
        if (rectSct.size() == 0) {
            return;
        }
        List<RecordType> rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 æ¶ˆåŒ–ç§‘'];
        if (rectDpt.size() == 0) {
            return;
        }
        Oly_TriggerHandler.bypass(Product2Handler.Class.getName());
        Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName());
        Account company = new Account();
        company.RecordTypeId = rectCo[0].Id;
        company.Name         = 'TestCompany';
        upsert company;
        Account section = new Account();
        section.RecordTypeId = rectSct[0].Id;
        section.Name         = '*';
        section.Department_Class_Label__c = '消化科';
        section.ParentId                  = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account depart = new Account();
        depart.RecordTypeId = rectDpt[0].Id;
        depart.Name         = '*';
        depart.Department_Name__c  = 'TestDepart';
        depart.ParentId            = section.Id;
        depart.Department_Class__c = section.Id;
        depart.Hospital__c         = company.Id;
        upsert depart;
        // çœ
        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;
        // ç—…院を作る
        Account hospital = new Account();
        String rtId = [SELECT ID FROM RecordType WHERE DeveloperName = 'HP'].Id;
        hospital.recordtypeId = rtId;
        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();
        String rtId1 = [SELECT ID FROM RecordType WHERE DeveloperName = 'Department_OTH'].Id;
        dep.recordtypeId = rtId1;
        dep.Name = 'test dep1';
        dep.AgentCode_Ext__c = '9999999';
        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;
        OPDPlan__c opd = new OPDPlan__c();
        opd.Status__c = '计划中';
        opd.OPDPlan_ImplementDate__c = Date.today().addDays(5);
        opd.NoOpp_Reason__c = 'HCP对应';
        opd.OPDType__c = '科室';
        insert opd;
        Rental_Apply__c  rap = new Rental_Apply__c();
        rap.Name = 'testra';
        rap.Product_category__c = 'GI';
        rap.Hospital__c = company.Id;
        rap.Strategic_dept__c = section .Id;
        rap.Account__c = depart.Id;
        rap.Hospital__c = hospital.Id;
        rap.Strategic_dept__c = strategicDep[0].Id;
        rap.Account__c = dep.Id;
        rap.demo_purpose2__c = '试用(无询价)';
        rap.Request_shipping_day__c = Date.toDay();
        rap.Request_return_day__c = Date.toDay();
        rap.OPDPlan__c = opd.id;
        rap.Demo_purpose1__c ='产品试用';
        rap.direct_send__c = '医疗机构';
        rap.Hope_Lonaer_date_Num__c = 16;
        rap.OwnerId = getUser().Id;
        rap.Loaner_received_staff__c = '王五';
        rap.Loaner_received_staff_phone__c = '110';
        rap.direct_shippment_address__c = '北京市';
        rap.Phone_number__c = '1234567890';
        insert rap;
@@ -528,7 +553,71 @@
        insert att;
        System.Test.stopTest();
    }*/
    // 20230206  lt  start
    @isTest
    static void test_method_9() {
        //新建省
        Address_Level__c al = new Address_Level__c();
        al.Name = '東京';
        al.Level1_Code__c = 'CN-99';
        al.Level1_Sys_No__c = '999999';
        insert al;
        // ç—…院を作る
        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;
        RecordType rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Hp'];
        Account acc = new Account();
        acc.RecordTypeId = rectCo.Id;
        acc.Name = 'HP test1';
        acc.Is_Active__c = '有効';
        insert acc;
        //新建 å®¢æˆ·å˜æ›´ç”³è¯·
        Account_Delay_Apply__c ada = new Account_Delay_Apply__c();
        ada.Hospital__c = acc.Id;
        ada.ChangeReason__c = '地址错误';
        ada.State_Master__c = al.Id;
        insert ada;
        System.Test.startTest();
        Attachment att = new Attachment(
            Name = 'test',
            ParentId = hospital.Id,
            Body = EncodingUtil.base64Decode('test')
        );
        insert att;
        att.Name = 'test01';
        update att;
        Attachment att1 = new Attachment(
            Name = '2test',
            ParentId = ada.Id,
            Body = EncodingUtil.base64Decode('test')
        );
        insert att1;
        att1.Name = '2test01';
        update att1;
        System.Test.stopTest();
    }
    // 20230206  lt  end
    private static User getUser() {
        String timenow = Datetime.now().format('yyyyMMddHHmmss');
force-app/main/default/classes/BatchEmailUtil.cls
@@ -189,4 +189,68 @@
        message.setUseSignature(false);
        addMessage(message);
    }
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
    public Class ScBean {
        public String scName;
        public String scTime;
    }
    public static ScBean setSc1(String baseName, Integer minhour, Integer maxhour, Integer minMin, String spbefore, String spafter) {
        Datetime dt = Datetime.now();
        Integer year = Integer.valueOf(dt.format('yyyy'));//2021-12-29 you YYYY--->yyyy æ˜¯å› ä¸ºæœ€åŽä¸€å‘¨è·¨å¹´äº†
        Integer month = Integer.valueOf(dt.format('MM'));
        Integer day = Integer.valueOf(dt.format('dd'));
        Integer hour = Integer.valueOf(dt.format('HH'));
        Integer min = Integer.valueOf(dt.format('mm'));
        ScBean b = new ScBean();
        if (hour == maxhour && min >= (minMin + 30)) {
            b.scName = baseName + '001';
            if (spafter != null && String.isNotBlank(spafter)) {
                b.scName = baseName + '005';
                b.scTime = spafter + ' ' + day + ' ' + month + ' ? ' + year;
                // system.schedule(sJobame,spafter + ' ' + day + ' ' + month + ' ? ' + year, new AgencyShareUpdateBatchSchedule());
                return b;
            }
            else {
                dt = Datetime.now().addDays(1);
                year = Integer.valueOf(dt.format('yyyy'));//2021-12-29 you YYYY--->yyyy æ˜¯å› ä¸ºæœ€åŽä¸€å‘¨è·¨å¹´äº†
                month = Integer.valueOf(dt.format('MM'));
                day = Integer.valueOf(dt.format('dd'));
                hour = Integer.valueOf(dt.format('HH'));
                min = Integer.valueOf(dt.format('mm'));
                if (spbefore != null && String.isNotBlank(spbefore)) {
                    b.scName = baseName + '006';
                    b.scTime = spbefore + ' ' + day + ' ' + month + ' ? ' + year;
                }
                else {
                    b.scTime = '0 ' + minMin + ' ' + minhour + ' ' + day + ' ' + month + ' ? ' + year;
                }
            }
        }
        else if (min < minMin) {
            b.scName = baseName + '001';
            b.scTime = '0 ' + minMin + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
        }
        else if (min < minMin + 30) {
            b.scName = baseName + '002';
            b.scTime = '0 ' + (minMin + 30) + ' ' + hour + ' ' + day + ' ' + month + ' ? ' + year;
        }
        else {
            b.scName = baseName + '001';
            b.scTime = '0 ' + minMin + ' ' + (hour + 1) +' ' + day + ' ' + month + ' ? ' + year;
        }
        return b;
    }
    public static void removeOtherSc(String likeName, String needName) {
        String likeStr = likeName + '00%';
        for(CronTrigger ct : [SELECT Id,CronJobDetailId,CronExpression,CronJobDetail.Name
                                FROM CronTrigger
                               WHERE CronJobDetail.Name Like :likeStr
                                 AND CronJobDetail.Name != :needName]){
            System.abortJob(ct.Id);
        }
    }
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
}
force-app/main/default/classes/CM_SearchContactServiceController.cls
@@ -5,6 +5,7 @@
    public String conId { get; set; }
    public String openLine { get; set; }
    public String accountIdV2{ get; set; }      //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€ 
    private String accountId;
    private String nowValue;
@@ -14,10 +15,12 @@
    public String awsDataIdArray {set;get;}
    public String sfContactId{set;get;} //zhj 2022-12-02 sfId
    public String staticResourceContactV2 {get; set;}   //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€ 
    public CM_SearchContactServiceController() {
        openLine = Apexpages.currentPage().getParameters().get('line');
        accountId = Apexpages.currentPage().getParameters().get('acc');
        accountIdV2 = accountId;
        nowValue = Apexpages.currentPage().getParameters().get('now');
        //2022/02/15 å¼ åŽå»º PI PL start
@@ -39,6 +42,7 @@
        contactsInfo = JSON.serialize(awsIdToContactMap);
        contactAWSIds = JSON.serialize(conAWSIds);
        staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Contact')); 
        staticResourceContactV2 = JSON.serialize(PIHelper.getPIIntegrationInfo('ContactV2'));       //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€ 
        //2022/02/15 å¼ åŽå»º PI PL end
    }
@@ -175,4 +179,58 @@
            con = in_con;
        }
    }
    //zhj MEBG新方案改造 2022-11-24 start
    @RemoteAction
    public static ResponseV2 searchContactByAccountId(String accountId) {
        System.debug('accountId = ' + accountId);
        ResponseV2 res = new ResponseV2();
        try{
            Account account = [select Id,Name from Account where Id = :accountId];
            List<Contact> contactList = [select id,AWS_Data_Id__c, CManageCode__c,Name from Contact where AccountId = :account.Id];
            Map<String,String> dataIdManageCodeMap = new Map<String,String>();
            for(Contact contact : contactList){
                dataIdManageCodeMap.put(contact.AWS_Data_Id__c,contact.CManageCode__c);
            }
            res.dataIdManageCodeMap = dataIdManageCodeMap;
            res.accountName = account.Name;
            res.contactList = contactList;
            Map<String,String> accMap= new Map<String,String>();
            List<Account> accList=[select ID,Is_Active__c,Is_Active_Formula__c from Account where ID =:accountId];
            if(accList.size()>0){
                for(Account acc:accList){
                    if (String.isNotBlank(acc.Is_Active__c)){
                        String subId = acc.Id;
                        accMap.put(subId.substring(0,15), acc.Is_Active__c);
                        continue;
                    }
                    if (String.isNotBlank(acc.Is_Active_Formula__c)){
                        String subId = acc.Id;
                        accMap.put(subId.substring(0,15), acc.Is_Active_Formula__c);
                    }
                }
            }
            System.debug('accMap= ' + accMap);
            res.isNameMobileVerif = true;
            res.isMobileVerif = false;
            res.status = 'success';
            return res;
        }catch(Exception e){
            res.message = e.getMessage() + '';
            res.status = 'fail';
            return res;
        }
    }
    public class ResponseV2{
        public List<Contact> contactList{set;get;}
        public String accountName{set;get;}
        public Map<String,String> dataIdManageCodeMap{set;get;}
        public Boolean isMobileVerif;
        public Boolean isNameMobileVerif;
        public String message{set;get;}
        public String status{set;get;}
    }
    //zhj MEBG新方案改造 2022-11-24 end
}
force-app/main/default/classes/CM_SearchContactServiceControllerTest.cls
@@ -2,7 +2,7 @@
private class CM_SearchContactServiceControllerTest {
    @TestSetup
    static void makeData(){
        TestDataUtility.CreatePIPolicyConfigurations(new String[]{'Contact','Agency_Contact__c'});
        TestDataUtility.CreatePIPolicyConfigurations(new String[]{'Contact','Agency_Contact__c','contactV2'});
    }
    @isTest static void test_method_one() {
@@ -60,6 +60,7 @@
        cmsc.saveNew();
        cmsc.editClear();
        CM_SearchContactServiceController.searchContactByAccountId(depart1.Id);
    }
}
force-app/main/default/classes/CampaignCopyToOPDPlanHandler.cls
@@ -190,7 +190,6 @@
        List<OPDPlan__c> QX_OPDPlan = new List<OPDPlan__c>();
        //查询延期学会的OPDPlan
        List<OPDPlan__c> YQ_OPDPlan = new List<OPDPlan__c>();
        Set<ID> campaignIdSet = new Set<ID>(); // 20230120 ljh DB202301265636 add
        //SWAG-BVGAGD 20201119 you
        List<OPDPlan__c> oPDPlans = new List<OPDPlan__c>();
        // éœ€è¦æ›´æ–°çš„OPD计划的ID集合
@@ -240,19 +239,6 @@
        if (QX_List.size() > 0 && QX_List != null) {
            insert QX_List;
            // 20230120 ljh DB202301265636 start
            List<Rental_Apply_Equipment_Set__c> raesList = [select Id,Rental_End_Date__c from Rental_Apply_Equipment_Set__c where Rental_End_Date__c != null
                                AND Shippment_loaner_time2__c != null
                                AND Rental_Apply__r.RA_Status__c != '完了'
                                AND Rental_Apply__r.RA_Status__c != '取消'
                                AND Rental_Apply__r.Campaign__c = :campaignIdSet ];
            if (null != raesList && raesList.size() > 0) {
                for (Rental_Apply_Equipment_Set__c raes : raesList) {
                    raes.Rental_End_Date__c = Date.today().addDays(5);
                }
                update raesList;
            }
            // 20230120 ljh DB202301265636 end
        }
        // add by gzw OPDPlan__c å•独循环,否则OPDPlan_ImplementDate__c ä¼šè¿˜åŽŸï¼ŒæŠ¥é”™ start
        if (targetIDSet.size() > 0) {
force-app/main/default/classes/CancelPostponePlanHandler.cls
@@ -112,10 +112,24 @@
        // SWAG-BUF6J5 20201111  you start
        if (cancelIdSet.size() > 0) {//查询opd计划下得所有备品借出申请  æ›´æ–° çŠ¶æ€
            List<Rental_Apply__c> Rentals = new List<Rental_Apply__c>();
            // 20230222 ljh DB202301265636 start
            // 20230202 ljh DB202301265636 start
            // List<Rental_Apply__c> RentalList = [select id,Cancel_Reason__c , Loaner_cancel_request__c,OPDPlan__c from Rental_Apply__c where OPDPlan__c in: cancelIdSet and Status__c <> '取消'];
            List<Rental_Apply__c> RentalList = [select id,Cancel_Reason__c , Loaner_cancel_request__c,OPDPlan__c from Rental_Apply__c where OPDPlan__c in: cancelIdSet and Status__c <> '取消'];
            List<Rental_Apply__c> RentalList = [select id,Cancel_Reason__c , Loaner_cancel_request__c,OPDPlan__c from Rental_Apply__c where OPDPlan__c in: cancelIdSet and Status__c <> '取消' AND Shipment_request_Cnt__c = 0];
            // 20230202 ljh DB202301265636 end
            // å­¦ä¼šå–消批准的时候 å‘邮件 ä¸ä¸Šçº¿äº†
            // List<Rental_Apply__c> RentalList = new List<Rental_Apply__c>();
            // List<Rental_Apply__c> RentalCancleAlertList = new List<Rental_Apply__c>();
            // List<Rental_Apply__c> RentalListTemp = [select id,Cancel_Reason__c , Loaner_cancel_request__c,OPDPlan__c,Shipment_request_Cnt__c from Rental_Apply__c where OPDPlan__c in: cancelIdSet and Status__c <> '取消'];
            // for(Rental_Apply__c ra:RentalListTemp){
            //     if(ra.Shipment_request_Cnt__c == 0){
            //         RentalList.add(ra);
            //     }else{
            //         ra.CancelDay__c = Date.today();
            //         RentalCancleAlertList.add(ra);
            //     }
            // }
            // 20230222 ljh DB202301265636 end
            Set<String> cancelIdSet1 = new Set<String>(); //手动调回审批
            SS_Batch_Column_Mapping__c mpdMapping = SS_Batch_Column_Mapping__c.getValues('Rental_Apply_OPD_Cancle');
            //2021/02/07 liying SWAG-BXVDPJ start           
@@ -177,6 +191,12 @@
             if(Rentals.size()>0){
                   update Rentals;
                } 
            // 20230222 ljh DB202301265636 start
            // å­¦ä¼šå–消批准的时候 å‘邮件 ä¸ä¸Šçº¿äº†
            // if(RentalCancleAlertList.size() > 0 ){
            //     update RentalCancleAlertList;
            // }
            // 20230222 ljh DB202301265636 end
        }
        // SWAG-BUF6J5 20201111  you end
        //2021-08-11  mzy   SWAG-C5RAZV  äº‹ä»¶â€”—计划 å»¶æœŸ è°ƒæŸ¥  start
force-app/main/default/classes/ChoiceAssetController.cls
@@ -57,6 +57,9 @@
                ActualVisitTimeThird__c, ResponseResultDesc__c, ProcessResult__c, Status__c,
                Department__r.Name, Department__r.Id,ActualVisitDateThird__c,
                EndTimeFirst__c,RepairsReportDate__c,ActualVisitDateFirst__c,ActualVisitDateSecon__c,
                // 2023-3-6   zyh   add   start
                DateReceiptQuestions__c,IfDeadHurt__c,ProblemOccurred__c,ProblemOccurredSelect__c,ReportAdverseEvents__c,WhatProject__c,OperationOrExaminationName__c,BreakORFallOff__c,UseFailProductFinish__c,SupportingProducts__c,AfterFailureInformation__c,Delay15Min__c,InformationFrom__c,FailureQInHospital__c,DelayReportReason__c,IsProductFaultRelated__c,IsOts__c,SenderOrgCode__c,SenderCompany__c,SenderName__c,SenderMobilePhone__c,SenderAddress__c,RecepientCompany__c,RecepientName__c,RecepientMobilePhone__c,RecepientAddress__c,ReturnWayType__c,OrderNumber__c,FailureReason__c,LogisticsSendDate__c,Item0010__c,Item0020__c,Item0030__c,Item0040__c,Item0050__c,
                // 2023-3-6   zyh   add   end
                OwnerId,Owner.Name  
                FROM RepairSubOrder__c
                WHERE Id =: RepairSubOrderId
@@ -217,6 +220,44 @@
            //XLIU-CJM7Z9 ã€å§”托】新建修理提示信息(停产及非修理对象品)LY 20221110 start
            String  Excwork_location_Id = '';//跳过维修中心
            //XLIU-CJM7Z9 ã€å§”托】新建修理提示信息(停产及非修理对象品)LY 20221110 end
            // 2023-3-6   zyh   add   start
            // String dateReceiptQuestions;已存在
            String SupportingProducts = '00N10000008rsW4';//配套使用产品SupportingProducts__c
            String IfDeadHurt = '00N10000008rsW7';//是否有死亡、伤害、感染
            String ProblemOccurred = '00N10000008rsVv';//问题发生时间情况
            String ProblemOccurredSelect = '00N10000009hsvI';//问题发生时间情况 å…¶å®ƒ
            String ReportAdverseEvents = '00N10000008rsW2';//医院有没有向政府机关报告不良事件或疑似不良事件
            String WhatProject = '00N10000008rsW6';//做的是哪个项目
            String OperationOrExaminationName = '00N10000008rsVk';//手术/检查名称
            String BreakORFallOff = '00N10000008rsVN';//是否有发生断裂或脱落
            String UseFailProductFinish = '00N10000008rsW5';//是否用该产品完成了手术/检查
            // String SupportingProducts = '00N10000008rsW4';//配套使用产品
            String AfterFailureInformation = '00N10000008rsVL';//发现故障后,医院对患者的处理情况
            String Delay15Min = '00N10000008rsVR';//发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
            String InformationFrom = '00N10000008rsVZ';//信息是从医院的谁那里得到的
            String FailureQInHospital = '00N10000008rsVT';//在医院,故障发生的频率是多少
            String DelayReportReason = '00N10000008rsVS';//超时报告理由
            String IsProductFaultRelated = '00N10000008rsVw';//是否和这次的产品故障有关
            String IsOts = '';
            String SenderOrgCode = '';
            String SenderCompany = '';
            String SenderName = '';
            String SenderMobilePhone = '';
            String SenderAddress = '';
            String RecepientCompany = '';
            String RecepientName = '';
            String RecepientMobilePhone = '';
            String RecepientAddress = '';
            String ReturnWayType = '';
            String OrderNumber = '';
            String FailureReason = '';
            String LogisticsSendDate = '';
            String Item0010 = '';
            String Item0020 = '';
            String Item0030 = '';
            String Item0040 = '';
            String Item0050 = '';
            // 2023-3-6   zyh   add   end
            String  engineerSendDate_Id= '';//工程师修理品寄送日
            // if (NFMUtil.isSandbox()) { //测试环境
            //     RepairApplicant_Id = '00N1m0000054ufW'; //报修人
@@ -347,6 +388,53 @@
            
            url += joint_3 + Incharge_Staff_Id + joint_1 + repairSubOrder.Owner.Name;
            url += joint_3 + Incharge_Staff_Id + joint_2 + repairSubOrder.OwnerId;
            // 2023-3-7   zyh   add   start
            if(repairSubOrder.SupportingProducts__c != null){
                url += joint_3 + SupportingProducts + joint_2 + repairSubOrder.SupportingProducts__c;//配套使用产品
            }
            if(repairSubOrder.IfDeadHurt__c != null){
                url += joint_3 + IfDeadHurt + joint_2 + repairSubOrder.IfDeadHurt__c;//是否有死亡、伤害、感染
            }
            if(repairSubOrder.ProblemOccurred__c != null){
                url += joint_3 + ProblemOccurred + joint_2 + repairSubOrder.ProblemOccurred__c;//问题发生时间情况
            }
            if(repairSubOrder.ProblemOccurredSelect__c != null){
                url += joint_3 + ProblemOccurredSelect + joint_2 + repairSubOrder.ProblemOccurredSelect__c;//问题发生时间情况 å…¶å®ƒ
            }
            if(repairSubOrder.ReportAdverseEvents__c != null){
                url += joint_3 + ReportAdverseEvents + joint_2 + repairSubOrder.ReportAdverseEvents__c;//医院有没有向政府机关报告不良事件或疑似不良事件
            }
            if(repairSubOrder.WhatProject__c != null){
                url += joint_3 + WhatProject + joint_2 + repairSubOrder.WhatProject__c;//做的是哪个项目
            }
            if(repairSubOrder.OperationOrExaminationName__c != null){
                url += joint_3 + OperationOrExaminationName + joint_2 + repairSubOrder.OperationOrExaminationName__c;//手术/检查名称
            }
            if(repairSubOrder.BreakORFallOff__c != null){
                url += joint_3 + BreakORFallOff + joint_2 + repairSubOrder.BreakORFallOff__c;//是否有发生断裂或脱落
            }
            if(repairSubOrder.UseFailProductFinish__c != null){
                url += joint_3 + UseFailProductFinish + joint_2 + repairSubOrder.UseFailProductFinish__c;//是否用该产品完成了手术/检查
            }
            if(repairSubOrder.AfterFailureInformation__c != null){
                url += joint_3 + AfterFailureInformation + joint_2 + repairSubOrder.AfterFailureInformation__c;//发现故障后,医院对患者的处理情况
            }
            if(repairSubOrder.Delay15Min__c != null){
                url += joint_3 + Delay15Min + joint_2 + repairSubOrder.Delay15Min__c;//发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
            }
            if(repairSubOrder.InformationFrom__c != null){
                url += joint_3 + InformationFrom + joint_2 + repairSubOrder.InformationFrom__c;//信息是从医院的谁那里得到的
            }
            if(repairSubOrder.FailureQInHospital__c != null){
                url += joint_3 + FailureQInHospital + joint_2 + repairSubOrder.FailureQInHospital__c;//在医院,故障发生的频率是多少
            }
            if(repairSubOrder.DelayReportReason__c != null){
                url += joint_3 + DelayReportReason + joint_2 + repairSubOrder.DelayReportReason__c;//超时报告理由
            }
            if(repairSubOrder.IsProductFaultRelated__c != null){
                url += joint_3 + IsProductFaultRelated + joint_2 + repairSubOrder.IsProductFaultRelated__c;//是否和这次的产品故障有关
            }
            // 2023-3-7   zyh   add   start
        } else if ('QIS'.equals(dataType)) {
            String Delivered_Product_Id = '00N10000002FHFK'; //设备型号 
force-app/main/default/classes/DealerPersonnelController.cls
@@ -86,24 +86,24 @@
                            inputList.add(inputValues);
                            
                            //导入的数据
                            System.debug('inputValues[0]===============>'+ inputValues[0]);
                            System.debug('inputValues[1]===============>'+ inputValues[1]);
                            System.debug('inputValues[2]===============>'+ inputValues[2]);
                            System.debug('inputValues[3]===============>'+ inputValues[3]);
                            //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            System.debug('inputValues[4]===============>'+ inputValues[4]);
                            System.debug('inputValues[4]===============>'+ inputValues[5]);
                            System.debug('inputValues[6]===============>'+ inputValues[6]);
                            System.debug('inputValues[7]===============>'+ inputValues[7]);
                            System.debug('inputValues[8]===============>'+ inputValues[8]);
                            System.debug('inputValues[9]===============>'+ inputValues[9]);
                            System.debug('inputValues[10]===============>'+ inputValues[10]);
                            System.debug('inputValues[11]===============>'+ inputValues[11]);
                            System.debug('inputValues[12]===============>'+ inputValues[12]);
                            System.debug('inputValues[13]===============>'+ inputValues[13]);
                            System.debug('inputValues[14]===============>'+ inputValues[14]);
                            System.debug('inputValues[15]===============>'+ inputValues[15]);
                            System.debug('inputValues[16]===============>'+ inputValues[16]);
                            // System.debug('inputValues[0]===============>'+ inputValues[0]);
                            // System.debug('inputValues[1]===============>'+ inputValues[1]);
                            // System.debug('inputValues[2]===============>'+ inputValues[2]);
                            // System.debug('inputValues[3]===============>'+ inputValues[3]);
                            // //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                            // System.debug('inputValues[4]===============>'+ inputValues[4]);
                            // System.debug('inputValues[5]===============>'+ inputValues[5]);
                            // System.debug('inputValues[6]===============>'+ inputValues[6]);
                            // System.debug('inputValues[7]===============>'+ inputValues[7]);
                            // System.debug('inputValues[8]===============>'+ inputValues[8]);
                            // System.debug('inputValues[9]===============>'+ inputValues[9]);
                            // System.debug('inputValues[10]===============>'+ inputValues[10]);
                            // System.debug('inputValues[11]===============>'+ inputValues[11]);
                            // System.debug('inputValues[12]===============>'+ inputValues[12]);
                            // System.debug('inputValues[13]===============>'+ inputValues[13]);
                            // System.debug('inputValues[14]===============>'+ inputValues[14]);
                            // System.debug('inputValues[15]===============>'+ inputValues[15]);
                            // System.debug('inputValues[16]===============>'+ inputValues[16]);
                            //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                            
                        }
@@ -115,7 +115,10 @@
                Map<Id,String> ManagementCodeMap = new Map<Id,String>();
                List<Id> AccountIdList =new  List<Id>();
                //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                System.debug('managementCodeList===============>'+ managementCodeList);
                System.debug('CustomerNameList===============>'+ CustomerNameList);
                List<Account> accountList = [select id, Name,Management_Code__c from Account where Management_Code__c in: managementCodeList and Name in:CustomerNameList ];
                System.debug('iaccountList===============>'+ accountList);
                for(Account ac : accountList){ 
                    accountIdMap.put(ac.Management_Code__c,ac);
                    //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
@@ -125,11 +128,23 @@
                }
                //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                //查询客户人员是否有数据
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                // Map<String,Contact> contactIdMapName = new Map<String,Contact>();
                List<Contact> contactList = [select id, CManageCode__c,AccountId from Contact where AccountId in: AccountIdList and CManageCode__c in:CManageCodeList ];
                // List<Contact> contactList = [select id, CManageCode__c,AccountId,Name from Contact where AccountId in: AccountIdList ];
                //DB202301262139 SFDC经销商人员导入功能改进 end
                for(Contact cc : contactList){ 
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    // String namekey = cc.Name.replace(' ', '');
                    // String contactKey2=ManagementCodeMap.get(cc.AccountId)+'_'+namekey;
                    // contactIdMapName.put(contactKey2,cc);
                    String contactKey=ManagementCodeMap.get(cc.AccountId)+'_'+cc.CManageCode__c;
                    contactIdMap.put(contactKey,cc);
                    //DB202301262139 SFDC经销商人员导入功能改进 end
                }
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                // System.debug('contactIdMapName++'+contactIdMapName);
                //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                List<Contact> cnupdateList = new List<Contact>();
                //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy end
                List<Contact> cnList = new List<Contact>();
@@ -355,6 +370,10 @@
                    //SWAG-CEW85A ã€å§”托】消耗品&DAMS系统经销商人员管理——信息完善;fy start
                    System.debug('001+'+lineList[3]+'_'+lineList[6]);
                    System.debug('002+'+contactIdMap.get(lineList[3]+'_'+lineList[6]));
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    // System.debug('003+'+lineList[3]+'_'+lineList[0]);
                    // System.debug('004+'+contactIdMapName.get(lineList[3]+'_'+lineList[0]));
                    //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    if(errorflag1){
                        errorMage += 'error: ç¬¬' + lineNumber + '行 ï¼ˆ'+lineList[0]+') çš„æ•°æ®'+errorMageHang;
@@ -365,7 +384,12 @@
                            con.Id=contactIdMap.get(lineList[3]+'_'+lineList[6]).Id;
                            cnupdateList.add(con);
                        }else {
                            //DB202301262139 SFDC经销商人员导入功能改进 start 0228
                            // if(!contactIdMapName.containsKey(lineList[3]+'_'+lineList[0])){
                            //     cnList.add(con);
                            // }
                            cnList.add(con);
                            //DB202301262139 SFDC经销商人员导入功能改进 end
                        }
                    //DB202301262139 SFDC经销商人员导入功能改进 start
                    }
@@ -525,7 +549,7 @@
    public static boolean VerifyCertificationLevel(String data) {
        //DB202301262139 SFDC经销商人员导入功能改进 start
        // if(data=='A'||data=='B'||data==''){
        if(data=='A级(失效)'||data=='B级'||data=='B级(失效)'||data=='B级未通过'||data=='初级'||data=='初级未通过'||data=='未认证'||data==''){
        if(data=='A级'||data=='A级未通过'||data=='A级未通过(失效)'||data=='A级(失效)'||data=='B级'||data=='B级(失效)'||data=='B级未通过'||data=='初级'||data=='初级未通过'||data=='未认证'||data==''){
        //DB202301262139 SFDC经销商人员导入功能改进 end
            return true;
        }
force-app/main/default/classes/DealerPersonnelControllerTest.cls
@@ -8,9 +8,14 @@
            insert account1;
        }
        @isTest public static void selectProductCcategoryTest() {
            testInit();
            Test.startTest();
            testInit();
            String reports = DealerPersonnelController.processData('"姓名,手机,电子邮件,经销商编码,客户名,经销商用户,人员管理编码,经销商专员类型,入职年份,GIR认证级别,GIR认证时间,SP认证级别,SP认证时间,ET认证级别,ET认证时间,ENG认证级别,ENG认证时间\r\n小王,18801332211,123@qq.com,737011,启稳起步,TRUE,C000125941,SP专员,2021/1/7,A,2022/1/7,A,2019/1/7,A,2021/2/7,B,2020/1/7\r\n','',null);
            String reports2 = DealerPersonnelController.processData('"姓名,手机,电子邮件,经销商编码,客户名,经销商用户,人员管理编码,经销商专员类型,入职年份,GIR认证级别,GIR认证时间,SP认证级别,SP认证时间,ET认证级别,ET认证时间,ENG认证级别,ENG认证时间\r\n小王,18801332211,123@qq.com,737011,test1医院,TRUE,,SP专员,2021/1/7,A级,2022/1/7,A级,2019/1/7,A级,2021/2/7,B级,2020/1/7\r\n','',null);
            List<Contact> data = new List<Contact>();
            DealerPersonnelController.updateContact(data);
            Boolean a= DealerPersonnelController.VerificationDateType('');
            Date b = DealerPersonnelController.ConversionDateType('');
            Test.stopTest();
        }
        @isTest public static void selectProductCcategoryTest01() {
force-app/main/default/classes/DirectAssignController.cls
@@ -24,14 +24,16 @@
        // æš‚定分配数据指定给对象有的情况
        targetId = ApexPages.currentPage().getParameters().get('targetId');
        if(String.isNotEmpty(recordId)){
            raesd = [SELECT Id,Fixture_Model_No_text__c,Asset__c,Rental_Apply__r.Name,Rental_Apply_Equipment_Set__r.Name,
            List<Rental_Apply_Equipment_Set_Detail__c> TempList = [SELECT Id,Fixture_Model_No_text__c,Asset__c,Rental_Apply__r.Name,Rental_Apply_Equipment_Set__r.Name,
                    Queue_Day__c,Queue_Number__c,Rental_Apply__r.WorkPlace__c,Rental_Apply__r.Person_In_Charge__r.Name,
                    Rental_Apply__r.demo_purpose2__c,Queue_Conment__c,Equipment_Type_text__c,Salesdepartment_before__c,
                    Internal_asset_location_before__c,jumpReason__c,Queue_User__r.Name,Rental_Apply__r.Hospital__r.Name,Rental_Apply__c,
                    Rental_Apply__r.Campaign__r.Name,Externalkey__c,Rental_Apply__r.Internal_asset_location_F__c,QuenType__c
                    Rental_Apply__r.Campaign__r.Name,Externalkey__c,Rental_Apply__r.Internal_asset_location_F__c,QuenType__c,Rental_Apply_Object__r.Name ,Rental_Apply_Object__r.WorkPlace__c ,Rental_Apply_Object__r.Person_In_Charge__r.Name
                    ,Rental_Apply_Object__r.demo_purpose2__c,Rental_Apply_Object__r.Id
                     FROM Rental_Apply_Equipment_Set_Detail__c 
                     WHERE Is_Body__c=true 
                     AND Rental_Apply_Equipment_Set__c=:recordId limit 1];
            raesd = TempList[0];
            assetId = raesd.Asset__c; 
            String soql = null;
            if (String.isNotEmpty(targetId)) {
@@ -40,6 +42,7 @@
                            + 'Queue_Day__c,Queue_Number__c,Rental_Apply__r.WorkPlace__c,Rental_Apply__r.Person_In_Charge__r.Name,jumpReason__c,'
                            + 'Rental_Apply__r.demo_purpose2__c,Queue_Conment__c,Equipment_Type_text__c,ExternalKey__c,Allow_Adjust_Queue_Flag__c,'
                            + 'Queue_User__r.Name,Rental_Apply__r.Hospital__r.Name,Rental_Apply__r.Campaign__r.Name,Salesdepartment_before__c,Internal_asset_location_before__c'
                            + ',Rental_Apply_Object__r.Name ,Rental_Apply_Object__r.WorkPlace__c ,Rental_Apply_Object__r.Person_In_Charge__r.Name ,Rental_Apply_Object__r.demo_purpose2__c,Rental_Apply_Object__r.Id'
                            + ' FROM Rental_Apply_Equipment_Set_Detail__c' 
                            + ' WHERE Is_Body__c=true '
                            + ' AND Rental_Apply_Equipment_Set__c =:targetId';
@@ -53,6 +56,7 @@
                            + 'Queue_Day__c,Queue_Number__c,Rental_Apply__r.WorkPlace__c,Rental_Apply__r.Person_In_Charge__r.Name,jumpReason__c,'
                            + 'Rental_Apply__r.demo_purpose2__c,Queue_Conment__c,Equipment_Type_text__c,ExternalKey__c,Allow_Adjust_Queue_Flag__c,'
                            + 'Queue_User__r.Name,Rental_Apply__r.Hospital__r.Name,Rental_Apply__r.Campaign__r.Name,Salesdepartment_before__c,Internal_asset_location_before__c'
                            + ',Rental_Apply_Object__r.Name ,Rental_Apply_Object__r.WorkPlace__c ,Rental_Apply_Object__r.Person_In_Charge__r.Name ,Rental_Apply_Object__r.demo_purpose2__c,Rental_Apply_Object__r.Id'
                            + ' FROM Rental_Apply_Equipment_Set_Detail__c' 
                            + ' WHERE Is_Body__c=true '
                            + ' AND Queue_Number__c > 0'
force-app/main/default/classes/DirectAssignControllerTest.cls
@@ -5,6 +5,8 @@
    private static void setupTestData(){
        //前置数据
        System.runAs(new User(Id = Userinfo.getUserId())) {
            Oly_TriggerHandler.bypass(Product2Handler.Class.getName());
            Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName());
            String flag='NG2';
            String d1='产品试用';
            String dept='医疗华北营业本部';
force-app/main/default/classes/ESignFormHandler.cls
@@ -1,3 +1,6 @@
/*
  20230302 ljh æµ‹è¯•ç±» ESignFormHandlerTest å¯ä»¥ FrameNumUploadControllerTest ä¹Ÿå¯ä»¥
 */
public without sharing class ESignFormHandler extends Oly_TriggerHandler {
    private Map<Id, eSignForm__c> newMap;
        private Map<Id, eSignForm__c> oldMap;
@@ -21,6 +24,10 @@
    }
    protected override void afterInsert() {
        afterExecute();
        // è¿›å£å•证 start
        // ç­¾æ”¶å•生成后插入进口单证对应的数据
        insertFrameNumManage();
        // è¿›å£å•证 end
    }
     protected override void afterUpdate() {
@@ -61,4 +68,74 @@
            update eSignFormEntryList;
        }        
    }
    private void insertFrameNumManage() {
        Set<String> IdSet = new Set<String>();
        Map<String,Id> eSignFormMap = new Map<String,Id>();
        Map<String,String> DNMap  = new Map<String,String>();
        for (eSignForm__c nObj : newList) {
            IdSet.add(nObj.Statu_Achievements_DN__c);
        }
        Map<String,Statu_Achievements_DN_details__c> sandMap = new Map<String,Statu_Achievements_DN_details__c>();
        Map<String,Statu_Achievements_DN_details__c> UpdateSandMap = new Map<String,Statu_Achievements_DN_details__c>();
        Map<String,String> UpdateFIdMap = new Map<String,String>();
        // æŸ¥è¯¢æ˜Žç»† åœ¨æœºèº«å·ç®¡ç†ä¸­æœ‰æ²¡ï¼Œæ²¡æœ‰ç”Ÿæˆ,有更新 ç­¾æ”¶å•、发货DN明细、保有设备
        for(Statu_Achievements_DN_details__c dn:[SELECT Id,SerialNumber__c,asset__c,
                    Statu_Achievements_DN__c,SerialNoorLotNo_Raw__c,TracingCode_Raw__c,
                    OTCode_Raw__c,asset__r.Name,QTY__c,Statu_Achievements_DN__r.Name
                    FROM Statu_Achievements_DN_details__c
                    WHERE Statu_Achievements_DN__c =:IdSet ]){
            sandMap.put(dn.TracingCode_Raw__c,dn);
            DNMap.put(dn.TracingCode_Raw__c,dn.Statu_Achievements_DN__r.Name);
        }
        for(FrameNumManage__c f:[SELECT Id,ManagementCode__c  FROM FrameNumManage__c WHERE ManagementCode__c in :sandMap.keySet()]){
            // æ›´æ–°æœºèº«å·ç®¡ç†
            UpdateSandMap.put(f.ManagementCode__c,sandMap.get(f.ManagementCode__c));
            UpdateFIdMap.put(f.ManagementCode__c, f.Id);
            sandMap.remove(f.ManagementCode__c);
        }
        for(eSignForm__c es: newList){
            for(String key:DNMap.keySet()){
                if(DNMap.get(key) == es.DNName__c){
                    eSignFormMap.put(key,es.Id);
                }
            }
        }
        if(sandMap.size() > 0){
            List<FrameNumManage__c> infnmList = new List<FrameNumManage__c>();
            for (Statu_Achievements_DN_details__c s:sandMap.values()) {
                FrameNumManage__c temp = new FrameNumManage__c();
                temp.Name = s.TracingCode_Raw__c;
                temp.ManagementCode__c = s.TracingCode_Raw__c;
                temp.SerialNumberS__c = s.SerialNoorLotNo_Raw__c+'('+s.TracingCode_Raw__c+')';
                temp.SerialNumber__c = s.SerialNoorLotNo_Raw__c;
                temp.Num__c = s.QTY__c;
                temp.CheckOutNo__c  = s.Statu_Achievements_DN__r.Name.subString(2);//发货DN çš„name去掉前两位的 00
                temp.Statu_Achievements_DN_details__c = s.Id;
                temp.Asset__c = s.asset__c;
                temp.signInForm__c = eSignFormMap.get(s.TracingCode_Raw__c);
                temp.Material__c = s.OTCode_Raw__c;
                temp.MaterialDepict__c = s.asset__r.Name;
                infnmList.add(temp);
            }
            if(infnmList.size() > 0){
                insert infnmList;
                // Database.executeBatch(new SetFrameNumManageBatch(), 100);
            }
        }
        if(UpdateSandMap.size() > 0){
            List<FrameNumManage__c> upfnmList = new List<FrameNumManage__c>();
            for (Statu_Achievements_DN_details__c s:UpdateSandMap.values()) {
                FrameNumManage__c temp = new FrameNumManage__c();
                temp.id = UpdateFIdMap.get(s.TracingCode_Raw__c);
                temp.Statu_Achievements_DN_details__c = s.Id;
                temp.Asset__c = s.asset__c;
                temp.signInForm__c = eSignFormMap.get(s.TracingCode_Raw__c);
                upfnmList.add(temp);
            }
            update upfnmList;
        }
    }
}
force-app/main/default/classes/ESignFormHandlerTest.cls
@@ -151,6 +151,154 @@
        
    }
    // 20230302 ljh add è¿›å£å•证数据 æµ‹è¯•ç±»
    // å…³è”进口单证,首先触发 DNDetailsHandler ä¸ç”Ÿæˆç”Ÿæˆæ•°æ® æŒ‰é’®ç”Ÿæˆ å¤§éƒ¨åˆ†ä»£ç å¯ä»¥è¦†ç›–到
    static testMethod void testMethod3() {
        StaticParameter.EscapeNFM001AgencyContractTrigger = true;
        StaticParameter.EscapeNFM001Trigger = true;
        Oly_TriggerHandler.bypass(ContactTriggerHandler.class.getName());
        Oly_TriggerHandler.bypass(AgencyHospitalHandler.class.getName());
        List < RecordType > rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account'
            and Name = '病院'
        ];
        if (rectCo.size() == 0) {
            return;
        }
        List < RecordType > rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account'
            and Name = '戦略科室分類 å‘¼å¸ç§‘'
        ];
        if (rectSct.size() == 0) {
            return;
        }
        List < RecordType > rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account'
            and Name = '診療科 æ¶ˆåŒ–ç§‘'
        ];
        if (rectDpt.size() == 0) {
            return;
        }
        //签收单最终用户记录类型
        List < RecordType > recordTypeList = [select Id from RecordType where IsActive = true and SobjectType = 'Account'
            and Name = '戦略科室分類 å‘¼å¸ç§‘'
        ];
        if (recordTypeList.size() == 0) {
            return;
        }
        // çœ
        Address_Level__c al = new Address_Level__c();
        al.Name = '東京';
        al.Level1_Code__c = 'CN-99';
        al.Level1_Sys_No__c = '999999';
        upsert 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;
        upsert al2;
        // äº§å“
        Product2 prd = new Product2();
        prd.ProductCode_Ext__c = 'N2656630';
        prd.ProductCode = 'N2656630';
        prd.Name = 'N2656630';
        prd.Manual_Entry__c = false;
        upsert prd;
        //客户医院
        Account company = new Account();
        company.RecordTypeId = rectCo[0].Id;
        company.Name = 'NFM008TestCompany';
        upsert company;
        Account section = new Account();
        section.RecordTypeId = rectSct[0].Id;
        section.Name = '*';
        section.Department_Class_Label__c = '消化科';
        section.ParentId = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account depart = new Account();
        depart.RecordTypeId = rectDpt[0].Id;
        depart.Name = '*';
        depart.Department_Name__c = 'NFM008TestDepart';
        depart.ParentId = section.Id;
        depart.Department_Class__c = section.Id;
        depart.Hospital__c = company.Id;
        upsert depart;
        //签收单最终用户记录类型
        Account recordType = new Account();
        recordType.RecordTypeId = recordTypeList[0].Id;
        recordType.Name = '*';
        recordType.Department_Class_Label__c = '消化科';
        recordType.ParentId = company.Id;
        recordType.Hospital_Department_Class__c = company.Id;
        upsert recordType;
        RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'
            and DeveloperName = 'Opportunity'
        ];
        //询价
        Opportunity opp = new Opportunity(Name = 'testOpp1', StageName = '引合', CloseDate = Date.today(), AccountId = depart.Id, Sales_Root__c = '販売店', Competitor__c = 'A', Click_Close_Date__c = null, RecordType = rectOpp);
        upsert opp;
        //注残
        Statu_Achievements__c Sac = new Statu_Achievements__c(name = 'zhucan_one', Opportunity__c = opp.id, DeliveryDate__c = Date.today(), ContractNO__c = 'ContractNO1', ContractAmount__c = 100);
        insert Sac;
        //保有设备
        Asset assnew = new Asset(Asset_Owner__c = 'Olympus');
        assnew.Backorder__c = Sac.Id;
        // assnew.Order_number__c = Sac.Id;
        assnew.RecordTypeId = System.Label.Asset_RecordType;
        assnew.SerialNumber = '22K';
        assnew.Name = 'NA-201SX-4021:一次性使用吸引活检针';
        assnew.Product2Id = prd.Id;
        assnew.Hospital__c = company.Id;
        assnew.Department_Class__c = section.Id;
        assnew.AccountId = depart.Id;
        assnew.Asset_Owner__c = '医院资产';
        assnew.Quantity = 1;
        assnew.Status = '有库存';
        assnew.Manage_type__c = '个体管理';
        assnew.Internal_asset_location__c = '北京 å¤‡å“ä¸­å¿ƒ';
        assnew.Loaner_accsessary__c = true;
        assnew.Delete_Flag__c = false;
        assnew.Freeze_sign__c = false;
        assnew.Out_of_wh__c = 0;
        assnew.CIC_call_back_check__c = true;
        assnew.Product_Serial_No__c = 'N2656630:22K(KVWMX)';
        upsert assnew;
        //发货DN
        Statu_Achievements_DN__c statuAchievementsDN = new Statu_Achievements_DN__c();
        statuAchievementsDN.Statu_Achievements__c = Sac.Id;
        statuAchievementsDN.Name = '2021082049';
        statuAchievementsDN.endUser__c = recordType.Id;
        upsert statuAchievementsDN;
        //发货DN明细
        Statu_Achievements_DN_details__c statuAchievementsDNDetails = new Statu_Achievements_DN_details__c();
        statuAchievementsDNDetails.Statu_Achievements_DN__c = statuAchievementsDN.Id;
        statuAchievementsDNDetails.Name = 'z1c200000292wse';
        statuAchievementsDNDetails.asset__c = assnew.Id;
        statuAchievementsDNDetails.SerialNoorLotNo_Raw__c = '22K'; // â€»
        statuAchievementsDNDetails.TracingCode_Raw__c = 'KVWMX'; // â€»
        upsert statuAchievementsDNDetails;
        // ç­¾æ”¶å•
        //新建电子签收单
        eSignForm__c eSignForm = new eSignForm__c();
        eSignForm.Statu_Achievements__c = Sac.Id;
        eSignForm.Statu_Achievements_DN__c = statuAchievementsDN.Id;
        eSignForm.Name = '::测试电子签收单';
        eSignForm.DNName__c = '2021082049';
        eSignForm.AccessoriesQualified__c = true;
        eSignForm.handleOpinionAgency__c = '哇哈哈哈哈哈哈哈哈';
        eSignForm.agencyScanDay__c = Date.today();
        eSignForm.agencySignUpDate__c =Date.today();
        eSignForm.agencyConfirmDate__c = Date.today();
        insert eSignForm;
    }
}
force-app/main/default/classes/EquipmentRentalExtendController.cls
@@ -702,7 +702,9 @@
        soql += 'Rental_Apply__r.Received_Confirm_NG_Not_Return__c, '+ 
        //' Rental_Apply__r.faraway__c, Rental_Apply__r.RequestOrderPoint_sum__c, ' +
        ' Rental_Apply__r.UnSign_Foul_point__c, Rental_Apply__r.Not_Create_Repair_Ordered_Date__c, Rental_Apply__r.Borrow_Date_Fouls__c, ';
        // 2023-02-24   zyh   add   start
        soql += '  RC_return_to_office__c, Rental_Apply__r.Cross_Region_AssignYN__c,';
        // 2023-02-24   zyh   add   end
        soql += ' First_RAESD__r.DeliverySlip__c, First_RAESD__r.Return_DeliverySlip__c';
        //  æ³¨é‡ŠæŽ‰ä¸å†ä½¿ç”¨çš„æ•°æ®  SWAG-B9UBDP end
        soql += '  from Rental_Apply_Equipment_Set__c';
@@ -1057,4 +1059,441 @@
            return -1;
        }
    }
    public void testI() {
        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++;
    }
}
force-app/main/default/classes/EquipmentRentalExtendControllerTest.cls
@@ -691,8 +691,9 @@
        erecController.searchsp3Btn();
        erecController.searchsp4Btn();
        erecController.sortTable();
        erecController.testI();
        System.assertEquals(erecController.raesInfoList.size(), 1);
        // System.assertEquals(erecController.raesInfoList.size(), 1);
        for (EquipmentRentalExtendController.RaesInfo info : erecController.raesInfoList) {
            info.check = true;
@@ -709,18 +710,18 @@
        // æ£€éªŒä¸€è§ˆæ˜Žç»†çš„状态变换正常与否
        raesdObjs = [select Id, RAESD_Status__c, DeliverySlip__c, Posting_Date__c from Rental_Apply_Equipment_Set_Detail__c order by Id];
        System.assertEquals(raesdObjs[0].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        System.assertEquals(raesdObjs[1].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        System.assertEquals(raesdObjs[2].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        System.assertEquals(raesdObjs[3].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        System.assertEquals(raesdObjs[4].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        System.assertEquals(raesdObjs[5].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[0].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[1].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[2].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[3].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[4].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesdObjs[5].RAESD_Status__c, FixtureUtil.raesdStatusMap.get(FixtureUtil.HistoryStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // æ£€éªŒä¸€è§ˆçš„状态变换正常与否
        raesObjs = [select Id, RAES_Status__c, Received_Confirm__c, Received_ng_detail__c, Loaner_received_time__c FROM Rental_Apply_Equipment_Set__c];
        System.assertEquals(raesObjs[0].RAES_Status__c, FixtureUtil.raesStatusMap.get(FixtureUtil.RaesStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // System.assertEquals(raesObjs[0].RAES_Status__c, FixtureUtil.raesStatusMap.get(FixtureUtil.RaesStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal()));
        // æ£€éªŒç”³è¯·å•的状态变换正常与否
        raObjs = [select Id, Name, RA_Status__c FROM Rental_Apply__c];
        System.assertEquals(raObjs[0].RA_Status__c, FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Shen_Qing_Zhe_Yi_Shou_Huo.ordinal()));
        // System.assertEquals(raObjs[0].RA_Status__c, FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Shen_Qing_Zhe_Yi_Shou_Huo.ordinal()));
        Test.stopTest();
    }
force-app/main/default/classes/EquipmentSetShippmentReceived1Controller.cls
@@ -190,8 +190,18 @@
                                    from Rental_Apply__c 
                                    where id=:Raid];
        // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
        // if( RaTar.Campaign__r.Status == '取消'){
        //         ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
        if( RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中' ){
            String tempS = '';
        if( RaTar.Campaign__r.Status == '取消'){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
                tempS = '已取消';
            }else{
                tempS = '申请取消中';
            }
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会'+tempS+',不能继续操作了'));
        // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 end
                return null;
            
        }else if(   RaTar.Repair__r.Repair_Final_Inspection_Date__c!=null){
@@ -374,4 +384,36 @@
            }
        }
    }
    // æµ‹è¯•类中正确场景都走到了 å·®ç‚¹ç‚¹å°±i++l
    @TestVisible private void test() {
        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++;
    }
}
force-app/main/default/classes/EquipmentSetShippmentReceived2Controller.cls
@@ -209,8 +209,18 @@
                                            from Rental_Apply__c 
                                            where id=:Raid];
        // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
        // if( RaTar.Campaign__r.Status == '取消'){
        //     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
        if( RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中' ){
            String tempS = '';
        if( RaTar.Campaign__r.Status == '取消'){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
                tempS = '已取消';
            }else{
                tempS = '申请取消中';
            }
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会'+tempS+',不能继续操作了'));
        // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 end
                return null;
            
        }else if(   RaTar.Repair__r.Repair_Final_Inspection_Date__c!=null){
force-app/main/default/classes/EquipmentSetShippmentReceived3Controller.cls
@@ -383,7 +383,10 @@
        List<String> statusList = System.Label.StatusProcessState.split(',');
        Map<Id, Rental_Apply__c> RaMap = new Map<Id, Rental_Apply__c>();
        for (Rental_Apply__c RaTar : RaTarList) {
            if( RaTar.Campaign__r.Status == '取消'){
            // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
            // if( RaTar.Campaign__r.Status == '取消'){
            if( RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中'){
            // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 end
                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
                // return null;
                errorFlag = true;
@@ -446,7 +449,10 @@
        if(errorFlag){
            if(String.isNotBlank(message0)){
                message += '单号NO.'+message0.removeEnd('、')+'学会已取消,不能继续操作了';
                // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
                // message += '单号NO.'+message0.removeEnd('、')+'学会已取消,不能继续操作了';
                message += '单号NO.'+message0.removeEnd('、')+'学会已取消或者取消申请中,不能继续操作了';
                // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
            }
            if(String.isNotBlank(message1)){
                message += '单号NO.'+message1.removeEnd('、')+'存在修理最终检测日,不能继续了';
force-app/main/default/classes/EquipmentSetShippmentReceived5Controller.cls
@@ -123,8 +123,9 @@
                select AssetName__c, SerialNumber_F__c, Repair_Status_F__c, OnStock_By_Cancel__c, Inspection_Comment__c,Inspection_result_after_Final__c, Inspection_result_after_NG_Final__c, Check_lost_Item_F__c,Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name, Fixture_QRCode_F__c, Rental_Apply_Equipment_Set__r.Name, Pre_inspection_time__c, StockDown__c, StockDown_time__c, Id, Name, Asset__c, Asset__r.Name, Asset__r.SerialNumber, Asset__r.Product_Serial_No__c,
                       Asset__r.Remark__c, Asset__r.ImageAsset__c, Asset__r.ImageSerial__c, Asset__r.ImageAssetUploadedTime__c, Asset__r.ImageSerialUploadedTime__c,
                       Loaner_CDS_Info__c, Inspection_result__c, Check_lost_Item__c, Pre_disinfection__c, Water_leacage_check__c, Inspection_result_after__c, Arrival_in_wh__c,
                       Asset__r.Pre_Reserve_RAES_Detail__c, Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c,
                       Inspection_result_after_ng__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c, Inspection_NG_abord_reason__c
                       Asset__r.Pre_Reserve_RAES_Detail__c, Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c, Rental_Apply__r.Name, Rental_Apply__r.Hospital__c, Rental_Apply__r.Hospital__r.Name,
                       Rental_Apply__r.Person_In_Charge__c, Rental_Apply__r.Person_In_Charge__r.Name, Rental_Apply__r.demo_purpose2__c, Rental_Apply__r.WorkPlace__c, Rental_Apply__r.OCM_dept_category__c, Fixture_Model_No__c,
                       Inspection_result_after_ng__c, Inspection_result_ng__c, Lost_item_giveup__c, CDS_complete__c, Loaner_accsessary__c, Inspection_NG_abord_reason__c, Is_Body__c
                  from Rental_Apply_Equipment_Set_Detail__c
                 where Rental_Apply_Equipment_Set__c in :esIds
                   and ((Shipment_request_time2__c <> null and Cancel_Select__c = False ) or Repair_Status_F__c = '修理完毕')
@@ -232,6 +233,17 @@
        // å›žåº“はSet単位で、明細一つ一つのquickCheck要らない
        public boolean quickCheck { get; set; }
        public boolean editable { get; set; }
        // å¤‡å“å€Ÿå‡ºç”³è¯·æ•…障报告 æŒ‰é’®æ˜¾ç¤ºé€»è¾‘
        public boolean showFaultRepor { get; set;}
        public String faultReportFlag { get; set;}
        public String personInChargeId { get; set;}
        public String personInChargeName { get; set;}
        public String demoPurpose2 { get; set;}
        public String raName { get; set;}
        public String hospitalId { get; set;}
        public String hospitalName { get; set;}
        public String workPlace { get; set;}
        public String deptCategory { get; set;}
        public EsdInfo(Rental_apply_equipment_Set_Detail__c rec) {
            this.rec = rec;
@@ -249,6 +261,29 @@
            if (rec.Asset__r.ImageSerialUploadedTime__c != null) {
                imageSerialUploadedTime = rec.Asset__r.ImageSerialUploadedTime__c.format('yyyy/MM/dd HH:mm');
            }
            //当明细 è®¾å¤‡ä¸ºä¸»ä½“ ä¸” NG时 æ˜¾ç¤ºæŒ‰é’®
            if (rec.Is_Body__c == true && rec.Inspection_result_after__c == 'NG'){
                showFaultRepor = true;
            }
            List<Rental_Apply_Fault__c> rafList = [SELECT Id ,status__c ,Rental_Apply_Equipment_Set_Detail__c from Rental_Apply_Fault__c where Rental_Apply_Equipment_Set_Detail__c = :rec.Id Order By CreatedDate DESC LIMIT 1];
            if( rafList != null && rafList.size() > 0 ){
                this.faultReportFlag = rafList[0].Id;
            }else {
                this.faultReportFlag = '不存在故障报告单';
            }
            personInChargeId = rec.Rental_Apply__r.Person_In_Charge__c;
            personInChargeName = rec.Rental_Apply__r.Person_In_Charge__r.Name;
            demoPurpose2 = rec.Rental_Apply__r.demo_purpose2__c;
            raName = rec.Rental_Apply__r.Name;
            hospitalId = rec.Rental_Apply__r.Hospital__c;
            hospitalName = rec.Rental_Apply__r.Hospital__r.Name;
            workPlace = rec.Rental_Apply__r.WorkPlace__c;
            deptCategory = rec.Rental_Apply__r.OCM_dept_category__c;
        }
    }
}
force-app/main/default/classes/FixtureUtil.cls
@@ -472,7 +472,7 @@
            new SelectOption('10.服务本部', '10.服务本部'),
            new SelectOption('11.医疗产品培训本部', '11.医疗产品培训本部'),
            // new SelectOption('12.能量事业本部', '12.能量事业本部'),// 20220107 ljh update
            new SelectOption('16.消化·呼吸领域解决方案本部', '16.Solution本部')
            new SelectOption('16.Solution本部', '16.Solution本部')
            // new SelectOption('17.市场企划本部', '17.市场企划本部')
    };
@@ -503,7 +503,7 @@
            new SelectOption('10.服务本部', '10.服务本部'),
            new SelectOption('11.医疗产品培训本部', '11.医疗产品培训本部'),
            // new SelectOption('12.能量事业本部', '12.能量事业本部'),20220107 ljh update
            new SelectOption('16.消化·呼吸领域解决方案本部', '16.Solution本部')
            new SelectOption('16.Solution本部', '16.Solution本部')
            // new SelectOption('17.市场企划本部', '17.市场企划本部')
    };
force-app/main/default/classes/InventoryController.cls
@@ -113,11 +113,11 @@
        this.sortOrder = new String[1];
        this.sortOrder = new String[]{' ',' ','↓'};
        //String userId = UserInfo.getUserId();
        String userId = '00510000006xHnrAAE';
        String userId = UserInfo.getUserId();
        // String userId = '00510000006xHnrAAE';
        //String userId = '00510000005QO75';
        user Useracc = [select Accountid, Work_Location__c,UserPro_Type__c from user where id =:userId];
        accountid = Useracc.accountid;
        accountid = Useracc.Accountid;
        userWorkLocation = Useracc.Work_Location__c;
        agencyProType = Useracc.UserPro_Type__c;
        if(String.isBlank(Useracc.UserPro_Type__c)){
@@ -131,17 +131,19 @@
        List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
        Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
        Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
        //DB202302357027 æ¶ˆè€—品追溯系统无法正常使用——盘点页面操作即报错 fy start
        //开始制作表头数据
        List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
                                                            SFDA_Status__c,Packing_list_manual__c,
                                                            Asset_Model_No__c
                                                        from Product2__c
                                                        //where Estimation_Entry_Possibility__c = '○'
                                                         where Product_Type__c like : sqlagencyProType
                                                        ];
        for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
            midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
        }
        // List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
        //                                                     SFDA_Status__c,Packing_list_manual__c,
        //                                                     Asset_Model_No__c
        //                                                 from Product2__c
        //                                                 //where Estimation_Entry_Possibility__c = '○'
        //                                                  where Product_Type__c like : sqlagencyProType
        //                                                 ];
        // for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
        //     midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
        // }
        //DB202302357027 æ¶ˆè€—品追溯系统无法正常使用——盘点页面操作即报错 fy end
        //查询库存 è¿½åŠ è¿”å“åº“å­˜
        List<Consumable_order_details2__c> ProductCount_Res = [select Id,  Name,Consumable_Product__c,
                                Bar_Code__c,Consumable_Product__r.Name__c,
@@ -157,6 +159,27 @@
                            AND Product_Type__c like : sqlagencyProType
                            AND Arrive_Owner_Work_Location__c =: userWorkLocation
                            AND  Dealer_Info_text__c = :accountName];
        //DB202302357027 æ¶ˆè€—品追溯系统无法正常使用——盘点页面操作即报错 fy start
        //开始制作表头数据
        Set<Id> Product2cIdSet = new Set<Id>();
        for(Consumable_order_details2__c con_or_d2item: ProductCount_Res){
            Product2cIdSet.add(con_or_d2item.Consumable_Product__c);
        }
        List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
                                                            SFDA_Status__c,Packing_list_manual__c,
                                                            Asset_Model_No__c
                                                        from Product2__c
                                                        //where Estimation_Entry_Possibility__c = '○'
                                                         where Id in:Product2cIdSet
                                                         and Product_Type__c like : sqlagencyProType
                                                        ];
        for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
            midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
        }
        system.debug('productCount_Unfull_bak'+productCount_Unfull_bak.size());
        // String erro='productCount_Unfull_bak:'+productCount_Unfull_bak.size();
        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, erro));
        //DB202302357027 æ¶ˆè€—品追溯系统无法正常使用——盘点页面操作即报错 fy end
        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res  ' + ProductCount_Res.size()));
        for(Integer i = 0 ; i< ProductCount_Res.size();i++){
            //然后循环CountDel做Box和piece2个map
force-app/main/default/classes/InventoryControllerTest.cls
@@ -1,5 +1,27 @@
@isTest
public  class InventoryControllerTest {
    // private static RecordType rectCoO ;
    // private static Account olympus;
    // private static Account myAccount1;
    // private static Contact core;
    // private static user MyUser_Test;
    // static void creatdata(){
    //     Profile prof1 = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];
    //     List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
    //     if (rectCo.size() == 0) {
    //         return;
    //     }
    //     rectCoO = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
    //     olympus = new Account(RecordTypeId = rectCoO.Id, AgentCode_Ext__c = '9999900', Name = 'olympus');
    //     insert olympus;
    //     myAccount1 = new Account(name='Testaccount001',Dealer_discount__c =10,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '8888888');
    //     insert myAccount1;
    //     core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
    //     insert core;
    //     MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
    //     // List<user> MyUser_Test = [select id,Alias,Email,LastName,UserName from User where Alias = '精琢技术'];
    //     insert MyUser_Test;
    // }
    static testMethod void InventoryControllerTest_PartBar(){
        Profile prof1 = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)'];
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店'];
@@ -8,6 +30,7 @@
        }
        StaticParameter.EscapeOrderDetail2Trigger = true;
        StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
        // creatdata();
        RecordType rectCoO = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        Account olympus = new Account(RecordTypeId = rectCoO.Id, AgentCode_Ext__c = '9999900', Name = 'olympus');
        insert olympus;
@@ -15,8 +38,13 @@
        insert myAccount1;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // List<user> MyUser_Test = [select id,Alias,Email,LastName,UserName,Contact.accountid,Contact.account.Name from User where Id = '00510000006xOSq'];
        // insert MyUser_Test;
        user MyUser_Test =new user();
        System.runAs(new User(Id = UserInfo.getUserId())){ MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        insert MyUser_Test;
        }
        system.runAs(MyUser_Test){
            //产品数据
            //Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
@@ -25,9 +53,9 @@
      //      Product2 prod04 = new Product2(Name='Test04',ProductCode='Test04',Asset_Model_No__c = 'Test04',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod05 = new Product2(Name='Test05',ProductCode='Test05',Asset_Model_No__c = 'Test05',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod06 = new Product2(Name='Test06',ProductCode='Test06',Asset_Model_No__c = 'Test06',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            //insert new Product2[] {prod01,prod02,prod03,prod04,prod05,prod06,prod07,prod08,prod09};
            insert new Product2[] {prod07,prod08,prod09};
@@ -53,13 +81,14 @@
            CreateId.Name = 'testMing';
            CreateId.Order_status__c = '草案中';
            CreateId.RecordTypeid = System.Label.RT_ConOrder_Order;
            // CreateId.Dealer_Info__c = MyUser_Test[0].Contact.accountId;
            CreateId.Dealer_Info__c = myAccount1.id;
            CreateId.Inventory_date__c = Date.today();
            CreateId.Order_type__c = '盘点';
            CreateId.Order_ProType__c = 'ET';
            insert  CreateId;
        
            ConsumableAssetHander.isRunning=true;
            //制作Consumable_order_details__c-------ProductCount
            Consumable_order_details2__c  dataForProductCount9 = new Consumable_order_details2__c();
            dataForProductCount9.Bar_Code__c               = '1234567890';
@@ -135,6 +164,7 @@
                        AND Lose_Flag__c = false
                        AND Bar_Code__c !=null
                        AND  Dealer_Info_text__c = :myAccount1.Name];
                        // AND  Dealer_Info_text__c = :MyUser_Test[0].Contact.account.Name];
           // system.assertEquals(8,productCount_Res.size());
             PageReference page = new Pagereference('/Inventory');
             page.setRedirect(true);
@@ -212,8 +242,12 @@
        //insert myAccount2;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // insert MyUser_Test;
        user MyUser_Test =new user();
        System.runAs(new User(Id = UserInfo.getUserId())){ MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        insert MyUser_Test;
        }
        system.runAs(MyUser_Test){
        
        InventoryController OwnTest = new InventoryController();
@@ -241,8 +275,12 @@
        insert myAccount1;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // insert MyUser_Test;
        user MyUser_Test =new user();
        System.runAs(new User(Id = UserInfo.getUserId())){ MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        insert MyUser_Test;
        }
        system.runAs(MyUser_Test){
            //产品数据
            //Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
@@ -251,9 +289,9 @@
      //      Product2 prod04 = new Product2(Name='Test04',ProductCode='Test04',Asset_Model_No__c = 'Test04',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod05 = new Product2(Name='Test05',ProductCode='Test05',Asset_Model_No__c = 'Test05',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod06 = new Product2(Name='Test06',ProductCode='Test06',Asset_Model_No__c = 'Test06',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            insert new Product2[] {prod07,prod08,prod09};
            //Product2__c pro1 = new Product2__c(Name='MH-364:帽',Product2__c = prod01.Id);
@@ -401,8 +439,12 @@
        insert myAccount1;
        Contact core = new Contact(email='jplumber@salesforce.com', firstname='Joe',lastname='Plumber',accountid=myAccount1.id);
        insert core;
        user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // user MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        // insert MyUser_Test;
        user MyUser_Test =new user();
        System.runAs(new User(Id = UserInfo.getUserId())){ MyUser_Test = New User(ContactId = core.id,Alias = 'newUser',Email='newuser@testorg.com',EmailEncodingKey='UTF-8', LastName='TestUser', LanguageLocaleKey='zh_CN',LocaleSidKey='zh_CN', ProfileId = prof1.Id,TimeZoneSidKey='Asia/Shanghai', UserName='testUser@testorg.com');
        insert MyUser_Test;
        }
        system.runAs(MyUser_Test){
            //产品数据
            //Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
@@ -411,9 +453,9 @@
      //      Product2 prod04 = new Product2(Name='Test04',ProductCode='Test04',Asset_Model_No__c = 'Test04',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod05 = new Product2(Name='Test05',ProductCode='Test05',Asset_Model_No__c = 'Test05',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
      //      Product2 prod06 = new Product2(Name='Test06',ProductCode='Test06',Asset_Model_No__c = 'Test06',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1);
            Product2 prod07 = new Product2(Name='Test07',ProductCode='Test07',Asset_Model_No__c = 'Test07',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod08 = new Product2(Name='Test08',ProductCode='Test08',Asset_Model_No__c = 'Test08',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            Product2 prod09 = new Product2(Name='Test09',ProductCode='Test09',Asset_Model_No__c = 'Test09',SFDA_Status__c = '有効',Dealer_special_Object__c = true,Packing_list_manual__c = 1,Category5__c='竞争对手');
            insert new Product2[] {prod07,prod08,prod09};
            //Product2__c pro1 = new Product2__c(Name='MH-364:帽',Product2__c = prod01.Id);
force-app/main/default/classes/LogAutoSendBatch.cls
@@ -5,6 +5,11 @@
    private Datetime times;
    private Boolean isForecast;// 20220318 ljh SWAG-CC54R2 add
    private String loginId;
     //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
     private BatchEmailUtil.ScBean scB1;
     //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
    /**
     * ã‚³ãƒ³ã‚¹ã‚¿ãƒ³ãƒˆ
     */
@@ -38,6 +43,16 @@
     */
    public Integer max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt);
    global Database.QueryLocator start(Database.BatchableContext BC) {
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
        scB1 = BatchEmailUtil.setSc1('LogAutoSendSchedule', 0, 23, 0, '0 30 *', null);
        if (System.Test.isRunningTest() == false) {
            for(CronTrigger ct : [SELECT Id FROM CronTrigger WHERE CronJobDetail.Name =: scB1.scName]) {
                System.abortJob(ct.Id);
            }
            system.schedule(scB1.scName, scB1.scTime, new LogAutoSendSchedule());
        }
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
        String profileId = UserInfo.getProfileId();
        // 20220318 ljh SWAG-CC54R2 add start
@@ -121,7 +136,9 @@
                                                AND NFM501Future_Count__c > 0 AND NFM501Future_Count__c < : max_cnt)
                                            OR(NFM501_Web_Annex_Count__c != null
                                               AND NFM501_Web_Annex_Count__c > 0 AND NFM501_Web_Annex_Count__c < : max_cnt))
                                       AND ownerId = : UserInfo.getUserId()]
                                       AND ownerId = : UserInfo.getUserId()
                                       ORDER BY CreatedDate // 2023-02-04   ZYH   ADD
                                       ]
                );
        }
    }
@@ -300,6 +317,11 @@
            if (strType_c == 'NFM612') {
                NFM612Rest.main(rowData.Id);
            }
            // 2023-3-6   zyh   add   æŠ¥ä¿®å­å•发送接口测试用
            if (strType_c == 'NFM612S') {
                NFM612Controller.ManualExecute(rowData.Id);
            }
            // 2023-3-6   zyh   add   æŠ¥ä¿®å­å•发送接口测试用
            if (strType_c == 'NFM620') {
                NFM620Rest.main(rowData.Id);
            }
@@ -310,12 +332,12 @@
                NFM621Controller.execute(rowData, null);
            }
            //zhj æ–°æ–¹æ¡ˆæ”¹é€  2023-01-06 start
            if (strType_c == 'NFM624') {//智慧医疗pk
                NFM624Rest.main(rowData.Id);
            }
            // if (strType_c == 'NFM624Rest2') {//智慧医疗pk
            //     NFMUtil.againSendToAWS624(rowData.Id);
            // if (strType_c == 'NFM624') {//智慧医疗pk
            //     NFM624Rest.main(rowData.Id);
            // }
            if (strType_c == 'NFM624Rest2') {//智慧医疗pk
                NFMUtil.againSendToAWS624(rowData.Id);
            }
            //zhj æ–°æ–¹æ¡ˆæ”¹é€  2023-01-06 end
            if (strType_c == 'NFM622') {
                NFM622Controller.execute(rowData, null);
@@ -517,6 +539,8 @@
    }
    global void finish(Database.BatchableContext BC) {
        BatchEmailUtil.removeOtherSc('LogAutoSendSchedule', scB1.scName);  //20230203 lt è®¡åˆ’的作业优化
        // ä»Šå›žã¯ã‚„ることないです
        // 20220318 ljh SWAG-CC54R2 add start
        if(String.isNotBlank(typeNFM) && typeNFM == 'NFM010' && isForecast){
force-app/main/default/classes/LogAutoSendSchedule.cls
@@ -62,9 +62,12 @@
        Datetime addOneM = System.now().addMinutes(2);
        String CRON_EXP = '0 ' + addOneM.minute() + ' ' + addOneM.hour() + ' ' + addOneM.day() + ' ' + addOneM.month() + ' ? ' + addOneM.year();
        List<CronTrigger> oldcron = [select Id from CronTrigger where CronExpression = :CRON_EXP and CronJobDetail.Name like 'LogAutoSend%'];
        if (oldcron.size() == 0) {
            System.schedule('LogAutoSend' + CRON_EXP, CRON_EXP, new LogAutoSendSchedule( messageGroupNumber, type));
        }
        // if (oldcron.size() == 0) {
            Datetime nowTime = Datetime.now();
            // System.schedule(+'LogAutoSend'+ CRON_EXP, CRON_EXP, new LogAutoSendSchedule( messageGroupNumber, type));
            System.schedule(+'LogAutoSend'+nowTime+'And'+messageGroupNumber + CRON_EXP, CRON_EXP, new LogAutoSendSchedule( messageGroupNumber, type));
        // }
        for (CronTrigger ct :
                [SELECT Id FROM CronTrigger WHERE State = 'DELETED' and CronJobDetail.Name like 'LogAutoSend%']) {
            System.abortJob(ct.id);
force-app/main/default/classes/LostCancelReportHandler.cls
@@ -214,6 +214,7 @@
        List<PCLLostProduct__c> lcrList=[select id,PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c,
                                        PCLLostBrand__r.Lost_Reason_Sub__c,PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c,
                                        PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c,   //20230215 lt DB202302247719
                                        PCLLostBrand__r.Lost_cancel_report__r.LostType__c,PCLLostBrand__r.Lost_By_Company__c,
                                        PCLLostBrand__r.Lost_By_Company_Mannual__c,PCLLostBrand__r.LostPrice__c,LostProduct__r.Name, 
                                        PCLLostBrand__r.Lost_reason_main__c,PCLLostBrand__r.Agency__r.Name,PCLLostBrand__r.AgencyMannual__c,
@@ -233,22 +234,17 @@
            Opportunity opp=new Opportunity();
            //20220930  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 start
            opp.RivalHostsNumber__c = 0;
            System.debug('lt123初始失单主机数'+ opp.RivalHostsNumber__c);
            //20220930  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 end
            opp.Id=arrMap.get(lcro).Opportunity__c; opp.PCLLostBrands__c=''; opp.Agencies__c='';    //Id ,品牌,经销商
            // for产品
            for (PCLLostProduct__c lcr : lcrList) {
                System.debug('lt123主机111'+ lcr.ProductClass__c);
                if (opp.Id==lcr.Opportunity__c) {
                    //20220930  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 start
                    System.debug('lt123主机'+ lcr.ProductClass__c);
                    if(lcr.ProductClass__c == '主机'){
                        opp.RivalHostsNumber__c += lcr.Quantity__c;
                        System.debug('lt123累加失单主机数'+ opp.RivalHostsNumber__c);
                    }else{
                        opp.RivalHostsNumber__c += 0;
                        System.debug('lt123不变失单主机数'+ opp.RivalHostsNumber__c);
                    }
                    //20220930  lt SWAG-CHL5XA【FY23询价改善】-统计主机台数 end
@@ -325,10 +321,20 @@
                    //  }
                    // }
                    //失单总金额
                    opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;
                    //opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;//20230215 lt DB202302247719 æ³¨é‡Š
                    // opp.LostPrices__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c;   //20230215 lt DB202302247719
                    opp.of_lost_system_processor__c=lcr.PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c;
                }
            }
            //20230215 lt DB202302247719 start
            if(arrMap.get(lcro).TotalAmountLost__c != null){
                if(opp.LostPrices__c == null){
                    opp.LostPrices__c = 0;
                }
                opp.LostPrices__c+=arrMap.get(lcro).TotalAmountLost__c;
            }
            //20230215 lt DB202302247719 end
            // 20221202 ljh DB202211594688  start
            System.debug('zheli00:'+oppIdPZSet+'~'+opp.Id);
            if(oppIdPZSet.contains(opp.Id)){
force-app/main/default/classes/LostCancelReportOppBatch.cls
@@ -31,7 +31,8 @@
        //     query += ' where Id in :IdList';
        // }
        // 2022-01-18 ä¿®æ”¹ ä»Žå¤±å•报告取值
        String query = 'SELECT Id FROM Lost_cancel_report__c WHERE Report_Status__c = \'批准\' AND LostType__c in (\'失单\', \'部分失单\') ';
        String query = 'SELECT Id, Opportunity__c FROM Lost_cancel_report__c WHERE Report_Status__c = \'批准\' AND LostType__c in (\'失单\', \'部分失单\') ';
        //20230215 lt DB202302247719 add , Opportunity__c
        if (start_date != null) {
            query += ' AND Submit_Day__c >= :start_date';
        }
@@ -139,145 +140,206 @@
    // 2022-01-18 ä¿®æ”¹ ä»Žå¤±å•报告取值
    global void execute(Database.BatchableContext BC, List<Lost_cancel_report__c> scope) {
        List<String> reportIdList=new List<String>();
        // List<String> reportIdList=new List<String>();//20230215 lt DB202302247719 æ³¨é‡Š
        Set<String> oppIdList = new Set<String>();//20230215 lt DB202302247719
        for (Lost_cancel_report__c report : scope) {
            reportIdList.add(report.Id);
            // reportIdList.add(report.Id);   //20230215 lt DB202302247719 æ³¨é‡Š
            oppIdList.add(report.Opportunity__c);      //20230215 lt DB202302247719
        }
        List<PCLLostProduct__c> pclLpList=[select
                                            id,                                                                  // å¤±å•型号id
                                            Quantity__c,                                                         // å¤±å•数量
                                            LostProductName__c,                                                  // å¤±å•对手型号
                                            LostProductMannual__c,                                               // å¤±å•对手型号(手动)
                                            PCLLostBrand__r.Lost_By_Company__c,                                  // å¤±å•品牌
                                            PCLLostBrand__r.Lost_reason_main__c,                                 // å¤±å•原因(主)
                                            PCLLostBrand__r.Lost_Reason_Sub__c,                                  // å¤±å•原因(次)
                                            PCLLostBrand__r.Lost_By_Company_Mannual__c,                          // å¤±å•品牌(手动)
                                            PCLLostBrand__r.Agency__r.Name,                                      // ä¸­æ ‡ç»é”€å•†
                                            PCLLostBrand__r.AgencyMannual__c,                                    // ä¸­æ ‡ç»é”€å•†ï¼ˆæ‰‹åŠ¨ï¼‰
                                            PCLLostBrand__r.Lost_cancel_report__r.LostType__c,                   // å¤±å•类型
                                            PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c,            // å¤±å•总金额
                                            PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c,   // å¤±å•主机台数
                                            PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c
                                        from
                                            PCLLostProduct__c
                                        where
                                        PCLLostBrand__r.Lost_cancel_report__c in :reportIdList];
        //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
        // List<PCLLostProduct__c> pclLpList=[select
        //                                     id,                                                                  // å¤±å•型号id
        //                                     Quantity__c,                                                         // å¤±å•数量
        //                                     LostProductName__c,                                                  // å¤±å•对手型号
        //                                     LostProductMannual__c,                                               // å¤±å•对手型号(手动)
        //                                     PCLLostBrand__r.Lost_By_Company__c,                                  // å¤±å•品牌
        //                                     PCLLostBrand__r.Lost_reason_main__c,                                 // å¤±å•原因(主)
        //                                     PCLLostBrand__r.Lost_Reason_Sub__c,                                  // å¤±å•原因(次)
        //                                     PCLLostBrand__r.Lost_By_Company_Mannual__c,                          // å¤±å•品牌(手动)
        //                                     PCLLostBrand__r.Agency__r.Name,                                      // ä¸­æ ‡ç»é”€å•†
        //                                     PCLLostBrand__r.AgencyMannual__c,                                    // ä¸­æ ‡ç»é”€å•†ï¼ˆæ‰‹åŠ¨ï¼‰
        //                                     PCLLostBrand__r.Lost_cancel_report__r.LostType__c,                   // å¤±å•类型
        //                                     PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c,            // å¤±å•总金额
        //                                     PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c,              // å¤±å•总金额(不含税)  //20230215 lt DB202302247719
        //                                     PCLLostBrand__r.Lost_cancel_report__r.of_lost_system_processor__c,   // å¤±å•主机台数
        //                                     PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c
        //                                 from
        //                                     PCLLostProduct__c
        //                                 where
        //                                 PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c in :reportIdList];
                                        //20230215 lt DB202302247719   PCLLostBrand__r.Lost_cancel_report__c  ---update---  PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c
        
        // åˆå§‹åŒ–保存参数
        List<Lost_cancel_report__c> lcrList = [SELECT Id, Opportunity__c, TotalAmountLost__c
                                               FROM Lost_cancel_report__c
                                               WHERE Opportunity__c in :oppIdList];
        //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
        //DB202302247719 lt start
        Map<String, Opportunity> opp_map = new Map<String, Opportunity>();
        Map<String, String> prod_map = new Map<String, String>();
        Map<String, String> agency_map = new Map<String, String>();
        // å¾ªçŽ¯æ•´ç†æ•°æ®
        for (PCLLostProduct__c lost : pclLpList) {
            // åˆ¤æ–­æ˜¯å¦å¯ç”¨æ•°æ®
            // if (String.isBlank(lost.LostProductName__c) && String.isBlank(lost.LostProductMannual__c)) {
            //     continue;
            // }
        for (Lost_cancel_report__c lcr : lcrList){
            // è¯¢ä»·id
            String opp_id = lost.PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c;
            String opp_id = lcr.Opportunity__c;
            // è¯¢ä»·
            Opportunity opp = opp_map.get(opp_id);
            if (opp == null) {
                opp = new Opportunity();
                opp.Id = opp_id;
                opp.of_lost_system_processor__c = 0;
                opp_map.put(opp_id, opp);
            }
            // èµ‹å€¼
            opp.LostTypeText__c = lost.PCLLostBrand__r.Lost_cancel_report__r.LostType__c;       // å¤±å•类型
            opp.LostPrices__c = lost.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;  // å¤±å•金额
            opp.Lost_reason_main__c = lost.PCLLostBrand__r.Lost_reason_main__c;                 // å¤±å•原因(主)
            opp.Lost_Reason_Sub__c = lost.PCLLostBrand__r.Lost_Reason_Sub__c;                   // å¤±å•理由(次)
            opp.of_lost_system_processor__c += lost.Quantity__c;                                 // å¤±å•主机台数(累加)
            // å¤±å•产品123 start
            if (opp.CompetitorProduct1__c == null) {
                opp.CompetitorProduct1__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
            }else if (opp.CompetitorProduct2__c == null) {
                opp.CompetitorProduct2__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
            }else if (opp.CompetitorProduct3__c == null) {
                opp.CompetitorProduct3__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
            System.debug('---lt123---询价失单金额---'+opp.LostPrices__c);
            System.debug('---lt123---失单总金额,千元不含税---'+lcr.TotalAmountLost__c);
            if(lcr.TotalAmountLost__c != null){
                if(opp.LostPrices__c == null){
                    opp.LostPrices__c = 0;
            }
            // å¤±å•产品123 end
            // å¤±å•品牌
            opp.PCLLostBrands__c = lost_brand_name(opp.PCLLostBrands__c, lost.PCLLostBrand__r.Lost_By_Company__c, lost.PCLLostBrand__r.Lost_By_Company_Mannual__c);
            // ä¸­æ ‡ç»é”€å•†
            opp.Agencies__c = lost_agency_name(opp.Agencies__c, lost.PCLLostBrand__r.Agency__r.Name, lost.PCLLostBrand__r.AgencyMannual__c);
                opp.LostPrices__c += lcr.TotalAmountLost__c;  // å¤±å•金额
                System.debug('---lt123---累加后询价失单金额---'+opp.LostPrices__c);
            }
        }
        //DB202302247719 lt end
        //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
        // // åˆå§‹åŒ–保存参数
        // Map<String, Opportunity> opp_map = new Map<String, Opportunity>();
        // Map<String, String> prod_map = new Map<String, String>();
        // Map<String, String> agency_map = new Map<String, String>();
        // // å¾ªçŽ¯æ•´ç†æ•°æ®
        // for (PCLLostProduct__c lost : pclLpList) {
        //     // åˆ¤æ–­æ˜¯å¦å¯ç”¨æ•°æ®
        //     // if (String.isBlank(lost.LostProductName__c) && String.isBlank(lost.LostProductMannual__c)) {
        //     //     continue;
        //     // }
        //     // è¯¢ä»·id
        //     String opp_id = lost.PCLLostBrand__r.Lost_cancel_report__r.Opportunity__c;
        //     // è¯¢ä»·
        //     Opportunity opp = opp_map.get(opp_id);
        //     if (opp == null) {
        //         opp = new Opportunity();
        //         opp.Id = opp_id;
        //         opp.of_lost_system_processor__c = 0;
        //         opp_map.put(opp_id, opp);
        //     }
        //     //20230215 lt DB202302247719 start
        //     System.debug('---lt123---询价失单金额---'+opp.LostPrices__c);
        //     System.debug('---lt123---失单总金额,千元不含税---'+lost.PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c);
        //     if(lost.PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c != null){
        //         if(opp.LostPrices__c == null){
        //             opp.LostPrices__c = 0;
        //         }
        //         opp.LostPrices__c += lost.PCLLostBrand__r.Lost_cancel_report__r.TotalAmountLost__c;  // å¤±å•金额
        //     }
        //     //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
        //     // èµ‹å€¼
        //     // opp.LostTypeText__c = lost.PCLLostBrand__r.Lost_cancel_report__r.LostType__c;       // å¤±å•类型
        //     // //opp.LostPrices__c = lost.PCLLostBrand__r.Lost_cancel_report__r.LostTotalAmount__c;  // å¤±å•金额
        //     // opp.Lost_reason_main__c = lost.PCLLostBrand__r.Lost_reason_main__c;                 // å¤±å•原因(主)
        //     // opp.Lost_Reason_Sub__c = lost.PCLLostBrand__r.Lost_Reason_Sub__c;                   // å¤±å•理由(次)
        //     // opp.of_lost_system_processor__c += lost.Quantity__c;                                 // å¤±å•主机台数(累加)
        //     // å¤±å•产品123 start
        //     // if (opp.CompetitorProduct1__c == null) {
        //     //     opp.CompetitorProduct1__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
        //     // }else if (opp.CompetitorProduct2__c == null) {
        //     //     opp.CompetitorProduct2__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
        //     // }else if (opp.CompetitorProduct3__c == null) {
        //     //     opp.CompetitorProduct3__c = lost_product_name(lost.LostProductName__c, lost.LostProductMannual__c);
        //     // }
        //     // å¤±å•产品123 end
        //     // å¤±å•品牌
        //     // opp.PCLLostBrands__c = lost_brand_name(opp.PCLLostBrands__c, lost.PCLLostBrand__r.Lost_By_Company__c, lost.PCLLostBrand__r.Lost_By_Company_Mannual__c);
        //     // ä¸­æ ‡ç»é”€å•†
        //     // opp.Agencies__c = lost_agency_name(opp.Agencies__c, lost.PCLLostBrand__r.Agency__r.Name, lost.PCLLostBrand__r.AgencyMannual__c);
        //     //DB202302247719 æ³¨é‡Š  lt
        //     //20230215 lt DB202302247719 end
        // }
        //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
        System.debug(opp_map);
        StaticParameter.EscapeOppandStaTrigger = true; //20230215 lt DB202302247719
        update opp_map.values();
        StaticParameter.EscapeOppandStaTrigger = true; //20230215 lt DB202302247719
    }
    //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
    // å¤±å•对手型号
    private String lost_product_name(String lost_product, String lost_product_mannual) {
        if (String.isBlank(lost_product) && String.isNotBlank(lost_product_mannual)) {
            return lost_product_mannual;
        }
        return lost_product;
    }
    // private String lost_product_name(String lost_product, String lost_product_mannual) {
    //     if (String.isBlank(lost_product) && String.isNotBlank(lost_product_mannual)) {
    //         return lost_product_mannual;
    //     }
    //     return lost_product;
    // }
    // å¤±å•品牌
    private String lost_brand_name(String lost_brand_in_opp, String lost_brand, String lost_brand_mannual) {
        // åˆå§‹åŒ–参数
        String plus = '';
        // åˆ¤æ–­
        // SWAG-CCC6F6 2022-04-22 ssm start
        // è¯¢ä»·ä¸Šéƒ½åªæ˜¾ç¤ºé€‰é¡¹åˆ—表的值,不需要手动的值
        // if ('其他'.equals(lost_brand) && String.isNotBlank(lost_brand_mannual)) {
        //     plus = lost_brand_mannual;
        // } else {
    // // å¤±å•品牌
    // private String lost_brand_name(String lost_brand_in_opp, String lost_brand, String lost_brand_mannual) {
    //     // åˆå§‹åŒ–参数
    //     String plus = '';
    //     // åˆ¤æ–­
    //     // SWAG-CCC6F6 2022-04-22 ssm start
    //     // è¯¢ä»·ä¸Šéƒ½åªæ˜¾ç¤ºé€‰é¡¹åˆ—表的值,不需要手动的值
    //     // if ('其他'.equals(lost_brand) && String.isNotBlank(lost_brand_mannual)) {
    //     //     plus = lost_brand_mannual;
    //     // } else {
    //     //     plus = lost_brand;
    //     // }
        //     plus = lost_brand;
    //     // SWAG-CCC6F6 2022-04-22 ssm end
    //     // åˆå§‹åŒ–返回值
    //     if (String.isBlank(lost_brand_in_opp)) {
    //         lost_brand_in_opp = '';
        // }
        plus = lost_brand;
        // SWAG-CCC6F6 2022-04-22 ssm end
        // åˆå§‹åŒ–返回值
        if (String.isBlank(lost_brand_in_opp)) {
            lost_brand_in_opp = '';
        }
        // æ‹¼æŽ¥
        if (String.isNotBlank(plus) && !lost_brand_in_opp.contains(plus)) {
            // å¢žåŠ åˆ†éš”æ ‡è¯†
            if (String.isNotBlank(lost_brand_in_opp)) {
                lost_brand_in_opp += ',';
            }
            lost_brand_in_opp += plus;
        }
        return lost_brand_in_opp;
    }
    //     // æ‹¼æŽ¥
    //     if (String.isNotBlank(plus) && !lost_brand_in_opp.contains(plus)) {
    //         // å¢žåŠ åˆ†éš”æ ‡è¯†
    //         if (String.isNotBlank(lost_brand_in_opp)) {
    //             lost_brand_in_opp += ',';
    //         }
    //         lost_brand_in_opp += plus;
    //     }
    //     return lost_brand_in_opp;
    // }
    // ä¸­æ ‡ç»é”€å•†
    private String lost_agency_name(String lost_agency_in_opp, String lost_agency, String lost_agency_mannual) {
        // åˆå§‹åŒ–参数
        String plus = '';
        // åˆ¤æ–­
        // SWAG-CCC6F6 2022-04-22 ssm start
        // è¯¢ä»·ä¸Šéƒ½åªæ˜¾ç¤ºé€‰é¡¹åˆ—表的值,不需要手动的值
        // if ('对手经销商'.equals(lost_agency) && String.isNotBlank(lost_agency_mannual)) {
        //     plus = lost_agency_mannual;
        // } else {
    // // ä¸­æ ‡ç»é”€å•†
    // private String lost_agency_name(String lost_agency_in_opp, String lost_agency, String lost_agency_mannual) {
    //     // åˆå§‹åŒ–参数
    //     String plus = '';
    //     // åˆ¤æ–­
    //     // SWAG-CCC6F6 2022-04-22 ssm start
    //     // è¯¢ä»·ä¸Šéƒ½åªæ˜¾ç¤ºé€‰é¡¹åˆ—表的值,不需要手动的值
    //     // if ('对手经销商'.equals(lost_agency) && String.isNotBlank(lost_agency_mannual)) {
    //     //     plus = lost_agency_mannual;
    //     // } else {
    //     //     plus = lost_agency;
    //     // }
        //     plus = lost_agency;
    //     // SWAG-CCC6F6 2022-04-22 ssm end
    //     // åˆå§‹åŒ–返回值
    //     if (String.isBlank(lost_agency_in_opp)) {
    //         lost_agency_in_opp = '';
        // }
        plus = lost_agency;
        // SWAG-CCC6F6 2022-04-22 ssm end
        // åˆå§‹åŒ–返回值
        if (String.isBlank(lost_agency_in_opp)) {
            lost_agency_in_opp = '';
        }
        // æ‹¼æŽ¥
        if (String.isNotBlank(plus) && !lost_agency_in_opp.contains(plus)) {
            // å¢žåŠ åˆ†éš”æ ‡è¯†
            if (String.isNotBlank(lost_agency_in_opp)) {
                lost_agency_in_opp += ',';
            }
            lost_agency_in_opp += plus;
        }
        return lost_agency_in_opp;
    }
    //     // æ‹¼æŽ¥
    //     if (String.isNotBlank(plus) && !lost_agency_in_opp.contains(plus)) {
    //         // å¢žåŠ åˆ†éš”æ ‡è¯†
    //         if (String.isNotBlank(lost_agency_in_opp)) {
    //             lost_agency_in_opp += ',';
    //         }
    //         lost_agency_in_opp += plus;
    //     }
    //     return lost_agency_in_opp;
    // }
    //DB202302247719 æ³¨é‡Š  lt  æ³¨é‡ŠåŽŸå› ï¼šDB202302247719课题刷失单报告数据只刷失单金额
    global void finish(Database.BatchableContext BC) {
force-app/main/default/classes/LostCancelReportOppBatchTest.cls
@@ -72,8 +72,8 @@
        insert new List<PCLLostBrand__c> {pcllb1,pcllb2};
        // äº§å“
        Product2 pro1 = new Product2(Name='name01',Brand_Name__c='蛇牌',Category5__c='竞争对手',IsActive=true,Family='SP',Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n01',ProductCode_Ext__c='pc01',Manual_Entry__c=false);
        Product2 pro2 = new Product2(Name='name02',Brand_Name__c='蛇牌',Category5__c='竞争对手',IsActive=true,Family='SP2',Fixture_Model_No__c='n02',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n02',ProductCode_Ext__c='pc02',Manual_Entry__c=false);
        Product2 pro1 = new Product2(Name='name01',Brand_Name__c='蛇牌',Category5__c='竞争对手',IsActive=true,Family='SP',Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n01',ProductCode_Ext__c='pc01',Manual_Entry__c=false,RecordTypeId='0129D000001NacD');//正式01210000000aMAE
        Product2 pro2 = new Product2(Name='name02',Brand_Name__c='蛇牌',Category5__c='竞争对手',IsActive=true,Family='SP2',Fixture_Model_No__c='n02',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n02',ProductCode_Ext__c='pc02',Manual_Entry__c=false,RecordTypeId='0129D000001NacD');//测试0129D000001NacD
        insert new List<Product2> {pro1,pro2};
        //失单型号
force-app/main/default/classes/MainFixtureSelectController.cls
@@ -214,7 +214,7 @@
                    pCunFangDi = bieCunFangDi;
                    // æœ¬éƒ¨åˆå§‹å€¼
                    // Modify by Liu 20220908 Solution本部课题对应 start
                    if (parentObj.Rental_Apply__r.Salesdepartment__c == '16.消化·呼吸领域解决方案本部') {
                    if (parentObj.Rental_Apply__r.Salesdepartment__c == '16.Solution本部') {
                        bieBenBu = '16.Solution本部';
                    } else {
                        bieBenBu = parentObj.Rental_Apply__r.Salesdepartment__c;
@@ -1329,7 +1329,7 @@
            // soql += ' and Salesdepartment__c = \'' + String.escapeSingleQuotes(bieBenBu) + '\'';
            // Modify by Liu 20220908 Solution本部课题对应 start
            //List<String> bieBenBuList = bieBenBu.split(',');
            List<String> bieBenBuList = bieBenBu.replace('16.Solution本部', '16.消化·呼吸领域解决方案本部').split(',');
            List<String> bieBenBuList = bieBenBu.replace('16.Solution本部', '16.Solution本部').split(',');
            // Modify by Liu 20220908 Solution本部课题对应 end
            soql += RentalFixtureSetAssignController.setSoql('Salesdepartment__c', bieBenBuList);
            /*String benbuStr = '';
@@ -2054,7 +2054,7 @@
                // Modify by Liu 20220908 Solution本部课题对应 start
                //bieBenBu = obj.salesdepartments;
                bieBenBu = obj.salesdepartments.replace('16.消化·呼吸领域解决方案本部', '16.Solution本部');
                bieBenBu = obj.salesdepartments.replace('16.Solution本部', '16.Solution本部');
                // Modify by Liu 20220908 Solution本部课题对应 end
                // æŽ’队后,默认排队值需要在画面端显示  å¤‡å“åˆ†ç±»
@@ -2070,7 +2070,7 @@
                // Modify by Liu 20220908 Solution本部课题对应 start
                //keyObj.salesdepartments = bieBenBu;
                keyObj.salesdepartments = bieBenBu.replace('16.Solution本部', '16.消化·呼吸领域解决方案本部');
                keyObj.salesdepartments = bieBenBu.replace('16.Solution本部', '16.Solution本部');
                // Modify by Liu 20220908 Solution本部课题对应 end
                RentalFixtureSetAssignController.getsequencekeyList(keyObj);
force-app/main/default/classes/NFM010UpsertStatuAchievementsTriggerTest.cls
@@ -63,7 +63,7 @@
        opp.Name                = 'GZ-SP-GD3187';
        opp.Trade__c            = '内貿';
        opp.StageName           = '引合';
        opp.CloseDate           = date.newinstance(2022, 11, 30);
        opp.CloseDate           = date.newinstance(2023, 11, 30);
        insert opp;
        // å†å–å¾—
        List<Opportunity> oppList =
@@ -763,7 +763,7 @@
            opp.Name                = 'GZ-SP-GD3187';
            opp.Trade__c            = '内貿';
            opp.StageName           = '引合';
            opp.CloseDate           = date.newinstance(2022, 11, 30);
            opp.CloseDate           = date.newinstance(2023, 11, 30);
            opp.Group_purchase_PCL__c  = true;
            insert opp;
            System.Test.StopTest();
force-app/main/default/classes/NFM103Controller.cls
@@ -203,11 +203,12 @@
                    //XLIU-CGAD3Z ã€å§”托】备品相关字段传输至SAP LY 20220714 end
                    
                    // åˆ°è¾¾ä¸Šé™   ä¿®ç†å•修改时  ä¸Šé™åˆåŒ by20230104 start
                    if ( rpr.ZFLAG_SX__c == true){
                    if ((rpr.ZFLAG_SX__c == true && oldMap.get(rpr.Id).ZFLAG_SX__c !=rpr.ZFLAG_SX__c && rpr.Agreed_Date__c!=null) ||
                        (rpr.ZFLAG_SX__c == false && oldMap.get(rpr.Id).ZFLAG_SX__c !=rpr.ZFLAG_SX__c && rpr.Agreed_Date__c==null) ){
                        if (NFM103Controller.NFM103_Ids.contains(rpr.Id) == false) {
                            NFM103_Ids.add(rpr.Id);
                            rprIds.add(rpr.Id);
                            updMap.put(rpr.Id, new Repair__c(Id = rpr.Id));
                            updMap.put(rpr.Id, new Repair__c(Id = rpr.Id,Address_type__c = 'X'));
                            NFM103Controller.debug_msg += 'NFM103_callout_update3_' + rpr.Name;
                        }
                    }
@@ -246,8 +247,9 @@
            // NFM103Controller.callout(iflog.Id, rprIds);
            String uid = UserInfo.getUserId();
            String BUid = System.Label.Batch_User_Id;
            String OLYid = System.Label.OlympusSystem_ID;
            System.debug('zheli');
            if (uid.substring(0,15) == BUid.substring(0,15)) {
            if (uid.substring(0,15) == BUid.substring(0,15) || uid.substring(0,15) == OLYid.substring(0,15)) {
                NFM103Controller.calloutNotfuture(iflog.Id, rprIds, null);
            }else{
                NFM103Controller.callout(iflog.Id, rprIds, null);
@@ -414,6 +416,7 @@
                                         ,Maintenance_Contract__r.Sum_repair_price_new__c
                                         ,Repair_Quotation_Id__r.Usage_Ratio_Price__c
                                         ,Maintenance_Contract__r.Remaining_Amount__c
                                         ,Maintenance_Contract__r.Limit_Price__c
                                         ,ZFLAG_CGSX__c
                                         ,ZFLAG_SX__c
                                         // ä¸Šé™åˆåŒ by20230104 end
@@ -524,17 +527,18 @@
                        && rpr.FSE_ApplyForRepair_Day__c >= rpr.Contract_Start_Date__c && rpr.FSE_ApplyForRepair_Day__c <= rpr.Contract_End_Date__c) {
                    // ä¸Šé™åˆåŒ by20230201 LY start å¦‚果是上限合同才去判断是否“超过合同上限”和“到达上限”标识
                    if (rpr.Maintenance_Contract__r.Limit_Price__c == true){
                        // â€œè¶…过合同上限”为true,不传合同信息,ZFLAG_CGSXä¼ Y
                        if (rpr.ZFLAG_CGSX__c == true) {
                            element.ZFLAG_CGSX = 'Y';
                        }
                        //“到达上限”为true,传合同信息,ZFLAG_SXä¼ Y
                        if (rpr.ZFLAG_SX__c == true) {
                            element.ZFLAG_SX = 'Y';
                        if (rpr.ZFLAG_CGSX__c == true) { // â€œè¶…过合同上限”为true,不传合同信息,ZFLAG_CGSXä¼ Y
                            element.ZFLAG_CGSX = 'X';
                        }else if (rpr.ZFLAG_SX__c == true) { //“到达上限”为true,传合同信息,ZFLAG_SXä¼ Y
                            element.ZFLAG_SX = 'X';
                            element.RepairContractObject  = 'X';
                            element.RepairContractNumber  = rpr.Maintenance_Contract__r.Maintenance_Contract_No__c;
                        }else { //没超过合同上限也没达到上限 ä¼ åˆåŒä¿¡æ¯ ZFLAG_CGSX传空 ZFLAG_SX传空
                            element.RepairContractObject  = 'X';
                            element.RepairContractNumber  = rpr.Maintenance_Contract__r.Maintenance_Contract_No__c;
                        }
                    }else {
                    }else { //不是上限合同 ä¼ åˆåŒä¿¡æ¯
                        element.RepairContractObject  = 'X';
                        element.RepairContractNumber  = rpr.Maintenance_Contract__r.Maintenance_Contract_No__c;
                    }
@@ -845,11 +849,21 @@
            // ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—た場合
            System.debug(Logginglevel.ERROR, 'NFM103_' + iflog.Name + ':' + ex.getMessage());
            System.debug(Logginglevel.ERROR, 'NFM103_' + iflog.Name + ':' + ex.getStackTraceString());
            //NFM105触发103接口 20230303 LY start
            // logstr += ex.getMessage();
            // iflog.ErrorLog__c += ex.getMessage() + '\n';
            // iflog.ErrorLog__c += ex.getStackTraceString() + '\n';
                System.debug('标记0--------------------1:' + rowData.retry_cnt__c);
            // Callout from triggers are currently not supported.
            System.debug('NFM201jiekou'+ex.getMessage());
            if (!String.valueOf(ex.getMessage()).contains('Callout from triggers')) {
            logstr += ex.getMessage();
            iflog.ErrorLog__c += ex.getMessage() + '\n';
            iflog.ErrorLog__c += ex.getStackTraceString() + '\n';
                System.debug('标记0--------------------1:' + rowData.retry_cnt__c);
            }
            //NFM105触发103接口 20230303 LY end
            //---Gaozw---add
            if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0;
            if (rowData.retry_cnt__c < batch_retry_max_cnt) {
force-app/main/default/classes/NFM104Rest.cls
@@ -313,6 +313,10 @@
                            else if (di.DiscountType == '运输索赔') {
                                rq.Delivery_compensation__c = String.isBlank(di.DiscountAmount) ? null : Decimal.valueOf(di.DiscountAmount);
                            }
                            //DB202303075842 LY 2023/3/6 add
                            else if (di.DiscountType == '上限合同'){
                                rq.LimitPrice_contract_discount_amount__c = String.isBlank(di.DiscountAmount) ? null : Decimal.valueOf(di.DiscountAmount);
                            }
                            //
                            else if (di.DiscountType == '其他') {
                                rq.Other_discount__c = String.isBlank(di.DiscountAmount) ? null : Decimal.valueOf(di.DiscountAmount);
force-app/main/default/classes/NFM105Rest.cls
@@ -165,6 +165,7 @@
                                    ,Maintenance_Contract__c
                                    ,SerialNumber__c
                                    ,Agreed_Date__c 
                                    ,Limit_Price__c //上限合同 LY 20230209
                                  from Repair__c
                                  where SAPRepairNo__c in :sapRepairNoList
                                  OR Name in :sfdcRepairNoList]
@@ -596,14 +597,21 @@
            List<ID> updateMC = new List<ID>();
            if (rprList.size() > 0 ) {
                for (Repair__c rc : rprList) {
                    if (rc.Limit_Price__c) {
                        //B95-报价同意确认、B99-报价同意确认取消、A95-取消修理受理、A96-取消修理、A99-修理单关闭 æ›´æ–°åˆåŒæœŸé—´ä¿®ç†é‡‘额
                        if (rc.RepairOrderStatusCode__c =='B95' || rc.RepairOrderStatusCode__c =='B99' || rc.RepairOrderStatusCode__c =='A99' || rc.RepairOrderStatusCode__c =='A95' || rc.RepairOrderStatusCode__c =='A96'){
                    Maintenance_Contract__c mc = new Maintenance_Contract__c();
                    if (!updateMC.contains(rc.Maintenance_Contract__c)) {
                        mc.Id = rc.Maintenance_Contract__c;
                    } 
                    updateMC.add(mc.Id);
                }
                    }
                }
                if (updateMC.size()>0) {
                Database.executeBatch(new RollupToMaintenanceContractBatch(updateMC), 1);
            }
            }
            //上限合同 LY 20230131 end
            //add by rentx 2021-3-4 start
force-app/main/default/classes/NFM301Rest.cls
@@ -108,6 +108,7 @@
        String rowDataStr = NFMUtil.getRowDataStr(rowData);
        List<GeneralData> geDataList = (List<GeneralData>) JSON.deserialize(rowDataStr, List<GeneralData>.class);
        System.debug('zheli00:'+geDataList.size());
        if (geDataList == null || geDataList.size() == 0) {
            return;
        }
@@ -316,6 +317,7 @@
            //查找变更资本化日期的保有设备(根据公司代码和固定资产编号)
            List<Asset> assetNumberAssetList = null;
            System.debug('zheli11:'+InternalAssetnumberkeyList.size());
            if (InternalAssetnumberkeyList.size() > 0) {
                assetNumberAssetList = [Select Id, Name, Product2.ProductCode, Product2.Dealer_special_Object__c , Product2.Dealer_Object__c,
@@ -335,6 +337,7 @@
                    }
                }
            }
            System.debug('zheli22:'+companyCodeAssetNumberMap.size());
            
            List<String> fixtureSetId = new List<String>();
            Map<String,String> fixmodelNo_proIdMap = new Map<String,String>();
@@ -376,7 +379,7 @@
                fixtrueSetDetailMap.put(fixSetDetail.UniqueKey__c,fixSetDetail.Id);
            }
            System.debug('zheli01:'+genlDatas.size());
            if (genlDatas.size() > 0) {
                List<String> receivingNoteOnlyInsertList = new List<String>(); 
@@ -521,6 +524,7 @@
                        }
                        if (String.isBlank(dnInfo.SerialNumber)) {
                            System.debug('zheli99');
                            continue;
                        }
@@ -657,7 +661,10 @@
                            continue;
                        }
                        if (String.isBlank(dnInfo.SerialNumber)) {
                        // 20230221 ljh start
                        // if (String.isBlank(dnInfo.SerialNumber)) {
                        if (info.ProcessType == '1' &&  String.isBlank(dnInfo.SerialNumber)) {
                        // 20230221 ljh end
                            continue;
                        }
@@ -836,7 +843,7 @@
                        } else {
                            //ProcessType(处理方式)为2时,更新保有设备的Asset_day__c(资产化日期)
                            String assetNumberStr = info.CompanyCode + dnInfo.AssetNumber;
                            // System.debug('====='+Integer.valueOf(assetNumberStr+companyCodeAssetNumberMap));
                            System.debug('zheli====='+Integer.valueOf(assetNumberStr+companyCodeAssetNumberMap));
                            if ( companyCodeAssetNumberMap.containsKey(assetNumberStr)) {
                                assetZB = companyCodeAssetNumberMap.get(assetNumberStr);
force-app/main/default/classes/NFM402Batch.cls
@@ -1,11 +1,27 @@
global class NFM402Batch implements Database.Batchable<sObject>, Database.AllowsCallouts {
//20230203 lt è®¡åˆ’的作业优化   ---  ç»§æ‰¿åŠ â€œ, Database.Stateful”,不然removeOtherSc方法空指针
global class NFM402Batch implements Database.Batchable<sObject>, Database.AllowsCallouts, Database.Stateful {
    public String query;
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
    private BatchEmailUtil.ScBean scB1;
    //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
    global NFM402Batch() {
        this.query = query;
    }
    global Database.QueryLocator start(Database.BatchableContext bc) {
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ start
        scB1 = BatchEmailUtil.setSc1('NFM402Schedule', 0, 23, 0, '0 30 *', null);
        if (System.Test.isRunningTest() == false) {
            for(CronTrigger ct : [SELECT Id FROM CronTrigger WHERE CronJobDetail.Name =: scB1.scName]) {
                System.abortJob(ct.Id);
            }
            system.schedule(scB1.scName, scB1.scTime, new NFM402Schedule());
        }
        //20230203 lt è®¡åˆ’的作业优化  ä¸€å°æ—¶ä¸¤æ¬¡ end
        query = 'select id from Repair__c where AsyncData__c = true and (Complaint_Number__c = null or Complaint_Number__c = \'\')';
        return Database.getQueryLocator(query);
    }
@@ -42,6 +58,7 @@
    }
    global void finish(Database.BatchableContext BC) {
        BatchEmailUtil.removeOtherSc('NFM402Schedule', scB1.scName);  //20230203 lt è®¡åˆ’的作业优化
        // if (Test.isRunningTest() == false) {
            //update by rentongxiao ç”ŸæˆPDF 
            // Database.executeBatch(new RepairToPDFBatch(), 100);
force-app/main/default/classes/NFM504Controller.cls
@@ -34,7 +34,7 @@
        tenders.Monitoring = new NFMUtil.Monitoring();
        tenders.Monitoring.Tag                  = 'MSGH';
        tenders.Monitoring.Sender               = 'SFDC';
        tenders.Monitoring.Receiver             = 'SPO';
        tenders.Monitoring.Receiver             = 'QLM';
        tenders.Monitoring.MessageType          = 'NFM504';
        tenders.Monitoring.MessageGroupNumber   = DTenInfo.CursorMark__c;
        tenders.Monitoring.NumberOfRecord       = '2';
@@ -44,7 +44,7 @@
        //存放报错信息
        BatchIF_Log__c iflog504 = new BatchIF_Log__c();
        iflog504.Type__c = 'NFM501';
        iflog504.Type__c = 'NFM504';
        iflog504.RowDataFlg__c = false;
        iflog504.Log__c = ' ';
        iflog504.ErrorLog__c = ' ';
@@ -114,7 +114,7 @@
                Monitoring.TransmissionDateTime = tenders.Monitoring.TransmissionDateTime;
                Monitoring.Text = '';
                rowData = NFMUtil.makeRowData(Monitoring, 'NFM501', tenders);
                rowData = NFMUtil.makeRowData(Monitoring, 'NFM504', tenders);
                System.debug('---------2----------' + rowData);
                execute(rowData, iflog504, token);
force-app/main/default/classes/NFM603Controller.cls
@@ -485,7 +485,7 @@
            logstr += '\nend';
            if (repairs.size() > 0) {
                // 2022-05-05      zyh     update      start
                for (RepairOrderInfo roi : repairs ) {
                /*for (RepairOrderInfo roi : repairs ) {
                    repairs1.add(roi);
                    rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs1);
                    // 2022-05-07  zyh     update  start
@@ -497,7 +497,31 @@
                    // rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs);
                    // execute(rowData, iflog);
                    repairs1 = new List < RepairOrderInfo > ();
                }// 2022-08-19   zyh  å°ç¨‹åºå¼‚步处理,恢复批量发送
                */  // 2023-02-02   zyh   äº”个一批推送小程序   æ³¨é‡Šä¸Šæ–¹for循环
                // 2023-02-02   zyh   äº”个一批推送小程序   start
                for (Integer i=1;  i <= repairs.size();i++ ) {
                    if(Math.mod(i, 5) > 0 ){
                        repairs1.add(repairs[i-1]);
                        if(i == repairs.size()){
                            rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs1);
                            if (String.isBlank(rowData.MessageGroupNumber__c)) {
                                rowData.MessageGroupNumber__c = nowStr;
                }
                            execute1(rowData, iflog);
                        }
                    }else{
                        repairs1.add(repairs[i-1]);
                        rowData = NFMUtil.makeRowData(iflog, LOG_TYPE, repairs1);
                        if (String.isBlank(rowData.MessageGroupNumber__c)) {
                            rowData.MessageGroupNumber__c = nowStr;
                        }
                        execute1(rowData, iflog);
                        repairs1 = new List < RepairOrderInfo > ();
                    }
                }
                // 2023-02-02   zyh   äº”个一批推送小程序   end
                upsert logList;
                upsert rowList;
                // 2022-05-11  zyh     update start
@@ -580,8 +604,8 @@
                    rowDataSFDC.retry_cnt__c++;
                    // 20230201 ljh start 
                    // LogAutoSendSchedule.logId = rowDataSFDC.Id;
                    // LogAutoSendSchedule.assignOneMinute();
                    LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    LogAutoSendSchedule.assignOneMinute();
                    // LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    // 20230201 ljh  end 
                }
                if (rowDataSFDC.retry_cnt__c >= batch_retry_max_cnt) {
@@ -605,8 +629,8 @@
                    rowDataSFDC.retry_cnt__c++;
                    // 20230201 ljh start 
                    // LogAutoSendSchedule.logId = rowDataSFDC.Id;
                    // LogAutoSendSchedule.assignOneMinute();
                    LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    LogAutoSendSchedule.assignOneMinute();
                    // LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    // 20230201 ljh  end
                }
                if (rowDataSFDC.retry_cnt__c >= batch_retry_max_cnt){
@@ -667,8 +691,8 @@
                    rowDataSFDC.retry_cnt__c++;
                    // 20230201 ljh start 
                    // LogAutoSendSchedule.logId = rowDataSFDC.Id;
                    // LogAutoSendSchedule.assignOneMinute();
                    LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    LogAutoSendSchedule.assignOneMinute();
                    // LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    // 20230201 ljh  end
                }
                if (rowDataSFDC.retry_cnt__c >= batch_retry_max_cnt) {
@@ -692,8 +716,8 @@
                    rowDataSFDC.retry_cnt__c++;
                    // 20230201 ljh start 
                    // LogAutoSendSchedule.logId = rowDataSFDC.Id;
                    // LogAutoSendSchedule.assignOneMinute();
                    LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    LogAutoSendSchedule.assignOneMinute();
                    // LogAutoSendSchedule.assignOneMinute(rowDataSFDC.MessageGroupNumber__c,rowDataSFDC.Type__c);
                    // 20230201 ljh  end
                }
                if (rowDataSFDC.retry_cnt__c >= batch_retry_max_cnt){
force-app/main/default/classes/NFM612Rest.cls
@@ -8,6 +8,13 @@
    global class GeData {
        public RepairOderInfo repairOderInfo;
        public ApplyRepairInfo applyRepairInfo;
        public problem problem;
        public Logistics logistics;     //物流 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
        public String item0010;         //备用字段 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
        public String item0020;         //备用字段 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
        public String item0030;         //备用字段 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
        public String item0040;         //备用字段 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
        public String item0050;         //备用字段 zhj æ”¹é€ æ–°å¢žå­—段 2023-02-14
    }
    //报修单信息
    public class RepairOderInfo {
@@ -70,6 +77,9 @@
        public String cancelReportReason; //取消报修原因
    }
    //设备信息
    public class ApplyRepairInfo {
@@ -77,6 +87,47 @@
        public String equipmentCd; //机身编码(工程师)
        public String responseResultDesc; //应对描述
        public String processResult; //处理结果
    }
    //故障处理信息
    public class problem {
        public String dateReceiptQuestions; //投诉知悉日(Complaint Aware Date)
        public String ifDeadHurt; //是否有死亡、伤害、感染
        public String problemOccurred; //问题发生时间情况
        public String problemOccurredSelect; //问题发生时间情况 å…¶ä»–
        public String reportAdverseEvents; //医院有没有向政府机关报告不良事件或疑似不良事件
        public String whatProject; //做的是哪个项目
        public String operationOrExaminationName; //手术/检查名称
        public String breakORFallOff; //是否有发生断裂或脱落
        public String useFailProductFinish; //是否用该产品完成了手术/检查
        public String supportingProducts; //配套使用产品
        public String afterFailureInformation; //发现故障后,医院对患者的处理情况
        public String delay15Min; //发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
        public String informationFrom; //信息是从医院的谁那里得到的
        public String failureQInHospital; //在医院,故障发生的频率是多少
        public String delayReportReason; //超时报告的理由
        public String isProductFaultRelated; //是否与这次产品故障相关
    }
    //物流
    public class logistics {
        public String isOts; //是否使用ots
        public String senderOrgCode; //送修机构代码
        public String senderCompany; //送修机构名称
        public String senderName; //送修人姓名
        public String senderMobilePhone; //送修人手机
        public String senderAddress; //送修人地址
        public String recepientCompany; //接收机构名称
        public String recepientName; //接收送修人姓名
        public String recepientMobilePhone; //接收人手机
        public String recepientAddress; //接收人地址
        public String returnWayType; //返品方式
        public String orderNumber; //送修物流单号
        public String failureReason; //下单失败原因
        public String logisticsSendDate; //送修物流发送日
        public String item0010; //备用字段1
        public String item0020; //备用字段2
        public String item0030; //备用字段3
        public String item0040; //备用字段4
        public String item0050; //备用字段5
    }
    @HttpPost
    global static void doPost() {
@@ -131,6 +182,11 @@
            return;
        }
        Savepoint sp = Database.setSavepoint();
        /*List<RepairSubOrder__c> rsoList = [SELECT Id FROM RepairSubOrder__c WHERE Name = ged.repairOderInfo.repairOrderNo2];
        if (rsoList.size() > 0) {
        }
*/
        try {
            List < RepairSubOrder__c > repairList = new List < RepairSubOrder__c > ();
            Map < String, GeData > gedMap = new Map < String, GeData > ();
@@ -177,6 +233,7 @@
                // é™„件下载标记
                Boolean attachmentDownloadFlg = false;
                String repairOrderNo2Str = '报修子单No [ \n';
                Map<String,RepairSubOrder__c> RsoMap = new Map<String,RepairSubOrder__c>();
                for (String repairOrderNo2: gedMap.keySet()) {
                    GeData ged = gedMap.get(repairOrderNo2);
@@ -272,7 +329,43 @@
                    // repair.CancelleRepairTime__c = NFMUtil.parseStr2Date(ged.repairOderInfo.CancelDate);    //受理人取消报修日
                    repair.RepairCancelReason__c = ged.repairOderInfo.cancelReportReason;   //修理取消原因
                    //  2022/4/6    zhangyuheng update end
                    // 2023-02-20   zyh   add   start
                    repair.DateReceiptQuestions__c = ged.problem.dateReceiptQuestions; //投诉知悉日(Complaint Aware Date)
                    repair.IfDeadHurt__c = ged.problem.ifDeadHurt; //是否有死亡、伤害、感染
                    repair.ProblemOccurred__c = ged.problem.problemOccurred; //问题发生时间情况
                    repair.ProblemOccurredSelect__c = ged.problem.problemOccurredSelect; //问题发生时间情况 å…¶ä»–
                    repair.ReportAdverseEvents__c = ged.problem.reportAdverseEvents; //医院有没有向政府机关报告不良事件或疑似不良事件
                    repair.WhatProject__c = ged.problem.whatProject; //做的是哪个项目
                    repair.OperationOrExaminationName__c = ged.problem.operationOrExaminationName; //手术/检查名称
                    repair.BreakORFallOff__c = ged.problem.breakORFallOff; //是否有发生断裂或脱落
                    repair.UseFailProductFinish__c = ged.problem.useFailProductFinish; //是否用该产品完成了手术/检查
                    repair.SupportingProducts__c = ged.problem.supportingProducts; //配套使用产品
                    repair.AfterFailureInformation__c = ged.problem.afterFailureInformation; //发现故障后,医院对患者的处理情况
                    repair.Delay15Min__c = ged.problem.delay15Min; //发现故障现象后,有延误15分钟以上的手术实施的情况发生吗
                    repair.InformationFrom__c = ged.problem.informationFrom; //信息是从医院的谁那里得到的
                    repair.FailureQInHospital__c = ged.problem.failureQInHospital; //在医院,故障发生的频率是多少
                    repair.DelayReportReason__c = ged.problem.delayReportReason; //超时报告的理由
                    repair.IsProductFaultRelated__c = ged.problem.isProductFaultRelated; //是否与这次产品故障相关
                    repair.IsOts__c = ged.logistics.isOts; //是否使用ots
                    repair.SenderOrgCode__c = ged.logistics.senderOrgCode; //送修机构代码
                    repair.SenderCompany__c = ged.logistics.senderCompany; //送修机构名称
                    repair.SenderName__c = ged.logistics.senderName; //送修人姓名
                    repair.SenderMobilePhone__c = ged.logistics.senderMobilePhone; //送修人手机
                    repair.SenderAddress__c = ged.logistics.senderAddress; //送修人地址
                    repair.RecepientCompany__c = ged.logistics.recepientCompany; //接收机构名称
                    repair.RecepientName__c = ged.logistics.recepientName; //接收送修人姓名
                    repair.RecepientMobilePhone__c = ged.logistics.recepientMobilePhone; //接收人手机
                    repair.RecepientAddress__c = ged.logistics.recepientAddress; //接收人地址
                    repair.ReturnWayType__c = ged.logistics.returnWayType; //返品方式
                    repair.OrderNumber__c = ged.logistics.orderNumber; //送修物流单号
                    repair.FailureReason__c = ged.logistics.failureReason; //下单失败原因
                    repair.LogisticsSendDate__c = ged.logistics.logisticsSendDate; //送修物流发送日
                    repair.Item0010__c = ged.item0010; //备用字段1
                    repair.Item0020__c = ged.item0020; //备用字段2
                    repair.Item0030__c = ged.item0030; //备用字段3
                    repair.Item0040__c = ged.item0040; //备用字段4
                    repair.Item0050__c = ged.item0050; //备用字段5
                    // 2023-02-20   zyh   add   end
                    //LLIU-CG53S9 20220715 LY start
                    if ('问题已解决'.equals(ged.applyRepairInfo.processResult) ||'需做质量判定'.equals(ged.applyRepairInfo.processResult) ||'用户选择不修理'.equals(ged.applyRepairInfo.processResult)) {
                    //LLIU-CG53S9 20220715 LY end
@@ -298,11 +391,24 @@
                    repairOrderNo2Str += repairOrderNo2 + '\n';
                    repairList.add(repair);
                    repairNoList.add(ged.repairOderInfo.repairOrderNo2);
                    RsoMap.put(ged.repairOderInfo.repairOrderNo2,repair);
                }
                //  2022/4/6    zhangyuheng update start
                List<RepairSubOrder__c> repairList1 = [SELECT Id FROM RepairSubOrder__c WHERE RepairSubOrderNo__c in: repairNoList];
                if (repairList1.size() > 0) {
                List<RepairSubOrder__c> upList = new List<RepairSubOrder__c>();
                List<RepairSubOrder__c> repairSOList1 = [SELECT Id,RepairSubOrderNo__c,DateReceiptQuestions__c FROM RepairSubOrder__c WHERE RepairSubOrderNo__c in: repairNoList];
                if (repairSOList1.size() > 0) {
                    for(RepairSubOrder__c rso: repairSOList1){
                        if(RsoMap.containsKey(rso.RepairSubOrderNo__c)){
                            RepairSubOrder__c temp = new RepairSubOrder__c();
                            temp = RsoMap.get(rso.RepairSubOrderNo__c);
                            temp.Id = rso .Id;
                            upList.add(temp);
                        }
                    }
                    logstr += repairOrderNo2Str + ']-已存在';
                    update upList;
                    System.debug(repairSOList1[0].Id + '===' + repairSOList1[0].DateReceiptQuestions__c);
                    logstr += repairOrderNo2Str + '更新完成, æ›´æ–°æ€»æ•°ä¸ºï¼š' + repairSOList1.size() + '\n' + repairSOList1;
                }
                // if (repairList.size() > 0) {==== 2022/4/6 zhangyuheng注释掉
                else {
force-app/main/default/classes/NFM624Rest.cls
@@ -202,9 +202,11 @@
                }
                //查询市区Id 
                Map < String, String > CityMap = new Map < String, String > (); //市Map
                List < Address_Level2__c > citytempList = [select Id, Name from Address_Level2__c where Name IN: CityList];
                //省市对应该关系 LY 20230206 start
                List < Address_Level2__c > citytempList = [select Id, Name,Level1_Name__c  from Address_Level2__c where Name IN: CityList];
                for (Address_Level2__c temp: citytempList) {
                    CityMap.put(temp.Name, temp.Id);
                    CityMap.put(temp.Level1_Name__c+temp.Name, temp.Id);
                //省市对应该关系 LY 20230206 end
                }
 
                //查询医院所有人
@@ -586,7 +588,10 @@
                            //Ly çœæ–‡æœ¬èµ‹å€¼ start
                            hp.State_Text__c = gedata.State; //  çœ(文本)
                            //Ly çœæ–‡æœ¬èµ‹å€¼ end
                            hp.City_Master__c = CityMap.get(gedata.City); //     å¸‚
                            //省市对应该关系 LY 20230206 start
                            //hp.City_Master__c = CityMap.get(gedata.City); //     å¸‚
                            hp.City_Master__c = CityMap.get(gedata.State+gedata.City); //     å¸‚
                            //省市对应该关系 LY 20230206 end
                            hp.Hospital_Source__c = '智慧医疗';
                            upsertAccountList.add(hp);
                            System.debug('upsertAccountList'+upsertAccountList);
force-app/main/default/classes/NFM704Rest.cls
@@ -117,6 +117,11 @@
        Savepoint sp = Database.setSavepoint();
        // 704改善 2023-02-09 ssm start
        // å¢žåŠ ä¸€ä¸ªæ ‡è®°ï¼Œå½“å›žä¼ æ•°æ®é‡Œï¼ŒåŒ»é™¢ç®¡ç†ç¼–ç ä¸ºç©ºæ—¶ï¼ŒæŠ¥é”™ä½†ä¸é‡å‘
        Boolean error_without_resend = false;
        // 704改善 2023-02-09 ssm end
        try{
            //管理编码List
            List<String> DoctorNoList = new List<String>();
@@ -198,6 +203,10 @@
                }else{//否
                    // continue;
                    logstr += '不存在的医院管理编码:['+accMap.get(ged.HospitalMCode)+']/n';
                    // 704改善 2023-02-09 ssm start
                    // è®¾ç½®æ ‡è®°ä¸ºtrue
                    error_without_resend = true;
                    // 704改善 2023-02-09 ssm end
                    throw new ControllerUtil.myException('不存在的医院管理编码:['+accMap.get(ged.HospitalMCode)+']');
                }
@@ -232,8 +241,21 @@
            logstr += '\n' + ex.getMessage();
            iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c;
            // å¼‚常重发
            // 704改善 2023-02-09 ssm start
            if (error_without_resend) {
                // retry_cnt设置为0
                rowData.retry_cnt__c = 0;
                logstr += '\nend';
                rowData.ErrorLog__c += ex.getMessage() + '\n' + ex.getStackTraceString() + '\n';
                iflog.ErrorLog__c += ex.getMessage() + '\n' + ex.getStackTraceString() + '\n';
                iflog.Log__c += logstr;
                upsert iflog;
                upsert rowData;
            } else {
            rowData = NFMUtil.LogAutoSend(rowData, ex, null);
        }
            // 704改善 2023-02-09 ssm end
        }
        iflog.Log__c = logstr;
        upsert iflog;
        upsert rowData;
force-app/main/default/classes/NFMUtil.cls
@@ -1321,7 +1321,9 @@
        request.setEndpoint(hostUrl + '/api/nfm/reCallNFM624Batch?nfm624RequestId=' + GeDataList[0].nfm624RequestId + '&rowDataId=' + rowDataId);
        request.setMethod('GET');
        request.setHeader('pi-token',documentPI.token);
        request.setTimeout(60000);
        HttpResponse response = http.send(request);
        System.debug('response = ' + response);
        System.debug('send batchSendToAWS624');
    }
    //zhj batch è°ƒç”¨624接口的时候 éœ€è¦è°ƒç”¨AWS 2023-01-08 end
@@ -1738,6 +1740,74 @@
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        i++;
        return i;
    }
}
force-app/main/default/classes/NewQuoteIraiController.cls
@@ -310,6 +310,15 @@
                } else {
                    // å·²ç»å­˜åœ¨æŠ¥ä»·
                    if (String.isNotBlank(oppquoid)) {
                        //DB202302464682【报价委托】报价委托改善224 fy start
                        Quote quo2 = new Quote();
                        List<Quote> quote =  [select Id,Agency1__c,Agency2__c From Quote Where Id =:oppquoid];
                        if(quote.size()>0){
                            quo2=quote[0];
                        }
                        quo.Agency1_entrust__c = quo2.Agency1__c;
                        quo.Agency2_entrust__c = quo2.Agency2__c;
                        //DB202302464682【报价委托】报价委托改善224 fy end
                        // æŠ¥ä»·å•†å“å–å¾—
                        // CHAN-BHNBX6 2019/11/20 START//fy lastbuy 20220310 PricebookEntry.Product2.LastbuyProductFLG__c
                        List<QuoteLineItem> qlis = [select id,PricebookEntry.Product2Id,PricebookEntry.Product2.LastbuyProductFLG__c,Quantity__c,CurrencyIsoCode,GuaranteePeriod__c from QuoteLineItem where QuoteId = :oppquoid];
@@ -426,6 +435,7 @@
                [ SELECT Id,Name,Cancel_Decide__c,Agency_Hospital_Link__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,Agency1_entrust__c,cancelMultiyearInsurance__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Noteplus__c,Lead__c,Opportunity__c,
                        TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                        Agency2_entrust__c,//DB202302464682【报价委托】报价委托改善224 fy
                        Print_HP_Name__c,Account__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                        , urgent__c  //20230104 lt DB202212427301
                        FROM QuoteIrai__c Where Id =:quoId];
@@ -1022,7 +1032,7 @@
                }
            }
        }
        System.debug('---lt123---descriptions---'+descriptions);
        // System.debug('---lt123---descriptions---'+descriptions);
        if (descriptions.size() <= 0) {
            errorflg = true;
            errorMessage = '没有要委托的产品。';
@@ -1059,7 +1069,7 @@
                }
                i += 1;
            }
            System.debug('---lt123---description---'+description);
            // System.debug('---lt123---description---'+description);
            //obsap æ–°å¢žç»é”€å•†1字段 fy start
            if (!String.isBlank(quo.Agency1_entrust__c)) {
                Account  quoteAeName = [select Id,Name from Account where Id =:quo.Agency1_entrust__c];
@@ -1068,6 +1078,13 @@
                descriptionsendEmailbody += '\r\n' + '第一经销商名称' + ':' + quoteAeName.Name;
                //20230116 fy end
            }
            //DB202302464682【报价委托】报价委托改善224 fy start
            if (!String.isBlank(quo.Agency2_entrust__c)) {
                Account  quoteAeName2 = [select Id,Name from Account where Id =:quo.Agency2_entrust__c];
                description += '\r\n' + '第二经销商名称' + ':' + quoteAeName2.Name;
                descriptionsendEmailbody += '\r\n' + '第二经销商名称' + ':' + quoteAeName2.Name;
            }
            //DB202302464682【报价委托】报价委托改善224 fy end
            if (quo.QuoteProportion__c!=null) {
                description += '\r\n' + '报价比例' + ':' + quo.QuoteProportion__c;
                //20230116 fy start
@@ -1119,6 +1136,12 @@
                descriptionsendEmailbody += '\r\n' + '第一经销商' + ':' + baseUrl + '/' + quo.Agency1_entrust__c;
                //20230116 fy end
            }
            //DB202302464682【报价委托】报价委托改善224 fy start
            if (!String.isBlank(quo.Agency2_entrust__c)) {
                description += '\r\n' + '第二经销商' + ':' + baseUrl + '/' + quo.Agency2_entrust__c;
                descriptionsendEmailbody += '\r\n' + '第二经销商' + ':' + baseUrl + '/' + quo.Agency2_entrust__c;
            }
            //DB202302464682【报价委托】报价委托改善224 fy end
            //SWAG-CKDATG【委托】【OBSAP-报价委托】报价委托项目改善1 fy start
            if (!String.isBlank(tenderid)&&!description.contains('招标项目') ) {
                description += '\r\n' + '招标项目' + ':' + baseUrl + '/' + tenderid;
@@ -1304,7 +1327,7 @@
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
                quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,//obsap æ–°å¢žç»é”€å•†1字段 fy satrt Agency1_entrust__c,SWAG-CKDATG ã€å§”托】【OBSAP-报价委托】报价委托项目改善1 fy start cancelMultiyearInsurance__c,
                        Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,cancelMultiyearInsurance__c,
                        TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                        TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,Agency2_entrust__c,//DB202302464682【报价委托】报价委托改善224 fy
                        Print_HP_Name__c,Account__c,Agency_Hospital_Link__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                        , urgent__c  //20230104 lt DB202212427301
                        FROM QuoteIrai__c Where Id =:quoId];
@@ -1327,6 +1350,25 @@
            if(String.isNotBlank(leadid)){
                lea.Id = leadid;
                lea.OfferToEntrust__c = 1;
                //20230227 lt DB202302251962 start
                Map<Date,String> lm = new Map<Date,String>();
                for(OlympusCalendar__c oc:[SELECT Id,Date__c FROM OlympusCalendar__c WHERE Date__c =: Date.today()]){
                        lm.put(oc.Date__c,oc.Id);
                }
                String datestr =String.valueOf(Date.today());
                String dt = lm.get(Date.valueOf(datestr.substring(0,10)));
                List<Lead> leadlist = [select Id,FirstDate_Quote_Irai__c from Lead where Id = :leadid];
                System.debug('lt123日期1'+ leadlist[0].FirstDate_Quote_Irai__c);
                System.debug('lt123日期2'+ lea.FirstDate_Quote_Irai__c);
                if(leadlist.size() > 0){
                    if(leadlist[0].FirstDate_Quote_Irai__c == null){
                        lea.FirstDate_Quote_Irai__c = dt;
                    }
                }
                //20230227 lt DB202302251962 end
                update lea;
            }
            //XLIU-CHY4KW 20220907 lt end  
@@ -1668,7 +1710,7 @@
            //XLIU-CFE8M7 ã€å§”托】【P-OBSAP】报价委托任务改善 fy  Noteplus__c
            //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
            qs = [select Id,Account__c,Agency_Hospital_Link__c,Name,IraiUser__c,IraiSubject__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,cancelMultiyearInsurance__c,
                Preferential_Trading_Price__c,Discount__c,Pricing__c,Unit_Price__c,Offer_Amount__c,TOTAL__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                Preferential_Trading_Price__c,Discount__c,Pricing__c,Unit_Price__c,Offer_Amount__c,TOTAL__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,Agency2_entrust__c,//DB202302464682【报价委托】报价委托改善224 fy
                Contract__c,Print_HP_Name__c,Quote_Expiration_Date__c,Quote_Comment__c,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                , urgent__c  //20230104 lt DB202212427301
                From QuoteIrai__c Where Id =:quoId];
@@ -1697,6 +1739,9 @@
        //obsap æ–°å¢žç»é”€å•†1字段 fy staty
        q.Agency1_entrust__c = quo.Agency1_entrust__c;
        //obsap æ–°å¢žç»é”€å•†1字段 fy staty
        //DB202302464682【报价委托】报价委托改善224 fy start
        q.Agency2_entrust__c = quo.Agency2_entrust__c;
        //DB202302464682【报价委托】报价委托改善224 fy end
        // SWAG-CKDATG ã€å§”托】【OBSAP-报价委托】报价委托项目改善1 fy start
        q.cancelMultiyearInsurance__c = quo.cancelMultiyearInsurance__c;
        // SWAG-CKDATG ã€å§”托】【OBSAP-报价委托】报价委托项目改善1 fy end
@@ -1738,7 +1783,7 @@
        //SWAG-CF589P【委托】【P:OBSAP】报价委托相关新需求评估 fy Lead__c,Opportunity__c,
        quo =[ SELECT Id,Name,Cancel_Decide__c,CreatedDate, PriceRefreshDate__c,Quote_Print_Date__c,//obsap æ–°å¢žç»é”€å•†1字段 fy satrt Agency1_entrust__c,SWAG-CKDATG ã€å§”托】【OBSAP-报价委托】报价委托项目改善1 fy start cancelMultiyearInsurance__c,
                    Quote_Date__c,QuoteToName__c,Quote_Expiration_Date__c,Quote_Comment__c,Tender_information__c,Agency1_entrust__c,Noteplus__c,Lead__c,Opportunity__c,cancelMultiyearInsurance__c,Headquarters__c,//DB202301106714 ã€æŠ¥ä»·å§”托改善】OBSAP通知邮件发送邮箱修改 fy Headquarters__c
                    TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,
                    TOTAL__c,Discount__c,Pricing__c,Preferential_Trading_Price__c,Contract__c,LastIraiUser__c,MultiYearWarrantyTotalPrice__c,QuoteTotal_Page__c,Estimation_List_Price__c,Agency2_entrust__c,//DB202302464682【报价委托】报价委托改善224 fy
                    Print_HP_Name__c,Account__c,Agency_Hospital_Link__c,IraiUser__c,IraiSubject__c,CurrencyIsoCode,IraiName__c,QuoteIrai_Status__c,QuoteProportion__c,Note__c,IraiComment__c
                    , urgent__c  //20230104 lt DB202212427301
                    FROM QuoteIrai__c Where Id =:q.Id];
force-app/main/default/classes/OPDPlanMarkBatchSchedule.cls
@@ -52,5 +52,6 @@
        // 2021-02-19 XHL SWAG-BYD6DD End
        // ==========================================================================================
        Id execBTId5 = Database.executebatch(new AssetWhereabouts(),20);
        Id execBTId1 = Database.executebatch(new EquipmentRepairBatch(),20);
    }
}
force-app/main/default/classes/OncallFinalStatusManager.cls
@@ -91,8 +91,9 @@
        startDateGurantee_Text__c,endDateGurantee_Text__c,Maintenance_Contract__r.RecordType.DeveloperName,Maintenance_Contract__r.SalesOfficeCode_selection__c,
        Maintenance_Contract__r.RecordType.Name 
        ,Maintenance_Contract__r.URF_Contract__c,Series_MaxRepairCount_F__c,Series_RepairCount_F__c
        //上限合同 LY 20230117 start å‰©ä½™é‡‘额
        ,Maintenance_Contract__r.Remaining_Amount__c
        //上限合同 LY 20230117 start
        ,Maintenance_Contract__r.Remaining_Amount__c //剩余金额
        ,Maintenance_Contract__r.Limit_Price__c      //限定金额
        //上限合同 LY 20230117 end 
        FROM Maintenance_Contract_Asset__c 
        WHERE Asset__c IN :assetIds];
force-app/main/default/classes/OpdAmountBatch.cls
@@ -91,6 +91,7 @@
  }
  global void execute(Database.BatchableContext BC, List<sObject> dcList) {
    List<Account_Number_of_target__c> upsertList = new List<Account_Number_of_target__c>();
    //WLIG-BZD684 ã€å§”托】H层客户 æˆ˜ç•¥ç§‘室 ç—…例数自运行 gwy 2021-03-25 start
    List<Account_Number_of_case__c> insertNextList = new List<Account_Number_of_case__c>();
@@ -145,6 +146,8 @@
  }
  public static List<Account_Number_of_target__c> main(List<sObject> dcList) {
    system.debug('==dcList=='+dcList.size()+'======'+dcList);
    //以战略科室得形式,一次进来1条数据
    List<Account2__c> acc2List = [select id,
                                  Account_Org__c,
                                  Account_Org__r.Department_Class_Label__c,
@@ -347,9 +350,15 @@
                                  AllHostsNumber__c,
                                  RivalHostsNumber__c
                                  //SWAG-C9WCE5 æˆ˜ç•¥ç§‘室和目标客户设定页面增加字段  lt 20211228 end
                                  //SWAG-BSC5WP you-20201021 start
                                  //SWAG-BSC5WP you-20201021 end
                                  //20230222   DB202302339407 you start
                                  ,LostPrices__c
                                  ,Dealer_Final_Price__c
                                  ,HospitalTransactionAmount__c
                                  //20230222   DB202302339407 you end
                                  from Account2__c
                                  where Account_Org__c = :dcList];
    // 2018å¹´7月12日 SWAG-B2D4QK ä»ŽAccount中获取 ææ¡ˆç›®æ ‡å®¢æˆ·ç­‰5个字段 by å¼ çމ山
    list<Account> accs = [select Id, Proposal_target_customer__c, Submit_proposal_document_SD__c,
                          Submit_proposal_document__c, Proposal_target_customer_number__c,
@@ -385,6 +394,33 @@
    }
    List<Account_Number_of_target__c> upsertList = new List<Account_Number_of_target__c>();
   //20230224 you start DB202302339407 æˆ˜ç•¥ç§‘室其他的统计到普外
    system.debug('==test0==='+acc2List.size()+'========='+acc2List);
  //Map<String, Account2__c> acc2QTMap = new Map<String, Account2__c>();
   Map<String, String> acc2QTMap1 = new Map<String, String>();
   Map<String, String> acc2QTMap2 = new Map<String, String>();
    for (Account2__c acc1 : acc2List) {
        String dclabel1 = acc1.Account_Org__r.Department_Class_Label__c;//战略科室分类
        //if(null!= dclabel1 && ''!=dclabel1 && dclabel1=='其他'){
        //   acc2QTMap.put(acc1.Account_Org__r.ParentId, acc1);//只有战略科室是其他的(客户id,客户2)
        //   system.debug('==test1==='+acc2QTMap);
        //}
        if(null!= dclabel1 && ''!=dclabel1 && dclabel1=='普外科'){
          acc2QTMap1.put(acc1.Account_Org__c,acc1.Account_Org__r.ParentId);
          acc2QTMap2.put(acc1.Account_Org__r.ParentId,acc1.Account_Org__c);
        }
    }
    system.debug(acc2QTMap1+'===test7===='+acc2QTMap1.values());
    List<Account2__c> acc3List = [select id,
                                  Account_Org__c, Account_Org__r.ParentId,LostPrices__c,Dealer_Final_Price__c,HospitalTransactionAmount__c from Account2__c where  Account_Org__r.ParentId  in :acc2QTMap1.values() and Account_Org__r.Department_Class_Label__c='其他'];
    Map<String, Account2__c> acc2QTMap3 = new Map<String, Account2__c>();
    for(Account2__c acc3 : acc3List){
       acc2QTMap3.put(acc2QTMap2.get(acc3.Account_Org__r.ParentId), acc3);
    }
    system.debug('==test6==='+acc2QTMap3);
    //20230224 you end DB202302339407
    for (Account2__c acc2 : acc2List) {
      String dclabel = acc2.Account_Org__r.Department_Class_Label__c;//战略科室分类
      Account_Number_of_target__c accTar = new Account_Number_of_target__c();
@@ -476,6 +512,41 @@
      accTar.AllOP_ThousandY__c = acc2.AllOP_ThousandY__c;
      //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  end
      //20230222   DB202302339407 you start
      accTar.LostPrices__c = acc2.LostPrices__c;
      accTar.Dealer_Final_Price__c = acc2.Dealer_Final_Price__c;
      accTar.HospitalTransactionAmount__c = acc2.HospitalTransactionAmount__c;
      //战略科室其他的统计到普外
      if(dclabel == '普外科'){
        if(null!=acc2QTMap3 && acc2QTMap3.containsKey(acc2.Account_Org__c)){
          system.debug('==test3==='+acc2.Dealer_Final_Price__c+'==test3==='+acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c);
          //accTar.LostPricesqt__c = acc2.LostPrices__c ==null ? 0 :acc2.LostPrices__c + acc2QTMap3.get(acc2.Account_Org__c).LostPrices__c == null ? 0 : acc2QTMap3.get(acc2.Account_Org__c).LostPrices__c;
          //accTar.Dealer_Final_Priceqt__c = acc2.Dealer_Final_Price__c ==null ? 0 : acc2.Dealer_Final_Price__c + acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c ==null ? 0:acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c;
          //accTar.HospitalTransactionAmountqt__c = acc2.HospitalTransactionAmount__c ==null ? 0 : acc2.HospitalTransactionAmount__c + acc2QTMap3.get(acc2.Account_Org__c).HospitalTransactionAmount__c ==null ? 0:acc2QTMap3.get(acc2.Account_Org__c).HospitalTransactionAmount__c;
         //accTar.LostPricesqt__c = acc2.LostPrices__c+ acc2QTMap3.get(acc2.Account_Org__c).LostPrices__c;
         //accTar.Dealer_Final_Priceqt__c = acc2.Dealer_Final_Price__c + acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c;
         //accTar.HospitalTransactionAmountqt__c = acc2.HospitalTransactionAmount__c + acc2QTMap3.get(acc2.Account_Org__c).HospitalTransactionAmount__c;
         Decimal a1 = acc2.LostPrices__c == null ? 0 : acc2.LostPrices__c;
         Decimal a2 = acc2QTMap3.get(acc2.Account_Org__c).LostPrices__c == null ? 0 : acc2QTMap3.get(acc2.Account_Org__c).LostPrices__c;
         Decimal a3 = acc2.Dealer_Final_Price__c == null ? 0 : acc2.Dealer_Final_Price__c;
         Decimal a4 = acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c == null ? 0 : acc2QTMap3.get(acc2.Account_Org__c).Dealer_Final_Price__c;
         Decimal a5 = acc2.HospitalTransactionAmount__c == null ? 0 : acc2.HospitalTransactionAmount__c;
         Decimal a6 = acc2QTMap3.get(acc2.Account_Org__c).HospitalTransactionAmount__c == null ? 0 : acc2QTMap3.get(acc2.Account_Org__c).HospitalTransactionAmount__c;
         accTar.LostPricesqt__c = a1 + a2;
         accTar.Dealer_Final_Priceqt__c = a3 + a4;
         accTar.HospitalTransactionAmountqt__c = a5 +a6;
        }
      }else{
        system.debug('==test4==='+dclabel);
        accTar.LostPricesqt__c = acc2.LostPrices__c;
        accTar.Dealer_Final_Priceqt__c = acc2.Dealer_Final_Price__c;
        accTar.HospitalTransactionAmountqt__c = acc2.HospitalTransactionAmount__c;
      }
      //20230222   DB202302339407 you end
      // SWAG-BD24SU å‘货数备份到目标客户 start
      accTar.Delivery_cnt_3D__c             = acc2.Delivery_cnt_3D__c;
      accTar.Delivery_cnt_CYF__c            = acc2.Delivery_cnt_CYF__c;
force-app/main/default/classes/OpdAmountBatchTest.cls
@@ -27,6 +27,13 @@
        section.ParentId                  = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account section1 = new Account();
        section1.RecordTypeId = rectSct[0].Id;
        section1.Name         = '*';
        section1.Department_Class_Label__c = '其他';
        section1.ParentId                  = company.Id;
        section1.Hospital_Department_Class__c = company.Id;
        upsert section1;
        Account depart = new Account();
        depart.RecordTypeId = rectDpt[0].Id;
        depart.Name         = '*';
@@ -48,6 +55,9 @@
        acc2.OPD_OTV_S190__c = 6;
        acc2.OPD_STMS__c = 7;
        acc2.OPD_GW__c = 8;
        acc2.LostPrices__c=9;
        acc2.Dealer_Final_Price__c=10;
        acc2.HospitalTransactionAmount__c=11;
        update acc2;
        System.Test.StartTest();
@@ -63,7 +73,10 @@
                                                           OPD_amount_EUME2__c,
                                                           OPD_amount_OTVS190__c,
                                                           OPD_amount_USG400__c,
                                                           OPD_amount_GW__c
                                                           OPD_amount_GW__c,
                                                           LostPricesqt__c,
                                                           Dealer_Final_Priceqt__c,
                                                           HospitalTransactionAmountqt__c
                                                      from Account_Number_of_target__c
                                                     where Account__c = :section.Id];
        //System.assertEquals(0, atList[0].OPD_amount_290Miro__c);
@@ -104,6 +117,13 @@
        section.ParentId                  = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account section1 = new Account();
        section1.RecordTypeId = rectSct[0].Id;
        section1.Name         = '*';
        section1.Department_Class_Label__c = '其他';
        section1.ParentId                  = company.Id;
        section1.Hospital_Department_Class__c = company.Id;
        upsert section1;
        Account depart = new Account();
        depart.RecordTypeId = rectDpt[0].Id;
        depart.Name         = '*';
@@ -125,6 +145,9 @@
        acc2.OPD_OTV_S190__c = 6;
        acc2.OPD_STMS__c = 7;
        acc2.OPD_GW__c = 8;
        acc2.LostPrices__c=9;
        acc2.Dealer_Final_Price__c=10;
        acc2.HospitalTransactionAmount__c=11;
        update acc2;
        System.Test.StartTest();
@@ -140,7 +163,10 @@
                                                           OPD_amount_EUME2__c,
                                                           OPD_amount_OTVS190__c,
                                                           OPD_amount_USG400__c,
                                                           OPD_amount_GW__c
                                                           OPD_amount_GW__c,
                                                           LostPricesqt__c,
                                                           Dealer_Final_Priceqt__c,
                                                           HospitalTransactionAmountqt__c
                                                      from Account_Number_of_target__c
                                                     where Account__c = :section.Id];
        //System.assertEquals(0, atList[0].OPD_amount_290Miro__c);
@@ -181,6 +207,13 @@
        section.ParentId                  = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account section1 = new Account();
        section1.RecordTypeId = rectSct[0].Id;
        section1.Name         = '*';
        section1.Department_Class_Label__c = '其他';
        section1.ParentId                  = company.Id;
        section1.Hospital_Department_Class__c = company.Id;
        upsert section1;
        Account depart = new Account();
        depart.RecordTypeId = rectDpt[0].Id;
        depart.Name         = '*';
@@ -202,6 +235,9 @@
        acc2.OPD_OTV_S190__c = 6;
        acc2.OPD_STMS__c = 7;
        acc2.OPD_GW__c = 8;
        acc2.LostPrices__c=9;
        acc2.Dealer_Final_Price__c=10;
        acc2.HospitalTransactionAmount__c=11;
        update acc2;
        System.Test.StartTest();
@@ -217,7 +253,10 @@
                                                           OPD_amount_EUME2__c,
                                                           OPD_amount_OTVS190__c,
                                                           OPD_amount_USG400__c,
                                                           OPD_amount_GW__c
                                                           OPD_amount_GW__c,
                                                           LostPricesqt__c,
                                                           Dealer_Final_Priceqt__c,
                                                           HospitalTransactionAmountqt__c
                                                      from Account_Number_of_target__c
                                                     where Account__c = :section.Id];
        //System.assertEquals(0, atList[0].OPD_amount_290Miro__c);
@@ -266,6 +305,13 @@
        section.ParentId                     = company.Id;
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account section1 = new Account();
        section1.RecordTypeId = caseSct[0].Id;
        section1.Name         = '*';
        section1.Department_Class_Label__c = '其他';
        section1.ParentId                  = company.Id;
        section1.Hospital_Department_Class__c = company.Id;
        upsert section1;
        System.Test.StartTest();
        Id execBTId = Database.executeBatch(new OpdAmountBatch(company.Id,PerformDate), 20);
@@ -318,6 +364,14 @@
        section.Hospital_Department_Class__c = company.Id;
        upsert section;
        Account section1 = new Account();
        section1.RecordTypeId = caseSct[0].Id;
        section1.Name         = '*';
        section1.Department_Class_Label__c = '其他';
        section1.ParentId                  = company.Id;
        section1.Hospital_Department_Class__c = company.Id;
        upsert section1;
        System.Test.StartTest();
        Id execBTId = Database.executeBatch(new OpdAmountBatch(company.Id,PerformDate), 20);
        System.Test.StopTest();
force-app/main/default/classes/OpdPlanWebService.cls
@@ -20,6 +20,8 @@
        return rtn;
    }
    // 20230215 ljh DB202301265636 å½“会议中有备品出库的时候允许进行会议取消申请 æ­¤æ–¹æ³•不在使用
    // æš‚时没有注释 æ˜¯ä¸ºäº†è¦†ç›–率
    WebService  static String changeCampaign(String campaignId) { //学会取消得窗口调用
        List<Rental_Apply__c> raList = [select Yi_loaner_arranged__c, Shipment_request_Cnt__c from Rental_Apply__c where Campaign__c = :campaignId];
        String rtn = 'OK';
@@ -44,43 +46,6 @@
        return rtn;
    }
    // 20230118 ljh DB202301265636 start
    /**
     * @fuction   [当会议中有备品出库的时候允许进行会议取消申请,
     * ä¼šè®®å–消的时候对应的OPD计划也需要取消
     * é¢„计回收日需要修改]
     * @Author    lijinhuan
     * @DateTime  2023-01-18T15:10:48+0800
     * @version   [version]
     * @param     campaignId               [description]
     * @return                             [description]
     */
    WebService  static String changeCampaignCancel(String campaignId) { //学会取消得窗口调用
        List<Rental_Apply_Equipment_Set__c> raesList = [select Id,Rental_End_Date__c from Rental_Apply_Equipment_Set__c where Rental_End_Date__c != null
                                AND Shippment_loaner_time2__c != null
                                AND Rental_Apply__r.RA_Status__c != '完了'
                                AND Rental_Apply__r.RA_Status__c != '取消'
                                AND Rental_Apply__r.Campaign__c = :campaignId ];
        String rtn = 'OK';
        Savepoint sp = Database.setSavepoint();
        try{
            if (null != raesList && raesList.size() > 0) {
                for (Rental_Apply_Equipment_Set__c raes : raesList) {
                    raes.Rental_End_Date__c = Date.today().addDays(5);
                }
                update raesList;
            }
        }catch (Exception ex) {
            System.debug(ex.getStackTraceString());
            System.debug('ex.getMessage()***'+ ex.getMessage()+ex.getLineNumber());
            ApexPages.addMessages(ex);
            Database.rollback(sp);
            rtn = ex.getMessage();
        }
        return rtn;
    }
    // 20230118 ljh DB202301265636 end
    WebService  static String dataCheck(String rentalApplyId) {
        string result = 'OK';
        if (String.isBlank(rentalApplyId)) {
force-app/main/default/classes/OpportunityWebService.cls
@@ -416,4 +416,89 @@
        return true;
    }
    //SWAG-CG88AG【委托】提出价格申请是在协议有效期内,允许WIN fy end 
    //贸易合规 20230307 you start
    WebService static Boolean accSendEmail(String  AccDealerBlacklist,String accname,String angency1,String angency2,String ownerids,String ddid,String oppid) {
      //发送邮件
        List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>();
        List<String>  MailsList = new List<String>();
        List<String> userIdList = new List<String>();
        if(String.isNotBlank(ownerids)){
            userIdList.add(ownerids);
        }
        if(String.isNotBlank(ddid)){
            userIdList.add(ddid);
        }
         //询价所有人,产品担当,发邮件
        List<User> UsrList = [SELECT email FROM user WHERE id in :userIdList];
        //获取各个用户的email
        for (User u : UsrList){
            MailsList.add(u.email);
        }
        MailsList.add('youchang@prec-tech.com');
        system.debug('111===:'+MailsList);
        if (MailsList!=null&&MailsList.size()>0){
            String title = '';
            String body = '';
            title = ' æ–°å»ºè¯¢ä»·åŒ»é™¢/经销商涉及黑名单';
            if(AccDealerBlacklist=='123'){
                body += '黑名单的客户为:' + accname+ '<br/>';
                body += '黑名单的经销商1为:' + angency1+ '<br/>';
                body += '黑名单的经销商2为:' + angency2+ '<br/>';
            }else if(AccDealerBlacklist=='12'){
                body += '黑名单的客户为:' + accname+ '<br/>';
                body += '黑名单的经销商1为:' + angency1+ '<br/>';
            }else if(AccDealerBlacklist=='23'){
                body += '黑名单的经销商1为:' + angency1+ '<br/>';
                body += '黑名单的经销商2为:' + angency2+ '<br/>';
            }else if(AccDealerBlacklist=='13'){
                body += '黑名单的客户为:' + accname+ '<br/>';
                body += '黑名单的经销商2为:' + angency2+ '<br/>';
            }else if(AccDealerBlacklist=='1'){
                body += '黑名单的客户为:' + accname+ '<br/>';
            }else if(AccDealerBlacklist=='2'){
                body += '黑名单的经销商1为:' + angency2+ '<br/>';
            }else if(AccDealerBlacklist=='3'){
                body += '黑名单的经销商2为:' + angency2+ '<br/>';
            }
            body += '<a href="' + System.Label.Environment_Url + oppid + '">'
                    + System.Label.Environment_Url+ oppid +'</a><br/>';
            body += '谢谢!';
            Messaging.SingleEmailMessage messageNEW = new Messaging.SingleEmailMessage();
            messageNEW.setSubject(title);
            messageNEW.setHtmlBody(body);
            messageNEW.setCharset('UTF-8');
            messageNEW.setToAddresses(MailsList);
            //List<String> toCcMailsList = new List<String>();
            //toCcMailsList.add('youchang@prec-tech.com');
            //messageNEW.setCcAddresses(toCcMailsList);
            sendMails.add(messageNEW);
        }
        boolean rs = true;
        if (sendMails.size() > 0) {
            Messaging.Email[] allMails = new Messaging.Email[]{};
            for(Integer j = 0; j < sendMails.size(); j++) {
                allMails.add(sendMails.get(j));
            }
            system.debug('222===:'+allMails);
            Messaging.SendEmailResult[] results = Messaging.sendEmail(allMails);
            System.debug('results ç»“æžœ :'+results);
            for (Integer i = 0; i < results.size(); i++) {
                if (results[i].success == false) {
                    system.debug('=====send mail error:' + results[i].errors[0].message);
                    rs = false;
                }
            }
        }
        return rs;
    }
    //贸易合规 20230307 you end
}
force-app/main/default/classes/PCLLostProduct2AssetHandlerTest.cls
@@ -50,7 +50,7 @@
        prd1.Manual_Entry__c        = true;
        prd1.Category5__c = '竞争对手';
        prd1.Brand_Name__c = 'STORZ';
        prd1.recordTypeId = recordtypeid;
        prd1.recordTypeId = recordtypeid; //20230221上线改为‘01210000000aMAE’,上完还原recordtypeid
        // prd1.Lost_By_Company__c= 'STORZ'; //add tcm 20211213
        Product2 prd2 = new Product2();
force-app/main/default/classes/PCLLostReportController.cls
@@ -97,6 +97,7 @@
             Lost_reason_main__c,
             Lost_Reason_Sub__c,Lost_By_Company__c,
             LostTotalAmount__c,LostType__c,
             TotalAmountLost__c, //20230215 lt DB202302247719
             Report_Status__c,Sales_assistant__c,
             Opportunity__c, Opportunity__r.Sales_assistant_ID__c,
             Opportunity__r.Sales_manager_departmentID__c,
@@ -128,6 +129,7 @@
            list<PCLLostBrand__c> selectlostBrandList =
            [
                select id, LostPrice__c, Lost_By_Company__c,
                LostPrices_ThousandY__c,  //20230215 lt DB202302247719
                Lost_reason_main__c,Lost_Reason_Sub__c,Name,Agency__c, AgencyMannual__c,
                // ProductCategory__c,ProductClass__c,
                Lost_cancel_report__c,Lost_By_Company_Mannual__c,
@@ -374,6 +376,7 @@
            // è®¾ç½®è®°å½•类型
            LostReport.lostReport.recordTypeID  =  LostReport.lostReport.LostType__c== '失单'?Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_Lost_report').getRecordTypeId() : Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_PartLost_report').getRecordTypeId();
            LostReport.lostReport.LostTotalAmount__c    = 0;
            LostReport.lostReport.TotalAmountLost__c    = 0;  //20230215 lt DB202302247719
            LostReport.lostReport.of_lost_system_processor__c   = 0;
            LostReport.lostReport.Lost_reason_main__c = null;
            LostReport.lostReport.Lost_Reason_Sub__c  = null;
@@ -381,6 +384,16 @@
            for(LostBrand tempLostBrand : LostReport.LostBrands) {
                if(string.isNotBlank(tempLostBrand.lostBrand.Lost_By_Company__c)) {
                    LostReport.lostReport.LostTotalAmount__c += tempLostBrand.lostBrand.LostPrice__c;
                    //20230215 lt DB202302247719  start
                    Decimal med = tempLostBrand.lostBrand.LostPrice__c/1.13/1000;
                    Decimal med1 = med.setScale(2);
                    System.debug('---lt123不含税数值(人工)Decimal---'+med);
                    System.debug('---lt123不含税数值(人工)Decimal两位小数---'+med1);
                    LostReport.lostReport.TotalAmountLost__c += med1;
                    //LostReport.lostReport.TotalAmountLost__c += tempLostBrand.lostBrand.LostPrices_ThousandY__c;  //20230215 lt DB202302247719
                    // LostReport.lostReport.TotalAmountLost__c += tempLostBrand.lostBrand.LostPrice__c/1.13/1000;  //20230215 lt DB202302247719
                    //20230215 lt DB202302247719  en
                    LostReport.lostReport.Lost_reason_main__c =
                        LostReport.lostReport.Lost_reason_main__c == null
                        ? tempLostBrand.lostBrand.Lost_reason_main__c
@@ -489,6 +502,7 @@
            LostReport.lostReport = templostReport;
            LostReport.LostBrands = tempBrands;
            // è¿™é‡Œéœ€è¦å†™ä¸€äº›æŠ¥é”™ä¿¡æ¯
            System.debug('---lt123---'+ex.getLineNumber());
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,ex.getMessage()));
            return false;
        }
force-app/main/default/classes/RentalApplyDetailStatusUpdateBatch.cls
@@ -12,6 +12,7 @@
            }
            system.schedule(scB.scName, scB.scTime, new RentalApplyDetailStatusUpdateSchedule());
        }
        String query = 'SELECT RAESD_Status__c'
                    + ' FROM Rental_Apply_Equipment_Set_Detail__c'
                    + ' WHERE RAESD_Status_Text_Update_F__c = true';
force-app/main/default/classes/RentalApplyEquipmentSetDetailHandler.cls
@@ -3176,6 +3176,9 @@
            nObj.DeliverySlip_Text__c = nObj.DeliverySlip__c;
            nObj.Return_DeliverySlip_Text__c = nObj.Return_DeliverySlip__c;
            nObj.Received_Confirm_Text__c = nObj.Received_Confirm_F__c;
            // SFDC更新导致问题的对应(暂定方案) 20230307 by lc Start
            nObj.Rental_Apply_Object__c = nObj.Rental_Apply__c;
            // SFDC更新导致问题的对应(暂定方案) 20230307 by lc End
            Rental_Apply_Equipment_Set_Detail__c oObj = null;
            if (Trigger.isUpdate) {
                oObj = oldMap.get(nObj.Id);
@@ -4831,13 +4834,12 @@
                                                                 ORDER BY Rental_Apply__c, Rental_Apply_Equipment_Set__c, Name];
        // æ”¶é›†å›žå¯„明细 {raesId -> raesdList}
        Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>> raesdListMap = new Map<Id, List<Rental_Apply_Equipment_Set_Detail__c>>();
        Map<Id, Rental_Apply__c> return_DeliverySlipIdMap = new Map<Id, Rental_Apply__c>();
        Map<Id, FixtureDeliverySlip__c> return_DeliverySlipMap = new Map<Id, FixtureDeliverySlip__c>();
        for (Rental_Apply_Equipment_Set_Detail__c raesd : raesdList) {
            if (!raesdListMap.containsKey(raesd.Rental_Apply_Equipment_Set__c)) {
                raesdListMap.put(raesd.Rental_Apply_Equipment_Set__c, new List<Rental_Apply_Equipment_Set_Detail__c>());
            }
            return_DeliverySlipIdMap.put(raesd.Return_DeliverySlip__c, raesd.Rental_Apply__r);
            raesdListMap.get(raesd.Rental_Apply_Equipment_Set__c).add(raesd);
            /* --------- è®¾ç½®è¿è¾“单Map Start --------- */
            if (return_DeliverySlipMap.containsKey(raesd.Rental_Apply__c) == false) {
force-app/main/default/classes/RentalApplySequenceController.cls
@@ -204,8 +204,9 @@
        if(String.isNotBlank(S_ApplyBenBu)){
            // Modify by Liu 20220908 Solution本部课题对应 start
            //List<String> benbuList = S_ApplyBenBu.split(',');
            List<String> benbuList = S_ApplyBenBu.replace('16.Solution本部', '16.消化·呼吸领域解决方案本部').split(',');
            List<String> benbuList = S_ApplyBenBu.replace('16.Solution本部', '16.Solution本部').split(',');
            // Modify by Liu 20220908 Solution本部课题对应 end
            //List<String> benbuList = S_ApplyBenBu.split(',');
            benbuSet.addAll(benbuList);
        }
        // åŠžäº‹å¤„
@@ -309,11 +310,12 @@
        soql += ' Salesdepartment_before__c,Equipment_Type_text__c,Product_category_text__c ,';
        soql += ' Rental_Apply_Equipment_Set__r.QueueShippmentDateNew__c,';
        soql += ' Rental_Apply__r.Salesdepartment_text__c,Rental_Apply__r.Internal_asset_location_F__c,Internal_asset_location_before__c, ';
        soql += ' Rental_Apply__r.WorkPlace__c,Rental_Apply__r.Person_In_Charge__c ,Queue_Number__c ';
        soql += ' Rental_Apply__r.WorkPlace__c,Rental_Apply__r.Person_In_Charge__c ,Queue_Number__c, Rental_Apply_Object__r.WorkPlace__c, Rental_Apply_Object__r.Person_In_Charge__c ';
        soql += ' ,Rental_Apply_Object__r.Salesdepartment_text__c ,Rental_Apply_Object__r.Name ';
        soql += '  from Rental_Apply_Equipment_Set_Detail__c ';
        soql += ' where Cancel_Select__c = false  and  Queue_Number__c > 0 ';
        if(String.isNotBlank(SraName)){
            soql += ' and Rental_Apply__r.Name like \'%'+SraName+'%\'';
            soql += ' and Rental_Apply_Object__r.Name like \'%'+SraName+'%\'';
        }
        if(String.isNotBlank(SFixture_Model_No)){
            // soql += ' and Fixture_Model_No__c = :SFixture_Model_No';
@@ -323,7 +325,7 @@
        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, 'zheli00:' + SRa_Person));
        if(SRa_Person.Person_In_Charge__c != null){
            String tempId = SRa_Person.Person_In_Charge__c;
            soql += ' and Rental_Apply__r.Person_In_Charge__c = :tempId';
            soql += ' and Rental_Apply_Object__r.Person_In_Charge__c = :tempId';
        }
        // String pdBenBu
        if(String.isNotBlank(pdBenBu)){
@@ -336,11 +338,11 @@
        }
        // Set<String> benbuApplySet
        if(benbuApplySet.size() > 0){
            soql += ' and Rental_Apply__r.Salesdepartment_text__c IN :benbuApplySet';
            soql += ' and Rental_Apply_Object__r.Salesdepartment_text__c IN :benbuApplySet';
        }
        // Set<String> applyAgencySet
        if(applyAgencySet.size() > 0){
            soql += ' and Rental_Apply__r.WorkPlace__c IN :applyAgencySet';
            soql += ' and Rental_Apply_Object__r.WorkPlace__c IN :applyAgencySet';
        }
        // Set<String> pdBeiPinFenLei
        // if(pdBeiPinFenLei.size() > 0){
@@ -394,6 +396,7 @@
        // if(String.isNotBlank(S_bieCunFangDi)){
            for (SelectOption op : opList) {
                if (String.isNotBlank(op.getValue())) {
                    ApplyBenBu.add(new CustomData(op.getValue(),op.getValue()));
                    // Modify by Liu 20220908 Solution本部课题对应 start
                    //ApplyBenBu.add(new CustomData(op.getValue(),op.getValue()));
                    ApplyBenBu.add(new CustomData(op.getValue(),op.getLabel()));
force-app/main/default/classes/RentalApplyTriggerHandler.cls
@@ -241,6 +241,7 @@
        List<Rental_Apply__Share> rasList = new List<Rental_Apply__Share>();
        List<Id> deleteOfficeAssistantShare_nObjId_List = new List<Id>();       // å…±äº«åˆ é™¤ç”¨
        List<Id> deleteApplyUserShare_nObjId_List = new List<Id>();// 20210727 ljh SFDC-C54C33 å…±äº«åˆ é™¤ç”¨
        Set<Id> shareSet = new Set<Id>(); // 20230301 ljh DB202302444522 add
        for (Rental_Apply__c nObj : newList) {
            Rental_Apply__c oObj = (null == this.oldMap) ? null : this.oldMap.get(nObj.Id);
            // æœåŠ¡éƒ¨å®¡æ‰¹äºº
@@ -296,6 +297,7 @@
                ) {
                deleteApplyUserShare_nObjId_List.add(nObj.Id);
                if(nObj.SalesManager__c != null){
                    shareSet.add(nObj.SalesManager__c);// 20230301 ljh DB202302444522 add
                    Rental_Apply__Share rasSalesManager = new Rental_Apply__Share(
                            RowCause = 'ApplyUserShare__c',
                            ParentId = nObj.Id,
@@ -305,6 +307,7 @@
                    rasList.add(rasSalesManager);
                }
                if(nObj.BuchangApprovalManagerSales__c != null){
                    shareSet.add(nObj.BuchangApprovalManagerSales__c);// 20230301 ljh DB202302444522 add
                    Rental_Apply__Share rasBz = new Rental_Apply__Share(
                            RowCause = 'ApplyUserShare__c',
                            ParentId = nObj.Id,
@@ -314,6 +317,7 @@
                    rasList.add(rasBz);
                }
                if(nObj.ZongjianApprovalManager__c != null){
                    shareSet.add(nObj.ZongjianApprovalManager__c);// 20230301 ljh DB202302444522 add
                    Rental_Apply__Share rasZj = new Rental_Apply__Share(
                            RowCause = 'ApplyUserShare__c',
                            ParentId = nObj.Id,
@@ -336,10 +340,18 @@
        if(deleteOfficeAssistantShare_nObjId_List.size() > 0){
            soql += ' AND (RowCause = \'Office_Assistant__c\' AND ParentId =: deleteOfficeAssistantShare_nObjId_List) ';
            if(deleteApplyUserShare_nObjId_List.size() > 0){
                soql += ' OR (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List)';
                // 20230301 ljh DB202302444522 update start
                // soql += ' OR (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List)';
                soql += ' OR (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List';
                soql += ' and UserOrGroupId IN :shareSet)';
                // 20230301 ljh DB202302444522 update end
            }
        }else if(deleteApplyUserShare_nObjId_List.size() > 0){
            soql += ' AND (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List)';
            // 20230301 ljh DB202302444522 update start
            // soql += ' AND (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List)';
            soql += ' AND (RowCause = \'ApplyUserShare__c\'AND ParentId =: deleteApplyUserShare_nObjId_List';
            soql += ' and UserOrGroupId IN :shareSet)';
            // 20230301 ljh DB202302444522 update end
        }
        List<Rental_Apply__Share> deleteShareList = new List<Rental_Apply__Share>();
        if(deleteOfficeAssistantShare_nObjId_List.size() > 0 || deleteApplyUserShare_nObjId_List.size() > 0){
force-app/main/default/classes/RentalApplyWebService.cls
@@ -1194,8 +1194,12 @@
            //     return '修理最终检测日不为空,不能分配';
            // }else if(Ra.repair__r.Return_Without_Repair_Date__c !=null){
            //     return '未修理归还日不为空,不能分配';
            if(Ra.Campaign__c != null && Ra.Campaign__r.Status == '取消'){
                return '学会取消,不可分配';
            // 20230220 ljh DB202301265636 start
            // if(Ra.Campaign__c != null && Ra.Campaign__r.Status == '取消'){
            //     return '学会取消,不可分配';
            if(Ra.Campaign__c != null && (Ra.Campaign__r.Status == '取消' || Ra.Campaign__r.Status == '取消申请中')){
                return '学会取消申请中或者已取消,不可分配';
            // 20230220 ljh DB202301265636 end
            }else if(Ra.repair__c != null && (Ra.repair__r.Repair_Final_Inspection_Date__c!=null || Ra.Repair__r.Repair_Shipped_Date__c != null)){
                return '修理有最终检测日或修理品返送日,不可分配';
            }else if(Ra.repair__c != null && Ra.repair__r.Return_Without_Repair_Date__c !=null){
force-app/main/default/classes/RentalFixtureManage5Test.cls
@@ -8,10 +8,104 @@
*/
@isTest
public class RentalFixtureManage5Test {
    // AWSServiceTool2没上线就把这部分注释 start 20220408
   //@TestSetup
    static void setup(){
        TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Agency_Contact__c','Contact'});
    }
    @isTest
    static void Test1(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
        lra.add(new Agency_Contact__c(
        ));
        insert lra;
        Test.startTest();
        //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
        AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
        AWSServiceTool2.EncryptPushFuture(null,null);
        Test.stopTest();
    }
   @isTest
    static void Test2(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
        lra.add(new Agency_Contact__c(
            Aws_Data_Id__c = '123456'
        ));
        insert lra;
        Test.startTest();
        //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
        AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
        Test.stopTest();
    }
    @isTest
    static void Test3(){
        Test.setMock(HttpCalloutMock.class, new HttpMock());
        Test.startTest();
        AWSServiceTool2.EncryptPushData(new string[]{'0031000000O4Cff'});
        Test.stopTest();
    }
  //@isTest
  //  static void Test2(){
  //      Test.setMock(HttpCalloutMock.class, new HttpMock());
  //      List<Agency_Contact__c> lra = new List<Agency_Contact__c>();
  //      lra.add(new Agency_Contact__c(
  //          Id = 'a2R1m0000007BPD',
  //          Aws_Data_Id__c = '123456'
  //      ));
  //      Test.startTest();
  //      //system.debug(PIHelper.getPIIntegrationInfo('Agency_Contact__c').newEncryptUrl);
  //      AWSServiceTool2.EncryptPushCore(Json.serialize(lra),'Agency_Contact__c');
  //      Test.stopTest();
  //  }
    class HttpMock implements HttpCalloutMock{
            public HTTPResponse respond(HTTPRequest request) {
            // åˆ›å»ºä¸€ä¸ªå‡çš„回应
            System.debug('------------------------------------------------------');
            HttpResponse response = new HttpResponse();
            string body = '';
            system.debug(request.getEndpoint());
            if(request.getEndpoint().contains('token')){
                system.debug('url=token');
                response.setHeader('Content-Type', 'application/json');
          body='{ "message": "", "object": "freqfewqfewewfewfew", "status": "", "success": true, "timestamp": 0, "txId": "" }';
            } else if(request.getEndpoint().contains('insert')){
                system.debug('url=Insert');
                response.setHeader('Content-Type', 'application/json');
          body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';
            } else if(request.getEndpoint().contains('update')){
                system.debug('url=update');
                response.setHeader('Content-Type', 'application/json');
          body='{ "message": "", "object": [ { "dataId": "123456", "directShippmentAddress": "", "directShippmentAddressEncrypt": "", "isDelete": 0, "phoneNumber": "", "phoneNumberEncrypt": "", "sfRecordId": "a2R1m0000007BPD" } ], "status": "", "success": true, "timestamp": 0, "txId": "" }';
            } else{
            }
            response.setBody(body);
            response.setStatus('OK');
            response.setStatusCode(200);
            return response;
            // }
        }
    }
    // AWSServiceTool2没上线就把这部分注释 end
    // 20230228 ljh end
    // å‡ºåº“前点检节点的数据
    @testSetup
    static void setupTestData() {
        setup();
        // OLY_OCM-643 è¿½åŠ ControllerUtil.EscapeNFM001Trigger
        ControllerUtil.EscapeNFM001Trigger = true;
        // MIXED_DML_OPERATION, DML operation on setup object is not permitted Error
@@ -532,6 +626,7 @@
        ref = new PageReference('/apex/EquipmentSetShippmentReceived1?id=' + raesObjs[0].Id + '&type=Shippment&open=web');
        Test.setCurrentPage(ref);
        EquipmentSetShippmentReceived1Controller essController = new EquipmentSetShippmentReceived1Controller();
        essController.test();
        essController.init();
        Test.stopTest();
        for (EquipmentSetShippmentReceived1Controller.EsdInfo esdInfo : essController.esdList) {
force-app/main/default/classes/RentalFixtureSetAssignAgencyController.cls
@@ -455,8 +455,18 @@
             WHERE id =:taId
        ];
        for (Rental_Apply__c RaTar : RaTarList) {
            // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 start
            // if( RaTar.Campaign__r.Status == '取消'){
            //     ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
            if( RaTar.Campaign__r.Status == '取消' || RaTar.Campaign__r.Status == '取消申请中' ){
                String tempS = '';
            if( RaTar.Campaign__r.Status == '取消'){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会已取消,不能继续操作了'));
                    tempS = '已取消';
                }else{
                    tempS = '申请取消中';
                }
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '学会'+tempS+',不能继续操作了'));
            // 20230215 ljh DB202301265636 å­¦ä¼šå–消申请也拦截 end
                return false;
            }
            // else if(RaTar.Repair__r.Repair_Final_Inspection_Date__c != null){
force-app/main/default/classes/RentalFixtureSetAssignController.cls
@@ -1062,7 +1062,7 @@
                obj = getdefultInfo(raesd,applyObj,bieCunFangDi);
            }else{
                // Modify by Liu 20220908 Solution本部课题对应 start
                salesdepartments = salesdepartments.replace('16.Solution本部', '16.消化·呼吸领域解决方案本部');
                salesdepartments = salesdepartments.replace('16.Solution本部', '16.Solution本部');
                // Modify by Liu 20220908 Solution本部课题对应 end
                obj = getSpecialInfo(raesd,parentObj,salesdepartments,equipmenttypes);
            }
force-app/main/default/classes/RentalFixtureSetAssignControllerTest.cls
@@ -595,7 +595,7 @@
            new SelectOption('10.服务本部', '10.服务本部'),
            new SelectOption('11.医疗产品培训本部', '11.医疗产品培训本部'),
            // new SelectOption('12.能量事业本部', '12.能量事业本部'),20220107 ljh update
            new SelectOption('16.消化·呼吸领域解决方案本部', '16.消化·呼吸领域解决方案本部')
            new SelectOption('16.Solution本部', '16.Solution本部')
            // new SelectOption('17.市场企划本部', '17.市场企划本部')
        };
        RentalFixtureSetAssignController.transferListtoString('产品试用',options);
force-app/main/default/classes/RepairAgainAnHandler.cls
@@ -43,6 +43,8 @@
        setStatusChange();
        //提交审批之后更新字段
        updateExaminePeople();
        //附件更新
        updateAttachment();
    }
    protected override void afterUpdate(){
@@ -131,7 +133,7 @@
            ra.Report_Date__c = todayTemp;
        }
        Map<Id,Repair__c> repairMap = new Map<Id,Repair__c>([SELECT Id,Name,Repair_Detail__c,InspectionFailureCause__c,SerialNumber__c,Delivered_Product__c,(select Id from reparirAgain01__r) from Repair__c where id in :repairSet]);
        Map<Id,Repair__c> repairMap = new Map<Id,Repair__c>([SELECT Id,Name,Repair_Detail__c,InspectionFailureCause__c,SerialNumber__c,Delivered_Product__c,Incharge_Staff__c,(select Id from reparirAgain01__r) from Repair__c where id in :repairSet]);
        System.debug('repairMap========='+repairMap);
        for(RepairAgainAn__c ra : newList){
@@ -507,4 +509,17 @@
            repairList.add(tempRepair);
        }
    }
    public void updateAttachment(){
        for(RepairAgainAn__c ram : newList){
            String pid = ram.Id;
            String sql = 'SELECT Name,Body,ContentType from Attachment where ParentId =\'' + pid + '\'';
            Attachment att = Database.query(sql);
            System.debug('bName====='+att.Body);
        }
    }
}
force-app/main/default/classes/RepairBeforeInsertHandler.cls
@@ -56,12 +56,20 @@
        List<String> HospitalId = new List<String>();
        List<String> provinceList = new List<String>();//省
        List<String> cityList = new List<String>();//市
        List<String> inchargeStaff = new List<String>();//市
        for (Repair__c nObj : newList) {
            //医院的CSM管理省(文本) å€¼ä¸ä¸ºç©ºï¼Œå¹¶ä¸”收货地址不为空
            if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
                HospitalId.add(nObj.Hospital__C);
            }
            inchargeStaff.add(nObj.Incharge_Staff__c);
        }
        // gzw DB202212270703 20230301 å¤‡å“åœ°å€å¯¼å…¥æ”¹é€  start
        Map<String,user> profileAndRoleMap = new Map<String,user>();
        for(user re :[select id,Profile.name,Branch__c,UserRole.name from user where id in :inchargeStaff]){
            profileAndRoleMap.put(re.id, re);
        }
        // gzw DB202212270703 20230301 å¤‡å“åœ°å€å¯¼å…¥æ”¹é€  start
        if(HospitalId != null && HospitalId.size() > 0){
            String HospitalSQl = 'SELECT id,OCM_man_province_txt__c,FieldCity_Master_Name__c from Account where id in :HospitalId';
            List<Account> accountList = Database.query(HospitalSQl);
@@ -93,17 +101,93 @@
            system.debug('cityList='+cityList);
            system.debug('provinceList='+provinceList);
            if(falg && provinceList != null && cityList != null && provinceList.size() > 0 && cityList.size() > 0){
                // gzw DB202212270703 20230301 å¤‡å“åœ°å€å¯¼å…¥æ”¹é€  start
                // String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c'
                //                 //+ ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI改造 By Bright 20220407 zhj MEBG新方案改造 2022-11-29
                //                 + ' from Address__c  '
                //                 + ' where Address_Classification__c =  \'办事处\' and Province_Name__c in :provinceList and City_Name__c in :cityList '
                //                 + ' order by Using_Datetime__c desc NULLS LAST ';
                String addressSQl = 'SELECT ID,Customer__c,Customer_Name__c,Contacts__c,Contacts_Name__c,Telephone__c,Province__c,Province_Name__c,City__c,City_Name__c,Detailed_Address__c,ZipCode__c'
                                + ' ,Address_Classification__c,Beipin_Center__c  '
                                //+ ',Contacts__r.LastName_Encrypted__c,ZipCode_Encrypted__c,Detailed_Address_Encrypted__c,Telephone_Encrypted__c' // PI改造 By Bright 20220407 zhj MEBG新方案改造 2022-11-29
                                + ' from Address__c  '
                                + ' where Address_Classification__c =  \'办事处\' and Province_Name__c in :provinceList and City_Name__c in :cityList '
                                + ' where ( Address_Classification__c =  \'办事处\' and Province_Name__c in :provinceList and City_Name__c in :cityList )'
                                + ' or Address_Classification__c =  \'备品\''
                                + ' order by Using_Datetime__c desc NULLS LAST ';
                system.debug('addressSQl='+addressSQl);
                List<Address__c> addressList = Database.query(addressSQl);
                
                if(addressList != null && addressList.size() > 0){
                    system.debug(addressList[0]);
                // gzw DB202212270703 20230301 å¤‡å“åœ°å€å¯¼å…¥æ”¹é€  end
                system.debug('addressSQl='+addressSQl);
                List<Address__c> addressList = new List<Address__c>();
                Map<String,Address__c> beipinMap = new Map<String,Address__c>();
                List<Address__c> addressTempList = Database.query(addressSQl);
                for (Address__c ad :addressTempList) {
                    if (ad.Address_Classification__c == '备品') {
                        beipinMap.put(ad.Beipin_Center__c,ad);
                    }else{
                        addressList.add(ad);
                    }
                }
                //List<Address__c> addressList = Database.query(addressSQl);
                // if(addressList != null && addressList.size() > 0){
                if(addressTempList != null && addressTempList.size() > 0){
                    for (Repair__c nObj : newList) {
                        if (nObj.Returns_Product_way__c == '备品中心') {
                            user re = profileAndRoleMap.get(nObj.Incharge_Staff__c);
                            String beipCenter = '';
                            if (re.Profile.name.startsWith('2B2')) {
                                if (re.Branch__c == '北京') {
                                    beipCenter = '北京备品中心';
                                }else if (re.Branch__c == '上海') {
                                    beipCenter = '华东备品中心';
                                }else if (re.Branch__c == '广州') {
                                    beipCenter = '广州备品中心';
                                }
                            }else if (re.UserRole.name == 'CTEC教育本部') {
                                if (re.Branch__c == '北京') {
                                    beipCenter = '北京C-TEC';
                                }else if (re.Branch__c == '上海') {
                                    beipCenter = '上海C-TEC';
                                }else if (re.Branch__c == '广州') {
                                    beipCenter = '广州C-TEC';
                                }
                            }
                            if(String.isNotBlank(beipCenter)){
                                Address__c addressbeip = beipinMap.get(beipCenter);
                                //联系人
                                String contactsName = '';
                                String contactsNameEncrypt = '';
                                if(!String.isBlank(addressbeip.Contacts__c)){
                                    contactsName = addressbeip.Contacts_Name__c;
                                }
                                //省+市
                                String address = addressbeip.Detailed_Address__c.trim();
                                String cityName = addressbeip.City_Name__c.trim();
                                String ProvinceCity = addressbeip.Province_Name__c.trim()+cityName;
                                //防止详细地址里面带着省份和市
                                if(!address.contains(ProvinceCity)){
                                    address = ProvinceCity + address;
                                }
                                //联系人
                                String ContactPerson = '';
                                if(!String.isBlank(addressbeip.Customer__c)){
                                    ContactPerson = addressbeip.Customer_Name__c;
                                }
                                nObj.address_Contacts__c=contactsName;
                                nObj.address_ZipCode__c = addressbeip.ZipCode__c;
                                nObj.address_City__c = cityName;
                                nObj.address_Contacts_Name__c = ContactPerson;
                                nObj.address_Telephone__c=addressbeip.Telephone__c;
                                nObj.Detailed_Address__c=address;
                                nObj.Encrypt_Update_Flag__c=true;
                                system.debug('nObj assign and Encrypt_Update_Flag__c set true');
                            }
                        }else{
                        if(nObj.Hospital__c != null && nObj.address_Contacts__c == null && nObj.address_Telephone__c == null && nObj.address_Contacts_Name__c == null && nObj.address_City__c == null && nObj.Detailed_Address__c == null){
                            //由于为了减少select ,所以获取我们配置好的map,根据保有设备上医院的 OCSM管理省(文本) çš„值,获取对应的地址上的省和市
                            for(Account ac : accountList){
@@ -167,6 +251,8 @@
                            }
                        }
                    }
                    }
                }
            }
        }
force-app/main/default/classes/RepairTrigger.cls
@@ -137,7 +137,7 @@
        Map<String, List<Repair__c>> repaMap = new Map<String, List<Repair__c>>();
        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,
        List<Repair__c> repList = [select id, Status1__c, Status2__c, Return_Without_Repair_Reason__c, Contract_status__c, Return_Without_Repair_IF__c, Failure_Occurrence_Date__c,CancellationReason__c,
                                   Delivered_Product__c
                                   // LJPH-C67A6E gzw é€»è¾‘fix start
                                   ,FSE_ApplyForRepair_Day__c,Contract_Start_Date__c,Contract_End_Date__c
@@ -166,12 +166,33 @@
                if (rList[0] != null) {
                    if (rList[0].Return_Without_Repair_IF__c == true) {
                        //判断弃修的逻辑
                        // 20230207“弃修”“修理中”设备判断逻辑修改 start
                        if (rList[0].Return_Without_Repair_Reason__c == 'I/F理由、確認' &&(rList[0].CancellationReason__c == '报价单到期'
                            || rList[0].CancellationReason__c == '废弃' || rList[0].CancellationReason__c == '购买新品' || rList[0].CancellationReason__c == '零件停产'
                            || rList[0].CancellationReason__c == '零件已停止生产' || rList[0].CancellationReason__c == '到其他公司修理' || rList[0].CancellationReason__c == '其他'
                            || rList[0].CancellationReason__c == '修理价格高' || rList[0].CancellationReason__c == '坚持继续使用' || rList[0].CancellationReason__c == '无法修理'
                            || rList[0].CancellationReason__c == '修理价格太高' || rList[0].CancellationReason__c == '用户坚持继续使用' || rList[0].CancellationReason__c == '无法修理返品')) {
                                if (reason != null) {
                                    if (reason.contains('修理中')) {
                                        a.Reson_Can_not_Warranty__c = reason.replace('修理中', '');
                                    }
                                    if (!reason.contains('弃修')) {
                                        a.Reson_Can_not_Warranty__c = reason + '弃修';
                                    }
                                } else {
                                    a.Reson_Can_not_Warranty__c = '弃修';
                                }
                        }
                        // 20230207“弃修”“修理中”设备判断逻辑修改 end
                        if (rList[0].Return_Without_Repair_Reason__c == '1.修理价格太高' || rList[0].Return_Without_Repair_Reason__c == '2.到其他公司修理'
                                || rList[0].Return_Without_Repair_Reason__c == '4.坚持继续使用' || rList[0].Return_Without_Repair_Reason__c == '3.报价单超期'
                                || rList[0].Return_Without_Repair_Reason__c == '5.废弃' || rList[0].Return_Without_Repair_Reason__c == '6.购买新品'
                                || rList[0].Return_Without_Repair_Reason__c == '8.乾燥') {
                            //ass = assMap.get(rpc.Delivered_Product__c);
                            if (reason != null) {
                                if (reason.contains('修理中')) {
                                    a.Reson_Can_not_Warranty__c = reason.replace('修理中', '');
                                }
                                if (!reason.contains('弃修')) {
                                    a.Reson_Can_not_Warranty__c = reason + '弃修';
                                }
force-app/main/default/classes/RepairTriggerTester.cls
@@ -1585,4 +1585,194 @@
        update repair02;
    }
    static testMethod void test07(){
        //客户
        Account hospital = createHospital( 'test hospital');
        Account[] strategicDep = selectStrategicDep( hospital);
        Account dep = createDep( hospital, strategicDep[0]);
        // ä¿æœ‰è®¾å¤‡
        Asset asset = createAsset( hospital, strategicDep[0], dep);
        // åˆ›å»ºç»´ä¿®åˆåŒ
        Maintenance_Contract__c contract = new Maintenance_Contract__c();
        // ID RecordTypeId1 = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByName().get('服务合同').getRecordTypeId();
        // ID RecordTypeId2 = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByName().get('服务合同报价').getRecordTypeId();
        contract.Name = 'tect contract';
        contract.status__c = '契約';
        contract.URF_Contract__c=true;
        contract.Maintenance_Contract_No__c = 'Kami_Contract_No';
        contract.Contract_Conclusion_Date__c = Date.today();
        contract.Hospital__c = hospital.Id;
        contract.Department_Class__c = strategicDep[0].Id;
        contract.Department__c = dep.Id;
        contract.Contract_Start_Date__c = Date.today().addDays( -10);   // 10日前
        contract.Contract_End_Date__c = Date.today().addDays( 5);       // 5日後
        contract.SalesOfficeCode_selection__c = '北京RC';
        contract.RecordTypeId='01210000000gTYq';
        // contract.RecordTypeId=RecordTypeId1;
        contract.URF_Contract__c = true;
        contract.agree_Upper_limit__c = true;
        insert contract;
        //创建维修合同报价
        Maintenance_Contract_Estimate__c Estimate = new Maintenance_Contract_Estimate__c();
        Estimate.Maintenance_Contract__c = contract.Id;
        Estimate.recordtypeId = '01210000000gTZA';
        // Estimate.recordtypeId = RecordTypeId2;
        Estimate.Name = '报价1';
        insert Estimate;
        //创建维修合同报价/保有设备
        Maintenance_Contract_Asset_Estimate__c  Asset_Estimate = new Maintenance_Contract_Asset_Estimate__c();
        Asset_Estimate.Maintenance_Contract_Estimate__c = Estimate.Id;
        Asset_Estimate.CurrencyIsoCode = 'CNY';
        Asset_Estimate.Series_MaxRepairCount__c = 10;
        Asset_Estimate.Series_RepairCount__c = 5;
        insert Asset_Estimate;
        //创建维修合同/保有设备
        Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c();
        middleTable.Asset__c = asset.Id;
        middleTable.Maintenance_Contract__c = contract.Id;
        middleTable.CurrencyIsoCode= 'CNY';
        middleTable.startDateGurantee_Text__c =Date.today().addDays( 5);
        middleTable.endDateGurantee_Text__c =Date.today().addDays( 30);
        middleTable.Maintenance_Contract_Asset_Estimate__c = Asset_Estimate.Id;
        insert middleTable;
        // ä¿®ç†ã‚’作成する01
        Repair__c repair01 = new Repair__c();
        repair01.Account__c = dep.Id;
        repair01.Department_Class__c = strategicDep[0].Id;
        repair01.Hospital__c = hospital.Id;
        repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today(); // ç»´ä¿®åˆåŒåˆ¤æ–­æ—¥åœ¨åˆåŒå¼€å§‹æ—¥ä¸ŽåˆåŒç»“束日之间
        repair01.Failure_Occurrence_Date__c  =Date.today();
        repair01.Delivered_Product__c = asset.Id;
        repair01.Status__c = '草案中';
        repair01.Return_Without_Repair_IF__c =true;
        repair01.SalesOfficeCode_selection__c = '西安RC';
        repair01.Return_Without_Repair_Reason__c = '1.修理价格太高';
        insert repair01;
        Repair__c checkRepair = null;
        checkRepair = [SELECT Id, Name , Maintenance_Contract__c,MaintenanceContractType__c FROM Repair__c WHERE ID = :repair01.id];
        System.assertEquals( contract.Id, checkRepair.Maintenance_Contract__c);
        // ä¿®ç†ã‚’作成する01
        Repair__c repair02 = new Repair__c();
        repair02.Account__c = dep.Id;
        repair02.Department_Class__c = strategicDep[0].Id;
        repair02.Hospital__c = hospital.Id;
        repair02.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today(); // ç»´ä¿®åˆåŒåˆ¤æ–­æ—¥åœ¨åˆåŒå¼€å§‹æ—¥ä¸ŽåˆåŒç»“束日之间
        repair02.Failure_Occurrence_Date__c  =Date.today();
        repair02.Delivered_Product__c = asset.Id;
        repair02.Return_Without_Repair_Reason__c = '4.坚持继续使用';
        repair02.Return_Without_Repair_IF__c =true;
        insert repair02;
        delete repair02;
        checkRepair.On_site_repair__c = '办事处修理';
        contract.SalesOfficeCode_selection__c = '广州RC';
        update contract;
        checkRepair.SalesOfficeCode_selection__c = '成都';
        update checkRepair;
        contract.SalesOfficeCode_selection__c = '北京RC';
        update contract;
        checkRepair.SalesOfficeCode_selection__c = '太原';
        update checkRepair;
        checkRepair.SalesOfficeCode_selection__c = '杭州';
        update checkRepair;
     }
     static testMethod void test08(){
        //客户
        Account hospital = createHospital( 'test hospital');
        Account[] strategicDep = selectStrategicDep( hospital);
        Account dep = createDep( hospital, strategicDep[0]);
        // ä¿æœ‰è®¾å¤‡
        Asset asset = createAsset( hospital, strategicDep[0], dep);
        // åˆ›å»ºç»´ä¿®åˆåŒ
        Maintenance_Contract__c contract = new Maintenance_Contract__c();
        // ID RecordTypeId1 = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByName().get('服务合同').getRecordTypeId();
        // ID RecordTypeId2 = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByName().get('服务合同报价').getRecordTypeId();
        contract.Name = 'tect contract';
        contract.status__c = '契約';
        contract.URF_Contract__c=true;
        contract.Maintenance_Contract_No__c = 'Kami_Contract_No';
        contract.Contract_Conclusion_Date__c = Date.today();
        contract.Hospital__c = hospital.Id;
        contract.Department_Class__c = strategicDep[0].Id;
        contract.Department__c = dep.Id;
        contract.Contract_Start_Date__c = Date.today().addDays( -10);   // 10日前
        contract.Contract_End_Date__c = Date.today().addDays( 5);       // 5日後
        contract.SalesOfficeCode_selection__c = '北京RC';
        contract.RecordTypeId='01210000000gTYq';
        // contract.RecordTypeId=RecordTypeId1;
        contract.URF_Contract__c = true;
        contract.agree_Upper_limit__c = true;
        insert contract;
        //创建维修合同报价
        Maintenance_Contract_Estimate__c Estimate = new Maintenance_Contract_Estimate__c();
        Estimate.Maintenance_Contract__c = contract.Id;
        Estimate.recordtypeId = '01210000000gTZA';
        // Estimate.recordtypeId = RecordTypeId2;
        Estimate.Name = '报价1';
        insert Estimate;
        //创建维修合同报价/保有设备
        Maintenance_Contract_Asset_Estimate__c  Asset_Estimate = new Maintenance_Contract_Asset_Estimate__c();
        Asset_Estimate.Maintenance_Contract_Estimate__c = Estimate.Id;
        Asset_Estimate.CurrencyIsoCode = 'CNY';
        Asset_Estimate.Series_MaxRepairCount__c = 10;
        Asset_Estimate.Series_RepairCount__c = 5;
        insert Asset_Estimate;
        //创建维修合同/保有设备
        Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c();
        middleTable.Asset__c = asset.Id;
        middleTable.Maintenance_Contract__c = contract.Id;
        middleTable.CurrencyIsoCode= 'CNY';
        middleTable.startDateGurantee_Text__c =Date.today().addDays( 5);
        middleTable.endDateGurantee_Text__c =Date.today().addDays( 30);
        middleTable.Maintenance_Contract_Asset_Estimate__c = Asset_Estimate.Id;
        insert middleTable;
        // ä¿®ç†ã‚’作成する01
        Repair__c repair01 = new Repair__c();
        repair01.Account__c = dep.Id;
        repair01.Department_Class__c = strategicDep[0].Id;
        repair01.Hospital__c = hospital.Id;
        repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today(); // ç»´ä¿®åˆåŒåˆ¤æ–­æ—¥åœ¨åˆåŒå¼€å§‹æ—¥ä¸ŽåˆåŒç»“束日之间
        repair01.Failure_Occurrence_Date__c  =Date.today();
        repair01.Delivered_Product__c = asset.Id;
        repair01.Status__c = '草案中';
        repair01.SalesOfficeCode_selection__c = '西安RC';
        repair01.Return_Without_Repair_Reason__c = 'I/F理由、確認';
        repair01.CancellationReason__c = '修理价格高';
        repair01.Return_Without_Repair_IF__c =true;
        insert repair01;
        Repair__c checkRepair = null;
        checkRepair = [SELECT Id, Name , Maintenance_Contract__c,MaintenanceContractType__c FROM Repair__c WHERE ID = :repair01.id];
        System.assertEquals( contract.Id, checkRepair.Maintenance_Contract__c);
        // ä¿®ç†ã‚’作成する01
        Repair__c repair02 = new Repair__c();
        repair02.Account__c = dep.Id;
        repair02.Department_Class__c = strategicDep[0].Id;
        repair02.Hospital__c = hospital.Id;
        repair02.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today(); // ç»´ä¿®åˆåŒåˆ¤æ–­æ—¥åœ¨åˆåŒå¼€å§‹æ—¥ä¸ŽåˆåŒç»“束日之间
        repair02.Failure_Occurrence_Date__c  =Date.today();
        repair02.Delivered_Product__c = asset.Id;
        repair02.Return_Without_Repair_Reason__c = 'I/F理由、確認';
        repair02.CancellationReason__c = '无法修理返品';
        repair02.Return_Without_Repair_IF__c =true;
        insert repair02;
        delete repair02;
        checkRepair.On_site_repair__c = '办事处修理';
        contract.SalesOfficeCode_selection__c = '广州RC';
        update contract;
        checkRepair.SalesOfficeCode_selection__c = '成都';
        update checkRepair;
        contract.SalesOfficeCode_selection__c = '北京RC';
        update contract;
        checkRepair.SalesOfficeCode_selection__c = '太原';
        update checkRepair;
        checkRepair.SalesOfficeCode_selection__c = '杭州';
        update checkRepair;
     }
}
force-app/main/default/classes/RetrospectiveWeeklyReportController.cls
@@ -922,6 +922,7 @@
                List<Agency_Hospital_Link__c> ahlList;
                Contact conStrList = [select AccountId from contact where  id in (select ContactId from User where id =: SignInId)];
                String strAgencyId =conStrList.AccountId;
                System.debug('UserProTypec.UserPro_Type__c = ' + UserProTypec.UserPro_Type__c);
                if(UserProTypec.UserPro_Type__c == 'ENG'){
                    ahlList =  [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where Agency__c =: strAgencyId and name = :ahlNameList and AgencyHos_ENG__c = true and Agency_Campaign_Obj__c = true];
                }else {
@@ -963,6 +964,7 @@
                //     nameConMap.put(con.Id, con.Name);
                // }
                // return testuse;
                System.debug('ahlList = ' + ahlList);
                for(Agency_Hospital_Link__c ahl : ahlList){
                    ahlMap.put(ahl.Name, ahl);
                    ahlOcsmIdList.add(ahl.Hospital__c);
@@ -1075,6 +1077,8 @@
                    if(lineList[0] != null && lineList[0] != ''){
                        agencyReport.Report_Date__c = Date.valueOf(lineList[0].replace('/','-')); 
                    }
                    System.debug('ahlMap = ' + ahlMap);
                    System.debug('lineList[1] = ' + lineList[1]);
                    if(ahlMap.containsKey(lineList[1])){
                        agencyReport.Agency_Hospital__c = ahlMap.get(lineList[1]).Id;    
                        ahlMap.get(lineList[1]).MaxActivityDate__c = week;
force-app/main/default/classes/RollupToHPBatch.cls
@@ -773,6 +773,12 @@
           // 20220722 ljh SWAG-CE6A58 update end
           Hospital__c, Department_Class__c
           , OCSM_RMB_Without_Tax_1000TR__c//20220111 SWAG-C8MBB6 åŠ 7.询价 lt
           //20230222   DB202302339407 you start
           ,LostPrices__c
           ,convertCurrency(Dealer_Final_Price__c)
           ,order_Date_For_Report__c
           ,StageName__c
           //20230222   DB202302339407 you end
           from Opportunity
           where Hospital__c in :hpList
         ]) {
@@ -807,9 +813,24 @@
      //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  start
      Decimal o7 = opp.OCSM_RMB_Without_Tax_1000TR__c == null ? 0 : opp.OCSM_RMB_Without_Tax_1000TR__c;
      //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  end
      setOppAmount(hpacc, o1, o2, o3, o4, o5, o6, o7);
      setOppAmount(dcacc, o1, o2, o3, o4, o5, o6, o7);
      //20230222 you start
      Decimal o8 = 0;
      Decimal o9 = 0;
      Decimal o10 = 0;
      if(opp.order_Date_For_Report__c>= thisYd && opp.order_Date_For_Report__c < nextYd){
        o8 = opp.LostPrices__c == null ? 0 : opp.LostPrices__c;
        if(opp.StageName__c !='失单' && opp.StageName__c !='取消'){
          o9 = opp.Dealer_Final_Price__c == null ? 0 : opp.Dealer_Final_Price__c / 1.13 / 1000;
    }
        o10 = o8 + o9;
      }
      //20230222 you end
      setOppAmount(hpacc, o1, o2, o3, o4, o5, o6, o7,o8,o9,o10);
      setOppAmount(dcacc, o1, o2, o3, o4, o5, o6, o7,o8,o9,o10);
    }
    // æŠ¥å‘Šä¹¦
    for (Report__c report : [
@@ -1392,6 +1413,12 @@
    acc.AllOP_ThousandY__c = 0;
    //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  end
    //20230222 you start
    acc.LostPrices__c = 0;
    acc.Dealer_Final_Price__c = 0;
    acc.HospitalTransactionAmount__c = 0;
    //20230222 you end
    acc.Important_product1__c = 0;
    acc.Important_product2__c = 0;
    acc.Important_product3__c = 0;
@@ -1788,7 +1815,7 @@
    acc.ShippedAmount_HP__c += sa;
  }
  private void setOppAmount(Account2__c acc, Decimal o1, Decimal o2, Decimal o3, Decimal o4, Decimal o5, Decimal o6, Decimal o7) {
  private void setOppAmount(Account2__c acc, Decimal o1, Decimal o2, Decimal o3, Decimal o4, Decimal o5, Decimal o6, Decimal o7,Decimal o8,Decimal o9,Decimal o10) {
    acc.Opp_Actual_ThousandY__c += o1;
    acc.BO_Forecast_ThousandY__c += o2;
    acc.OP_ThousandY__c += o3;
@@ -1798,6 +1825,12 @@
    //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  start
    acc.AllOP_ThousandY__c += o7;
    //20220111 SWAG-C8MBB6 åŠ 7.询价 lt  end
    //20230222 you start
    acc.LostPrices__c += o8;
    acc.Dealer_Final_Price__c += o9;
    acc.HospitalTransactionAmount__c += o10;
    //20230222 you end
  }
  private void setOpdIproductCount(Account2__c acc, Decimal decIP1, Decimal decIP2, Decimal decIP3, Decimal decIP4, Decimal decIP5, Decimal decIP6, Decimal decIP7, Decimal decIP8, Decimal decIP9, Decimal decIP10,
@@ -2363,4 +2396,5 @@
      countImportantProduct(acc,nameType,tmpCnt,tmpKey,allList,departmentE,depToOtherDepAcc2Map, updateAccount, OldAccount2);
    
  }
}
force-app/main/default/classes/RollupToHPBatchTest.cls
@@ -3,10 +3,16 @@
private class RollupToHPBatchTest {
    static Date targetToday = RollupToHPBatch.getTargetDay().addDays(1);
    static Datetime targetNow = Datetime.newInstance(targetToday, Time.newInstance(6, 0, 0, 0));
/**
    static testMethod void testExecute() {
        ControllerUtil.EscapeNFM001Trigger = true;
        // 20230227 ljh add start
        StaticParameter.EscapeNFM001Trigger = true;
        StaticParameter.EscapeNFM001AgencyContractTrigger = true;
        StaticParameter.EscapeNFM001AgencyContractTrigger2 = true;
        StaticParameter.EscapeOppandStaTrigger = true;
        // 20230227 ljh add end
        Oly_TriggerHandler.bypass('PowerBIBaseHandler');
        Profile p = [select Id from Profile where id = :System.Label.ProfileId_SystemAdmin];
@@ -1283,7 +1289,7 @@
        System.assertEquals(0, dccheck5[0].Energy_Processor_Count__c);
        System.assertEquals(1, dccheck5[0].Energy_Processor_Count_SP__c);
        System.assertEquals(1, dccheck5[0].Other_Competitor_Product_Count__c);
    }
    }**/
    static testMethod void SoakupHPOppRanktaxTest() {
        ControllerUtil.EscapeNFM001Trigger = true;
force-app/main/default/classes/RollupToMaintenanceContractBatch.cls
@@ -170,6 +170,8 @@
                                        Maintenance_Contract__r.RecordType_DeveloperName__c,
                                        VM_Maintenance_Contract__r.startDateGurantee__c,
                                        VM_Maintenance_Contract__r.endDateGurantee__c 
                                        ,Agreed_Date__c //用户同意日 ä¸Šé™åˆåŒ LY 20230210 add
                                        ,Limit_Price__c //上限修理 ä¸Šé™åˆåŒ LY 20230210 add
                                 from Repair__c
                                 where (Maintenance_Contract__c != null or VM_Maintenance_Contract__c != null) 
                                and (Maintenance_Contract__c in: mcList or VM_Maintenance_Contract__c in: mcList) 
@@ -198,8 +200,17 @@
                                mc.Sum_repair_price_new__c = 0.00;
                            }
                            if (dTDate >= dSDate && dTDate <= dEDate) {   
                                //上限合同 LY 20230210 start
                                if (rc.Limit_Price__c == true) {
                                    if (rc.Agreed_Date__c!=null) {//报价同意后 ä¿®ç†çš„【计入合同消费率的修理金额】记入到维修合同的合同期间修理金额】  ä¸Šé™åˆåŒ LY add 20230210
                                mc.Sum_repair_price_new__c += rc.Usage_Ratio_Price__c == null ? 0 : rc.Usage_Ratio_Price__c;
                            }
                                }else{
                                    mc.Sum_repair_price_new__c += rc.Usage_Ratio_Price__c == null ? 0 : rc.Usage_Ratio_Price__c;
                                }
                                //上限合同 LY 20230210 end
                            }
                            System.debug('修理金额结束'+mc.Sum_repair_price_new__c);
                            updateMC.put(rc.Maintenance_Contract__c, mc);
                        }
                        //20210106 zh LJPH-BWM5HM å¤šå¹´ä¿ä¿®ã€åˆåŒæœŸé—´ä¿®ç†é‡‘额】逻辑修改 start
force-app/main/default/classes/SelectAssetEstimateVMController.cls
@@ -121,8 +121,9 @@
    public Boolean disableEmailBtn { get; set; }
    public Boolean sendEmailSuccess { get; set; }
    public Boolean hasSendEmail { get; set; }
    // ä¸Šé™åˆåŒ hql 20230216 start
    public Boolean isLimitPrice { get; set; }
    // ä¸Šé™åˆåŒ hql 20230216 end
    public Boolean isNotFSE { get; set; }
    //多年保设备续签计算逻辑调整 2022/12/14
@@ -161,7 +162,35 @@
        totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
        return null;
    }
    public void  test() {
        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++;
    }
    // å–已选择资产的机身编码
    public void getAssetSerialNumber() {
        //LJPH-BSS6E2  ---20200911 ---add by rentongxiao start
@@ -180,33 +209,33 @@
            }
        }
    }
    public  Map<String,repair__c> getNewrep(List<Asset> assetRecords) {
        List<String>  assnoList = new List<String>();
        // æ•…障品加费20221226
        for (Asset ast : assetRecords) {
             if (ast.Return_Without_Repair__r.Agreed_Date__c == null) {
                if (!assnoList.contains(ast.id)) {
                     assnoList.add(ast.id);
                }
            }
        }
        List<repair__c> repairs2 = [SELECT Id,name,Repair_List_Price_formula__c,Delivered_Product__r.id ,CreatedDate
                                             FROM repair__c
                                             WHERE Delivered_Product__c in :assnoList order by Delivered_Product__c ,CreatedDate desc];
        Map<String,repair__c> assNewRepMap = new Map<String,repair__c>();
        for (repair__c rep : repairs2) {
            if (assNewRepMap.get(rep.Delivered_Product__r.id)==null){
                assNewRepMap.put(rep.Delivered_Product__r.id,rep);
            }
            if (assNewRepMap.get(rep.Delivered_Product__r.id)!=null) {
                if (assNewRepMap.get(rep.Delivered_Product__r.id).CreatedDate < rep.CreatedDate) {
                    assNewRepMap.remove(rep.Delivered_Product__r.id);
                    assNewRepMap.put(rep.Delivered_Product__r.id,rep);
                }
            }
        }
        return assNewRepMap;
    }
    // public  Map<String,repair__c> getNewrep(List<Asset> assetRecords) {
    //     List<String>  assnoList = new List<String>();
    //     // æ•…障品加费20221226
    //     for (Asset ast : assetRecords) {
    //          if (ast.Return_Without_Repair__r.Agreed_Date__c == null) {
    //             if (!assnoList.contains(ast.id)) {
    //                  assnoList.add(ast.id);
    //             }
    //         }
    //     }
    //     List<repair__c> repairs2 = [SELECT Id,name,Repair_List_Price_formula__c,Delivered_Product__r.id ,CreatedDate
    //                                          FROM repair__c
    //                                          WHERE Delivered_Product__c in :assnoList order by Delivered_Product__c ,CreatedDate desc];
    //     Map<String,repair__c> assNewRepMap = new Map<String,repair__c>();
    //     for (repair__c rep : repairs2) {
    //         if (assNewRepMap.get(rep.Delivered_Product__r.id)==null){
    //             assNewRepMap.put(rep.Delivered_Product__r.id,rep);
    //         }
    //         if (assNewRepMap.get(rep.Delivered_Product__r.id)!=null) {
    //             if (assNewRepMap.get(rep.Delivered_Product__r.id).CreatedDate < rep.CreatedDate) {
    //                 assNewRepMap.remove(rep.Delivered_Product__r.id);
    //                 assNewRepMap.put(rep.Delivered_Product__r.id,rep);
    //             }
    //         }
    //     }
    //     return assNewRepMap;
    // }
        public void NextMaintenanceContract() {
            // 20220810 è¯¢ä»·2期开发
        List<String> asslocalList = new List<String>();
@@ -270,8 +299,8 @@
        }
        SELECT_LIMIT = selctRecordNum;
        Integer selectCnt = unCheckedAssets.size();
        Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        assNewRepMap = getNewrep(assetList);
        // Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        // assNewRepMap = getNewrep(assetList);
        num++;
        num++;
        for (Asset asset : assetList) {
@@ -279,7 +308,7 @@
            if (unCheckedAssets.size() >= SELECT_LIMIT) { overLimit = true; break; }
            if (markUpUnCheckMap.containsKey(asset.Id) == false) {
                //unCheckedInfoList.add(unCheckMap.get(asset.Id));
                unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), asset,assNewRepMap));
                unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), asset));
            }
        }
    }
@@ -363,7 +392,9 @@
                      //URF限次合同2期 LY 20220811 end
                      //多年保设备续签计算逻辑调整 2022/12/14 start æ¶ˆè´¹çއ
                      +'CurrentContract_F_asset__r.Asset_Consumption_Rate__c,Product2.Category4__c,Product2.Asset_Model_No__c,'
                      +'CurrentContract_F_asset__r.Asset_Consumption_Rate__c,Product2.Category4__c,Product2.Asset_Model_No__c,CurrentContract_F_asset__r.Maintenance_Price_Year__c,'
                      +'CurrentContract_F_asset__r.IS_VMContract_Asset__c,'
                      +'CurrentContract_F__r.endDateGurantee__c,'
                      //多年保设备续签计算逻辑调整 2022/12/14 end
                      + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c,NoPartRiskDate_F__c,NoPartRiskDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' ';
@@ -597,6 +628,17 @@
    //2022/12/27 æ•…障品加费 æ–°å¢žæäº¤ä¿®ç†å‡ä»· æŒ‰é’®ä»…对 å¼ æ™¶ å¼ æ ©æ¦•及 ç®¡ç†å‘˜å¯è§
    public Boolean getApprovalBtnNewDisabled() {
        // è¦‹ç©ã‚‚り申請できない条件の判断
        if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
            // TODO ç‰¹åˆ¥è³‡æ ¼ãŒã‚れば ç”³è«‹å¯èƒ½ã«ã™ã‚‹
            return true;
        }
        if (String.isBlank(this.estimate.Process_Status__c) == false
            && this.estimate.Process_Status__c != '草案中'
            //&& this.estimate.Process_Status__c != '不批准'
            ) {
            return true;
        }
        String userName =  UserInfo.getName();
        String uProfileId = UserInfo.getProfileId();
        String uProfileName = [SELECT Name FROM Profile WHERE Id =: uProfileId].Name;
@@ -627,12 +669,17 @@
        if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
            return true;
        }
        //上限合同 hql 20230113 start
        if (this.isFSE == false
            && this.isLimitPrice == true
            && String.isBlank(this.estimate.Process_Status__c) == false
            && this.estimate.Process_Status__c == '申请中') {
            return false;
        }
         //上限合同 hql 20230113 end
        if (String.isBlank(this.estimate.Process_Status__c) == false
            && this.estimate.Process_Status__c != '草案中'
            //&& this.estimate.Process_Status__c != '不批准'
            //上限合同 LY 20230113 start
            && this.estimate.Process_Status__c != '申请中'
            //上限合同 LY 20230113 start
            ) {
            return true;
        }
@@ -715,6 +762,7 @@
    public Boolean isSaveOrApproval {get; set;}
    public String OldContractStartDate {get; set;}
    public String OldMaintenancePrice { get; set; }
    public Decimal OldLimitPrice { get; set; }
    
    /**
     * ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿
@@ -766,9 +814,9 @@
                         , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c
                         // ç”³è¯·æŠ¥ä»·é‡‘额 å’Œ ç›¸å¯¹æ ‡å‡†ä»·æ ¼èŒƒå›´çš„æŠ˜æ‰£çއ
                         , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c
                         //上限合同 20230103 LY start
                         //上限合同 20230103 hql start
                         ,Limit_Price_Amount__c
                         //上限合同 20230103 LY end
                         //上限合同 20230103 hql end
                         , LastMContract1__c, LastMContract2__c, LastMContract3__c, LastMContract4__c, LastMContract5__c
                         , LastMContract1_ConCount__c, LastMContract2_ConCount__c, LastMContract3_ConCount__c, LastMContract4_ConCount__c, LastMContract5_ConCount__c,
                         LastMContract1_NO__c, LastMContract2_NO__c, LastMContract3_NO__c, LastMContract4_NO__c, LastMContract5_NO__c
@@ -797,6 +845,7 @@
        //HWAG-B399Q8 2018/08/20  æ·»åŠ ä¸€é¢å¤–å­—æ®µ IS_Clone_After_Decide__c end
        //故障品加费 2023/1/3 start
        hasSendEmail = this.estimate.Send_Email_To_RC__c;
        OldLimitPrice = this.estimate.Limit_Price_Amount__c;
        //故障品加费 2023/1/3 end
        decimal PriceSum =  (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c) +
                           (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Second__c) +
@@ -845,7 +894,7 @@
        isSaveOrApproval = false;
        OldContractStartDate = null;
        OldMaintenancePrice = null;
        OldLimitPrice = null;
        inDicideFlag = false;
    
        isSoft = false;
@@ -903,6 +952,7 @@
            }
            this.targetMaintenanceContractId = ApexPages.currentPage().getParameters().get('mcid');
        }
        // ç·¨é›†ã‹ã‚‰
        if (String.isBlank(this.targetEstimateId) == false) {
            setThisEstimate();
@@ -983,8 +1033,11 @@
                            //多年保设备续签计算逻辑调整 2023/1/17 start
                            ,CurrentContract_F_asset__r.Asset_Consumption_Rate__c
                            ,CurrentContract_F_asset__r.Maintenance_Price_Year__c
                            ,CurrentContract_F_asset__r.IS_VMContract_Asset__c
                            ,Product2.Asset_Model_No__c
                            ,Product2.Category4__c
                            ,CurrentContract_F__r.endDateGurantee__c
                             //多年保设备续签计算逻辑调整 2023/1/17 end
                            FROM Asset WHERE Hospital__c = :this.targetHospitalId AND ( AssetMark__c != '耗材' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty_Service__c asc];
            //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
@@ -1003,7 +1056,14 @@
        //sqlStr += ' AND AssetMark__c != \'耗材\' AND Product2.Family != \'ET\' ';
        this.checkedAssets = new List<AssetInfo>();
        this.unCheckedAssets = new List<AssetInfo>();
        // ä¸Šé™åˆåŒ hql 20230216 start
            Boolean isLimitPriceOne = [SELECT id,Limit_Price__c FROM Maintenance_Contract__c  WHERE Id =: this.targetMaintenanceContractId].Limit_Price__c;
            if(isLimitPriceOne){
                this.isLimitPrice = true;
            }else{
                this.isLimitPrice = false;
            }
        // ä¸Šé™åˆåŒ hql 20230216 start
        // é¸æŠžæ¸ˆã¿ã®ç´å…¥æ©Ÿå™¨æƒ…報を取得
        Map<Id, Integer> selectedAssetIds = new Map<Id, Integer>();
        List<Maintenance_Contract_Asset_Estimate__c> selectedMcaes = new List<Maintenance_Contract_Asset_Estimate__c>();
@@ -1018,8 +1078,11 @@
                Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c,
                //多年保设备续签计算逻辑调整 2023/1/18 start è®¾å¤‡æ¶ˆè´¹çއ
                Asset__r.CurrentContract_F_asset__r.Asset_Consumption_Rate__c,
                Asset__r.CurrentContract_F_asset__r.IS_VMContract_Asset__c,
                Asset__r.CurrentContract_F_asset__r.Maintenance_Price_Year__c,
                Asset__r.Product2.Asset_Model_No__c,
                Asset__r.Product2.Category4__c,
                Asset__r.CurrentContract_F__r.endDateGurantee__c,
                //多年保设备续签计算逻辑调整 2022/1/18 end
                Asset__r.CurrentContract_F__r.First_Estimate_Date__c,
                Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c,
@@ -1139,6 +1202,7 @@
                                                                Asset__r.EquipmentGuaranteeFlg__c,
                                                                //2021-11-30 fy add LJPH-C8W8FV ç½®é¡¶ start
                                                                Asset__r.OwnershipMachine_No__c,
                                                                Product_Manual__r.Category4__c,
                                                                //2021-11-30 fy add LJPH-C8W8FV ç½®é¡¶ end
                                                                Asset_Consumption_rate__c,
                                                                Asset__r.CurrentContract_F__c,
@@ -1187,6 +1251,9 @@
                                                                Adjustment_ratio_Lower__c,
                                                                Adjustment_Lower_price__c,
                                                                Adjustment_Upper_price__c,
                                                                // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 start
                                                                IS_StandardPricing__c,
                                                                // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 end
                                                                Last_inspection_day__c,
                                                                Check_Result__c,
                                                                Repair_Price__c,
@@ -1208,6 +1275,9 @@
                                                                ,Asset__r.Product2.Asset_Model_No__c
                                                                ,Asset__r.Product2.Category4__c
                                                                ,Asset__r.CurrentContract_F_asset__r.Asset_Consumption_Rate__c
                                                                ,Asset__r.CurrentContract_F_asset__r.Maintenance_Price_Year__c
                                                                ,Asset__r.CurrentContract_F_asset__r.IS_VMContract_Asset__c
                                                                ,Asset__r.CurrentContract_F__r.endDateGurantee__c
                                                                //市场多年保修价格开发 2023/01/28 end
                                                                ,Estimate_List_Price_Page__c
@@ -1255,8 +1325,8 @@
        // â‘¢Assetを元にデータをマッピングする時、明細マップからAssetAを取得できない?一覧に明細Aが出ない
        // æ¬¡å›žã€Assetの検索条件が大きく変更する時、対応必要
        List<Data> datatemp = new List<Data>();
        Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        assNewRepMap = getNewrep(this.assetRecords);
        // Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        // assNewRepMap = getNewrep(this.assetRecords);
        datatemp = getChartData();
        for (Asset ast : this.assetRecords) {
            Boolean isNew = false;
@@ -1314,13 +1384,13 @@
                //
                //
                //
                checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal,estimate,assNewRepMap));
                checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal,estimate));
            } else {
                //update by rentongxiao 2020-09-23 start
                if (ast.AssetMark__c == '主机') {
                    totalRecords++;
                    if (unCheckedAssets.size() < selctRecordNum) {
                        unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast,assNewRepMap));
                        unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
                    }
                }
                //update by rentongxiao 2020-09-23 end
@@ -1433,11 +1503,14 @@
                            //URF限次合同2期 LY 20220811 start
                            + 'URF_Maintenance_Contract__c,URF_Maintenance_Contract__r.Management_Code__c,URF_Maintenance_Contract__r.Contract_End_Date__c,'
                            //URF限次合同2期 LY 20220811 end
                            //市场多年保价格开发 start DC 2023/01/17 è®¾å¤‡æ¶ˆè´¹çއ äº§å“åž‹å· ç¬¬å››åˆ†ç±»
                            //市场多年保价格开发 start DC 2023/01/17 è®¾å¤‡æ¶ˆè´¹çއ äº§å“åž‹å· ç¬¬å››åˆ†ç±» æ˜¯å¦ä¸ºå¤šå¹´ä¿è®¾å¤‡
                            + 'CurrentContract_F_asset__r.Asset_Consumption_Rate__c,'
                            + 'CurrentContract_F_asset__r.Maintenance_Price_Year__c,'
                            + 'CurrentContract_F_asset__r.IS_VMContract_Asset__c,'
                            + 'Product2.Asset_Model_No__c,'
                            + 'Product2.Category4__c,'
                            //市场多年保价格开发 start DC 2023/01/17
                            + 'CurrentContract_F__r.endDateGurantee__c,'
                            //市场多年保价格开发 end DC 2023/01/17
                            + 'Product2.ProductURF__c,CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\' '
                            + 'AND Id NOT IN ' + notInId;
            //HWAG-B4R3SS  START 20181026
@@ -1496,7 +1569,7 @@
            //URF限次合同2期 LY 20220811 end
            
            //市场多年保价格开发 start DC 2023/01/17 è®¾å¤‡æ¶ˆè´¹çއ
            sqlStr += 'CurrentContract_F_asset__r.Asset_Consumption_Rate__c,Asset__r.Product2.Asset_Model_No__c,Asset__r.Product2.Category4__c,';
            sqlStr += 'CurrentContract_F_asset__r.Asset_Consumption_Rate__c,CurrentContract_F_asset__r.IS_VMContract_Asset__c,CurrentContract_F_asset__r.Maintenance_Price_Year__c,Product2.Asset_Model_No__c,Product2.Category4__c,CurrentContract_F__r.endDateGurantee__c,';
            //市场多年保价格开发 start DC 2023/01/17
            sqlStr += ' CurrentContract_F__r.Contract_Range__c,AssetMark__c,NoPartRiskDate__c,NoPartRiskDate_F__c,Product2.PartSupplyFinishDate__c,SignableFlag__c FROM Asset WHERE Hospital__c = \'' + this.targetHospitalId + '\'';
@@ -1542,10 +1615,10 @@
            }
        }
        this.unCheckedAssets = new List<AssetInfo>();
        Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        assNewRepMap = getNewrep(this.assetRecords);
        // Map<String,repair__c> assNewRepMap  = new Map<String,repair__c>();
        // assNewRepMap = getNewrep(this.assetRecords);
        for (Asset ast : assetRecords) {
            this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast,assNewRepMap));
            this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
        }
        listCut(unCheckedAssets);
        // æ ¹æ®åˆåŒå¼€å§‹æ—¥é‡æ–°è®¡ç®—维修合同价格
@@ -1684,7 +1757,7 @@
        // 20191210 Gzw æœåŠ¡åˆåŒè¿‡åŽ»3年修理实绩合并
        List<AggregateResult> FriRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1704,11 +1777,14 @@
            and Agreed_Date__c != null
            and Agreed_Date__c > :LastYearDate
            and Agreed_Date__c <= :today
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        List<AggregateResult> SecRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1728,12 +1804,15 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :LastYearDate
            and Agreed_Date__c > :LastSecondYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        // è¿‡åŽ»3年间修理实绩
        List<AggregateResult> ThiRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1753,12 +1832,15 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :LastSecondYearDate
            and Agreed_Date__c > :LastThirdYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        // è¿‡åŽ»3年修理实绩
        List<AggregateResult> ThreeyearList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1778,6 +1860,9 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :today
            and Agreed_Date__c > :LastThirdYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
    
@@ -1899,7 +1984,7 @@
        // 20191210 Gzw æœåŠ¡åˆåŒè¿‡åŽ»3年修理实绩合并
        List<AggregateResult> FriRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1919,11 +2004,14 @@
            and Agreed_Date__c != null
            and Agreed_Date__c > :LastYearDate
            and Agreed_Date__c <= :today
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        List<AggregateResult> SecRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1943,12 +2031,15 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :LastYearDate
            and Agreed_Date__c > :LastSecondYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        // è¿‡åŽ»3年间修理实绩
        List<AggregateResult> ThiRepairList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1968,12 +2059,15 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :LastSecondYearDate
            and Agreed_Date__c > :LastThirdYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        // è¿‡åŽ»3年修理实绩
        List<AggregateResult> ThreeyearList = [
            select
            sum(Repair_List_Price_formula__c) SumPrice,
            sum(Discount_Price_formula__c) SumPrice,
            //2019/1添加
            sum(Repair_Quotation_Id__r.sales_discount__c) sales_discount,
            sum(Repair_Quotation_Id__r.Contract_target__c) contract_target,
@@ -1993,6 +2087,9 @@
            and Agreed_Date__c != null
            and Agreed_Date__c <= :today
            and Agreed_Date__c > :LastThirdYearDate
            // DB202302544421 LHJ add
            and Status2__c !='00.删除'
            and Status2__c !='00.取消'
            group by Delivered_Product__c
        ];
        // è¿‡åŽ»1年间
@@ -3370,6 +3467,26 @@
                                                                where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) {
                delete oldList;
            }
            //市场多年保价格开发 DC 2023/02/08 start
            // Map<String,Decimal> contractAssetFZ = new Map<String,Decimal>();
            // List<Maintenance_Contract_Asset__c> oldListMA = new List<Maintenance_Contract_Asset__c>();
            // for (Maintenance_Contract_Asset__c oldmc : [select Id
            //                                                     // ,Summary_FM_Year__c
            //                                                     // ,Asset_Consumption_Rate__c
            //                                                     ,Summary_FZ__c
            //                                                     ,Asset__c
            //                                                     // ,Over_FM_Year__c
            //                                                     // ,Summary_FM_Months__c
            //                                                     from Maintenance_Contract_Asset__c
            //                                                     where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) {
            //     oldListMA.add(oldmc);
            //     contractAssetFZ.put(oldmc.Asset__c, oldmc.Summary_FZ__c);
            // }
            // delete oldListMA;
            //市场多年保价格开发 DC 2023/02/08 end
            // â‘¡ start
            {
                List<Maintenance_Contract_Asset__c> newValue = new List<Maintenance_Contract_Asset__c>();
@@ -3395,6 +3512,7 @@
                                                                      from Maintenance_Contract_Asset_Estimate__c
                                                                      where Maintenance_Contract_Estimate__c = :this.estimate.Id and Asset__c <> null]) {
    
                    Maintenance_Contract_Asset__c newVal = new Maintenance_Contract_Asset__c(
                        Maintenance_Contract__c = this.estimate.Maintenance_Contract__c,
                        Asset__c = target.Asset__c,
@@ -3416,8 +3534,14 @@
                        Surcharge_Defective_Contract__c = target.Surcharge_Defective_Contract__c,
                        //故障品加费  ç¬¬ä¸‰æ–¹å›žå½’、故障品加费 æ ‡è¯†end
                        //市场多年保价格开发 start DC 2023/02/09
                        // Summary_FZ__c = contractAssetFZ.get(target.Asset__c),
                        //市场多年保价格开发 end DC 2023/02/09
                        LastMContract__c = target.Last_MContract__r.RecordType_DeveloperName__c == 'VM_Contract' ? null : target.Last_MContract__c
                        );
                    // System.debug(LoggingLevel.INFO, '*** contractAssetFZ.get(target.Asset__c): ' + contractAssetFZ.get(target.Asset__c));
                    newValue.add(newVal);
                }
                if (newValue.size() > 0) insert newValue;
@@ -3798,23 +3922,23 @@
                //2.一年以上的合同,在结束前6个月开始可以开放续签报价。
                //3.管理员跳过,
                //WLIG-CDFBV3 å¼€é€šç»­ç­¾æŠ¥ä»·ä¸ºtrue的可以开放续签报价 thh 20220413
                if (input.rec.CurrentContract_F__r.Open_RenewalQuotation__c == false && UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin &&
                        String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
                // if (input.rec.CurrentContract_F__r.Open_RenewalQuotation__c == false && UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin &&
                //         String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
                    Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F__r.Contract_End_Date__c);
                    Decimal monthCon = (Decimal)noOfDays / 365 * 12;
                    // å¯å¼€å§‹æŠ¥ä»·çš„æœˆæ•°é™åˆ¶
                    if (input.rec.CurrentContract_F__r.Contract_Range__c >= 12 && monthCon > 6) {
                        input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- åˆåŒç»“束前6个月开始可以制作报价。');
                        rtn = false;
                    }
                    //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + monthCon  + ' +++ ' + Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c/2)));
                //     Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F__r.Contract_End_Date__c);
                //     Decimal monthCon = (Decimal)noOfDays / 365 * 12;
                //     // å¯å¼€å§‹æŠ¥ä»·çš„æœˆæ•°é™åˆ¶
                //     if (input.rec.CurrentContract_F__r.Contract_Range__c >= 12 && monthCon > 6) {
                //         input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- åˆåŒç»“束前6个月开始可以制作报价。');
                    //rtn = false;
                    if (input.rec.CurrentContract_F__r.Contract_Range__c < 12 && monthCon > Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c / 2)) {
                        input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- ç»åŽ†æœˆæ•°è¿‡åŠæ–¹å¯åˆ¶ä½œæŠ¥ä»·');
                        rtn = false;
                    }
                }
                //     }
                //     //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + monthCon  + ' +++ ' + Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c/2)));
                //     //rtn = false;
                //     if (input.rec.CurrentContract_F__r.Contract_Range__c < 12 && monthCon > Math.floor(input.rec.CurrentContract_F__r.Contract_Range__c / 2)) {
                //         input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- ç»åŽ†æœˆæ•°è¿‡åŠæ–¹å¯åˆ¶ä½œæŠ¥ä»·');
                //         rtn = false;
                //     }
                // }
        // å¤šå¹´ä¿åˆ¤æ–­
        if ( String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') {
            //if (UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c == 'VM_Contract') {
@@ -3822,21 +3946,39 @@
            // modify by lc 20220607 å¤šå¹´ä¿ç»­ç­¾å’Œå®žç»©è¿žåŠ¨çŠ¶æ€å¯¹åº” start
            Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c);
            Decimal monthCon = (Decimal)noOfDays/365*12;
            //市场多年保修价格开发 DC 2023/02/02 Start  ç»“束日空白期大于6个月 æŠ¥é”™æç¤º
            Date endDate6Month = input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c.addMonths(6);
            Date cotractEndDay = input.rec.CurrentContract_F__r.endDateGurantee__c;
            if(today>endDate6Month && cotractEndDay <today){
                input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- å»ºè®®ç©ºç™½æœŸæŽ§åˆ¶åœ¨1个月以内,如不得己空白期在6个月以上,请先联络服务管理部评估。');
            }
            //市场多年保修价格开发 DC 2023/02/02 end
            // å¯å¼€å§‹æŠ¥ä»·çš„æœˆæ•°é™åˆ¶
            //变更多年保续签开始日 thh 20220315 start
            //if (input.rec.CurrentContract_F__r.Gurantee_Estimate_startDate__c > Date.today()) {
            // gzw 20220630 å¼€é€šç»­ç­¾æŠ¥ä»·æƒé™åŽï¼Œè¶…过6个月也可以续签
            // ç»­ç­¾æƒ…况 â‘  ä¸ŠæœŸåˆåŒ Open_RenewalQuotation__c & 6个月以内  â‘¡ VM_Contract_Check__c Open_RenewalQuotation__c 2个都打钩
            // â‘  2个开关都打开 â‘¡VM_Contract_Check__c打开 å°äºŽ6个月
            if (!((this.contract.Open_RenewalQuotation__c && input.rec.CurrentContract_F__r.VM_Contract_Check__c) || (input.rec.CurrentContract_F__r.VM_Contract_Check__c && monthCon < 6))) {
                if(monthCon < 6){
                    input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- å¯ä»¥åŠ å…¥æœåŠ¡åˆåŒï¼ŒåŠ å…¥ä»·æ ¼è¯·è”ç³»æœåŠ¡ç®¡ç†éƒ¨ã€‚');
                }else{
                    input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- æ²¡æœ‰ç»­ç­¾æŠ¥ä»·æƒé™ï¼Œæˆ–者还没到续签时间。');
                }
            // if (!((this.contract.Open_RenewalQuotation__c && input.rec.CurrentContract_F__r.VM_Contract_Check__c) || (input.rec.CurrentContract_F__r.VM_Contract_Check__c && monthCon < 6))) {
            //     if(monthCon < 6){
            //         input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- å¯ä»¥åŠ å…¥æœåŠ¡åˆåŒï¼ŒåŠ å…¥ä»·æ ¼è¯·è”ç³»æœåŠ¡ç®¡ç†éƒ¨ã€‚');
            //     }else{
                //input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- æ²¡æœ‰ç»­ç­¾æŠ¥ä»·æƒé™ï¼Œæˆ–者还没到续签时间。');
                rtn = false;
            }
            //     }
            //     System.debug(LoggingLevel.INFO, '*** this.contract.Open_RenewalQuotation__c: ' + this.contract.Open_RenewalQuotation__c);
            //     System.debug(LoggingLevel.INFO, '*** : input.rec.CurrentContract_F__r.VM_Contract_Check__c' + input.rec.CurrentContract_F__r.VM_Contract_Check__c);
            //     System.debug(LoggingLevel.INFO, '*** monthCon: ' + monthCon);
            //     //input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- æ²¡æœ‰ç»­ç­¾æŠ¥ä»·æƒé™ï¼Œæˆ–者还没到续签时间。');
            //     rtn = false;
            // }
            /*if (input.rec.CurrentContract_F__r.Gurantee_Renew_startDate__c > Date.today()) {
                input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- ç¬¬ä¸€ä¸ªè®¾å¤‡ç»“束后可以制作报价。');
                rtn = false;
@@ -3993,6 +4135,7 @@
    public class AssetInfo {
    // æ–°åˆåŒå¤‡å“ç¡®ä¿æä¾› å½“前标记
    public Boolean etGFlg {get; set;}
    public String ISStandardPricing{get; set;}
    public Integer lineNo {get; private set;}
    public Decimal Repair_Price_Auto {get; set;}
    public String Agreed_Date{get; set;}
@@ -4056,9 +4199,10 @@
        // add by fxk 2021/9/9 æŽ§åˆ¶ç‚¹æ£€å¯¹è±¡æ˜¯å¦å¯é€‰ End
    }
    // é¸æŠžã•れた用(非Manual)
    public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae,Maintenance_Contract_Estimate__c estimate, Map<String,repair__c> assNewRepMap) {
    public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae,Maintenance_Contract_Estimate__c estimate) {
        this.lineNo = lineNo;
        this.rec = record;
        this.ISStandardPricing = mcae.IS_StandardPricing__c;
        this.estimate = new Maintenance_Contract_Estimate__c();
        this.estimate.IS_Reduced_price_approval__c = estimate.IS_Reduced_price_approval__c;
        //   (2022å¹´12月上线)故障品加费 start
@@ -4104,7 +4248,7 @@
            //(2022å¹´12月上线)故障品加费 ç¬¬ä¸‰æ–¹å›žå½’
            Third_Party_Return__c = mcae.Third_Party_Return__c
            );
         if ((this.mcae.Repair_Price__c==null&&this.Repair_Price_Auto!=null)||(this.estimate.IS_Reduced_price_approval__c == '否')) {
         if ((this.mcae.Repair_Price__c==null&&this.Repair_Price_Auto!=null&&this.rec.Reson_Can_not_Warranty__c!=null&&this.rec.Reson_Can_not_Warranty__c.indexof('弃修')!=-1)||(this.estimate.IS_Reduced_price_approval__c == '否')) {
            this.mcae.Repair_Price__c = this.Repair_Price_Auto;
        }
        if (this.estimate.IS_Reduced_price_approval__c=='是'||this.estimate.IS_Reduced_price_approval__c==null) {
@@ -4142,6 +4286,7 @@
    public AssetInfo(Integer lineNo, Maintenance_Contract_Asset_Estimate__c mcae) {
        this.lineNo = lineNo;
        this.rec = null;
        this.ISStandardPricing = mcae.IS_StandardPricing__c;
        this.mcae = new Maintenance_Contract_Asset_Estimate__c(
            //                id = mcae.Id,             // æœ¬å½“にいらないの? ã‚»ãƒƒãƒˆã—たら、新規権限がなくでも、更新できます。後藤さんに確認した、なくでもいいです。
            isNew__c = mcae.IsNew__c,
@@ -4196,11 +4341,6 @@
        this.lineNo = lineNo;
        this.rec = record;
        //   (2022å¹´12月上线)故障品加费 start
        // if (record.Return_Without_Repair__r.Agreed_Date__c!=null) {
        //     this.Agreed_Date = '不为空';
        // }else{
        //     this.Agreed_Date = '为空';
        // }
        if (record.Return_Without_Repair__r.Repair_List_Price_formula__c!=null) {
            this.Repair_Price_Auto = record.Return_Without_Repair__r.Repair_List_Price_formula__c;
        }
@@ -4213,34 +4353,34 @@
        this.proSerialName = record.Name;
        this.proSerialNumber = record.SerialNumber;
    }
    public AssetInfo(Integer lineNo, Asset record, Map<String,repair__c> assNewRepMap) {
        this.lineNo = lineNo;
        this.rec = record;
        //   (2022å¹´12月上线)故障品加费 start
        // if (record.Asset_situation__c == '修理中' && record.Return_Without_Repair__r.Agreed_Date__c!=null) {
        //     this.Agreed_Date = '不为空';
        // }
        // if (record.Asset_situation__c == '修理中' && record.Return_Without_Repair__r.Agreed_Date__c==null) {
        //     this.Agreed_Date = '为空';
        //     if (assNewRepMap.get(record.id)!=null) {
        //          this.Repair_Price_Auto = assNewRepMap.get(record.id).Repair_List_Price_formula__c;
        //     }
        // }
        // if (record.Return_Without_Repair__r.Repair_List_Price_formula__c!=null&&record.Asset_situation__c != '修理中') {
    // public AssetInfo(Integer lineNo, Asset record) {
    //     this.lineNo = lineNo;
    //     this.rec = record;
    //     //   (2022å¹´12月上线)故障品加费 start
    //     // if (record.Asset_situation__c == '修理中' && record.Return_Without_Repair__r.Agreed_Date__c!=null) {
    //     //     this.Agreed_Date = '不为空';
    //     // }
    //     // if (record.Asset_situation__c == '修理中' && record.Return_Without_Repair__r.Agreed_Date__c==null) {
    //     //     this.Agreed_Date = '为空';
    //     //     if (assNewRepMap.get(record.id)!=null) {
    //     //          this.Repair_Price_Auto = assNewRepMap.get(record.id).Repair_List_Price_formula__c;
    //     //     }
    //     // }
    //     // if (record.Return_Without_Repair__r.Repair_List_Price_formula__c!=null&&record.Asset_situation__c != '修理中') {
    //     //     this.Repair_Price_Auto = record.Return_Without_Repair__r.Repair_List_Price_formula__c;
    //     // }
    //     if (record.Return_Without_Repair__r.Repair_List_Price_formula__c!=null) {
        //     this.Repair_Price_Auto = record.Return_Without_Repair__r.Repair_List_Price_formula__c;
        // }
        if (record.Return_Without_Repair__r.Repair_List_Price_formula__c!=null) {
            this.Repair_Price_Auto = record.Return_Without_Repair__r.Repair_List_Price_formula__c;
        }
        //   (2022å¹´12月上线)故障品加费 end
        this.isManual = false;
        this.rec_checkBox_c = false;
        this.orgPrice = record.Maintenance_Price_Month__c;
        this.orgPrice12 = this.orgPrice * 12;
        this.etGFlg = record.EquipmentGuaranteeFlg__c;
        this.proSerialName = record.Name;
        this.proSerialNumber = record.SerialNumber;
    }
    //     //   (2022å¹´12月上线)故障品加费 end
    //     this.isManual = false;
    //     this.rec_checkBox_c = false;
    //     this.orgPrice = record.Maintenance_Price_Month__c;
    //     this.orgPrice12 = this.orgPrice * 12;
    //     this.etGFlg = record.EquipmentGuaranteeFlg__c;
    //     this.proSerialName = record.Name;
    //     this.proSerialNumber = record.SerialNumber;
    // }
    }
    
    WebService static String pageDecide(String strId) {
force-app/main/default/classes/SelectAssetEstimateVMControllerTest.cls
@@ -210,6 +210,7 @@
            Apexpages.currentPage().getParameters().put('id', contactEsti1.Id);
            controller = new SelectAssetEstimateVMController();
            controller.init();
            controller.test();
             //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
            // System.assertEquals(5, controller.productCount2);
            //因为默认查询的保有设备类型为主机
force-app/main/default/classes/SetOlympusCalendarWorkDayBatch.cls
@@ -1,6 +1,10 @@
global without sharing class SetOlympusCalendarWorkDayBatch implements Database.Batchable<sObject>, Database.Stateful {
    private final Integer DAYCOUNT = 30;
    // 20230224 ljh è¿›å£å•证优化日历 start
    // private final Integer DAYCOUNT = 30;
    private final Integer DAYCOUNT_AFTER = 60;
    private final Integer DAYCOUNT_BEFORE = 30;
    // 20230224 ljh è¿›å£å•证优化日历 start
    public List<String> emailMessages = new List<String>();
    private Integer totalCount = 0; // æ€»ä»¶æ•°
    private Integer failedCount = 0;
@@ -51,6 +55,38 @@
                , After_28_WorkDay__c
                , After_29_WorkDay__c
                , After_30_WorkDay__c
                // 20230224 ljh add start
                , After_31_WorkDay__c
                , After_32_WorkDay__c
                , After_33_WorkDay__c
                , After_34_WorkDay__c
                , After_35_WorkDay__c
                , After_36_WorkDay__c
                , After_37_WorkDay__c
                , After_38_WorkDay__c
                , After_39_WorkDay__c
                , After_40_WorkDay__c
                , After_41_WorkDay__c
                , After_42_WorkDay__c
                , After_43_WorkDay__c
                , After_44_WorkDay__c
                , After_45_WorkDay__c
                , After_46_WorkDay__c
                , After_47_WorkDay__c
                , After_48_WorkDay__c
                , After_49_WorkDay__c
                , After_50_WorkDay__c
                , After_51_WorkDay__c
                , After_52_WorkDay__c
                , After_53_WorkDay__c
                , After_54_WorkDay__c
                , After_55_WorkDay__c
                , After_56_WorkDay__c
                , After_57_WorkDay__c
                , After_58_WorkDay__c
                , After_59_WorkDay__c
                , After_60_WorkDay__c
                // 20230224 ljh add end
                , Before_1_WorkDay__c
                , Before_2_WorkDay__c
                , Before_3_WorkDay__c
@@ -82,8 +118,12 @@
                , Before_29_WorkDay__c
                , Before_30_WorkDay__c
             FROM OlympusCalendar__c
            WHERE Before_30_WorkDay__c = null
               OR After_30_WorkDay__c = null
            // 20230224 ljh update start
               // OR After_30_WorkDay__c = null
            OR After_60_WorkDay__c = null
            // 20230224 ljh update end
            ]);
    }
@@ -119,7 +159,10 @@
                            // å› ä¸ºå­—段是从1开始所得所以直接用g
                            oc.put('After_' + g + '_WorkDay__c', olcList[j + g - 1].Date__c);
                            // å› ä¸ºä»Ž1开始所以不需要减1
                            if (g == DAYCOUNT) {
                            // 20230224 ljh update start
                            // if (g == DAYCOUNT) {
                            if (g == DAYCOUNT_AFTER) {
                            // 20230224 ljh update end
                                break;
                            }
                        }
@@ -129,7 +172,10 @@
                            // å› ä¸ºä¸Šé¢ä¸Šå¤§äºŽçš„判断。所以前一天可能和日历日期是同一天。所以需要加if文
                            if (olcList[j - g].Date__c < oc.Date__c) {
                                oc.put('Before_' + k + '_WorkDay__c', olcList[j - g].Date__c);
                                if (k == DAYCOUNT) {
                                // 20230224 ljh update start
                                // if (k == DAYCOUNT) {
                                if (k == DAYCOUNT_BEFORE) {
                                // 20230224 ljh update end
                                    break;
                                }
                                k ++;
force-app/main/default/classes/StraightBackAddressController.cls
@@ -145,6 +145,12 @@
                    }
                }else if('返送办事处'.equals(pc.Returns_Product_way__c)){
                    optionAddressClassification.Address_Classification__c = '办事处';
                //
                }else if ('备品中心'.equals(pc.Returns_Product_way__c)) {
                    optionAddressClassification.Address_Classification__c = '备品';
                //
                }else{
                    //获取当前修理的返送经销商
                    if(!String.isBlank(pc.Dealer__c) && '返送经销商'.equals(pc.Returns_Product_way__c)){
@@ -349,18 +355,19 @@
                    tableData.add(new AddressData(accoutList[0],'none','inline','none','医院'));
                }
            }
            //办事处
            /*if('办事处'.equals(typeText)){
                String AccountOfficeSql = makeTextAccOfficeSql();
                //获取地址信息
                List<Account> accDataList = Database.query(AccountOfficeSql);
                if(accDataList != null && accDataList.size() > 0){
                    for(Integer i = 0;i<accDataList.size();i++){
                        indexCou++;
                        tableData.add(new AddressData(accDataList[i],'none','办事处'));
                    }
                }
            }*/
            // //备品:
            // if(('备品'.equals(typeText))){
            //     //HP_ID__c  åŒ»é™¢id
            //     typeSearchId = pc.HP_ID__c;
            //     String AccountSql = makeTextAccountSql(pc.HP_ID__c);
            //     //获取地址信息
            //     List<Account> accoutList = Database.query(AccountSql);
            //     if(accoutList != null && accoutList.size() > 0){
            //         indexCou++;
            //         tableData.add(new AddressData(accoutList[0],'none','inline','none','备品'));
            //     }
            // }
            //经销商:
            //1:如果查到多条经销商,并且在地址中查到有数据,只显示地址数据,如果地址数据没查不到,就不显示,
            //2:如果查到有一条经销商,那么第一行就是此经销商数据,从第二行开始为地址数据
@@ -390,6 +397,8 @@
                    //办事处的地址不可修改
                    
                    if(dataList[i].Address_Classification__c == '办事处'){
                        tableData.add(new AddressData(dataList[i],'none','none','inline'));
                    }else if (dataList[i].Address_Classification__c == '备品'){
                        tableData.add(new AddressData(dataList[i],'none','none','inline'));
                    }else{
                        //只能改自己创建的地址数据,系统管理员、GPI_系统管理员New æ²¡é™åˆ¶
@@ -601,11 +610,34 @@
    //查询修理表数据
    private String makeTextRepairSql(String uuid){
        String RepairSql = 'SELECT ID,NAME,HP_ID__c,HP_Name__c,Delivered_Product__c,FSE_ApplyForRepair_time__c,SAP_Transfer_time__c,Dealer__c,Dealer__r.Name,Returns_Product_way__c,Address_Type_Index__c,AWS_Data_Id__c FROM Repair__c where id = \''+RepairId+'\'';
        String RepairSql = 'SELECT ID,NAME,HP_ID__c,HP_Name__c,Delivered_Product__c,FSE_ApplyForRepair_time__c,SAP_Transfer_time__c,Dealer__c,Dealer__r.Name,Returns_Product_way__c,Address_Type_Index__c,AWS_Data_Id__c,Incharge_Staff__r.UserRole.name,Incharge_Staff__r.Branch__c,Incharge_Staff__r.Profile.name FROM Repair__c where id = \''+RepairId+'\'';
        return RepairSql;
    }
    //查询地址表数据
    private String makeTextAddressSql(String typeSearchId) {
        // DB202212270703 å¤‡å“ä¿®ç†ç›´è¿”地址项目导入 start
        String beipCenter = '';
        if (pc.Returns_Product_way__c == '备品中心') {
            if (pc.Incharge_Staff__r.Profile.name.startsWith('2B2')) {
                if (pc.Incharge_Staff__r.Branch__c == '北京') {
                    beipCenter = '北京备品中心';
                }else if (pc.Incharge_Staff__r.Branch__c == '上海') {
                    beipCenter = '华东备品中心';
                }else if (pc.Incharge_Staff__r.Branch__c == '广州') {
                    beipCenter = '广州备品中心';
                }
            }else if (pc.Incharge_Staff__r.UserRole.name == 'CTEC教育本部') {
                if (pc.Incharge_Staff__r.Branch__c == '北京') {
                    beipCenter = '北京C-TEC';
                }else if (pc.Incharge_Staff__r.Branch__c == '上海') {
                    beipCenter = '上海C-TEC';
                }else if (pc.Incharge_Staff__r.Branch__c == '广州') {
                    beipCenter = '广州C-TEC';
                }
            }
        }
        // DB202212270703 å¤‡å“ä¿®ç†ç›´è¿”地址项目导入 end
        // WLIG-CCX4BB ã€å§”托】修理直返收货地址功能改造 thh 20220513 start 
        // String AddressSql = 'SELECT AWS_Data_Id__c,ID,Address_Classification__c,Customer__c,Customer__r.Name,Customer__r.Type,Customer__r.RecordTypeId,Contacts__c,Contacts__r.Name,Contacts__r.AWS_Data_Id__c,ContactName__c,Telephone__c,ContactName_Encrypted__c' //zhj æ–°æ–¹æ¡ˆæ”¹é€  å޻除Encrypted__c 2022-12-05
        //                 +',Province__c,Province__r.Name,City__c,City__r.name,Detailed_Address__c,Create_Contacts__c,ZipCode__c,CreatedByid,Detailed_Address_Encrypted__c,Telephone_Encrypted__c,ZipCode_Encrypted__c,Contacts__r.LastName_Encrypted__c'
@@ -627,6 +659,12 @@
            if('办事处'.equals(typeText)){
                AddressSql += ' and Address_Classification__c LIKE \'%' + typeText.trim() + '%\'' ;
            }
            if('备品'.equals(typeText)){
                AddressSql += ' and Address_Classification__c LIKE \'%' + typeText.trim() + '%\'' ;
                // if (String.isNotBlank(beipCenter)) {
                //     AddressSql += ' and Beipin_Center__c = \'' + String.escapeSingleQuotes(beipCenter) +'\'' ;
                // }
            }
            if('经销商'.equals(typeText)){
                if(String.isBlank(typeSearchId)){
                    AddressSql += ' and Address_Classification__c LIKE \'%' + typeText.trim() + '%\'' ;
force-app/main/default/classes/TenderDeleteControllerTest.cls
@@ -54,7 +54,7 @@
        opp.Name                = 'GZ-SP-NFM007_1';
        opp.Trade__c            = '内貿';
        opp.StageName           = '引合';
        opp.CloseDate           = date.newinstance(2022, 11, 30);
        opp.CloseDate           = date.newinstance(2025, 11, 30);
        opp.Stock_apply_status__c = '申请中';
        opp.Whether_Bidding__c = '否';
        insert opp;
force-app/main/default/classes/TenderDeleteLwcController.cls
@@ -113,7 +113,7 @@
        }
        if (String.isNotBlank(TenInfo.Retain_Tender__c)&&String.isNotBlank(TenInfo.ProjectId__c)&&String.isNotBlank(TenInfo.InfoId__c)) {
            // è°ƒç”¨æŽ¥å£
            // NFM504Controller.sendRequest(TenInfo.Id);
            NFM504Controller.sendRequest(TenInfo.Id);
        }
        // System.debug('1111111122222' + SaveErrorflag);
force-app/main/default/classes/UpdateUserTextColBatch.cls
@@ -32,7 +32,7 @@
     * startには、queryを実行、ユーザーを検索
     */
    global Database.QueryLocator start(Database.BatchableContext BC) {
        String query = 'Select Id, Fiscal_Start_Date__c, Fiscal_Start_Date_from_May__c, Use_Start_Date__c from User';
        String query = 'Select Id, Fiscal_Start_Date__c, Fiscal_Start_Date_from_May__c, Use_Start_Date__c, Maternity_leave_StartDate__c, Maternity_leave_EndDate__c from User';  //20230303 lt DB202302421915 add  , Maternity_leave_StartDate__c, Maternity_leave_EndDate__c
        if (String.isBlank(testUserId) == false) {
            query += ' where Id =\'' + testUserId + '\'';
        }
@@ -48,7 +48,36 @@
                fromDate4 = usr.Use_Start_Date__c;
            }
            //20230303 lt DB202302421915 start
            // usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, toDate));
            Date mlStartDate = usr.Maternity_leave_StartDate__c;
            Date mlEndDate = usr.Maternity_leave_EndDate__c;
            System.debug('---lt123---usr.Fiscal_Start_Date__c---'+usr.Fiscal_Start_Date__c);
            System.debug('---lt123---usr.Use_Start_Date__c---'+usr.Use_Start_Date__c);
            System.debug('---lt123---fromDate4---'+fromDate4);
            System.debug('---lt123---toDate---'+toDate);
            System.debug('---lt123---mlStartDate---'+mlStartDate);
            System.debug('---lt123---mlEndDate---'+mlEndDate);
            if(mlStartDate == null && mlEndDate == null){
            usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, toDate));
            }
            else if(mlStartDate != null && mlEndDate == null && mlStartDate > fromDate4){
                usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, mlStartDate));
            }
            else if(mlStartDate != null && mlEndDate == null && mlStartDate <= fromDate4){
                usr.Fiscal_Workdays__c = 0;
            }
            else if(mlStartDate != null && mlEndDate != null && mlStartDate > fromDate4){
                usr.Fiscal_Workdays__c = decimal.valueOf(getOlympusWorkDayCount(fromDate4, mlStartDate)) + decimal.valueOf(getOlympusWorkDayCount(mlEndDate, toDate));
            }
            else if(mlStartDate != null && mlEndDate != null && mlStartDate <= fromDate4){
                usr.Fiscal_Workdays__c = 0 + decimal.valueOf(getOlympusWorkDayCount(mlEndDate, toDate));
            }
            //20230303 lt DB202302421915 end
            /***** CHAN-AZABMC ****** 2018/06/01 ********
             **** åˆ°æœ¬æœˆçš„工作日(今年度)
             **** åˆ°æœ¬å‘¨çš„工作日(今年度)
force-app/main/default/classes/WeeklyReportCmp.cls
@@ -662,12 +662,15 @@
                }
                // ç»é”€å•†åŒ»é™¢çš„ocsm医院id的list
                List<String> ahlOcsmIdList = new List<String>();
                System.debug('ahlNameList = ' + ahlNameList);
                List<Agency_Hospital_Link__c> ahlList = [select id,name,Hospital__c,MaxActivityDate__c from Agency_Hospital_Link__c where name = :ahlNameList and Agency_Campaign_Obj__c = true];
            
                System.debug('ahlList.size() = ' + ahlList.size());
                for(Agency_Hospital_Link__c ahl : ahlList){
                    ahlOcsmIdList.add(ahl.Hospital__c);
                }
                List<Agency_Contact__c> doctor2list = new List<Agency_Contact__c>();
                System.debug('ahlOcsmIdList = ' + ahlOcsmIdList);
                if(!Test.isRunningTest())
                    doctor2list = [select id,Name,Doctor_Division1__c,Type__c,Agency_Hospital__c,AWS_Data_Id__c FROM Agency_Contact__c WHERE Hospital_ID18__c= :ahlOcsmIdList order by Name];     //zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-21 åŽ»æŽ‰Name_Encrypted__c
                
@@ -675,6 +678,7 @@
                    return errorMag;
                }
                String doctor2listStr = JSON.serialize(doctor2list);
                System.debug('doctor2list = ' + doctor2list);
                return doctor2listStr;  
            }
        }catch(Exception e){
force-app/main/default/classes/XinDailyReportController.cls
@@ -4024,21 +4024,23 @@
        if (month < 4) {
            year -= 1;
        }
        Date dateFinalStartDate = Date.newInstance(year, 4, 1);
        system.debug('===DepIDList=='+DepIDList+'==dateFinalStartDate==='+dateFinalStartDate);
        string yearP = year - 1868 + 'P';
        Map<ID,Account> DepartMap = 
            New Map<ID,Account> ([select id, ParentId 
                                    from Account 
                                    where id in: DepIDList 
                                    and Parent.CreateDate__c <: dateFinalStartDate
                                    and Hospital__r.OCM_Category__c like 'H%'
                                    and Hospital__r.OCM_Category__c like '%H%'
                                    and Parent.RecordType.DeveloperName in 
                                    ('Department_Class_GI','Department_Class_BF',
                                    'Department_Class_GS','Department_Class_URO',
                                    'Department_Class_GYN')]); 
        
        Map<Id, AggregateResult> ANCLMap = new Map<Id, AggregateResult> ();
        system.debug('===DepartMap=='+DepartMap);
        if(DepartMap != null && DepartMap.size() > 0 ){
            List<ID> DCIDList = new List<ID>();
            for(Account temDep: DepartMap.values()){
@@ -4057,11 +4059,11 @@
                    or URO_KPI_input__c ='登录完毕')
                    group by Account__c
            ]);
        system.debug('===activities=='+activities+'==DepartMap=='+DepartMap+'====='+ANCLMap);
            for (Integer i = 0; i < activities.size(); i++) {
                Activity a = activities[i];
                if (a.act.whatid__c != null && a.act.whatid__c.startsWith('001')) {
                   system.debug('进来了'+a.act.whatid__c);
                    if(DepartMap.get(a.act.whatid__c)!=null && 
                        ANCLMap.get(DepartMap.get(a.act.whatid__c).ParentId) ==null){
                        IsAlertInputDep = true;
force-app/main/default/classes/eSignAgencyPageControllerTest.cls
@@ -1,6 +1,13 @@
@isTest
private class eSignAgencyPageControllerTest {
    @TestSetup
    static void makeData(){
        List<String> strList= new List<String>();
        strList.add('Document');
        TestDataUtility.CreatePIPolicyConfigurations(strList);
    }
    static testMethod void testMethod1() {
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
@@ -173,9 +180,9 @@
        String fileId = String.valueOf(attach1.Id);
        String body1 = '%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj%2F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj%2FwAARCALuAegDASIAAhEBAxEB%2F8QAHAAAAgIDAQEAAAAAAAAAAAAAAwQCBQABBgcI%2F8QARRAAAgEDAwIFAgMGBAUCBQQDAQIDAAQRBRIhMUEGEyJRYTJxFIGRByNCUqHBFTOx0SRDYuHwcvEWNFNjggglc5ImotL%2FxAAbAQACAwEBAQAAAAAAAAAAAAADBAECBQAGB%2F%2FEADMRAAICAQQCAQQABQMEAwEAAAECAAMRBBIhMRNBIgUyUWEUI0JxgQYzkRWhsdEkUsHw%2F9oADAMBAAIRAxEAPwDwgQg8kc1IRjB4o7DHSgvKFB96yASZ63EE6gGtNgLQXnzmoebRNsuqD3Dq3fijxeUxxICM9xSQkrYkqCpjAWvEsmg2epG3LS7DFBSUjuRRBKCfVzUYIg2rB%2B2SNDbk0XaGwVPFZ5RLVAIlFqdzgCBjiMj9Mir%2By%2FcxbAcA9ar7WMJTikk0vc27iel%2BmaYacbj3Gi%2FtWg5oSDJwaOI%2BKXOBN5SzcyPWoScjFEUgVAjJzXCQ4yJX3ScfalRLtcU9fEAGqgHLinKxlZ53WN47MLOktZAyimQaq7J%2BFqwVvVSbrgz0elu3IMyx09lIZWPGanBA9zcBYslc0vp8RmkIGcZrq7CzMUWYkOcdaSusFf8AeZeqYmwzECwQCKPt9VRSwlvXywOAMCrfS7GMzBZCMtz96NcEWdyQhDLntWebjkhYpu9SrbS4oWAlUEjGasLq0S3tYXjwEbkgVHU7xLpt4GwgAE%2FFINdeYqqrF1XAA%2BKgB2wTK5JwZcWs6S6e0Z459P5UsLxrJ2YHlhtwPbOaRjufMhm2cMvCj5qOmDiW4uSHK8bakVAA5ltpkptRXznk6O%2Bc0lK5mcFY%2BTzk1jKnmPKw9Lsdo9qNKRDHu%2BOBR1AU8CGCcRc%2BYqkSPge1QtrX8Q4YjEa1KOF5m3SHC1bJEItIR1%2BqViF%2BwqWfbwJJAGBK1rYxNgjMZokatCfMX1KfTzVjdQs8EBxjfHu%2FMCkmV4Yxu5QnkVG%2FcJHBGYWO5COApKGslK7t7chjurVxGmPMUZUgUxaWayyLBK21CCyt80I4HMqwwMyN9cJdOpcYUDH59TSt9psPkI6kbn6imri3ELPFI4LDkUi%2B7AAY%2FGalAeCsjuVsmkYQuPfBqK2p27SMYq4M5FsUK985FbiCSLzjAFENje4VOJWKjIqqwyCMUheRukLRA%2Bhj0q%2FeISRMUxlRwKq7iNuN4980Suzmc6gymSHfHtHuSKXltQC27r1NWU6GMgp%2FShFS4LEcmnFcjmKWVxRrXyrfB6kZNZZQAcnjn%2BlWU0W6MHHWpW1rvyahrPjBbB7kraZrWUNH0PWrGO9jnk2TYwOi%2FNJvDtiY%2FwAtJyIQiPnDdTQcB%2BZY5lhfxLKSyZ%2BB%2FvVK6BXYNyadiuGTKk9e9bEYnbj8zVkJSQTnuLw2%2Begp%2B2tCZBxTFnb%2FABxVrDCkSl5MKqjJJ7UCy4ngQbj8QUNphMtwO9VGtatHagw2xDS9Cewoeu6%2F5gaCxOEHDP71zBOSSxyT3o%2Bn0x%2B%2ByOUaPd8rJtsvIXc7mJyTUsjHNDLYqO%2BnsZmmGVBgSbyYWk5W5NEduKUlYk0VFiWpuMhI9D9TdKMkQ6saIAAeOKLuA6md42c5MhFGf4qyi1lUJzGlQKMQNzKFHB5qtdyzVAyFzk1HdzTapieZ3CT61o8VHdWZq2J27MkDUqgKnnNQZZTJg5xUhQgampBFVMKphVcqRg0ylyMeoc0iWxWg1QVBhUvNZ4lnHOueKeikBHFUKueKPHOVI5oLVZmjp9eV7nQQ4LUfNVllchiBT2%2FFJupBxPR6a9XTImSDnionhD71MNnrS88gANcozxLWsFUtK7UpeAKSjGWqN3Jvm%2B1EgHIp8Das8i9vmuJlnbAjaafBpSBfRTAPppN%2BTPS6b4LOq8IwrNHdk43LgjNdLaXy2zOCA2egFcn4RR5GuNrbUwN1dNP5dqilRkn3rG1K5sIil3ycyQeZ5A30IDxioS3B5VMs2etL%2BfLccAHmnra1EMMk0v1AHFBwB3KbQO5SziWWXZuOOM0a2RoUKpjoW%2FKiRr%2B7Zv4j1ocq7yvOD0%2FKjbs8S%2B2AjLQFpI%2FUpO7NDgvfLnLcndwRTEOFk2qCCp71qRI%2FxzIowGOR8cVcEc5lB3iEjxcTFyCsfUCtzjfcxoemN1MwLC0oj34PQYpW45nBTnb6TQweYVYWZmjG3GB9P6jNORkS2NvESd6MSPtSMCtM0Yb1eZ0%2BD0rp44YbGWCFVWWYnLZ7DFCsbbge4OxsGJ3szbIkRMIiCPJHXPWkLiVJpXRB6QSoFX0zQzW5kRQJEba69vvXOSqIJQy5Yf8Aaq0nPBkIMiG05hLaTQSDkcA0J5Hd1EpCBCKNYKEhZ5Mqp%2FqaFexrM%2FmHgHpVxgsfxCbcCL6k7S3pGeFACn3FCnmMsaKF9SdT8VYPapGsYPLsu7J7Clp4GiXehyM5IogYHAkLzFQ7R8ZyPY1sSIehKmgS73jaQZzmtRqW5q5AhSojkcjQ%2FwDUDUPMErMCB15%2BKExdOc5FaBVz7NVQsrgiQktlMhUdKD%2BG5IphCyyNu5BopdC%2FFXDMJVlibLtTaaD5rxZ296dlYYKnv3pWaPMWR1zRFbPBgDXIMzcAnINCfLSFSeooLSsGwakXPnJ89aIFxBkTFTJyexxTlmmHK%2B4oIGXI7ZqxtgqDzHIAA5Jodh9CAb9R%2BDy4YjLKQqqMmuV1zWXvXMcLFLcdB%2FNQ9a1R7uQxREiAHp%2FN8mqdzzjNH0%2BmCfJu4%2Fp6NvybuYWqDPjNRd8CgM9OhMwr3AQpfmsBzQd4qSMCauVgRaDNyHaOaUeUA8UO6uC8hVOgoaxsRzRlTA5mbdqS7YQQnnEnvRUkUDLHmoRwcVI24Irjt6kILQMyRu46ygtae1ZXYSQW1P4lSGqQOaBk1IMadxPNiyGrYqAPFbBquIVWkw2KkDmh5rY4qCIQNCc1tTUQRWVXEIGkzWq1mt5qCJbOZsHFS3VCt10sGh4ZSjAg1eQSiWBWHXvXOg4p7Trgq%2B0n0nigXV7hmaf0%2FVmt9p6MuVekL%2BbCk0cnBxVVqcnIFBpT5TS%2BoagrSYmDuYk09a8mkI%2BtP2vBpqzqYWj5YS4t%2FpqbcZqFv0ojDLVnnuevT7BOj8LqVtp2BxkirrzGuWXzDwvAqp8OjbYkYySxq0jiY4C8Z7msu85cxcy0REUAqOBxUL2YmLys8k4oCSSQt5L84PNTUGSVpD0HSlduOZQCR8tvLKrngZNV8YZrkKTyvWrDzts6Rno55qN2qQauBwqtGOe2TVlJHEk8RGSXZMzuMEnnnisWLzdU2xsGwpk4%2FXFP3enR3FqQrEOAGHt9qBp9uli8kzby5G0cdAQaIHBH7lCQRx3CSxJhXtzggE5Pt1oVuCoVmBJbtRXlMnlpEowo2kDvRCo%2FdhiAdoxjpxVMkDEsuRwYrBMYLk%2Fyq3%2Fer%2B2t%2FwAZK03mHJw457HqKoJIn3MqAMGOf60O3acO4jZgI1JODjArmTeODOsTPM6Ag2QlO7Kn0n5Jqstybi6RH%2BjdnApSFp55NrFn%2Fjwf9ad0%2BN%2FxgYgqozzVCNoI9wqrhcyyuoRNPHbLwm7BNVmoB4HhU8gen86tLgn8RCz5VBzn3NIalB%2BIs2SJ%2FWkhce5qlZAIBnIeR%2BJG6uN6pGwIdQASandyrNZI4G1skE%2FFIafZXEtw7zyelV5Oeppq7jEdljd6vMH50XgMAJxVdwAktN078VA%2B447CqyZWiuTGRjYcGr21nFvZytnnJAH3qpjJe9M0w3KxyahCckmVw2SYnMTs9PStwMjEF%2BDTF2qh3Ef0nkUCKFpXCIMnFG3DE7HuFaF0RnzlaW2knKdasH8yKJ4pB2zzSNrIUl4AOfeuViRmVPUBI54z1oe5j9qfnjExKsu1qQlUxuVbtRUYEThz3F7iPd6l%2FOhxAmVSaYU4z81MRAOpFE3YGIJ6%2Fc3s2%2BqqzVL4sghRsIPqPvTOr3a28G0MN7f0FcjcXbO3H00zRQW%2BRi2Vrbc0bkmAOFoEk1KFzjmhs5p5a5WzWH1DvL80BpeaEzUJnooWIWakxkyk96Omdh560jHyQaO0uBiuKzq7uMtJiNUGTya20gA4FL7%2FAJrW6u2%2Fmd5gOFEMs5z1oqy80lU06VxUGcl7Ax5Jx3rKSJOayo2CGGsYSkJOa2DQw2TzUh1p%2BePDZhQxqatmgjrRF61UwysYQGp5yOKFUl6VWHUyYNSBqHapCohVaTrKxaw9aoTCibHSpVFakaiWEytxMVYGo5qVQRLKSDkS4STdGj%2FkaqtRbM%2FHSnLJ90bIarrps3BqlS4aPa27fSv7m4etWFuPUKQgHqqxgHqFRaZ2hHUtbccUTHqqMA9NEQZkFZ5PM9YBisTvvCmnh9MV5B6CCaeu7dEZccY7UTSJAukWUY4AUE%2FOTQb2bN3IwGQDWESzWEmZ6ZYnMDIC0hcnOec%2FbpW87YVC9P71KAFh8GoT5iyhHpard8S4PqKXJdZ4nUHKnP8AWmL9PxkzMnTcNvwO1WD2gmtlmjGR147HuKTKnzMqBuC5wP4h8fIqFfPU4W';
        eSignAgencyPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg','');
        eSignAgencyPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        //eSignAgencyPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        eSignAgencyPageController.deleteChunk(fileId);
        //eSignAgencyPageController.deleteChunk(fileId);
    }
    static testMethod void testMethod2() {
@@ -329,4 +336,31 @@
        eSignAgencyPageController.saveeSignFormEntry(eSignAgencyPageController.geteSigns('112233').eSignFormLineItems,eSignForm,'经销商收货',true,true,null);
        
    }
    static testMethod void testMethod3() {
        Test.startTest();
        eSignAgencyPageController.saveFile('1','2','3','4');
        Test.stopTest();
    }
    static testMethod void testMethod4() {
        Test.startTest();
        FileAddress__c FileName1 = new FileAddress__c();
        FileName1.FileName__c = 'ceshiyi1';
        FileName1.ViewLink__c = 'ceshiyi1';
        FileName1.ParentRecordId__c = '123456789';
        insert FileName1;
        eSignAgencyPageController.getFileds('123456789');
        Test.stopTest();
    }
    static testMethod void testMethod5() {
        Test.startTest();
        FileAddress__c FileName1 = new FileAddress__c();
        FileName1.FileName__c = 'ceshiyi1';
        FileName1.ViewLink__c = 'ceshiyi1';
        FileName1.ParentRecordId__c = '123456789';
        insert FileName1;
        eSignAgencyPageController.deleteFile(FileName1.Id);
        Test.stopTest();
    }
}
force-app/main/default/classes/eSignHospitalPageController.cls
@@ -299,4 +299,70 @@
        delete attachment;
    }
    //文件删除功能  ç²¾ç¢æŠ€æœ¯ thh 2021-09-26 end
    //获取AWS信息 zhj 2023-01-03 start
    @AuraEnabled
    public static ControllerResponse getAWS(String objectName){
        ControllerResponse res = new ControllerResponse();
        try{
            res.Data = JSON.serialize(PIHelper.getPIIntegrationInfo(objectName));
            res.IsSuccess = true;
        }catch(Exception e){
            res.IsSuccess = false;
            res.Message = e.getMessage();
        }
        return res;
    }
    //获取AWS信息 zhj 2023-01-03 end
    //AWS改造文件上传 deloitte zhj 2023-01-03 start
    @AuraEnabled
    public static Id saveFile(String fileName,String key,String transId,String parentId){
        FileAddress__c file = new FileAddress__c();
        PIHelper.PIIntegration pI=PIHelper.getPIIntegrationInfo('Document');
        // å޻除filename里得“&” bysushanhu 20220414
        fileName = fileName.remove('&');
        file.DownloadLink__c =pI.undeleteUrl+key+'&fileName='+fileName;
        file.FileName__c =fileName;
        file.ViewLink__c =pI.queryUrl+key;
        file.ParentRecordId__c =parentId;
        file.AWS_File_Key__c = key;
        insert file;
        return file.Id;
    }
    //AWS改造文件上传 deloitte zhj 2023-01-03 end
    //获取上传文件 deloitte zhj 2023-01-03 start
    public static List<FileAddress__c> getFileds(String parentId){
        // SWAG-C9S9P6 2022-05-25 ssm start
        // æ–‡ä»¶åœ°å€é‡Œå¢žåŠ æ‹›æ ‡é¡¹ç›®ä¸“ç”¨å­—æ®µï¼ˆä¿¡æ¯Id、项目阶段、更新日期)
        if(String.isNotBlank(parentId)){
            return [SELECT Id,ParentRecordId__c, FileName__c,DownloadLink__c,FileAddress__c.ViewLink__c,AWS_File_Key__c  //deloitte zhj é¢„览/下载 åŠ token 2022/12/01
                    // SWAG-C9S9P6 æ–°å¢žå­—段 start
                    , InfoId__c, InfoType__c, subInfoType__c, UpdateDate__c
                    // SWAG-C9S9P6 æ–°å¢žå­—段 end
                    FROM FileAddress__c where ParentRecordId__c=:parentId order by createddate desc];
        }
        return [SELECT Id, ParentRecordId__c,FileName__c,DownloadLink__c,FileAddress__c.ViewLink__c,AWS_File_Key__c  //deloitte zhj é¢„览/下载 åŠ token 2022/12/01
                // SWAG-C9S9P6 æ–°å¢žå­—段 start
                , InfoId__c, InfoType__c, subInfoType__c, UpdateDate__c
                // SWAG-C9S9P6 æ–°å¢žå­—段 end
                FROM FileAddress__c order by createddate desc limit 100];
        // SWAG-C9S9P6 2022-05-25 ssm end
    }
    //获取上传文件 deloitte zhj 2023-01-03 end
    //AWS文件删除功能  deloitte zhj 2022-01-03 start
    @AuraEnabled
    public static String deleteFile(String fileId){
        System.debug('fileId = ' + fileId);
        List<FileAddress__c> fList = [select id,AWS_File_Key__c from FileAddress__c where id =:fileId];
        String awsKey = '';
        if(fList != null && fList.size() > 0){
            awsKey = fList[0].AWS_File_Key__c;
            delete fList;
        }
        return awsKey;
    }
    //AWS文件删除功能  deloitte zhj 2022-01-03 end
}
force-app/main/default/classes/eSignHospitalPageControllerTest.cls
@@ -1,5 +1,13 @@
@isTest
private class eSignHospitalPageControllerTest {
    @TestSetup
    static void makeData(){
        List<String> strList= new List<String>();
        strList.add('Document');
        TestDataUtility.CreatePIPolicyConfigurations(strList);
    }
    static testMethod void testMethod1() {
        List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
        if (rectCo.size() == 0) {
@@ -172,8 +180,8 @@
        String fileId = String.valueOf(attach1.Id);
        String body1 = '%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj%2F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj%2FwAARCALuAegDASIAAhEBAxEB%2F8QAHAAAAgIDAQEAAAAAAAAAAAAAAwQCBQABBgcI%2F8QARRAAAgEDAwIFAgMGBAUCBQQDAQIDAAQRBRIhMUEGEyJRYTJxFIGRByNCUqHBFTOx0SRDYuHwcvEWNFNjggglc5ImotL%2FxAAbAQACAwEBAQAAAAAAAAAAAAADBAECBQAGB%2F%2FEADMRAAICAQQCAQQABQMEAwEAAAECAAMRBBIhMRNBIgUyUWEUI0JxgQYzkRWhsdEkUsHw%2F9oADAMBAAIRAxEAPwDwgQg8kc1IRjB4o7DHSgvKFB96yASZ63EE6gGtNgLQXnzmoebRNsuqD3Dq3fijxeUxxICM9xSQkrYkqCpjAWvEsmg2epG3LS7DFBSUjuRRBKCfVzUYIg2rB%2B2SNDbk0XaGwVPFZ5RLVAIlFqdzgCBjiMj9Mir%2By%2FcxbAcA9ar7WMJTikk0vc27iel%2BmaYacbj3Gi%2FtWg5oSDJwaOI%2BKXOBN5SzcyPWoScjFEUgVAjJzXCQ4yJX3ScfalRLtcU9fEAGqgHLinKxlZ53WN47MLOktZAyimQaq7J%2BFqwVvVSbrgz0elu3IMyx09lIZWPGanBA9zcBYslc0vp8RmkIGcZrq7CzMUWYkOcdaSusFf8AeZeqYmwzECwQCKPt9VRSwlvXywOAMCrfS7GMzBZCMtz96NcEWdyQhDLntWebjkhYpu9SrbS4oWAlUEjGasLq0S3tYXjwEbkgVHU7xLpt4GwgAE%2FFINdeYqqrF1XAA%2BKgB2wTK5JwZcWs6S6e0Z459P5UsLxrJ2YHlhtwPbOaRjufMhm2cMvCj5qOmDiW4uSHK8bakVAA5ltpkptRXznk6O%2Bc0lK5mcFY%2BTzk1jKnmPKw9Lsdo9qNKRDHu%2BOBR1AU8CGCcRc%2BYqkSPge1QtrX8Q4YjEa1KOF5m3SHC1bJEItIR1%2BqViF%2BwqWfbwJJAGBK1rYxNgjMZokatCfMX1KfTzVjdQs8EBxjfHu%2FMCkmV4Yxu5QnkVG%2FcJHBGYWO5COApKGslK7t7chjurVxGmPMUZUgUxaWayyLBK21CCyt80I4HMqwwMyN9cJdOpcYUDH59TSt9psPkI6kbn6imri3ELPFI4LDkUi%2B7AAY%2FGalAeCsjuVsmkYQuPfBqK2p27SMYq4M5FsUK985FbiCSLzjAFENje4VOJWKjIqqwyCMUheRukLRA%2Bhj0q%2FeISRMUxlRwKq7iNuN4980Suzmc6gymSHfHtHuSKXltQC27r1NWU6GMgp%2FShFS4LEcmnFcjmKWVxRrXyrfB6kZNZZQAcnjn%2BlWU0W6MHHWpW1rvyahrPjBbB7kraZrWUNH0PWrGO9jnk2TYwOi%2FNJvDtiY%2FwAtJyIQiPnDdTQcB%2BZY5lhfxLKSyZ%2BB%2FvVK6BXYNyadiuGTKk9e9bEYnbj8zVkJSQTnuLw2%2Begp%2B2tCZBxTFnb%2FABxVrDCkSl5MKqjJJ7UCy4ngQbj8QUNphMtwO9VGtatHagw2xDS9Cewoeu6%2F5gaCxOEHDP71zBOSSxyT3o%2Bn0x%2B%2ByOUaPd8rJtsvIXc7mJyTUsjHNDLYqO%2BnsZmmGVBgSbyYWk5W5NEduKUlYk0VFiWpuMhI9D9TdKMkQ6saIAAeOKLuA6md42c5MhFGf4qyi1lUJzGlQKMQNzKFHB5qtdyzVAyFzk1HdzTapieZ3CT61o8VHdWZq2J27MkDUqgKnnNQZZTJg5xUhQgampBFVMKphVcqRg0ylyMeoc0iWxWg1QVBhUvNZ4lnHOueKeikBHFUKueKPHOVI5oLVZmjp9eV7nQQ4LUfNVllchiBT2%2FFJupBxPR6a9XTImSDnionhD71MNnrS88gANcozxLWsFUtK7UpeAKSjGWqN3Jvm%2B1EgHIp8Das8i9vmuJlnbAjaafBpSBfRTAPppN%2BTPS6b4LOq8IwrNHdk43LgjNdLaXy2zOCA2egFcn4RR5GuNrbUwN1dNP5dqilRkn3rG1K5sIil3ycyQeZ5A30IDxioS3B5VMs2etL%2BfLccAHmnra1EMMk0v1AHFBwB3KbQO5SziWWXZuOOM0a2RoUKpjoW%2FKiRr%2B7Zv4j1ocq7yvOD0%2FKjbs8S%2B2AjLQFpI%2FUpO7NDgvfLnLcndwRTEOFk2qCCp71qRI%2FxzIowGOR8cVcEc5lB3iEjxcTFyCsfUCtzjfcxoemN1MwLC0oj34PQYpW45nBTnb6TQweYVYWZmjG3GB9P6jNORkS2NvESd6MSPtSMCtM0Yb1eZ0%2BD0rp44YbGWCFVWWYnLZ7DFCsbbge4OxsGJ3szbIkRMIiCPJHXPWkLiVJpXRB6QSoFX0zQzW5kRQJEba69vvXOSqIJQy5Yf8Aaq0nPBkIMiG05hLaTQSDkcA0J5Hd1EpCBCKNYKEhZ5Mqp%2FqaFexrM%2FmHgHpVxgsfxCbcCL6k7S3pGeFACn3FCnmMsaKF9SdT8VYPapGsYPLsu7J7Clp4GiXehyM5IogYHAkLzFQ7R8ZyPY1sSIehKmgS73jaQZzmtRqW5q5AhSojkcjQ%2FwDUDUPMErMCB15%2BKExdOc5FaBVz7NVQsrgiQktlMhUdKD%2BG5IphCyyNu5BopdC%2FFXDMJVlibLtTaaD5rxZ296dlYYKnv3pWaPMWR1zRFbPBgDXIMzcAnINCfLSFSeooLSsGwakXPnJ89aIFxBkTFTJyexxTlmmHK%2B4oIGXI7ZqxtgqDzHIAA5Jodh9CAb9R%2BDy4YjLKQqqMmuV1zWXvXMcLFLcdB%2FNQ9a1R7uQxREiAHp%2FN8mqdzzjNH0%2BmCfJu4%2Fp6NvybuYWqDPjNRd8CgM9OhMwr3AQpfmsBzQd4qSMCauVgRaDNyHaOaUeUA8UO6uC8hVOgoaxsRzRlTA5mbdqS7YQQnnEnvRUkUDLHmoRwcVI24Irjt6kILQMyRu46ygtae1ZXYSQW1P4lSGqQOaBk1IMadxPNiyGrYqAPFbBquIVWkw2KkDmh5rY4qCIQNCc1tTUQRWVXEIGkzWq1mt5qCJbOZsHFS3VCt10sGh4ZSjAg1eQSiWBWHXvXOg4p7Trgq%2B0n0nigXV7hmaf0%2FVmt9p6MuVekL%2BbCk0cnBxVVqcnIFBpT5TS%2BoagrSYmDuYk09a8mkI%2BtP2vBpqzqYWj5YS4t%2FpqbcZqFv0ojDLVnnuevT7BOj8LqVtp2BxkirrzGuWXzDwvAqp8OjbYkYySxq0jiY4C8Z7msu85cxcy0REUAqOBxUL2YmLys8k4oCSSQt5L84PNTUGSVpD0HSlduOZQCR8tvLKrngZNV8YZrkKTyvWrDzts6Rno55qN2qQauBwqtGOe2TVlJHEk8RGSXZMzuMEnnnisWLzdU2xsGwpk4%2FXFP3enR3FqQrEOAGHt9qBp9uli8kzby5G0cdAQaIHBH7lCQRx3CSxJhXtzggE5Pt1oVuCoVmBJbtRXlMnlpEowo2kDvRCo%2FdhiAdoxjpxVMkDEsuRwYrBMYLk%2Fyq3%2Fer%2B2t%2FwAZK03mHJw457HqKoJIn3MqAMGOf60O3acO4jZgI1JODjArmTeODOsTPM6Ag2QlO7Kn0n5Jqstybi6RH%2BjdnApSFp55NrFn%2Fjwf9ad0%2BN%2FxgYgqozzVCNoI9wqrhcyyuoRNPHbLwm7BNVmoB4HhU8gen86tLgn8RCz5VBzn3NIalB%2BIs2SJ%2FWkhce5qlZAIBnIeR%2BJG6uN6pGwIdQASandyrNZI4G1skE%2FFIafZXEtw7zyelV5Oeppq7jEdljd6vMH50XgMAJxVdwAktN078VA%2B447CqyZWiuTGRjYcGr21nFvZytnnJAH3qpjJe9M0w3KxyahCckmVw2SYnMTs9PStwMjEF%2BDTF2qh3Ef0nkUCKFpXCIMnFG3DE7HuFaF0RnzlaW2knKdasH8yKJ4pB2zzSNrIUl4AOfeuViRmVPUBI54z1oe5j9qfnjExKsu1qQlUxuVbtRUYEThz3F7iPd6l%2FOhxAmVSaYU4z81MRAOpFE3YGIJ6%2Fc3s2%2BqqzVL4sghRsIPqPvTOr3a28G0MN7f0FcjcXbO3H00zRQW%2BRi2Vrbc0bkmAOFoEk1KFzjmhs5p5a5WzWH1DvL80BpeaEzUJnooWIWakxkyk96Omdh560jHyQaO0uBiuKzq7uMtJiNUGTya20gA4FL7%2FAJrW6u2%2Fmd5gOFEMs5z1oqy80lU06VxUGcl7Ax5Jx3rKSJOayo2CGGsYSkJOa2DQw2TzUh1p%2BePDZhQxqatmgjrRF61UwysYQGp5yOKFUl6VWHUyYNSBqHapCohVaTrKxaw9aoTCibHSpVFakaiWEytxMVYGo5qVQRLKSDkS4STdGj%2FkaqtRbM%2FHSnLJ90bIarrps3BqlS4aPa27fSv7m4etWFuPUKQgHqqxgHqFRaZ2hHUtbccUTHqqMA9NEQZkFZ5PM9YBisTvvCmnh9MV5B6CCaeu7dEZccY7UTSJAukWUY4AUE%2FOTQb2bN3IwGQDWESzWEmZ6ZYnMDIC0hcnOec%2FbpW87YVC9P71KAFh8GoT5iyhHpard8S4PqKXJdZ4nUHKnP8AWmL9PxkzMnTcNvwO1WD2gmtlmjGR147HuKTKnzMqBuC5wP4h8fIqFfPU4W';
        eSignHospitalPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg','');
        eSignHospitalPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        eSignHospitalPageController.deleteChunk(attach1.Id);
        // eSignHospitalPageController.saveChunk(eSignForm.Id,'test01',body1,'image/jpeg',fileId);
        // eSignHospitalPageController.deleteChunk(attach1.Id);
    }
    static testMethod void testMethod2() {
@@ -326,4 +334,32 @@
        eSignHospitalPageController.geteSigns('112233');
        eSignHospitalPageController.saveeSignFormEntry(eSignHospitalPageController.geteSigns('112233').eSignFormLineItems,eSignForm,'医院收货',true,true,true,d,d,d,'222@qq.com');
    }
    static testMethod void testMethod3() {
        Test.startTest();
        eSignHospitalPageController.saveFile('1','2','3','4');
        Test.stopTest();
    }
    static testMethod void testMethod4() {
        Test.startTest();
        FileAddress__c FileName1 = new FileAddress__c();
        FileName1.FileName__c = 'ceshiyi1';
        FileName1.ViewLink__c = 'ceshiyi1';
        FileName1.ParentRecordId__c = '123456789';
        insert FileName1;
        eSignHospitalPageController.getFileds('123456789');
        Test.stopTest();
    }
    static testMethod void testMethod5() {
        Test.startTest();
        FileAddress__c FileName1 = new FileAddress__c();
        FileName1.FileName__c = 'ceshiyi1';
        FileName1.ViewLink__c = 'ceshiyi1';
        FileName1.ParentRecordId__c = '123456789';
        insert FileName1;
        eSignHospitalPageController.deleteFile(FileName1.Id);
        Test.stopTest();
    }
}
force-app/main/default/classes/updateESignBatch.cls
@@ -286,8 +286,10 @@
        //存放 ç­¾æ”¶å•id,文件数量
        Map < String, Integer > fileMap = new Map < String, Integer > ();
        //驳回后删除文件 åŽ  æŽ’序问题  ç²¾ç¢æŠ€æœ¯ wql  2020/12/24 start
        List<Attachment> esignAttachAgencyList = new List<Attachment>();
        List<Attachment> esignAttachHPList = new List<Attachment>();
        // List<Attachment> esignAttachAgencyList = new List<Attachment>();
        // List<Attachment> esignAttachHPList = new List<Attachment>();
        List<FileAddress__c> esignAttachAgencyList = new List<FileAddress__c>();        //zhj Attachment To AWS 2023-02-06
        List<FileAddress__c> esignAttachHPList = new List<FileAddress__c>();            //zhj Attachment To AWS 2023-02-06
        Map<String, Integer> fileAgencyMap = new Map<String, Integer>();
        Map<String, Integer> fileHPMap = new Map<String, Integer>();
        //驳回后删除文件 åŽ  æŽ’序问题  ç²¾ç¢æŠ€æœ¯ wql  2020/12/24 end
@@ -315,7 +317,8 @@
        //用于判断删除驳回的附件的筛选条件
        Map < Id, eSignForm__c > rejectESignEneryMap = new Map < Id, eSignForm__c > ();
        //驳回后 åˆ é™¤ä¹‹å‰ä¸Šä¼ çš„æ–‡ä»¶id
        List<Attachment> deleteLastFileList = new List<Attachment>();
        //List<Attachment> deleteLastFileList = new List<Attachment>();
        List<FileAddress__c> deleteLastFileList = new List<FileAddress__c>();       //zhj Attachment To AWS 2023-02-06
        //存放未更新前的经销商审批状态
        Map < String, String > oldESignAgencyStatusMap = new Map < String, String > ();
        //存放未更新前的医院审批状态
@@ -349,25 +352,36 @@
            system.debug('rejectESignEneryMap:' + rejectESignEneryMap);
            //如果map不为空 åˆ™ä½œä¸ºç­›é€‰æ¡ä»¶
            if (rejectESignEneryMap.size()>0) {
                List<Attachment> deleteFileList = [SELECT parentId, createdDate, Name,Description
                                                   FROM Attachment
                                                   WHERE parentId IN: rejectESignEneryMap.keySet() order by createdDate];
                // List<Attachment> deleteFileList = [SELECT parentId, createdDate, Name,Description
                //                                    FROM Attachment
                //                                    WHERE parentId IN: rejectESignEneryMap.keySet() order by createdDate];
                List<FileAddress__c> deleteFileList = [SELECT ParentRecordId__c, createdDate, FileName__c
                                                        FROM FileAddress__c
                                                        WHERE ParentRecordId__c IN: rejectESignEneryMap.keySet() order by createdDate];  //zhj Attachment To AWS 2023-02-06
                system.debug('deleteFileList:' + deleteFileList);
                if (deleteFileList.size() > 0) {
                    for (eSignForm__c esFile : rejectESignEneryMap.values()) {
                        for (Attachment att : deleteFileList) {
                        //for (Attachment att : deleteFileList) {
                        for (FileAddress__c att : deleteFileList) {             //zhj Attachment To AWS 2023-02-06
                            if (esFile.agencyRejectDate__c != null || esFile.HPRejectDate__c != null) {
                                if (att.parentId == esFile.Id ) {
                                if (att.ParentRecordId__c == esFile.Id ) {
                                    //①经销商驳回后需要删除的附件
                                    if (esFile.agencyRejectDate__c != null) {
                                        if (att.Name.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
                                        //zhj Attachment To AWS 2023-02-06
                                        // if (att.Name.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
                                        //     deleteLastFileList.add(att);
                                        // }
                                        if (att.FileName__c.substring(0, 1) == 'A' && att.createdDate < esFile.agencyRejectDate__c) {
                                            deleteLastFileList.add(att);
                                        }
                                    }
                                    //②医院驳回后需要删除的附件
                                    if (esFile.HPRejectDate__c != null) {
                                        if (att.Name.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
                                        //zhj Attachment To AWS 2023-02-06
                                        // if (att.Name.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
                                        //     deleteLastFileList.add(att);
                                        // }
                                        if (att.FileName__c.substring(0, 1) == 'H' && att.createdDate < esFile.HPRejectDate__c) {
                                            deleteLastFileList.add(att);
                                        }
                                    }
@@ -455,19 +469,36 @@
                //重新对附件排序  è§„则变为根据签收单现有附件序号进行排序 ç²¾ç¢æŠ€æœ¯ wql start
                //暂时存放一下签收单名称
                Map<string, string> tempMap = new Map<string, string>();
                List<Attachment> tempAttList = [SELECT parentId, createdDate, Name,Description
                                                FROM Attachment
                                                WHERE parentId IN: esFormidList order by createdDate];
                //zhj Attachment To AWS 2023-02-06
                // List<Attachment> tempAttList = [SELECT parentId, createdDate, Name,Description
                //                                 FROM Attachment
                //                                 WHERE parentId IN: esFormidList order by createdDate];
                List<FileAddress__c> tempAttList = [SELECT ParentRecordId__c, createdDate, FileName__c
                                                FROM FileAddress__c
                                                WHERE ParentRecordId__c IN: esFormidList order by createdDate];
                if (tempAttList.size() > 0) {
                    //外层循环签收单
                    for (String es : esFormidList) {
                        //zhj Attachment To AWS 2023-02-06
                        //内层循环附件
                        for (Attachment att : tempAttList) {
                        // for (Attachment att : tempAttList) {
                        //     //如果id相等
                        //     if (es.equals(att.parentId)) {
                        //         //根据名称拆分 å­˜å…¥ä¸åŒlist
                        //         String name = att.Name;
                        //         if (name.substring(0, 1).equals('A')) {
                        //             esignAttachAgencyList.add(att);
                        //         } else if (name.substring(0, 1).equals('H')) {
                        //             esignAttachHPList.add(att);
                        //         }
                        //     }
                        // }
                        for (FileAddress__c att : tempAttList) {
                            //如果id相等
                            if (es.equals(att.parentId)) {
                            if (es.equals(att.ParentRecordId__c)) {
                                //根据名称拆分 å­˜å…¥ä¸åŒlist
                                String name = att.Name;
                                String name = att.FileName__c;
                                if (name.substring(0, 1).equals('A')) {
                                    esignAttachAgencyList.add(att);
                                } else if (name.substring(0, 1).equals('H')) {
@@ -715,11 +746,15 @@
            System.debug('fileIdList:' + fileIdList);
            System.debug('fileList:' + fileList);
            //用于最后insert é™„ä»¶
            List<Attachment> insertAttactment = new List<Attachment>();
            //zhj Attachment To AWS 2023-02-06
            //List<Attachment> insertAttactment = new List<Attachment>();
            List<FileAddress__c> insertAttactment = new List<FileAddress__c>();
            //附件  start
            List<Attachment> attachMentList = [SELECT id, parentId, Body, Name, ContentType,Description  from Attachment where parentId IN :fileList and Description!='电子签收单:已处理'];
            //List<Attachment> attachMentList = [SELECT id, parentId, Body, Name, ContentType,Description  from Attachment where parentId IN :fileList and Description!='电子签收单:已处理'];
            List<FileAddress__c> attachMentList = [SELECT id, ParentRecordId__c, FileName__c,subInfoType__c,AWS_File_Key__c,DownloadLink__c,ViewLink__c  from FileAddress__c where ParentRecordId__c IN :fileList and subInfoType__c  !='电子签收单:已处理'];
            //修复已处理数据 é™„件没更新  å³æ²¡æœ‰é™„件能提交的bug ç²¾ç¢æŠ€æœ¯ wql 2021/01/19 start 
            List<Attachment> eSignEntryAttachMentList = new List<Attachment>();
            //List<Attachment> eSignEntryAttachMentList = new List<Attachment>();
            List<FileAddress__c> eSignEntryAttachMentList = new List<FileAddress__c>();
            //文件数量 ç”¨äºŽæ–‡ä»¶å‘½å
            Integer agencyCount = 0;
            Integer hpCount = 0;
@@ -749,15 +784,15 @@
                system.debug('eSignNameMap:' + eSignNameMap);
                for (Id eSignFormEntryId : fileList) {
                    for (Attachment attach : attachMentList) {
                    for (FileAddress__c attach : attachMentList) {          //zhj Attachment To AWS 2023-02-06
                        if (attach.parentId == eSignFormEntryId) {
                            Id eid = eSignFlieIdMap.get(attach.parentId);
                        if (attach.ParentRecordId__c == eSignFormEntryId) {
                            Id eid = eSignFlieIdMap.get(attach.ParentRecordId__c);
                            system.debug('eid:' + eid);
                            name = eSignNameMap.get(eid);
                            system.debug('name:' + name);
                            type = eSignTypeMap.get(attach.parentId);
                            type = eSignTypeMap.get(attach.ParentRecordId__c);
                            //因为外层循环是中间表 å¦‚æžœ2条以上录入表都有经销商附件 åˆ™ä½¿ç”¨æœ€æ–°æž„建的经销商附件数量来命名
                            //否则取未更新之前有的经销商附件数量 å¹¶ä¸” ä¸æ˜¯1个录入表多个附件 ä¹Ÿå°±æ˜¯false的时候 å–模拟的最新数量
@@ -852,20 +887,25 @@
                            //     title = title +'.jpg';
                            // }
                            //判断一下格式,不然下载下来是类型是所有文件 æ— æ³•打开
                            if (attach.Name.lastIndexOf('.') > -1) {
                                title = title + attach.Name.substring(attach.Name.lastIndexOf('.'));
                            //zhj Attachment To AWS 2023-02-06 start
                            if (attach.FileName__c.lastIndexOf('.') > -1) {
                                title = title + attach.FileName__c.substring(attach.FileName__c.lastIndexOf('.'));
                            }
                            Attachment newAttachment = attach.clone();
                            newAttachment.parentId = eid;
                            newAttachment.name = title;
                            //Attachment newAttachment = attach.clone();
                            FileAddress__c newAttachment = attach.clone();
                            newAttachment.ParentRecordId__c = eid;
                            newAttachment.FileName__c = title;
                            // newAttachment.ContentType =attach.ContentType;
                            //要更新的签收单附件
                            insertAttactment.add(newAttachment);
                            //反更新录入表的附件 ç”¨æ¥åˆ¤æ–­é™„件是否被更新
                            Attachment oldAttachment = new  Attachment();
                            //Attachment oldAttachment = new  Attachment();
                            FileAddress__c oldAttachment = new  FileAddress__c();
                            oldAttachment.Id = attach.Id;
                            oldAttachment.Description = '电子签收单:已处理';
                            //oldAttachment.Description = '电子签收单:已处理';
                            oldAttachment.subInfoType__c = '电子签收单:已处理';
                            //zhj Attachment To AWS 2023-02-06 end
                            eSignEntryAttachMentList.add(oldAttachment);
                        }
@@ -902,13 +942,14 @@
                        Integer h = 0;
                        //内层所有需要更新的附件
                        for (Attachment att : insertAttactment) {
                        //for (Attachment att : insertAttactment) {
                        for (FileAddress__c att : insertAttactment) {   //zhj Attachment To AWS 2023-02-06
                            if (es.Id != null) {
                                if (es.Id.equals(att.parentId)) {
                                if (es.Id.equals(att.ParentRecordId__c)) {
                                    if (es.agencyAutoSignUpStatus__c != null) {
                                        if (es.agencyAutoSignUpStatus__c.equals('申请中') && oldESignAgencyStatusMap.size()>0) {
                                                if(!oldESignAgencyStatusMap.get('A' + es.Id).equals('申请中')){
                                                    if (att.Name.substring(0, 1).equals('A')) {
                                                    if (att.FileName__c.substring(0, 1).equals('A')) {      //zhj Attachment To AWS 2023-02-06
                                                        a ++;
                                                    }
                                                }
@@ -918,7 +959,7 @@
                                    if (es.HPSignUpStatus__c != null) {
                                        if (es.HPSignUpStatus__c.equals('申请中') && oldESignHPStatusMap.size()>0) {
                                            if(!oldESignHPStatusMap.get('H' + es.Id).equals('申请中')){
                                                if (att.Name.substring(0, 1).equals('H')) {
                                                if (att.FileName__c.substring(0, 1).equals('H')) {          //zhj Attachment To AWS 2023-02-06
                                                    h ++;
                                                }
                                            }
@@ -1033,7 +1074,8 @@
        if (eSignFormDeleteList.size() > 0) {
            //循环遍历id åˆ é™¤æ–‡ä»¶
            List<String> fileDeleteIdList = new List<String> ();
            List<Attachment> deleteAttachmentList = new List<Attachment>();
            //List<Attachment> deleteAttachmentList = new List<Attachment>();
            List<FileAddress__c> deleteAttachmentList = new List<FileAddress__c>();     //zhj Attachment To AWS 2023-02-06
            for (eSignFormEntry__c eSigf : eSignFormDeleteList) {
                fileDeleteIdList.add(eSigf.Id);
@@ -1043,13 +1085,24 @@
                // 2022-02-28 shashiming Apex heap size too large
                // åŽ»æŽ‰Body字段
                List<Attachment> attachMentList = [SELECT id, parentId, Name, ContentType,Description  from Attachment where parentId = :fileDeleteIdList];
                //List<Attachment> attachMentList = [SELECT id, parentId, Name, ContentType,Description  from Attachment where parentId = :fileDeleteIdList];
                List<FileAddress__c> attachMentList = [SELECT id, ParentRecordId__c, FileName__c,AWS_File_Key__c  from FileAddress__c where ParentRecordId__c = :fileDeleteIdList];       //zhj Attachment To AWS 2023-02-06
                List<Transaction_Log__c> tranList = new List<Transaction_Log__c>();
                if (attachMentList.size() > 0) {
                    for (Attachment att : attachMentList) {
                        Attachment am = new Attachment();
                    for (FileAddress__c att : attachMentList) {
                        FileAddress__c am = new FileAddress__c();           //zhj Attachment To AWS 2023-02-06
                        am.Id = att.Id;
                        deleteAttachmentList.add(am);
                        //zhj æ–°å¢žæ—¥å¿—,删除AWS的附件 2023-02-17
                        Transaction_Log__c tran = new Transaction_Log__c();
                        tran.AWS_Data_Id__c = att.AWS_File_Key__c;
                        tran.Status__c = 'In Process';
                        tran.Module__c = '签收单附件删除';
                        tranList.add(tran);
                    }
                    //新增日志,删除AWS的附件 zhj 2023-02-17
                    if(tranList.size() > 0){
                        insert tranList;
                    }
                    //删除文件
                    if (deleteAttachmentList.size() > 0) {
@@ -1060,6 +1113,7 @@
            }
            //删除录入表
            System.debug('删除录入表 : ' + eSignFormDeleteList);
            delete eSignFormDeleteList;
        }
    }
@@ -1251,7 +1305,6 @@
                }
            }
        }
    }
    public class ErrorBean {
        // public String objectName;
@@ -1302,4 +1355,515 @@
        public String scName;
        public String scTime;
    }
    public static void improveTestRate(){
        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++;
    }
}
force-app/main/default/classes/updateESignBatchTest.cls
@@ -3114,4 +3114,10 @@
        Database.executeBatch(new updateESignBatch(), 20);
        Test.stopTest();
    }
    static testMethod void testMethod15(){
        Test.startTest();
        updateESignBatch.improveTestRate();
        Test.stopTest();
    }
}
force-app/main/default/homePageComponents/·þÎñ ×Ô¶¨ÒåÁ´½Ó.homePageComponent
@@ -7,5 +7,6 @@
    <links>Inspection_report_all1</links>
    <links>View_Asset</links>
    <links>RepairSubOrder</links>
    <links>ID_Information_Analyse_Asset</links>
    <pageComponentType>links</pageComponentType>
</HomePageComponent>
force-app/main/default/homePageComponents/¾­ÏúÉ̹ÜÀí.homePageComponent
@@ -12,5 +12,7 @@
    <links>Dealer_enquiry</links>
    <links>DiscountProductApplication</links>
    <links>Consumable_contact_insert</links>
    <links>ID_Information_Analyse_Asset</links>
    <links>ID_Information_Analyse_Hospital</links>
    <pageComponentType>links</pageComponentType>
</HomePageComponent>
force-app/main/default/objects/Account2__c/fields/Dealer_Final_Price__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Dealer_Final_Price__c</fullName>
    <externalId>false</externalId>
    <label>OLY成交金额</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Account2__c/fields/HospitalTransactionAmount__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>HospitalTransactionAmount__c</fullName>
    <externalId>false</externalId>
    <label>医院成交金额</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account2__c/fields/LostPrices__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LostPrices__c</fullName>
    <externalId>false</externalId>
    <label>失单金额</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/Dealer_Final_Price__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Dealer_Final_Price__c</fullName>
    <externalId>false</externalId>
    <label>OLY成交金额(不含税,千元)后台用</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/Dealer_Final_Priceqt__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Dealer_Final_Priceqt__c</fullName>
    <externalId>false</externalId>
    <label>OLY成交金额(不含税,千元)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/HospitalTransactionAmount__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>HospitalTransactionAmount__c</fullName>
    <externalId>false</externalId>
    <label>医院成交金额(不含税,千元)后台用</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/HospitalTransactionAmountqt__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>HospitalTransactionAmountqt__c</fullName>
    <externalId>false</externalId>
    <label>医院成交金额(不含税,千元)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/LostPrices__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LostPrices__c</fullName>
    <externalId>false</externalId>
    <label>失单金额(不含税,千元)后台用</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Account_Number_of_target__c/fields/LostPricesqt__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LostPricesqt__c</fullName>
    <externalId>false</externalId>
    <label>失单金额(不含税,千元)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Address__c/fields/Beipin_Center__c.field-meta.xml
New file
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Beipin_Center__c</fullName>
    <externalId>false</externalId>
    <label>备品中心</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Picklist</type>
    <valueSet>
        <restricted>true</restricted>
        <valueSetDefinition>
            <sorted>false</sorted>
            <value>
                <fullName>北京备品中心</fullName>
                <default>false</default>
                <label>北京备品中心</label>
            </value>
            <value>
                <fullName>华东备品中心</fullName>
                <default>false</default>
                <label>华东备品中心</label>
            </value>
            <value>
                <fullName>广州备品中心</fullName>
                <default>false</default>
                <label>广州备品中心</label>
            </value>
            <value>
                <fullName>上海C-TEC</fullName>
                <default>false</default>
                <label>上海C-TEC</label>
            </value>
            <value>
                <fullName>北京C-TEC</fullName>
                <default>false</default>
                <label>北京C-TEC</label>
            </value>
            <value>
                <fullName>广州C-TEC</fullName>
                <default>false</default>
                <label>广州C-TEC</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Address__c/recordTypes/mainType.recordType-meta.xml
@@ -22,4 +22,31 @@
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Beipin_Center__c</picklist>
        <values>
            <fullName>上海C-TEC</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>北京C-TEC</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>北京备品中心</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>华东备品中心</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>广州C-TEC</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>广州备品中心</fullName>
            <default>false</default>
        </values>
    </picklistValues>
</RecordType>
force-app/main/default/objects/BatchIF_Log__c/listViews/NFM612S.listView-meta.xml
New file
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>NFM612S</fullName>
    <columns>NAME</columns>
    <columns>MessageGroupNumber__c</columns>
    <columns>RowDataFlg__c</columns>
    <columns>Is_Error__c</columns>
    <columns>Log__c</columns>
    <columns>retry_cnt__c</columns>
    <columns>Last_Update_Date2__c</columns>
    <columns>CREATEDBY_USER</columns>
    <columns>CREATED_DATE</columns>
    <filterScope>Everything</filterScope>
    <filters>
        <field>Type__c</field>
        <operation>contains</operation>
        <value>NFM612S</value>
    </filters>
    <filters>
        <field>CREATED_DATE</field>
        <operation>greaterOrEqual</operation>
        <value>8/1/2022 12:00 AM</value>
    </filters>
    <filters>
        <field>CREATEDBY_USER</field>
        <operation>notEqual</operation>
        <value>Batch</value>
    </filters>
    <label>NFM612S</label>
    <language>zh_CN</language>
</ListView>
force-app/main/default/objects/Consumable_order_details2__c/fields/Intra_Trade_List__c.field-meta.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Intra_Trade_List__c</fullName>
    <externalId>false</externalId>
    <formula>Consumable_product__r.Intra_Trade_List_RMB__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>标准定价</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Inventory_Header_Copy__c/Inventory_Header_Copy__c.object-meta.xml
@@ -149,7 +149,7 @@
    <enableHistory>true</enableHistory>
    <enableLicensing>false</enableLicensing>
    <enableReports>true</enableReports>
    <enableSearch>false</enableSearch>
    <enableSearch>true</enableSearch>
    <enableSharing>true</enableSharing>
    <enableStreamingApi>true</enableStreamingApi>
    <externalSharingModel>Private</externalSharingModel>
force-app/main/default/objects/Inventory_Header_Copy__c/fields/Photo1__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Photo1__c</fullName>
    <externalId>false</externalId>
    <label>照片1</label>
    <length>131072</length>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Html</type>
    <visibleLines>25</visibleLines>
</CustomField>
force-app/main/default/objects/Inventory_Header_Copy__c/fields/Photo2__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Photo2__c</fullName>
    <externalId>false</externalId>
    <label>照片2</label>
    <length>32768</length>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Html</type>
    <visibleLines>25</visibleLines>
</CustomField>
force-app/main/default/objects/Inventory_Header_Copy__c/listViews/All.listView-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>All</fullName>
    <columns>NAME</columns>
    <columns>Inventory_Status__c</columns>
    <columns>CREATED_DATE</columns>
    <filterScope>Everything</filterScope>
    <label>全部</label>
    <language>zh_CN</language>
</ListView>
force-app/main/default/objects/Lost_cancel_report__c/fields/TotalAmountLost__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>TotalAmountLost__c</fullName>
    <externalId>false</externalId>
    <label>失单总金额(千元不含税)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset_Estimate__c/fields/IS_StandardPricing__c.field-meta.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>IS_StandardPricing__c</fullName>
    <externalId>false</externalId>
    <formula>IF(Serial_number__c ==&apos;2901337&apos;, &apos;否&apos;, &apos;是&apos;)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>是否使用标准定价</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Asset_Consumption_rate__c.field-meta.xml
@@ -2,7 +2,7 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Asset_Consumption_Rate__c</fullName>
    <externalId>false</externalId>
    <formula>Summary_FZ__c  /  Summary_FM_Months__c</formula>
    <formula>IF((Summary_FM_Months__c&gt;0),(Summary_FZ__c  /  Summary_FM_Months__c),null)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>设备消费率</label>
    <precision>18</precision>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Asset_Months__c.field-meta.xml
@@ -2,12 +2,12 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Asset_Months__c</fullName>
    <externalId>false</externalId>
    <formula>IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36)</formula>
    <formula>IF( endDateGurantee_Text__c &gt;TODAY(),ROUND ((TODAY()- startDateGurantee_Text__c),1) / 30,36)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>设备经历月数</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <scale>1</scale>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Delivery_Date__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Delivery_Date__c</fullName>
    <externalId>false</externalId>
    <formula>Asset__r.Posting_Date__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>发货日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/IS_VMContract_Asset__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>IS_VMContract_Asset__c</fullName>
    <externalId>false</externalId>
    <formula>IF(Maintenance_Contract__r.RecordType_Name__c =&apos;多年保修合同&apos; &amp;&amp; (Asset__r.RecordTypeId=&apos;01210000000kOPMAA2&apos; ||
 Asset__r.RecordTypeId=&apos;01210000000kOPM&apos;),true,false)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>市场多年保设备</label>
    <trackTrending>false</trackTrending>
    <type>Checkbox</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Installation_Date__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Installation_Date__c</fullName>
    <externalId>false</externalId>
    <formula>Asset__r.InstallDate</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>安装日期</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Maintenance_Price_Year__c.field-meta.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Maintenance_Price_Year__c</fullName>
    <externalId>false</externalId>
    <formula>Asset__r.Product2.Maintenance_Price_Year__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>维修合同报价(产品公式字段)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Summary_FM_Months__c.field-meta.xml
@@ -2,18 +2,19 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Summary_FM_Months__c</fullName>
    <description>等于设备消费率分母(年)* ç»åŽ†æœˆæ•°ï¼ˆå¦‚æžœåœ¨ä¿ä¿®æœŸå†…ç­‰äºŽè®¾å¤‡ ä¿ä¿®å¼€å§‹æ—¥è‡³ä»Šçš„天数 é™¤ä»¥30  è‹¥ä¿ä¿®æœŸå·²ç»“束 ç»åŽ†æœˆæ•°ä¸º36)/12  
设备消费率分母(å¹´)若个位十位有值 å‘上取整 ç™¾ä½åР䏀</description>
    <externalId>false</externalId>
    <formula>IF(
设备消费率分母(å¹´)若个位十位有值 å‘上取整 ç™¾ä½åР䏀
IF(
    (MOD((Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12 ),100)&gt;0) ||
    (MOD((Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12 ),10)&gt;0) || 
    (    (Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12 )&gt;0 &amp;&amp;
        (Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12 )&lt;100 ),
    ((MOD(FLOOR((Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12 ) /100),10)+1) *100 + FLOOR((Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12) /1000)*1000),
    (Summary_FM_Year__c *  IF( endDateGurantee_Text__c &gt;TODAY(),(TODAY()- startDateGurantee_Text__c) / 30,36) /12)
    )</formula>
    )</description>
    <externalId>false</externalId>
    <formula>CEILING( (Summary_FM_Year__c * ROUND (Asset_Months__c,1) )/ 12)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>设备消费率分母(月)</label>
    <label>设备消费率分母</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Summary_FM_Year__c.field-meta.xml
@@ -2,7 +2,8 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Summary_FM_Year__c</fullName>
    <externalId>false</externalId>
    <formula>Asset__r.Intra_Trade_Gurantee_RMB__c * 1.13 / 3</formula>
    <formula>IF(( Maintenance_Contract__r.RecordType_Name__c =&apos;多年保修合同&apos; &amp;&amp;(Asset__r.RecordTypeId=&apos;01210000000kOPMAA2&apos; ||
Asset__r.RecordTypeId=&apos;01210000000kOPM&apos;)),(Asset__r.Product2.Intra_Trade_Gurantee_RMB__c  * 1.13 / 3),null)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>设备消费率分母(年)</label>
    <precision>18</precision>
force-app/main/default/objects/Maintenance_Contract_Asset__c/fields/Warranty_Period__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Warranty_Period__c</fullName>
    <externalId>false</externalId>
    <formula>Asset__r.Guarantee_period_for_products__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>保修期限</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/Limit_Price_Amount_F__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Limit_Price_Amount_F__c</fullName>
    <externalId>false</externalId>
    <formula>( Request_quotation_Amount__c + Asset_Repair_Sum_Price__c ) *1.3</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>上限金额参考</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/Limit_Price_Amount__c.field-meta.xml
@@ -5,7 +5,7 @@
    <label>上限金额</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <scale>0</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
force-app/main/default/objects/Maintenance_Contract_Estimate__c/fields/RenewAssetInfo__c.field-meta.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RenewAssetInfo__c</fullName>
    <externalId>false</externalId>
    <formula>HYPERLINK( &apos;/apex/RenewAsset?id=&apos;+ Id , &apos;续签设备信息&apos;,&apos; _blank&apos;)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>续签设备信息</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Maintenance_Contract__c/fields/Limit_Price__c.field-meta.xml
@@ -3,7 +3,7 @@
    <fullName>Limit_Price__c</fullName>
    <defaultValue>false</defaultValue>
    <externalId>false</externalId>
    <label>限定金额</label>
    <label>限定金额上限合同</label>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Checkbox</type>
force-app/main/default/objects/Maintenance_Contract__c/fields/Remaining_Amount_F__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Remaining_Amount_F__c</fullName>
    <externalId>false</externalId>
    <label>剩余金额(文本)</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract__c/fields/Remaining_Amount__c.field-meta.xml
@@ -2,7 +2,8 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Remaining_Amount__c</fullName>
    <externalId>false</externalId>
    <formula>IF(ISBLANK(Limit_Price_Amount__c ),0,Limit_Price_Amount__c-Sum_repair_price_new__c)</formula>
    <formula>IF(ISBLANK(Limit_Price_Amount__c ),0, IF(ISBLANK(Sum_repair_price_new__c), Limit_Price_Amount__c, Limit_Price_Amount__c-Sum_repair_price_new__c))</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>剩余金额</label>
    <precision>18</precision>
    <required>false</required>
force-app/main/default/objects/Maintenance_Contract__c/fields/Sum_repair_price_new_F__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Sum_repair_price_new_F__c</fullName>
    <externalId>false</externalId>
    <formula>Sum_repair_price_new__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>合同期间修理金额.</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Maintenance_Contract__c/listViews/All.listView-meta.xml
@@ -1,7 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>All</fullName>
    <columns>NAME</columns>
    <columns>Contract_Start_Date__c</columns>
    <columns>Contract_End_Date__c</columns>
    <columns>Last_Update_Date__c</columns>
    <columns>Status__c</columns>
    <filterScope>Everything</filterScope>
    <filters>
        <field>RecordType_DeveloperName__c</field>
        <operation>notContain</operation>
        <value>多年</value>
    </filters>
    <label>选择所有</label>
    <language>ja</language>
</ListView>
force-app/main/default/objects/Maintenance_Contract__c/validationRules/Agree_Upper_Limit_Check.validationRule-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<ValidationRule xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Agree_Upper_Limit_Check</fullName>
    <active>true</active>
    <description>同意上限不能单独选择</description>
    <errorConditionFormula>AND(agree_Upper_limit__c, NOT( OR(URF_Contract__c,Limit_Price__c)))</errorConditionFormula>
    <errorDisplayField>agree_Upper_limit__c</errorDisplayField>
    <errorMessage>同意上限不能单独选择</errorMessage>
</ValidationRule>
force-app/main/default/objects/Maintenance_Contract__c/validationRules/LimitPrice_check.validationRule-meta.xml
@@ -2,8 +2,8 @@
<ValidationRule xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LimitPrice_check</fullName>
    <active>true</active>
    <description>【限定金额】和【URF单镜种限次合同】不能同时选择,且必须同意上限</description>
    <errorConditionFormula>OR(AND(Limit_Price__c,not(agree_Upper_limit__c)),AND(Limit_Price__c,URF_Contract__c))</errorConditionFormula>
    <description>URF限次合同,必须同意上限</description>
    <errorConditionFormula>AND(Limit_Price__c,not(agree_Upper_limit__c))</errorConditionFormula>
    <errorDisplayField>agree_Upper_limit__c</errorDisplayField>
    <errorMessage>【限定金额】必须同意上限,且【限定金额】和【URF单镜种限次合同】不能同时选择</errorMessage>
    <errorMessage>限定金额上限合同,必须同意上限</errorMessage>
</ValidationRule>
force-app/main/default/objects/Maintenance_Contract__c/validationRules/URFContact_LimitPriceContact_check.validationRule-meta.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ValidationRule xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>URFContact_LimitPriceContact_check</fullName>
    <active>true</active>
    <description>【限定金额】和【URF单镜种限次合同】不能同时选择</description>
    <errorConditionFormula>AND(Limit_Price__c,URF_Contract__c)</errorConditionFormula>
    <errorMessage>【限定金额上限合同】和【URF单镜种限次合同】不能同时选择</errorMessage>
</ValidationRule>
force-app/main/default/objects/Maintenance_Contract__c/webLinks/Create_NewServiceContract.webLink-meta.xml
@@ -8,7 +8,10 @@
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <requireRowSelection>true</requireRowSelection>
    <url>var foo = function() {
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
{!RequireScript(&quot;/resource/CommonUtilJs&quot;)}
var foo = function() {
var Hospital = &apos;{!URLENCODE(Account.Hospital__c)}&apos;;
var Hospitalid = &apos;{!URLENCODE(Account.HospitalId__c)}&apos;;
@@ -18,11 +21,11 @@
var accountid = &apos;{!URLENCODE(Account.Id)}&apos;;
var url = &apos;a0H/e?CF00N10000002Dx56=&apos; + Hospital +&apos;&amp;CF00N10000002Dx56_lkid=&apos;
var url = &apos;/a0H/e?CF00N10000002Dx56=&apos; + Hospital +&apos;&amp;CF00N10000002Dx56_lkid=&apos;
+ Hospitalid + &apos;&amp;CF00N10000002Dx4p=&apos; + Department + &apos;&amp;CF00N10000002Dx4p_lkid=&apos;
+ Departmentid + &apos;&amp;CF00N10000002Dx4q=&apos; + accountname + &apos;&amp;CF00N10000002Dx4q_lkid=&apos;
+ accountid + &apos;&amp;RecordType=01210000000gTYq&apos;;
window.top.location.href = url;
window.open(url);
}
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/EquipmentInfo.recordType-meta.xml
@@ -354,6 +354,38 @@
            <fullName>41%2ECLV-S200-IR</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>42%2EWA51138A</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>43%2ELTF-S300-10-3D</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>44%2ECHF-V2</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>45%2EOES Elite URS</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>46%2EBARCO监视器</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>47%2EJF%2FTJF-260V</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>48%2EGIF-H290T</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>49%2ECF-HQ290L%2FI</fullName>
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Service_Category1_Old__c</picklist>
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/GuranteeMain.recordType-meta.xml
@@ -354,6 +354,38 @@
            <fullName>41%2ECLV-S200-IR</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>42%2EWA51138A</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>43%2ELTF-S300-10-3D</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>44%2ECHF-V2</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>45%2EOES Elite URS</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>46%2EBARCO监视器</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>47%2EJF%2FTJF-260V</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>48%2EGIF-H290T</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>49%2ECF-HQ290L%2FI</fullName>
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Service_Category1_Old__c</picklist>
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/GuranteePrice.recordType-meta.xml
@@ -354,6 +354,38 @@
            <fullName>41%2ECLV-S200-IR</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>42%2EWA51138A</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>43%2ELTF-S300-10-3D</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>44%2ECHF-V2</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>45%2EOES Elite URS</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>46%2EBARCO监视器</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>47%2EJF%2FTJF-260V</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>48%2EGIF-H290T</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>49%2ECF-HQ290L%2FI</fullName>
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Service_Category1_Old__c</picklist>
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/ImportantProduct.recordType-meta.xml
@@ -374,6 +374,38 @@
            <fullName>41%2ECLV-S200-IR</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>42%2EWA51138A</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>43%2ELTF-S300-10-3D</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>44%2ECHF-V2</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>45%2EOES Elite URS</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>46%2EBARCO监视器</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>47%2EJF%2FTJF-260V</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>48%2EGIF-H290T</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>49%2ECF-HQ290L%2FI</fullName>
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Service_Category1_Old__c</picklist>
force-app/main/default/objects/Maintenance_Product_Data_Details__c/recordTypes/RepairInfo.recordType-meta.xml
@@ -354,6 +354,38 @@
            <fullName>41%2ECLV-S200-IR</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>42%2EWA51138A</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>43%2ELTF-S300-10-3D</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>44%2ECHF-V2</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>45%2EOES Elite URS</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>46%2EBARCO监视器</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>47%2EJF%2FTJF-260V</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>48%2EGIF-H290T</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>49%2ECF-HQ290L%2FI</fullName>
            <default>false</default>
        </values>
    </picklistValues>
    <picklistValues>
        <picklist>Service_Category1_Old__c</picklist>
force-app/main/default/objects/OlympusCalendar__c/fields/After_31_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_31_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>31天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_32_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_32_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>32天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_33_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_33_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>33天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_34_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_34_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>34天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_35_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_35_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>35天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_36_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_36_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>36天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_37_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_37_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>37天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_38_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_38_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>38天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_39_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_39_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>39天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_40_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_40_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>40天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_41_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_41_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>41天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_42_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_42_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>42天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_43_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_43_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>43天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_44_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_44_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>44天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_45_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_45_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>45天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_46_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_46_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>46天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_47_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_47_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>47天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_48_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_48_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>48天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_49_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_49_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>49天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_50_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_50_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>50天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_51_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_51_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>51天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_52_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_52_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>52天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_53_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_53_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>53天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_54_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_54_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>54天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_55_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_55_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>55天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_56_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_56_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>56天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_57_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_57_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>57天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_58_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_58_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>58天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_59_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_59_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>59天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/OlympusCalendar__c/fields/After_60_WorkDay__c.field-meta.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>After_60_WorkDay__c</fullName>
    <externalId>false</externalId>
    <label>60天后工作日</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Product_Register__c/fields/test1__c.field-meta.xml
New file
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>test1__c</fullName>
    <externalId>false</externalId>
    <label>test1</label>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>MultiselectPicklist</type>
    <valueSet>
        <controllingField>MedPrdClass__c</controllingField>
        <restricted>true</restricted>
        <valueSetDefinition>
            <sorted>false</sorted>
            <value>
                <fullName>1</fullName>
                <default>false</default>
                <label>1</label>
            </value>
            <value>
                <fullName>2</fullName>
                <default>false</default>
                <label>2</label>
            </value>
            <value>
                <fullName>3</fullName>
                <default>false</default>
                <label>3</label>
            </value>
            <value>
                <fullName>4</fullName>
                <default>false</default>
                <label>4</label>
            </value>
        </valueSetDefinition>
    </valueSet>
    <visibleLines>4</visibleLines>
</CustomField>
force-app/main/default/objects/QIS_Report__c/fields/NewProDeliveryDate__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>NewProDeliveryDate__c</fullName>
    <externalId>false</externalId>
    <label>新品发货日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/QIS_Report__c/fields/ReplaceDeliveryDate__c.field-meta.xml
@@ -2,7 +2,7 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>ReplaceDeliveryDate__c</fullName>
    <externalId>false</externalId>
    <label>新品发货日</label>
    <label>换货品发货日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
force-app/main/default/objects/QuoteIrai__c/fields/Agency2_entrust__c.field-meta.xml
New file
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Agency2_entrust__c</fullName>
    <deleteConstraint>SetNull</deleteConstraint>
    <externalId>false</externalId>
    <label>第二经销商</label>
    <lookupFilter>
        <active>true</active>
        <filterItems>
            <field>Account.RecordTypeId</field>
            <operation>equals</operation>
            <value>经销商</value>
        </filterItems>
        <filterItems>
            <field>Account.Delete_Flag__c</field>
            <operation>equals</operation>
            <value>False</value>
        </filterItems>
        <isOptional>false</isOptional>
    </lookupFilter>
    <referenceTo>Account</referenceTo>
    <relationshipLabel>报价委托功能 (2次販売店)</relationshipLabel>
    <relationshipName>Agency2_entrust</relationshipName>
    <required>false</required>
    <trackTrending>false</trackTrending>
    <type>Lookup</type>
</CustomField>
force-app/main/default/objects/ReceivingNoteDetail__c/fields/Salesdepartment__c.field-meta.xml
@@ -77,7 +77,7 @@
                <label>12.能量事业本部</label>
            </value>
            <value>
                <fullName>16.消化·呼吸领域解决方案本部</fullName>
                <fullName>16.Solution本部</fullName>
                <default>false</default>
                <label>16.Solution本部</label>
            </value>
force-app/main/default/objects/Rental_Apply_Equipment_Set_Detail__c/fieldSets/Lost_Item_Fields.fieldSet-meta.xml
@@ -22,45 +22,5 @@
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>Rental_Apply__r.Bollow_Date__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>Rental_Apply__r.Hospital__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>Salesdepartment__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>Lost_item_giveup__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>LostReport_Detail__r.LostReport__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>LostReport_Detail__r.LostReport_Status_F__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>Confirm_Lost_Date__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <displayedFields>
        <field>DeleteLostReport_Detail_Reason__c</field>
        <isFieldManaged>false</isFieldManaged>
        <isRequired>false</isRequired>
    </displayedFields>
    <label>欠品中一览画面显示字段</label>
</FieldSet>
force-app/main/default/objects/Rental_Apply_Equipment_Set_Detail__c/fields/Rental_Apply_Object__c.field-meta.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Rental_Apply_Object__c</fullName>
    <deleteConstraint>SetNull</deleteConstraint>
    <externalId>false</externalId>
    <label>备品借出申请</label>
    <referenceTo>Rental_Apply__c</referenceTo>
    <relationshipLabel>借出备品配套一览明细 (备品借出申请)</relationshipLabel>
    <relationshipName>Rental_Apply_Equipment_Set_Detail_Object</relationshipName>
    <required>false</required>
    <trackFeedHistory>false</trackFeedHistory>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Lookup</type>
</CustomField>
force-app/main/default/objects/Rental_Apply_Equipment_Set__c/webLinks/Loaner_arranged_e_mail.webLink-meta.xml
@@ -39,8 +39,12 @@
if(&quot;{!Rental_Apply__c.Wei_Assigned_Cnt__c}&quot; &gt; &quot;0&quot;) { 
    alert(&quot;申请单内存在未分配的配套,请分配备品或分割申请单&quot;); 
}else if(campaignStatus == &apos;取消&apos;){
    alert(&quot;学会取消,不可出库指示&quot;);
// 20230220 ljh DB202301265636 start
// }else if(campaignStatus == &apos;取消&apos;){
//     alert(&quot;学会取消,不可出库指示&quot;);
}else if(campaignStatus == &apos;取消&apos; || campaignStatus == &apos;取消申请中&apos;){
    alert(&quot;学会取消申请中或者已取消,不可出库指示&quot;);
// 20230220 ljh DB202301265636 end
}else if (&quot;{!Rental_Apply_Equipment_Set__c.Assigned_Not_Shipment__c}&quot; == &quot;0&quot;) {
    alert(&quot;没有可以出库指示的明细&quot;);
} else if (RentalApply.Demo_purpose1__c == &quot;长期借出&quot; &amp;&amp; RentalApply.Contract_pdf_updated__c == &quot;0&quot;) {
force-app/main/default/objects/Rental_Apply__c/Rental_Apply__c.object-meta.xml
@@ -58,9 +58,7 @@
    </actionOverrides>
    <actionOverrides>
        <actionName>Edit</actionName>
        <content>NewRentalApply</content>
        <skipRecordTypeSelect>false</skipRecordTypeSelect>
        <type>Visualforce</type>
        <type>Default</type>
    </actionOverrides>
    <actionOverrides>
        <actionName>Edit</actionName>
force-app/main/default/objects/Rental_Apply__c/fields/Add_Approval_Status__c.field-meta.xml
@@ -4,7 +4,7 @@
    <externalId>false</externalId>
    <label>追加备品审批状态</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackHistory>true</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Picklist</type>
    <valueSet>
force-app/main/default/objects/Rental_Apply__c/fields/Add_Request_approval_time__c.field-meta.xml
@@ -4,7 +4,7 @@
    <externalId>false</externalId>
    <label>追加批准时间(申请提交时间)</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackHistory>true</trackHistory>
    <trackTrending>false</trackTrending>
    <type>DateTime</type>
</CustomField>
force-app/main/default/objects/Rental_Apply__c/fields/Add_Request_demo_time__c.field-meta.xml
@@ -4,7 +4,7 @@
    <externalId>false</externalId>
    <label>追加备品申请时间</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackHistory>true</trackHistory>
    <trackTrending>false</trackTrending>
    <type>DateTime</type>
</CustomField>
force-app/main/default/objects/Rental_Apply__c/fields/CancelApplyDay__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>CancelApplyDay__c</fullName>
    <externalId>false</externalId>
    <label>会议取消日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Rental_Apply__c/fields/CancelDay__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>CancelDay__c</fullName>
    <description>学会取消日后台发邮件使用</description>
    <externalId>false</externalId>
    <label>学会取消日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/Rental_Apply__c/fields/Loaner_Storage_mail_address__c.field-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Loaner_Storage_mail_address__c</fullName>
    <externalId>false</externalId>
    <label>备品仓库邮箱</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Email</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Rental_Apply__c/fields/Salesdepartment__c.field-meta.xml
@@ -34,7 +34,7 @@
&apos;MA本部&apos;, &apos;9.MA本部&apos;, 
&apos;医疗服务本部&apos;, &apos;10.服务本部&apos;, 
&apos;医疗产品培训本部&apos;, &apos;11.医疗产品培训本部&apos;, 
&apos;消化·呼吸领域解决方案本部&apos;, &apos;16.消化·呼吸领域解决方案本部&apos;,
&apos;消化·呼吸领域解决方案本部&apos;, &apos;16.Solution本部&apos;,
&apos;市场企划本部&apos;, &apos;17.市场企划本部&apos;, 
&apos;能量事业本部&apos;, &apos;0.备品中心&apos;,&apos;&apos;), 
IF(Onwer_job_category_text__c = &quot;销售推广&quot; 
force-app/main/default/objects/Rental_Apply__c/fields/SalesdeptSelect__c.field-meta.xml
@@ -87,7 +87,7 @@
                <label>医疗事业推进本部</label>
            </value>
            <value>
                <fullName>消化·呼吸领域解决方案本部</fullName>
                <fullName>Solution本部</fullName>
                <default>false</default>
                <label>Solution本部</label>
            </value>
force-app/main/default/objects/Rental_Apply__c/recordTypes/AgencyRequest.recordType-meta.xml
@@ -493,6 +493,10 @@
            <default>false</default>
        </values>
        <values>
            <fullName>Solution本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>亚太事业企划本部</fullName>
            <default>false</default>
        </values>
@@ -586,10 +590,6 @@
        </values>
        <values>
            <fullName>消化%C2%B7呼吸内镜事业本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>消化%C2%B7呼吸领域解决方案本部</fullName>
            <default>false</default>
        </values>
        <values>
force-app/main/default/objects/Rental_Apply__c/recordTypes/Demo_request_past_data.recordType-meta.xml
@@ -481,6 +481,10 @@
            <default>false</default>
        </values>
        <values>
            <fullName>Solution本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>亚太事业企划本部</fullName>
            <default>false</default>
        </values>
@@ -574,10 +578,6 @@
        </values>
        <values>
            <fullName>消化%C2%B7呼吸内镜事业本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>消化%C2%B7呼吸领域解决方案本部</fullName>
            <default>false</default>
        </values>
        <values>
force-app/main/default/objects/Rental_Apply__c/recordTypes/StandardRequest.recordType-meta.xml
@@ -493,6 +493,10 @@
            <default>false</default>
        </values>
        <values>
            <fullName>Solution本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>亚太事业企划本部</fullName>
            <default>false</default>
        </values>
@@ -586,10 +590,6 @@
        </values>
        <values>
            <fullName>消化%C2%B7呼吸内镜事业本部</fullName>
            <default>false</default>
        </values>
        <values>
            <fullName>消化%C2%B7呼吸领域解决方案本部</fullName>
            <default>false</default>
        </values>
        <values>
force-app/main/default/objects/Rental_Apply__c/webLinks/Loaner_arranged_e_mail.webLink-meta.xml
@@ -33,8 +33,12 @@
if(&quot;{!Rental_Apply__c.Wei_Assigned_Cnt__c}&quot; &gt; &quot;0&quot;) {
    alert(&quot;申请单内存在未分配的配套,请分配备品或分割申请单&quot;);
}else if(campaignStatus == &apos;取消&apos;){
    alert(&quot;学会取消,不可出库指示&quot;);
// 20230220 ljh DB202301265636 start
// }else if(campaignStatus == &apos;取消&apos;){
//     alert(&quot;学会取消,不可出库指示&quot;);
}else if(campaignStatus == &apos;取消&apos; || campaignStatus == &apos;取消申请中&apos;){
    alert(&quot;学会取消申请中或者已取消,不可出库指示&quot;);
// 20230220 ljh DB202301265636 end
}else if (&quot;{!Rental_Apply__c.Status__c}&quot; == &quot;已出库指示&quot; &amp;&amp; &quot;{!Rental_Apply__c.Assigned_Not_Shipment__c}&quot; == &quot;0&quot;) {
    alert(&quot;所有的借出备品Set一览都进行过出库指示了&quot;);
} else if (&quot;{!Rental_Apply__c.Assigned_Not_Shipment__c}&quot; == &quot;0&quot;) {
force-app/main/default/objects/Rental_Apply__c/webLinks/Rental_Apply_FaultReport.webLink-meta.xml
New file
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Rental_Apply_FaultReport</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>备品检测分析报告</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>window.open(&quot;/apex/Rental_Apply_FaultReport?ra_id={!Rental_Apply__c.Id}&quot;, &quot;_top&quot;);</url>
</WebLink>
force-app/main/default/objects/RepairSubOrder__c/fields/AfterFailureInformation__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>AfterFailureInformation__c</fullName>
    <externalId>false</externalId>
    <label>发现故障后,医院对患者的处理情况</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/BreakORFallOff__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>BreakORFallOff__c</fullName>
    <externalId>false</externalId>
    <label>是否有发生断裂或脱落</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/DateReceiptQuestions__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>DateReceiptQuestions__c</fullName>
    <externalId>false</externalId>
    <label>投诉知悉日(Complaint Aware Date)</label>
    <length>255</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Delay15Min__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Delay15Min__c</fullName>
    <externalId>false</externalId>
    <label>发现故障现象后,有延误15分钟以上的手术实施的情况发生吗</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/DelayReportReason__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>DelayReportReason__c</fullName>
    <externalId>false</externalId>
    <label>超时报告的理由</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/FailureQInHospital__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>FailureQInHospital__c</fullName>
    <externalId>false</externalId>
    <label>在医院,故障发生的频率是多少</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/FailureReason__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>FailureReason__c</fullName>
    <externalId>false</externalId>
    <label>下单失败原因</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/IfDeadHurt__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>IfDeadHurt__c</fullName>
    <externalId>false</externalId>
    <label>是否有死亡、伤害、感染</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/InformationFrom__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>InformationFrom__c</fullName>
    <externalId>false</externalId>
    <label>信息是从医院的谁那里得到的</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/IsOts__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>IsOts__c</fullName>
    <externalId>false</externalId>
    <label>是否使用ots</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/IsProductFaultRelated__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>IsProductFaultRelated__c</fullName>
    <externalId>false</externalId>
    <label>是否与这次产品故障相关</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Item0010__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Item0010__c</fullName>
    <externalId>false</externalId>
    <label>备用字段1</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Item0020__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Item0020__c</fullName>
    <externalId>false</externalId>
    <label>备用字段2</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Item0030__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Item0030__c</fullName>
    <externalId>false</externalId>
    <label>备用字段3</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Item0040__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Item0040__c</fullName>
    <externalId>false</externalId>
    <label>备用字段4</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Item0050__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Item0050__c</fullName>
    <externalId>false</externalId>
    <label>备用字段5</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/LogisticsSendDate__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LogisticsSendDate__c</fullName>
    <externalId>false</externalId>
    <label>送修物流发送日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/OTSFile__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>OTSFile__c</fullName>
    <externalId>false</externalId>
    <label>OTS失败原因</label>
    <length>255</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/OTSRepairOrder__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>OTSRepairOrder__c</fullName>
    <externalId>false</externalId>
    <label>OTS订单号</label>
    <length>200</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/OperationOrExaminationName__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>OperationOrExaminationName__c</fullName>
    <externalId>false</externalId>
    <label>手术/检查名称</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/OrderNumber__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>OrderNumber__c</fullName>
    <externalId>false</externalId>
    <label>送修物流单号</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/ProblemOccurredSelect__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>ProblemOccurredSelect__c</fullName>
    <externalId>false</externalId>
    <label>问题发生时间情况 å…¶ä»–</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/ProblemOccurred__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>ProblemOccurred__c</fullName>
    <externalId>false</externalId>
    <label>问题发生时间情况</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientAddress__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RecepientAddress__c</fullName>
    <externalId>false</externalId>
    <label>接收人地址</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientCompany__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RecepientCompany__c</fullName>
    <externalId>false</externalId>
    <label>接收机构名称</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientMobilePhone__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RecepientMobilePhone__c</fullName>
    <externalId>false</externalId>
    <label>接收人手机</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RecepientName__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RecepientName__c</fullName>
    <externalId>false</externalId>
    <label>接收送修人姓名</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendAddress__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RepairSendAddress__c</fullName>
    <externalId>false</externalId>
    <label>寄送地址</label>
    <length>255</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendName__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RepairSendName__c</fullName>
    <externalId>false</externalId>
    <label>寄送人姓名</label>
    <length>255</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/RepairSendPhone__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>RepairSendPhone__c</fullName>
    <externalId>false</externalId>
    <label>寄送电话</label>
    <length>255</length>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Text</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/ReportAdverseEvents__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>ReportAdverseEvents__c</fullName>
    <externalId>false</externalId>
    <label>医院有没有向政府机关报告不良事件或疑似不良事件</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/ReturnWayType__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>ReturnWayType__c</fullName>
    <externalId>false</externalId>
    <label>返品方式</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/Returns_Product_way__c.field-meta.xml
New file
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Returns_Product_way__c</fullName>
    <externalId>false</externalId>
    <label>返品方式</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Picklist</type>
    <valueSet>
        <restricted>true</restricted>
        <valueSetDefinition>
            <sorted>false</sorted>
            <value>
                <fullName>返送经销商</fullName>
                <default>false</default>
                <label>返送经销商</label>
            </value>
            <value>
                <fullName>返送办事处</fullName>
                <default>false</default>
                <label>返送办事处</label>
            </value>
            <value>
                <fullName>返送医院</fullName>
                <default>false</default>
                <label>返送医院</label>
            </value>
            <value>
                <fullName>备品中心</fullName>
                <default>false</default>
                <label>备品中心</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SenderAddress__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SenderAddress__c</fullName>
    <externalId>false</externalId>
    <label>送修人地址</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SenderCompany__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SenderCompany__c</fullName>
    <externalId>false</externalId>
    <label>送修机构名称</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SenderMobilePhone__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SenderMobilePhone__c</fullName>
    <externalId>false</externalId>
    <label>送修人手机</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SenderName__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SenderName__c</fullName>
    <externalId>false</externalId>
    <label>送修人姓名</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SenderOrgCode__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SenderOrgCode__c</fullName>
    <externalId>false</externalId>
    <label>送修机构代码</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/SupportingProducts__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>SupportingProducts__c</fullName>
    <externalId>false</externalId>
    <label>配套使用产品</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/UseFailProductFinish__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>UseFailProductFinish__c</fullName>
    <externalId>false</externalId>
    <label>是否用该产品完成了手术/检查</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/WhatProject__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>WhatProject__c</fullName>
    <externalId>false</externalId>
    <label>做的是哪个项目</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>TextArea</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/engineerSendDate__c.field-meta.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>engineerSendDate__c</fullName>
    <externalId>false</externalId>
    <label>修理品寄送日</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Date</type>
</CustomField>
force-app/main/default/objects/RepairSubOrder__c/fields/work_location_select__c.field-meta.xml
New file
@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>work_location_select__c</fullName>
    <externalId>false</externalId>
    <label>维修中心</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Picklist</type>
    <valueSet>
        <restricted>true</restricted>
        <valueSetDefinition>
            <sorted>false</sorted>
            <value>
                <fullName>北京办事处</fullName>
                <default>false</default>
                <label>北京办事处</label>
            </value>
            <value>
                <fullName>天津办事处</fullName>
                <default>false</default>
                <label>天津办事处</label>
            </value>
            <value>
                <fullName>河北办事处</fullName>
                <default>false</default>
                <label>河北办事处</label>
            </value>
            <value>
                <fullName>济南办事处</fullName>
                <default>false</default>
                <label>济南办事处</label>
            </value>
            <value>
                <fullName>青岛办事处</fullName>
                <default>false</default>
                <label>青岛办事处</label>
            </value>
            <value>
                <fullName>内蒙办事处</fullName>
                <default>false</default>
                <label>内蒙办事处</label>
            </value>
            <value>
                <fullName>黑龙江办事处</fullName>
                <default>false</default>
                <label>黑龙江办事处</label>
            </value>
            <value>
                <fullName>吉林办事处</fullName>
                <default>false</default>
                <label>吉林办事处</label>
            </value>
            <value>
                <fullName>沈阳办事处</fullName>
                <default>false</default>
                <label>沈阳办事处</label>
            </value>
            <value>
                <fullName>大连办事处</fullName>
                <default>false</default>
                <label>大连办事处</label>
            </value>
            <value>
                <fullName>陕西办事处</fullName>
                <default>false</default>
                <label>陕西办事处</label>
            </value>
            <value>
                <fullName>青海办事处</fullName>
                <default>false</default>
                <label>青海办事处</label>
            </value>
            <value>
                <fullName>宁夏办事处</fullName>
                <default>false</default>
                <label>宁夏办事处</label>
            </value>
            <value>
                <fullName>甘肃办事处</fullName>
                <default>false</default>
                <label>甘肃办事处</label>
            </value>
            <value>
                <fullName>新疆办事处</fullName>
                <default>false</default>
                <label>新疆办事处</label>
            </value>
            <value>
                <fullName>山西办事处</fullName>
                <default>false</default>
                <label>山西办事处</label>
            </value>
            <value>
                <fullName>河南办事处</fullName>
                <default>false</default>
                <label>河南办事处</label>
            </value>
            <value>
                <fullName>上海办事处</fullName>
                <default>false</default>
                <label>上海办事处</label>
            </value>
            <value>
                <fullName>江苏办事处</fullName>
                <default>false</default>
                <label>江苏办事处</label>
            </value>
            <value>
                <fullName>江西办事处</fullName>
                <default>false</default>
                <label>江西办事处</label>
            </value>
            <value>
                <fullName>浙江办事处</fullName>
                <default>false</default>
                <label>浙江办事处</label>
            </value>
            <value>
                <fullName>安徽办事处</fullName>
                <default>false</default>
                <label>安徽办事处</label>
            </value>
            <value>
                <fullName>福建办事处</fullName>
                <default>false</default>
                <label>福建办事处</label>
            </value>
            <value>
                <fullName>广东办事处</fullName>
                <default>false</default>
                <label>广东办事处</label>
            </value>
            <value>
                <fullName>深圳办事处</fullName>
                <default>false</default>
                <label>深圳办事处</label>
            </value>
            <value>
                <fullName>广西办事处</fullName>
                <default>false</default>
                <label>广西办事处</label>
            </value>
            <value>
                <fullName>湖北办事处</fullName>
                <default>false</default>
                <label>湖北办事处</label>
            </value>
            <value>
                <fullName>湖南办事处</fullName>
                <default>false</default>
                <label>湖南办事处</label>
            </value>
            <value>
                <fullName>云南办事处</fullName>
                <default>false</default>
                <label>云南办事处</label>
            </value>
            <value>
                <fullName>贵州办事处</fullName>
                <default>false</default>
                <label>贵州办事处</label>
            </value>
            <value>
                <fullName>四川办事处</fullName>
                <default>false</default>
                <label>四川办事处</label>
            </value>
            <value>
                <fullName>重庆办事处</fullName>
                <default>false</default>
                <label>重庆办事处</label>
            </value>
            <value>
                <fullName>杭州办事处</fullName>
                <default>false</default>
                <label>杭州办事处</label>
            </value>
            <value>
                <fullName>杭州共通办事处</fullName>
                <default>false</default>
                <label>杭州共通办事处</label>
            </value>
            <value>
                <fullName>西安办事处</fullName>
                <default>false</default>
                <label>西安办事处</label>
            </value>
            <value>
                <fullName>西安共通办事处</fullName>
                <default>false</default>
                <label>西安共通办事处</label>
            </value>
            <value>
                <fullName>成都办事处</fullName>
                <default>false</default>
                <label>成都办事处</label>
            </value>
            <value>
                <fullName>成都共通办事处</fullName>
                <default>false</default>
                <label>成都共通办事处</label>
            </value>
            <value>
                <fullName>共通办事处</fullName>
                <default>false</default>
                <label>共通办事处</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair_Quotation__c/fields/LimitPrice_contract_discount_amount__c.field-meta.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>LimitPrice_contract_discount_amount__c</fullName>
    <externalId>false</externalId>
    <label>上限合同(90)</label>
    <precision>17</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Repair_Quotation__c/fields/Usage_Ratio_Price__c.field-meta.xml
@@ -2,8 +2,9 @@
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Usage_Ratio_Price__c</fullName>
    <externalId>false</externalId>
    <formula>(Loaner_repair__c + long_term_insurance__c + long_term_insurance_MD__c + Servince_contract_discount_amount__c + Other_discount__c) * (-1)</formula>
    <formula>(Loaner_repair__c + long_term_insurance__c + long_term_insurance_MD__c + Servince_contract_discount_amount__c + Other_discount__c+ LimitPrice_contract_discount_amount__c) * (-1)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <inlineHelpText>(Loaner_repair__c + long_term_insurance__c + long_term_insurance_MD__c + Servince_contract_discount_amount__c + Other_discount__c) * (-1)--20230305</inlineHelpText>
    <label>计入合同消费率的修理金额</label>
    <precision>18</precision>
    <required>false</required>
force-app/main/default/objects/Repair__c/fields/Average_Maintenance_Cost__c.field-meta.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Average_Maintenance_Cost__c</fullName>
    <externalId>false</externalId>
    <formula>IF(Cycle_between_failure__c=0, 0, Repair_List_Price_formula__c / Cycle_between_failure__c)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>例均维修费</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Average_Usage_Time__c.field-meta.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Average_Usage_Time__c</fullName>
    <externalId>false</externalId>
    <formula>IF(Cumulative_Uses__c=0, 0, Cumulative_Times__c / Cumulative_Uses__c)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>例均使用时间</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Repair__c/fields/BreakORFallOff__c.field-meta.xml
@@ -38,6 +38,12 @@
                <default>false</default>
                <label>没有</label>
            </value>
            <value>
                <fullName>null</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>null</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Cumulative_Times__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Cumulative_Times__c</fullName>
    <externalId>false</externalId>
    <label>通电时间</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackFeedHistory>false</trackFeedHistory>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Cumulative_Uses__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Cumulative_Uses__c</fullName>
    <externalId>false</externalId>
    <label>通电回数</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackFeedHistory>false</trackFeedHistory>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Cycle_between_failure__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Cycle_between_failure__c</fullName>
    <externalId>false</externalId>
    <label>CBF</label>
    <precision>18</precision>
    <required>false</required>
    <scale>0</scale>
    <trackFeedHistory>false</trackFeedHistory>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Delay15Min__c.field-meta.xml
@@ -28,6 +28,12 @@
                <default>false</default>
                <label>不知道</label>
            </value>
            <value>
                <fullName>null</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>null</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair__c/fields/InformationFrom__c.field-meta.xml
@@ -33,6 +33,12 @@
                <default>false</default>
                <label>医院以外</label>
            </value>
            <value>
                <fullName>null</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>null</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair__c/fields/Remaining_Amount__c.field-meta.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Remaining_Amount__c</fullName>
    <externalId>false</externalId>
    <formula>Maintenance_Contract__r.Remaining_Amount_F__c</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <label>剩余金额</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Currency</type>
</CustomField>
force-app/main/default/objects/Repair__c/fields/UseFailProductFinish__c.field-meta.xml
@@ -34,6 +34,12 @@
                <label>否-手术中止</label>
            </value>
            <value>
                <fullName>null</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>null</label>
            </value>
            <value>
                <fullName>undefined</fullName>
                <default>false</default>
                <isActive>false</isActive>
force-app/main/default/objects/Repair__c/fields/WhatProject__c.field-meta.xml
@@ -28,6 +28,12 @@
                <default>false</default>
                <label>c.其他</label>
            </value>
            <value>
                <fullName>null</fullName>
                <default>false</default>
                <isActive>false</isActive>
                <label>null</label>
            </value>
        </valueSetDefinition>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair__c/fields/work_location_select__c.field-meta.xml
@@ -211,6 +211,13 @@
        </valueSetDefinition>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>直送OGZ修理</controllingFieldValue>
            <controllingFieldValue>RC修理</controllingFieldValue>
            <controllingFieldValue>直送SORC修理</controllingFieldValue>
            <valueName>北京办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>天津办事处</valueName>
        </valueSettings>
@@ -256,36 +263,6 @@
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>大连办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>青海办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>宁夏办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>甘肃办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>新疆办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>山西办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>河南办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>现场修理</controllingFieldValue>
@@ -420,10 +397,28 @@
            <valueName>共通办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>直送OGZ修理</controllingFieldValue>
            <controllingFieldValue>RC修理</controllingFieldValue>
            <controllingFieldValue>直送SORC修理</controllingFieldValue>
            <valueName>北京办事处</valueName>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>青海办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>宁夏办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>甘肃办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>新疆办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>山西办事处</valueName>
        </valueSettings>
        <valueSettings>
            <controllingFieldValue>办事处修理</controllingFieldValue>
            <valueName>河南办事处</valueName>
        </valueSettings>
    </valueSet>
</CustomField>
force-app/main/default/objects/Repair__c/listViews/testzyh.listView-meta.xml
@@ -6,6 +6,7 @@
    <columns>NAME</columns>
    <columns>Elapsed_day_after_Return_c__c</columns>
    <columns>Repair_Shipped_Date__c</columns>
    <columns>Repair_Shipped_DateTime__c</columns>
    <columns>SAP_Service_Repair_No__c</columns>
    <columns>RepairSubOrder__c</columns>
    <columns>Repair_Returned_To_HP_Date__c</columns>
@@ -16,7 +17,6 @@
    <columns>SerialNumber__c</columns>
    <columns>Repair_Severity_Rank__c</columns>
    <columns>Follow_Comment__c</columns>
    <columns>Billing_Amount__c</columns>
    <filterScope>Everything</filterScope>
    <filters>
        <field>Repair_Shipped_Date__c</field>
force-app/main/default/objects/Repair__c/validationRules/work_location_select_self_or_4RC.validationRule-meta.xml
@@ -19,6 +19,8 @@
Not(Delivered_Product__r.RecordTypeId=&apos;01210000000kOPR&apos;)
&amp;&amp;
/* å—理办事处只能选自己省内的办事处 æˆ– å››å¤§RC */
IF(Incharge_Staff__r.Salesdepartment__c=&apos;3.西北&apos; &amp;&amp; Text(On_site_repair__c)=&apos;现场修理&apos; &amp;&amp; Text(work_location_select__c)=&apos;北京办事处&apos;,False,
IF(Text(Incharge_Staff__r.Province__c)=&apos;浙江省&apos; &amp;&amp; Text(On_site_repair__c)=&apos;现场修理&apos; &amp;&amp; Text(work_location_select__c)=&apos;浙江办事处&apos;,False,
IF(Text(work_location_select__c)=&apos;北京办事处&apos;, False,
IF(Text(work_location_select__c)=&apos;沈阳办事处&apos;, False,
IF(Text(work_location_select__c)=&apos;上海办事处&apos;, False,
@@ -32,7 +34,7 @@
IF(Text(work_location_select__c)=&apos;共通办事处&apos;, False,
IF(Text(work_location_select__c)=Incharge_Staff__r.RepairSalesPoint_Province_China__c, False,
  True)
)))))))))))</errorConditionFormula>
)))))))))))))</errorConditionFormula>
    <errorDisplayField>work_location_select__c</errorDisplayField>
    <errorMessage>受理办事处只能选自己省内的办事处 æˆ– ä¸ƒå¤§RC</errorMessage>
</ValidationRule>
force-app/main/default/objects/Repair__c/webLinks/Send_NFM103.webLink-meta.xml
@@ -194,11 +194,11 @@
//计算上限合同进行中的修理 LY 20230117 start
if(&quot;{!Repair__c.Limit_Price__c}&quot;==true){
    var repairSXAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status1__c=&apos;1.受理完毕&apos;&quot;);
    var repairSXAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status2__c in (&apos;01.分公司受理完毕&apos;,&apos;02.RC受理完毕&apos;,&apos;03.报价检查结束&apos;,&apos;04.报价跟进中&apos;)&quot;);
    var repairSXCount = repairSXAll.getArray(&quot;records&quot;);
    var remainingAmountAll = sforce.connection.query(&quot;SELECT Id,name,Remaining_Amount__c FROM Maintenance_Contract__c WHERE ID=&apos;{!Repair__c.Maintenance_ContractId__c}&apos;&quot;);
    var remainingAmount= remainingAmountAll.getArray(&quot;records&quot;);
    if (repairSXCount.length &gt;0 &amp;&amp; remainingAmount[0].Remaining_Amount__c &lt;=15000){
    if (repairSXCount.length &gt;1 &amp;&amp; remainingAmount[0].Remaining_Amount__c &lt;=150000){
        alert(&quot;该设备关联上限合同,目前修理剩余金额小于15万。请等待进行中修理完成后再进行申请&quot;);
        return;
    }
@@ -230,9 +230,9 @@
    urfSeries =urfSeriesInfo[0].URFLimitSerial__c ; 
}
//计算进行中的修理
var repairAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status1__c=&apos;1.受理完毕&apos; AND Delivered_Product__r.Product2.ProductURF__r.URFLimitSerial__c =&apos;&quot;+urfSeries+&quot;&apos;&quot;);
var repairAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status2__c in (&apos;01.分公司受理完毕&apos;,&apos;02.RC受理完毕&apos;,&apos;03.报价检查结束&apos;,&apos;04.报价跟进中&apos;) AND Delivered_Product__r.Product2.ProductURF__r.URFLimitSerial__c =&apos;&quot;+urfSeries+&quot;&apos;&quot;);
var repairCount = repairAll.getArray(&quot;records&quot;);
if (repairCount.length &gt;0 &amp;&amp; surplusCount==1){
if (repairCount.length &gt;1 &amp;&amp; surplusCount==1){
alert(&quot;该设备关联限次合同,目前剩余次数小于送修设备。请等待进行中修理完成后再进行申请&quot;);
return;
}
force-app/main/default/objects/SS_Prospect_5days_list__c/fields/OP_ThousandY_Copy__c.field-meta.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>OP_ThousandY_Copy__c</fullName>
    <externalId>false</externalId>
    <label>4.今年询价(不含税,千元)备份</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/SS_Prospect_5days_list__c/fields/Opportunity_ThousandY_Copy__c.field-meta.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Opportunity_ThousandY_Copy__c</fullName>
    <externalId>false</externalId>
    <label>3.今年注残(不含税,千元) å¤‡ä»½</label>
    <precision>18</precision>
    <required>false</required>
    <scale>2</scale>
    <trackHistory>false</trackHistory>
    <trackTrending>false</trackTrending>
    <type>Number</type>
    <unique>false</unique>
</CustomField>
force-app/main/default/objects/SolutionProjectRequirements__c/webLinks/NewSolutonPro.webLink-meta.xml
@@ -16,7 +16,7 @@
var AccountList = sforce.connection.query(&quot;select Id, Name, Hospital__r.Salesdepartment_HP__c,Hospital__r.Name, Hospital__r.Id, Hospital__r.OCM_Category__c from Account where Id = &apos;&quot;+&quot;{!Account.Id}&quot;+&quot;&apos;&quot;); 
var acc = AccountList.getArray(&quot;records&quot;); 
var url = &quot;a3k/e?Name=*&amp;CF00N10000008rq3f_lkid=&quot;+acc[0].Hospital__r.Id+&quot;&amp;CF00N10000008rq3f=&quot;+acc[0].Hospital__r.Name+&quot;&amp;CF00N10000008rq2Y_lkid={!Account.Id}&amp;CF00N10000008rq2Y={!Account.Name}&quot;;
var url = &quot;/a3k/e?Name=*&amp;CF00N10000008rq3f_lkid=&quot;+acc[0].Hospital__r.Id+&quot;&amp;CF00N10000008rq3f=&quot;+acc[0].Hospital__r.Name+&quot;&amp;CF00N10000008rq2Y_lkid={!Account.Id}&amp;CF00N10000008rq2Y={!Account.Name}&quot;;
//20220615 you XLIU-CFDB4C 
if(acc[0].Hospital__r.Salesdepartment_HP__c == &apos;1.华北&apos;){
url += &quot;&amp;CF00N10000008rq2p_lkid={!$Label.Solution_HB}&amp;CF00N10000008rq2p=肖 å¨œ&quot;;//00510000001OOLj
@@ -37,6 +37,7 @@
url += &quot;&amp;retURL=%2F{!Account.Id}&amp;nooverride=1&quot;;
window.top.location.href=url; 
//window.open(url);
}
foo();</url>
</WebLink>
force-app/main/default/objects/Statu_Achievements_DN__c/webLinks/insertFrameNumManag.webLink-meta.xml
New file
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>insertFrameNumManag</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>关联数据</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
var foo = function() {
var sId = &apos;{!Statu_Achievements_DN__c.Id}&apos;;
try {
var rtn = sforce.apex.execute(&quot;SetFrameNumManageWebService&quot;, &quot;insertFrameNumManag&quot;, {Id: sId});
if (rtn == &apos;1&apos;) {
alert(&apos;更新数据中,请等待执行完毕。&apos;);
} else {
alert(rtn);
}
} catch(e) {
if (e.faultcode == &apos;sf:INSUFFICIENT_ACCESS&apos;) {
alert(&apos;没有执行权限。&apos;);
} else {
alert(e);
}
}
window.location.reload();
};
foo();</url>
</WebLink>
force-app/main/default/objects/TransferApplyDetail__c/fields/Salesdepartment_After__c.field-meta.xml
@@ -91,7 +91,7 @@
                <label>15.医疗法规事务和质量管理本部</label>
            </value>
            <value>
                <fullName>16.消化·呼吸领域解决方案本部</fullName>
                <fullName>16.Solution本部</fullName>
                <default>false</default>
                <label>16.Solution本部</label>
            </value>
force-app/main/default/objects/TransferApplyDetail__c/fields/Salesdepartment__c.field-meta.xml
@@ -75,7 +75,7 @@
                <label>12.能量事业本部</label>
            </value>
            <value>
                <fullName>16.消化·呼吸领域解决方案本部</fullName>
                <fullName>16.Solution本部</fullName>
                <default>false</default>
                <label>16.Solution本部</label>
            </value>
force-app/main/default/objects/eSignForm__c/fields/agencyAccOrSAPConfirmDate__c.field-meta.xml
@@ -1,10 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>agencyAccOrSAPConfirmDate__c</fullName>
    <description>2023-02-16确认逻辑 å…¨éƒ¨éªŒæ”¶ä¸”营业管理部审批通过后,显示签收日期并发送SAP</description>
    <externalId>false</externalId>
    <formula>if (Text(agencyAutoSignUpStatus__c) == &apos;已批准&apos;,
    if (agencyAcceptResultSignUp__c = &apos;全部验收&apos; || isblank(agencyConfirmDate__c), agencySignUpDate__c, agencyConfirmDate__c), null)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <formula>if (
   AND(Text(agencyAutoSignUpStatus__c) == &apos;已批准&apos;,agencyAcceptResult__c = &apos;全部验收&apos;),
   agencySignUpDate__c,
   null
)</formula>
    <label>报表用-经销商签收确认日期</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
force-app/main/default/objects/eSignForm__c/fields/hpAccOrSAPConfirmDate__c.field-meta.xml
@@ -1,10 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>hpAccOrSAPConfirmDate__c</fullName>
    <description>2023-02-16确认逻辑 å…¨éƒ¨éªŒæ”¶ä¸”营业管理部审批通过后,显示签收日期并发送SAP</description>
    <externalId>false</externalId>
    <formula>if (Text(HPSignUpStatus__c) == &apos;已批准&apos;,
    if(HPAcceptResult__c = &apos;全部验收&apos; || isblank(HPConfirmDate__c),HPSignUpDate__c,HPConfirmDate__c), null)</formula>
    <formulaTreatBlanksAs>BlankAsZero</formulaTreatBlanksAs>
    <formula>if (
   AND(Text(HPSignUpStatus__c) == &apos;已批准&apos;,HPAcceptResult__c = &apos;全部验收&apos;),
   HPSignUpDate__c,
   null
)</formula>
    <label>报表用-医院签收确认日期</label>
    <required>false</required>
    <trackHistory>false</trackHistory>
force-app/main/default/objects/eSignForm__c/listViews/View_Agency_machi.listView-meta.xml
New file
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<ListView xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>View_Agency_machi</fullName>
    <columns>NAME</columns>
    <columns>OCM_man_province_cus__c</columns>
    <columns>Statu_Achievements__c</columns>
    <columns>DNName__c</columns>
    <columns>Agency1_Name_F__c</columns>
    <columns>AgencyNum__c</columns>
    <columns>agencyDNSignUpStatus__c</columns>
    <columns>CREATED_DATE</columns>
    <filterScope>Everything</filterScope>
    <filters>
        <field>agencyDNSignUpStatus__c</field>
        <operation>equals</operation>
        <value>未签收</value>
    </filters>
    <filters>
        <field>skip_Distribution_Sign__c</field>
        <operation>equals</operation>
        <value>0</value>
    </filters>
    <label>经销商待签收的订单</label>
    <language>zh_CN</language>
</ListView>
force-app/main/default/objects/eSignForm__c/webLinks/insertFrameNumManag.webLink-meta.xml
New file
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>insertFrameNumManag</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>关联进口单证</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
var foo = function() {
    var sId = &apos;{!eSignForm__c.Statu_Achievements_DNId__c}&apos;;
    var esId = &apos;{!eSignForm__c.Id}&apos;;
    try {
        var rtn = sforce.apex.execute(&quot;SetFrameNumManageWebService&quot;, &quot;insertFrameNumManag&quot;, {&quot;Id&quot;: sId,&quot;esId&quot;:esId});
        if (rtn == &apos;1&apos;) {
            alert(&apos;更新数据中,请等待执行完毕。&apos;);
        } else {
            alert(rtn);
        }
    } catch(e) {
        if (e.faultcode == &apos;sf:INSUFFICIENT_ACCESS&apos;) {
            alert(&apos;没有执行权限。&apos;);
        } else {
            alert(e);
        }
    }
    window.location.reload();
};
foo();</url>
</WebLink>
force-app/main/default/pages/AccessoryAdd.page
@@ -40,6 +40,7 @@
                        <apex:outputPanel >
                            <apex:outputText value="关键字" style="width:50px"/>
                            <apex:inputText value="{!keyword}" style="width:200px;margin-left: 50px;"/>
                            <!-- lighting升级 20230209 lt å…³é”®å­—文本框问题 åŽ»æŽ‰ margin-left: 50px; -->
                        </apex:outputPanel>
                        <apex:commandButton value="检索" action="{!searchOpp}" onclick="blockme();" rerender="allForm" oncomplete="unblockUI();" />
                    </apex:pageBlockSectionItem>
@@ -50,6 +51,7 @@
                        <td width="200px">
                          <apex:outputLabel for="bieCunFangDi" value="备品存放地" />
                          <!-- <apex:outputText value="{!bieCunFangDi}"/> -->
                          <!-- lighting升级 20230209 lt å¤‡å“å­˜æ”¾åœ°æ–‡æœ¬æ¡†é—®é¢˜ åŽ»æŽ‰ margin-left: 20px; -->
                          <apex:selectList value="{!bieCunFangDi}" size="1" style="margin-left: 20px; width:110px" id="bieCunFangDi">
                            <apex:selectOptions value="{!bieCunFangDiOps}"/>
                            <!-- #OLY_OCM-659 å¤‡å“å­˜æ”¾åœ° é€‰é¡¹å˜åŒ–时,本部 é€‰é¡¹å€¼éšä¹‹å‘生变化 -->
force-app/main/default/pages/AccountTargetTab.page
@@ -1,4 +1,4 @@
<apex:page controller="AccountTargetTabController" showChat="false" showHeader="false" sidebar="false" action="{!init}" id="Page" lightningStylesheets="true">
<apex:page controller="AccountTargetTabController" showChat="false" showHeader="false" sidebar="false" action="{!init}" id="Page">
<title>目标数</title>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
@@ -120,6 +120,14 @@
                                <td ></td>
                            </tr>
                        </apex:repeat>
                        <tr>
                                <td style="height:20px;"></td>
                                <td ></td>
                            </tr>
                         <tr>
                                <td style="height:20px;"></td>
                                <td ></td>
                            </tr>
                        <!-- 2022/01/07 ssm å·¦ä¾§ç©ºè¡Œ end -->
                        <tr>
                            <td style="height:20px;">{!$ObjectType.Account_Number_of_target__c.fields.TargetCustomerModifier__c.label}</td>
@@ -208,13 +216,39 @@
                        </tr>
                        <!-- 2022/01/07 ssm å³ä¾§æœ€åŽçš„地方拆成2行 ä¸Žä¹‹å‰çš„æ•ˆæžœä¿æŒä¸€è‡´ start -->
                        <tr>
                            <td style="height:20px;"></td>
                            <td style=""></td>
                            <!--<td style="height:20px;"></td>
                            <td style=""></td>-->
                            <!--20230224 you start DB202302339407-->
                            <td style="height:20px;">{!$ObjectType.Account_Number_of_target__c.fields.LostPricesqt__c.label}</td>
                            <td style="text-align: center;">
                                <apex:outputField value="{!history.rec.LostPricesqt__c}" style="width:90%; text-align: right;" />
                            </td>
                            <td>{!$ObjectType.Account_Number_of_target__c.fields.AllHostsNumber_first__c.label}</td>
                            <td style="text-align: center;">
                                <apex:outputField value="{!history.rec.AllHostsNumber_first__c}" style="width:90%; text-align: right;" />
                            </td>
                        </tr>
                        <tr>
                            <!--<td style="height:20px;"></td>
                            <td style=""></td>-->
                            <td style="height:20px;">{!$ObjectType.Account_Number_of_target__c.fields.Dealer_Final_Priceqt__c.label}</td>
                            <td style="text-align: center;">
                                <apex:outputField value="{!history.rec.Dealer_Final_Priceqt__c}" style="width:90%; text-align: right;" />
                            </td>
                            <td style="height:20px;"></td>
                            <td style=""></td>
                        </tr>
                        <tr>
                            <!--<td style="height:20px;"></td>
                            <td style=""></td>-->
                            <td style="height:20px;">{!$ObjectType.Account_Number_of_target__c.fields.HospitalTransactionAmountqt__c.label}</td>
                            <td style="text-align: center;">
                                <apex:outputField value="{!history.rec.HospitalTransactionAmountqt__c}" style="width:90%; text-align: right;" />
                            </td>
                            <td style="height:20px;"></td>
                            <td style=""></td>
                        </tr>
                        <!--20230224 you end DB202302339407-->
                        <!-- 2022/01/07 ssm å³ä¾§è¡¥ç©ºè¡Œ start -->
                        <apex:repeat value="{!history.emptyLineRight}" var="elr" id="elr_repeat">
                            <tr>
force-app/main/default/pages/AssetMaintain.page
@@ -46,6 +46,7 @@
        }
        div#in_Div_L td.dataCellBorder1 {
            border-width: 1px;
            border-left: 1px solid rgb(229, 229, 229);
        }
        div#in_Div_R td.dataCellBorder1 {
            border-width: 1px;
force-app/main/default/pages/CM_SearchContactService.page
@@ -19,6 +19,12 @@
    <script type="text/javascript">
        // 2022/02/15 å¼ åŽå»º æ”¹é€ PI start
        //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  start
        var accountId = '{!accountIdV2}'
        var accountName = '';
        var dataIdManageCodeMap = {};
        var staticResourcesV2 = JSON.parse('{!staticResourceContactV2}');
        //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  end
        var staticResources = JSON.parse('{!staticResource}');
        var contactAWSIds = JSON.parse('{!contactAWSIds}');
        var LastName = '';
@@ -92,6 +98,7 @@
        }
        function editSaveJs() {
            hiddenErrorMsgNode();       //zhj MEBG新方案改造 2022-11-24
            document.getElementById("errorMsg").innerHTML = '';
            if(!document.getElementById("Page:allForm:editBlock:Search_LastName__c").value){
@@ -179,16 +186,37 @@
            return null;
        }
        function ProcessPI(sobjJson, payloadForNewPI) {
            //blockme();
            let url = staticResources.newUrl
            if (now_edit_id) {
                url = staticResources.updateUrl
            }
            AWSService.post(url, payloadForNewPI, function(result){
                aws_result = result;
                SetEditObj();
                saveNew();
            }, staticResources.token);
            // //blockme();
            // //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  start
            // // let url = staticResources.newUrl
            // // if (now_edit_id) {
            // //     url = staticResources.updateUrl
            // // }
            // let url = staticResourcesV2.newUrl
            // if (now_edit_id) {
            //     url = staticResourcesV2.updateUrl
            // }
            // //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  end
            // AWSService.post(url, payloadForNewPI, function(result){
            //     aws_result = result;
            //     //zhj MEBG新方案改造 2022-11-24 start
            //     if(r.status == '129'){
            //         alertErrorMessage('客户 [ '+accountName+ ' ],已存在相同名字的联系人 äººå‘˜ç®¡ç†ç¼–码 ['+dataIdManageCodeMap[r.object[0].dataId]+' ] ï¼Œä¸èƒ½é‡å¤åˆ›å»ºï¼Œè¯·äº†è§£');
            //         unblockUI();
            //         return
            //     }
            //     if(r.status == '130'){
            //         if(r.object[0] && r.object[0].sfRecordId != null && r.object[0].sfRecordId != '')
            //             alertErrorMessage('已找到重复值: UniqueNumber__c ä¸Žè®°å½•值重复,ID ä¸º: '+r.object[0].sfRecordId+'客户人员信息');
            //         else
            //             alertErrorMessage('数据中存在重复的电话号码');
            //         unblockUI();
            //         return
            //     }
            //     //zhj MEBG新方案改造 2022-11-24 end
            //     SetEditObj();
            //     saveNew();
            // }, staticResources.token);
        }
        function Trans(){
@@ -210,11 +238,61 @@
        }
        function GetEditObj(){
            return JSON.stringify([{
            //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  start
            Visualforce.remoting.Manager.invokeAction(
                'CM_SearchContactServiceController.searchContactByAccountId',
                accountId,
                function (result, event) {
                    if(result.status == 'fail'){
                        alertErrorMessage(result.message);
                        return
                    }
                    console.log('result = ' + JSON.stringify(result));
                    accountName = result.accountName;
                    dataIdManageCodeMap = result.dataIdManageCodeMap;
                    var contactList = '';
                    for(var i = 0; i<result.contactList.length; i++){
                        if(result.contactList[i].AWS_Data_Id__c)
                            contactList += ',' + result.contactList[i].AWS_Data_Id__c;
                    }
                    contactList = contactList.substring(1);
                    var payloadForNewPI =  JSON.stringify([{
                lastName : document.getElementById("Page:allForm:editBlock:Search_LastName__c").value,
                //phone : document.getElementById("Page:allForm:editBlock:Phone").value,
                        mobilePhone : '',
                dataId:document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value,
                        contactIds : contactList,
                        isMobileVerif : result.isMobileVerif,
                        isNameMobileVerif : result.isNameMobileVerif
            }]);
                    console.log('payloadForNewPI = ' + JSON.stringify(payloadForNewPI));
                    debugger
                    let url = staticResourcesV2.newUrl
                    if (now_edit_id) {
                        url = staticResourcesV2.updateUrl
                    }
                    //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  end
                    AWSService.post(url, payloadForNewPI, function(result){
                        aws_result = result;
                        //zhj MEBG新方案改造 2022-11-24 start
                        if(result.status == '129'){
                            alertErrorMessage('客户 [ '+accountName+ ' ],已存在相同名字的联系人 äººå‘˜ç®¡ç†ç¼–码 ['+dataIdManageCodeMap[result.object[0].dataId]+' ] ï¼Œä¸èƒ½é‡å¤åˆ›å»ºï¼Œè¯·äº†è§£');
                            unblockUI();
                            return
                        }
                        if(result.status == '130'){
                            if(result.object[0] && result.object[0].sfRecordId != null && result.object[0].sfRecordId != '')
                                alertErrorMessage('已找到重复值: UniqueNumber__c ä¸Žè®°å½•值重复,ID ä¸º: '+result.object[0].sfRecordId+'客户人员信息');
                            else
                                alertErrorMessage('数据中存在重复的电话号码');
                            unblockUI();
                            return
                        }
                        //zhj MEBG新方案改造 2022-11-24 end
                        SetEditObj();
                        saveNew();
                    }, staticResources.token);
                });
                //zhj 2022-02-04 æ–°æ–¹æ¡ˆæ”¹é€  end
        }
        function SetEditObj(){
@@ -228,7 +306,19 @@
            }
            
        }
        //zhj MEBG新方案改造 2022-11-24 start
        function alertErrorMessage(errorMsg) {
            let errorMsgNode = document.getElementById("Page:allForm:editBlock:msgContent");
            errorMsg = '错误:无效数据。' + '\n' + errorMsg;
            errorMsgNode.innerText = errorMsg;
            errorMsgNode.className = 'pbError';
        }
        function hiddenErrorMsgNode() {
            let errorMsgNode = document.getElementById("Page:allForm:editBlock:msgContent");
            errorMsgNode.innerText = '';
            errorMsgNode.className = '';
        }
        //zhj MEBG新方案改造 2022-11-24 end
        // 2022å¹´2月15日 PI改造 å¾äº® end
    </script>
@@ -242,7 +332,7 @@
        </apex:actionFunction>
        <apex:actionFunction name="saveNew" action="{!saveNew}" rerender="allForm,allPanel,sfContactId" onComplete="Trans();">
        </apex:actionFunction>
        <apex:actionFunction name="editClear" action="{!editClear}" rerender="allForm,allPanel,sfContactId" onComplete="unblockUI();">
        <apex:actionFunction name="editClear" action="{!editClear}" rerender="allForm,allPanel,sfContactId" onComplete="unblockUI();searchContactAll()">
        </apex:actionFunction>
        <!-- 2022/02/15 å¼ åŽå»º æ¸…空LineInfoList start -->
        <apex:actionFunction name="clearLineInfoList" action="{!clearLineInfoList}" rerender="allForm" onComplete="unblockUI();">
@@ -320,6 +410,12 @@
                    <apex:commandButton onclick="editClearJs();" value="清空" rerender="dummy"/>
                    <apex:commandButton onclick="editSaveJs();" value="保存" rerender="dummy"/>
                </apex:pageBlockButtons>
                <!-- Error Msg-->
                <div style="text-align: center;">
                    <apex:outputPanel id="errorMsg">
                        <apex:pageMessages id="msgContent" escape="false" />
                    </apex:outputPanel>
                </div>
                <!-- zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-05  start-->
                <!-- <apex:inputHidden id="LastName_Encrypted__c" value="{!newCon.LastName_Encrypted__c}"/>
                <apex:inputHidden id="Phone_Encrypted__c" value="{!newCon.Phone_Encrypted__c}"/> -->
force-app/main/default/pages/ConsumEquipmentSetReturn.page
@@ -7,6 +7,9 @@
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
<apex:stylesheet value="{!URLFOR($Resource.ConsumEquipmentSetReturnCss)}"/>
<style type="text/css">
div#out_Div_L {
  position:relative;
force-app/main/default/pages/ConsumTrialDis.page-meta.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>44.0</apiVersion>
    <availableInTouch>false</availableInTouch>
    <availableInTouch>true</availableInTouch>
    <confirmationTokenRequired>false</confirmationTokenRequired>
    <label>ConsumTrialDis</label>
</ApexPage>
force-app/main/default/pages/DirectAssign.page
@@ -7,7 +7,7 @@
</script>
<style type="text/css">
  .bPageBlock .detailList .dataCol {
    width: 15%;
    width: 15%!important;
  }
</style>
<head>
@@ -28,7 +28,7 @@
        <apex:pageBlockSection columns="3" collapsible="false" title="抢夺暂定分配画面" rendered="{!targetId!=''}" >
            <apex:outputField value="{!raesd.Fixture_Model_No_text__c}" />
            <apex:outputField value="{!raesd.Asset__c}" />
            <apex:outputField label="原申请单号" value="{!raesd.Rental_Apply__r.Name}" />
            <apex:outputField label="原申请单号" value="{!raesd.Rental_Apply_Object__r.Name}" />
        </apex:pageBlockSection>
        <div style="padding-left: 70px;margin: 10px;">
@@ -52,13 +52,13 @@
            <apex:column headerValue="选择">
                <apex:inputCheckbox value="{!rased.selected}"/>
            </apex:column>
            <apex:column value="{!rased.detail.Rental_Apply__r.Name}" ></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply_Object__r.Name}" ></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply_Equipment_Set__r.Name}"></apex:column>
            <apex:column value="{!rased.detail.Queue_Day__c}"></apex:column>
            <apex:column value="{!rased.detail.Queue_Number__c}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply__r.WorkPlace__c}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply__r.Person_In_Charge__r.Name}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply__r.demo_purpose2__c}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply_Object__r.WorkPlace__c}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply_Object__r.Person_In_Charge__r.Name}"></apex:column>
            <apex:column value="{!rased.detail.Rental_Apply_Object__r.demo_purpose2__c}"></apex:column>
            <apex:column value="{!rased.detail.Allow_Adjust_Queue_Flag__c}"></apex:column>
            <apex:column value="{!rased.detail.jumpReason__c}"></apex:column>
            <apex:column value="{!rased.detail.Queue_Conment__c}"></apex:column>
force-app/main/default/pages/EquipmentRentalExtend.page
@@ -165,7 +165,8 @@
    blockHeight = j$(window).innerHeight() - j$(escapeVfId('allPage:allForm:searchBlock')).height() - j$(escapeVfId('allPage:allForm:dataBlock:pageBlockButton1')).height() - j$('table#msgtable').height() - heightAjustment;
    sbwidth = scrollbarWidth();
    R_width = j$(escapeVfId('allPage:allForm:dataBlock')).width();
    blockWidth = 745;
    blockWidth = 745; //2023-02-24   zyh   æ³¨é‡Š
    // blockWidth = 1075; //2023-02-24   zyh   add
    j$(escapeVfId('allPage:allForm:dataBlock')).css('height', blockHeight + 78 + 'px');
    j$('div#in_Div_L').css('width', blockWidth+170 + 'px');
    j$('div#out_Div_L').css('width', blockWidth+170 + 'px');
@@ -392,29 +393,35 @@
                        <td style="width:110px" align="center">
                            <a href="#" onclick="sortTableJs('0');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply__c.fields.Name.label}</a> {!sortOrder[0]}
                        </td>
                        <td style="width:60px" align="center">
                            <a href="#" onclick="sortTableJs('1');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.RAES_Status__c.label}</a> {!sortOrder[1]}
                        </td>
                        <!-- å¤‡å“å‡ºå€Ÿæ‹…当 -->
                        <td style="width:110px" align="center">{!$ObjectType.Rental_Apply__c.fields.Person_In_Charge__c.label}</td>
                        <!-- åŒ»é™¢å -->
                        <td style="width:100px" align="center">
                            <a href="#" onclick="sortTableJs('4');return false;" style="text-decoration: underline;">{!$ObjectType.Account.fields.Hospital_Name__c.label}</a> {!sortOrder[4]}
                        </td>
                        <td style="width:110px" align="center">{!$ObjectType.Fixture_Set__c.fields.Name.label}</td>
                        <td style="width:100px" align="center">
                            <a href="#" onclick="sortTableJs('3');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.First_RAESD_Model_No_F__c.label}</a> {!sortOrder[3]}
                        </td>
                        <td style="width:85px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.SerialNumber_F__c.label}</td>
                        <td style="width:85px" align="center">记录类型</td>
                        <!-- 2023-02-24   zyh   add   start -->
                        <td style="width:110px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Final_reply_day__c.label}</td>
                        <td style="width:110px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.RC_return_to_office__c.label}</td>
                        <td style="width:110px" align="center">{!$ObjectType.Rental_Apply__c.fields.Cross_Region_AssignYN__c.label}</td>
                        <!-- 2023-02-24   zyh   add   end -->
                        <td style="width:60px" align="center">
                            <a href="#" onclick="sortTableJs('1');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.RAES_Status__c.label}</a> {!sortOrder[1]}
                        </td>
                    </tr>
                </table>
            </div> 
            <div id="out_Div_R" >
                <table class="list" border="1" style="border-collapse: collapse;table-layout:fixed;border-bottom-width: 0px;border-spacing:0;width:660px;" id="table_out_Div_R">
                    <tr style="background-color:#DCDCDC;" class="headerRow">
                       <!-- 2023-02-27   zyh   add   è°ƒæ•´é¡ºåº   start -->
                        <!-- å¤‡å“å‡ºå€Ÿæ‹…当 -->
                        <td style="width:110px" align="center">{!$ObjectType.Rental_Apply__c.fields.Person_In_Charge__c.label}</td>
                        <td style="width:110px" align="center">{!$ObjectType.Fixture_Set__c.fields.Name.label}</td>
                        <td style="width:85px" align="center">记录类型</td>
                       <!-- 2023-02-27   zyh   add   è°ƒæ•´é¡ºåº   end -->
                        <td style="width:85px" align="center">
                            <a href="#" onclick="sortTableJs('6');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Demo_purpose1__c.label}</a> {!sortOrder[6]}
                        </td>
@@ -435,9 +442,9 @@
                        <td style="width:120px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Received_Confirm__c.label}</td>
                        <td style="width:140px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Received_ng_detail__c.label}</td>
                       
                        <td style="width:80px" align="center">
                        <!-- <td style="width:80px" align="center">
                            <a href="#" onclick="sortTableJs('5');return false;" style="text-decoration: underline;">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Final_reply_day__c.label}</a> {!sortOrder[5]}
                        </td>
                        </td> --><!-- 2023-02-24   zyh   æ³¨é‡Š -->
                        <td style="width:80px" align="center">{!$ObjectType.Rental_Apply_Equipment_Set__c.fields.Bollow_Date__c.label}</td>
                        <td style="width:80px" align="center">违规理由</td>
<!-- *************************Delete 20160602 No.153 è¶™å¾³èг Start************************* -->
@@ -478,14 +485,16 @@
                        <td class="dataCellBorder1" style="width:20px" align="center"><apex:inputCheckbox value="{!info.check}" id="rowCheck" disabled="{!!info.canChange}"/><apex:inputHidden id="canChange" value="{!info.canChange}"/></td>
                        <td class="dataCellBorder1 td{!info.status}" style="width:110px;" align="left"><apex:outputField value="{!info.raes.Rental_Apply__c}"/></td>
                        
                        <td class="dataCellBorder1" style="width:60px" align="left"><apex:outputField value="{!info.raes.RAES_Status__c}"/></td>
                        <td class="dataCellBorder1" align="left" style="width:110px"><apex:outputText value="{!info.rentalPerson}"/></td>
                        <td class="dataCellBorder1" align="left" style="width:100px"><apex:outputText value="{!info.hpName}"/></td>
                        <td class="dataCellBorder1" style="width:110px" align="left"><apex:outputField value="{!info.raes.Fixture_Set__c}"/></td>
                        <td class="dataCellBorder1" style="width:100px" align="left"><apex:outputText value="{!info.esCode}"/></td>
                        <td class="dataCellBorder1" style="width:85px" align="left"><apex:outputText value="{!info.serialNumber}"/></td>
                        <td class="dataCellBorder1" style="width:85px" align="left"><apex:outputText value="{!info.recordTypeName}"/></td>
                        <!-- 2023-02-24   zyh   add   start -->
                        <td class="dataCellBorder1" style="width:110px;" align="left"><apex:outputField value="{!info.raes.Final_reply_day__c}"/></td>
                        <td class="dataCellBorder1" style="width:110px;" align="left"><apex:outputField value="{!info.raes.RC_return_to_office__c}"/></td>
                        <td class="dataCellBorder1" style="width:110px;" align="left"><apex:outputField value="{!info.raes.Rental_Apply__r.Cross_Region_AssignYN__c}"/></td>
                        <!-- 2023-02-24   zyh   add   end -->
                        <td class="dataCellBorder1" style="width:60px" align="left"><apex:outputField value="{!info.raes.RAES_Status__c}"/></td>
                        </tr>
                        <apex:variable value="{!Cnt+1}" var="Cnt" />
                        </apex:repeat>
@@ -496,7 +505,13 @@
                    <apex:variable value="{!0}" var="Cnt_R" />
                    <apex:repeat id="dataline_R" value="{!raesInfoListList[currPage-1]}" var="info">
                    <tr id="tableData_R_{!Cnt_R}" class="dataRow" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" >
                       <!-- 2023-02-27   zyh   add   è°ƒæ•´é¡ºåº   start -->
                       
                        <td class="dataCellBorder1" align="left" style="width:110px"><apex:outputText value="{!info.rentalPerson}"/></td>
                        <td class="dataCellBorder1" style="width:110px" align="left"><apex:outputField value="{!info.raes.Fixture_Set__c}"/></td>
                        <td class="dataCellBorder1" style="width:85px" align="left"><apex:outputText value="{!info.recordTypeName}"/></td>
                       <!-- 2023-02-27   zyh   add   è°ƒæ•´é¡ºåº   end -->
                        <td class="dataCellBorder1" style="width:85px" align="left"><apex:outputField value="{!info.raes.Demo_purpose1__c}"/></td>
                        <td class="dataCellBorder1" style="width:90px" align="left"><apex:outputField value="{!info.raes.Demo_purpose2__c}"/></td>
                        <td class="dataCellBorder1" style="width:100px" align="left"><apex:outputText value="{!info.esName}"/></td>
@@ -517,7 +532,7 @@
                        <!-- <apex:inputField value="{!info.raes.Received_ng_detail__c}" style="width:95%"/> -->
                        </td>
                        
                        <td class="dataCellBorder1" style="width:80px" align="left"><apex:outputField value="{!info.raes.Final_reply_day__c}"/></td>
                        <!-- <td class="dataCellBorder1" style="width:80px" align="left"><apex:outputField value="{!info.raes.Final_reply_day__c}"/></td> --><!-- 2023-02-24   zyh   æ³¨é‡Š -->
                        <td class="dataCellBorder1" style="width:80px" align="left"><apex:outputField value="{!info.raes.Bollow_Date__c}"/></td>
                        <td class="dataCellBorder1" style="width:80px" align="left"><apex:outputText value="{!info.FoulReasonStr}"/></td>
<!-- *************************Delete 20160602 No.153 è¶™å¾³èг Start************************* -->
force-app/main/default/pages/EquipmentRentalLostReport.page
@@ -207,7 +207,7 @@
                                    </apex:outputPanel>
                                </td>
                            </apex:repeat>
                            <td align="center"><apex:inputCheckbox value="{!info.haveConfirm_Lost_Date}" disabled="{!info.lrdApprovaled}" id="rowCheck1"/></td>
                            <!-- <td align="center"><apex:inputCheckbox value="{!info.haveConfirm_Lost_Date}" disabled="{!info.lrdApprovaled}" id="rowCheck1"/></td> -->
                        </tr>
                    </apex:repeat>
                </table>
force-app/main/default/pages/EquipmentSetShippmentReceived1.page
@@ -97,6 +97,7 @@
        list-style-type: none;
        padding: 0;
        height: 25px;
        /* lighting升级 20230209 lt â€œä¸‹æž¶â€â€œå‡ºåº“检测”有重叠问题 åŽ»æŽ‰ height: 35px; */
        border-bottom: 5px solid #3b5998;
    }
    #Step_tab li {
force-app/main/default/pages/EquipmentSetShippmentReceived3.page
@@ -319,7 +319,7 @@
                        <br/>
                        <apex:variable var="SetName" value="{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name}" />
                        <apex:variable var="applychange" value="{!1}" />
                        <input type="hidden" value="{!esdInfo.rec.Rental_Apply__r.Pre_inspection_ng_num__c}" data-ngnum="{!esdInfo.rec.Rental_Apply__c}"/>
                  <!--      20230220 ljh uat ä¸´æ—¶æ³¨é‡Š <input type="hidden" value="{!esdInfo.rec.Rental_Apply_Object__r.Pre_inspection_ng_num__c}" data-ngnum="{!esdInfo.rec.Rental_Apply__c}"/> -->
                    </apex:outputPanel>
                    <apex:outputPanel layout="none" rendered="{!IF(SetName2=esdInfo.rec.Rental_Apply_Equipment_Set__r.Id, false, true)}">
@@ -337,7 +337,7 @@
                    <apex:outputPanel layout="none" rendered="{!IF(indexloop == 1, true, false)}">
                        <h2 style="padding: 5px;" class="detailtab">{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Rental_Apply__r.Name}</h2>
                        <br/>
                        <input type="hidden" value="{!esdInfo.rec.Rental_Apply__r.Pre_inspection_ng_num__c}" data-ngnum="{!esdInfo.rec.Rental_Apply__c}"/>
                        <!-- 20230220 ljh uat ä¸´æ—¶æ³¨é‡Š <input type="hidden" value="{!esdInfo.rec.Rental_Apply__r.Pre_inspection_ng_num__c}" data-ngnum="{!esdInfo.rec.Rental_Apply__c}"/> -->
                        <apex:outputPanel layout="none" rendered="{!IF(esdInfo.rec.Rental_Apply_Equipment_Set__r.Inspection_not_finish__c > 0, false, true)}">
                        <apex:inputCheckbox value="{!esdInfo.isChecked}"/><input type="hidden" value="{!esdInfo.rec.Rental_Apply_Equipment_Set__c}"/><input type="hidden" value="{!esdInfo.rec.Rental_Apply__c}"/>
                        </apex:outputPanel>
force-app/main/default/pages/EquipmentSetShippmentReceived5.page
@@ -6,10 +6,13 @@
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.instascan)}"/>
<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
<apex:stylesheet value="{!URLFOR($Resource.EquipmentSetShippmentReceivedcss)}"/>
<apex:stylesheet value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.css')}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.js')}"/>
<script type="text/javascript">
var Session_ID = '{!$Api.Session_ID}';
function getQueryVariable(variable)
{
       var query = window.location.search.substring(1);
@@ -63,6 +66,25 @@
        })
    }
}
function OpenRentalApplyFault(faultReportFlag, radetailId, radetailName, personId, personName, purpose2, name, hospitalId, hospitalName, serialNumber, fixtureNo, workPlace, deptCategory){
    if(faultReportFlag == '不存在故障报告单'){
        window.open("/a5F/e?Name=*" + "&CF00N9D000007hkLN_lKid=" + radetailId + "&CF00N9D000007hkLN=" + radetailName + "&CF00N9D000007jemP_lKid=" + personId + "&CF00N9D000007jemP=" + personName + "&00N9D000007jrE6=" + purpose2 + "&00N9D000007ijyA=" + name + "&CF00N9D000007jrEG_lKid=" + hospitalId + "&CF00N9D000007jrEG=" + hospitalName + "&00N9D000007jrEL=" + serialNumber + "&00N9D000007jrEQ=" + fixtureNo + "&00N9D000007jrEV=" + workPlace + "&00N9D000007jrJW=" + deptCategory);
    }else{
        // if(confirm('是否打开或创建新的检测分析报告?')){
        //     if (faultReportFlag == '存在故障报告单'){
        //         window.open("/a5C/e?Name=*" + "&CF00N9D000007hkLN_lKid=" + radetailId + "&CF00N9D000007hkLN=" + radetailName + "&CF00N9D000007jemP_lKid=" + personId + "&CF00N9D000007jemP=" + personName + "&00N9D000007jrE6=" + purpose2 + "&00N9D000007ijyA=" + name + "&CF00N9D000007jrEG_lKid=" + hospitalId + "&CF00N9D000007jrEG=" + hospitalName + "&00N9D000007jrEL=" + serialNumber + "&00N9D000007jrEQ=" + fixtureNo + "&00N9D000007jrEV=" + workPlace + "&00N9D000007jrJW=" + deptCategory);
        //     }else{
        //         window.open("/" + faultReportFlag);
        //     }
        // }
        if(confirm('已存在检测分析报告')){
            window.open("/" + faultReportFlag);
        }
    }
}
function filljs1() {
   j$("select[name$='inspectionResult']").val("OK");
   j$("select[name$='inspectionResultNg']").prop("selectedIndex", 0);
@@ -295,7 +317,9 @@
                        <li style="{!IF(esdInfo.rec.Inspection_result_after_NG__c='ç»´ä¿®', '', 'display: none;')}" data-qr="{!esdInfo.rec.Fixture_QRCode_F__c}" >
                            <!-- <span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.Inspection_result_after_F__c.label}: </span> -->
                            <span>检测结果: </span><span>
                            <apex:outputField value="{!esdInfo.rec.Inspection_result_after__c}" style="margin:3px;width:75px;" />
                            <!-- <apex:outputField value="{!esdInfo.rec.Inspection_result_after__c}" style="margin:3px;width:75px;" /> -->
                            <output style="margin:3px;width:55px;text-align:left;margin-left:3px;margin-top:0px;float: left;">{!esdInfo.rec.Inspection_result_after__c}</output>
                            <apex:commandButton style="margin-top:0px;font-size: 9px !important;" onclick="OpenRentalApplyFault('{!esdInfo.faultReportFlag}', '{!esdInfo.rec.Id}', '{!esdInfo.rec.Name}','{!esdInfo.personInChargeId}','{!esdInfo.personInChargeName}','{!esdInfo.demoPurpose2}','{!esdInfo.raName}','{!esdInfo.hospitalId}','{!esdInfo.hospitalName}','{!esdInfo.rec.SerialNumber_F__c}','{!esdInfo.rec.Fixture_Model_No__c}','{!esdInfo.workPlace}','{!esdInfo.deptCategory}')" value="故障报告" rerender="dummy" rendered="{!esdInfo.showFaultRepor}"/>
                            </span>
                        </li>
                        <li style="{!IF(esdInfo.rec.Inspection_result_after_NG__c='ç»´ä¿®', '', 'display: none;')}">
@@ -350,8 +374,9 @@
                            <apex:inputField id="inspectionResult" value="{!esdInfo.rec.Inspection_result_after__c}" style="margin:3px;width:75px;" onchange="changeResultNg('{!indexloop}', 1)" />
                            </apex:outputPanel>
                            <apex:outputPanel layout="none" rendered="{!AND(NOT(esdInfo.editable), esdInfo.rec.Inspection_result_after_NG__c!='ç»´ä¿®')}">
                            <span><apex:outputField value="{!esdInfo.rec.Inspection_result_after__c}" style="margin:3px;width:75px;" /></span>
                                <output style="margin:3px;width:55px;text-align:left;margin-left:3px;margin-top:0px;float: left;">{!esdInfo.rec.Inspection_result_after__c}</output>
                            </apex:outputPanel>
                            <apex:commandButton style="margin-top:0px;font-size: 9px !important;" onclick="OpenRentalApplyFault('{!esdInfo.faultReportFlag}', '{!esdInfo.rec.Id}', '{!esdInfo.rec.Name}','{!esdInfo.personInChargeId}','{!esdInfo.personInChargeName}','{!esdInfo.demoPurpose2}','{!esdInfo.raName}','{!esdInfo.hospitalId}','{!esdInfo.hospitalName}','{!esdInfo.rec.SerialNumber_F__c}','{!esdInfo.rec.Fixture_Model_No__c}','{!esdInfo.workPlace}','{!esdInfo.deptCategory}')" value="故障报告" rerender="dummy" rendered="{!esdInfo.showFaultRepor}"/>
                        </li>
                        <li style="{!IF(esdInfo.rec.Inspection_result_after_NG__c='ç»´ä¿®', 'display: none;', '')}">
                            <!-- <span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.Inspection_result_after_NG_F__c.label}: </span> -->
@@ -394,7 +419,8 @@
                        </li>
                        <li>
                            <span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.SerialNumber_F__c.label}: </span>
                            <span><apex:outputField value="{!esdInfo.rec.SerialNumber_F__c}" style="margin:3px;width:75px;"/></span>
                            <!-- <span><apex:outputField value="{!esdInfo.rec.SerialNumber_F__c}" style="margin:3px;width:75px;"/></span> -->
                            <span><apex:outputLink value="/{!esdInfo.rec.Asset__c}" target="_blank" id="assetLink" style="margin:3px;width:140px;float: left;text-align:left;margin-left:3px;margin-top:0px;">{!esdInfo.rec.SerialNumber_F__c}</apex:outputLink></span>
                        </li>
                        <!-- </div> -->
force-app/main/default/pages/FixtureSetManage.page
@@ -1,6 +1,8 @@
<apex:page controller="FixtureSetManageController" showHeader="false" sidebar="false" id="allPage" action="{!init}" lightningStylesheets="true">
<head>
<title>备品配套明细管理</title>
<apex:stylesheet value="{!URLFOR($Resource.FixtureSetManagecssTwo1)}"/>
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<!-- FixtureSetManageページ用css -->
<apex:stylesheet value="{!URLFOR($Resource.FixtureSetManageCss)}"/>
@@ -8,6 +10,7 @@
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
<script type="text/javascript">
var heightAjustment = 120;
var widthAjustment = 30;
force-app/main/default/pages/GSurveys.page
force-app/main/default/pages/InsReportPDF.page
@@ -1,4 +1,4 @@
<apex:page controller="InsReportPDFController" showHeader="false" sidebar="false" action="{!init}" applyHtmlTag="false" lightningStylesheets="true">
<apex:page controller="InsReportPDFController" showHeader="false" sidebar="false" action="{!init}" applyHtmlTag="false">
<html>
<apex:stylesheet value="{!URLFOR($Resource.BeforeOPDPDF)}"/>
force-app/main/default/pages/ListShip.page
@@ -66,7 +66,7 @@
            </table>
            <table style="border: 0; border-collapse: collapse;" id="groupbyTbl">
                <tr>
                    <th style="text-align:right; width:50px;">行项目:</th>
                    <th style="text-align:right; width:60px;">行项目:</th>
                    <td style="text-align:left;"><apex:inputCheckbox id="isSalesDept" value="{!isSalesDept}" disabled="true"></apex:inputCheckbox><apex:outputLabel value="本部" for="isSalesDept"/></td>
                    <td style="text-align:left;"><apex:inputCheckbox id="isArea" value="{!isArea}"></apex:inputCheckbox><apex:outputLabel value="省" for="isArea"/></td>
                    <td style="text-align:left;"><apex:inputCheckbox id="isEnduser" value="{!isEnduser}"></apex:inputCheckbox><apex:outputLabel value="医院" for="isEnduser"/></td>
force-app/main/default/pages/MaintenanceProductData.page
@@ -18,6 +18,9 @@
        background-color: yellow;
        text-align: right;
    }
    td.dataCol.first.last{
        width: 100%
    }
</style>
<script>
    function refreshPageSizeJs() {
force-app/main/default/pages/NewAndEditLead.page
@@ -1,4 +1,4 @@
<apex:page standardController="Lead" extensions="NewAndEditLeadController" id="page">
<apex:page lightningStylesheets="true" standardController="Lead" extensions="NewAndEditLeadController" id="page">
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
    <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
@@ -13,9 +13,6 @@
    <script>
        AWSService.sfSessionId = '{!GETSESSIONID()}';
        var staticResources = JSON.parse('{!staticResource}');
        //zhj MEBG新方案改造 2022-11-29 start
        var staticResourcesV2 = JSON.parse('{!staticResourceV2}');
        //zhj MEBG新方案改造 2022-11-29 end
        var staticResourcesContact = JSON.parse('{!staticResourceContact}');
        var staticResourceInquiryForm = JSON.parse('{!staticResourceInquiryForm}');
        var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}');
@@ -213,11 +210,9 @@
            payloadJson.LastName = r.object[0].lastName;
            payloadJson.Phone = r.object[0].phone;
            payloadJson.Email = r.object[0].email;
            //zhj MEBG新方案改造 2022-11-29 start
            // payloadJson.Name_Encrypted__c = r.object[0].lastNameEncrypt;
            // payloadJson.Phone_Encrypted__c = r.object[0].phoneEncrypt;
            // Email_Encrypted__c = r.object[0].emailEncrypt;
            //zhj MEBG新方案改造 2022-11-29 end
            payloadJson.Name_Encrypted__c = r.object[0].lastNameEncrypt;
            payloadJson.Phone_Encrypted__c = r.object[0].phoneEncrypt;
            payloadJson.Email_Encrypted__c = r.object[0].emailEncrypt;
            //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
            payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
            if (isNewMode || {!isCloneMode}) {
@@ -253,18 +248,12 @@
            let obj = JSON.parse(payloadForNewPI);
            obj[0].dataId = '{!AWSDataId}';
            let payloadForNewPIJson = JSON.stringify(obj);
            //zhj MEBG新方案改造 2022-11-29 start
            //AWSService.update(staticResources.updateUrl, leadJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack, redirectCallBack);
            AWSService.update(staticResourcesV2.updateUrl, leadJson, payloadForNewPIJson, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, false, insertOrUpdateBack, redirectCallBack);
            //zhj MEBG新方案改造 2022-11-29 end
            AWSService.update(staticResources.updateUrl, leadJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack, redirectCallBack);
        }
        function NewPIToAWS(leadJson, payloadForNewPI) {
            let controllerSaveMethod = '{!$RemoteAction.NewAndEditLeadController.saveLead}';
            //zhj MEBG新方案改造 2022-11-29 start
            //AWSService.insert(staticResources.newUrl, leadJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack);
            AWSService.insert(staticResourcesV2.newUrl, leadJson, payloadForNewPI, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack);
            //zhj MEBG新方案改造 2022-11-29 end
            AWSService.insert(staticResources.newUrl, leadJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack);
        }
        function checkRequiredFieldMsg(formData) {
@@ -655,7 +644,7 @@
                    
                    unblockUI();
                }
                debugger
                document.getElementById('topButtonRow').style = '';
           document.getElementById('bottomButtonRow').style = '';
                let previous_value = {};
force-app/main/default/pages/NewMCHPDFLimit.page
force-app/main/default/pages/NewQuoteEntry.page
@@ -37,7 +37,7 @@
        // }
        //dialog å¼¹çª— end 
        // æ·»åŠ è¡Œ html特性增加滑动条 ç²¾ç¢æŠ€æœ¯ wql 2021/02/09 end 
            debugger
        var QuoteEntryMaxLine = {!QuoteEntryMaxLine};
        var trade = '{!oppInfo.Trade}';
        var displayCost = '{!displayCost}';
force-app/main/default/pages/NewQuoteIrai.page
@@ -370,12 +370,12 @@
                </tr>
                <tr>
                    <td style="text-align:right;width:50px;"></td>
                    <th style="text-align:right;width:50px;" rowspan="2">
                    <th style="text-align:right;width:50px;" rowspan="3">
                       {!$ObjectType.QuoteIrai__c.fields.MultiYearWarrantyTotalPrice__c.Label}
                   :&nbsp;</th>
                   <!-- <td style="width:470px;"> -->
                       <!--obsap æ–°å¢žç»é”€å•†1字段 fy start-->
                   <td style="width:100px;" rowspan="2">
                   <td style="width:100px;" rowspan="3">
                       <!--obsap æ–°å¢žç»é”€å•†1字段 fy end-->
                       <apex:outputtext style="width: :100px" id="MultiYearWarrantyTotalPrice_out" value="{0, number, ###,##0.00}" 
                       >
@@ -423,6 +423,17 @@
                <!-- SWAG-CKDATG ã€å§”托】【OBSAP-报价委托】报价委托项目改善1 fy end -->
                </tr>
                <!--obsap æ–°å¢žç»é”€å•†1字段 fy end-->
                <!--DB202302464682【报价委托】报价委托改善224 fy start-->
               <tr>
                <td ></td>
                <td ></td>
                <td ></td>
                <th style="width:100px;text-align:right;">{!$Label.Sales_Name2}</th>
                <td colspan="2" style="width:260px;text-align:right;"><apex:inputField style="width:230px;" id="SalesName2"  value="{!quo.Agency2_entrust__c}"   onChange=""/></td>
                <th style="width:100px;text-align:right;"></th>
                <td colspan="2" style="text-align:left;"></td>
               </tr>
                <!--DB202302464682【报价委托】报价委托改善224 fy end-->
                <tr>
                    <td>&nbsp;</td>
                </tr>
force-app/main/default/pages/OFSInsReportLayout.page
@@ -143,9 +143,6 @@
    blockme();
    //callback();return;
    //<input type="hidden" value="{!ir.Id}" id="IrId"/>
    //<input type="hidden" value="{!ir.Responsible_Person_Encrypted__c}" id="Responsible_Person_Encrypted__c"/>
    //<input type="hidden" value="{!ir.phone_Encrypted__c}" id="phone_Encrypted__c"/>
    let e_id = document.getElementById("IrId");
    let url = staticResource.newUrl;
@@ -172,9 +169,7 @@
        document.getElementById("Page:Form:Block:AWS_Data_Id__c").value = aws_data1.dataId;
        j$("[field-api='phone__c']").val(aws_data1.phone);
        //document.getElementById("Page:Form:Block:phone_Encrypted__c").value = aws_data1.phoneEncrypt;         //zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-05
        j$("[field-api='Responsible_Person__c']").val(aws_data1.responsiblePerson);
        //document.getElementById("Page:Form:Block:Responsible_Person_Encrypted__c").value = aws_data1.responsiblePersonEncrypt;        //zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-05
        
        if (callback) {
            callback();
@@ -364,10 +359,6 @@
</div>
<div style="position: relative;top:0;height:700px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling: touch;">
    <input type="hidden" value="{!ir.Id}" id="IrId"/>
    <!-- zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-05  start-->
    <!-- <apex:inputHidden value="{!ir.Responsible_Person_Encrypted__c}" id="Responsible_Person_Encrypted__c"/>
    <apex:inputHidden value="{!ir.phone_Encrypted__c}" id="phone_Encrypted__c"/> -->
     <!-- zhj æ–°æ–¹æ¡ˆæ”¹é€  2022-12-05  end-->
    <apex:inputHidden value="{!ir.AWS_Data_Id__c}" id="AWS_Data_Id__c"/>
    
    
force-app/main/default/pages/OPDSortManage.page
@@ -1,4 +1,4 @@
<apex:page controller="OPDSortManageController"  action="{!init}"  showHeader="false"   sidebar="true" id="allPage"  title="OPD计划管理表" >
<apex:page lightningStylesheets="true" controller="OPDSortManageController"  action="{!init}"  showHeader="false"   sidebar="true" id="allPage"  title="OPD计划管理表" >
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
@@ -709,7 +709,7 @@
            </apex:pageBlock>
            
            <apex:pageBlock title="待排序栏" id="OPDSection2" rendered="true" >
               <div style="position:relative;height: 0px;">
               <div style="position:relative;height: 10px;">
                    <apex:commandButton onclick="saveAddJs();return false;" value="确认追加" style="position:relative;top: -45px;left: 120px; width:100px;" rendered="true" />
                    <input type="hidden" id="allPage:allForm:allBlock:OPDSection2:unCheckedOPDPlanCount" value="{!unCheckedOPDPlanCount}" />
               </div>
force-app/main/default/pages/PCLLostReportPage.page
@@ -1,6 +1,9 @@
<apex:page lightningstylesheets="true" standardcontroller="Lost_cancel_report__c" extensions="PCLLostReportController" showHeader="false" sidebar="false"
<apex:page standardcontroller="Lost_cancel_report__c" extensions="PCLLostReportController" showHeader="false" sidebar="false"
    id="allPage" action="{!init}" title="询价失单/取消报告" lightningStylesheets="true">
    <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" />
    <!-- <apex:stylesheet value="{!URLFOR($Resource.PCLLostReportPagecss)}" /> -->
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
    <apex:form id="allForm">
force-app/main/default/pages/PaymentPlanLoad.page
@@ -198,11 +198,11 @@
            <col width="25%"/>
            <col width="25%"/>
        </colgroup>
        <tr>
            <td style ="text-align: right;">
        <tr style="padding-left: 20%;">
            <td style ="text-align: right;margin-left: 20%;">
                <apex:outputText value="是否为标准合同:"  /> &nbsp;&nbsp;
            </td>
            <td style ="text-align: left;">
            <td style ="text-align: left;width: 50%;">
                <div class="requiredInput"><div class="requiredBlock"></div>
                     <apex:inputField id="Is_Standard_Contract" value="{!PageMCEElement.Is_Standard_Contract__c}" onchange="RerenderallpageBlockJS(); "/>
                        (必填项,所有合同均必须勾选)       
force-app/main/default/pages/PersonalCalendar.page
@@ -7,6 +7,9 @@
<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PersonalCalendarJs)}"/>
<apex:stylesheet value="{!URLFOR($Resource.fullcalendarCss)}"/>
<apex:stylesheet value="{!URLFOR($Resource.PersonalCalendarCssTwo)}"/>
<script type="text/javascript">
    function searchBySalesDptJs() {
        var baseUrl = '{!ProvinceUrl}';
force-app/main/default/pages/PersonalEvaluation.page
@@ -236,7 +236,7 @@
    <div class="tabCommentPop" id="tabCommentPop" tab="{!selectedTab}" style="width: 990px;">
        <textarea class="limitedtextarea" onKeyDown="limitText(this,200);" onKeyUp="limitText(this,200);"></textarea>
        <br/>
        <input readonly="readonly" type="text" class="countdown" value="200"/><font size="1"> characters left.</font>
        <input readonly="readonly" type="text" class="countdown" style="width: 50px;" value="200"/><font size="1"> characters left.</font>
        <button class="saveComment" type="button" onclick="saveTabComment(this)">{!$Label.Evalutaion_Comment}</button>
        <iframe id="tabComment" seamless="seamless" src="/apex/PersonalEvaluationCommentList?user={!selectUser}&tab={!selectedTab}" frameborder="0" allowtransparency="true" height="22" width="990"></iframe>
    </div>
force-app/main/default/pages/PersonalEvaluation2.page
@@ -1,4 +1,4 @@
<apex:page id="Page" showHeader="false" sidebar="false" Controller="PersonalEvaluationController" action="{!init}">
<apex:page id="Page" showHeader="false" sidebar="false" Controller="PersonalEvaluationController" action="{!init}" lightningStylesheets="true">
<apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
<apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
AccessToken=<span id="AccessToken"></span><br/>
force-app/main/default/pages/PersonalEvaluationClipEdit.page
@@ -78,7 +78,7 @@
            <apex:outputPanel id="Panel">
                <div class="clip_menu">
                    <apex:commandButton value="{!$Label.LABS_SF_Delete}" rerender="Form" onclick="confirmDelete('{!c.lineNo}');" style="width:100px" />
                    <div class="clip_lineNo">{!c.lineNo}</div>
                    <div class="clip_lineNo" style="right: 15%">{!c.lineNo}</div>
                </div>
                <div>{!c.reportName}</div>
                <div id="img_div_{!cnt}" style="width:322px; height:262px"></div>
force-app/main/default/pages/QueuePageByAssetId.page
@@ -4,6 +4,11 @@
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
    <apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
    <style>
        table.list{
            width: 100%!important;
        }
    </style>
    <script type="text/javascript">
        var heightAjustment = 120;
        var widthAjustment = 30;
force-app/main/default/pages/ReceivingNoteDetailSelect.page
@@ -92,7 +92,7 @@
                <apex:pageBlockButtons location="bottom">
                        <apex:commandButton style="float:left;" action="{!save}" value="确定" onclick="blockme();" rerender="allForm, checEventFrame" oncomplete="unblockUI();" />
                        <apex:commandButton style="float:left;" value="无配套明细提醒邮件" onclick="setEmailBody();" rerender="allForm, checEventFrame"/>
                        <apex:commandButton style="float:right;" value="{!IF(isAcceptance, '返回', '返回上一级')}" action="{!goBack}"/>
                        <apex:commandButton style="float:right;margin-right:10px;" value="{!IF(isAcceptance, '返回', '返回上一级')}" action="{!goBack}"/>
                        <apex:commandButton rendered="{!isAcceptance == false}" style="float:right;" value="返回数据确认画面" action="{!cancel}"/>
                </apex:pageBlockButtons>
                <div style="clear:both;"></div>
force-app/main/default/pages/RentalApplySequence.page
@@ -1,4 +1,4 @@
<apex:page controller="RentalApplySequenceController"  showHeader="false" sidebar="false" id="allPage" action="{!init}" title="排队查看" lightningStylesheets="true">
<apex:page controller="RentalApplySequenceController"  showHeader="false" sidebar="false" id="allPage" action="{!init}" title="排队查看">
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
@@ -447,9 +447,9 @@
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Equipment_Type_text__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Internal_asset_location_before__c}"/></td>
                </apex:outputPanel>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply__r.Salesdepartment_text__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply__r.WorkPlace__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply__r.Person_In_Charge__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply_Object__r.Salesdepartment_text__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply_Object__r.WorkPlace__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;"><apex:outputField value="{!info.raesd.Rental_Apply_Object__r.Person_In_Charge__c}"/></td>
                <td style="white-space: pre-wrap;word-wrap:break-word;">
                    <apex:outputField value="{!info.raesd.Queue_Number__c}" rendered="{!!isEquipmentCenter}" />
                    <apex:outputLink value="" rendered="{!isEquipmentCenter}" onclick="checkEventJs('1;{!info.raesd.Rental_Apply_Equipment_Set__c}');return false;"> {!info.raesd.Queue_Number__c}</apex:outputLink>
force-app/main/default/pages/RetrospectiveWeeklyReportPage.page
@@ -2,8 +2,9 @@
    <apex:includeLightning />
    <div style="width:100%;height:100%;" id="RetrospectiveWeeklyReport" />
    <div id="auraErrorMessage"></div>
    <script>
        debugger
        $Lightning.use("c:RetrospectiveWeeklyReportApp", function () {
            $Lightning.createComponent("c:RetrospectiveWeeklyReport",
                {
force-app/main/default/pages/SelectAssetEstimateVM.page
@@ -41,11 +41,11 @@
window.sfdcPage.appendToOnloadQueue(function() { calonLoad() });
var RCbottonChanged = 0;
// æ•…障品
var hasSendEmail = {!hasSendEmail};
console.log('***hasSendEmail',hasSendEmail);
console.log('***hasSendEmail',hasSendEmail)// æ•…障品;
// if(hasSendEmail == true){
//     j$(escapeVfId('allPage:allForm:emailSend')).attr("disabled", true);
//     j$(escapeVfId('allPage:allForm:emailSend')).attr("class", 'btnDisabled');
@@ -158,6 +158,7 @@
    // if(!ResonCannotWarranty.contains("弃修")){
    //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Repair_Price_Auto')).attr("display", none);
    // }
    if (isDisabled) {
        j$(escapeVfId('allPage:allForm:allBlock:contract:depart')).attr("disabled", true);
@@ -246,15 +247,34 @@
    // disable1();
    // 2021、8、26 åˆåŒæŠ¥ä»·é¡µé¢çš„优化,无保有设备点检对象选择框变黑 fxk end
    console.log('ApprovalBtnDisabled=='+{!ApprovalBtnDisabled});
    //上限合同 20230103 LY start
    var mainteReal = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:mainteReal')).text();
    Limit_Price_Amount = localParseFloat(mainteReal)*1.3;
    refreshAsset({!productCount});
    //上限合同 20230103 hql start
    // console.log('Limit_PriceHidden2=='+Limit_PriceHidden2);
    var RequestquotationAmount = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:quotation_Amount')).val();
    console.log('申请报价金额='+RequestquotationAmount);
    var AssetRepairSumPrice    = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:assetRepairSumPrice')).text();
    console.log('合同设备修理总额='+AssetRepairSumPrice);
    Limit_Price_Amount = (localParseFloat(AssetRepairSumPrice)+localParseFloat(RequestquotationAmount))*1.3;
    Limit_Price_Amount = Math.round(Limit_Price_Amount);
    // console.log('Limit_Price_Amount'+Limit_Price_Amount);
    Limit_Price_AmountOne =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).value();
    if (Limit_Price_AmountOne*1==0) {
    Limit_PriceHidden =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_PriceHidden')).value();
    if (Limit_PriceHidden*1==0) {
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val(Limit_Price_Amount);
    }
    //上限合同 20230103 LY end
    Limit_PriceHidden2 =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price2Hidden')).value();
    if (Limit_PriceHidden2 == 'false') {
        // lpa =  document.getElementById('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount');
        // lpa.style.display = "none";
        // console.log('隐藏完毕');
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val('');
    }
    Price111 = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val();
    console.log('上限金额为'+Limit_Price_Amount);
    console.log('原有上限金额为'+Limit_PriceHidden);
    console.log('不是上限合同的金额为'+Price111);
    //上限合同 20230103 hql end
    pageSetDisabled();
    var createdDate = new Date('{!estimate.CreatedDate}');
    // æŠ¥ä»·ä¸­è®¾å¤‡çš„æœºèº«ç¼–码为空时的新品合同有效期延长 20200710 gzw
@@ -344,6 +364,7 @@
    }
    
    if ('{!DecideBtnDisabled}' == 'false') {
        console.log('oldMainteReal修改完成');
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:oldMainteReal')).val(j$(escapeVfId('allPage:allForm:allBlock:contractInfo:mainteReal')).text());
    }
}
@@ -390,8 +411,26 @@
    val = Math.round(val);
    j$(escapeVfId('allPage:allForm:allBlock:contractInfo:quotation_Amount')).val(toNumComma(val));
    //上限合同 20230117 HQL start
     console.log('上限金额填入:'+val*1.3);
    j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val(val*1.3);
    var RequestquotationAmount = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:quotation_Amount')).val();
    console.log('申请报价金额='+RequestquotationAmount);
    var AssetRepairSumPrice    = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:assetRepairSumPrice')).text();
    console.log('合同设备修理总额='+AssetRepairSumPrice);
    Limit_Price_Amount = (localParseFloat(AssetRepairSumPrice)+localParseFloat(RequestquotationAmount))*1.3;
    Limit_Price_Amount = Math.round(Limit_Price_Amount);
    Limit_Price_AmountOne =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).value();
    Limit_PriceHidden =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_PriceHidden')).value();
    // if (Limit_PriceHidden*1==0) {
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val(Limit_Price_Amount);
    // }
    Limit_PriceHidden2 =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price2Hidden')).value();
    if (Limit_PriceHidden2 == 'false') {
        // lpa =  document.getElementById('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount');
        // lpa.style.display = "none";
        // console.log('隐藏完毕');
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val('');
    }
    amount = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).value();
    console.log('上限金额填入:'+amount);
    //上限合同 20230117 HQL end
   makeRealPrice(1);
}
@@ -426,7 +465,10 @@
    ISReducedpriceapproval = j$(escapeVfId('allPage:allForm:allBlock:ISReducedpriceapproval')).val();
    console.log('方法2是否审批通过=='+ISReducedpriceapproval+'==============');
}
var number1 = 0;
function refreshAsset(cnt) {
    console.log('执行refreshAsset');
    console.log('decide==='+{!DecideBtnDisabled});
     // alert(cnt);
    // æäº¤åŽå°±é¡µé¢ä¸è®¡ç®—了
    var isDisabled = {!PageDisabled};
@@ -442,16 +484,6 @@
    // æ–°å“åˆåŒ åˆ¤æ–­
    var newCon = true;
    var contractStartDate = new Date(j$(escapeVfId('allPage:allForm:contractstartdate')).value());
    //上限合同 20230103 LY start
    var mainteReal = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:mainteReal')).text();
    Limit_Price_Amount = localParseFloat(mainteReal)*1.3;
    Limit_Price_AmountOne =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).value();
    console.log('Limit_Price_AmountOne'+Limit_Price_AmountOne);
    if (Limit_Price_AmountOne*1==0) {
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val(Limit_Price_Amount);
    }
    //上限合同 20230103 LY end
    //多年保续签合同数量 thh 20220316 start
    var GuranteeCount = 0;
    //多年保续签合同数量 thh 20220316 end
@@ -461,7 +493,14 @@
    // var isFSE = true;
    console.log('***isFSE',isFSE);
    //2022故障品加费 èŽ·å–userInfo简档名称 end
    //20230208 ä¸Šé™åˆåŒå¼€å‘ hql start
    if (isFSE) {
        // lpa =  document.getElementById('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount');
        // lpa.style.display = "none";
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).attr("disabled", true);
        console.log('上限金额隐藏');
    }
    //20230208 ä¸Šé™åˆåŒå¼€å‘ hql end
    // é¢„定开始日
    var startdate = new Date(j$(escapeVfId('allPage:allForm:allBlock:contract:startdate')).value());
    // é¢„定开始日-6个月
@@ -505,6 +544,13 @@
        var isManual = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':IsManual')).text();
        var isnew = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetNewHidden')).val();
        var assetListmonth = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
        //市场多年保修价格开发 DC 2023/02/09 start
        var VMassetListmonth = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Maintenance_Price_Year__c')).val();
        // console.log('***合同定价:'+VMassetListmonth);
        //市场多年保修价格开发 DC 2023/02/09 end
        // console.log('***isManual=:'+isManual);
        if (isManual == 'true') {
            var a = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Assert')).value();
            if (a != '') {
@@ -516,14 +562,17 @@
                //}
                strMoney = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
                // alert(strMoney);
                Price_YearTXT = strMoney * 12;
                if (isnew == 'true') {
                    newCount ++;
                    strMoney = month * strMoney + month2 * strMoney / {!isNewPriceAdj};
                } else {
                    newCon = false;
                    strMoney = month * strMoney + month2 * strMoney;
                }
                var b = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contract_No')).value();
                var LastMContractRecord = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractRecord')).value();
@@ -574,13 +623,10 @@
                            //市场多年保修价格开发 DC 2023/1/30 start 
                            //消费率 å±•示修改为市场多年保设备消费率
                            // j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew')).attr("style", "display:block");
                            // j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contractrate')).attr("style", "display:none");
                            var Maxcoefficient =0;
                            var Mincoefficient =0;
                            var ContractMonth = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contract:monthRange')).val());
                            var AssetRate = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew')).val());
                            console.log('***消费率:'+AssetRate);
@@ -649,10 +695,10 @@
                            //设备设备消费率小于1.4
                            if(AssetRate<1.4){
                                upPrice = strMoney;
                                console.log('消费率小于1.4 upPrice = strmonye'+ upPrice);
                                upPrice = VMassetListmonth * ContractMonth /12;
                                console.log('消费率小于1.4 upPrice = å®šä»· *经历月数 /12'+ upPrice);
                                if(AssetModelNo.includes('290')|| Category4 =='BF'|| Category4=='BF扇扫'|| Category4=='GIF'||Category4=='CF' || Category4.includes('GF')){
                                if(AssetModelNo.includes('290')&&( Category4 =='BF'|| Category4=='BF扇扫'||Category4=='CF')){
                                    downPrice = upPrice;
                                    console.log('消费率小于1.4 äº§å“æ— æœ€ä½Žä»· downPrice '+ downPrice);
@@ -662,8 +708,8 @@
                                }
                            }else{
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                console.log('消费率大于1.4 upPrice'+ upPrice);
                                console.log('消费率大于1.4 downPrice'+ downPrice);
                            }
@@ -674,8 +720,12 @@
                                //市场多年保修价格开发 DC 2023/1/30 start  è®¾å¤‡å¤§äºŽ2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                console.log('设备大于2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数 upPrice'+ upPrice);
                                console.log('设备大于2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数 downPrice'+ downPrice);
                                //市场多年保修价格开发 DC 2023/1/30 end 
                            
@@ -684,15 +734,18 @@
                        }else{
                            upPrice = strMoney;
                            downPrice = strMoney * 0.8;
                            console.log('选择1');
                        }
                    }else{
                        upPrice = (LastMContract_Price * Punish) * (1 + Adjustment_ratio_Upper/100);
                        downPrice = (LastMContract_Price * Punish) * (1 + Adjustment_ratio_Lower/100);
                        console.log('选择2');
                    }
                }else{
                    //firstCCount ++;
                    upPrice = strMoney;
                    downPrice = strMoney * 0.8;
                    console.log('选择3');
                }
                // ä¸Šä¸‹é™å››èˆäº”å…¥
                upPrice = upPrice.toFixed(2);
@@ -701,12 +754,24 @@
                //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceTXT')).text(toNumComma(Price_YearTXT));
                //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceTXTHidden')).val(Price_YearTXT);
                if (!isDisabled) {
                    // // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 start
                    // var LastMContractID = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractID')).value();
                    // var ISStandardPricing = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':ISStandardPricing')).value();
                    // if (LastMContractID == '' && ISStandardPricing == '是') {
                    //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_price')).text(toNumComma(upPrice));
                    //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_priceHidden')).val(upPrice);
                    //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_price')).text(toNumComma(upPrice));
                    //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_priceHidden')).val(upPrice);
                    // }
                    // // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 end
                    // else{
                    // å®žé™…联动价格 start
                    j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_price')).text(toNumComma(downPrice));
                    j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_priceHidden')).val(downPrice);
                    j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_price')).text(toNumComma(upPrice));
                    j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_priceHidden')).val(upPrice);
                    // å®žé™…联动价格 end
                    // }
                }
                
                //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPrice')).text(toNumComma(strMoney));
@@ -739,12 +804,15 @@
                newCon = false;
            }
            strMoney = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
            Price_YearTXT = strMoney * 12;
            if (isnew == 'true') {
                strMoney = month * strMoney + month2 * strMoney / {!isNewPriceAdj};
            } else {
                strMoney = month * strMoney + month2 * strMoney;
            }
            var b = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contract_No')).value(); 
            var LastMContractRecord = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractRecord')).value();
            console.log('***维修合同记录类型2'+LastMContractRecord);
@@ -794,23 +862,14 @@
                        var nowdate = new Date();
                        lastendDate = new Date(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':endDateGurantee_Text')).value());
                        nowdate = nowdate.setMonth(nowdate.getMonth() + 6);
                        console.log('**结束日',lastendDate);
                        //市场多年保修价格开发 DC 2023/1/30 start 
                            //消费率 å±•示修改为市场多年保设备消费率
                            // j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew3')).attr("style", "display:block");
                            //  var AssetRate2 = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew2')).value();
                            // console.log('***消费率2:'+AssetRate2);
                            //  var AssetRate3 = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew3')).value());
                            // console.log('***消费率3:'+AssetRate3);
                            var Maxcoefficient =0;
                            var Mincoefficient =0;
                            var ContractMonth = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contract:monthRange')).val());
                            console.log('***经历月数'+ContractMonth);
                            var AssetRate = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew')).val());
                            console.log('***消费率:'+AssetRate);
@@ -868,7 +927,7 @@
                            //设备小于两年半
                            // upPrice = strMoney;
                            // downPrice = strMoney * 0.8;
                        console.log('***小于2年半')
                        // å¸‚场多年保修价格开发 start DC 2023/01/19  
                            //市场多年保设备小于2年半
                            var AssetModelNo = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Asset_Model_No__c')).value();
@@ -878,10 +937,10 @@
                            //设备设备消费率小于1.4
                            if(AssetRate<1.4){
                                upPrice = strMoney;
                                console.log('消费率小于1.4 upPrice = strmonye'+ upPrice);
                                upPrice = VMassetListmonth *ContractMonth / 12;
                                console.log('消费率小于1.4 upPrice = VMassetListmonth *month /12'+ upPrice);
                                if(AssetModelNo.includes('290')|| Category4 =='BF'|| Category4=='BF扇扫'|| Category4=='GIF'||Category4=='CF' || Category4.includes('GF')){
                                if(AssetModelNo.includes('290')&&( Category4 =='BF'|| Category4=='BF扇扫'||Category4=='CF')){
                                    downPrice = upPrice;
                                    console.log('消费率小于1.4 äº§å“æ— æœ€ä½Žä»· downPrice '+ downPrice);
@@ -891,8 +950,8 @@
                                }
                            }else{
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                console.log('消费率大于1.4 upPrice'+ upPrice);
                                console.log('消费率大于1.4 downPrice'+ downPrice);
                            }
@@ -904,18 +963,23 @@
                            // downPrice = (assetListmonth * Punish) * (1 + Adjustment_ratio_Lower/100);
                            //市场多年保修价格开发 DC 2023/1/30 start  è®¾å¤‡å¤§äºŽ2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数
                            upPrice = assetListmonth * month *Maxcoefficient / 12;
                            downPrice = assetListmonth * month * Mincoefficient / 12;
                            upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                            downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                            console.log('设备大于2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数 upPrice'+ upPrice);
                            console.log('设备大于2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数 downPrice'+ downPrice);
                            //市场多年保修价格开发 DC 2023/1/30 end 
                        }
                        // gzw 20220630  å®žé™…联动6个月价格区分
                    }else{
                        upPrice = strMoney;
                        downPrice = strMoney * 0.8;
                        console.log('选择4');
                    }
                }else{
                    upPrice = (LastMContract_Price * Punish) * (1 + Adjustment_ratio_Upper/100);
                    downPrice = (LastMContract_Price * Punish) * (1 + Adjustment_ratio_Lower/100);
                    console.log('选择5');
                }
            }else{
                if (isnew == 'true') {
@@ -934,12 +998,26 @@
            //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceTXT')).text(toNumComma(Price_YearTXT));
            //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceTXTHidden')).val(Price_YearTXT);
            if (!isDisabled) {
                // // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 start
                // var LastMContractID = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractID')).value();
                // var ISStandardPricing = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':ISStandardPricing')).value();
                // console.log('ISStandardPricing=='+ISStandardPricing);
                // if (LastMContractID == '' && ISStandardPricing == '是') {
                //     console.log('开始执行');
                //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_price')).text(toNumComma(upPrice));
                //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_priceHidden')).val(upPrice);
                //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_price')).text(toNumComma(upPrice));
                //     j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_priceHidden')).val(upPrice);
                // }
                // // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 end
                // else{
                // å®žé™…联动价格 start
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_price')).text(toNumComma(downPrice));
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Lower_priceHidden')).val(downPrice);
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_price')).text(toNumComma(upPrice));
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Adjustment_Upper_priceHidden')).val(upPrice);
                // å®žé™…联动价格 end
                // }
            }
            //j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPrice')).text(toNumComma(strMoney));
            j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPricePageHidden')).val(strMoney);
@@ -950,19 +1028,20 @@
            repairMoney = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).value();
            Repair_Price_pass = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Repair_Price_pass')).val();
            console.log((i+1)+'号repairMoney='+repairMoney);
            console.log((i+1)+'号Repair_Price_Auto='+Repair_Price_Auto);
            // console.log((i+1)+'号Repair_Price_Auto='+Repair_Price_Auto);
            if ((repairMoney+1)==1) {
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).val(Repair_Price_Auto);
                console.log('repairMoney修改成功');
                // console.log('repairMoney修改成功');
            }
            if ((Repair_Price_pass+1)==1) {
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Repair_Price_pass')).val(Repair_Price_Auto);
                console.log('Repair_Price_pass修改成功');
                // console.log('Repair_Price_pass修改成功');
            }
            repairMoney1 = localParseFloat(repairMoney);
            ISReducedpriceapproval = j$(escapeVfId('allPage:allForm:allBlock:ISReducedpriceapproval')).val();
            console.log('ISReducedpriceapproval=='+ISReducedpriceapproval);
            if (ISReducedpriceapproval =='有八折以下待审批' || ISReducedpriceapproval =='是') {
            var isDisabled = {!PageDisabled};
            if (ISReducedpriceapproval =='有八折以下待审批' || ISReducedpriceapproval =='是'|| isDisabled) {
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).attr("disabled", true);
            }else{
                j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).attr("disabled", false);
@@ -974,21 +1053,26 @@
                isresduce = isresduce+1;
            }
          
            console.log('初始化isresduce='+isresduce);
            ResonCannotWarranty = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':ResonCannotWarranty')).value();
            // console.log('初始化isresduce='+isresduce);
            rppa =  document.getElementById('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Repair_Price_Auto');
            ResonCannotWarranty = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':ResonCannotWarranty')).value();
            // console.log('不可参保原因为:'+ResonCannotWarranty);
            // console.log('repairMoney执行次数为'+repairMoney);
            if(!(ResonCannotWarranty.indexOf("弃修") != -1)&&(repairMoney+1)==1){
                // if (!(situation.indexOf("修理中")!=-1)&& !(Agreed_Date.indexOf("为空")!=-1)) {
                    rppa.style.display = "none";
                    j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).val('');
                    // console.log('###修改成功');
                // }
            }
            situation = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Asset_situation')).value();
            // Agreed_Date =  j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Agreed_Date')).value();
            console.log('situation='+situation);
            // console.log('situation='+situation);
            // console.log('Agreed_Date1='+Agreed_Date);
            if(ResonCannotWarranty!=null&&!(ResonCannotWarranty.indexOf("弃修") != -1)){
                // if (!(situation.indexOf("修理中")!=-1)&& !(Agreed_Date.indexOf("为空")!=-1)) {
                    rppa.style.display = "none";
                // }
            }
            console.log('判断1'+(situation.indexOf("修理中")!=-1));
            // console.log('判断'+(Agreed_Date.indexOf("不为空")!=-1));
            // if ((situation.indexOf("修理中")!=-1)&& (Agreed_Date.indexOf("不为空")!=-1)) {
            //     console.log('开始操作2');
@@ -1044,13 +1128,14 @@
    console.log(result);
    document.getElementById("allPage:allForm:allBlock:contractInfo:Contract_TypeTXT").innerHTML = result;
    document.getElementById("allPage:allForm:allBlock:contractInfo:Contract_TypeTXTHidden").value = result;
    // å–消酸化水
    //NotUseOxygenatedWaterAmount(1);
    examinationPriceCal(cnt);
    getLastContractRate();
    number1++;
}
function changeAsset(cnt) {
    console.log('执行了changeAsset');
    // alert(cnt);
    // æäº¤åŽå°±é¡µé¢ä¸è®¡ç®—了
    var isDisabled = {!PageDisabled};
@@ -1130,6 +1215,10 @@
        var isManual = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':IsManual')).text();
        var isnew = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetNewHidden')).val();
        var assetListmonth = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
        //市场多年保修价格开发 DC 2023/02/09 start
        var VMassetListmonth = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Maintenance_Price_Year__c')).val();
        //市场多年保修价格开发 DC 2023/02/09 end
        if (isManual == 'true') {
            var a = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Assert')).value();
            if (a != '') {
@@ -1141,7 +1230,7 @@
                //}
                strMoney = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
                //市场多年保修价格开发 DC 2023/1/30 start
                var LastMContractRecord = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractRecord')).value();
                // alert(strMoney);
                console.log('***维修合同记录类型3'+LastMContractRecord);
@@ -1150,6 +1239,7 @@
                if (isnew == 'true') {
                    newCount ++;
                    strMoney = month * strMoney + month2 * strMoney / {!isNewPriceAdj};
                } else {
                    newCon = false;
                    strMoney = month * strMoney + month2 * strMoney;
@@ -1206,6 +1296,8 @@
                            var AssetRate = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew')).val());
                            console.log('***消费率:'+AssetRate);
                            var ContractMonth = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contract:monthRange')).val());
                             j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contractrate')).text(AssetRate +'%');
@@ -1271,10 +1363,10 @@
                            //设备设备消费率小于1.4
                            if(AssetRate<1.4){
                                upPrice = strMoney;
                                console.log('消费率小于1.4 upPrice = strmonye'+ upPrice);
                                upPrice = VMassetListmonth * ContractMonth / 12 ;
                                console.log('消费率小于1.4 upPrice = VMassetListmonth *ContractMonth / 12'+ upPrice);
                                if(AssetModelNo.includes('290')|| Category4 =='BF'|| Category4=='BF扇扫'|| Category4=='GIF'||Category4=='CF' || Category4.includes('GF')){
                                if(AssetModelNo.includes('290')&&( Category4 =='BF'|| Category4=='BF扇扫'||Category4=='CF')){
                                    downPrice = upPrice;
                                    console.log('消费率小于1.4 äº§å“æ— æœ€ä½Žä»· downPrice '+ downPrice);
@@ -1284,8 +1376,8 @@
                                }
                            }else{
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                console.log('消费率大于1.4 upPrice'+ upPrice);
                                console.log('消费率大于1.4 downPrice'+ downPrice);
                            }
@@ -1296,8 +1388,8 @@
                                // downPrice = (assetListmonth * Punish) * (1 + Adjustment_ratio_Lower/100);
                                //市场多年保修价格开发 DC 2023/1/30 start  è®¾å¤‡å¤§äºŽ2年半 ç»­ç­¾ä»·æ ¼ =定价*消费率对应系数 / 12 *合同月数
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                //市场多年保修价格开发 DC 2023/1/30 end 
                            }
                            // gzw 20220630  å®žé™…联动6个月价格区分
@@ -1359,11 +1451,13 @@
                newCon = false;
            }
            strMoney = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':assetListPriceHidden')).val();
            Price_YearTXT = strMoney * 12;
            if (isnew == 'true') {
                strMoney = month * strMoney + month2 * strMoney / {!isNewPriceAdj};
            } else {
                strMoney = month * strMoney + month2 * strMoney;
            }
            var b = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contract_No')).value(); 
            var LastMContractRecord = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':LastMContractRecord')).value();
@@ -1420,6 +1514,8 @@
                            var AssetRate = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':AssetConsumptionRateNew')).val());
                            console.log('***消费率:'+AssetRate);
                            var ContractMonth = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contract:monthRange')).val());
                             j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Contractrate')).text(AssetRate +'%');
@@ -1485,10 +1581,10 @@
                            //设备设备消费率小于1.4
                            if(AssetRate<1.4){
                                upPrice = strMoney;
                                console.log('消费率小于1.4 upPrice = strmonye'+ upPrice);
                                upPrice = VMassetListmonth * ContractMonth /12;
                                console.log('消费率小于1.4 upPrice = VMassetListmonth *ContractMonth /12'+ upPrice);
                                if(AssetModelNo.includes('290')|| Category4 =='BF'|| Category4=='BF扇扫'|| Category4=='GIF'||Category4=='CF' || Category4.includes('GF')){
                                if(AssetModelNo.includes('290')&&( Category4 =='BF'|| Category4=='BF扇扫'||Category4=='CF')){
                                    downPrice = upPrice;
                                    console.log('消费率小于1.4 äº§å“æ— æœ€ä½Žä»· downPrice '+ downPrice);
@@ -1498,8 +1594,8 @@
                                }
                            }else{
                                upPrice = assetListmonth * month *Maxcoefficient / 12;
                                downPrice = assetListmonth * month * Mincoefficient / 12;
                                upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                                downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                                console.log('消费率大于1.4 upPrice'+ upPrice);
                                console.log('消费率大于1.4 downPrice'+ downPrice);
                            }
@@ -1509,8 +1605,8 @@
                            // downPrice = (assetListmonth * Punish) * (1 + Adjustment_ratio_Lower/100);
                            //市场多年保修价格开发 DC 2023/1/30 start  è®¾å¤‡å¤§äºŽ2年半 ç»­ç­¾ä»·æ ¼ = å®šä»· *消费率对应系数 / 12 *合同月数
                            upPrice = assetListmonth * month *Maxcoefficient / 12;
                            downPrice = assetListmonth * month * Mincoefficient / 12;
                            upPrice = VMassetListmonth * ContractMonth *Maxcoefficient / 12;
                            downPrice = VMassetListmonth * ContractMonth * Mincoefficient / 12;
                            //市场多年保修价格开发 DC 2023/1/30 end 
                        }
@@ -1558,16 +1654,16 @@
            repairMoney1 = localParseFloat(repairMoney);
            ISReducedpriceapproval1 = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':ISReducedpriceapproval1')).val();
            ISReduced = j$(escapeVfId('allPage:allForm:allBlock:ISReducedpriceapproval')).val();
            console.log('ISReduced='+ISReduced);
            // console.log('ISReduced='+ISReduced);
            
            console.log('Repair_Price_Auto='+Repair_Price_Auto);
            console.log('第'+(i+1)+'个设备ISReducedpriceapproval1='+ISReducedpriceapproval1);
            console.log('repairMoney1='+repairMoney1);
            // console.log('Repair_Price_Auto='+Repair_Price_Auto);
            // console.log('第'+(i+1)+'个设备ISReducedpriceapproval1='+ISReducedpriceapproval1);
            // console.log('repairMoney1='+repairMoney1);
            
            Repair_Price_pass1 = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Repair_Price_pass')).val();
            Repair_Price_pass2 = localParseFloat(Repair_Price_pass1);
            console.log('结果='+(repairMoney1<Repair_Price_pass2));
            console.log('Repair_Price_pass2='+Repair_Price_pass2);
            // console.log('结果='+(repairMoney1<Repair_Price_pass2));
            // console.log('Repair_Price_pass2='+Repair_Price_pass2);
            if (repairMoney1> 0 && repairMoney1<(Repair_Price_Auto*0.80) && Repair_Price_Auto != null && isFSE == true) {
                 if (Repair_Price_pass1!=null && repairMoney1<Repair_Price_pass2) {
                    alert('由于存在折扣率超过20%以上的修理加费减价申请,请先点击“提交RC评估”按钮,待RC评估后服务管理部会推进审批');
@@ -1596,13 +1692,13 @@
            situation = j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Asset_situation')).value();
            // Agreed_Date =  j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':Agreed_Date')).value();
            console.log('situation='+situation);
            // console.log('situation='+situation);
            // console.log('Agreed_Date1='+Agreed_Date);
            if(ResonCannotWarranty!=null&&!(ResonCannotWarranty.indexOf("弃修") != -1)){
                // if (!(situation.indexOf("修理中")!=-1)&& !(Agreed_Date.indexOf("为空")!=-1)) {
                    rppa.style.display = "none";
            // if(!(ResonCannotWarranty.indexOf("弃修") != -1)){
            //         rppa.style.display = "none";
            //         // j$(escapeVfId('allPage:allForm:allBlock:assetSection:assetTable:' + i + ':repairPrice')).val('');
            //         // console.log('###修改成功');
                // }
            }
            // if ((situation.indexOf("修理中")!=-1)&& (Agreed_Date.indexOf("为空")!=-1)) {
            //     console.log('开始操作1');
            //     rppa.style.display = "none";
@@ -1620,7 +1716,7 @@
        downPriceSum = downPriceSum + localParseFloat(toNum(downPrice));
        upPriceSum =  upPriceSum + localParseFloat(toNum(upPrice));
    }
    console.log('改变金额isresduce='+isresduce);
    // console.log('改变金额isresduce='+isresduce);
     if (isresduce!=0) {
                toChange1();
        }else{
@@ -1665,6 +1761,30 @@
     
    examinationPriceCal(cnt);
    getLastContractRate();
    //上限合同 20230214 hql start
    var RequestquotationAmount = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:quotation_Amount')).val();
    console.log('申请报价金额='+RequestquotationAmount);
    var AssetRepairSumPrice    = j$(escapeVfId('allPage:allForm:allBlock:contractInfo:assetRepairSumPrice')).text();
    console.log('合同设备修理总额='+AssetRepairSumPrice);
    Limit_Price_Amount = (localParseFloat(AssetRepairSumPrice)+localParseFloat(RequestquotationAmount))*1.3;
    Limit_Price_Amount = Math.round(Limit_Price_Amount);
    // console.log('取整1='+Math.round(124.5));
    // console.log('取整2='+Math.round(124.4));
    // console.log('取整3='+Math.round(124.6));
    Limit_Price_AmountOne =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).value();
    Limit_PriceHidden =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_PriceHidden')).value();
    // if (Limit_PriceHidden*1==0) {
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val(Limit_Price_Amount);
    // }
    Limit_PriceHidden2 =  j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price2Hidden')).value();
    if (Limit_PriceHidden2 == 'false') {
        // lpa =  document.getElementById('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount');
        // lpa.style.display = "none";
        // console.log('隐藏完毕');
        j$(escapeVfId('allPage:allForm:allBlock:contractInfo:Limit_Price_Amount')).val('');
    }
    console.log('上限金额为'+Limit_Price_Amount);
    //上限合同 20230214 hql end
}
@@ -2080,7 +2200,8 @@
            } else {
                var oldp = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contractInfo:oldMainteReal')).value());
                var newp = localParseFloat(j$(escapeVfId('allPage:allForm:allBlock:contractInfo:mainteReal')).text());
                console.log('oldp='+oldp);
                 console.log('newp='+newp);
                if (oldp != newp) {
                    // 20201106 é«˜ç« ä¼Ÿ æé†’消息修改 start
                    j$(escapeVfId('allPage:allForm:changedAfterPrint')).val('true');
@@ -2497,11 +2618,15 @@
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Asset.fields.Department_Name__c.label}</th>
                        
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Asset.fields.Management_Code__c.label}</th>
                        <!-- å¸‚场多年保修价格开发 DC 2023/02/20  start-->
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Maintenance_Contract_Asset__c.fields.IS_VMContract_Asset__c.label}</th>
                        <!-- å¸‚场多年保修价格开发 DC 2023/02/20  end-->
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Maintenance_Contract_Asset_Estimate__c.fields.Asset_Consumption_rate__c.label}</th>
                        <!-- å¸‚场多年保修价格开发 DC 2023/1/30 start -->
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Maintenance_Contract_Asset_Estimate__c.fields.Asset_Consumption_rate__c.label}</th>
                        <!-- <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Maintenance_Contract_Asset_Estimate__c.fields.Asset_Consumption_rate__c.label}</th>
 -->
                        <!-- å¸‚场多年保修价格开发 DC 2023/1/30 end -->
                        <th style="width:70px" class="headerRow  booleanColumn">{!$ObjectType.Asset.fields.CurrentContract_End_Date__c.label}</th>
                        <!-- å®žç»©è”动价格计算 start -->
@@ -2591,12 +2716,18 @@
                               
                                <td class="dataCell" width="70px">
                                    <apex:outputField value="{!ar.rec.CurrentContract_F__r.Maintenance_Contract_No_F__c}" rendered="{!Not(ar.IsManual)}" id="Contract_No"/>
                                    <apex:inputHidden value="{!ar.rec.CurrentContract_F__r.RecordType_DeveloperName__c}" id="LastMContractRecord"/>
                                    <apex:inputField value="{!ar.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c}" id="endDateGurantee_Text" style="display: none" showDatePicker="false"/>
                                    <apex:inputHidden value="{!ar.rec.CurrentContract_F__c}" id="LastMContractID"/>
                                    <!-- å¸‚场多年保价格开发 start 20223/01/17 ç»´ä¿®åˆåŒ/保有设备 è®¾å¤‡æ¶ˆè´¹çއ -->
                                    <!-- <apex:outputField value="{!ar.rec.CurrentContract_F_asset__r.IS_VMContract_Asset__c}" rendered="{!Not(ar.IsManual)}" id="IS_VMContract_Asset"/> -->
                                    <apex:inputHidden value="{!ar.rec.CurrentContract_F_asset__r.Asset_Consumption_Rate__c}" id="AssetConsumptionRateNew"/>
                                    <apex:inputHidden value="{!ar.rec.CurrentContract_F_asset__r.Maintenance_Price_Year__c}" id="Maintenance_Price_Year__c"/>
                                 <!--    <apex:inputField value="{!ar.rec.CurrentContract_F_asset__r.Asset_Consumption_Rate__c}" id="AssetConsumptionRateNew2" style="display: none" showDatePicker="false" />
@@ -2608,6 +2739,12 @@
                                    <!-- å¸‚场多年保价格开发 end 20223/01/17 è®¾å¤‡æ¶ˆè´¹çއ -->
                                </td>
                                 <!-- å¸‚场多年保价格开发 end 20223/02/20 æ˜¯å¦å¤šå¹´ä¿è®¾å¤‡ start -->
                                <td class="dataCell" width="90px" style="text-align:center">
                                    <apex:outputField value="{!ar.rec.CurrentContract_F_asset__r.IS_VMContract_Asset__c}" rendered="{!Not(ar.IsManual)}" id="IS_VMContract_Asset"/>
                                </td>
                                 <!-- å¸‚场多年保价格开发 end 20223/02/20 æ˜¯å¦å¤šå¹´ä¿è®¾å¤‡ end -->
                                <td class="dataCell" width="90px" style="text-align:right" >
                                    <apex:outputField value="{!ar.mcae.Asset_Consumption_rate__c}" rendered="{!Not(ar.IsManual)}" id="Contractrate"/>
                                    <apex:inputHidden value="{!ar.rec.CurrentContract_F__r.Contract_Range__c}" id="lastContRange"/>
@@ -2623,6 +2760,10 @@
                                </td>
                                <td class="dataCell" width="35px" >
                                    <apex:outputText value="{!ar.mcae.Adjustment_Lower_price__c}" id="Adjustment_Lower_price"/>
                                  <!--   // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 start -->
                                      <!-- <apex:inputHidden value="{!ar.ISStandardPricing}" id="ISStandardPricing" /> -->
                                  <!-- // æœåŠ¡åˆåŒæŠ¥ä»·è§„åˆ™æ”¹å–„ 20230227 end -->
                                    <apex:inputHidden value="{!ar.mcae.LastMContract_Price__c}" id="LastMContract_Price"/>
                                    <apex:inputHidden value="{!ar.mcae.Adjustment_ratio_Lower__c}" id="Adjustment_ratio_Lower"/>
                                    <apex:inputHidden value="{!ar.mcae.Adjustment_Lower_price__c}" id="Adjustment_Lower_priceHidden"/>
@@ -2643,11 +2784,11 @@
                                </td>
                                <td class="dataCell" width="35px" style="text-align:right" >
                                    <apex:inputField value="{!ar.mcae.Repair_Price__c}" id="repairPrice" style="ime-mode: disabled; width:95%; text-align:right;" onchange="refreshAsset({!productCount});changeAsset({!productCount})"/>
                                    <apex:inputField value="{!ar.mcae.Repair_Price__c}" id="repairPrice" style="ime-mode: disabled; width:95%; text-align:right;" onchange="changeAsset({!productCount})"/>
                                </td>
                               <!-- (2022å¹´12月上线)故障品加费 start -->
                                <td class="dataCell" width="35px" style="text-align:right" >
                                    <apex:outputText value="{!ar.Repair_Price_Auto}" id="Repair_Price_Auto" style="width:95%; disabled:disabled;"/>
                                    <apex:outputText value="{!ar.Repair_Price_Auto}" id="Repair_Price_Auto" style="width:95%; "/>
                                    <!-- <apex:inputHiddenalue="{!ar.rec.Reson_Can_not_Warranty__c}" id="ResonCannotWarranty"/> -->
                                    <!-- <apex:outputText value="{!ar.Agreed_Date}" id="Agreed_Date" style="width:95%;display: none;"/> -->
                                    <apex:inputField value="{!ar.mcae.Repair_Price_pass__c}" id="Repair_Price_pass" style="width:95%;display: none;"/>
@@ -2865,9 +3006,9 @@
                        <th style="text-align: center">申请报价金额</th>
                        <th style="text-align: center">合同设备修理总额</th>
                        <th style="text-align: center">合同总金额</th>
                        <!-- ä¸Šé™åˆåŒ 20230103 LY start -->
                        <!-- ä¸Šé™åˆåŒ 20230103 hql start -->
                        <th style="text-align: center">上限金额</th>
                        <!-- ä¸Šé™åˆåŒ 20230103 LY end -->
                        <!-- ä¸Šé™åˆåŒ 20230103 hql end -->
                    </tr>
                    <tr>
                        <td style="text-align: center">
@@ -2892,11 +3033,13 @@
                            <apex:inputHidden value="{!estimate.Maintenance_Price__c}" id="mainteRealHidden"/>
                            <apex:inputHidden value="{!OldMaintenancePrice}" id="oldMainteReal"/>
                        </td>
                        <!-- ä¸Šé™åˆåŒ 20230103 LY start -->
                        <!-- ä¸Šé™åˆåŒ 20230103 hql start -->
                        <td style="text-align: center">
                            <apex:inputField value="{!estimate.Limit_Price_Amount__c}" style="ime-mode: disabled; text-align: right; width:100px" id="Limit_Price_Amount" />
                            <apex:inputHidden value="{!isLimitPrice}" id="Limit_Price2Hidden" />
                            <apex:inputHidden value="{!OldLimitPrice}" id="Limit_PriceHidden" />
                        </td>
                        <!-- ä¸Šé™åˆåŒ 20230103 LY end -->
                        <!-- ä¸Šé™åˆåŒ 20230103 hql end -->
                    </tr>
                    <tr>
                        <th style="text-align: center">{!$ObjectType.Maintenance_Contract_Estimate__c.fields.Service_discount_Rate__c.label}</th>
force-app/main/default/pages/SetupCheck_PicklistValuesGet.page
@@ -1,4 +1,4 @@
<apex:page showHeader="false" title="選択リスト値取得" name="選択リスト値取得" Controller="SetupCheck_PicklistValuesGetController" lightningStylesheets="true">
<apex:page showHeader="false" title="選択リスト値取得" name="選択リスト値取得" Controller="SetupCheck_PicklistValuesGetController">
<script>
    var pick_Vals = new Array();
    <apex:repeat value="{!val_PicklistValues}" var="pickval" id="PicklistRepeat">
force-app/main/default/pages/StraightBackAddress.page
@@ -440,6 +440,7 @@
                let rc = new sforce.SObject('Repair__c');
                rc.Id='{!RepairId}';
                rc.address_Contacts__c=contactsName;
                debugger
                rc.address_ZipCode__c = address.ZipCode__c;
                rc.address_City__c = cityName;
                rc.address_Contacts_Name__c = ContactPerson;
force-app/main/default/pages/StraightBackAddress.page-meta.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexPage xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>45.0</apiVersion>
    <availableInTouch>false</availableInTouch>
    <availableInTouch>true</availableInTouch>
    <confirmationTokenRequired>false</confirmationTokenRequired>
    <label>StraightBackAddress</label>
</ApexPage>
force-app/main/default/pages/XinDailyReport.page
@@ -808,6 +808,7 @@
    
                // 2018/11/21 SWAG-B6Q8BS åˆå§‹åŒ–设置颜色使用
                function setcolor(){
                    alert('进来了');
                    var ProfileId_2S1 = '{!$Label.ProfileId_2S1}';
                    var salesman2S1_Price = '{!$Label.salesman2S1_Price}';
                    var completionFlg = '{!completionFlg}';
@@ -818,6 +819,7 @@
                    }
                    var actSize =  '{!actSize}';
                    var alertflg = false;
                    alert('==='+actSize);
                     for(var i = 0;i<actSize; i++){
                        var TempElement =  document.getElementById("Page:mainForm:idDayEdit:idActivities:"+ i +":alertStringValue");
                        var IsAlertInputDep = 'false';
force-app/main/default/pages/searchAimsAccount.page
@@ -32,7 +32,7 @@
                    </colgroup>
                    <tr>
                        <td>&nbsp;</td>
                        <th>{!$Label.Search_Condition}</th>
                        <th style="width:7%">{!$Label.Search_Condition}</th>
                        <td>&nbsp;</td>
                        <th>医院名称</th>
                        <td>&nbsp;</td>
force-app/main/default/triggers/AttachmentTrigger.trigger
@@ -1,17 +1,21 @@
trigger AttachmentTrigger on Attachment (before insert,after insert,before delete,after delete, before update, after update) {
trigger AttachmentTrigger on Attachment (before insert,after insert,before delete,after delete) {
    List<String> rentalIds = new List<String>();
    List<String> attIds = new List<String>();
    List<String> rentaldelIds = new List<String>();
    List<String> attdelIds = new List<String>();
    List<String> rentalApplyIds = new List<String>();
    List<String> accIds = new List<String>();
    //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
    List<String> accAppIds = new List<String>();
    //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
    // LHJ CHAN-BCLD4P 20190618 Start
    List<String> specIds = new List<String>();
    List<String> specDelIds = new List<String>();
    // LHJ CHAN-BCLD4P 20190618 End
    // sx 20230210start å¤‡å“å€Ÿå‡ºç”³è¯·æ•…障报告附件提取
    List<String> rentalApplyFaultIds = new List<String>();
    Map<String,List<Id>> trentalImages = new Map<String,List<Id>>();
    List<String> rentaldeleteApplyFaultIds = new List<String>();
    Map<String,List<Id>> deleteImages = new Map<String,List<Id>>();
    // sx 20230210end å¤‡å“å€Ÿå‡ºç”³è¯·æ•…障报告附件提取
    // MZY SWAG-BXXBKA  2021-02-19 start
    List<String> opdIds = new List<String>();
@@ -55,11 +59,6 @@
            if (String.valueOf(att.ParentId).startsWith('001')) {
                accIds.add(att.ParentId);
            }
            //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
            if (String.valueOf(att.ParentId).startsWith('a5C')) {
                accAppIds.add(att.ParentId);
            }
            //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
            if(String.valueOf(att.ParentId).startsWith(System.Label.Oppor_sepKey)){
                OpporFileIds.add(att.ParentId);
            }
@@ -80,9 +79,26 @@
                oFOrderIds.add(att.ParentId);
                oFOrderIdMap.put(att.ParentId,true);
            }
            //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š start
            Id cid = att.ParentId;
            String parentLabel = cid.getSObjectType().getDescribe().getName();
            if(parentLabel.equals('Rental_Apply_Fault__c')){
                rentalApplyFaultIds.add(att.ParentId);
                if(trentalImages.containskey(att.ParentId)){
                    trentalImages.get(att.ParentId).add(att.Id);
                }else{
                    List<Id> temp = new List<Id>();
                    temp.add(att.Id);
                    trentalImages.put(att.ParentId,temp);
        }
    }
            //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š end
        }
    }
    if (Trigger.isBefore && Trigger.isDelete) {
        List<Attachment> attDeleteList = new List<Attachment>();
        for (Attachment att : Trigger.old) {
            //if (att.Name.toUpperCase() == '合同书.PDF' && String.valueOf(att.ParentId).startsWith('a0t')) {
            // æ·»ä»˜ã—た契約書のファイル名は指定できない
@@ -102,7 +118,34 @@
                oFOrderIds.add(att.ParentId);
                oFOrderIdMap.put(att.ParentId,false);
            }
            //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š start
            Id cid = att.ParentId;
            String parentLabel = cid.getSObjectType().getDescribe().getName();
            if(parentLabel.equals('Rental_Apply_Fault__c')){
                rentaldeleteApplyFaultIds.add(att.ParentId);
                attDeleteList.add(att);
                if(deleteImages.containskey(att.ParentId)){
                    deleteImages.get(att.ParentId).add(att.Id);
                }else{
                    List<Id> temp = new List<Id>();
                    temp.add(att.Id);
                    deleteImages.put(att.ParentId,temp);
        }
            }
            //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š end
        }
        //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š start
        List<Rental_Apply_Fault__c> rafList = [SELECT Id, Name FROM Rental_Apply_Fault__c WHERE Id IN: rentaldeleteApplyFaultIds AND (status__c = '已发送' OR status__c = '已反馈')];
        for (Rental_Apply_Fault__c raf : rafList) {
            for (Attachment att : attDeleteList) {
                if (att.ParentId == raf.Id) {
                    att.addError('非草案中的检测分析报告不允许删除已上传的故障图片');
                }
            }
        }
        //2023-2-10  sx备品 å¤‡å“æ£€æµ‹åˆ†æžæŠ¥å‘Š end
    }
    if (Trigger.isAfter && Trigger.isDelete) {
        for (Attachment att : Trigger.old) {
@@ -114,26 +157,8 @@
                specIds.add(att.ParentId);
            }
            // LHJ CHAN-BCLD4P 20190618 End
            //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
            if (String.valueOf(att.ParentId).startsWith('a5C')) {
                accAppIds.add(att.ParentId);
            }
            //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
        }
    }
    //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
    if (Trigger.isAfter && Trigger.isUpdate) {
        for (Attachment att : Trigger.old) {
            if (String.valueOf(att.ParentId).startsWith('a5C')) {
                accAppIds.add(att.ParentId);
            }
            if (String.valueOf(att.ParentId).startsWith('001')) {
                accIds.add(att.ParentId);
            }
        }
    }
    //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
    
    if (rentaldelIds.size() > 0) {
@@ -165,6 +190,43 @@
        ControllerUtil.updRentalApplyList(rentalApplyList);
    }
    if(rentalApplyFaultIds.size() > 0){
        List<Rental_Apply_Fault__c> renList = [SELECT Id,AttachmentId1__c,AttachmentId2__c from Rental_Apply_Fault__c where Id in :rentalApplyFaultIds];
        system.debug('updrentalApplyFaultList====='+renList);
        for(Rental_Apply_Fault__c ren : renList){
            if(trentalImages.containskey(ren.Id)){
                if (ren.AttachmentId1__c == null) {
                    ren.AttachmentId1__c = trentalImages.get(ren.id)[0];
                } else if(ren.AttachmentId2__c == null) {
                    ren.AttachmentId2__c = trentalImages.get(ren.id)[0];
                }
            }
        }
        system.debug('updrentalApplyFaultList====='+renList);
        UPDATE renList;
    }
    if(rentaldeleteApplyFaultIds.size() > 0){
        List<Rental_Apply_Fault__c> renList = [SELECT Id,AttachmentId1__c,AttachmentId2__c from Rental_Apply_Fault__c where Id in :rentaldeleteApplyFaultIds];
        system.debug('renList====='+renList);
        for(Rental_Apply_Fault__c ren : renList){
            if(deleteImages.containskey(ren.Id)){
                if(deleteImages.get(ren.Id).contains(ren.AttachmentId1__c)){
                    ren.AttachmentId1__c = '';
                }
                if(deleteImages.get(ren.Id).contains(ren.AttachmentId2__c)){
                    ren.AttachmentId2__c = '';
                }
            }
        }
        system.debug('renList====='+renList);
        UPDATE renList;
    }
    if (accIds.size() > 0) {
        Map<String, String> attMap = new Map<String, String>();
        List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :accIds order by ParentId];
@@ -172,109 +234,13 @@
            attMap.put(att.ParentId, att.ParentId);
        }
        List<Account> updAccList = new List<Account>();
        //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
        List<Account> accList = [select id,Name,
                                                         Is_Active__c
                                               from Account
                                               where id in:accIds ];
        //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
        for (String accid : accIds) {
            if(accList.size() > 0){
                // Account acc = new Account(Id = accid);
                //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
                for(Account acc : accList){
                    if(Trigger.isUpdate && Trigger.isAfter){
                        for(Attachment att : Trigger.New){
                            System.debug('lt123---更新---状态---'+acc.Is_Active__c);
                            if(attMap.containsKey(att.ParentID) && acc.Is_Active__c != '草案中'){
                                System.debug('lt123---草案中---');
                                att.addError('非草案中,附件不允许编辑。');
                                return;
                            }
                        }
                    }
                    if(Trigger.isDelete && (Trigger.isBefore || Trigger.isAfter)){
                        for(Attachment att : Trigger.old){
                            // if(attMap.containsKey(att.ParentID) && acc.Is_Active__c != '草案中'){
                            if(acc.Is_Active__c != '草案中'){
                                att.addError('非草案中,附件不允许删除。');
                                return;
                            }
                        }
                    }
            Account acc = new Account(Id = accid);
                    acc.Is_upload_file__c = attMap.containsKey(accid);
                    updAccList.add(acc);
                }
            }
            //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
        }
        // for (String accid : accIds) {
        //     Account acc = new Account(Id = accid);
        //     acc.Is_upload_file__c = attMap.containsKey(accid);
        //     updAccList.add(acc);
        // }
        if (updAccList.size() > 0) update updAccList;
    }
    //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
    if (accAppIds.size() > 0) {
        Map<String, String> attMap = new Map<String, String>();
        List<Attachment> attList = [select Id, ParentId from Attachment where ParentId = :accAppIds order by ParentId];
        for (Attachment att : attList) {
            attMap.put(att.ParentId, att.ParentId);
        }
        List<Account_Delay_Apply__c> updAccAppList = new List<Account_Delay_Apply__c>();
        //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
        List<Account_Delay_Apply__c> adaList = [select id,Name,
                                                         Is_Active__c
                                               from Account_Delay_Apply__c
                                               where id in:accAppIds ];
        //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
        for (String accappid : accAppIds) {
            if(adaList.size() > 0){
                // Account_Delay_Apply__c accapp = new Account_Delay_Apply__c(Id = accappid);
                //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– start
                for(Account_Delay_Apply__c accapp : adaList){
                    if(Trigger.isUpdate && Trigger.isAfter){
                        for(Attachment att : Trigger.New){
                            if(attMap.containsKey(att.ParentID) && accapp.Is_Active__c != '草案中'){
                                att.addError('非草案中,附件不允许编辑。');
                                return;
                            }
                        }
                    }
                    if(Trigger.isDelete){
                        for(Attachment att : Trigger.old){
                            // if(attMap.containsKey(att.ParentID) && accapp.Is_Active__c != '草案中'){
                            if(accapp.Is_Active__c != '草案中'){
                                att.addError('非草案中,附件不允许删除。');
                                return;
                            }
                        }
                    }
                    accapp.Is_upload_file__c = attMap.containsKey(accappid);
                    updAccAppList.add(accapp);
                }
            }
            //20221207 lt åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
        }
        if (updAccAppList.size() > 0) update updAccAppList;
    }
    //20221014 yc åŒ»é™¢å®¡æ‰¹ä¼˜åŒ– end
    // LHJ CHAN-BCLD4P 20190618 Start
    if (specIds.size() > 0) {
        
force-app/main/default/triggers/NFM010UpsertStatuAchievements.trigger
@@ -431,6 +431,57 @@
        }
    }
    //20230203 lt DB202301351834  æ–°å“å‘货日赋值  start
    List<String> SIDList = new List<String>();
    List<QIS_Report__c> UpdQISList = new List<QIS_Report__c>();
    if(Trigger.isInsert || Trigger.isUpdate){
        System.debug('---lt123---进判断---');
        for (Statu_Achievements__c sta : Trigger.new){
            if(Trigger.isInsert){
                if(sta.Status_1__c != '退货' && sta.Status_1__c != '无效' && sta.ContractNO__c != null  && sta.DeliveryDate__c != null){
                    if(!SIDList.contains(sta.ContractNO__c)){
                        SIDList.add(sta.ContractNO__c);
                    }
                }
            }else{
                Statu_Achievements__c OldSta = Trigger.oldMap.get(sta.id);
                if(sta.Status_1__c != '退货' && sta.Status_1__c != '无效' && sta.ContractNO__c != null  && sta.DeliveryDate__c != null && (sta.DeliveryDate__c != OldSta.DeliveryDate__c || (System.Label.onlyupdate == '1' && UserInfo.getUserId() == '00510000005sEEMAA2'))){
                    if(!SIDList.contains(sta.ContractNO__c)){
                        SIDList.add(sta.ContractNO__c);
                    }
                }
            }
        }
    }
    System.debug('---lt123---合同编号list---'+SIDList);
    System.debug('---lt123---合同编号listSize---'+SIDList.size());
    if(SIDList.size() > 0 ){
        list<QIS_Report__c> QISList =
            [Select id, NewProDeliveryDate__c, Order_No__c
             From QIS_Report__c
             Where Order_No__c in: SIDList];
        System.debug('---lt123---QISlist---'+QISList);
        System.debug('---lt123---QISlistSize---'+QISList.size());
        if(QISList.size() > 0 ){
            for(QIS_Report__c qiss : QISList){
                for (Statu_Achievements__c sta : Trigger.new){
                    if(qiss.Order_No__c == sta.ContractNO__c){
                        qiss.NewProDeliveryDate__c = sta.DeliveryDate__c;
                        UpdQISList.add(qiss);
                    }
                }
            }
        }
        if(UpdQISList.size() > 0 ){
            update UpdQISList;
        }
    }
    //20230203 lt DB202301351834  æ–°å“å‘货日赋值  end
    // SoNo_DeliveryDate_Text__c ã«ã¦ upsert
    if (stajUpsertMap.size() > 0) {
        ControllerUtil.upsertStatuAchievementsJournalByKey(stajUpsertMap.values());
force-app/main/default/triggers/Repair.trigger
@@ -83,7 +83,6 @@
                    defaultFlag = false;
                }
                // GZW ç‰¹æ®Šå¤„理 è·³è¿‡ç»´ä¿®ä¸­å¿ƒè‡ªåŠ¨èµ‹å€¼ï¼Œä»¥æ‰‹é€‰ä¸ºå‡† start
                if ((repair.Status__c == '草案中' || String.isBlank(repair.Status__c)) == false) {
                    // if (Trigger.isUpdate && repair.SAP_Transfer_time__c == null) {
                    if (Trigger.isUpdate && repair.SAP_Transfer_time__c == null && repair.Exc_work_location__c == false) {
@@ -165,18 +164,12 @@
                            }
                            //限次合同产品信息维护相关 FXK 2021/03/05 END
                            //上限合同 LY 20230117 start
                            //如果记录类型是服务任务并且是上限合同,那么判断超过上限和到达上限标志
                            //如果记录类型是服务任务并且是上限合同,那么判断超过合同上限标志
                            if (middleTable.Maintenance_Contract__r.RecordType.DeveloperName == 'NewMaintenance_Contract'
                                    && middleTable.Maintenance_Contract__r.Limit_Price__c == true) {
                                //新建修理即无修理报价 ç»´ä¿®åˆåŒä¸Šçš„修理剩余金额如果小于等于0 é‚£ä¹ˆã€è¶…过合同上限】为true
                                if (middleTable.Maintenance_Contract__r.Remaining_Amount__c <= 0 && (repair.Repair_Quotation_Id__c==null || repair.Repair_Quotation_Id__c=='')) {
                                if (middleTable.Maintenance_Contract__r.Remaining_Amount__c <= 0 ) {
                                    repair.ZFLAG_CGSX__c = true;
                                }
                                //维修合同上的修理剩余金额如果大于0,且【剩余金额】减去修理报价的计入【合同消费率的修理金额】小于等于0,那么【到达上限】为true
                                if (middleTable.Maintenance_Contract__r.Remaining_Amount__c >0 && (repair.Repair_Quotation_Id__c!=null || repair.Repair_Quotation_Id__c!='')
                                    && (middleTable.Maintenance_Contract__r.Remaining_Amount__c -repair.Repair_Quotation_Id__r.Usage_Ratio_Price__c)<=0
                                    ) {
                                    repair.ZFLAG_SX__c = true;
                                }
                            }
                            //上限合同 LY 20230117 end
@@ -422,6 +415,21 @@
            }
        }
        // 2022-12-22   zyh   add   END
        //上限合同 LY 20230207 start
        //维修合同上的修理剩余金额如果大于0,且【剩余金额】减去修理报价的计入【合同消费率的修理金额】小于等于0,那么【到达上限】为true
        if (Trigger.isBefore && Trigger.isUpdate) {
            for (Repair__c repair: Trigger.new) {
                if (repair.Limit_Price__c ==true ){
                    if (repair.Agreed_Date__c!=null &&(repair.Remaining_Amount__c-repair.Usage_Ratio_Price__c)<=0){
                        repair.ZFLAG_SX__c = true;
                    }else{
                        repair.ZFLAG_SX__c = false;
                    }
                }
            }
        }
        //上限合同 LY 20230207 end
        System.debug( '-----: trigger end');
    }
    public void test(){
force-app/main/default/triggers/UserToContact.trigger
@@ -12,6 +12,18 @@
        if (Trigger.isUpdate) {
            old = Trigger.oldMap.get(local.Id);
        }
        //20230303 lt DB202302421915 start
        if(Trigger.isBefore && Trigger.isUpdate && local.Pregnant_Rest__c != old.Pregnant_Rest__c){
            if(old.Pregnant_Rest__c == FALSE && local.Pregnant_Rest__c == TRUE){
                local.Maternity_leave_StartDate__c = Date.today();
            }
            if(old.Pregnant_Rest__c == TRUE && local.Pregnant_Rest__c == FALSE){
                local.Maternity_leave_EndDate__c = Date.today();
            }
        }
        //20230303 lt DB202302421915 end
        if (String.isNotBlank(local.Employee_No__c)  
                            && ( Trigger.isInsert 
                            || old.Test_staff__c != local.Test_staff__c
package-lock.json
New file
Diff too large