From 922e7973b06cab17b3d7d0b125f7d7e5279bda1d Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期二, 10 五月 2022 16:14:58 +0800
Subject: [PATCH] 【委托】URF限次修理合同的最高价格修改

---
 force-app/main/default/classes/SelectAssetEstimateURFController.cls | 5725 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 2,899 insertions(+), 2,826 deletions(-)

diff --git a/force-app/main/default/classes/SelectAssetEstimateURFController.cls b/force-app/main/default/classes/SelectAssetEstimateURFController.cls
index 0e54bb5..a6d363a 100644
--- a/force-app/main/default/classes/SelectAssetEstimateURFController.cls
+++ b/force-app/main/default/classes/SelectAssetEstimateURFController.cls
@@ -1,370 +1,374 @@
 global class SelectAssetEstimateURFController {
 	//test
 		private String targetHospitalId = null;            // 浠婂緦绯诲垪鐥呴櫌鐢�
-		private String targetMaintenanceContractId = null;
-		public String typeresult {get; set;}
+	private String targetMaintenanceContractId = null;
+	public String typeresult {get; set;}
 	
-		public String targetEstimateId { get; private set; }
-		public Boolean changedAfterPrint {get; set;}       // true 銇牬鍚堛�佺敾闈€伀 confirm 銉°儍銈汇兗銈搞亴琛ㄧず銇椼伨銇欍�俼uoId銈掓柊銇椼亜insert銆傚垽瀹氥伅js銇仸瀹熸柦
-		public Decimal lastFriYearsPriceSum {get; set;}
-		public Decimal lastSecYearsPriceSum {get; set;}
-		Public String alertString {get; set;}
-		Public String alertString2 {get; set;}
-		Public String alertString3 {get; set;}
-		public Boolean printAsset { get; private set; }
-		public Boolean printContract { get; private set; }
-		public Boolean printTripartite { get; private set; }
-		public Boolean printAgent { get; private set; }
-		public boolean inDicideFlag {get; set;}     //浣滀负琛ュ厖锛屽搴旀姤浠峰喅瀹氫箣鍚庯紝鍗存湭鑳借鍚堝悓璧锋鏃ユ湡浼犻�掔粰鍚堝悓鐨勯棶棰�
-		public String isPaymentSet {get; set;}
+	public String targetEstimateId { get; private set; }
+	public Boolean changedAfterPrint {get; set;}           // true 銇牬鍚堛�佺敾闈€伀 confirm 銉°儍銈汇兗銈搞亴琛ㄧず銇椼伨銇欍�俼uoId銈掓柊銇椼亜insert銆傚垽瀹氥伅js銇仸瀹熸柦
+	public Decimal lastFriYearsPriceSum {get; set;}
+	public Decimal lastSecYearsPriceSum {get; set;}
+	Public String alertString {get; set;}
+	Public String alertString2 {get; set;}
+	Public String alertString3 {get; set;}
+	public Boolean printAsset { get; private set; }
+	public Boolean printContract { get; private set; }
+	public Boolean printTripartite { get; private set; }
+	public Boolean printAgent { get; private set; }
+	public boolean inDicideFlag {get; set;}         //浣滀负琛ュ厖锛屽搴旀姤浠峰喅瀹氫箣鍚庯紝鍗存湭鑳借鍚堝悓璧锋鏃ユ湡浼犻�掔粰鍚堝悓鐨勯棶棰�
+	public String isPaymentSet {get; set;}
 	//public String PaymentSet {get;set;}
 	// 寮曟暟銇偟銉笺儞銈瑰绱勩伄鎯呭牨銈掓牸绱嶃仚銈嬨��
-		public Maintenance_Contract__c contract { get; private set; }
-		public Maintenance_Contract_Estimate__c estimate { get; set; }
+	public Maintenance_Contract__c contract { get; private set; }
+	public Maintenance_Contract_Estimate__c estimate { get; set; }
 	// 2021銆�8銆�26 鍚堝悓鎶ヤ环椤甸潰鐨勪紭鍖栵紝鏃犱繚鏈夎澶囩偣妫�瀵硅薄閫夋嫨妗嗗彉榛� fxk star
-		public Asset ass { get; set; }
+	public Asset ass { get; set; }
 	// 2021銆�8銆�26 鍚堝悓鎶ヤ环椤甸潰鐨勪紭鍖栵紝鏃犱繚鏈夎澶囩偣妫�瀵硅薄閫夋嫨妗嗗彉榛� fxk end
 	// 鐥呴櫌閰嶄笅銇磵鍏ユ鍣ㄣ伄鎯呭牨銈掓牸绱嶃仚銈嬨��
-		private List<Asset> assetRecords;                       // TODO 绯诲垪鐥呴櫌銇牬鍚堛�併亾銇厤鍒椼伅鍥哄畾銇с亶銇亜銇с仚銆�
-		public List<AssetInfo> checkedAssets { get; set; }
-		private List<AssetInfo> unCheckedAssets = new List<AssetInfo>();
+	private List<Asset> assetRecords;                           // TODO 绯诲垪鐥呴櫌銇牬鍚堛�併亾銇厤鍒椼伅鍥哄畾銇с亶銇亜銇с仚銆�
+	public List<AssetInfo> checkedAssets { get; set; }
+	private List<AssetInfo> unCheckedAssets = new List<AssetInfo>();
 	
 	//public List<List<AssetInfo>> checkedAssetsView { get; set; }
-		public List<List<AssetInfo> > unCheckedAssetsView { get; set; }
+	public List<List<AssetInfo> > unCheckedAssetsView { get; set; }
 	
 	// 鍒嗛〉鐢�
-		public Integer currPage { get; set; }     // 褰撳墠椤�
-		public Integer totalPage { get; set; }     // 鎬婚〉鏁�
-		public Integer selctRecordNum { get { return Integer.valueOf(selRecordOption); } }     // 閫夋嫨鐨勬瘡椤佃褰曟暟
-		public Integer totalRecords { get; set; }     // 鎬昏褰曟暟
-		public String selRecordOption { get; set; }
-		public static List<SelectOption> recordNum { get; private set; }     // 閫夋嫨姣忛〉璁板綍鏁癓ist
+	public Integer currPage { get; set; }         // 褰撳墠椤�
+	public Integer totalPage { get; set; }         // 鎬婚〉鏁�
+	public Integer selctRecordNum { get { return Integer.valueOf(selRecordOption); } }         // 閫夋嫨鐨勬瘡椤佃褰曟暟
+	public Integer totalRecords { get; set; }         // 鎬昏褰曟暟
+	public String selRecordOption { get; set; }
+	public static List<SelectOption> recordNum { get; private set; }         // 閫夋嫨姣忛〉璁板綍鏁癓ist
+	
 	
 	//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' start
-		public Boolean IS_Clone_After_Decide { get; set; }
+	public Boolean IS_Clone_After_Decide { get; set; }
 	//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' end
-		static {
-			recordNum = new List<SelectOption>();
-			recordNum.add(new SelectOption('10', '10'));
-			recordNum.add(new SelectOption('20', '20'));
-			recordNum.add(new SelectOption('50', '50'));
-			recordNum.add(new SelectOption('100', '100'));
-			recordNum.add(new SelectOption('200', '200'));
-		}
-		private List<String> checkIdList = new List<String> ();     // 鍚堝悓瀵硅薄璁惧鐨勮澶嘔D
+	static {
+		recordNum = new List<SelectOption>();
+		recordNum.add(new SelectOption('10', '10'));
+		recordNum.add(new SelectOption('20', '20'));
+		recordNum.add(new SelectOption('50', '50'));
+		recordNum.add(new SelectOption('100', '100'));
+		recordNum.add(new SelectOption('200', '200'));
+	}
+	private List<String> checkIdList = new List<String> ();         // 鍚堝悓瀵硅薄璁惧鐨勮澶嘔D
 	
 	//-------HWAG-B4R3SS----------------update----------------------------
-		public Boolean activeOn { get; set; }
-		public String sortKey { get; set; }
-		public Boolean sortOrderAsc { get; private set; }
-		private String[] columus = new String[] {'Asset_situation__c', 'Name', 'SerialNumber', 'CurrentContract__r.Management_Code__c', 'Department_Name__c', 'Status', 'Installation_Site__c', 'Room_Number__c', 'InstallDate', 'Asset_Owner__c', 'Accumulation_Repair_Amount__c', 'AssetMark__c'};
-		private Boolean isSoft;
+	public Boolean activeOn { get; set; }
+	public String sortKey { get; set; }
+	public Boolean sortOrderAsc { get; private set; }
+	private String[] columus = new String[] {'Asset_situation__c', 'Name', 'SerialNumber', 'CurrentContract__r.Management_Code__c', 'Department_Name__c', 'Status', 'Installation_Site__c', 'Room_Number__c', 'InstallDate', 'Asset_Owner__c', 'Accumulation_Repair_Amount__c', 'AssetMark__c'};
+	private Boolean isSoft;
 	// 鏄剧ず鏁版嵁鏉℃暟闄愬埗
-		private static Integer SELECT_LIMIT = 200;
-		public List<AssetInfo> unCheckedInfoList { get; set; }
-		private String text1ForSort = null;
-		private String cond1ForSort = null;
-		private String val1ForSort = null;
+	private static Integer SELECT_LIMIT = 200;
+	public List<AssetInfo> unCheckedInfoList { get; set; }
+	private String text1ForSort = null;
+	private String cond1ForSort = null;
+	private String val1ForSort = null;
 	/*****************select option******************/
-		public static List<SelectOption> textOpts { get; private set; }
-		public Decimal countorder { get; set; }
-		public List<String> assetSerialNumberList = new List<String>();
+	public static List<SelectOption> textOpts { get; private set; }
+	public Decimal countorder { get; set; }
+	public List<String> assetSerialNumberList = new List<String>();
 	// 鏂拌 鎴栬�� copy
-		private Boolean newIns = false;
+	private Boolean newIns = false;
 	
 	
-		static {
-			textOpts = new List<SelectOption>();
-			//LJPH-BSS6E2  ---20200911 ---update by rentongxiao start
-			// textOpts.add(new SelectOption('','-鏃�-'));
-			//LJPH-BSS6E2  ---20200911 ---update by rentongxiao end
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-			/* 鍦ㄦ煡璇㈣鍙ヤ腑 鏂板浜� AssetMark__c 鐨勫瓧娈� */
-			// textOpts.add(new SelectOption('S:Asset_situation__c'  , Schema.SObjectType.Asset.fields.Asset_situation__c.label));
-			// 娣诲姞鏂版潯浠� -- 鑰楁潗/涓绘満
-			textOpts.add(new SelectOption('S:AssetMark__c', '涓绘満/鑰楁潗'));
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-			textOpts.add(new SelectOption('S:Name', Schema.SObjectType.Asset.fields.Name.label));
-			textOpts.add(new SelectOption('S:SerialNumber', Schema.SObjectType.Asset.fields.SerialNumber.label));
-			textOpts.add(new SelectOption('S:CurrentContract__r.Management_Code__c', Schema.SObjectType.Asset.fields.CurrentContract__c.label));
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-			// textOpts.add(new SelectOption('S:Status'              , Schema.SObjectType.Asset.fields.Status.label));
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-			textOpts.add(new SelectOption('S:Installation_Site__c', Schema.SObjectType.Asset.fields.Installation_Site__c.label));
-			textOpts.add(new SelectOption('S:Department_Name__c', Schema.SObjectType.Asset.fields.Department_Name__c.label));
-		}
-		public static List<SelectOption> equalOpts { get; private set; }
-		static {
-			equalOpts = new List<SelectOption>();
-			equalOpts.add(new SelectOption('equals', '绛変簬'));
-			equalOpts.add(new SelectOption('contains', '鍖呭惈'));
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-			//鏂板姞鍖归厤绗� 涓嶇瓑浜�
-			equalOpts.add(new SelectOption('notequals', '涓嶇瓑浜�'));
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-		}
-		public String text1 { get; set; }     // 瀵硅薄
-		public String cond1 { get; set; }     // 鏉′欢
-		public String val1 { get; set; }     // 鍊�
+	static {
+		textOpts = new List<SelectOption>();
+		//LJPH-BSS6E2  ---20200911 ---update by rentongxiao start
+		// textOpts.add(new SelectOption('','-鏃�-'));
+		//LJPH-BSS6E2  ---20200911 ---update by rentongxiao end
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+		/* 鍦ㄦ煡璇㈣鍙ヤ腑 鏂板浜� AssetMark__c 鐨勫瓧娈� */
+		// textOpts.add(new SelectOption('S:Asset_situation__c'  , Schema.SObjectType.Asset.fields.Asset_situation__c.label));
+		// 娣诲姞鏂版潯浠� -- 鑰楁潗/涓绘満
+		textOpts.add(new SelectOption('S:AssetMark__c', '涓绘満/鑰楁潗'));
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+		textOpts.add(new SelectOption('S:Name', Schema.SObjectType.Asset.fields.Name.label));
+		textOpts.add(new SelectOption('S:SerialNumber', Schema.SObjectType.Asset.fields.SerialNumber.label));
+		textOpts.add(new SelectOption('S:CurrentContract__r.Management_Code__c', Schema.SObjectType.Asset.fields.CurrentContract__c.label));
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+		// textOpts.add(new SelectOption('S:Status'              , Schema.SObjectType.Asset.fields.Status.label));
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+		textOpts.add(new SelectOption('S:Installation_Site__c', Schema.SObjectType.Asset.fields.Installation_Site__c.label));
+		textOpts.add(new SelectOption('S:Department_Name__c', Schema.SObjectType.Asset.fields.Department_Name__c.label));
+	}
+	public static List<SelectOption> equalOpts { get; private set; }
+	static {
+		equalOpts = new List<SelectOption>();
+		equalOpts.add(new SelectOption('equals', '绛変簬'));
+		equalOpts.add(new SelectOption('contains', '鍖呭惈'));
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+		//鏂板姞鍖归厤绗� 涓嶇瓑浜�
+		equalOpts.add(new SelectOption('notequals', '涓嶇瓑浜�'));
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+	}
+	public String text1 { get; set; }         // 瀵硅薄
+	public String cond1 { get; set; }         // 鏉′欢
+	public String val1 { get; set; }         // 鍊�
 	//LJPH-BSS6E2  ---20200911 ---add by rentongxiao start
-		public String contr {get; set; }     //鍒ゆ柇鏄惁init
+	public String contr {get; set; }         //鍒ゆ柇鏄惁init
 	//LJPH-BSS6E2  ---20200911 ---add by rentongxiao end
 	
 	// 妫�绱㈡寜閽�
-		public PageReference searchBtn() {
-			countorder = 1;
-			//楠岃瘉
-			assetSerialNumberList.clear();
-			getAssetSerialNumber();
-			totalRecords = 0;
-			List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1);
-			for (Asset ast : assetconfimList) {
-				totalRecords++;
-			}
-	
-	
-			// 鑾峰彇assets
-			List<Asset> assetList = getAsset(text1, cond1, val1);
-	
-			// 浣滄垚鏄庣粏琛�
-			getSortedUnCheckedInfoList(assetList);
-			// 鎺掑簭鐢ㄦ绱㈡潯浠堕��閬�
-			text1ForSort = text1;
-			cond1ForSort = cond1;
-			val1ForSort = val1;
-			currPage = 1;
-	
-	
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			return null;
+	public PageReference searchBtn() {
+		countorder = 1;
+		//楠岃瘉
+		assetSerialNumberList.clear();
+		getAssetSerialNumber();
+		totalRecords = 0;
+		List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1);
+		for (Asset ast : assetconfimList) {
+			totalRecords++;
 		}
+	
+	
+		// 鑾峰彇assets
+		List<Asset> assetList = getAsset(text1, cond1, val1);
+	
+		// 浣滄垚鏄庣粏琛�
+		getSortedUnCheckedInfoList(assetList);
+		// 鎺掑簭鐢ㄦ绱㈡潯浠堕��閬�
+		text1ForSort = text1;
+		cond1ForSort = cond1;
+		val1ForSort = val1;
+		currPage = 1;
+	
+	
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		return null;
+	}
 	
 	// 鍙栧凡閫夋嫨璧勪骇鐨勬満韬紪鐮�
-		public void getAssetSerialNumber() {
-			//LJPH-BSS6E2  ---20200911 ---add by rentongxiao start
-			contr = '2';
-			//LJPH-BSS6E2  ---20200911 ---add by rentongxiao end
-			assetSerialNumberList = new List<String>();
-			assetSerialNumberList.clear();
-			for (AssetInfo ai : this.checkedAssets) {
-				system.debug('checkedAssets1111111' + this.checkedAssets);
-				//system.debug('ai.ah.SerialNumber__c' + ai.ah.SerialNumber__c);
-				if (String.isNotEmpty(ai.rec.SerialNumber)) {
-					assetSerialNumberList.add(ai.rec.SerialNumber);
-				}
+	public void getAssetSerialNumber() {
+		//LJPH-BSS6E2  ---20200911 ---add by rentongxiao start
+		contr = '2';
+		//LJPH-BSS6E2  ---20200911 ---add by rentongxiao end
+		assetSerialNumberList = new List<String>();
+		assetSerialNumberList.clear();
+		for (AssetInfo ai : this.checkedAssets) {
+			system.debug('checkedAssets1111111' + this.checkedAssets);
+			//system.debug('ai.ah.SerialNumber__c' + ai.ah.SerialNumber__c);
+			if (String.isNotEmpty(ai.rec.SerialNumber)) {
+				assetSerialNumberList.add(ai.rec.SerialNumber);
 			}
 		}
+	}
 	
 	//
-		private void getSortedUnCheckedInfoList(List<Asset> assetList) {
-			Boolean overLimit = false;
-			Map<Id, AssetInfo> markUpUnCheckMap = new Map<Id, AssetInfo>();
-			for (AssetInfo unCheckinfo : unCheckedAssets) {
+	private void getSortedUnCheckedInfoList(List<Asset> assetList) {
+		Boolean overLimit = false;
+		Map<Id, AssetInfo> markUpUnCheckMap = new Map<Id, AssetInfo>();
+		for (AssetInfo unCheckinfo : unCheckedAssets) {
 	
-				// 鎵撳嬀锛岃涓轰紭鍏堟樉绀烘槑缁�
-				if (unCheckinfo.rec_checkBox_c == true) {
-					// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckinfo.rec_checkBox_c' + unCheckinfo.rec_checkBox_c));
-					markUpUnCheckMap.put(unCheckinfo.rec.Id, unCheckinfo);
-				}
-			}
-			unCheckedAssets.clear();
-			// 浼樺厛鏄剧ず鏄庣粏鏀惧湪鏈�鍓嶉潰
-			unCheckedInfoList = new List<AssetInfo>();
-			for (AssetInfo asInfo : markUpUnCheckMap.values()) {
-				unCheckedAssets.add(asInfo);
-			}
-			SELECT_LIMIT = selctRecordNum;
-			Integer selectCnt = unCheckedAssets.size();
-			for (Asset asset : assetList) {
-				// 201銈掕秴銇堛仧鍫村悎鍓�200銇伩銈掑嚭銇�
-				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));
-				}
+			// 鎵撳嬀锛岃涓轰紭鍏堟樉绀烘槑缁�
+			if (unCheckinfo.rec_checkBox_c == true) {
+				// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckinfo.rec_checkBox_c' + unCheckinfo.rec_checkBox_c));
+				markUpUnCheckMap.put(unCheckinfo.rec.Id, unCheckinfo);
 			}
 		}
+		unCheckedAssets.clear();
+		// 浼樺厛鏄剧ず鏄庣粏鏀惧湪鏈�鍓嶉潰
+		unCheckedInfoList = new List<AssetInfo>();
+		for (AssetInfo asInfo : markUpUnCheckMap.values()) {
+			unCheckedAssets.add(asInfo);
+		}
+		SELECT_LIMIT = selctRecordNum;
+		Integer selectCnt = unCheckedAssets.size();
+		for (Asset asset : assetList) {
+			// 201銈掕秴銇堛仧鍫村悎鍓�200銇伩銈掑嚭銇�
+			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));
+			}
+		}
+	}
 	
 	//妫�绱㈤獙璇�
-		private List<Asset> getAssetconfim(String txt, String con, String val) {
-			String soql = this.makeSoqlconfim();
-			soql += makeTextSql(txt, con, val);
-			system.debug('makeTextSql_soql' + soql);
-			if (isSoft) {
-				soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last ');
+	private List<Asset> getAssetconfim(String txt, String con, String val) {
+		String soql = this.makeSoqlconfim();
+		soql += makeTextSql(txt, con, val);
+		system.debug('makeTextSql_soql' + soql);
+		if (isSoft) {
+			soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last ');
+		} else {
+			soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate';
+		}
+		system.debug('====getAssetconfim:' + soql);
+		return Database.query(soql);
+	}
+	
+	private List<Asset> getAsset(String txt, String con, String val) {
+		String soql = this.makeSoqlconfim();
+		soql += makeTextSql(txt, con, val);
+	
+		if (isSoft) {
+			soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last ');
+		} else {
+			soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate';
+		}
+		soql += ' limit ' + System.Label.Asset_Maxcount;
+		soql += ' OFFSET ' + (countorder - 1) * Integer.valueOf(System.Label.Asset_Maxcount);
+		return Database.query(soql);
+	}
+	
+	public Integer soqlNos() {
+		List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1);
+		totalRecords = assetconfimList.size();
+		//totalPage = (totalRecords/selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		return totalRecords;
+	}
+	
+	private String makeSoqlconfim() {
+		String sqlTail = '(\'';
+		system.debug('assetSerialNumberList.size()' + assetSerialNumberList.size());
+		for (Integer i = 0; i < assetSerialNumberList.size(); i++) {
+			if (i < assetSerialNumberList.size() - 1) {
+				sqlTail += assetSerialNumberList[i] + '\',\'';
 			} else {
-				soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate';
+				sqlTail += assetSerialNumberList[i] + '\')';
 			}
-			system.debug('====getAssetconfim:' + soql);
-			return Database.query(soql);
 		}
-	
-		private List<Asset> getAsset(String txt, String con, String val) {
-			String soql = this.makeSoqlconfim();
-			soql += makeTextSql(txt, con, val);
-	
-			if (isSoft) {
-				soql += ' order by ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last ');
-			} else {
-				soql += ' order by SerialNumber, Name, Department_Name__c, InstallDate';
-			}
-			soql += ' limit ' + System.Label.Asset_Maxcount;
-			soql += ' OFFSET ' + (countorder - 1) * Integer.valueOf(System.Label.Asset_Maxcount);
-			return Database.query(soql);
+		//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201
+	      	String soql = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, '
+	              + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, '
+	              + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, '
+	              + 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'
+	              + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, '
+	              + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
+	              + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,CurrentContract_F__r.Contract_Range__c,'
+              	      + 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
+		      //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		      + 'Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Product2.ProductURF__r.Maintenance_Price_Year_URF__c,'  
+		      //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+		      + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' ';
+		//HWAG-BDJ43R ---XHL---20190729---
+		//soql +=  ' AND AssetMark__c != \'鑰楁潗\' AND Product2.Family != \'ET\' ';
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+		// soql +=  ' AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' ) ';
+		//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+		//HWAG-BDJ43R ---XHL---20190729---
+		if (assetSerialNumberList.size() > 0) {
+			soql += ' AND SerialNumber not in ' + sqlTail;
 		}
-	
-		public Integer soqlNos() {
-			List<Asset> assetconfimList = getAssetconfim(text1, cond1, val1);
-			totalRecords = assetconfimList.size();
-			//totalPage = (totalRecords/selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			return totalRecords;
-		}
-	
-		private String makeSoqlconfim() {
-			String sqlTail = '(\'';
-			system.debug('assetSerialNumberList.size()' + assetSerialNumberList.size());
-			for (Integer i = 0; i < assetSerialNumberList.size(); i++) {
-				if (i < assetSerialNumberList.size() - 1) {
-					sqlTail += assetSerialNumberList[i] + '\',\'';
-				} else {
-					sqlTail += assetSerialNumberList[i] + '\')';
-				}
-			}
-			//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201
-			String soql = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, '
-						  + 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, '
-						  + 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, '
-						  + 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'
-						  + 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, '
-						  + 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
-						  + 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,CurrentContract_F__r.Contract_Range__c,'
-						  + 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
-						  + 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' ';
-			//HWAG-BDJ43R ---XHL---20190729---
-			//soql +=  ' AND AssetMark__c != \'鑰楁潗\' AND Product2.Family != \'ET\' ';
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-			// soql +=  ' AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' ) ';
-			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-			//HWAG-BDJ43R ---XHL---20190729---
-			if (assetSerialNumberList.size() > 0) {
-				soql += ' AND SerialNumber not in ' + sqlTail;
-			}
-			return soql;
-		}
+		return soql;
+	}
 	
 	// 鎷兼帴妫�绱㈡潯浠秙ql鏂�
-		private String makeTextSql(String txt1, String con, String val) {
-			String soql = '';
-			if (String.isBlank(con)) {
-				con = 'equals';
-			}
-			// contains銇牬鍚堛�佹棩鍫辩敾闈€伄鐥呴櫌妞滅储銈掔湡浼笺仐銆乻pace銇у垎銇戙仸銆乤nd妞滅储
-			// equals銇牬鍚堛�丼F妯欐簴銇绱€倰鐪熶技銇椼�併��,銆嶃仹鍒嗐亼銇︺�乷r妞滅储
-			if (!String.isBlank(txt1)) {
-				if ((con == 'contains' || con == 'notcontains') && val.contains(' ')) {
-					String[] vals = val.split(' ');
+	private String makeTextSql(String txt1, String con, String val) {
+		String soql = '';
+		if (String.isBlank(con)) {
+			con = 'equals';
+		}
+		// contains銇牬鍚堛�佹棩鍫辩敾闈€伄鐥呴櫌妞滅储銈掔湡浼笺仐銆乻pace銇у垎銇戙仸銆乤nd妞滅储
+		// equals銇牬鍚堛�丼F妯欐簴銇绱€倰鐪熶技銇椼�併��,銆嶃仹鍒嗐亼銇︺�乷r妞滅储
+		if (!String.isBlank(txt1)) {
+			if ((con == 'contains' || con == 'notcontains') && val.contains(' ')) {
+				String[] vals = val.split(' ');
 	
-					String cSql = '';
-					if (vals.size() > 0) {
-						String txt = txt1.substring(2);
-						soql += ' and ( ';
-						for (String v : vals) {
-							if (String.isNotBlank(v)) {
-								if (con == 'contains') {
-									soql += txt + ' like \'%' + v + '%\' or ';
-								} else {
-									soql += txt + ' not like \'%' + v + '%\' and ';
-								}
-							}
-	
-	
-						}
-						soql = soql.substring(0, soql.length() - 4);
-						soql += ')';
-					}
-					system.debug('containssoql:     ' + soql);
-				} else if ((con == 'equals' || con == 'notequals') && val.contains(',')) {
-					String[] vals = val.split(',');
-					if (vals.size() > 0) {
-						String txt = txt1.substring(2);     // S:Name 銆佹渶鍒濄伄锛掓枃瀛椼亴銈裤偆銉椼仹銇�
-						soql += ' and ( ';
-						for (String v : vals) {
-							if (con == 'equals') {
-								soql += txt + ' = \'' + v + '\' or ';
+				String cSql = '';
+				if (vals.size() > 0) {
+					String txt = txt1.substring(2);
+					soql += ' and ( ';
+					for (String v : vals) {
+						if (String.isNotBlank(v)) {
+							if (con == 'contains') {
+								soql += txt + ' like \'%' + v + '%\' or ';
 							} else {
-								// notequals
-								soql += txt + ' <> \'' + v + '\' and ';
+								soql += txt + ' not like \'%' + v + '%\' and ';
 							}
 						}
-						soql = soql.substring(0, soql.length() - 4);
-						soql += ')';
-					}
-				} else {
-					String cSql = this.makeTextSqlStr(txt1, con, val);
-					if (con != 'notcontains') {
-						soql += this.makeTextSqlStr(txt1, con, val);
-					} else {
-						// notcontains
-						if (!String.isBlank(cSql)) {
-							cSql = cSql.substring(5);     // ' and ' 銇�5鏂囧瓧銈掑銇�
-							soql += ' and (NOT ' + cSql + ') ';
-						}
-					}
-				}
-			}
-			// //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-			// else{
-			//     soql += 'And AssetMark__c = \'涓绘満\'';
-			// }
-			// //JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-			return soql;
-		}
 	
-		private String makeTextSqlStr(String txt1, String con, String val) {
-			String soql = '';
-			if (!String.isBlank(txt1)) {
-				String txt = txt1.substring(2);
-				String colType = txt1.substring(0, 2);
-				String tmpVal = val.trim();
-				// 绌虹櫧銇牬鍚�''銇仚銈�
-				if (String.isBlank(tmpVal)) {
-					if (con == 'equals') {
-						//soql += ' and ' + txt + ' = ' + tmpVal;
-						soql += ' and ' + txt + ' = null';
-					} else if (con == 'notequals') {
-						soql += ' and ' + txt + ' <> null';
-					} else {
-						// 绌虹櫧銇牬鍚堛�乧ontains, notcontains 銇� starts with銇劇瑕�
+	
 					}
+					soql = soql.substring(0, soql.length() - 4);
+					soql += ')';
+				}
+				system.debug('containssoql:     ' + soql);
+			} else if ((con == 'equals' || con == 'notequals') && val.contains(',')) {
+				String[] vals = val.split(',');
+				if (vals.size() > 0) {
+					String txt = txt1.substring(2);         // S:Name 銆佹渶鍒濄伄锛掓枃瀛椼亴銈裤偆銉椼仹銇�
+					soql += ' and ( ';
+					for (String v : vals) {
+						if (con == 'equals') {
+							soql += txt + ' = \'' + v + '\' or ';
+						} else {
+							// notequals
+							soql += txt + ' <> \'' + v + '\' and ';
+						}
+					}
+					soql = soql.substring(0, soql.length() - 4);
+					soql += ')';
+				}
+			} else {
+				String cSql = this.makeTextSqlStr(txt1, con, val);
+				if (con != 'notcontains') {
+					soql += this.makeTextSqlStr(txt1, con, val);
 				} else {
-					soql += ' and ' + txt;
-					if (con == 'equals') {
-						if (colType == 'S:') {
-							soql += ' = \'' + tmpVal + '\'';
-						} else {
-							soql += ' = ' + tmpVal + ' ';
-						}
-					} else if (con == 'notequals') {
-						if (colType == 'S:') {
-							soql += ' <> \'' + tmpVal + '\'';
-						} else {
-							soql += ' <> ' + tmpVal + ' ';
-						}
-					} else if (con == 'contains' || con == 'notcontains') {
-						soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
-					} else if (con == 'starts with') {
-						soql += ' like \'' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
-					} else {
-						if (colType == 'S:') {
-							soql += ' ' + con + '\'' + tmpVal + '\'';
-						} else {
-							soql += ' ' + con + ' ' + tmpVal + ' ';
-						}
+					// notcontains
+					if (!String.isBlank(cSql)) {
+						cSql = cSql.substring(5);         // ' and ' 銇�5鏂囧瓧銈掑銇�
+						soql += ' and (NOT ' + cSql + ') ';
 					}
 				}
 			}
-			return soql;
 		}
+		// //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+		// else{
+		//     soql += 'And AssetMark__c = \'涓绘満\'';
+		// }
+		// //JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+		return soql;
+	}
+	
+	private String makeTextSqlStr(String txt1, String con, String val) {
+		String soql = '';
+		if (!String.isBlank(txt1)) {
+			String txt = txt1.substring(2);
+			String colType = txt1.substring(0, 2);
+			String tmpVal = val.trim();
+			// 绌虹櫧銇牬鍚�''銇仚銈�
+			if (String.isBlank(tmpVal)) {
+				if (con == 'equals') {
+					//soql += ' and ' + txt + ' = ' + tmpVal;
+					soql += ' and ' + txt + ' = null';
+				} else if (con == 'notequals') {
+					soql += ' and ' + txt + ' <> null';
+				} else {
+					// 绌虹櫧銇牬鍚堛�乧ontains, notcontains 銇� starts with銇劇瑕�
+				}
+			} else {
+				soql += ' and ' + txt;
+				if (con == 'equals') {
+					if (colType == 'S:') {
+						soql += ' = \'' + tmpVal + '\'';
+					} else {
+						soql += ' = ' + tmpVal + ' ';
+					}
+				} else if (con == 'notequals') {
+					if (colType == 'S:') {
+						soql += ' <> \'' + tmpVal + '\'';
+					} else {
+						soql += ' <> ' + tmpVal + ' ';
+					}
+				} else if (con == 'contains' || con == 'notcontains') {
+					soql += ' like \'%' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
+				} else if (con == 'starts with') {
+					soql += ' like \'' + String.escapeSingleQuotes(tmpVal.replaceAll('%', '\\%')) + '%\'';
+				} else {
+					if (colType == 'S:') {
+						soql += ' ' + con + '\'' + tmpVal + '\'';
+					} else {
+						soql += ' ' + con + ' ' + tmpVal + ' ';
+					}
+				}
+			}
+		}
+		return soql;
+	}
 	
 	//----------HWAG-B4R3SS------------------------------------------------------------
 	
@@ -373,59 +377,59 @@
 	
 	
 	
-		public Boolean getEnablePrintContract() {
-			if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
-				return this.estimate.Estimation_Decision__c;
-			} else {
+	public Boolean getEnablePrintContract() {
+		if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
+			return this.estimate.Estimation_Decision__c;
+		} else {
+			return false;
+		}
+	}
+	
+	public Boolean getUnDecideBtnDisabled() {
+		// 瑕嬬銈傘倞decide鍙栨秷銇椼仹銇嶃仾銇勬潯浠躲伄鍒ゆ柇
+		if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
+			if (this.estimate.Estimation_Decision__c) {
 				return false;
 			}
 		}
-	
-		public Boolean getUnDecideBtnDisabled() {
-			// 瑕嬬銈傘倞decide鍙栨秷銇椼仹銇嶃仾銇勬潯浠躲伄鍒ゆ柇
-			if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
-				if (this.estimate.Estimation_Decision__c) {
-					return false;
-				}
+		// TODO 鏈綋銇壒鍒ヨ硣鏍笺亴銇傘倢銇� 姹哄畾鍙兘銇仚銈�
+		return true;
+	}
+	public Boolean getDecideBtnDisabled() {
+		// 瑕嬬銈傘倞decide銇с亶銇亜鏉′欢銇垽鏂�
+		if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
+			if (this.estimate.Estimation_Decision__c) {
+				return true;
 			}
-			// TODO 鏈綋銇壒鍒ヨ硣鏍笺亴銇傘倢銇� 姹哄畾鍙兘銇仚銈�
+			// TODO 鐗瑰垾璩囨牸銇屻亗銈屻伆 姹哄畾鍙兘銇仚銈�
 			return true;
 		}
-		public Boolean getDecideBtnDisabled() {
-			// 瑕嬬銈傘倞decide銇с亶銇亜鏉′欢銇垽鏂�
-			if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
-				if (this.estimate.Estimation_Decision__c) {
-					return true;
-				}
-				// TODO 鐗瑰垾璩囨牸銇屻亗銈屻伆 姹哄畾鍙兘銇仚銈�
+		if (this.estimate.Process_Status__c != '鎵瑰噯') {
+			return true;
+		} else {
+			if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false
+				&& this.estimate.Change_Dealer_Approval__c != '鎵瑰噯'
+				&& this.estimate.Change_Dealer_Approval__c != '鏈壒鍑�') {
 				return true;
 			}
-			if (this.estimate.Process_Status__c != '鎵瑰噯') {
-				return true;
-			} else {
-				if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false
-					&& this.estimate.Change_Dealer_Approval__c != '鎵瑰噯'
-					&& this.estimate.Change_Dealer_Approval__c != '鏈壒鍑�') {
-					return true;
-				}
-			}
-			return false;
 		}
-		public Boolean getApprovalBtnDisabled() {
+		return false;
+	}
+	public Boolean getApprovalBtnDisabled() {
 	
-			// 瑕嬬銈傘倞鐢宠珛銇с亶銇亜鏉′欢銇垽鏂�
-			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;
-			}
-			return false;
+		// 瑕嬬銈傘倞鐢宠珛銇с亶銇亜鏉′欢銇垽鏂�
+		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;
+		}
+		return false;
+	}
 	// 20200307 涓嶇敤
 	// public Boolean getcontactBtnDisabled() {
 	//     if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
@@ -440,44 +444,44 @@
 	//     }
 	//     return false;
 	// }
-		public Boolean getSaveBtnDisabled() {
-			// 瑕嬬銈傘倞save銇с亶銇亜鏉′欢銇垽鏂�
-			if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
-				return true;
-			}
-			if (String.isBlank(this.estimate.Process_Status__c) == false
-				&& this.estimate.Process_Status__c != '鑽夋涓�'
-				//&& this.estimate.Process_Status__c != '涓嶆壒鍑�'
-				) {
-				return true;
-			}
-			return false;
+	public Boolean getSaveBtnDisabled() {
+		// 瑕嬬銈傘倞save銇с亶銇亜鏉′欢銇垽鏂�
+		if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
+			return true;
 		}
-		public Boolean getPrintBtnDisabled() {
-			// 鍗板埛銇с亶銇亜鏉′欢銇垽鏂�
-			if (this.estimate.Process_Status__c != '鎵瑰噯' || !this.contract.Status__c.equals('寮曞悎涓�') ) {
-				return true;
-			} else {
-				if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false
-					&& this.estimate.Change_Dealer_Approval__c != '鎵瑰噯'
-					&& this.estimate.Change_Dealer_Approval__c != '鏈壒鍑�') {
-					return true;
-				}
-			}
-			return false;
+		if (String.isBlank(this.estimate.Process_Status__c) == false
+			&& this.estimate.Process_Status__c != '鑽夋涓�'
+			//&& this.estimate.Process_Status__c != '涓嶆壒鍑�'
+			) {
+			return true;
 		}
+		return false;
+	}
+	public Boolean getPrintBtnDisabled() {
+		// 鍗板埛銇с亶銇亜鏉′欢銇垽鏂�
+		if (this.estimate.Process_Status__c != '鎵瑰噯' || !this.contract.Status__c.equals('寮曞悎涓�') ) {
+			return true;
+		} else {
+			if (String.isBlank(this.estimate.Change_Dealer_Approval__c) == false
+				&& this.estimate.Change_Dealer_Approval__c != '鎵瑰噯'
+				&& this.estimate.Change_Dealer_Approval__c != '鏈壒鍑�') {
+				return true;
+			}
+		}
+		return false;
+	}
 	// 椤甸潰椤圭洰闈炴椿鎬ц瀹�
-		public Boolean getPageDisabled() {
-			if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
-				return true;
-			}
-			if (String.isBlank(this.estimate.Process_Status__c) == false
-				&& this.estimate.Process_Status__c != '鑽夋涓�'
-				) {
-				return true;
-			}
-			return false;
+	public Boolean getPageDisabled() {
+		if (String.isBlank(this.contract.Decided_Estimation__c) == false) {
+			return true;
 		}
+		if (String.isBlank(this.estimate.Process_Status__c) == false
+			&& this.estimate.Process_Status__c != '鑽夋涓�'
+			) {
+			return true;
+		}
+		return false;
+	}
 	// 2021銆�8銆�26 鍚堝悓鎶ヤ环椤甸潰鐨勪紭鍖栵紝鏃犱繚鏈夎澶囩偣妫�瀵硅薄閫夋嫨妗嗗彉榛� fxk star
 	// public Boolean getPageDisabled1() {
 	
@@ -489,469 +493,483 @@
 	//     return false;
 	// }
 	// 2021銆�8銆�26 鍚堝悓鎶ヤ环椤甸潰鐨勪紭鍖栵紝鏃犱繚鏈夎澶囩偣妫�瀵硅薄閫夋嫨妗嗗彉榛� fxk end
-		public Integer productCount {
-			get {
-				return checkedAssets == null ? 0 : checkedAssets.size();
-			}
+	public Integer productCount {
+		get {
+			return checkedAssets == null ? 0 : checkedAssets.size();
 		}
-		public Integer productCount2 {
-			get {
-				return unCheckedAssets == null ? 0 : unCheckedAssets.size();
-			}
+	}
+	public Integer productCount2 {
+		get {
+			return unCheckedAssets == null ? 0 : unCheckedAssets.size();
 		}
-		public Integer productCount3 {
-			get {
-				Integer cnt = 0;
-				for (AssetInfo input : this.checkedAssets) {
-					if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-						cnt += 1;
-					}
+	}
+	public Integer productCount3 {
+		get {
+			Integer cnt = 0;
+			for (AssetInfo input : this.checkedAssets) {
+				if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+					cnt += 1;
 				}
-				return cnt;
 			}
+			return cnt;
 		}
+	}
 	// TODO 銈偣銈裤儬銉┿儥銉亱銈夊彇寰�
-		public static Decimal oxygenPriceAdj { get { return 0.1; } }          // TODO katsu 閰稿寲姘淬倰浣跨敤銇椼仾銇勩倛銇嗐伀澶夋洿
-		public static Decimal isNewPriceAdj { get { return 1; } }
+	public static Decimal oxygenPriceAdj { get { return 0.1; } }              // TODO katsu 閰稿寲姘淬倰浣跨敤銇椼仾銇勩倛銇嗐伀澶夋洿
+	public static Decimal isNewPriceAdj { get { return 1; } }
 	
 	//public String productName { get; set; }
-		public Integer productIdx { get; set; }
+	public Integer productIdx { get; set; }
 	
-		public Integer isNewAddMonth { get { return Integer.valueOf(System.Label.MC_New_AddMonth); } }
+	public Integer isNewAddMonth { get { return Integer.valueOf(System.Label.MC_New_AddMonth); } }
 	
-		public Integer keepPriceMonth { get { return Integer.valueOf(System.Label.MC_KeepPrice_Month); } }
+	public Integer keepPriceMonth { get { return Integer.valueOf(System.Label.MC_KeepPrice_Month); } }
 	
-		public Boolean isPageAction = false;
+	public Boolean isPageAction = false;
 	
-		private Integer PosttoInstall { get { return Integer.valueOf(System.Label.Post_to_Install); }}
+	private Integer PosttoInstall { get { return Integer.valueOf(System.Label.Post_to_Install); }}
 	
-		public Boolean changedSubmitPrice {get; set;}
+	public Boolean changedSubmitPrice {get; set;}
 	
-		public Boolean isSaveOrApproval {get; set;}
-		public String OldContractStartDate {get; set;}
-		public String OldMaintenancePrice { get; set; }
+	public Boolean isSaveOrApproval {get; set;}
+	public String OldContractStartDate {get; set;}
+	public String OldMaintenancePrice { get; set; }
 	
 	/**
 	 * 銈炽兂銈广儓銉┿偗銈�
 	 */
-		public SelectAssetEstimateURFController() {
-			currPage = 1;
-			selRecordOption = '20';
-			totalRecords = 0;
-		}
+	public SelectAssetEstimateURFController() {
+		currPage = 1;
+		selRecordOption = '20';
+		totalRecords = 0;
+	}
 	/**
 	 * Visaulforce銇嬨倝鍛笺伆銈屻倠銈炽兂銈广儓銉┿偗銈�
 	 */
-		public SelectAssetEstimateURFController(ApexPages.StandardController controller) {
-			//HWAG-B4R3SS  START 20181026
-			currPage = 1;
-			selRecordOption = '20';
-			//this.targetEstimateId = (String)(ApexPages.currentPage().getParameters().get('id'));
-			totalRecords = 0;
-			//HWAG-B4R3SS  END 20181026
+	public SelectAssetEstimateURFController(ApexPages.StandardController controller) {
+		//HWAG-B4R3SS  START 20181026
+		currPage = 1;
+		selRecordOption = '20';
+		//this.targetEstimateId = (String)(ApexPages.currentPage().getParameters().get('id'));
+		totalRecords = 0;
+		//HWAG-B4R3SS  END 20181026
+	}
+	
+	private void setThisEstimate() {
+		//HWAG-B399Q8 2018/08/20  娣诲姞涓�棰濆瀛楁 IS_Clone_After_Decide__c start
+		this.estimate = [SELECT Id, Name, Maintenance_Contract__c, Estimation_Decision__c, CreatedDate, Service_Contract_Staff__c,
+						 JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, Finally_Approved_Staff__c,
+						 Contract_Esti_Start_Date__c, Contract_Esti_End_Date__c, Contract_Range__c, Contract_Start_Date__c, Contract_End_Date__c,
+						 Maintenance_Contract_Status__c, Discount_reason__c, Improve_ConsumptionRate_Idea__c, Process_Status__c,
+						 Estimate_Trial_Money__c, Maintenance_Price__c, Department__c, PrintDate__c, Quote_Date__c, Submit_quotation_day__c,
+						 Examination_Price__c, Service_contract_target_number__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_First__c, Maintenance_Contract__r.Payment_Plan_Date_First__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_Second__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_Third__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_Forth__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c,
+						 Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c,
+						 Discount_Price__c, Discount_Percentage__c, IsSyncing__c,
+						 NotUse_Oxygenated_Water__c, Estimate_Target__c, Dealer__c,
+						 Append_Condition_Price__c, Asset_Sum_Price__c, Asset_Repair_Sum_Price__c,
+						 Print_Contract__c, Print_RepairPrice__c, Print_DiscountPercentage__c, Print_Agent__c, Change_Dealer_Approval__c,
+						 Print_DiscountPrice__c, Print_ListPrice__c, Print_MaintePrice__c, Print_SumPrice__c, Print_Tripartite__c, TKZongjianApprovalManager__c
+						 //鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
+						 , IS_Clone_After_Decide__c, New_contract_offer__c, NewEstimation_Amount__c, EndUserType__c, Print_Simplify__c
+						 //鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
+						 //鏈�浣庝环鏍� 鏈�楂樹环鏍� 鐢宠鑳屾櫙鐩稿叧瀛楁 20200108 start
+						 , GuidePrice_Up__c, GuidePrice_Down__c, finalPriceDecideWay__c, mainTalksTime__c, talksStartDate__c
+						 , Combined_rate__c, New_Contract_Type_TxT__c, Estimate_Price_range__c
+						 //鏈�浣庝环鏍� 鏈�楂樹环鏍艰绠� 20200108 end
+						 , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c
+						 // 鐢宠鎶ヤ环閲戦 鍜� 鐩稿鏍囧噯浠锋牸鑼冨洿鐨勬姌鎵g巼
+						 , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c
+						 , 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
+	
+						 FROM Maintenance_Contract_Estimate__c WHERE Id = :this.targetEstimateId];
+		//HWAG-B399Q8 2018/08/20  娣诲姞涓�棰濆瀛楁 IS_Clone_After_Decide__c 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) +
+						   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c) +
+						   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c) +
+						   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c) +
+						   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c);
+		if ( this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null
+			 //102018/10/26 HWAG-B5C88S 涓嶅啀鏍规嵁鏄惁濉啓绗竴娆′粯娆炬棩鏈熷垽鏂�
+			 ) {
+			isPaymentSet = 'false';
+		} else if (this.estimate.Maintenance_Price__c != PriceSum) {
+			isPaymentSet = 'Denied';
+		} else {
+			isPaymentSet = 'true';
 		}
+	}
 	
-		private void setThisEstimate() {
-			//HWAG-B399Q8 2018/08/20  娣诲姞涓�棰濆瀛楁 IS_Clone_After_Decide__c start
-			this.estimate = [SELECT Id, Name, Maintenance_Contract__c, Estimation_Decision__c, CreatedDate, Service_Contract_Staff__c,
-							 JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, Finally_Approved_Staff__c,
-							 Contract_Esti_Start_Date__c, Contract_Esti_End_Date__c, Contract_Range__c, Contract_Start_Date__c, Contract_End_Date__c,
-							 Maintenance_Contract_Status__c, Discount_reason__c, Improve_ConsumptionRate_Idea__c, Process_Status__c,
-							 Estimate_Trial_Money__c, Maintenance_Price__c, Department__c, PrintDate__c, Quote_Date__c, Submit_quotation_day__c,
-							 Examination_Price__c, Service_contract_target_number__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_First__c, Maintenance_Contract__r.Payment_Plan_Date_First__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_Second__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_Third__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_Forth__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c,
-							 Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c,
-							 Discount_Price__c, Discount_Percentage__c, IsSyncing__c,
-							 NotUse_Oxygenated_Water__c, Estimate_Target__c, Dealer__c,
-							 Append_Condition_Price__c, Asset_Sum_Price__c, Asset_Repair_Sum_Price__c,
-							 Print_Contract__c, Print_RepairPrice__c, Print_DiscountPercentage__c, Print_Agent__c, Change_Dealer_Approval__c,
-							 Print_DiscountPrice__c, Print_ListPrice__c, Print_MaintePrice__c, Print_SumPrice__c, Print_Tripartite__c, TKZongjianApprovalManager__c
-							 //鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
-							 , IS_Clone_After_Decide__c, New_contract_offer__c, NewEstimation_Amount__c, EndUserType__c, Print_Simplify__c
-							 //鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
-							 //鏈�浣庝环鏍� 鏈�楂樹环鏍� 鐢宠鑳屾櫙鐩稿叧瀛楁 20200108 start
-							 , GuidePrice_Up__c, GuidePrice_Down__c, finalPriceDecideWay__c, mainTalksTime__c, talksStartDate__c
-							 , Combined_rate__c, New_Contract_Type_TxT__c, Estimate_Price_range__c
-							 //鏈�浣庝环鏍� 鏈�楂樹环鏍艰绠� 20200108 end
-							 , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c
-							 // 鐢宠鎶ヤ环閲戦 鍜� 鐩稿鏍囧噯浠锋牸鑼冨洿鐨勬姌鎵g巼
-							 , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c
-							 , 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
+	public void init() {
+		typeresult = null;
+		changedAfterPrint = false;
+		changedSubmitPrice = false;
+		isSaveOrApproval = false;
+		OldContractStartDate = null;
+		OldMaintenancePrice = null;
 	
-							 FROM Maintenance_Contract_Estimate__c WHERE Id = : this.targetEstimateId];
-			//HWAG-B399Q8 2018/08/20  娣诲姞涓�棰濆瀛楁 IS_Clone_After_Decide__c 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) +
-							   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Third__c) +
-							   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Forth__c) +
-							   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c) +
-							   (this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c == null ? 0 : this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c);
-			if ( this.estimate.Maintenance_Contract__r.Payment_Plan_Sum_First__c == null
-				 //102018/10/26 HWAG-B5C88S 涓嶅啀鏍规嵁鏄惁濉啓绗竴娆′粯娆炬棩鏈熷垽鏂�
-				 ) {
-				isPaymentSet = 'false';
-			} else if (this.estimate.Maintenance_Price__c != PriceSum) {
-				isPaymentSet = 'Denied';
-			} else {
-				isPaymentSet = 'true';
-			}
-		}
+		inDicideFlag = false;
 	
-		public void init() {
-			typeresult = null;
-			changedAfterPrint = false;
-			changedSubmitPrice = false;
-			isSaveOrApproval = false;
-			OldContractStartDate = null;
-			OldMaintenancePrice = null;
+		isSoft = false;
+		activeOn = true;
+		//LJPH-BSS6E2  ---20200911 ---update by rentongxiao start
+		contr = '1';
+		val1 = '涓绘満';
+		//LJPH-BSS6E2  ---20200911 ---update by rentongxiao end
 	
-			inDicideFlag = false;
+		Date systemToday = System.today();
+		if (isPageAction == false) {
+			//HWAG-B399Q8 2018/08/20  娣诲姞鐘舵��5锛屼负鎸塻ave 鎸夐敭鍚庣姸鎬� start
+			if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false) {
+				if (ApexPages.currentPage().getParameters().get('completion') == '1') {
+					ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002));
+				} else if (ApexPages.currentPage().getParameters().get('completion') == '2') {
+					ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '瀹℃壒鎻愪氦鎴愬姛銆�'));
+				} else if (ApexPages.currentPage().getParameters().get('completion') == '3') {
+					ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'Decided銆�'));
+				} else if (ApexPages.currentPage().getParameters().get('completion') == '4') {
 	
-			isSoft = false;
-			activeOn = true;
-			//LJPH-BSS6E2  ---20200911 ---update by rentongxiao start
-			contr = '1';
-			val1 = '涓绘満';
-			//LJPH-BSS6E2  ---20200911 ---update by rentongxiao end
-	
-			Date systemToday = System.today();
-			if (isPageAction == false) {
-				//HWAG-B399Q8 2018/08/20  娣诲姞鐘舵��5锛屼负鎸塻ave 鎸夐敭鍚庣姸鎬� start
-				if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false) {
-					if (ApexPages.currentPage().getParameters().get('completion') == '1') {
-						ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002));
-					} else if (ApexPages.currentPage().getParameters().get('completion') == '2') {
-						ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '瀹℃壒鎻愪氦鎴愬姛銆�'));
-					} else if (ApexPages.currentPage().getParameters().get('completion') == '3') {
-						ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'Decided銆�'));
-					} else if (ApexPages.currentPage().getParameters().get('completion') == '4') {
-	
-					} else if (ApexPages.currentPage().getParameters().get('completion') == '5') {
-						ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002));
-					}
+				} else if (ApexPages.currentPage().getParameters().get('completion') == '5') {
+					ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, System.Label.Message_002));
 				}
-				//HWAG-B399Q8 2018/08/20  娣诲姞鐘舵��5锛屼负鎸塻ave 鎸夐敭鍚庣姸鎬� end
 			}
-			this.printAsset = false;
-			this.printContract = false;
-			this.printTripartite = false;
-			this.printAgent = false;
-			String copyid = '';
-			if (isPageAction == false) {
-				this.targetEstimateId = ApexPages.currentPage().getParameters().get('copyid');
-				copyid = ApexPages.currentPage().getParameters().get('copyid');
-				if (this.targetEstimateId == null) {
-					String paramId = ApexPages.currentPage().getParameters().get('id');
-					if (String.isBlank(paramId) == false && paramId.startsWith('a0z')) {
-						Maintenance_Contract_Asset_Estimate__c mcaeParam = [Select Maintenance_Contract_Estimate__c from Maintenance_Contract_Asset_Estimate__c where Id = : paramId];
-						this.targetEstimateId = mcaeParam.Maintenance_Contract_Estimate__c;
-					} else {
-						this.targetEstimateId = paramId;
-					}
+			//HWAG-B399Q8 2018/08/20  娣诲姞鐘舵��5锛屼负鎸塻ave 鎸夐敭鍚庣姸鎬� end
+		}
+		this.printAsset = false;
+		this.printContract = false;
+		this.printTripartite = false;
+		this.printAgent = false;
+		String copyid = '';
+		if (isPageAction == false) {
+			this.targetEstimateId = ApexPages.currentPage().getParameters().get('copyid');
+			copyid = ApexPages.currentPage().getParameters().get('copyid');
+			if (this.targetEstimateId == null) {
+				String paramId = ApexPages.currentPage().getParameters().get('id');
+				if (String.isBlank(paramId) == false && paramId.startsWith('a0z')) {
+					Maintenance_Contract_Asset_Estimate__c mcaeParam = [Select Maintenance_Contract_Estimate__c from Maintenance_Contract_Asset_Estimate__c where Id = :paramId];
+					this.targetEstimateId = mcaeParam.Maintenance_Contract_Estimate__c;
 				} else {
-					this.newIns = true;
+					this.targetEstimateId = paramId;
 				}
-				this.targetMaintenanceContractId = ApexPages.currentPage().getParameters().get('mcid');
-			}
-			// 绶ㄩ泦銇嬨倝
-			if (String.isBlank(this.targetEstimateId) == false) {
-				setThisEstimate();
-				this.targetMaintenanceContractId = this.estimate.Maintenance_Contract__c;
-				this.setContractInfo(this.targetMaintenanceContractId);
-			}
-			// 鏂拌銇嬨倝
-			else if (!String.isBlank(this.targetMaintenanceContractId)) {
-				this.estimate = new Maintenance_Contract_Estimate__c();
-				this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId;
-				this.estimate.Contract_Esti_Start_Date__c = systemToday;
-				this.estimate.Contract_Start_Date__c = systemToday;
-				this.setContractInfo(this.targetMaintenanceContractId);
+			} else {
 				this.newIns = true;
 			}
-			// 浣曘倐銇亼銈屻伆銆佸康銇仧銈�
-			else {
-				throw new ControllerUtil.myException('鏃犳硶鏄剧ず缁翠慨鍚堝悓鎶ヤ环');
-				//return;
-			}
-			//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' start
-			IS_Clone_After_Decide = false;
-			if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false &&
-				ApexPages.currentPage().getParameters().get('completion') == '5' &&
-				this.estimate != null && this.estimate.IS_Clone_After_Decide__c) {
-				IS_Clone_After_Decide = true;
+			this.targetMaintenanceContractId = ApexPages.currentPage().getParameters().get('mcid');
+		}
+		// 绶ㄩ泦銇嬨倝
+		if (String.isBlank(this.targetEstimateId) == false) {
+			setThisEstimate();
+			this.targetMaintenanceContractId = this.estimate.Maintenance_Contract__c;
+			this.setContractInfo(this.targetMaintenanceContractId);
+		}
+		// 鏂拌銇嬨倝
+		else if (!String.isBlank(this.targetMaintenanceContractId)) {
+			this.estimate = new Maintenance_Contract_Estimate__c();
+			this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId;
+			this.estimate.Contract_Esti_Start_Date__c = systemToday;
+ 			this.estimate.Contract_Start_Date__c = systemToday;
+			this.setContractInfo(this.targetMaintenanceContractId);
+			this.newIns = true;
+		}
+		// 浣曘倐銇亼銈屻伆銆佸康銇仧銈�
+		else {
+			throw new ControllerUtil.myException('鏃犳硶鏄剧ず缁翠慨鍚堝悓鎶ヤ环');
+			//return;
+		}
+		//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' start
+		IS_Clone_After_Decide = false;
+		if (String.isBlank(ApexPages.currentPage().getParameters().get('completion')) == false &&
+			ApexPages.currentPage().getParameters().get('completion') == '5' &&
+			this.estimate != null && this.estimate.IS_Clone_After_Decide__c) {
+			IS_Clone_After_Decide = true;
 	
-			}
-			//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' end
-			// 绱嶅叆姗熷櫒銇儏鍫便倰鍙栧緱
-			//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start
-			if (!String.isBlank(this.targetHospitalId) && (this.targetHospitalId.length() == 15 || this.targetHospitalId.length() == 18)) {
-				assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c, Management_Code__c, IF_Warranty__c, Reson_Can_not_Warranty__c,
-								InstallDate, isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, CurrentContract_End_Date__c, EquipmentGuaranteeFlg__c,
+		}
+		//HWAG-B399Q8 2018/08/20  妫�楠屾槸鍚︽樉绀�'璇锋彁浜ゅ緟瀹℃壒' end
+		// 绱嶅叆姗熷櫒銇儏鍫便倰鍙栧緱
+		//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start
+		if (!String.isBlank(this.targetHospitalId) && (this.targetHospitalId.length() == 15 || this.targetHospitalId.length() == 18)) {
+			assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c, Management_Code__c, IF_Warranty__c, Reson_Can_not_Warranty__c,
+							InstallDate, isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, CurrentContract_End_Date__c, EquipmentGuaranteeFlg__c,
 								CurrentContract_F__c, CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c, CurrentContract_F__r.RecordType_DeveloperName__c, CurrentContract_F__r.Estimate_Num__c, CurrentContract_F__r.Contract_End_Date__c, CurrentContract_F__r.Estimate_Contract_endDate__c,
-								CurrentContract_F_asset__c, CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, CurrentContract_F_asset__r.endDateGurantee_Text__c, CurrentContract_F__r.Gurantee_Estimate_startDate__c,
-								CurrentContract_F__r.First_Estimate_Date__c,
-								CurrentContract_F__r.Contract_Consumption_rate__c, CurrentContract_F__r.First_contract_usage_Rate__c,
-								CurrentContract_F__r.Contract_Range__c, AssetMark__c
-								// 闄愭鍚堝悓淇℃伅 add by gzw start
-								, Product2.ProductURF__c, Product2.ProductURF__r.URFLimitSerial__c, Product2.ProductURF__r.UFR_MaxRepairCount__c, Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
-								// 闄愭鍚堝悓淇℃伅 add by gzw end
-								FROM Asset WHERE Hospital__c = : this.targetHospitalId AND ( AssetMark__c != '鑰楁潗' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty__c asc];
-				//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-				// assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
-				//                      InstallDate,isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,EquipmentGuaranteeFlg__c,
-				//                      CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,
-				//                      CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,
-				//                      CurrentContract_F__r.First_Estimate_Date__c,
-				//                     CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,
-				//                     CurrentContract_F__r.Contract_Range__c ,AssetMark__c
-				//                      FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c = '涓绘満' ORDER BY ID,IF_Warranty__c asc];
-				//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-			} else {
-				assetRecords = new List<Asset>();
-			}
-			//sqlStr += ' AND AssetMark__c != \'鑰楁潗\' AND Product2.Family != \'ET\' ';
-			this.checkedAssets = new List<AssetInfo>();
-			this.unCheckedAssets = new List<AssetInfo>();
+							CurrentContract_F_asset__c, CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, CurrentContract_F_asset__r.endDateGurantee_Text__c, CurrentContract_F__r.Gurantee_Estimate_startDate__c,
+							CurrentContract_F__r.First_Estimate_Date__c,
+							CurrentContract_F__r.Contract_Consumption_rate__c, CurrentContract_F__r.First_contract_usage_Rate__c,
+							CurrentContract_F__r.Contract_Range__c, AssetMark__c
+							// 闄愭鍚堝悓淇℃伅 add by gzw start
+							, Product2.ProductURF__c, Product2.ProductURF__r.URFLimitSerial__c, Product2.ProductURF__r.UFR_MaxRepairCount__c, Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
+							// 闄愭鍚堝悓淇℃伅 add by gzw end
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+							, Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Product2.ProductURF__r.Maintenance_Price_Year_URF__c
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+							FROM Asset WHERE Hospital__c = :this.targetHospitalId AND ( AssetMark__c != '鑰楁潗' OR Product2.Family != 'ET' ) ORDER BY ID, IF_Warranty__c asc];
+			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+			// assetRecords = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
+			//                      InstallDate,isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,EquipmentGuaranteeFlg__c,
+			//                      CurrentContract_F__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,
+			//                      CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,
+			//                      CurrentContract_F__r.First_Estimate_Date__c,
+			//                     CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,
+			//                     CurrentContract_F__r.Contract_Range__c ,AssetMark__c
+			//                      FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c = '涓绘満' ORDER BY ID,IF_Warranty__c asc];
+			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+		} else {
+			assetRecords = new List<Asset>();
+		}
+		//sqlStr += ' AND AssetMark__c != \'鑰楁潗\' AND Product2.Family != \'ET\' ';
+		this.checkedAssets = new List<AssetInfo>();
+		this.unCheckedAssets = new List<AssetInfo>();
 	
-			// 閬告姙娓堛伩銇磵鍏ユ鍣ㄦ儏鍫便倰鍙栧緱
-			Map<Id, Integer> selectedAssetIds = new Map<Id, Integer>();
-			List<Maintenance_Contract_Asset_Estimate__c> selectedMcaes = new List<Maintenance_Contract_Asset_Estimate__c>();
-			List<Maintenance_Contract_Asset_Estimate__c> newMcaes = new List<Maintenance_Contract_Asset_Estimate__c>();
-			// 鏂拌銆佷笖銇わ紤銇ょ洰瑕嬬銈傘倞銇牬鍚堛�併偝銉斻兗鍏冦伄淇濇湁瑷倷銈掓寔銇�
-			if (String.isBlank(this.targetEstimateId) && this.contract.Estimate_Num__c == 0) {
-				// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '00000000000000000000000000'));
-				List<Maintenance_Contract_Asset__c> oldVals = [
-					select Id, Name, Asset__c, Asset__r.InstallDate, Asset__r.isNewDate_use__c,
-					Asset__r.Posting_Date__c, Asset__r.Maintenance_Price_Month__c,
-					Asset__r.EquipmentGuaranteeFlg__c,
-					Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
-					Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c,
-					Asset__r.CurrentContract_F__r.First_Estimate_Date__c,
-					Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c,
-					Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c,
-					Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c,
-					Asset__r.CurrentContract_F__r.Contract_Range__c,
-					Asset__r.CurrentContract_F__r.Contract_End_Date__c,
-					Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c
-					// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-					, Asset__r.Product2.ProductURF__c
-					, Asset__r.Product2.ProductURF__r.URFLimitSerial__c,
-					Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
-					Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
-					// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-					from Maintenance_Contract_Asset__c
-					where Maintenance_Contract__c = : this.targetMaintenanceContractId AND Asset__r.Product2.ProductURF__c != null
-				];
-				Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
-				for (Maintenance_Contract_Asset__c mca : oldVals) {
-					// old銈堛倞鏇存柊銇椼仧銇勯爡鐩�
-					Boolean isNew = false;
+		// 閬告姙娓堛伩銇磵鍏ユ鍣ㄦ儏鍫便倰鍙栧緱
+		Map<Id, Integer> selectedAssetIds = new Map<Id, Integer>();
+		List<Maintenance_Contract_Asset_Estimate__c> selectedMcaes = new List<Maintenance_Contract_Asset_Estimate__c>();
+		List<Maintenance_Contract_Asset_Estimate__c> newMcaes = new List<Maintenance_Contract_Asset_Estimate__c>();
+		// 鏂拌銆佷笖銇わ紤銇ょ洰瑕嬬銈傘倞銇牬鍚堛�併偝銉斻兗鍏冦伄淇濇湁瑷倷銈掓寔銇�
+		if (String.isBlank(this.targetEstimateId) && this.contract.Estimate_Num__c == 0) {
+			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '00000000000000000000000000'));
+			List<Maintenance_Contract_Asset__c> oldVals = [
+				select Id, Name, Asset__c, Asset__r.InstallDate, Asset__r.isNewDate_use__c,
+				Asset__r.Posting_Date__c, Asset__r.Maintenance_Price_Month__c,
+				Asset__r.EquipmentGuaranteeFlg__c,
+				Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
+				Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c,
+				Asset__r.CurrentContract_F__r.First_Estimate_Date__c,
+				Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c,
+				Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c,
+				Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c,
+				Asset__r.CurrentContract_F__r.Contract_Range__c,
+				Asset__r.CurrentContract_F__r.Contract_End_Date__c,
+				Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c
+				// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+				, Asset__r.Product2.ProductURF__c
+				, Asset__r.Product2.ProductURF__r.URFLimitSerial__c,
+				Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
+				Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c
+				// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+				//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+				, Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c, Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF__c
+				//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+				from Maintenance_Contract_Asset__c
+				where Maintenance_Contract__c = :this.targetMaintenanceContractId AND Asset__r.Product2.ProductURF__c != null
+			];
+			Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
+			for (Maintenance_Contract_Asset__c mca : oldVals) {
+				// old銈堛倞鏇存柊銇椼仧銇勯爡鐩�
+				Boolean isNew = false;
+				// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+				boolean isCheck = true;
+				// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
+				// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+				// Decimal listPrice = mca.Asset__r.Maintenance_Price_Month__c;
+				Decimal listPrice = mca.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+				// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 end
+				Decimal asset_Consumption_rate = null;
+				// 鍙栦笂涓�鏈熷悎鍚屾秷璐圭巼
+				if (mca.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && mca.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
+					asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c;
+				} else {
+					asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c;
+				}
+				// InstallDate 銇� 浠婃棩銈掓瘮杓�
+				// 1.瀹夎鏃ユ垨鑰呭彂璐ф棩鍜屼粖澶╂瘮杈� 瀹炴椂鍙樺寲
+				// 2.鎻愪氦鍚庝笉鍐嶅彉鍖�
+				//Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date();
+				Date createdDate = systemToday;
+				if (createdDate.addMonths(isNewAddMonth) < mca.Asset__r.isNewDate_use__c) {
+					isNew = true;
 					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-					boolean isCheck = true;
+					isCheck = true;
 					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
 					// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-					// Decimal listPrice = mca.Asset__r.Maintenance_Price_Month__c;
-					Decimal listPrice = mca.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+					// listPrice = mca.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj;
+					listPrice = mca.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c  * isNewPriceAdj;
 					// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 end
-					Decimal asset_Consumption_rate = null;
-					// 鍙栦笂涓�鏈熷悎鍚屾秷璐圭巼
-					if (mca.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && mca.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
-						asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c;
-					} else {
-						asset_Consumption_rate = mca.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c;
-					}
-					// InstallDate 銇� 浠婃棩銈掓瘮杓�
-					// 1.瀹夎鏃ユ垨鑰呭彂璐ф棩鍜屼粖澶╂瘮杈� 瀹炴椂鍙樺寲
-					// 2.鎻愪氦鍚庝笉鍐嶅彉鍖�
-					//Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date();
-					Date createdDate = systemToday;
-					if (createdDate.addMonths(isNewAddMonth) < mca.Asset__r.isNewDate_use__c) {
-						isNew = true;
-						// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-						isCheck = true;
-						// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
-						// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-						// listPrice = mca.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj;
-						listPrice = mca.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c  * isNewPriceAdj;
-						// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 end
 	
-					}
-					selectedAssetIds.put(mca.Asset__c, selectedMcaes.size());
-					selectedMcaes.add(new Maintenance_Contract_Asset_Estimate__c(
-										  Asset__c = mca.Asset__c,
-										  isNew__c = isNew,
-										  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-										  Check_Object__c = isCheck,
-										  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
-										  Estimate_List_Price__c = listPrice,
-										  // 鍙栦笂涓�鏈熷悎鍚屼环鏍�
-										  LastMContract_Price__c = mca.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
-	
-										  Asset_Consumption_rate__c = asset_Consumption_rate,
-										  EquipmentGuaranteeFlgTxt__c = mca.Asset__r.EquipmentGuaranteeFlg__c
-										  ));
 				}
-			} else {
-				List<Maintenance_Contract_Asset_Estimate__c> selectlist = [SELECT Id FROM
-																		   Maintenance_Contract_Asset_Estimate__c
-																		   WHERE Maintenance_Contract_Estimate__c = : this.targetEstimateId ];
+				selectedAssetIds.put(mca.Asset__c, selectedMcaes.size());
+				selectedMcaes.add(new Maintenance_Contract_Asset_Estimate__c(
+							  Asset__c = mca.Asset__c,
+							  isNew__c = isNew,
+							  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+							  Check_Object__c = isCheck,
+							  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
+							  Estimate_List_Price__c = listPrice,
+							  // 鍙栦笂涓�鏈熷悎鍚屼环鏍�
+							  LastMContract_Price__c = mca.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
 	
-				// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '111111111111111111111111' + selectlist.size()));
-				for (Maintenance_Contract_Asset_Estimate__c mcae : [SELECT Id,
-																	Name,
-																	Maintenance_Contract_Estimate__c,
-																	Asset__c,
-																	Asset__r.Maintenance_Price_Month__c,
-																	Asset__r.InstallDate,
-																	Asset__r.isNewDate_use__c,
-																	Asset__r.EquipmentGuaranteeFlg__c,
-																	Asset_Consumption_rate__c,
-																	Asset__r.CurrentContract_F__c,
-																	Asset__r.CurrentContract_F__r.First_Estimate_Date__c,
-																	Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c,
-																	Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c,
-																	Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c,
-																	Asset__r.CurrentContract_F__r.Contract_Range__c,
-																	Asset__r.CurrentContract_F__r.Contract_End_Date__c,
-																	Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c,
-																	LastMContract_Price__c,
-																	Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
-																	Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c,
-																	Product_Manual__c,
-																	Product_Manual__r.EquipmentGuaranteeFlg__c,
-																	Product_Manual__r.Maintenance_Price_Month__c,
-																	Product_Manual__r.Name,
-																	// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-																	Product_Manual__r.ProductURF__c,
-																	Product_Manual__r.ProductURF__r.URFLimitSerial__c,
-																	Product_Manual__r.ProductURF__r.UFR_MaxRepairCount__c,
-																	Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c,
-																	Asset__r.Product2.ProductURF__c,
-																	Asset__r.Product2.ProductURF__r.URFLimitSerial__c,
-																	Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
-																	Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,
-																	URF_Series__c,
-																	Series_RepairCount__c,
-																	Series_MaxRepairCount__c,
-																	Asset_RepairCount__c,
-																	Asset_MaxRepairCount__c,
-																	// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
-																	IsNew__c,
-																	//add 2021.6.4 fxk  Start
-																	Check_Object__c,
-																	//add 2021.6.4 fxk  end
-																	Estimate_List_Price__c,
-																	//Maintenance_Price_YearTXT__c,
-																	Estimate_Cost__c,
-																	Adjustment_ratio_Upper__c,
-																	Adjustment_ratio_Lower__c,
-																	Adjustment_Lower_price__c,
-																	Adjustment_Upper_price__c,
-																	Last_inspection_day__c,
-																	Check_Result__c,
-																	Repair_Price__c,
-																	Comment__c,
-																	Asset__r.Posting_Date__c,
-																	EquipmentGuaranteeFlgTxt__c,
-																	EquipmentGuaranteeFlg__c,
-																	ifHaveleftInPrevious__c,
-																	// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
-																	Last_MContract__c
-																	// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 eng
-																	// LJPH-C9GD34 gzw fix start
-																	,Estimate_List_Price_Page__c
-																	// LJPH-C9GD34 gzw fix end
-																	FROM Maintenance_Contract_Asset_Estimate__c
-																	WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId
-																											 ORDER BY
-																											 Id,
-																	Asset__c,
-																	Product_Manual__c,
-																	Asset__r.SerialNumber,
-																	Asset__r.Name,
-																	Asset__r.Department_Name__c,
-																	Asset__r.InstallDate
-					 ]) {
-					if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) {
-						//if (String.isBlank(copyid) == false) {
-						if (mcae.Asset__c <> null) {
-							mcae.EquipmentGuaranteeFlgTxt__c = mcae.Asset__r.EquipmentGuaranteeFlg__c;
-							if (systemToday.addMonths(isNewAddMonth) < mcae.Asset__r.isNewDate_use__c) {
-								mcae.IsNew__c = true;
-								if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
-									mcae.Estimate_List_Price__c = mcae.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
-									// mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj;
-								}
-							} else {
-								mcae.IsNew__c = false;
-								if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
-									mcae.Estimate_List_Price__c = mcae.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
-									// mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c;
-								}
+							  Asset_Consumption_rate__c = asset_Consumption_rate,
+							  EquipmentGuaranteeFlgTxt__c = mca.Asset__r.EquipmentGuaranteeFlg__c
+							  ));
+			}
+		} else {
+			List<Maintenance_Contract_Asset_Estimate__c> selectlist = [SELECT Id FROM
+																	   Maintenance_Contract_Asset_Estimate__c
+																	   WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId ];
 	
-							}
-						} else if (mcae.Product_Manual__c <> null) {
+			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '111111111111111111111111' + selectlist.size()));
+			for (Maintenance_Contract_Asset_Estimate__c mcae : [SELECT Id,
+																Name,
+																Maintenance_Contract_Estimate__c,
+																Asset__c,
+																Asset__r.Maintenance_Price_Month__c,
+																Asset__r.InstallDate,
+																Asset__r.isNewDate_use__c,
+																Asset__r.EquipmentGuaranteeFlg__c,
+																Asset_Consumption_rate__c,
+																Asset__r.CurrentContract_F__c,
+																Asset__r.CurrentContract_F__r.First_Estimate_Date__c,
+																Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c,
+																Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c,
+																Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c,
+																Asset__r.CurrentContract_F__r.Contract_Range__c,
+																Asset__r.CurrentContract_F__r.Contract_End_Date__c,
+																Asset__r.CurrentContract_F__r.Gurantee_Estimate_startDate__c,
+																LastMContract_Price__c,
+																Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,
+																Asset__r.CurrentContract_F_asset__r.endDateGurantee_Text__c,
+																Product_Manual__c,
+																Product_Manual__r.EquipmentGuaranteeFlg__c,
+																Product_Manual__r.Maintenance_Price_Month__c,
+																Product_Manual__r.Name,
+																// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+																Product_Manual__r.ProductURF__c,
+																Product_Manual__r.ProductURF__r.URFLimitSerial__c,
+																Product_Manual__r.ProductURF__r.UFR_MaxRepairCount__c,
+																Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+																Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c,
+																Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+																Asset__r.Product2.ProductURF__c,
+																Asset__r.Product2.ProductURF__r.URFLimitSerial__c,
+																Asset__r.Product2.ProductURF__r.UFR_MaxRepairCount__c,
+																Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+																Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c,
+																Asset__r.Product2.ProductURF__r.Maintenance_Price_Year_URF__c,
+																//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+																URF_Series__c,
+																Series_RepairCount__c,
+																Series_MaxRepairCount__c,
+																Asset_RepairCount__c,
+																Asset_MaxRepairCount__c,
+																// 20210315 gzw 杩藉姞闄愭浜у搧淇℃伅 start
+																IsNew__c,
+																//add 2021.6.4 fxk  Start
+																Check_Object__c,
+																//add 2021.6.4 fxk  end
+																Estimate_List_Price__c,
+																//Maintenance_Price_YearTXT__c,
+																Estimate_Cost__c,
+																Adjustment_ratio_Upper__c,
+																Adjustment_ratio_Lower__c,
+																Adjustment_Lower_price__c,
+																Adjustment_Upper_price__c,
+																Last_inspection_day__c,
+																Check_Result__c,
+																Repair_Price__c,
+																Comment__c,
+																Asset__r.Posting_Date__c,
+																EquipmentGuaranteeFlgTxt__c,
+																EquipmentGuaranteeFlg__c,
+																ifHaveleftInPrevious__c,
+																// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
+																Last_MContract__c
+																// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 eng
+																// LJPH-C9GD34 gzw fix start
+																,Estimate_List_Price_Page__c
+																// LJPH-C9GD34 gzw fix end
+																FROM Maintenance_Contract_Asset_Estimate__c
+																WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId
+																										 ORDER BY
+																										 Id,
+																Asset__c,
+																Product_Manual__c,
+																Asset__r.SerialNumber,
+																Asset__r.Name,
+																Asset__r.Department_Name__c,
+																Asset__r.InstallDate
+				 ]) {
+				if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) {
+					//if (String.isBlank(copyid) == false) {
+					if (mcae.Asset__c <> null) {
+						mcae.EquipmentGuaranteeFlgTxt__c = mcae.Asset__r.EquipmentGuaranteeFlg__c;
+						if (systemToday.addMonths(isNewAddMonth) < mcae.Asset__r.isNewDate_use__c) {
 							mcae.IsNew__c = true;
-							if (String.isNotBlank(mcae.Product_Manual__r.ProductURF__c)) {
-								mcae.Estimate_List_Price__c = mcae.Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
+							if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
+								mcae.Estimate_List_Price__c = mcae.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
+								// mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c * isNewPriceAdj;
 							}
+						} else {
+							mcae.IsNew__c = false;
+							if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
+								mcae.Estimate_List_Price__c = mcae.Asset__r.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+								// mcae.Estimate_List_Price__c = mcae.Asset__r.Maintenance_Price_Month__c;
+							}
+	
+						}
+					} else if (mcae.Product_Manual__c <> null) {
+						mcae.IsNew__c = true;
+						if (String.isNotBlank(mcae.Product_Manual__r.ProductURF__c)) {
+							mcae.Estimate_List_Price__c = mcae.Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
 						}
 					}
-					if (mcae.Asset__c <> null) {
-						// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '22222222222222' +));
-						// 1 copy URF   杩藉姞
-						// 2 闈瀋opy 鎻愪氦   杩藉姞
-						// 3 闈瀋opy 鏈彁浜� URF   杩藉姞
-						if ((String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c) && String.isNotBlank(copyid) ) ||
-							((getSaveBtnDisabled() && String.isBlank(copyid)) ||
-							 (String.isBlank(copyid) && !getSaveBtnDisabled() && String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)))) {
-							// if ((getSaveBtnDisabled() && String.isBlank(copyid) )|| (((!getSaveBtnDisabled() && String.isBlank(copyid)) && String.isNotBlank(copyid)) && String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c))){
-							// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '1 +  ' + selectedMcaes.size()));
-							selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size());
-							selectedMcaes.add(mcae);
-						}
-						// else if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
-						//     // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '2 +  ' + selectedMcaes.size()));
-						//     selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size());
-						//     selectedMcaes.add(mcae);
-						// }
-					} else {
-						if ((String.isNotBlank(mcae.Product_Manual__r.ProductURF__c) && String.isNotBlank(copyid) ) ||
-							((getSaveBtnDisabled() && String.isBlank(copyid)) ||
-							 (String.isBlank(copyid) && !getSaveBtnDisabled() && String.isNotBlank(mcae.Product_Manual__r.ProductURF__c)))) {
-							// if (getSaveBtnDisabled() || (!getSaveBtnDisabled() && String.isNotBlank(mcae.Product_Manual__r.ProductURF__c))){
-							newMcaes.add(mcae);
-						}
+				}
+				if (mcae.Asset__c <> null) {
+					// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '22222222222222' +));
+					// 1 copy URF   杩藉姞
+					// 2 闈瀋opy 鎻愪氦   杩藉姞
+					// 3 闈瀋opy 鏈彁浜� URF   杩藉姞
+					if ((String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c) && String.isNotBlank(copyid) ) ||
+						((getSaveBtnDisabled() && String.isBlank(copyid)) ||
+						 (String.isBlank(copyid) && !getSaveBtnDisabled() && String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)))) {
+						// if ((getSaveBtnDisabled() && String.isBlank(copyid) )|| (((!getSaveBtnDisabled() && String.isBlank(copyid)) && String.isNotBlank(copyid)) && String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c))){
+						// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '1 +  ' + selectedMcaes.size()));
+						selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size());
+						selectedMcaes.add(mcae);
+					}
+					// else if (String.isNotBlank(mcae.Asset__r.Product2.ProductURF__c)) {
+					//     // ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '2 +  ' + selectedMcaes.size()));
+					//     selectedAssetIds.put(mcae.Asset__c, selectedMcaes.size());
+					//     selectedMcaes.add(mcae);
+					// }
+				} else {
+					if ((String.isNotBlank(mcae.Product_Manual__r.ProductURF__c) && String.isNotBlank(copyid) ) ||
+						((getSaveBtnDisabled() && String.isBlank(copyid)) ||
+						 (String.isBlank(copyid) && !getSaveBtnDisabled() && String.isNotBlank(mcae.Product_Manual__r.ProductURF__c)))) {
+						// if (getSaveBtnDisabled() || (!getSaveBtnDisabled() && String.isNotBlank(mcae.Product_Manual__r.ProductURF__c))){
+						newMcaes.add(mcae);
 					}
 				}
 			}
-			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++++++++++++' + selectedMcaes.size()));
+		}
+		// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++++++++++++' + selectedMcaes.size()));
 	
-			// 閬告姙娓堛伩銇倐銇伀銉併偋銉冦偗銈掍粯銇戙倠
-			// TODO xudan 涓�瑕с伀鍑恒倠鏄庣窗浠舵暟銇岃冻銈娿仾銇勩偙銉笺偣銇屻亗銈�
-			// 鈶燗ssetA鈥曟槑绱癆銇ф槑绱扮櫥閷�
-			// 鈶sset銇绱㈡潯浠跺鏇淬伀銈堛倞銆丄ssetA銇案閬犮伀鍙栧緱銇с亶銇亜
-			// 鈶sset銈掑厓銇儑銉笺偪銈掋優銉冦償銉炽偘銇欍倠鏅傘�佹槑绱般優銉冦儣銇嬨倝AssetA銈掑彇寰椼仹銇嶃仾銇�?涓�瑕с伀鏄庣窗A銇屽嚭銇亜
-			// 娆″洖銆丄sset銇绱㈡潯浠躲亴澶с亶銇忓鏇淬仚銈嬫檪銆佸蹇滃繀瑕�
-			// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
-			// List<Data> datatemp = new List<Data>();
-			// datatemp = getChartData();
-			// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
-			for (Asset ast : this.assetRecords) {
-				Boolean isNew = false;
-				// Decimal listPrice = ast.Maintenance_Price_Month__c;
-				Decimal listPrice = ast.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
-				if (selectedAssetIds.containsKey(ast.Id)) {
-					Maintenance_Contract_Asset_Estimate__c selectedLocal = selectedMcaes.get(selectedAssetIds.get(ast.Id));
-					isNew = selectedLocal.isNew__c;
-					listPrice = selectedLocal.Estimate_List_Price__c;
-					// xudan 20160110 鏂板搧鍒ゆ柇銇撱亾瑕併倝銇亜銆乧ontractStartDateChange銇屻倓銈�
+		// 閬告姙娓堛伩銇倐銇伀銉併偋銉冦偗銈掍粯銇戙倠
+		// TODO xudan 涓�瑕с伀鍑恒倠鏄庣窗浠舵暟銇岃冻銈娿仾銇勩偙銉笺偣銇屻亗銈�
+		// 鈶燗ssetA鈥曟槑绱癆銇ф槑绱扮櫥閷�
+		// 鈶sset銇绱㈡潯浠跺鏇淬伀銈堛倞銆丄ssetA銇案閬犮伀鍙栧緱銇с亶銇亜
+		// 鈶sset銈掑厓銇儑銉笺偪銈掋優銉冦償銉炽偘銇欍倠鏅傘�佹槑绱般優銉冦儣銇嬨倝AssetA銈掑彇寰椼仹銇嶃仾銇�?涓�瑕с伀鏄庣窗A銇屽嚭銇亜
+		// 娆″洖銆丄sset銇绱㈡潯浠躲亴澶с亶銇忓鏇淬仚銈嬫檪銆佸蹇滃繀瑕�
+		// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
+		// List<Data> datatemp = new List<Data>();
+		// datatemp = getChartData();
+		// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
+		for (Asset ast : this.assetRecords) {
+			Boolean isNew = false;
+			// Decimal listPrice = ast.Maintenance_Price_Month__c;
+			Decimal listPrice = ast.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+			if (selectedAssetIds.containsKey(ast.Id)) {
+				Maintenance_Contract_Asset_Estimate__c selectedLocal = selectedMcaes.get(selectedAssetIds.get(ast.Id));
+				isNew = selectedLocal.isNew__c;
+				listPrice = selectedLocal.Estimate_List_Price__c;
+				// xudan 20160110 鏂板搧鍒ゆ柇銇撱亾瑕併倝銇亜銆乧ontractStartDateChange銇屻倓銈�
 	//                if (systemToday.addMonths(-6) < ast.InstallDate) {
 	//                if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ast.InstallDate) {
 	//                Date createdDate = (estimate.CreatedDate == null || !String.isBlank(copyid)) ? systemToday : estimate.CreatedDate.date();
@@ -962,853 +980,867 @@
 	//                }
 	//              // 璁$畻涓婁笅绾胯皟鏁存瘮渚�
 	//              娌℃湁鎻愪氦 鎴栬�呭湪鎶ヤ环鏃朵粠鏂拌绠�
-					// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
-					if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) {
-						Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
-						selectedLocal.LastMContract_Price__c = selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ?   selectedLocal.LastMContract_Price__c : selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
-						//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'LastMContract_Price__c--' + selectedLocal.LastMContract_Price__c));
-						if (selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
-							selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c;
-						} else {
-							selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c;
-						}
-						//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c + 'Asset_Consumption--- ' + selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c));
-	
-						// if(String.isNotBlank(String.valueOf(selectedLocal.Asset_Consumption_rate__c))){
-						//     //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'Contract_Consumption_rate__c ' + selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c));
-						//     for (Data da : datatemp) {
-						//         if (String.isBlank(String.valueOf(da.rate_Lower)) &&  selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) {
-						//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-						//         }else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) {
-						//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-						//         }else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower
-						//                 && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) {
-						//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-	
-						//         }
-						//         //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '涓嬮檺锛嬩笂闄�--- ' + selectedLocal.Adjustment_ratio_Lower__c + '  ' + selectedLocal.Adjustment_ratio_Upper__c));
-						//     }
-						//    //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '涓嬮檺锛嬩笂闄�+++ ' + selectedLocal.Adjustment_ratio_Lower__c + '  ' + selectedLocal.Adjustment_ratio_Upper__c));
-						// }
+				// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
+				if (!getPageDisabled() || (getPageDisabled() && String.isBlank(copyid) == false)) {
+					Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
+					selectedLocal.LastMContract_Price__c = selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ?   selectedLocal.LastMContract_Price__c : selectedLocal.Asset__r.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
+					//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'LastMContract_Price__c--' + selectedLocal.LastMContract_Price__c));
+					if (selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c != null && selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
+						selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.First_contract_usage_Rate__c;
+					} else {
+						selectedLocal.Asset_Consumption_rate__c = selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c == null ? selectedLocal.Asset_Consumption_rate__c : selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c;
 					}
-					// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
+					//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , selectedLocal.Asset__r.CurrentContract_F__r.First_Estimate_Date__c + 'Asset_Consumption--- ' + selectedLocal.Asset__r.CurrentContract_F__r.Estimate_Contract_endDate__c));
 	
-	//
-	//
-	//
-					checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal));
-				} else {
-					if (String.isBlank(ast.Product2.ProductURF__c)) continue;
-					//update by rentongxiao 2020-09-23 start
-					if (ast.AssetMark__c == '涓绘満') {
-						totalRecords++;
-						if (unCheckedAssets.size() < selctRecordNum) {
-							unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
-						}
-					}
-					//update by rentongxiao 2020-09-23 end
+					// if(String.isNotBlank(String.valueOf(selectedLocal.Asset_Consumption_rate__c))){
+					//     //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'Contract_Consumption_rate__c ' + selectedLocal.Asset__r.CurrentContract_F__r.Contract_Consumption_rate__c));
+					//     for (Data da : datatemp) {
+					//         if (String.isBlank(String.valueOf(da.rate_Lower)) &&  selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) {
+					//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
+					//         }else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) {
+					//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
+					//         }else if (selectedLocal.Asset_Consumption_rate__c >= da.rate_Lower
+					//                 && selectedLocal.Asset_Consumption_rate__c < da.rate_Upper) {
+					//             selectedLocal.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             selectedLocal.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
 	
+					//         }
+					//         //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '涓嬮檺锛嬩笂闄�--- ' + selectedLocal.Adjustment_ratio_Lower__c + '  ' + selectedLocal.Adjustment_ratio_Upper__c));
+					//     }
+					//    //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '涓嬮檺锛嬩笂闄�+++ ' + selectedLocal.Adjustment_ratio_Lower__c + '  ' + selectedLocal.Adjustment_ratio_Upper__c));
+					// }
 				}
-				// listCut(unCheckedAssets);
-				/*
-				   if (ast.CheckBox__c) {
-					checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice));
-				   } else {
-					unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
-				   }
-				 */
+				// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
+	
+	//
+	//
+	//
+				checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice, selectedLocal));
+			} else {
+				if (String.isBlank(ast.Product2.ProductURF__c)) continue;
+				//update by rentongxiao 2020-09-23 start
+				if (ast.AssetMark__c == '涓绘満') {
+					totalRecords++;
+					if (unCheckedAssets.size() < selctRecordNum) {
+						unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
+					}
+				}
+				//update by rentongxiao 2020-09-23 end
+	
 			}
-			listCut(unCheckedAssets);
+			// listCut(unCheckedAssets);
+			/*
+			   if (ast.CheckBox__c) {
+				checkedAssets.add(new AssetInfo(checkedAssets.size(), ast, isNew, listPrice));
+			   } else {
+				unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
+			   }
+			 */
+		}
+		listCut(unCheckedAssets);
 	
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
 	
-			system.debug('椤哄簭妫�娴�' + checkedAssets);
-			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '----------------' + newMcaes.size()));
-			for (Maintenance_Contract_Asset_Estimate__c mcae : newMcaes) {
-				checkedAssets.add(new AssetInfo(checkedAssets.size(), mcae));
-			}
-	
-			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '2222222222222222' + checkedAssets.size()));
-	
-			// 鏈�寰�10琛岃拷鍔�
-			if (Schema.getGlobalDescribe().get('Maintenance_Contract_Asset_Estimate__c').getDescribe().isCreateable()) {
-				this.addNewRows();
-			}
-	
-			if (!String.isBlank(copyid)) {
-				this.targetEstimateId = null;
-				this.estimate = new Maintenance_Contract_Estimate__c();
-				this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId;
-			}
-			// 2021-02-07  gzw add  LJPH-BWY5QB start
-			setEndUserType(this.targetMaintenanceContractId);
-			// 2021-02-07  gzw add  LJPH-BWY5QB start
-			assetRecords.clear();
-			// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
-			//contractStartDateChange();
+		system.debug('椤哄簭妫�娴�' + checkedAssets);
+		// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '----------------' + newMcaes.size()));
+		for (Maintenance_Contract_Asset_Estimate__c mcae : newMcaes) {
+			checkedAssets.add(new AssetInfo(checkedAssets.size(), mcae));
 		}
 	
+		// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '2222222222222222' + checkedAssets.size()));
+	
+		// 鏈�寰�10琛岃拷鍔�
+		if (Schema.getGlobalDescribe().get('Maintenance_Contract_Asset_Estimate__c').getDescribe().isCreateable()) {
+			this.addNewRows();
+		}
+	
+		if (!String.isBlank(copyid)) {
+			this.targetEstimateId = null;
+			this.estimate = new Maintenance_Contract_Estimate__c();
+			this.estimate.Maintenance_Contract__c = this.targetMaintenanceContractId;
+		}
+		// 2021-02-07  gzw add  LJPH-BWY5QB start
+		setEndUserType(this.targetMaintenanceContractId);
+		// 2021-02-07  gzw add  LJPH-BWY5QB start
+		assetRecords.clear();
+		// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
+		//contractStartDateChange();
+		}
+
 	//
 	
 	// 鍙栧緱鍒嗛〉鏁版嵁
-		private void setPageRecord() {
-			checkIdList = new List<String> ();
-			for (AssetInfo ass : this.checkedAssets) {
-				if (!ass.isManual) {
-					checkIdList.add(ass.rec.Id);
-				}
+	private void setPageRecord() {
+		checkIdList = new List<String> ();
+		for (AssetInfo ass : this.checkedAssets) {
+			if (!ass.isManual) {
+				checkIdList.add(ass.rec.Id);
 			}
-	
-			if ((currPage * selctRecordNum) <= 2000) {
-				String notInId = '(\'';
-				if (checkIdList.size() > 0) {
-					for (String str : checkIdList) {
-						notInId += str + '\', \'';
-					}
-				}
-				notInId += '\')';
-				//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start
-				String sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, '
-								+ 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, '
-								+ 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, '
-								+ 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c, '
-								+ 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'
-								+ 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, '
-								+ 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
-								+ 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,'
-								+ 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
-								+ 'CurrentContract_F__r.Contract_Range__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' '
-								+ 'AND Id NOT IN ' + notInId;
-				//HWAG-B4R3SS  START 20181026
-				if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) {
-					sqlStr += makeTextSql(text1, cond1, val1);
-				}
-	
-				//JZHG-BSDUT4 ---20200904---update By rentongxiao---Start
-				// else{
-				//     sqlStr += 'AND AssetMark__c = \'涓绘満\'';
-				// }
-	
-				//JZHG-BSDUT4 ---20200904---update By rentongxiao---end
-				//HWAG-B4R3SS  END 20181026
-				//HWAG-BDJ43R---XHL---20190729---
-				sqlStr += ' AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' )';
-				//HWAG-BDJ43R---XHL---20190729---
-				sqlStr += ' ORDER BY ID,IF_Warranty__c asc ';
-				if (currPage == 1) {
-					sqlStr += 'limit ' + selRecordOption;
-				} else {
-					sqlStr += 'limit ' + selRecordOption + ' offset ' + String.valueOf((currPage - 1) * selctRecordNum);
-				}
-				//system.debug();
-				//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,
-				//               '222222222222_____'+sqlStr));
-				//return;
-				assetRecords = Database.query(sqlStr);
-			} else {
-				assetRecords.clear();
-				Integer sqlLimit = currPage * selctRecordNum;
-				List<Asset> temAsset = new List<Asset> ();
-				//HWAG-BDJ43R ---XHL---20190729---
-				String sqlStr = '';
-				//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start 
-				sqlStr  = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c,';
-				sqlStr += 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,InstallDate,isNewDate_use__c,';
-				sqlStr += 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,';
-				sqlStr += 'CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,';
-				sqlStr += 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,';
-				sqlStr += 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,';
-				sqlStr += 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,';
-				sqlStr += 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,';
-				sqlStr += 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,';
-				sqlStr += ' CurrentContract_F__r.Contract_Range__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\'';
-				//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
-				// sqlStr += '  AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' ) ';
-				//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
-				//HWAG-B4R3SS  START 20181026
-				if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) {
-					sqlStr += makeTextSql(text1, cond1, val1);
-				}
-	
-				//JZHG-BSDUT4 ---20200904---update By rentongxiao---Start
-				// else{
-				//     sqlStr += 'AND AssetMark__c = \'涓绘満\'';
-				// }
-	
-				//JZHG-BSDUT4 ---20200904---update By rentongxiao---end
-				//HWAG-B4R3SS  END 20181026
-				if (checkIdList.size() > 0) {
-	
-					sqlStr += '  AND Id NOT IN ' + checkIdList;
-					//temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
-					//            InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c
-					//            FROM Asset WHERE Hospital__c = :this.targetHospitalId AND Id NOT IN : checkIdList AND AssetMark__c != '鑰楁潗' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit];
-				} else {
-					//temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
-					//            InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c
-					//            FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c != '鑰楁潗' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit];
-				}
-				sqlStr += ' ORDER BY ID,IF_Warranty__c asc limit ' + sqlLimit;
-				temAsset = Database.query(sqlStr);
-				//HWAG-BDJ43R ---XHL---20190729---
-				if (temAsset.size() >= (currPage * selctRecordNum)) {
-					for (Integer i = ((currPage - 1) * selctRecordNum); i < (currPage * selctRecordNum); i++) {
-						assetRecords.add(temAsset.get(i));
-					}
-				} else {
-					for (Integer i = ((currPage - 1) * selctRecordNum); i < temAsset.size(); i++) {
-						assetRecords.add(temAsset.get(i));
-					}
-				}
-			}
-			this.unCheckedAssets = new List<AssetInfo>();
-			for (Asset ast : assetRecords) {
-				this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
-			}
-			listCut(unCheckedAssets);
-			// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
-			//contractStartDateChange();
 		}
+	
+		if ((currPage * selctRecordNum) <= 2000) {
+			String notInId = '(\'';
+			if (checkIdList.size() > 0) {
+				for (String str : checkIdList) {
+					notInId += str + '\', \'';
+				}
+			}
+			notInId += '\')';
+			//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start
+			String sqlStr = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, '
+							+ 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c, InstallDate,isNewDate_use__c, '
+							+ 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, '
+							+ 'CurrentContract_End_Date__c, Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c, '
+								+ 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,'
+							+ 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c, '
+							+ 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,'
+							+ 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,'
+							+ 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,'
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+							+ 'Product2.ProductURF__r.Maintenance_Price_Year_URF__c, Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c,' 
+							//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+							+ 'CurrentContract_F__r.Contract_Range__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\' '
+							+ 'AND Id NOT IN ' + notInId;
+			//HWAG-B4R3SS  START 20181026
+			if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) {
+				sqlStr += makeTextSql(text1, cond1, val1);
+			}
+	
+			//JZHG-BSDUT4 ---20200904---update By rentongxiao---Start
+			// else{
+			//     sqlStr += 'AND AssetMark__c = \'涓绘満\'';
+			// }
+	
+			//JZHG-BSDUT4 ---20200904---update By rentongxiao---end
+			//HWAG-B4R3SS  END 20181026
+			//HWAG-BDJ43R---XHL---20190729---
+			sqlStr += ' AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' )';
+			//HWAG-BDJ43R---XHL---20190729---
+			sqlStr += ' ORDER BY ID,IF_Warranty__c asc ';
+			if (currPage == 1) {
+				sqlStr += 'limit ' + selRecordOption;
+			} else {
+				sqlStr += 'limit ' + selRecordOption + ' offset ' + String.valueOf((currPage - 1) * selctRecordNum);
+			}
+			//system.debug();
+			//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,
+			//               '222222222222_____'+sqlStr));
+			//return;
+			assetRecords = Database.query(sqlStr);
+		} else {
+			assetRecords.clear();
+			Integer sqlLimit = currPage * selctRecordNum;
+			List<Asset> temAsset = new List<Asset> ();
+			//HWAG-BDJ43R ---XHL---20190729---
+			String sqlStr = '';
+			//tcm 鍒犻櫎绗�4琛� Maintenance_Contract_No_F__c 鏇挎崲 Management_Code__c  20211201 start 
+			sqlStr  = 'SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c,';
+			sqlStr += 'Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,InstallDate,isNewDate_use__c,';
+			sqlStr += 'Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,';
+			sqlStr += 'CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c,EquipmentGuaranteeFlg__c,';
+				sqlStr += 'CurrentContract_F__c,CurrentContract_F__r.Management_Code__c,CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.RecordType_DeveloperName__c,CurrentContract_F__r.Estimate_Num__c,CurrentContract_F__r.Contract_End_Date__c,';
+			sqlStr += 'CurrentContract_F_asset__c,CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c,CurrentContract_F_asset__r.endDateGurantee_Text__c,CurrentContract_F__r.Gurantee_Estimate_startDate__c,';
+			sqlStr += 'CurrentContract_F__r.First_Estimate_Date__c,CurrentContract_F__r.Estimate_Contract_endDate__c,';
+			sqlStr += 'CurrentContract_F__r.Contract_Consumption_rate__c,CurrentContract_F__r.First_contract_usage_Rate__c,';
+			sqlStr += 'Product2.ProductURF__c,Product2.ProductURF__r.URFLimitSerial__c,Product2.ProductURF__r.UFR_MaxRepairCount__c,Product2.ProductURF__r.UFR_Maintenance_Price_Month__c,';
+			sqlStr += ' CurrentContract_F__r.Contract_Range__c,AssetMark__c FROM Asset WHERE Product2.ProductURF__c != null AND Hospital__c = \'' + this.targetHospitalId + '\'';
+			//JZHG-BSDUT4 ---20200825---update By rentongxiao---Start
+			// sqlStr += '  AND ( AssetMark__c != \'鑰楁潗\' OR Product2.Family != \'ET\' ) ';
+			//JZHG-BSDUT4 ---20200825---update By rentongxiao---End
+			//HWAG-B4R3SS  START 20181026
+			if (String.isNotBlank(text1) && String.isNotBlank(cond1) && String.isNotBlank(val1)) {
+				sqlStr += makeTextSql(text1, cond1, val1);
+			}
+	
+			//JZHG-BSDUT4 ---20200904---update By rentongxiao---Start
+			// else{
+			//     sqlStr += 'AND AssetMark__c = \'涓绘満\'';
+			// }
+	
+			//JZHG-BSDUT4 ---20200904---update By rentongxiao---end
+			//HWAG-B4R3SS  END 20181026
+			if (checkIdList.size() > 0) {
+	
+				sqlStr += '  AND Id NOT IN ' + checkIdList;
+				//temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
+				//            InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c
+				//            FROM Asset WHERE Hospital__c = :this.targetHospitalId AND Id NOT IN : checkIdList AND AssetMark__c != '鑰楁潗' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit];
+			} else {
+				//temAsset = [SELECT Id, Name, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c,Management_Code__c,IF_Warranty__c,Reson_Can_not_Warranty__c,
+				//            InstallDate, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c,CurrentContract_End_Date__c,Extend_Gurantee_DateTo__c
+				//            FROM Asset WHERE Hospital__c = :this.targetHospitalId AND AssetMark__c != '鑰楁潗' AND Product2.Family != 'ET' ORDER BY ID,IF_Warranty__c asc limit : sqlLimit];
+			}
+			sqlStr += ' ORDER BY ID,IF_Warranty__c asc limit ' + sqlLimit;
+			temAsset = Database.query(sqlStr);
+			//HWAG-BDJ43R ---XHL---20190729---
+			if (temAsset.size() >= (currPage * selctRecordNum)) {
+				for (Integer i = ((currPage - 1) * selctRecordNum); i < (currPage * selctRecordNum); i++) {
+					assetRecords.add(temAsset.get(i));
+				}
+			} else {
+				for (Integer i = ((currPage - 1) * selctRecordNum); i < temAsset.size(); i++) {
+					assetRecords.add(temAsset.get(i));
+				}
+			}
+		}
+		this.unCheckedAssets = new List<AssetInfo>();
+		for (Asset ast : assetRecords) {
+			this.unCheckedAssets.add(new AssetInfo(unCheckedAssets.size(), ast));
+		}
+		listCut(unCheckedAssets);
+		// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
+		//contractStartDateChange();
+	}
 	
 	// 缈婚〉鍒伴椤�
-		public void firstPage() {
-			getAssetSerialNumber();
-			currPage = 1;
-			//HWAG-B4R3SS  END 20181026
-			totalRecords = soqlNos();
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			//HWAG-B4R3SS  END 20181026
-			this.setPageRecord();
-		}
+	public void firstPage() {
+		getAssetSerialNumber();
+		currPage = 1;
+		//HWAG-B4R3SS  END 20181026
+		totalRecords = soqlNos();
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		//HWAG-B4R3SS  END 20181026
+		this.setPageRecord();
+	}
 	
 	// 鍚戝墠缈婚〉
-		public void previousPage() {
-			getAssetSerialNumber();
-			currPage--;
-			//HWAG-B4R3SS  START 20181026
-			totalRecords = soqlNos();
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			//HWAG-B4R3SS  END 20181026
-			this.setPageRecord();
-		}
+	public void previousPage() {
+		getAssetSerialNumber();
+		currPage--;
+		//HWAG-B4R3SS  START 20181026
+		totalRecords = soqlNos();
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		//HWAG-B4R3SS  END 20181026
+		this.setPageRecord();
+	}
 	
 	// 鍚戝悗缈婚〉
-		public void nextPage() {
-			getAssetSerialNumber();
-			//HWAG-B4R3SS  START 20181026
-			totalRecords = soqlNos();
-			//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'totalRecords鈥斺�斺�斺�斺�斺��' + totalRecords));
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			if (totalRecords == 0) {
-				currPage  = 1;
-				//this.unCheckedAssets.clear();
-			} else {
-				currPage++;
-				this.setPageRecord();
-			}
-			//HWAG-B4R3SS  END 20181026
-	
-		}
-	
-	// 缈婚〉鍒板熬椤�
-		public void endPage() {
-			getAssetSerialNumber();
-			//HWAG-B4R3SS  START 20181026
-			totalRecords = soqlNos();
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			if (totalRecords == 0) {
-				currPage  = 1;
-				this.unCheckedAssets.clear();
-			} else {
-				currPage = totalPage;
-				this.setPageRecord();
-			}
-			//HWAG-B4R3SS  END 20181026
-		}
-	
-	// 姣忛〉鏄剧ず璁板綍鏁板彉鏇�
-		public void recordNumChange() {
-			currPage = 1;
-			//totalRecords = soqlNos();
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+	public void nextPage() {
+		getAssetSerialNumber();
+		//HWAG-B4R3SS  START 20181026
+		totalRecords = soqlNos();
+		//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'totalRecords鈥斺�斺�斺�斺�斺��' + totalRecords));
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		if (totalRecords == 0) {
+			currPage  = 1;
+			//this.unCheckedAssets.clear();
+		} else {
+			currPage++;
 			this.setPageRecord();
 		}
+		//HWAG-B4R3SS  END 20181026
+	
+	}
+	
+	// 缈婚〉鍒板熬椤�
+	public void endPage() {
+		getAssetSerialNumber();
+		//HWAG-B4R3SS  START 20181026
+		totalRecords = soqlNos();
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		if (totalRecords == 0) {
+			currPage  = 1;
+			this.unCheckedAssets.clear();
+		} else {
+			currPage = totalPage;
+			this.setPageRecord();
+		}
+		//HWAG-B4R3SS  END 20181026
+	}
+	
+	// 姣忛〉鏄剧ず璁板綍鏁板彉鏇�
+	public void recordNumChange() {
+		currPage = 1;
+		//totalRecords = soqlNos();
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		this.setPageRecord();
+	}
 	
 	//list鍒嗗壊 闆嗗悎澶у皬瓒呰繃1000瀵瑰簲
-		private void listCut(List<AssetInfo> records) {
-			List<AssetInfo> recordsbreak = new List<AssetInfo>();
-			List<AssetInfo> recordsbreakover = new List<AssetInfo>();
-			unCheckedAssetsView = new List<List<AssetInfo> >();
-			AssetInfo c = null;
-			recordsbreak.clear();
-			recordsbreakover.clear();
-			unCheckedAssetsView.clear();
-			unCheckedAssetsView.add(records);
-		}
+	private void listCut(List<AssetInfo> records) {
+		List<AssetInfo> recordsbreak = new List<AssetInfo>();
+		List<AssetInfo> recordsbreakover = new List<AssetInfo>();
+		unCheckedAssetsView = new List<List<AssetInfo> >();
+		AssetInfo c = null;
+		recordsbreak.clear();
+		recordsbreakover.clear();
+		unCheckedAssetsView.clear();
+		unCheckedAssetsView.add(records);
+	}
 	/*
 	 *鏄剧ず杩囧幓涓ゅ勾鐨勭淮淇疄缁�
 	 *璁$畻璇ョ淮淇悎鍚屾姤浠风殑鎵�鏈変繚浣戣澶囷紝杩囧幓涓ゅ勾鐨勪慨鐞嗗疄缁�
 	 */
-		public static void ComputeLTYRepair(String targetHospitalId) {
-			system.debug('ComputeLTYRepair=====Start');
-			List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>();
-			McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c
-						from Maintenance_Contract_Asset_Estimate__c
-						where Maintenance_Contract_Estimate__c = : targetHospitalId];
-			List<id> AsList = new List<id>();
-			Map<id, id> McaecToAsset = new Map<id, id>();
-			for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) {
-				AsList.add(Mcaes.asset__c);
-				McaecToAsset.put(Mcaes.id, Mcaes.asset__c);
-			}
-			Maintenance_Contract_Estimate__c mcec = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = : targetHospitalId];
-			//1骞村墠缁翠慨瀹炵哗
-			Date today = null;
-			Date LastYearDate = null;
-			Date LastSecondYearDate = null;
-			Date LastThirdYearDate = null;
-			Decimal LastYearPriceForMCAEC = 0;
+	public static void ComputeLTYRepair(String targetHospitalId) {
+		system.debug('ComputeLTYRepair=====Start');
+		List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>();
+		McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c
+					from Maintenance_Contract_Asset_Estimate__c
+					where Maintenance_Contract_Estimate__c = :targetHospitalId];
+		List<id> AsList = new List<id>();
+		Map<id, id> McaecToAsset = new Map<id, id>();
+		for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) {
+			AsList.add(Mcaes.asset__c);
+			McaecToAsset.put(Mcaes.id, Mcaes.asset__c);
+		}
+		Maintenance_Contract_Estimate__c mcec = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetHospitalId];
+		//1骞村墠缁翠慨瀹炵哗
+		Date today = null;
+		Date LastYearDate = null;
+		Date LastSecondYearDate = null;
+		Date LastThirdYearDate = null;
+		Decimal LastYearPriceForMCAEC = 0;
 	
-			if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') {
-				today = mcec.Submit_quotation_day__c;
-				LastYearDate = mcec.Submit_quotation_day__c;
-				LastSecondYearDate = mcec.Submit_quotation_day__c;
-				LastThirdYearDate = mcec.Submit_quotation_day__c;
-			} else {
-				today = Date.valueOf(mcec.createdDate);
-				LastYearDate = Date.valueOf(mcec.createdDate);
-				LastSecondYearDate = Date.valueOf(mcec.createdDate);
-				LastThirdYearDate = Date.valueOf(mcec.createdDate);
-			}
-	
-			system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
-	
-			LastYearDate = LastYearDate.addYears(-1);
-			// LastYearDate = LastYearDate.addDays(1);
-	
-			//LastSecondYearDate = LastSecondYearDate.addDays(1);
-			LastSecondYearDate = LastSecondYearDate.addYears(-2);
-	
-			// LastThirdYearDate = LastThirdYearDate.addDays(1);
-			LastThirdYearDate = LastThirdYearDate.addYears(-3);
-			system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
-			// 20191210 Gzw 鏈嶅姟鍚堝悓杩囧幓3骞翠慨鐞嗗疄缁╁悎骞�
-			List<AggregateResult> FriRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c > : LastYearDate
-				and Agreed_Date__c <= : today
-				group by Delivered_Product__c
-			];
-			List<AggregateResult> SecRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : LastYearDate
-				and Agreed_Date__c > : LastSecondYearDate
-				group by Delivered_Product__c
-			];
-			// 杩囧幓3骞撮棿淇悊瀹炵哗
-			List<AggregateResult> ThiRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : LastSecondYearDate
-				and Agreed_Date__c > : LastThirdYearDate
-				group by Delivered_Product__c
-			];
-			// 杩囧幓3骞翠慨鐞嗗疄缁�
-			List<AggregateResult> ThreeyearList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : today
-				and Agreed_Date__c > : LastThirdYearDate
-				group by Delivered_Product__c
-			];
-	
-			// system.debug('++++++++'+FriRepairList+'++++++++'+SecRepairList+'+++++++'+ThiRepairList+'+++++');
-			// 杩囧幓1骞撮棿
-			Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓2骞撮棿
-			Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓3骞撮棿
-			Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓3骞�
-			Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>();
-			Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>();
-			for (AggregateResult Rpc : FriRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = sumPrice1(Rpc);
-				LastFriYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : SecRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = sumPrice1(Rpc);
-				LastSecYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : ThiRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = sumPrice1(Rpc);
-				LastThiYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : ThreeyearList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + '');
-				Decimal Defir = sumPrice1(Rpc);
-				ThreeYearPriceSumMap.put(idf, Defir);
-				ThiYearMonthMap.put(idf, threeYearM);
-			}
-			for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) {
-				Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.The_Date_Of_Compute_The_RPCost__c = Date.today();
-				Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id));
-	
-	
-			}
-			try {
-				system.debug('McaeList:::::' + McaeList);
-				update McaeList;
-	
-				//return '';
-			} catch (Exception e) {
-				//return 'McaeList Update Failed : '+e;
-			}
-	
+		if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') {
+			today = mcec.Submit_quotation_day__c;
+			LastYearDate = mcec.Submit_quotation_day__c;
+			LastSecondYearDate = mcec.Submit_quotation_day__c;
+			LastThirdYearDate = mcec.Submit_quotation_day__c;
+		} else {
+			today = Date.valueOf(mcec.createdDate);
+			LastYearDate = Date.valueOf(mcec.createdDate);
+			LastSecondYearDate = Date.valueOf(mcec.createdDate);
+			LastThirdYearDate = Date.valueOf(mcec.createdDate);
 		}
 	
+		system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
 	
+		LastYearDate = LastYearDate.addYears(-1);
+		// LastYearDate = LastYearDate.addDays(1);
 	
-		public void ComputeLTYRepair() {
-			system.debug('ComputeLTYRepair=====Start');
-			List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>();
-			McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c
-						from Maintenance_Contract_Asset_Estimate__c
-						where Maintenance_Contract_Estimate__c = : targetEstimateId];
-			List<id> AsList = new List<id>();
-			Map<id, id> McaecToAsset = new Map<id, id>();
-			for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) {
-				AsList.add(Mcaes.asset__c);
-				McaecToAsset.put(Mcaes.id, Mcaes.asset__c);
-			}
-			Maintenance_Contract_Estimate__c mcec = new Maintenance_Contract_Estimate__c();
-			List<Maintenance_Contract_Estimate__c>  mcecList = new List<Maintenance_Contract_Estimate__c>();
-			mcecList = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = : targetEstimateId];
-			if (mcecList.size() == 0) {
-				ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '璇峰厛淇濆瓨鎶ヤ环锛�'));
-				return;
-			} else {
-				mcec = mcecList[0];
-			}
-			//1骞村墠缁翠慨瀹炵哗
-			Date today = null;
-			Date LastYearDate = null;
-			Date LastSecondYearDate = null;
-			Date LastThirdYearDate = null;
-			Decimal LastYearPriceForMCAEC = 0;
+		//LastSecondYearDate = LastSecondYearDate.addDays(1);
+		LastSecondYearDate = LastSecondYearDate.addYears(-2);
 	
-			if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') {
-				today = mcec.Submit_quotation_day__c;
-				LastYearDate = mcec.Submit_quotation_day__c;
-				LastSecondYearDate = mcec.Submit_quotation_day__c;
-				LastThirdYearDate = mcec.Submit_quotation_day__c;
-			} else {
-				today = Date.valueOf(mcec.createdDate);
-				LastYearDate = Date.valueOf(mcec.createdDate);
-				LastSecondYearDate = Date.valueOf(mcec.createdDate);
-				LastThirdYearDate = Date.valueOf(mcec.createdDate);
-			}
+		// LastThirdYearDate = LastThirdYearDate.addDays(1);
+		LastThirdYearDate = LastThirdYearDate.addYears(-3);
+		system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
+		// 20191210 Gzw 鏈嶅姟鍚堝悓杩囧幓3骞翠慨鐞嗗疄缁╁悎骞�
+		List<AggregateResult> FriRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c > :LastYearDate
+			and Agreed_Date__c <= :today
+			group by Delivered_Product__c
+		];
+		List<AggregateResult> SecRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :LastYearDate
+			and Agreed_Date__c > :LastSecondYearDate
+			group by Delivered_Product__c
+		];
+		// 杩囧幓3骞撮棿淇悊瀹炵哗
+		List<AggregateResult> ThiRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :LastSecondYearDate
+			and Agreed_Date__c > :LastThirdYearDate
+			group by Delivered_Product__c
+		];
+		// 杩囧幓3骞翠慨鐞嗗疄缁�
+		List<AggregateResult> ThreeyearList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :today
+			and Agreed_Date__c > :LastThirdYearDate
+			group by Delivered_Product__c
+		];
 	
-			LastYearDate = LastYearDate.addYears(-1);
-			// LastYearDate = LastYearDate.addDays(1);
+		// system.debug('++++++++'+FriRepairList+'++++++++'+SecRepairList+'+++++++'+ThiRepairList+'+++++');
+		// 杩囧幓1骞撮棿
+		Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓2骞撮棿
+		Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓3骞撮棿
+		Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓3骞�
+		Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>();
+		Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>();
+		for (AggregateResult Rpc : FriRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = sumPrice1(Rpc);
+			LastFriYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : SecRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = sumPrice1(Rpc);
+			LastSecYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : ThiRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = sumPrice1(Rpc);
+			LastThiYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : ThreeyearList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + '');
+			Decimal Defir = sumPrice1(Rpc);
+			ThreeYearPriceSumMap.put(idf, Defir);
+			ThiYearMonthMap.put(idf, threeYearM);
+		}
+		for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) {
+			Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.The_Date_Of_Compute_The_RPCost__c = Date.today();
+			Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id));
 	
-			// LastSecondYearDate = LastSecondYearDate.addDays(1);
-			LastSecondYearDate = LastSecondYearDate.addYears(-2);
-	
-			// LastThirdYearDate = LastThirdYearDate.addDays(1);
-			LastThirdYearDate = LastThirdYearDate.addYears(-3);
-			system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
-			// 20191210 Gzw 鏈嶅姟鍚堝悓杩囧幓3骞翠慨鐞嗗疄缁╁悎骞�
-			List<AggregateResult> FriRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c > : LastYearDate
-				and Agreed_Date__c <= : today
-				group by Delivered_Product__c
-			];
-			List<AggregateResult> SecRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : LastYearDate
-				and Agreed_Date__c > : LastSecondYearDate
-				group by Delivered_Product__c
-			];
-			// 杩囧幓3骞撮棿淇悊瀹炵哗
-			List<AggregateResult> ThiRepairList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : LastSecondYearDate
-				and Agreed_Date__c > : LastThirdYearDate
-				group by Delivered_Product__c
-			];
-			// 杩囧幓3骞翠慨鐞嗗疄缁�
-			List<AggregateResult> ThreeyearList = [
-				select
-				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,
-				sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
-				sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
-				sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
-				sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
-				sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
-				sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
-				sum(Repair_Quotation_Id__r.Other_discount__c) other,
-				AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
-				Delivered_Product__c
-				from
-				Repair__c
-				where
-				Delivered_Product__c in : AsList
-				and Agreed_Date__c != null
-				and Agreed_Date__c <= : today
-				and Agreed_Date__c > : LastThirdYearDate
-				group by Delivered_Product__c
-			];
-			// 杩囧幓1骞撮棿
-			Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓2骞撮棿
-			Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓3骞撮棿
-			Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>();
-			// 杩囧幓3骞�
-			Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>();
-			Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>();
-			// system.debug('1'+FriRepairList);
-			// system.debug('2'+SecRepairList);
-			system.debug('3' + ThiRepairList);
-	
-			for (AggregateResult Rpc : FriRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = this.sumPrice(Rpc);
-				LastFriYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : SecRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = this.sumPrice(Rpc);
-				LastSecYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : ThiRepairList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal Defir = sumPrice1(Rpc);
-				LastThiYearPriceSumMap.put(idf, Defir);
-			}
-			for (AggregateResult Rpc : ThreeyearList) {
-				id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
-				//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
-				Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + '');
-				Decimal Defir = sumPrice1(Rpc);
-				ThreeYearPriceSumMap.put(idf, Defir);
-				ThiYearMonthMap.put(idf, threeYearM);
-			}
-			for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) {
-				Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id));
-				Mca.The_Date_Of_Compute_The_RPCost__c = Date.today();
-				Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id));
-				system.debug('杩囧幓3骞村ぉ鏁�111 ' + Mca.id + '---' + Mca.Last_Third_Years_Repair_Cost_Text__c + ' +++ ' + Mca.Last_Third_Years_Repair_Month__c);
-			}
-			try {
-				update McaeList;
-				//return '';
-			} catch (Exception e) {
-				//return 'McaeList Update Failed : '+e;
-			}
 	
 		}
+		try {
+			system.debug('McaeList:::::' + McaeList);
+			update McaeList;
 	
-		private Decimal sumPrice(AggregateResult rpc) {
-			Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + '');
-			system.debug(rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount'));
-			Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1;
-			Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1;
-			Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1;
-			Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1;
-			Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1;
-			Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1;
-			Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1;
-			Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1;
-			Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1;
-			system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' +
-						 rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD')
-						 + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--');
-			return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other;
+			//return '';
+		} catch (Exception e) {
+			//return 'McaeList Update Failed : '+e;
 		}
 	
-		private static Decimal sumPrice1(AggregateResult rpc) {
-			Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + '');
-			Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1;
-			Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1;
-			Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1;
-			Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1;
-			Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1;
-			Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1;
-			Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1;
-			Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1;
-			Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1;
-			system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' +
-						 rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD')
-						 + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--');
-			return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other;
+	}
+	
+	
+	
+	public void ComputeLTYRepair() {
+		system.debug('ComputeLTYRepair=====Start');
+		List<Maintenance_Contract_Asset_Estimate__c> McaeList = new List<Maintenance_Contract_Asset_Estimate__c>();
+		McaeList = [select id, asset__c, Lastyear_Repair_Cost_Text__c, Last_Second_Years_Repair_Cost_Text__c, Last_Third_Years_Repair_Cost_Text__c, Three_Years_Repair_Cost_Text__c
+					from Maintenance_Contract_Asset_Estimate__c
+					where Maintenance_Contract_Estimate__c = :targetEstimateId];
+		List<id> AsList = new List<id>();
+		Map<id, id> McaecToAsset = new Map<id, id>();
+		for (Maintenance_Contract_Asset_Estimate__c Mcaes : McaeList) {
+			AsList.add(Mcaes.asset__c);
+			McaecToAsset.put(Mcaes.id, Mcaes.asset__c);
 		}
+		Maintenance_Contract_Estimate__c mcec = new Maintenance_Contract_Estimate__c();
+		List<Maintenance_Contract_Estimate__c>  mcecList = new List<Maintenance_Contract_Estimate__c>();
+		mcecList = [select id, createdDate, Submit_quotation_day__c from Maintenance_Contract_Estimate__c where id = :targetEstimateId];
+		if (mcecList.size() == 0) {
+			ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, '璇峰厛淇濆瓨鎶ヤ环锛�'));
+			return;
+		} else {
+			mcec = mcecList[0];
+		}
+		//1骞村墠缁翠慨瀹炵哗
+		Date today = null;
+		Date LastYearDate = null;
+		Date LastSecondYearDate = null;
+		Date LastThirdYearDate = null;
+		Decimal LastYearPriceForMCAEC = 0;
+	
+		if (mcec.Submit_quotation_day__c != null && String.valueOf(mcec.Submit_quotation_day__c) != '') {
+			today = mcec.Submit_quotation_day__c;
+			LastYearDate = mcec.Submit_quotation_day__c;
+			LastSecondYearDate = mcec.Submit_quotation_day__c;
+			LastThirdYearDate = mcec.Submit_quotation_day__c;
+		} else {
+			today = Date.valueOf(mcec.createdDate);
+			LastYearDate = Date.valueOf(mcec.createdDate);
+			LastSecondYearDate = Date.valueOf(mcec.createdDate);
+			LastThirdYearDate = Date.valueOf(mcec.createdDate);
+		}
+	
+		LastYearDate = LastYearDate.addYears(-1);
+		// LastYearDate = LastYearDate.addDays(1);
+	
+		// LastSecondYearDate = LastSecondYearDate.addDays(1);
+		LastSecondYearDate = LastSecondYearDate.addYears(-2);
+	
+		// LastThirdYearDate = LastThirdYearDate.addDays(1);
+		LastThirdYearDate = LastThirdYearDate.addYears(-3);
+		system.debug('鍘诲勾' + LastYearDate + '鍓嶅勾' + LastSecondYearDate + '澶у墠骞�' + LastThirdYearDate);
+		// 20191210 Gzw 鏈嶅姟鍚堝悓杩囧幓3骞翠慨鐞嗗疄缁╁悎骞�
+		List<AggregateResult> FriRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c > :LastYearDate
+			and Agreed_Date__c <= :today
+			group by Delivered_Product__c
+		];
+		List<AggregateResult> SecRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :LastYearDate
+			and Agreed_Date__c > :LastSecondYearDate
+			group by Delivered_Product__c
+		];
+		// 杩囧幓3骞撮棿淇悊瀹炵哗
+		List<AggregateResult> ThiRepairList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :LastSecondYearDate
+			and Agreed_Date__c > :LastThirdYearDate
+			group by Delivered_Product__c
+		];
+		// 杩囧幓3骞翠慨鐞嗗疄缁�
+		List<AggregateResult> ThreeyearList = [
+			select
+			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,
+			sum(Repair_Quotation_Id__r.Loaner_repair__c) loaner_repair,
+			sum(Repair_Quotation_Id__r.long_term_insurance__c) long_term_insurance,
+			sum(Repair_Quotation_Id__r.Set_discount__c) set_discount,
+			sum(Repair_Quotation_Id__r.Servince_contract_discount_amount__c) sercince,
+			sum(Repair_Quotation_Id__r.long_term_insurance_MD__c) long_term_insuranceMD,
+			sum(Repair_Quotation_Id__r.Delivery_compensation__c) delivery,
+			sum(Repair_Quotation_Id__r.Other_discount__c) other,
+			AVG(Delivered_Product__r.Last_Years_Repair_Month__c) threeYearM,
+			Delivered_Product__c
+			from
+			Repair__c
+			where
+			Delivered_Product__c in:AsList
+			and Agreed_Date__c != null
+			and Agreed_Date__c <= :today
+			and Agreed_Date__c > :LastThirdYearDate
+			group by Delivered_Product__c
+		];
+		// 杩囧幓1骞撮棿
+		Map<id, Decimal> LastFriYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓2骞撮棿
+		Map<id, Decimal> LastSecYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓3骞撮棿
+		Map<id, Decimal> LastThiYearPriceSumMap = new Map<id, Decimal>();
+		// 杩囧幓3骞�
+		Map<id, Decimal> ThreeYearPriceSumMap = new Map<id, Decimal>();
+		Map<id, Decimal> ThiYearMonthMap = new Map<id, Decimal>();
+		// system.debug('1'+FriRepairList);
+		// system.debug('2'+SecRepairList);
+		system.debug('3' + ThiRepairList);
+	
+		for (AggregateResult Rpc : FriRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = this.sumPrice(Rpc);
+			LastFriYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : SecRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = this.sumPrice(Rpc);
+			LastSecYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : ThiRepairList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal Defir = sumPrice1(Rpc);
+			LastThiYearPriceSumMap.put(idf, Defir);
+		}
+		for (AggregateResult Rpc : ThreeyearList) {
+			id idf        = String.valueOf(Rpc.get('Delivered_Product__c'));
+			//Decimal Defir = decimal.valueOf(Rpc.get('SumPrice')+'');
+			Decimal threeYearM = decimal.valueOf(Rpc.get('threeYearM') + '');
+			Decimal Defir = sumPrice1(Rpc);
+			ThreeYearPriceSumMap.put(idf, Defir);
+			ThiYearMonthMap.put(idf, threeYearM);
+		}
+		for (Maintenance_Contract_Asset_Estimate__c Mca : McaeList) {
+			Mca.Lastyear_Repair_Cost_Text__c = LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastFriYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Last_Second_Years_Repair_Cost_Text__c = LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastSecYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Last_Third_Years_Repair_Cost_Text__c = LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : LastThiYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.Three_Years_Repair_Cost_Text__c = ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThreeYearPriceSumMap.get(McaecToAsset.get(Mca.id));
+			Mca.The_Date_Of_Compute_The_RPCost__c = Date.today();
+			Mca.Last_Third_Years_Repair_Month__c = ThiYearMonthMap.get(McaecToAsset.get(Mca.id)) == null ? 0 : ThiYearMonthMap.get(McaecToAsset.get(Mca.id));
+			system.debug('杩囧幓3骞村ぉ鏁�111 ' + Mca.id + '---' + Mca.Last_Third_Years_Repair_Cost_Text__c + ' +++ ' + Mca.Last_Third_Years_Repair_Month__c);
+		}
+		try {
+			update McaeList;
+			//return '';
+		} catch (Exception e) {
+			//return 'McaeList Update Failed : '+e;
+		}
+	
+	}
+	
+	private Decimal sumPrice(AggregateResult rpc) {
+		Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + '');
+		system.debug(rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount'));
+		Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1;
+		Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1;
+		Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1;
+		Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1;
+		Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1;
+		Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1;
+		Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1;
+		Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1;
+		Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1;
+		system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' +
+					 rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD')
+					 + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--');
+		return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other;
+	}
+	
+	private static Decimal sumPrice1(AggregateResult rpc) {
+		Decimal SumPrice = Decimal.valueOf(rpc.get('SumPrice') + '');
+		Decimal sales_discount = Decimal.valueOf((rpc.get('sales_discount') == null ? 0 : rpc.get('sales_discount')) + '') * -1;
+		Decimal contract_target = Decimal.valueOf((rpc.get('contract_target') == null ? 0 : rpc.get('contract_target')) + '') * -1;
+		Decimal loaner_repair = Decimal.valueOf((rpc.get('loaner_repair') == null ? 0 : rpc.get('loaner_repair')) + '') * -1;
+		Decimal long_term_insurance = Decimal.valueOf((rpc.get('long_term_insurance') == null ? 0 : rpc.get('long_term_insurance')) + '') * -1;
+		Decimal set_discount = Decimal.valueOf((rpc.get('set_discount') == null ? 0 : rpc.get('set_discount')) + '') * -1;
+		Decimal sercince = Decimal.valueOf((rpc.get('sercince') == null ? 0 : rpc.get('sercince')) + '') * -1;
+		Decimal long_term_insuranceMD = Decimal.valueOf((rpc.get('long_term_insuranceMD') == null ? 0 : rpc.get('long_term_insuranceMD')) + '') * -1;
+		Decimal delivery = Decimal.valueOf((rpc.get('delivery') == null ? 0 : rpc.get('delivery')) + '') * -1;
+		Decimal other = Decimal.valueOf((rpc.get('other') == null ? 0 : rpc.get('other')) + '') * -1;
+		system.debug(rpc.get('SumPrice') + '--' + rpc.get('sales_discount') + '--' + rpc.get('contract_target') + '--' +
+					 rpc.get('loaner_repair') + '--' + rpc.get('long_term_insurance') + '--' + rpc.get('set_discount') + '--' + rpc.get('long_term_insuranceMD')
+					 + '--' + rpc.get('delivery') + '--' + rpc.get('other') + '--');
+		return SumPrice + sales_discount + contract_target + loaner_repair + long_term_insurance + sercince + set_discount + long_term_insuranceMD + delivery + other;
+	}
 	
 	
 	//搴熷純涓�=========20161024==============//
-		public void ShowLTYRepair() {
-			system.debug('ShowLTYRepair=====Start');
-			lastFriYearsPriceSum = 0;
-			lastSecYearsPriceSum = 0;
-			//
-			List<Maintenance_Contract_Estimate__c> McecList = new List<Maintenance_Contract_Estimate__c>();
-			McecList = [select
-						Last_Year_Repair_Sum__c,
-						Year_Before_Last_Year_Re_Sum__c,
-						Last_Two_Year_Repair_sum__c,
-						Process_Status__c,    //鎶ヤ环鐘舵��
-						Repair_Sum_Compute_Date__c
-						from
-						Maintenance_Contract_Estimate__c
-						where
-						id = : targetEstimateId
-			];
-			Maintenance_Contract_Estimate__c McecEle = new Maintenance_Contract_Estimate__c();
-			if (McecList.size() > 0) {
-				McecEle = McecList[0];
-				Date ComputeD = McecEle.Repair_Sum_Compute_Date__c == null ? Date.today() : McecEle.Repair_Sum_Compute_Date__c;
-				String DateString1 = ComputeD + '';
-				String DateString2 = ComputeD.addYears(-2).addDays(1) + '';
-				alertString = '闆嗚▓瀵捐薄鏈熼枔锛�' + DateString1.substring(0, 10) + '~' + DateString2.substring(0, 10) + '';
-				alertString2 = '鍘诲勾淇悊瀹熺妇鍚堣▓锛�' + McecEle.Last_Year_Repair_Sum__c + ' RMB ';
-				alertString3 = '鍓嶅勾淇悊瀹熺妇鍚堣▓锛�' + McecEle.Year_Before_Last_Year_Re_Sum__c + ' RMB';
-			} else {
-				alertString = '娌℃湁鏈夋晥鐨勭淮淇悎鍚屾姤浠�';
-			}
+	public void ShowLTYRepair() {
+		system.debug('ShowLTYRepair=====Start');
+		lastFriYearsPriceSum = 0;
+		lastSecYearsPriceSum = 0;
+		//
+		List<Maintenance_Contract_Estimate__c> McecList = new List<Maintenance_Contract_Estimate__c>();
+		McecList = [select
+					Last_Year_Repair_Sum__c,
+					Year_Before_Last_Year_Re_Sum__c,
+					Last_Two_Year_Repair_sum__c,
+					Process_Status__c,        //鎶ヤ环鐘舵��
+					Repair_Sum_Compute_Date__c
+					from
+					Maintenance_Contract_Estimate__c
+					where
+					id = :targetEstimateId
+		];
+		Maintenance_Contract_Estimate__c McecEle = new Maintenance_Contract_Estimate__c();
+		if (McecList.size() > 0) {
+			McecEle = McecList[0];
+			Date ComputeD = McecEle.Repair_Sum_Compute_Date__c == null ? Date.today() : McecEle.Repair_Sum_Compute_Date__c;
+			String DateString1 = ComputeD + '';
+			String DateString2 = ComputeD.addYears(-2).addDays(1) + '';
+			alertString = '闆嗚▓瀵捐薄鏈熼枔锛�' + DateString1.substring(0, 10) + '~' + DateString2.substring(0, 10) + '';
+			alertString2 = '鍘诲勾淇悊瀹熺妇鍚堣▓锛�' + McecEle.Last_Year_Repair_Sum__c + ' RMB ';
+			alertString3 = '鍓嶅勾淇悊瀹熺妇鍚堣▓锛�' + McecEle.Year_Before_Last_Year_Re_Sum__c + ' RMB';
+		} else {
+			alertString = '娌℃湁鏈夋晥鐨勭淮淇悎鍚屾姤浠�';
 		}
+	}
 	/**
 	 * 鎵嬪嫊銇у晢鍝侀伕鎶炲緦銇儶銉曘儸銉冦偡銉�
 	 **/
-		public void refreshProductData() {
-			System.debug('1535.......................杩涘叆refreshProductData鏂规硶');
-			System.debug('1536.......................杩涘叆refreshProductData鏂规硶');
-			for (Integer i = 0; i < checkedAssets.size(); i++) {
-				if (i == productIdx) {
-					AssetInfo ai = checkedAssets[i];
-					if (ai.mcae.Product_Manual__c == null) {
-						ai.mcae.Estimate_List_Price__c = null;
-						// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
-						ai.CheckRows = true;
-						// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
-						System.debug('1540--');
-					} else {
-						List<Product2> prd = [select Id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c, Name,
-											  ProductURF__c, ProductURF__r.URFLimitSerial__c, ProductURF__r.UFR_MaxRepairCount__c, ProductURF__r.UFR_Maintenance_Price_Month__c
-											  from Product2 where Id = : ai.mcae.Product_Manual__c];
-						ai.mcae.EquipmentGuaranteeFlgTxt__c = prd[0].EquipmentGuaranteeFlg__c;
-						ai.etGFlg = prd[0].EquipmentGuaranteeFlg__c;
-						//add by rentx 2020-11-12 LJPH-BV93RZ start
-						ai.proName = prd[0].Name;
-						//add by rentx 2020-11-12 LJPH-BV93RZ end
-						// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
-						ai.CheckRows = false;
-						// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
-						// 闄愭淇℃伅 gzw 20210316 start
-						if (String.isBlank(prd[0].ProductURF__c)) {
-							ai.mcae.Product_Manual__c.addError(prd[0].Name + ' 涓嶆槸闄愭浜у搧锛岃閲嶆柊閫夋嫨!');
-							return;
-						}
-						ai.mcae.Estimate_List_Price__c = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
-						//ai.mcae.Maintenance_Price_YearTXT__c = ai.mcae.Estimate_List_Price__c * 12;
-						ai.orgPrice = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c;
-						ai.uFRPrice = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c;
-						ai.uFRSerial = prd[0].ProductURF__r.URFLimitSerial__c;
-						ai.uFRRepairCount = prd[0].ProductURF__r.UFR_MaxRepairCount__c;
-						// 闄愭淇℃伅 gzw 20210316 end
+	public void refreshProductData() {
+		System.debug('1535.......................杩涘叆refreshProductData鏂规硶');
+		System.debug('1536.......................杩涘叆refreshProductData鏂规硶');
+		for (Integer i = 0; i < checkedAssets.size(); i++) {
+			if (i == productIdx) {
+				AssetInfo ai = checkedAssets[i];
+				if (ai.mcae.Product_Manual__c == null) {
+					ai.mcae.Estimate_List_Price__c = null;
+					// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
+					ai.CheckRows = true;
+					// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
+					System.debug('1540--');
+				} else {
+					List<Product2> prd = [select Id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c, Name,
+										  ProductURF__c, ProductURF__r.URFLimitSerial__c, ProductURF__r.UFR_MaxRepairCount__c, ProductURF__r.UFR_Maintenance_Price_Month__c
+										  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+										  , ProductURF__r.Maintenance_Price_Year_URF__c, ProductURF__r.Maintenance_Price_Year_URF_Max__c
+										  //XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+										  from Product2 where Id = :ai.mcae.Product_Manual__c];
+					ai.mcae.EquipmentGuaranteeFlgTxt__c = prd[0].EquipmentGuaranteeFlg__c;
+					ai.etGFlg = prd[0].EquipmentGuaranteeFlg__c;
+					//add by rentx 2020-11-12 LJPH-BV93RZ start
+					ai.proName = prd[0].Name;
+					//add by rentx 2020-11-12 LJPH-BV93RZ end
+					// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
+					ai.CheckRows = false;
+					// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
+					// 闄愭淇℃伅 gzw 20210316 start
+					if (String.isBlank(prd[0].ProductURF__c)) {
+						ai.mcae.Product_Manual__c.addError(prd[0].Name + ' 涓嶆槸闄愭浜у搧锛岃閲嶆柊閫夋嫨!');
+						return;
 					}
+					ai.mcae.Estimate_List_Price__c = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c * isNewPriceAdj;
+					//ai.mcae.Maintenance_Price_YearTXT__c = ai.mcae.Estimate_List_Price__c * 12;
+					ai.orgPrice = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c;
+					ai.uFRPrice = prd[0].ProductURF__r.UFR_Maintenance_Price_Month__c;
+					ai.uFRSerial = prd[0].ProductURF__r.URFLimitSerial__c;
+					ai.uFRRepairCount = prd[0].ProductURF__r.UFR_MaxRepairCount__c;
+					// 闄愭淇℃伅 gzw 20210316 end
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+					ai.uFRMaxPrice = prd[0].ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+					ai.uFRMinPrice = prd[0].ProductURF__r.Maintenance_Price_Year_URF__c;
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 				}
 			}
-			// HWAG-BA73ZP
-			//contractStartDateChange();
 		}
+		// HWAG-BA73ZP
+		//contractStartDateChange();
+	}
 	
 	/**
 	 * 閬告姙娓堛伩锛忔湭閬告姙瑁藉搧銇疆銇嶆彌銇�
 	 */
-		public PageReference exchangeAsset() {
-			System.debug('exchangeAsset start');
-			Date systemToday = System.today();
-			List<AssetInfo> tmpChecked = new List<AssetInfo>();
-			List<AssetInfo> tmpNewRows = new List<AssetInfo>();
-			List<AssetInfo> tmpUnChecked = new List<AssetInfo>();
-			// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
-			// List<Data> datatemp = new List<Data>();
-			// datatemp = getChartData();
-			// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
-			for (AssetInfo ass : this.checkedAssets) {
-				if (ass.isManual) {
-					tmpNewRows.add(ass);
-				} else if (ass.rec_checkBox_c) {
-					tmpChecked.add(ass);
-				} else {
-					ass.mcae = null;
-					tmpUnChecked.add(ass);
-					totalRecords++;
-				}
+	public PageReference exchangeAsset() {
+		System.debug('exchangeAsset start');
+		Date systemToday = System.today();
+		List<AssetInfo> tmpChecked = new List<AssetInfo>();
+		List<AssetInfo> tmpNewRows = new List<AssetInfo>();
+		List<AssetInfo> tmpUnChecked = new List<AssetInfo>();
+		// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
+		// List<Data> datatemp = new List<Data>();
+		// datatemp = getChartData();
+		// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
+		for (AssetInfo ass : this.checkedAssets) {
+			if (ass.isManual) {
+				tmpNewRows.add(ass);
+			} else if (ass.rec_checkBox_c) {
+				tmpChecked.add(ass);
+			} else {
+				ass.mcae = null;
+				tmpUnChecked.add(ass);
+				totalRecords++;
 			}
-			for (AssetInfo ass : this.unCheckedAssets) {
-				Boolean isNew = false;
-				// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-				boolean isCheck = true;
-				// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
-				// Decimal listPrice = ass.rec.Maintenance_Price_Month__c;
-				Decimal listPrice = ass.rec.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
-				if (ass.rec_checkBox_c) {
-					//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckedAssets ' ));
-					// xudan 20160110 鏂板搧鍒ゆ柇銇撱亾瑕併倝銇亜銆乧ontractStartDateChange銇屻倓銈�
+		}
+		for (AssetInfo ass : this.unCheckedAssets) {
+			Boolean isNew = false;
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+			boolean isCheck = true;
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk End
+			// Decimal listPrice = ass.rec.Maintenance_Price_Month__c;
+			Decimal listPrice = ass.rec.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220510 start
+			Decimal MaxPrice = ass.rec.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+			Decimal MinPrice = ass.rec.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220510 end
+			if (ass.rec_checkBox_c) {
+				//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'unCheckedAssets ' ));
+				// xudan 20160110 鏂板搧鍒ゆ柇銇撱亾瑕併倝銇亜銆乧ontractStartDateChange銇屻倓銈�
 	//                if (systemToday.addMonths(-6) < ass.rec.InstallDate) {
 	//                if (estimate.Contract_Esti_Start_Date__c.addMonths(isNewAddMonth) < ass.rec.InstallDate) {
 	//                Date createdDate = estimate.CreatedDate == null ? systemToday : estimate.CreatedDate.date();
@@ -1816,77 +1848,81 @@
 	//                    isNew = true;
 	//                    listPrice = ass.rec.Maintenance_Price_Month__c * isNewPriceAdj;
 	//                }
-					Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c(
-						isNew__c = isNew,
-						// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-						Check_Object__c = isCheck,
-						// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
-						Estimate_List_Price__c = listPrice,
-						EquipmentGuaranteeFlgTxt__c = ass.rec.EquipmentGuaranteeFlg__c
-						);
-					ass.mcae = mcae;
-					// 璁$畻涓婁笅绾胯皟鏁存瘮渚�
-					// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
-					if (!getPageDisabled()) {
-						// 鍙栧綋鍓嶆湀绗竴澶�
-						Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
-						mcae.LastMContract_Price__c = ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? mcae.LastMContract_Price__c : ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
-						if (ass.rec.CurrentContract_F__r.First_Estimate_Date__c != null && ass.rec.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
-							mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c;
-						} else {
-							mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c;
-						}
-						// if(String.isNotBlank(String.valueOf(mcae.Asset_Consumption_rate__c))){
-						//     for (Data da : datatemp) {
-						//         if (String.isBlank(String.valueOf(da.rate_Lower)) &&  mcae.Asset_Consumption_rate__c < da.rate_Upper) {
-						//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-						//         }else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) {
-						//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-						//         }else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower
-						//                 && mcae.Asset_Consumption_rate__c < da.rate_Upper) {
-						//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
-						//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
-						//             continue;
-						//         }
-						//     }
-						// }
+				Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c(
+					isNew__c = isNew,
+					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+					Check_Object__c = isCheck,
+					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
+					Estimate_List_Price__c = listPrice,
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+					Adjustment_Upper_price__c = MaxPrice,
+					Adjustment_Lower_price__c = MinPrice,
+					//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+					EquipmentGuaranteeFlgTxt__c = ass.rec.EquipmentGuaranteeFlg__c
+					);
+				ass.mcae = mcae;
+				// 璁$畻涓婁笅绾胯皟鏁存瘮渚�
+				// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw start
+				if (!getPageDisabled()) {
+					// 鍙栧綋鍓嶆湀绗竴澶�
+					Date mon1stDate = Date.newInstance(Date.today().year(), Date.today().month(), 1);
+					mcae.LastMContract_Price__c = ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c == null ? mcae.LastMContract_Price__c : ass.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
+					if (ass.rec.CurrentContract_F__r.First_Estimate_Date__c != null && ass.rec.CurrentContract_F__r.Estimate_Contract_endDate__c > mon1stDate) {
+						mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.First_contract_usage_Rate__c;
+					} else {
+						mcae.Asset_Consumption_rate__c = ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c == null ? mcae.Asset_Consumption_rate__c : ass.rec.CurrentContract_F__r.Contract_Consumption_rate__c;
 					}
-					// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
-	
-	
-	
-					tmpChecked.add(ass);
-					totalRecords--;
-				} else {
-					ass.mcae = null;
-					tmpUnChecked.add(ass);
+					// if(String.isNotBlank(String.valueOf(mcae.Asset_Consumption_rate__c))){
+					//     for (Data da : datatemp) {
+					//         if (String.isBlank(String.valueOf(da.rate_Lower)) &&  mcae.Asset_Consumption_rate__c < da.rate_Upper) {
+					//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
+					//         }else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower && String.isBlank(String.valueOf(da.rate_Upper))) {
+					//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
+					//         }else if (mcae.Asset_Consumption_rate__c >= da.rate_Lower
+					//                 && mcae.Asset_Consumption_rate__c < da.rate_Upper) {
+					//             mcae.Adjustment_ratio_Lower__c = da.price_Lower;
+					//             mcae.Adjustment_ratio_Upper__c = da.price_Upper;
+					//             continue;
+					//         }
+					//     }
+					// }
 				}
-			}
+				// 闄愭鍚堝悓涓嶉渶瑕佷笂涓嬮檺 20210315 gzw end
 	
-			this.checkedAssets = new List<AssetInfo>();
-			for (AssetInfo ass : tmpChecked) {
-				ass.lineNo = this.checkedAssets.size();
-				this.checkedAssets.add(ass);
-			}
-			for (AssetInfo ass : tmpNewRows) {
-				ass.lineNo = this.checkedAssets.size();
-				this.checkedAssets.add(ass);
-			}
-			this.unCheckedAssets = new List<AssetInfo>();
-			this.unCheckedAssets.addAll(tmpUnChecked);
 	
-			totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
-			this.setPageRecord();
 	
-			//listCut(unCheckedAssets);
-			// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
-			//contractStartDateChange();
-			return null;
+				tmpChecked.add(ass);
+				totalRecords--;
+			} else {
+				ass.mcae = null;
+				tmpUnChecked.add(ass);
+			}
 		}
+	
+		this.checkedAssets = new List<AssetInfo>();
+		for (AssetInfo ass : tmpChecked) {
+			ass.lineNo = this.checkedAssets.size();
+			this.checkedAssets.add(ass);
+		}
+		for (AssetInfo ass : tmpNewRows) {
+			ass.lineNo = this.checkedAssets.size();
+			this.checkedAssets.add(ass);
+		}
+		this.unCheckedAssets = new List<AssetInfo>();
+		this.unCheckedAssets.addAll(tmpUnChecked);
+	
+		totalPage = (totalRecords / selctRecordNum) + (Math.mod(totalRecords, selctRecordNum) > 0 ? 1 : 0);
+		this.setPageRecord();
+	
+		//listCut(unCheckedAssets);
+		// 鏍规嵁鍚堝悓寮�濮嬫棩閲嶆柊璁$畻缁翠慨鍚堝悓浠锋牸
+		//contractStartDateChange();
+		return null;
+	}
 	
 	// 鍚堝悓寮�濮嬫棩鍙樻洿锛岄噸鏂拌绠楁柊鍝�
 	// 鍚堝悓寮�濮嬫棩鍙樻洿锛屼笉璁$畻鏂板搧锛岃澶囦笂鐨勬柊鍝佸彧鐪嬫姤浠锋椂鐐圭殑鐘舵�� 娉ㄩ噴 BY GZW 20200325
@@ -1982,1312 +2018,1347 @@
 	/**
 	 * 淇濆瓨銉°偨銉冦儔
 	 */
-		public PageReference save() {
-			System.debug('save start');
-			//add by rentx 2020-11-13 LJPH-BV93RZ start
-			if (estimate.Contract_Range__c == null) {
-				System.debug('save start00');
-				this.estimate.Contract_Range__c.addError('蹇呴』杈撳叆鍚堝悓鏈堟暟!');
-				return null;
-			}
-			//add by rentx 2020-11-13 LJPH-BV93RZ end
-			System.debug('save start1');
-			Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId();
-			estimate.recordtypeid = vmMaintenance_Contract;
-			if (changedSubmitPrice) {
-				priceChangeReset();
-				return null;
-			}
-			System.debug('save start2');
-			if (syncEstimate(false, false)) {
-				ComputeLTYRepair();
-				//return null;
-				return new PageReference('/' + this.targetEstimateId + '/e?completion=5');
-			}
-			System.debug('save start3');
+	public PageReference save() {
+		System.debug('save start');
+		//add by rentx 2020-11-13 LJPH-BV93RZ start
+		if (estimate.Contract_Range__c == null) {
+			System.debug('save start00');
+			this.estimate.Contract_Range__c.addError('蹇呴』杈撳叆鍚堝悓鏈堟暟!');
 			return null;
 		}
+		//add by rentx 2020-11-13 LJPH-BV93RZ end
+		System.debug('save start1');
+		Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId();
+		estimate.recordtypeid = vmMaintenance_Contract;
+		if (changedSubmitPrice) {
+			priceChangeReset();
+			return null;
+		}
+		System.debug('save start2');
+		if (syncEstimate(false, false)) {
+			ComputeLTYRepair();
+			//return null;
+			return new PageReference('/' + this.targetEstimateId + '/e?completion=5');
+		}
+		System.debug('save start3');
+		return null;
+	}
 	
 	/**
 	 * 鍗板埛銉°偨銉冦儔銆乨ecide鍓嶃伅淇濇湁瑷倷銆乨ecide寰屻伅鍚堝悓閰嶇疆
 	 */
-		public void print() {
-			System.debug('print start');
-			this.printAsset = false;
-			this.printContract = false;
-			this.printTripartite = false;
-			this.printAgent = false;
-			this.estimate.PrintDate__c = Date.today();
-			//SelectAssetEstimateURFController.ComputeLTYRepair(targetEstimateId);
-			if (this.estimate.Quote_Date__c == null) {
-				this.estimate.Quote_Date__c = Date.today();
-			}
-	
-	
-	
-			if (this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c) {
-				ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '涓嶈兘鍚屾椂閫変腑涓夋柟鍗忚鍜屼唬鐞嗗晢鍚堝悓锛�'));
-			} else
-	
-	
-			// 淇濆瓨銉溿偪銉炽仹銇嶃仾銇勫牬鍚堛�佸嵃鍒枫儨銈裤兂銇儠銉┿偘銇伩淇濆瓨
-			if (this.getSaveBtnDisabled()) {
-				if (savePrintFlg()) {
-					// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 start
-					/*if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) {
-						// 鎵撳嵃鍖婚櫌鍚堝悓閰嶇疆
-						this.printContract = true;
-					   } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){
-						//鎵撳嵃涓夋柟鍚堝悓
-						this.printTripartite = true;
-					   } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){
-						//鎵撳嵃缁忛攢鍟嗗悎鍚�
-						this.printAgent = true;
-					   }else{
-						// 鎵撳嵃淇濇湁瑷倷
-						this.printAsset = true;
-					   }*/
-					// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 end
-					// 2018/10/26 HWAG-B5C88S start 閫夋嫨涓夋柟鎵撳嵃涓夋柟锛屽惁鍒檇ecide鍓嶆墦鍗颁繚鏈夎澶囷紝decide鍚庢牴鎹姤浠峰璞℃墦鍗板尰闄㈡垨缁忛攢鍟嗗悎鍚�
-					if (this.estimate.Print_Tripartite__c ) {
-						//鎵撳嵃涓夋柟鍚堝悓
-						this.printTripartite = true;
-					} else if (!this.estimate.Estimation_Decision__c) {
-						this.printAsset = true;
-	
-					} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('鍖婚櫌')) {
-						this.printContract = true;
-	
-					} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('缁忛攢鍟�')) {
-						this.printAgent = true;
-					}
-					// 2018/10/26 HWAG-B5C88S end
-				}
-			}
-			// 淇濆瓨銉溿偪銉炽仹銇嶃倠鍫村悎銆佸嵃鍒枫儨銈裤兂銇叏閮ㄤ繚瀛�
-			else {
-				if (syncEstimate(false, false)) {
-					// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 start
-					/*
-					   if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) {
-						// 鎵撳嵃鍖婚櫌鍚堝悓閰嶇疆
-						this.printContract = true;
-					   } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){
-						//鎵撳嵃涓夋柟鍚堝悓
-						this.printTripartite = true;
-					   } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){
-						//鎵撳嵃缁忛攢鍟嗗悎鍚�
-						this.printAgent = true;
-					   }else{
-						// 鎵撳嵃淇濇湁瑷倷
-						this.printAsset = true;
-					   }
-					 */
-					// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 end
-					// 2018/10/26 HWAG-B5C88S start 閫夋嫨涓夋柟鎵撳嵃涓夋柟锛屽惁鍒檇ecide鍓嶆墦鍗颁繚鏈夎澶囷紝decide鍚庢牴鎹姤浠峰璞℃墦鍗板尰闄㈡垨缁忛攢鍟嗗悎鍚�
-					if (this.estimate.Print_Tripartite__c ) {
-						//鎵撳嵃涓夋柟鍚堝悓
-						this.printTripartite = true;
-					} else if (!this.estimate.Estimation_Decision__c) {
-						this.printAsset = true;
-	
-					} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('鍖婚櫌')) {
-						this.printContract = true;
-	
-					} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('缁忛攢鍟�')) {
-						this.printAgent = true;
-					}
-					// 2018/10/26 HWAG-B5C88S end
-				}
-			}
-			//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '鍚堝悓'+this.printContract +'涓夋柟'+this.printTripartite+'淇濇湁'+this.printAsset+'缁忛攢鍟嗗悎鍚�'+this.printAgent));
+	public void print() {
+		System.debug('print start');
+		this.printAsset = false;
+		this.printContract = false;
+		this.printTripartite = false;
+		this.printAgent = false;
+		this.estimate.PrintDate__c = Date.today();
+		//SelectAssetEstimateURFController.ComputeLTYRepair(targetEstimateId);
+		if (this.estimate.Quote_Date__c == null) {
+			this.estimate.Quote_Date__c = Date.today();
 		}
+	
+	
+	
+		if (this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c) {
+			ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '涓嶈兘鍚屾椂閫変腑涓夋柟鍗忚鍜屼唬鐞嗗晢鍚堝悓锛�'));
+		} else
+	
+	
+		// 淇濆瓨銉溿偪銉炽仹銇嶃仾銇勫牬鍚堛�佸嵃鍒枫儨銈裤兂銇儠銉┿偘銇伩淇濆瓨
+		if (this.getSaveBtnDisabled()) {
+			if (savePrintFlg()) {
+				// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 start
+				/*if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) {
+					// 鎵撳嵃鍖婚櫌鍚堝悓閰嶇疆
+					this.printContract = true;
+				   } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){
+					//鎵撳嵃涓夋柟鍚堝悓
+					this.printTripartite = true;
+				   } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){
+					//鎵撳嵃缁忛攢鍟嗗悎鍚�
+					this.printAgent = true;
+				   }else{
+					// 鎵撳嵃淇濇湁瑷倷
+					this.printAsset = true;
+				   }*/
+				// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 end
+				// 2018/10/26 HWAG-B5C88S start 閫夋嫨涓夋柟鎵撳嵃涓夋柟锛屽惁鍒檇ecide鍓嶆墦鍗颁繚鏈夎澶囷紝decide鍚庢牴鎹姤浠峰璞℃墦鍗板尰闄㈡垨缁忛攢鍟嗗悎鍚�
+				if (this.estimate.Print_Tripartite__c ) {
+					//鎵撳嵃涓夋柟鍚堝悓
+					this.printTripartite = true;
+				} else if (!this.estimate.Estimation_Decision__c) {
+					this.printAsset = true;
+	
+				} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('鍖婚櫌')) {
+					this.printContract = true;
+	
+				} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('缁忛攢鍟�')) {
+					this.printAgent = true;
+				}
+				// 2018/10/26 HWAG-B5C88S end
+			}
+		}
+		// 淇濆瓨銉溿偪銉炽仹銇嶃倠鍫村悎銆佸嵃鍒枫儨銈裤兂銇叏閮ㄤ繚瀛�
+		else {
+			if (syncEstimate(false, false)) {
+				// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 start
+				/*
+				   if (this.estimate.Print_Contract__c && !this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c) {
+					// 鎵撳嵃鍖婚櫌鍚堝悓閰嶇疆
+					this.printContract = true;
+				   } else if(this.estimate.Print_Tripartite__c && !this.estimate.Print_Agent__c){
+					//鎵撳嵃涓夋柟鍚堝悓
+					this.printTripartite = true;
+				   } else if(!this.estimate.Print_Tripartite__c && this.estimate.Print_Agent__c){
+					//鎵撳嵃缁忛攢鍟嗗悎鍚�
+					this.printAgent = true;
+				   }else{
+					// 鎵撳嵃淇濇湁瑷倷
+					this.printAsset = true;
+				   }
+				 */
+				// 2018/10/26 HWAG-B5C88S 鍘熸潵鎵撳嵃閫昏緫 end
+				// 2018/10/26 HWAG-B5C88S start 閫夋嫨涓夋柟鎵撳嵃涓夋柟锛屽惁鍒檇ecide鍓嶆墦鍗颁繚鏈夎澶囷紝decide鍚庢牴鎹姤浠峰璞℃墦鍗板尰闄㈡垨缁忛攢鍟嗗悎鍚�
+				if (this.estimate.Print_Tripartite__c ) {
+					//鎵撳嵃涓夋柟鍚堝悓
+					this.printTripartite = true;
+				} else if (!this.estimate.Estimation_Decision__c) {
+					this.printAsset = true;
+	
+				} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('鍖婚櫌')) {
+					this.printContract = true;
+	
+				} else if (this.estimate.Estimate_Target__c != null && this.estimate.Estimate_Target__c.equals('缁忛攢鍟�')) {
+					this.printAgent = true;
+				}
+				// 2018/10/26 HWAG-B5C88S end
+			}
+		}
+		//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '鍚堝悓'+this.printContract +'涓夋柟'+this.printTripartite+'淇濇湁'+this.printAsset+'缁忛攢鍟嗗悎鍚�'+this.printAgent));
+	}
 	
 	/**
 	 * 鐢宠珛銉°偨銉冦儔銆佹渶寰屽繀銇氭壙瑾嶃儣銉偦銈广伀杓夈仜銈�
 	 */
-		public PageReference approvalProcess() {
+	public PageReference approvalProcess() {
 	
 	
-			Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId();
-			estimate.recordtypeid = vmMaintenance_Contract;
+		Id vmMaintenance_Contract = Schema.SObjectType.Maintenance_Contract_Estimate__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Quote').getRecordTypeId();
+		estimate.recordtypeid = vmMaintenance_Contract;
 	
-			// Date systemToday = System.today();
-			// // 鍒涘缓鏃�/鎻愪氦鏃�
-			// Date createdDate = systemToday;
-			// // 鍒涘缓鏃�6涓湀
-			// Date isNewAfter = createdDate.addMonths(-isNewAddMonth);
-			// // 鍚堝悓寮�濮嬮瀹氭棩
-			// Date contractEstiDate = estimate.Contract_Esti_Start_Date__c == null ? systemToday : estimate.Contract_Esti_Start_Date__c;
-			//  for (AssetInfo info : checkedAssets) {
-			//       // 鍚堝悓棰勫畾寮�濮嬫棩 澶т簬鎻愪氦鏃�6涓湀锛岄兘涓嶇畻鏂板搧 20200218 Gzw 鏈嶅姟鍚堝悓瀵瑰簲
-			//       //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'contractEstiDate '+ contractEstiDate +'isNewAfter '+isNewAfter));
-			//       if (contractEstiDate >= isNewAfter) {
-			//           if (!info.isManual) {
-			//               info.mcae.isNew__c = false;
-			//               info.mcae.Estimate_List_Price__c = info.orgPrice;
-			//            } else if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) {
-			//               info.mcae.isNew__c = false;
-			//               info.mcae.Estimate_List_Price__c = info.orgPrice;
-			//            }
-			//        }
-			// }
+		// Date systemToday = System.today();
+		// // 鍒涘缓鏃�/鎻愪氦鏃�
+		// Date createdDate = systemToday;
+		// // 鍒涘缓鏃�6涓湀
+		// Date isNewAfter = createdDate.addMonths(-isNewAddMonth);
+		// // 鍚堝悓寮�濮嬮瀹氭棩
+		// Date contractEstiDate = estimate.Contract_Esti_Start_Date__c == null ? systemToday : estimate.Contract_Esti_Start_Date__c;
+		//  for (AssetInfo info : checkedAssets) {
+		//       // 鍚堝悓棰勫畾寮�濮嬫棩 澶т簬鎻愪氦鏃�6涓湀锛岄兘涓嶇畻鏂板搧 20200218 Gzw 鏈嶅姟鍚堝悓瀵瑰簲
+		//       //ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'contractEstiDate '+ contractEstiDate +'isNewAfter '+isNewAfter));
+		//       if (contractEstiDate >= isNewAfter) {
+		//           if (!info.isManual) {
+		//               info.mcae.isNew__c = false;
+		//               info.mcae.Estimate_List_Price__c = info.orgPrice;
+		//            } else if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) {
+		//               info.mcae.isNew__c = false;
+		//               info.mcae.Estimate_List_Price__c = info.orgPrice;
+		//            }
+		//        }
+		// }
 	
-			if (changedSubmitPrice) {
-				priceChangeReset();
-				return null;
-			}
-	
-	
-			if (syncEstimate(true, false)) {
-				Savepoint sp = Database.setSavepoint();
-				// 鎵胯獚銉椼儹銈汇偣銇級銇涖倠
-				try {
-	
-					// 宸插~鍐欑敵璇风姸鎬�
-					this.estimate.ApprovalProcess_Status__c = '宸插~鍐欏畬骞剁敵璇�';
-					ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
-					// 鎵胯獚銉椼儹銈汇偣
-					Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
-					psr.setObjectId(this.estimate.id);
-					Approval.ProcessResult submitResult = Approval.process(psr);
-					ComputeLTYRepair();
-					if (changedAfterPrint) {
-						return new PageReference('/' + this.targetEstimateId);
-						//return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
-					} else {
-						return new PageReference('/' + this.targetEstimateId);
-						//return new PageReference('/' + this.targetEstimateId + '/e?completion=2');
-					}
-				} catch (Exception ex) {
-					System.debug('=====Exception:' + ex.getMessage());
-					Database.rollback(sp);
-					this.estimate.ApprovalProcess_Status__c = null;
-					ApexPages.addMessages(ex);
-				}
-			}
+		if (changedSubmitPrice) {
+			priceChangeReset();
 			return null;
 		}
+	
+	
+		if (syncEstimate(true, false)) {
+			Savepoint sp = Database.setSavepoint();
+			// 鎵胯獚銉椼儹銈汇偣銇級銇涖倠
+			try {
+	
+				// 宸插~鍐欑敵璇风姸鎬�
+				this.estimate.ApprovalProcess_Status__c = '宸插~鍐欏畬骞剁敵璇�';
+				ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
+				// 鎵胯獚銉椼儹銈汇偣
+				Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
+				psr.setObjectId(this.estimate.id);
+				Approval.ProcessResult submitResult = Approval.process(psr);
+				ComputeLTYRepair();
+				if (changedAfterPrint) {
+					return new PageReference('/' + this.targetEstimateId);
+					//return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
+				} else {
+					return new PageReference('/' + this.targetEstimateId);
+					//return new PageReference('/' + this.targetEstimateId + '/e?completion=2');
+				}
+			} catch (Exception ex) {
+				System.debug('=====Exception:' + ex.getMessage());
+				Database.rollback(sp);
+				this.estimate.ApprovalProcess_Status__c = null;
+				ApexPages.addMessages(ex);
+			}
+		}
+		return null;
+	}
 	
 	/**
 	 * 姹哄畾鍙栨秷銉°偨銉冦儔
 	 */
-		public PageReference undecide() {
+	public PageReference undecide() {
 	
 	
-			System.debug('undecide start');
-			this.estimate.Estimation_Decision__c = false;
-			this.estimate.Print_Contract__c = false;
+		System.debug('undecide start');
+		this.estimate.Estimation_Decision__c = false;
+		this.estimate.Print_Contract__c = false;
 	
-			//娓呯┖鎶ヤ环鎵瑰噯鏃堕棿
-			this.estimate.Quotation_Determines_Time__c = null;
+		//娓呯┖鎶ヤ环鎵瑰噯鏃堕棿
+		this.estimate.Quotation_Determines_Time__c = null;
 	
-			try {
-				ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
-				return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
-			} catch (Exception ex) {
-				ApexPages.addMessages(ex);
-			}
-			return null;
+		try {
+			ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
+			return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
+		} catch (Exception ex) {
+			ApexPages.addMessages(ex);
 		}
+		return null;
+	}
 	
 	/**
 	 * 姹哄畾銉°偨銉冦儔
 	 */
-		public PageReference decide() {
-			System.debug('decide start');
-			inDicideFlag = true;
-			// TODO check decide 璧勬牸
-			Savepoint sp = Database.setSavepoint();
+	public PageReference decide() {
+		System.debug('decide start');
+		inDicideFlag = true;
+		// TODO check decide 璧勬牸
+		Savepoint sp = Database.setSavepoint();
 	
-			if (syncEstimate(false, true)) {
-				//鎻愪氦 鎶ヤ环鍐冲畾鏃ユ湡
-				this.estimate.Quotation_Determines_Time__c = date.today();
+		if (syncEstimate(false, true)) {
+			//鎻愪氦 鎶ヤ环鍐冲畾鏃ユ湡
+			this.estimate.Quotation_Determines_Time__c = date.today();
 	
-				if (changedAfterPrint) {
-					return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
-				} else {
-					return new PageReference('/' + this.targetEstimateId + '/e?completion=3');
-				}
+			if (changedAfterPrint) {
+				return new PageReference('/' + this.targetEstimateId + '/e?completion=1');
+			} else {
+				return new PageReference('/' + this.targetEstimateId + '/e?completion=3');
 			}
-	
-			return null;
 		}
 	
-		public PageReference decideCancle() {
+		return null;
+	}
 	
-			return new PageReference('/' + this.targetEstimateId + '/e?completion=4');
+	public PageReference decideCancle() {
 	
-		}
+		return new PageReference('/' + this.targetEstimateId + '/e?completion=4');
+	
+	}
 	
 	/**
 	 * Process鐢ㄣ伄銉︺兗銈躲兗鎯呭牨銈掋偦銉冦儓銆佹柊瑕忚绌嶃倐銈婃檪鐢�
 	 */
 	
-		private void setApprovalManager() {
-			User loginUser = [SELECT Id, Name, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = : UserInfo.getUserId()];
-			// 瑕佹敞鎰� SaveMaintenanceByCopyController 銇� copy銇畊rl銇倐銆佷笅瑷樸伄闋呯洰銈傘偗銉偄
-			this.estimate.JingliApprovalManager__c = loginUser.JingliApprovalManager__c == null ? loginUser.Id : loginUser.JingliApprovalManager__c;
-			this.estimate.BuchangApprovalManager__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c;
-			this.estimate.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c;
-			this.estimate.Service_Contract_Staff__c = this.contract.Service_Contract_Staff__c;
-			this.estimate.TKZongjianApprovalManager__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c;
-		}
+	private void setApprovalManager() {
+		User loginUser = [SELECT Id, Name, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, TongkuoZongjian__c FROM User WHERE Id = :UserInfo.getUserId()];
+		// 瑕佹敞鎰� SaveMaintenanceByCopyController 銇� copy銇畊rl銇倐銆佷笅瑷樸伄闋呯洰銈傘偗銉偄
+		this.estimate.JingliApprovalManager__c = loginUser.JingliApprovalManager__c == null ? loginUser.Id : loginUser.JingliApprovalManager__c;
+		this.estimate.BuchangApprovalManager__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c;
+		this.estimate.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c;
+		this.estimate.Service_Contract_Staff__c = this.contract.Service_Contract_Staff__c;
+		this.estimate.TKZongjianApprovalManager__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c;
+	}
 	
 	/**
 	 * 鍗板埛銉曘儵銈般伄銇裤倰淇濆瓨
 	 */
-		@TestVisible
-		private Boolean savePrintFlg() {
-			try {
-				Maintenance_Contract_Estimate__c mce = new Maintenance_Contract_Estimate__c();
-				mce.Id = this.targetEstimateId;
-				//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
-				mce.Print_Simplify__c = this.estimate.Print_Simplify__c;
-				//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
-				mce.Print_ListPrice__c = this.estimate.Print_ListPrice__c;
-				mce.Print_RepairPrice__c = this.estimate.Print_RepairPrice__c;
-				mce.Print_SumPrice__c = this.estimate.Print_SumPrice__c;
-				mce.Print_DiscountPercentage__c = this.estimate.Print_DiscountPercentage__c;
-				mce.Print_DiscountPrice__c = this.estimate.Print_DiscountPrice__c;
-				mce.Print_MaintePrice__c = this.estimate.Print_MaintePrice__c;
-				mce.Print_Contract__c = this.estimate.Print_Contract__c;
+	@TestVisible
+	private Boolean savePrintFlg() {
+		try {
+			Maintenance_Contract_Estimate__c mce = new Maintenance_Contract_Estimate__c();
+			mce.Id = this.targetEstimateId;
+			//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
+			mce.Print_Simplify__c = this.estimate.Print_Simplify__c;
+			//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
+			mce.Print_ListPrice__c = this.estimate.Print_ListPrice__c;
+			mce.Print_RepairPrice__c = this.estimate.Print_RepairPrice__c;
+			mce.Print_SumPrice__c = this.estimate.Print_SumPrice__c;
+			mce.Print_DiscountPercentage__c = this.estimate.Print_DiscountPercentage__c;
+			mce.Print_DiscountPrice__c = this.estimate.Print_DiscountPrice__c;
+			mce.Print_MaintePrice__c = this.estimate.Print_MaintePrice__c;
+			mce.Print_Contract__c = this.estimate.Print_Contract__c;
 	
-				ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {mce});
-				return true;
-			} catch (Exception ex) {
-				ApexPages.addMessages(ex);
-			}
-			return false;
+			ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {mce});
+			return true;
+		} catch (Exception ex) {
+			ApexPages.addMessages(ex);
 		}
+		return false;
+	}
 	
 	/**
 	 * 鐢婚潰銇у叆鍔涖儑銉笺偪check, save, 瑕仺鍚屾湡 銇儹銈搞儍銈�
 	 */
 	// TODO xudan 銉併偋銉冦偗杩藉姞銆乧ls銇倐鍚堣▓閲戦銈掕▓绠椼�乧ls銇悎瑷堥噾椤嶃仺鐢婚潰銇嬨倝js銇悎瑷堥噾椤嶃倰姣旇純
 	// 鐣般仾銈嬪牬鍚堛�佷繚瀛樺畬浜嗐仐銇熴倝warning銈掑嚭銇�
-		public Boolean syncEstimate(boolean isApproval, boolean isDecide) {
-			System.debug('syncEstimate start');
-			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'syncEstimates--tart'));
-			Boolean hasDatabaseError = false;
-			Savepoint sp = Database.setSavepoint();
+	public Boolean syncEstimate(boolean isApproval, boolean isDecide) {
+		System.debug('syncEstimate start');
+		// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'syncEstimates--tart'));
+		Boolean hasDatabaseError = false;
+		Savepoint sp = Database.setSavepoint();
 	
-			//bug淇
-			//鎻愪氦 鎶ヤ环鍐冲畾鏃ユ湡
-			// this.estimate.Quotation_Determines_Time__c = date.today();
+		//bug淇
+		//鎻愪氦 鎶ヤ环鍐冲畾鏃ユ湡
+		// this.estimate.Quotation_Determines_Time__c = date.today();
 	
-			try {
-				System.debug('checkValidate start----------------');
-				// 淇濆瓨闄愭绯诲垪鏈�澶ф鏁� 20210309
-				Map<String, Integer> limitSerialMap = new Map<String, Integer>();
-				if (!checkValidate()) {
-					return false;
-				}
-				System.debug('checkValidate end----------------');
-				if (checkChangedAfterPrint()) {
-					if (isDecide) {
-						// 銇俱仛 Approval
-						isApproval = true;
-						isDecide = false;
-					}
-				}
-				// 楠岃瘉 寮�濮嬫棩鏈燂紝鏈�鏃╁厑璁稿埗瀹氭棩涔嬪墠鍗婂勾
-				Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date();
-				createdDate = createdDate.addMonths(isNewAddMonth);
-				// if (estimate.Contract_Start_Date__c < createdDate) {
-				//     this.estimate.Contract_Start_Date__c.addError('鍚堝悓寮�濮嬫棩鏈�鏃╁厑璁歌拷婧埗瀹氭棩涔嬪墠鍗婂勾');
-				//     return false;
-				// }
-				// 楠岃瘉 鐢ㄦ埛绫诲瀷锛屽繀濉�
-				if (String.isBlank(estimate.EndUserType__c) ) {
-					this.estimate.EndUserType__c.addError('璇烽�夋嫨鐢ㄦ埛绫诲瀷锛�');
-					return false;
-				}
-				// 楠岃瘉 鐢宠鎶ヤ环閲戦锛岄渶瑕佸ぇ浜�0
-				if (estimate.Request_quotation_Amount__c <= 0 || estimate.Request_quotation_Amount__c == null) {
-					this.estimate.Request_quotation_Amount__c.addError('鐢宠鎶ヤ环閲戦蹇呴渶澶т簬0');
-					return false;
-				}
-				// fxk 鏀规姤閿欎綅缃� 2021銆�9銆�9 Star
-				if (estimate.Request_quotation_Amount__c > estimate.GuidePrice_Up__c || estimate.Request_quotation_Amount__c < estimate.GuidePrice_Down__c) {
-					if (!(this.estimate.mainTalksTime__c > 0)) {
-						this.estimate.mainTalksTime__c.addError('涓昏璋堝垽娆℃暟蹇呭~');
-						return false;
-					}
-	
-					if (this.estimate.talksStartDate__c == null) {
-						this.estimate.talksStartDate__c.addError('璋堝垽鐨勫紑濮嬫椂闂村繀濉�');
-						return false;
-					}
-	
-					if (String.isBlank(this.estimate.Discount_reason__c)) {
-						this.estimate.Discount_reason__c.addError('浠锋牸鐢宠鐞嗙敱蹇呭~');
-						return false;
-					}
-					if (String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) {
-						this.estimate.Improve_ConsumptionRate_Idea__c.addError('娑堣垂鐜囨敼鍠勬柟妗堝繀濉�');
-						return false;
-					}
-				}
-				// fxk 鏀规姤閿欎綅缃� 2021銆�9銆�9 End
-				//>>>
-				if (isApproval || isDecide) {
-					Boolean hasError = false;
-					if (this.estimate.Maintenance_Price__c <= 0) {
-						this.estimate.Maintenance_Price__c.addError('鍚堝悓浠锋牸蹇呴渶澶т簬0');
-						hasError = true;
-					}
-	
-					// for (AssetInfo input : this.checkedAssets) {
-					//     if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-					//         if (String.isBlank(input.mcae.Check_Result__c)) {
-					//             input.mcae.Check_Result__c.addError('鐐规缁撴灉蹇呭~');
-					//             hasError = true;
-					//         }
-					//     }
-					// }
-					// if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Discount_reason__c)) {
-					//     this.estimate.Discount_reason__c.addError('鍑忎环鐢宠鐞嗙敱蹇呭~');
-					//     hasError = true;
-					// }
-					// if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) {
-					//     this.estimate.Improve_ConsumptionRate_Idea__c.addError('娑堣垂鐜囨敼鍠勬柟妗堝繀濉�');
-					//     hasError = true;
-					// }
-					if (hasError) {
-						return false;
-					}
-				}
-				System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉1锛� ' + '涓昏璋堝垽娆℃暟 ' + estimate.mainTalksTime__c + '璋堝垽鐨勫紑濮嬫椂闂� ' + estimate.talksStartDate__c + '浠锋牸鐢宠鐞嗙敱 ' + estimate.Discount_reason__c + '娑堣垂鐜囨敼鍠勬柟妗� ' + estimate.Improve_ConsumptionRate_Idea__c);
-				System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉2锛� ' + '鐢宠鎶ヤ环閲戦 ' + estimate.Request_quotation_Amount__c);
-				System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉3锛� ' + '鏈�浣庝环 ' + estimate.GuidePrice_Down__c + '鏈�楂樹环 ' + estimate.GuidePrice_Up__c);
-				if (isDecide && getDecideBtnDisabled()) {
-					ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '宸茬粡鏄疍ecide杩囩殑鍚堝悓 鎴� 涓嶆槸鎵瑰噯鐨勬姤浠凤紝涓嶈兘Decide'));
-					return false;
-				}
-	
-	
-				// 杩藉姞涓婃湡鍚堝悓淇℃伅 start
-				// List<lastMContract> lastMContractRes = getlastMContract(this.checkedAssets);
-	
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-				List<lastMContract> lastMContractRes;
+		try {
+			System.debug('checkValidate start----------------');
+			// 淇濆瓨闄愭绯诲垪鏈�澶ф鏁� 20210309
+			Map<String, Integer> limitSerialMap = new Map<String, Integer>();
+			if (!checkValidate()) {
+				return false;
+			}
+			System.debug('checkValidate end----------------');
+			if (checkChangedAfterPrint()) {
 				if (isDecide) {
-					system.debug('鎵ц浜唗cm isDecide');
-					lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Start_Date__c);
+					// 銇俱仛 Approval
+					isApproval = true;
+					isDecide = false;
+				}
+			}
+			// 楠岃瘉 寮�濮嬫棩鏈燂紝鏈�鏃╁厑璁稿埗瀹氭棩涔嬪墠鍗婂勾
+			Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date();
+			createdDate = createdDate.addMonths(isNewAddMonth);
+			// if (estimate.Contract_Start_Date__c < createdDate) {
+			//     this.estimate.Contract_Start_Date__c.addError('鍚堝悓寮�濮嬫棩鏈�鏃╁厑璁歌拷婧埗瀹氭棩涔嬪墠鍗婂勾');
+			//     return false;
+			// }
+			// 楠岃瘉 鐢ㄦ埛绫诲瀷锛屽繀濉�
+			if (String.isBlank(estimate.EndUserType__c) ) {
+				this.estimate.EndUserType__c.addError('璇烽�夋嫨鐢ㄦ埛绫诲瀷锛�');
+				return false;
+			}
+			// 楠岃瘉 鐢宠鎶ヤ环閲戦锛岄渶瑕佸ぇ浜�0
+			if (estimate.Request_quotation_Amount__c <= 0 || estimate.Request_quotation_Amount__c == null) {
+				this.estimate.Request_quotation_Amount__c.addError('鐢宠鎶ヤ环閲戦蹇呴渶澶т簬0');
+				return false;
+			}
+			// fxk 鏀规姤閿欎綅缃� 2021銆�9銆�9 Star
+			if (estimate.Request_quotation_Amount__c > estimate.GuidePrice_Up__c || estimate.Request_quotation_Amount__c < estimate.GuidePrice_Down__c) {
+				if (!(this.estimate.mainTalksTime__c > 0)) {
+					this.estimate.mainTalksTime__c.addError('涓昏璋堝垽娆℃暟蹇呭~');
+					return false;
+				}
+	
+				if (this.estimate.talksStartDate__c == null) {
+					this.estimate.talksStartDate__c.addError('璋堝垽鐨勫紑濮嬫椂闂村繀濉�');
+					return false;
+				}
+	
+				if (String.isBlank(this.estimate.Discount_reason__c)) {
+					this.estimate.Discount_reason__c.addError('浠锋牸鐢宠鐞嗙敱蹇呭~');
+					return false;
+				}
+				if (String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) {
+					this.estimate.Improve_ConsumptionRate_Idea__c.addError('娑堣垂鐜囨敼鍠勬柟妗堝繀濉�');
+					return false;
+				}
+			}
+			// fxk 鏀规姤閿欎綅缃� 2021銆�9銆�9 End
+			//>>>
+			if (isApproval || isDecide) {
+				Boolean hasError = false;
+				if (this.estimate.Maintenance_Price__c <= 0) {
+					this.estimate.Maintenance_Price__c.addError('鍚堝悓浠锋牸蹇呴渶澶т簬0');
+					hasError = true;
+				}
+	
+				// for (AssetInfo input : this.checkedAssets) {
+				//     if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+				//         if (String.isBlank(input.mcae.Check_Result__c)) {
+				//             input.mcae.Check_Result__c.addError('鐐规缁撴灉蹇呭~');
+				//             hasError = true;
+				//         }
+				//     }
+				// }
+				// if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Discount_reason__c)) {
+				//     this.estimate.Discount_reason__c.addError('鍑忎环鐢宠鐞嗙敱蹇呭~');
+				//     hasError = true;
+				// }
+				// if (this.estimate.Discount_Price__c > 0 && String.isBlank(this.estimate.Improve_ConsumptionRate_Idea__c)) {
+				//     this.estimate.Improve_ConsumptionRate_Idea__c.addError('娑堣垂鐜囨敼鍠勬柟妗堝繀濉�');
+				//     hasError = true;
+				// }
+				if (hasError) {
+					return false;
+				}
+			}
+			System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉1锛� ' + '涓昏璋堝垽娆℃暟 ' + estimate.mainTalksTime__c + '璋堝垽鐨勫紑濮嬫椂闂� ' + estimate.talksStartDate__c + '浠锋牸鐢宠鐞嗙敱 ' + estimate.Discount_reason__c + '娑堣垂鐜囨敼鍠勬柟妗� ' + estimate.Improve_ConsumptionRate_Idea__c);
+			System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉2锛� ' + '鐢宠鎶ヤ环閲戦 ' + estimate.Request_quotation_Amount__c);
+			System.debug('楠岃瘉瑙勫垯鏉′欢楠岃瘉3锛� ' + '鏈�浣庝环 ' + estimate.GuidePrice_Down__c + '鏈�楂樹环 ' + estimate.GuidePrice_Up__c);
+			if (isDecide && getDecideBtnDisabled()) {
+				ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '宸茬粡鏄疍ecide杩囩殑鍚堝悓 鎴� 涓嶆槸鎵瑰噯鐨勬姤浠凤紝涓嶈兘Decide'));
+				return false;
+			}
+	
+	
+			// 杩藉姞涓婃湡鍚堝悓淇℃伅 start
+			// List<lastMContract> lastMContractRes = getlastMContract(this.checkedAssets);
+	
+			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+			List<lastMContract> lastMContractRes;
+			if (isDecide) {
+				system.debug('鎵ц浜唗cm isDecide');
+				lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Start_Date__c);
+			} else{
+				system.debug('鎵ц浜唗cm NODecide');
+				lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Esti_Start_Date__c);
+			}
+			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+	
+			
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+			Integer Contract_year = 0;
+			System.debug('this.estimate.Contract_Range__c1:' + this.estimate.Contract_Range__c);
+			if(this.estimate.Contract_Range__c != null){
+				if(this.estimate.Contract_Range__c <= 12){
+					Contract_year = 1;
 				} else{
-					system.debug('鎵ц浜唗cm NODecide');
-					lastMContractRes = getlastMContract(this.checkedAssets,this.estimate.Contract_Esti_Start_Date__c);
-				}
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+					Decimal year = this.estimate.Contract_Range__c / 12;
+					Contract_year = (Integer)year.round(System.RoundingMode.CEILING);
+				}				
+			}
+			System.debug('Contract_year1:' + Contract_year);
+			// 闄愭姹囨�讳俊鎭�
+			Map<String, Decimal> uFRSerialMap = getLimitSerialData(Contract_year);
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'lastMContractRes +++++锛�' + lastMContractRes));
+			// if (true) {
+			//     return false;
+			// }
 	
-				// 闄愭姹囨�讳俊鎭�
-				Map<String, Decimal> uFRSerialMap = getLimitSerialData();
-				// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'lastMContractRes +++++锛�' + lastMContractRes));
-				// if (true) {
-				//     return false;
-				// }
+			this.estimate.LastMContract1__c = lastMContractRes[0].contractId;
+			this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo;
+			this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count;
 	
-				this.estimate.LastMContract1__c = lastMContractRes[0].contractId;
-				this.estimate.LastMContract1_NO__c = lastMContractRes[0].contractNo;
-				this.estimate.LastMContract1_ConCount__c = lastMContractRes[0].count;
+			this.estimate.LastMContract2__c = lastMContractRes[1].contractId;
+			this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo;
+			this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count;
 	
-				this.estimate.LastMContract2__c = lastMContractRes[1].contractId;
-				this.estimate.LastMContract2_NO__c = lastMContractRes[1].contractNo;
-				this.estimate.LastMContract2_ConCount__c = lastMContractRes[1].count;
+			this.estimate.LastMContract3__c = lastMContractRes[2].contractId;
+			this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo;
+			this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count;
 	
-				this.estimate.LastMContract3__c = lastMContractRes[2].contractId;
-				this.estimate.LastMContract3_NO__c = lastMContractRes[2].contractNo;
-				this.estimate.LastMContract3_ConCount__c = lastMContractRes[2].count;
+			this.estimate.LastMContract4__c = lastMContractRes[3].contractId;
+			this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo;
+			this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count;
 	
-				this.estimate.LastMContract4__c = lastMContractRes[3].contractId;
-				this.estimate.LastMContract4_NO__c = lastMContractRes[3].contractNo;
-				this.estimate.LastMContract4_ConCount__c = lastMContractRes[3].count;
+			this.estimate.LastMContract5__c = lastMContractRes[4].contractId;
+			this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo;
+			this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count;
 	
-				this.estimate.LastMContract5__c = lastMContractRes[4].contractId;
-				this.estimate.LastMContract5_NO__c = lastMContractRes[4].contractNo;
-				this.estimate.LastMContract5_ConCount__c = lastMContractRes[4].count;
-	
-				// 杩藉姞涓婃湡鍚堝悓淇℃伅 end
+			// 杩藉姞涓婃湡鍚堝悓淇℃伅 end
 	
 	
 	
-				// 鍚屾湡鍑︾悊
-				// 鈶犵淮淇悎鍚屻伀鏃㈠瓨銇繚鏈夎澶囥倰鍓婇櫎
-				// 鈶′繚瀛樸仐銇熺淮淇悎鍚屾姤浠枫伄淇濇湁璁惧銈掔淮淇悎鍚屻伀銈炽償銉�(Asset__c銇岃ō瀹氥仌銇︺亜銈嬨儑銉笺偪銇犮亼)
-				// 鈶粬銇淮淇悎鍚屾姤浠枫伄鍚屾湡銉曘儵銈般倰澶栥仚
-				// 鈶g淮淇悎鍚屻伄 Estimate_Trial_Money__c銆丆ontract_Amount__c, Service_contract_target_number__c 銈掓洿鏂�
-				this.estimate.IsSyncing__c = true;
-				if (isDecide) {
-					// 20200923 Gzw bug 淇敼
-					//娓呯┖鎶ヤ环鎵瑰噯鏃堕棿
-					this.estimate.Quotation_Determines_Time__c = Date.today();
-					this.estimate.Estimation_Decision__c = true;
-				}
-				// TODO validate
+			// 鍚屾湡鍑︾悊
+			// 鈶犵淮淇悎鍚屻伀鏃㈠瓨銇繚鏈夎澶囥倰鍓婇櫎
+			// 鈶′繚瀛樸仐銇熺淮淇悎鍚屾姤浠枫伄淇濇湁璁惧銈掔淮淇悎鍚屻伀銈炽償銉�(Asset__c銇岃ō瀹氥仌銇︺亜銈嬨儑銉笺偪銇犮亼)
+			// 鈶粬銇淮淇悎鍚屾姤浠枫伄鍚屾湡銉曘儵銈般倰澶栥仚
+			// 鈶g淮淇悎鍚屻伄 Estimate_Trial_Money__c銆丆ontract_Amount__c, Service_contract_target_number__c 銈掓洿鏂�
+			this.estimate.IsSyncing__c = true;
+			if (isDecide) {
+				// 20200923 Gzw bug 淇敼
+				//娓呯┖鎶ヤ环鎵瑰噯鏃堕棿
+				this.estimate.Quotation_Determines_Time__c = Date.today();
+				this.estimate.Estimation_Decision__c = true;
+			}
+			// TODO validate
 	
-				// TODO validate check鏂板搧銉併偋銉冦偗锛堢磵鍝佹棩銇у垽鏂級
+			// TODO validate check鏂板搧銉併偋銉冦偗锛堢磵鍝佹棩銇у垽鏂級
 	
-				// save
-				// 鈶� start
-				for (List<Maintenance_Contract_Estimate__c> otherEstimates : [select Id from Maintenance_Contract_Estimate__c where Id <> :this.estimate.Id
-																			  and Maintenance_Contract__c = :this.contract.Id
-																											and IsSyncing__c = true]) {
-					for (Maintenance_Contract_Estimate__c other : otherEstimates) {
-						other.IsSyncing__c = false;
-						if (isDecide) {
-							other.Estimation_Decision__c = false;
-						}
+			// save
+			// 鈶� start
+			for (List<Maintenance_Contract_Estimate__c> otherEstimates : [select Id from Maintenance_Contract_Estimate__c where Id <> :this.estimate.Id
+																		  and Maintenance_Contract__c = :this.contract.Id
+																										and IsSyncing__c = true]) {
+				for (Maintenance_Contract_Estimate__c other : otherEstimates) {
+					other.IsSyncing__c = false;
+					if (isDecide) {
+						other.Estimation_Decision__c = false;
 					}
-					ControllerUtil.updateMaintenance_Contract_Estimate(otherEstimates);
 				}
+				ControllerUtil.updateMaintenance_Contract_Estimate(otherEstimates);
+			}
 	
-				// 鍚堝悓缁撴潫棰勫畾鏃ャ倰绠楀嚭
-				Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c));
-				// 20151217 xudan 缁翠慨鍚堝悓鎶ヤ环SH-RS-JS0046560-01 鏈熼棿鏄剧ず闂
-				// 銇嗐倠銇嗗勾鐗规畩瀵惧繙
-				if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29
-					&& t.month() == 2) {
-					t = t;
-				} else {
-					t = t.addDays(-1);
-				}
-				this.estimate.Contract_Esti_End_Date__c = t;
-				// decide 鏃讹紝璺宠繃璧嬪�� JZHG-BRH5MU 20200715 start
-				if (!isDecide) {
-					this.estimate.New_Contract_Type_TxT__c = typeresult;
-				}
-				// decide 鏃讹紝璺宠繃璧嬪�� JZHG-BRH5MU 20200715 end
-				// 鍚堝悓寮�濮嬫棩銈掔粨鏉熸棩
-				if (this.estimate.Contract_Start_Date__c == null) {
-					this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
-				}
-				t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c));
+			// 鍚堝悓缁撴潫棰勫畾鏃ャ倰绠楀嚭
+			Date t = this.estimate.Contract_Esti_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c));
+			// 20151217 xudan 缁翠慨鍚堝悓鎶ヤ环SH-RS-JS0046560-01 鏈熼棿鏄剧ず闂
+			// 銇嗐倠銇嗗勾鐗规畩瀵惧繙
+			if (this.estimate.Contract_Esti_Start_Date__c.month() == 2 && this.estimate.Contract_Esti_Start_Date__c.day() == 29
+				&& t.month() == 2) {
+				t = t;
+			} else {
 				t = t.addDays(-1);
-				this.estimate.Contract_End_Date__c = t;
-				// 浣嶇疆璋冩暣 鍦�1951 line
-				// Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date();
-				// 锛撱兌鏈堣秴閬庛仐銇︺亜銈嬪牬鍚堛伀銇�丏ecide銇с亶銇亜
-				//if (createdDate.addMonths(3) <= System.today()) {
-				//    this.estimate.addError('宸茶秴杩�3涓湀锛岃鍏堟洿鏂版姤浠枫��');
-				//    return false;
-				//}
-				// 缁翠慨鍚堝悓鎶ヤ环
-				// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, 'this.targetEstimateId ++++++ ' + this.targetEstimateId));
-				// if (true) {
-				//     return false;
-				// }
-				if (String.isBlank(this.targetEstimateId)) {
-					newIns = true;
-					this.estimate.Process_Status__c = '鑽夋涓�';
-					// name銇暘鍙枫倰銈汇儍銉�
-					List<Maintenance_Contract_Estimate__c> maxNameRecords = [select Name From Maintenance_Contract_Estimate__c Where Maintenance_Contract__c = : this.contract.Id order by Name desc limit 1];
-					String oppNo;
-					Integer l = 1;
-					if (maxNameRecords.size() > 0) {
-						try {
-							oppNo = maxNameRecords[0].Name;
-							l = Integer.valueOf(oppNo.substring(oppNo.length() - 2)) + 1;
-						} catch (System.TypeException e) {
-							System.debug('maxNameRecords Error: Maintenance_Contract__c.id=' + maxNameRecords[0].id);
-						}
-					} else {
-						System.debug('first Maintenance_Contract_Estimate__c');
+			}
+			this.estimate.Contract_Esti_End_Date__c = t;
+			// decide 鏃讹紝璺宠繃璧嬪�� JZHG-BRH5MU 20200715 start
+			if (!isDecide) {
+				this.estimate.New_Contract_Type_TxT__c = typeresult;
+			}
+			// decide 鏃讹紝璺宠繃璧嬪�� JZHG-BRH5MU 20200715 end
+			// 鍚堝悓寮�濮嬫棩銈掔粨鏉熸棩
+			if (this.estimate.Contract_Start_Date__c == null) {
+				this.estimate.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
+			}
+			t = this.estimate.Contract_Start_Date__c.addMonths(Integer.valueOf(this.estimate.Contract_Range__c));
+			t = t.addDays(-1);
+			this.estimate.Contract_End_Date__c = t;
+			// 浣嶇疆璋冩暣 鍦�1951 line
+			// Date createdDate = this.estimate.CreatedDate == null ? System.today() : this.estimate.CreatedDate.date();
+			// 锛撱兌鏈堣秴閬庛仐銇︺亜銈嬪牬鍚堛伀銇�丏ecide銇с亶銇亜
+			//if (createdDate.addMonths(3) <= System.today()) {
+			//    this.estimate.addError('宸茶秴杩�3涓湀锛岃鍏堟洿鏂版姤浠枫��');
+			//    return false;
+			//}
+			// 缁翠慨鍚堝悓鎶ヤ环
+			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.Error, 'this.targetEstimateId ++++++ ' + this.targetEstimateId));
+			// if (true) {
+			//     return false;
+			// }
+			if (String.isBlank(this.targetEstimateId)) {
+				newIns = true;
+				this.estimate.Process_Status__c = '鑽夋涓�';
+				// name銇暘鍙枫倰銈汇儍銉�
+				List<Maintenance_Contract_Estimate__c> maxNameRecords = [select Name From Maintenance_Contract_Estimate__c Where Maintenance_Contract__c = :this.contract.Id order by Name desc limit 1];
+				String oppNo;
+				Integer l = 1;
+				if (maxNameRecords.size() > 0) {
+					try {
+						oppNo = maxNameRecords[0].Name;
+						l = Integer.valueOf(oppNo.substring(oppNo.length() - 2)) + 1;
+					} catch (System.TypeException e) {
+						System.debug('maxNameRecords Error: Maintenance_Contract__c.id=' + maxNameRecords[0].id);
 					}
-					oppNo = '00' + String.valueof(l);
-					oppNo = oppNo.substring(oppNo.length() - 2);
-					this.estimate.Name = this.contract.Management_Code__c + '-' + oppNo;
-					setApprovalManager();
-					System.debug('Process_Status__c=' + this.estimate.Process_Status__c);
-					insert this.estimate;
-					this.targetEstimateId = this.estimate.Id;
-					setThisEstimate();
 				} else {
-					if (isApproval) {
-						setApprovalManager();
-					}
-					ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
+					System.debug('first Maintenance_Contract_Estimate__c');
 				}
-				// 缁翠慨鍚堝悓鎶ヤ环/淇濇湁璁惧
-				// delete and insert銇欍倠
-				List<Maintenance_Contract_Asset_Estimate__c> insertTarget = new List<Maintenance_Contract_Asset_Estimate__c>();
-				// 鏄惁浣跨敤棣栨鎶ヤ环鏃ユ洿鏂�
-				// 闇�瑕佹敞鎰忓鎶ヤ环鎻愪氦鏃�+3涓湀涓庡悎鍚岀粨鏉熸棩杩涜姣旇緝
-				// 1锛夋姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈燂紝灏忎簬鍚堝悓缁撴潫鏃ユ椂锛屼互鍚堝悓缁撴潫鏃ヤ綔涓烘姤浠锋湁鏁堟湡鐨勭粨鏉熸棩
-				// 2锛夋姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈燂紝澶т簬鍚堝悓缁撴潫鏃ユ椂锛屾姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈熶綔涓烘姤浠锋湁鏁堟湡鐨勭粨鏉熸棩
-				//
-				//
-				//  鍥犱负鏈堝垵璁$畻娑堣垂鐜囷紝鎵�浠ョ粨鏉熸棩鍦ㄤ笂鏈堟垨浠ュ墠锛屽彲浠ュ彇鍒板畬鏁存秷璐圭巼锛屽惁鍒欎繚瀛橀娆℃姤浠锋棩
-				Date toDate = Date.today();
-				Date mon1stDate = Date.newInstance(toDate.year(), toDate.month(), 1);
-				// list 淇敼 map
-				Map<id, Maintenance_Contract__c> mcList = new Map<id, Maintenance_Contract__c>();
-				for (AssetInfo input : this.checkedAssets) {
-					if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-						//Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c();
-						input.mcae.Id = null;               // insert銇仧銈�
-						// 鍚屻仒銇牬鍚堣ō瀹氥仐銇亜
-						if (input.mcae.Maintenance_Contract_Estimate__c != this.targetEstimateId) {
-							// 瑕鏇淬仹銇嶃仾銇勫彲鑳芥�с亴銇傘倠銇熴倎銆佽ō瀹氥仚銈嬨仺銇嶃偍銉┿兗銇仾銈嬨亴銆併偍銉┿兗銇仾銈夈仾銇勩倛銇嗐伀浠栥伄銉偢銉冦偗銈掑伐澶仐銇︺亸銇犮仌銇勩��
-							input.mcae.Maintenance_Contract_Estimate__c = this.targetEstimateId;
-						}
-						input.mcae.Maintenance_Price_Month__c = input.rec.Maintenance_Price_Month__c;
-						// 鐥呴櫌銇墍灞炪仚銈嬩繚鏈夎ō鍌�
+				oppNo = '00' + String.valueof(l);
+				oppNo = oppNo.substring(oppNo.length() - 2);
+				this.estimate.Name = this.contract.Management_Code__c + '-' + oppNo;
+				setApprovalManager();
+				System.debug('Process_Status__c=' + this.estimate.Process_Status__c);
+				insert this.estimate;
+				this.targetEstimateId = this.estimate.Id;
+				setThisEstimate();
+			} else {
+				if (isApproval) {
+					setApprovalManager();
+				}
+				ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
+			}
+			// 缁翠慨鍚堝悓鎶ヤ环/淇濇湁璁惧
+			// delete and insert銇欍倠
+			List<Maintenance_Contract_Asset_Estimate__c> insertTarget = new List<Maintenance_Contract_Asset_Estimate__c>();
+			// 鏄惁浣跨敤棣栨鎶ヤ环鏃ユ洿鏂�
+			// 闇�瑕佹敞鎰忓鎶ヤ环鎻愪氦鏃�+3涓湀涓庡悎鍚岀粨鏉熸棩杩涜姣旇緝
+			// 1锛夋姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈燂紝灏忎簬鍚堝悓缁撴潫鏃ユ椂锛屼互鍚堝悓缁撴潫鏃ヤ綔涓烘姤浠锋湁鏁堟湡鐨勭粨鏉熸棩
+			// 2锛夋姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈燂紝澶т簬鍚堝悓缁撴潫鏃ユ椂锛屾姤浠锋彁浜ゆ棩+3涓湀鐨勬棩鏈熶綔涓烘姤浠锋湁鏁堟湡鐨勭粨鏉熸棩
+			//
+			//
+			//  鍥犱负鏈堝垵璁$畻娑堣垂鐜囷紝鎵�浠ョ粨鏉熸棩鍦ㄤ笂鏈堟垨浠ュ墠锛屽彲浠ュ彇鍒板畬鏁存秷璐圭巼锛屽惁鍒欎繚瀛橀娆℃姤浠锋棩
+			Date toDate = Date.today();
+			Date mon1stDate = Date.newInstance(toDate.year(), toDate.month(), 1);
+			// list 淇敼 map
+			Map<id, Maintenance_Contract__c> mcList = new Map<id, Maintenance_Contract__c>();
+			for (AssetInfo input : this.checkedAssets) {
+				if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+					//Maintenance_Contract_Asset_Estimate__c mcae = new Maintenance_Contract_Asset_Estimate__c();
+					input.mcae.Id = null;                   // insert銇仧銈�
+					// 鍚屻仒銇牬鍚堣ō瀹氥仐銇亜
+					if (input.mcae.Maintenance_Contract_Estimate__c != this.targetEstimateId) {
+						// 瑕鏇淬仹銇嶃仾銇勫彲鑳芥�с亴銇傘倠銇熴倎銆佽ō瀹氥仚銈嬨仺銇嶃偍銉┿兗銇仾銈嬨亴銆併偍銉┿兗銇仾銈夈仾銇勩倛銇嗐伀浠栥伄銉偢銉冦偗銈掑伐澶仐銇︺亸銇犮仌銇勩��
+						input.mcae.Maintenance_Contract_Estimate__c = this.targetEstimateId;
+					}
+					input.mcae.Maintenance_Price_Month__c = input.rec.Maintenance_Price_Month__c;
+					// 鐥呴櫌銇墍灞炪仚銈嬩繚鏈夎ō鍌�
 	
-						if (!input.isManual) {
-							input.mcae.Asset__c = input.rec.Id;
-							input.mcae.Product_Manual__c = null;
-							input.mcae.Estimate_Cost__c = input.mcae.Estimate_Cost__c;
-							input.mcae.LastMContract_Price__c = input.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
-							//input.mcae.Asset_Consumption_rate__c = input.mcae.Asset_Consumption_rate__c;
-						}
-						// 鎻愪氦鏃讹紝鏇存柊 鏄惁浣跨敤涓婁竴鏈熺淮淇悎鍚岄娆℃姤浠锋棩
-						if (isApproval) {
-							Maintenance_Contract__c mctemp = new Maintenance_Contract__c();
-							//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '+++++ ' + ass.rec.CurrentContract_F__r.Contract_End_Date__c + '   ' + mon1stDate));
-							// 鍥犱负鏈堝垵璁$畻娑堣垂鐜囷紝鎵�浠ョ粨鏉熸棩鍦ㄤ笂鏈堟垨浠ュ墠锛屽彲浠ュ彇鍒板畬鏁存秷璐圭巼锛屽惁鍒欎繚瀛橀娆℃姤浠锋棩
-							if (input.rec.CurrentContract_F__r.Contract_End_Date__c >= mon1stDate) {
-								if (input.rec.CurrentContract_F__r.First_Estimate_Date__c == null) {
-									mctemp.Id = input.rec.CurrentContract_F__c;
-									mctemp.First_contract_usage_Rate__c = input.rec.CurrentContract_F__r.Contract_Consumption_rate__c;
-									mctemp.First_Estimate_Date__c = Date.today();
-									mcList.put(mctemp.Id, mctemp);
-									input.mcae.ifHaveleftInPrevious__c = true;
-								}
+					if (!input.isManual) {
+						input.mcae.Asset__c = input.rec.Id;
+						input.mcae.Product_Manual__c = null;
+						input.mcae.Estimate_Cost__c = input.mcae.Estimate_Cost__c;
+						input.mcae.LastMContract_Price__c = input.rec.CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c;
+						//input.mcae.Asset_Consumption_rate__c = input.mcae.Asset_Consumption_rate__c;
+					}
+					// 鎻愪氦鏃讹紝鏇存柊 鏄惁浣跨敤涓婁竴鏈熺淮淇悎鍚岄娆℃姤浠锋棩
+					if (isApproval) {
+						Maintenance_Contract__c mctemp = new Maintenance_Contract__c();
+						//ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , '+++++ ' + ass.rec.CurrentContract_F__r.Contract_End_Date__c + '   ' + mon1stDate));
+						// 鍥犱负鏈堝垵璁$畻娑堣垂鐜囷紝鎵�浠ョ粨鏉熸棩鍦ㄤ笂鏈堟垨浠ュ墠锛屽彲浠ュ彇鍒板畬鏁存秷璐圭巼锛屽惁鍒欎繚瀛橀娆℃姤浠锋棩
+						if (input.rec.CurrentContract_F__r.Contract_End_Date__c >= mon1stDate) {
+							if (input.rec.CurrentContract_F__r.First_Estimate_Date__c == null) {
+								mctemp.Id = input.rec.CurrentContract_F__c;
+								mctemp.First_contract_usage_Rate__c = input.rec.CurrentContract_F__r.Contract_Consumption_rate__c;
+								mctemp.First_Estimate_Date__c = Date.today();
+								mcList.put(mctemp.Id, mctemp);
+								input.mcae.ifHaveleftInPrevious__c = true;
 							}
 						}
-						if (!isDecide) {
-							// 闄愭淇℃伅淇濆瓨
-							input.mcae.URF_Series__c = input.uFRSerial;
-							input.mcae.Series_RepairCount__c = 0;
-							input.mcae.Series_MaxRepairCount__c = uFRSerialMap.get(input.uFRSerial);
-							input.mcae.Asset_RepairCount__c = 0;
-							input.mcae.Asset_MaxRepairCount__c = input.uFRRepairCount;
-	
-	
-							// 闄愭淇℃伅淇濆瓨
-						}
-	
-	
-	
-	
-						// Manual鍟嗗搧
-						if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-							input.mcae.Asset__c = null;
-							//mcae.Product_Manual__c = input.mcae.Product_Manual__c;
-						}
-						//鏂拌鏃讹紝淇濆瓨鏂板悎鍚屽鍝佷繚璇佹彁渚� Decide 鍚�
-						if (!isDecide) {
-							input.mcae.EquipmentGuaranteeFlgTxt__c = input.etGFlg;
-						}
-						// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
-	
-						// 2020/10/30 songxiaoqi start
-						if (input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
-							input.mcae.Last_MContract__c = input.rec.CurrentContract_F__c;
-	
-						}
-						//songxiaoqi end
-	
-	
-						// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 end
-						//mcae.Estimate_List_Price__c = input.mcae.Estimate_List_Price__c;
-						//mcae.IsNew__c = input.mcae.isNew__c;
-						//mcae.Check_Result__c = input.mcae.Check_Result__c;
-						//mcae.Repair_Price__c = input.mcae.Repair_Price__c;
-						//mcae.Comment__c = input.mcae.Comment__c;
-						insertTarget.add(input.mcae);
 					}
-				}
-				// 鏈綋銇繚瀛樸仐銇熺磵鍏ユ鍣ㄣ亴銇傘倢銇板墛闄�
-				List<Maintenance_Contract_Asset_Estimate__c> selectedAsset = [SELECT Id, Name, Maintenance_Contract_Estimate__c, Asset__c, IsNew__c FROM Maintenance_Contract_Asset_Estimate__c WHERE Maintenance_Contract_Estimate__c = : this.targetEstimateId];
-				if (selectedAsset.size() > 0) {
-					ControllerUtil.deleteMaintenance_Contract_Asset_Estimate(selectedAsset);
-				}
-				if (insertTarget.size() > 0) {
-					ControllerUtil.insertMaintenance_Contract_Asset_Estimate(insertTarget);
-				}
+					if (!isDecide) {
+						// 闄愭淇℃伅淇濆瓨
+						input.mcae.URF_Series__c = input.uFRSerial;
+						input.mcae.Series_RepairCount__c = 0;
+						input.mcae.Series_MaxRepairCount__c = uFRSerialMap.get(input.uFRSerial);
+						input.mcae.Asset_RepairCount__c = 0;
+						//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+						input.mcae.Asset_MaxRepairCount__c = input.uFRRepairCount * Contract_year;
+						//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	
-				// 鈶� start
-				for (List<Maintenance_Contract_Asset__c> oldList : [select Id from Maintenance_Contract_Asset__c
-																	where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) {
-					delete oldList;
-				}
-				// 鈶� start
-				{
-					List<Maintenance_Contract_Asset__c> newValue = new List<Maintenance_Contract_Asset__c>();
-					for (Maintenance_Contract_Asset_Estimate__c target : [select Id, Asset__c, Estimate_List_Price__c, Estimate_Cost__c,  IsNew__c, EquipmentGuaranteeFlgTxt__c,
-																		  //add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk start
-																		  Check_Object__c,
-																		  //add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk end
-																		  // Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
-																		  Last_MContract__c
-																		  // Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 eng
-																		  , Last_MContract__r.RecordType_DeveloperName__c
-																		  // LJPH-C9GD34 gzw fix start
-																		  ,Estimate_List_Price_Page__c
-																		  // LJPH-C9GD34 gzw fix end
-																		  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,
-							Maintenance_Contract_Asset_Estimate__c = target.Id,
-							Estimate_List_Price__c = target.Estimate_List_Price__c,
-							//Maintenance_Price_YearTXT__c = target.Maintenance_Price_YearTXT__c,
-							////add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk start
-							Check_Object__c = target.Check_Object__c,
-							//add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk end
-							Estimate_IsNew__c = target.IsNew__c,
-							//EquipmentGuaranteeFlgTxt__c = target.EquipmentGuaranteeFlgTxt__c,
-							// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
-							// LastMContract__c = target.Last_MContract__c
-							// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 end
-							//濡傛灉鏄骞翠繚淇悎鍚�,涓嶆洿鏂颁笂鏈熺淮淇悎鍚屼俊鎭� LJPH-BUU3E3 update by rentx  2020-11-03
-							LastMContract__c = target.Last_MContract__r.RecordType_DeveloperName__c == 'VM_Contract' ? null : target.Last_MContract__c
-							);
-						newValue.add(newVal);
+						// 闄愭淇℃伅淇濆瓨
 					}
-					if (newValue.size() > 0) insert newValue;
-				}
-				// 鈶� start
-				this.contract.Estimation_Id__c = this.targetEstimateId;
-				this.contract.Contract_Esti_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
-				this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
-				this.contract.Contract_Esti_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
-				this.contract.Estimate_Target__c = this.estimate.Estimate_Target__c;
-				this.contract.Dealer__c = this.estimate.Dealer__c;
-				this.contract.NotUse_Oxygenated_Water__c = this.estimate.NotUse_Oxygenated_Water__c;
-				this.contract.Estimate_Trial_Money__c = this.estimate.Estimate_Trial_Money__c;
-				this.contract.Contract_Amount__c = this.estimate.Maintenance_Price__c;
-				// 鐐规鎬绘鏁拌嚜鍔ㄨ祴鍊� gzw fix 20211122 start
-				this.contract.Service_contract_target_number__c = this.estimate.Service_contract_target_number__c;
-				// 鐐规鎬绘鏁拌嚜鍔ㄨ祴鍊� gzw fix 20211122 end
-				this.contract.Contract_department_manual__c = this.estimate.Department__c;
 	
-				// 杩藉姞涓婃湡鍚堝悓淇℃伅 start
-				this.contract.LastMContract1__c = this.estimate.LastMContract1__c;
-				this.contract.LastMContract1_NO__c = this.estimate.LastMContract1_NO__c;
-				this.contract.LastMContract1_ConCount__c =  this.estimate.LastMContract1_ConCount__c;
 	
-				//add by rentx 2021-06-04 缁欏悎鍚�1璧嬪�肩殑鍚屾椂锛岀粰鍘诲勾鍚堝悓璧嬪�� start
-				this.contract.Last_year_service_contract__c = this.estimate.LastMContract1__c;
-				//add by renrx 2021-06-04 缁欏悎鍚�1璧嬪�肩殑鍚屾椂, 缁欏幓骞村悎鍚岃祴鍊� end
 	
-				this.contract.LastMContract2__c =  this.estimate.LastMContract2__c;
-				this.contract.LastMContract2_NO__c = this.estimate.LastMContract2_NO__c;
-				this.contract.LastMContract2_ConCount__c =  this.estimate.LastMContract2_ConCount__c;
 	
-				this.contract.LastMContract3__c =  this.estimate.LastMContract3__c;
-				this.contract.LastMContract3_NO__c = this.estimate.LastMContract3_NO__c;
-				this.contract.LastMContract3_ConCount__c =  this.estimate.LastMContract3_ConCount__c;
-	
-				this.contract.LastMContract4__c =  this.estimate.LastMContract4__c;
-				this.contract.LastMContract4_NO__c = this.estimate.LastMContract4_NO__c;
-				this.contract.LastMContract4_ConCount__c =  this.estimate.LastMContract4_ConCount__c;
-	
-				this.contract.LastMContract5__c =  this.estimate.LastMContract5__c;
-				this.contract.LastMContract5_NO__c = this.estimate.LastMContract5_NO__c;
-				this.contract.LastMContract5_ConCount__c =  this.estimate.LastMContract5_ConCount__c;
-				// 杩藉姞涓婃湡鍚堝悓淇℃伅 end
-	
-				system.debug('娴嬬畻isDecide鐨勭粨鏋淿1::::::::' + isDecide);
-				if (isDecide == true) {
-					system.debug('娴嬬畻isDecide鐨勭粨鏋淿2::::::::' + isDecide);
-	//              this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
-					this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c;
-					this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
-	//              this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
-					this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c;
-					this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c;
-					this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c;
-					this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c;
-					this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c;
-					this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c;
-					// JZHG-BQV3P4 20200624 Gzw add
-					this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c;
-					// JZHG-BQV3P4 20200624 Gzw add
-				}
-				//娣诲姞鐨勯澶栧搴旇繃绋�
-				if (inDicideFlag == true && (this.contract.Contract_Start_Date__c == null || this.contract.Contract_End_Date__c == null)) {
-					system.debug('娴嬬畻inDicideFlag鐨勭粨鏋淿2::::::::' + isDecide);
-	//              this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
-					this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c;
-					this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
-	//              this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
-					this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c;
-					this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c;
-					this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c;
-					this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c;
-					this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c;
-					this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c;
-					// JZHG-BQV3P4 20200624 Gzw add
-					this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c;
-					// JZHG-BQV3P4 20200624 Gzw add
-				}
-				String oldProcessStatus = this.estimate.Process_Status__c;
-				try {
-					if (mcList.size() > 0) {
-						ControllerUtil.updMcList(mcList.values());
+					// Manual鍟嗗搧
+					if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+						input.mcae.Asset__c = null;
+						//mcae.Product_Manual__c = input.mcae.Product_Manual__c;
 					}
-					ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
-					update this.contract;
-				} catch (Exception e) {
-					// TODO 浠婂緦瑜囨暟浠躲伄鍫村悎銇┿亞銇欍倠锛�
-					this.estimate.addError(e);
-					// 涓�閮ㄣ伄鍊ゃ倰鎴汇仚
-					this.estimate.Process_Status__c = oldProcessStatus;
-					hasDatabaseError = true;
-					Database.rollback(sp);
-					ApexPages.addMessages(e);
+					//鏂拌鏃讹紝淇濆瓨鏂板悎鍚屽鍝佷繚璇佹彁渚� Decide 鍚�
+					if (!isDecide) {
+						input.mcae.EquipmentGuaranteeFlgTxt__c = input.etGFlg;
+					}
+					// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
+	
+					// 2020/10/30 songxiaoqi start
+					if (input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
+						input.mcae.Last_MContract__c = input.rec.CurrentContract_F__c;
+	
+					}
+					//songxiaoqi end
+	
+	
+					// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 end
+					//mcae.Estimate_List_Price__c = input.mcae.Estimate_List_Price__c;
+					//mcae.IsNew__c = input.mcae.isNew__c;
+					//mcae.Check_Result__c = input.mcae.Check_Result__c;
+					//mcae.Repair_Price__c = input.mcae.Repair_Price__c;
+					//mcae.Comment__c = input.mcae.Comment__c;
+					insertTarget.add(input.mcae);
 				}
-				if (hasDatabaseError) {
-					System.debug('syncEstimate hasDatabaseError');
-					return false;
-				}
-				if (isApproval) {
-					SelectAssetEstimateURFController.ComputeLTYRepair(targetEstimateId);
-				}
-				// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'syncEstimates--end'));
-				return true;
-			} catch (DMLException ex) {
-				// TODO Insert澶辨晽銇甀D銈掓秷銇欏繀瑕侊紵
-				Database.rollback(sp);
-				ApexPages.addMessages(ex);
-			} catch (Exception ex) {
-				Database.rollback(sp);
-				ApexPages.addMessages(ex);
 			}
-			return false;
+			// 鏈綋銇繚瀛樸仐銇熺磵鍏ユ鍣ㄣ亴銇傘倢銇板墛闄�
+			List<Maintenance_Contract_Asset_Estimate__c> selectedAsset = [SELECT Id, Name, Maintenance_Contract_Estimate__c, Asset__c, IsNew__c FROM Maintenance_Contract_Asset_Estimate__c WHERE Maintenance_Contract_Estimate__c = :this.targetEstimateId];
+			if (selectedAsset.size() > 0) {
+				ControllerUtil.deleteMaintenance_Contract_Asset_Estimate(selectedAsset);
+			}
+			if (insertTarget.size() > 0) {
+				ControllerUtil.insertMaintenance_Contract_Asset_Estimate(insertTarget);
+			}
+	
+			// 鈶� start
+			for (List<Maintenance_Contract_Asset__c> oldList : [select Id from Maintenance_Contract_Asset__c
+																where Maintenance_Contract__c = :this.estimate.Maintenance_Contract__c]) {
+				delete oldList;
+			}
+			// 鈶� start
+			{
+				List<Maintenance_Contract_Asset__c> newValue = new List<Maintenance_Contract_Asset__c>();
+				for (Maintenance_Contract_Asset_Estimate__c target : [select Id, Asset__c, Estimate_List_Price__c, Estimate_Cost__c,  IsNew__c, EquipmentGuaranteeFlgTxt__c,
+																	  //add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk start
+																	  Check_Object__c,
+																	  //add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk end
+																	  // Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
+																	  Last_MContract__c
+																	  // Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 eng
+																	  , Last_MContract__r.RecordType_DeveloperName__c
+																	  // LJPH-C9GD34 gzw fix start
+																	  ,Estimate_List_Price_Page__c
+																	  // LJPH-C9GD34 gzw fix end
+																	  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,
+						Maintenance_Contract_Asset_Estimate__c = target.Id,
+						Estimate_List_Price__c = target.Estimate_List_Price__c,
+						//Maintenance_Price_YearTXT__c = target.Maintenance_Price_YearTXT__c,
+						////add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk start
+						Check_Object__c = target.Check_Object__c,
+						//add 鐐规鏀瑰杽锛氬悎鍚屼繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄涓庢姤浠蜂繚鏈夎澶囦笅鐨勭偣妫�瀵硅薄鍚屾 2021.6.9 fxk end
+						Estimate_IsNew__c = target.IsNew__c,
+						//EquipmentGuaranteeFlgTxt__c = target.EquipmentGuaranteeFlgTxt__c,
+						// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 start
+						// LastMContract__c = target.Last_MContract__c
+						// Gzw 20200807 浜斾釜鍘诲勾鍚堝悓鐩稿叧锛屾墍浠ユ姤浠蜂骇鍝侊紝鑾峰彇涓婃湡鍚堝悓 end
+						//濡傛灉鏄骞翠繚淇悎鍚�,涓嶆洿鏂颁笂鏈熺淮淇悎鍚屼俊鎭� LJPH-BUU3E3 update by rentx  2020-11-03
+						LastMContract__c = target.Last_MContract__r.RecordType_DeveloperName__c == 'VM_Contract' ? null : target.Last_MContract__c
+						);
+					newValue.add(newVal);
+				}
+				if (newValue.size() > 0) insert newValue;
+			}
+			// 鈶� start
+			this.contract.Estimation_Id__c = this.targetEstimateId;
+			this.contract.Contract_Esti_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
+			this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
+			this.contract.Contract_Esti_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
+			this.contract.Estimate_Target__c = this.estimate.Estimate_Target__c;
+			this.contract.Dealer__c = this.estimate.Dealer__c;
+			this.contract.NotUse_Oxygenated_Water__c = this.estimate.NotUse_Oxygenated_Water__c;
+			this.contract.Estimate_Trial_Money__c = this.estimate.Estimate_Trial_Money__c;
+			this.contract.Contract_Amount__c = this.estimate.Maintenance_Price__c;
+			// 鐐规鎬绘鏁拌嚜鍔ㄨ祴鍊� gzw fix 20211122 start
+			this.contract.Service_contract_target_number__c = this.estimate.Service_contract_target_number__c;
+			// 鐐规鎬绘鏁拌嚜鍔ㄨ祴鍊� gzw fix 20211122 end
+			this.contract.Contract_department_manual__c = this.estimate.Department__c;
+	
+			// 杩藉姞涓婃湡鍚堝悓淇℃伅 start
+			this.contract.LastMContract1__c = this.estimate.LastMContract1__c;
+			this.contract.LastMContract1_NO__c = this.estimate.LastMContract1_NO__c;
+			this.contract.LastMContract1_ConCount__c =  this.estimate.LastMContract1_ConCount__c;
+	
+			//add by rentx 2021-06-04 缁欏悎鍚�1璧嬪�肩殑鍚屾椂锛岀粰鍘诲勾鍚堝悓璧嬪�� start
+			this.contract.Last_year_service_contract__c = this.estimate.LastMContract1__c;
+			//add by renrx 2021-06-04 缁欏悎鍚�1璧嬪�肩殑鍚屾椂, 缁欏幓骞村悎鍚岃祴鍊� end
+	
+			this.contract.LastMContract2__c =  this.estimate.LastMContract2__c;
+			this.contract.LastMContract2_NO__c = this.estimate.LastMContract2_NO__c;
+			this.contract.LastMContract2_ConCount__c =  this.estimate.LastMContract2_ConCount__c;
+	
+			this.contract.LastMContract3__c =  this.estimate.LastMContract3__c;
+			this.contract.LastMContract3_NO__c = this.estimate.LastMContract3_NO__c;
+			this.contract.LastMContract3_ConCount__c =  this.estimate.LastMContract3_ConCount__c;
+	
+			this.contract.LastMContract4__c =  this.estimate.LastMContract4__c;
+			this.contract.LastMContract4_NO__c = this.estimate.LastMContract4_NO__c;
+			this.contract.LastMContract4_ConCount__c =  this.estimate.LastMContract4_ConCount__c;
+	
+			this.contract.LastMContract5__c =  this.estimate.LastMContract5__c;
+			this.contract.LastMContract5_NO__c = this.estimate.LastMContract5_NO__c;
+			this.contract.LastMContract5_ConCount__c =  this.estimate.LastMContract5_ConCount__c;
+			// 杩藉姞涓婃湡鍚堝悓淇℃伅 end
+	
+			system.debug('娴嬬畻isDecide鐨勭粨鏋淿1::::::::' + isDecide);
+			if (isDecide == true) {
+				system.debug('娴嬬畻isDecide鐨勭粨鏋淿2::::::::' + isDecide);
+	//              this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
+				this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c;
+				this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
+	//              this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
+				this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c;
+				this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c;
+				this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c;
+				this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c;
+				this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c;
+				this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c;
+				// JZHG-BQV3P4 20200624 Gzw add
+				this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c;
+				// JZHG-BQV3P4 20200624 Gzw add
+			}
+			//娣诲姞鐨勯澶栧搴旇繃绋�
+			if (inDicideFlag == true && (this.contract.Contract_Start_Date__c == null || this.contract.Contract_End_Date__c == null)) {
+				system.debug('娴嬬畻inDicideFlag鐨勭粨鏋淿2::::::::' + isDecide);
+	//              this.contract.Contract_Start_Date__c = this.estimate.Contract_Esti_Start_Date__c;
+				this.contract.Contract_Start_Date__c = this.estimate.Contract_Start_Date__c;
+				this.contract.Contract_Range__c = this.estimate.Contract_Range__c;
+	//              this.contract.Contract_End_Date__c = this.estimate.Contract_Esti_End_Date__c;
+				this.contract.Contract_End_Date__c = this.estimate.Contract_End_Date__c;
+				this.contract.JingliApprovalManager__c = this.estimate.JingliApprovalManager__c;
+				this.contract.BuchangApprovalManager__c = this.estimate.BuchangApprovalManager__c;
+				this.contract.ZongjianApprovalManager__c = this.estimate.ZongjianApprovalManager__c;
+				this.contract.Finally_Approved_Staff__c = this.estimate.Finally_Approved_Staff__c;
+				this.contract.TKZongjianApprovalManager__c = this.estimate.TKZongjianApprovalManager__c;
+				// JZHG-BQV3P4 20200624 Gzw add
+				this.contract.HospitalAmountText__c = this.estimate.AgencyHos_Price__c;
+				// JZHG-BQV3P4 20200624 Gzw add
+			}
+			String oldProcessStatus = this.estimate.Process_Status__c;
+			try {
+				if (mcList.size() > 0) {
+					ControllerUtil.updMcList(mcList.values());
+				}
+				ControllerUtil.updateMaintenance_Contract_Estimate(new Maintenance_Contract_Estimate__c[] {this.estimate});
+				update this.contract;
+			} catch (Exception e) {
+				// TODO 浠婂緦瑜囨暟浠躲伄鍫村悎銇┿亞銇欍倠锛�
+				this.estimate.addError(e);
+				// 涓�閮ㄣ伄鍊ゃ倰鎴汇仚
+				this.estimate.Process_Status__c = oldProcessStatus;
+				hasDatabaseError = true;
+				Database.rollback(sp);
+				ApexPages.addMessages(e);
+			}
+			if (hasDatabaseError) {
+				System.debug('syncEstimate hasDatabaseError');
+				return false;
+			}
+			if (isApproval) {
+				SelectAssetEstimateURFController.ComputeLTYRepair(targetEstimateId);
+			}
+			// ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'syncEstimates--end'));
+			return true;
+		} catch (DMLException ex) {
+			// TODO Insert澶辨晽銇甀D銈掓秷銇欏繀瑕侊紵
+			Database.rollback(sp);
+			ApexPages.addMessages(ex);
+		} catch (Exception ex) {
+			Database.rollback(sp);
+			ApexPages.addMessages(ex);
 		}
+		return false;
+	}
 	
 	/**
 	 * 鍗板埛寰屽鏇淬亴銇傘倠鍫村悎銆乼rue
 	 */
-		@TestVisible
-		private Boolean checkChangedAfterPrint() {
-			System.debug('checkChangedAfterPrint start');
-			if (changedAfterPrint) {
-				this.targetEstimateId = null;
-				this.estimate = this.estimate.clone();
-				this.estimate.IS_Clone_After_Decide__c = true;
-				this.estimate.PrintDate__c = null;
-				this.estimate.Quote_Date__c = null;
-				this.estimate.Print_Contract__c = false;
-				this.estimate.Print_RepairPrice__c = false;
-				this.estimate.Print_DiscountPercentage__c = false;
-				this.estimate.Print_DiscountPrice__c = false;
-				this.estimate.Print_ListPrice__c = false;
-				//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
-				this.estimate.Print_Simplify__c = false;
-				//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
-				this.estimate.Print_MaintePrice__c = false;
-				this.estimate.Print_SumPrice__c = false;
-				this.estimate.NotUse_Oxygenated_Water__c = false;
-				this.estimate.Contract_Esti_Start_Date__c = this.estimate.Contract_Start_Date__c;
-				//this.estimate.Process_Status__c = '鑽夋涓�';
-			}
-			return changedAfterPrint;
+	@TestVisible
+	private Boolean checkChangedAfterPrint() {
+		System.debug('checkChangedAfterPrint start');
+		if (changedAfterPrint) {
+			this.targetEstimateId = null;
+			this.estimate = this.estimate.clone();
+			this.estimate.IS_Clone_After_Decide__c = true;
+			this.estimate.PrintDate__c = null;
+			this.estimate.Quote_Date__c = null;
+			this.estimate.Print_Contract__c = false;
+			this.estimate.Print_RepairPrice__c = false;
+			this.estimate.Print_DiscountPercentage__c = false;
+			this.estimate.Print_DiscountPrice__c = false;
+			this.estimate.Print_ListPrice__c = false;
+			//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 start
+			this.estimate.Print_Simplify__c = false;
+			//鎵撳嵃鎶ヤ环锛堢畝鍖栫増锛� 2019/12/18 end
+			this.estimate.Print_MaintePrice__c = false;
+			this.estimate.Print_SumPrice__c = false;
+			this.estimate.NotUse_Oxygenated_Water__c = false;
+			this.estimate.Contract_Esti_Start_Date__c = this.estimate.Contract_Start_Date__c;
+			//this.estimate.Process_Status__c = '鑽夋涓�';
 		}
+		return changedAfterPrint;
+	}
 	
 	/**
 	 * 琛岃拷鍔�(10琛屻仛銇�)銆佸墠鎻愬繀銇氭渶寰�
 	 */
-		public PageReference addNewRows() {
-			for (Integer i = 0; i < 10; i++) {
-				checkedAssets.add(new AssetInfo(checkedAssets.size()));
-			}
-			return null;
+	public PageReference addNewRows() {
+		for (Integer i = 0; i < 10; i++) {
+			checkedAssets.add(new AssetInfo(checkedAssets.size()));
 		}
+		return null;
+	}
 	
 	/** 淇濆瓨杩斿洖 **/
-		public PageReference saveAndCancel () {
-			//add by rentx 2020-11-13 LJPH-BV93RZ start
-			if (estimate.Contract_Range__c == null) {
-				this.estimate.Contract_Range__c.addError('蹇呴』杈撳叆鍚堝悓鏈堟暟!');
-				return null;
-			}
-			//add by rentx 2020-11-13 LJPH-BV93RZ end
-			if (syncEstimate(false, false)) {
-				PageReference ret = null;
-				if (this.targetMaintenanceContractId != null) {
-					ret = new PageReference('/' + this.targetMaintenanceContractId);
-				}
-				return ret;
-			}
+	public PageReference saveAndCancel () {
+		//add by rentx 2020-11-13 LJPH-BV93RZ start
+		if (estimate.Contract_Range__c == null) {
+			this.estimate.Contract_Range__c.addError('蹇呴』杈撳叆鍚堝悓鏈堟暟!');
 			return null;
 		}
-	
-	/**
-	 * 銈儯銉炽偦銉儭銈姐儍銉�
-	 */
-		public PageReference cancel() {
+		//add by rentx 2020-11-13 LJPH-BV93RZ end
+		if (syncEstimate(false, false)) {
 			PageReference ret = null;
 			if (this.targetMaintenanceContractId != null) {
 				ret = new PageReference('/' + this.targetMaintenanceContractId);
 			}
 			return ret;
 		}
+		return null;
+	}
+	
+	/**
+	 * 銈儯銉炽偦銉儭銈姐儍銉�
+	 */
+	public PageReference cancel() {
+		PageReference ret = null;
+		if (this.targetMaintenanceContractId != null) {
+			ret = new PageReference('/' + this.targetMaintenanceContractId);
+		}
+		return ret;
+	}
 	
 	// 2021-02-07  gzw add  LJPH-BWY5QB start
-		private void setEndUserType(String id) {
-			this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c,
-							 Estimate_Num__c, Management_Code__c, Hospital__c,
-							 Hospital__r.MaintenanceContractUserType__c,
-							 Contract_Start_Date__c, Contract_End_Date__c
-							 FROM Maintenance_Contract__c WHERE Id = : id];
-			if (this.estimate.Process_Status__c == '鑽夋涓�' || String.IsBlank(this.estimate.Process_Status__c)) {
+	private void setEndUserType(String id) {
+		this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c,
+						 Estimate_Num__c, Management_Code__c, Hospital__c,
+						 Hospital__r.MaintenanceContractUserType__c,
+						 Contract_Start_Date__c, Contract_End_Date__c
+						 FROM Maintenance_Contract__c WHERE Id = :id];
+		if (this.estimate.Process_Status__c == '鑽夋涓�' || String.IsBlank(this.estimate.Process_Status__c)) {
 	
-				this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '鏂扮敤鎴�' : '鏃㈡湁鐢ㄦ埛';
-			}
+			this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '鏂扮敤鎴�' : '鏃㈡湁鐢ㄦ埛';
 		}
+	}
 	// 2021-02-07  gzw add  LJPH-BWY5QB end
 	
-		private void setContractInfo(String id) {
-			this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c,
-							 Estimate_Num__c, Management_Code__c, Hospital__c,
-							 //2021-01-18  mzy add  LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
-							 // Hospital__r.MaintenanceContractUserType__c,
-							 //2021-01-18  mzy add  LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
-							 Contract_Start_Date__c, Contract_End_Date__c
-							 FROM Maintenance_Contract__c WHERE Id = : id];
-			this.targetHospitalId = this.contract.Hospital__c;
-			// 2021-01-18  mzy  add LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
-			// if(this.estimate.Process_Status__c == '鑽夋涓�' || String.IsBlank(this.estimate.Process_Status__c)){
+	private void setContractInfo(String id) {
+		this.contract = [SELECT Id, Name, Status__c, Decided_Estimation__c, Service_Contract_Staff__c,
+						 Estimate_Num__c, Management_Code__c, Hospital__c,
+						 //2021-01-18  mzy add  LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
+						 // Hospital__r.MaintenanceContractUserType__c,
+						 //2021-01-18  mzy add  LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
+						 Contract_Start_Date__c, Contract_End_Date__c
+						 FROM Maintenance_Contract__c WHERE Id = :id];
+		this.targetHospitalId = this.contract.Hospital__c;
+		// 2021-01-18  mzy  add LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
+		// if(this.estimate.Process_Status__c == '鑽夋涓�' || String.IsBlank(this.estimate.Process_Status__c)){
 	
-			//    this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '鏂扮敤鎴�' : '鏃㈡湁鐢ㄦ埛';
-			// }
-			// 2021-01-18  mzy  add LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
+		//    this.estimate.EndUserType__c = this.contract.Hospital__r.MaintenanceContractUserType__c == false ? '鏂扮敤鎴�' : '鏃㈡湁鐢ㄦ埛';
+		// }
+		// 2021-01-18  mzy  add LJPH-BWY5QB   瀹㈡埛涓婄殑 缁翠慨鍚堝悓鐢ㄦ埛绫诲瀷 涓簍rue /false,鎶ヤ环 鐢ㄦ埛绫诲瀷涓� 鏃㈡湁鐢ㄦ埛 / 鏂扮敤鎴�
+	}
+	
+	private Boolean checkValidate() {
+		Boolean rtn = true;
+		Date today = Date.today();
+		if (getPageDisabled()) {
+			today = estimate.Submit_quotation_day__c;
 		}
+		// 閮ㄥ搧渚涚郸鍋滄銇=鍝併伅銈ㄣ儵銉�
+		for (AssetInfo input : this.checkedAssets) {
+			//濡傛灉鏄墜鍔ㄤ骇鍝�
+			// 20210121 gzw 鏈嶅姟鍚堝悓涔熼獙璇佽澶囦环鏍兼槸鍚︿负绌� start
+			if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+				// if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+				// 20210121 gzw 鏈嶅姟鍚堝悓涔熼獙璇佽澶囦环鏍兼槸鍚︿负绌� end
+				if (input.mcae.Estimate_List_Price__c == null || input.mcae.Estimate_List_Price__c == 0) {
+					//update by rentx 2020-11-12 LJPH-BV93RZ start
+					// input.mcae.Product_Manual__c.addError(System.Label.Error_Message47);
+					//add by rentx 2021-01-25 start
+					//濡傛灉淇濇湁璁惧涓嶄负绌虹殑璇濆湪淇濇湁璁惧涓婃姤閿�
 	
-		private Boolean checkValidate() {
-			Boolean rtn = true;
-			Date today = Date.today();
-			if (getPageDisabled()) {
-				today = estimate.Submit_quotation_day__c;
+					if (input.rec != null) {
+						input.rec.Name.addError(input.rec.Name + ' (鏈鸿韩缂栫爜涓�:' + input.rec.SerialNumber + ') 鏃犲悎鍚岄噾棰�,涓嶅缓璁弬淇�');
+	
+					} else
+					//add by rentx 2021-01-25 end
+					if (String.isNotBlank(input.proName)) {
+						input.mcae.Product_Manual__c.addError(System.Label.Error_Message47 + '(' + input.proName + ')');
+					}
+					//update by rentx 2020-11-12 LJPH-BV93RZ end
+					rtn = false;
+				}
 			}
-			// 閮ㄥ搧渚涚郸鍋滄銇=鍝併伅銈ㄣ儵銉�
-			for (AssetInfo input : this.checkedAssets) {
-				//濡傛灉鏄墜鍔ㄤ骇鍝�
-				// 20210121 gzw 鏈嶅姟鍚堝悓涔熼獙璇佽澶囦环鏍兼槸鍚︿负绌� start
-				if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-					// if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-					// 20210121 gzw 鏈嶅姟鍚堝悓涔熼獙璇佽澶囦环鏍兼槸鍚︿负绌� end
-					if (input.mcae.Estimate_List_Price__c == null || input.mcae.Estimate_List_Price__c == 0) {
-						//update by rentx 2020-11-12 LJPH-BV93RZ start
-						// input.mcae.Product_Manual__c.addError(System.Label.Error_Message47);
-						//add by rentx 2021-01-25 start
-						//濡傛灉淇濇湁璁惧涓嶄负绌虹殑璇濆湪淇濇湁璁惧涓婃姤閿�
+			if (!input.isManual) {
+				//update by rentx 2020-11-13 start
+				if (!Test.isRunningTest() && (input.mcae.Adjustment_Upper_price__c == null || input.mcae.Adjustment_Upper_price__c == 0) ) {
+					// input.mcae.Adjustment_Upper_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
+					input.mcae.Adjustment_Upper_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
+					rtn = false;
+				}
+				if (!Test.isRunningTest() && (input.mcae.Adjustment_Lower_price__c == null || input.mcae.Adjustment_Lower_price__c == 0) ) {
+					input.mcae.Adjustment_Lower_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
+					// input.mcae.Adjustment_Lower_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
+					rtn = false;
+				}
+				//update by rentx 2020-11-13 end
 	
-						if (input.rec != null) {
-							input.rec.Name.addError(input.rec.Name + ' (鏈鸿韩缂栫爜涓�:' + input.rec.SerialNumber + ') 鏃犲悎鍚岄噾棰�,涓嶅缓璁弬淇�');
+				//1.鍚堝悓鏈熶笉婊′竴骞存椂锛屽悎鍚屾湡瓒呰繃涓�鍗婃墠鍙紑濮嬬画绛炬姤浠枫��(eg:11涓湀鐨勫悎鍚屼粠6涓湀鍚庢墠鍙姤浠枫��)
+				//2.涓�骞翠互涓婄殑鍚堝悓锛屽湪缁撴潫鍓�6涓湀寮�濮嬪彲浠ュ紑鏀剧画绛炬姤浠枫��
+				//3.绠$悊鍛樿烦杩囷紝
+				if (UserInfo.getProfileId() != System.Label.ProfileId_SystemAdmin && String.isNotBlank(input.rec.CurrentContract_F__c) && input.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
 	
-						} else
-						//add by rentx 2021-01-25 end
-						if (String.isNotBlank(input.proName)) {
-							input.mcae.Product_Manual__c.addError(System.Label.Error_Message47 + '(' + input.proName + ')');
-						}
-						//update by rentx 2020-11-12 LJPH-BV93RZ end
+					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;
 					}
 				}
-				if (!input.isManual) {
-					//update by rentx 2020-11-13 start
-					if (!Test.isRunningTest() && (input.mcae.Adjustment_Upper_price__c == null || input.mcae.Adjustment_Upper_price__c == 0) ) {
-						// input.mcae.Adjustment_Upper_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
-						input.mcae.Adjustment_Upper_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
+				// 澶氬勾淇濆垽鏂�
+				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') {
+	
+					//Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c);
+					//Decimal monthCon = (Decimal)noOfDays/365*12;
+					// 鍙紑濮嬫姤浠风殑鏈堟暟闄愬埗
+					if (input.rec.CurrentContract_F__r.Gurantee_Estimate_startDate__c > Date.today()) {
+						input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 鍚堝悓缁撴潫鍓�6涓湀寮�濮嬪彲浠ュ埗浣滄姤浠枫��');
 						rtn = false;
 					}
-					if (!Test.isRunningTest() && (input.mcae.Adjustment_Lower_price__c == null || input.mcae.Adjustment_Lower_price__c == 0) ) {
-						input.mcae.Adjustment_Lower_price__c.addError(input.proSerialName + '(' + input.proSerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
-						// input.mcae.Adjustment_Lower_price__c.addError(input.rec.Name + '('+ input.rec.SerialNumber + ') 绛剧害浠锋牸涓�0锛�-- 寤鸿鍏堜笌鏈嶅姟鍟嗗搧閮ㄥ挩璇㈠悗鍐嶆彁浜ゆ姤浠枫��');
-						rtn = false;
-					}
-					//update by rentx 2020-11-13 end
-	
-					//1.鍚堝悓鏈熶笉婊′竴骞存椂锛屽悎鍚屾湡瓒呰繃涓�鍗婃墠鍙紑濮嬬画绛炬姤浠枫��(eg:11涓湀鐨勫悎鍚屼粠6涓湀鍚庢墠鍙姤浠枫��)
-					//2.涓�骞翠互涓婄殑鍚堝悓锛屽湪缁撴潫鍓�6涓湀寮�濮嬪彲浠ュ紑鏀剧画绛炬姤浠枫��
-					//3.绠$悊鍛樿烦杩囷紝
-					if (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;
-						}
-						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') {
-	
-						//Integer noOfDays = today.daysBetween(input.rec.CurrentContract_F_asset__r.endDateGurantee_Text__c);
-						//Decimal monthCon = (Decimal)noOfDays/365*12;
-						// 鍙紑濮嬫姤浠风殑鏈堟暟闄愬埗
-						if (input.rec.CurrentContract_F__r.Gurantee_Estimate_startDate__c > Date.today()) {
-							input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 鍚堝悓缁撴潫鍓�6涓湀寮�濮嬪彲浠ュ埗浣滄姤浠枫��');
-							rtn = false;
-						}
-					}
-					//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + input.rec.CurrentContract_F__r.Contract_End_Date__c));
-					if (inDicideFlag && String.isNotBlank(input.rec.CurrentContract_F__c)) {
-						//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++' + input.rec.CurrentContract_F__r.Contract_End_Date__c));
-						// 鍚堝悓寮�濮嬫棩澶т簬涓婃湡鍚堝悓缁撴潫鏃ュ姞涓�涓湀锛屼笖娌℃湁鐐规鏃ユ湡鎴栬�呮渶杩戜竴娆$偣妫�鏃ユ湡鏄�3涓湀鍓�  鎶ラ敊
-						if (estimate.Contract_Start_Date__c > input.rec.CurrentContract_F__r.Contract_End_Date__c.addMonths(1)
-							&& (input.rec.Final_Examination_Date__c == null
-								|| input.rec.Final_Examination_Date__c < estimate.Contract_Start_Date__c.addMonths(-3))) {
-							input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 娌℃湁鏈�鏂扮殑鐐规璁板綍');
-							rtn = false;
-						}
-					}
-	
-					if (isSaveOrApproval) {
-						if (input.rec.IF_Warranty__c == '鍚�') {
-							input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 涓嶈兘閫夋嫨涓嶅彲鍙備繚璁惧');
-							rtn = false;
-						}
-					}
-					// 20200805 Gzw Bug淇
-					// isSaveOrApproval = false;
 				}
+				//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '---' + input.rec.CurrentContract_F__r.Contract_End_Date__c));
+				if (inDicideFlag && String.isNotBlank(input.rec.CurrentContract_F__c)) {
+					//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '+++' + input.rec.CurrentContract_F__r.Contract_End_Date__c));
+					// 鍚堝悓寮�濮嬫棩澶т簬涓婃湡鍚堝悓缁撴潫鏃ュ姞涓�涓湀锛屼笖娌℃湁鐐规鏃ユ湡鎴栬�呮渶杩戜竴娆$偣妫�鏃ユ湡鏄�3涓湀鍓�  鎶ラ敊
+					if (estimate.Contract_Start_Date__c > input.rec.CurrentContract_F__r.Contract_End_Date__c.addMonths(1)
+						&& (input.rec.Final_Examination_Date__c == null
+							|| input.rec.Final_Examination_Date__c < estimate.Contract_Start_Date__c.addMonths(-3))) {
+						input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 娌℃湁鏈�鏂扮殑鐐规璁板綍');
+						rtn = false;
+					}
+				}
+	
+				if (isSaveOrApproval) {
+					if (input.rec.IF_Warranty__c == '鍚�') {
+						input.rec.Name.addError(input.rec.Name + '(' + input.rec.SerialNumber + ') -- 涓嶈兘閫夋嫨涓嶅彲鍙備繚璁惧');
+						rtn = false;
+					}
+				}
+				// 20200805 Gzw Bug淇
+				// isSaveOrApproval = false;
 			}
-			return rtn;
 		}
+		return rtn;
+	}
 	
 	// 浠锋牸鍙樻洿鍚庡厠闅嗘姤浠峰墠閲嶆柊璁$畻浠锋牸
-		@TestVisible
-		private void priceChangeReset() {
-			// 鍙栧緱master涓渶鏂颁环鏍�
-			List<Id> assIds = new List<Id>();
-			List<Id> pdIds = new List<Id>();
-			for (AssetInfo input : this.checkedAssets) {
-				if (!input.isManual) {
-					assIds.add(input.rec.Id);
-				}
-				if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-					pdIds.add(input.mcae.Product_Manual__c);
-				}
+	@TestVisible
+	private void priceChangeReset() {
+		// 鍙栧緱master涓渶鏂颁环鏍�
+		List<Id> assIds = new List<Id>();
+		List<Id> pdIds = new List<Id>();
+		for (AssetInfo input : this.checkedAssets) {
+			if (!input.isManual) {
+				assIds.add(input.rec.Id);
 			}
-			Map<Id, Asset> assMap = new Map<Id, Asset>();
-			Map<Id, Product2> pdMap = new Map<Id, Product2>();
-			if (assIds.size() > 0) {
-				assMap = new Map<Id, Asset>([select id, Maintenance_Price_Month__c from Asset where Id In: assIds]);
+			if (input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+				pdIds.add(input.mcae.Product_Manual__c);
 			}
-			if (pdIds.size() > 0) {
-				pdMap = new Map<Id, Product2>([select id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c from Product2 where Id In: pdIds]);
-			}
-			if (assMap.size() > 0 || pdMap.size() > 0) {
-				for (AssetInfo info : this.checkedAssets) {
-					if (!info.isManual) {
-						info.orgPrice = assMap.get(info.rec.Id).Maintenance_Price_Month__c;
-					}
-					if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) {
-						info.orgPrice = pdMap.get(info.mcae.Product_Manual__c).Maintenance_Price_Month__c;
-					}
-				}
-			}
-			//contractStartDateChange();
 		}
+		Map<Id, Asset> assMap = new Map<Id, Asset>();
+		Map<Id, Product2> pdMap = new Map<Id, Product2>();
+		if (assIds.size() > 0) {
+			assMap = new Map<Id, Asset>([select id, Maintenance_Price_Month__c from Asset where Id In: assIds]);
+		}
+		if (pdIds.size() > 0) {
+			pdMap = new Map<Id, Product2>([select id, Maintenance_Price_Month__c, EquipmentGuaranteeFlg__c from Product2 where Id In: pdIds]);
+		}
+		if (assMap.size() > 0 || pdMap.size() > 0) {
+			for (AssetInfo info : this.checkedAssets) {
+				if (!info.isManual) {
+					info.orgPrice = assMap.get(info.rec.Id).Maintenance_Price_Month__c;
+				}
+				if (info.isManual && !String.isBlank(info.mcae.Product_Manual__c)) {
+					info.orgPrice = pdMap.get(info.mcae.Product_Manual__c).Maintenance_Price_Month__c;
+				}
+			}
+		}
+		//contractStartDateChange();
+	}
 	
-		public class AssetInfo {
+	public class AssetInfo {
 	// 鏂板悎鍚屽鍝佺‘淇濇彁渚� 褰撳墠鏍囪
-			public Boolean etGFlg {get; set;}
-			public Integer lineNo {get; private set;}
-			public Boolean rec_checkBox_c {get; set;}
-			public Asset rec { get; set; }
-			public Maintenance_Contract_Asset_Estimate__c mcae { get; set; }
-			public Boolean isManual { get; set; }
-			public Decimal orgPrice {get; private set;}
-			public Decimal orgPrice12 {get; private set;}
+	public Boolean etGFlg {get; set;}
+	public Integer lineNo {get; private set;}
+	public Boolean rec_checkBox_c {get; set;}
+	public Asset rec { get; set; }
+	public Maintenance_Contract_Asset_Estimate__c mcae { get; set; }
+	public Boolean isManual { get; set; }
+	public Decimal orgPrice {get; private set;}
+	public Decimal orgPrice12 {get; private set;}
 	//add by rentx 2020-11-12 LJPH-BV93RZ start
-			public String proName;
-			public String proSerialNumber;
-			public String proSerialName;
+	public String proName;
+	public String proSerialNumber;
+	public String proSerialName;
 	//add by rentx 2020-11-12 LJPH-BV93RZ end
 	// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
-			public Boolean CheckRows {get; private set;}
+	public Boolean CheckRows {get; private set;}
 	// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
 	// 闄愭浠锋牸 add by gzw start
-			public Decimal uFRPrice {get; private set;}
+	public Decimal uFRPrice {get; private set;}
 	// 闄愭绯诲垪
-			public String uFRSerial {get; private set;}
+	public String uFRSerial {get; private set;}
 	// 鏈�澶уぇ淇鏁�
-			public Decimal uFRRepairCount {get; private set;}
+	public Decimal uFRRepairCount {get; private set;}
 	
 	// 闄愭浠锋牸 add by gzw end
+
+	// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+	public Decimal uFRMaxPrice {get; set;}
+	public Decimal uFRMinPrice {get; set;}
+	// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
 	
-	
-			public Id getRecId() {
-				Id rtn = null;
-				if (rec != null) {
-					rtn = rec.Id;
-				}
-				return rtn;
-			}
-			public void setRecId(Id value) {
-				// 銇伀銈傘仐銇亜
-			}
+	public Id getRecId() {
+		Id rtn = null;
+		if (rec != null) {
+			rtn = rec.Id;
+		}
+		return rtn;
+	}
+	public void setRecId(Id value) {
+		// 銇伀銈傘仐銇亜
+	}
 	
 	// Manual灏傜敤
-			public AssetInfo(Integer lineNo) {
-				this.lineNo = lineNo;
-				this.rec = null;
-				this.mcae = new Maintenance_Contract_Asset_Estimate__c(
-					isNew__c = true,
-					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-					Check_Object__c = true
-									  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
-					);
-				this.isManual = true;
-				this.rec_checkBox_c = false;
-				this.orgPrice = 0;
-				this.orgPrice12 = 0;
-				this.etGFlg = false;
-				this.uFRPrice = 0;
-				this.uFRRepairCount = 0;
-				// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
-				this.CheckRows = true;
-				// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
-	
-			}
+	public AssetInfo(Integer lineNo) {
+		this.lineNo = lineNo;
+		this.rec = null;
+		this.mcae = new Maintenance_Contract_Asset_Estimate__c(
+			isNew__c = true,
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+			Check_Object__c = true
+							  // add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
+			);
+		this.isManual = true;
+		this.rec_checkBox_c = false;
+		this.orgPrice = 0;
+		this.orgPrice12 = 0;
+		this.etGFlg = false;
+		this.uFRPrice = 0;
+		this.uFRRepairCount = 0;
+		// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� Star
+		this.CheckRows = true;
+		// add by fxk 2021/9/9 鎺у埗鐐规瀵硅薄鏄惁鍙�� End
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+	}
 	// 閬告姙銇曘倢銇熺敤锛堥潪Manual锛�
-			public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae) {
-				this.lineNo = lineNo;
-				this.rec = record;
-				this.mcae = new Maintenance_Contract_Asset_Estimate__c(
+	public AssetInfo(Integer lineNo, Asset record, Boolean isNew, Decimal listPrice, Maintenance_Contract_Asset_Estimate__c mcae) {
+		this.lineNo = lineNo;
+		this.rec = record;
+		this.mcae = new Maintenance_Contract_Asset_Estimate__c(
 	//                id = mcae.Id,             // 鏈綋銇亜銈夈仾銇勩伄锛� 銈汇儍銉堛仐銇熴倝銆佹柊瑕忔ī闄愩亴銇亸銇с倐銆佹洿鏂般仹銇嶃伨銇欍�傚緦钘ゃ仌銈撱伀纰鸿獚銇椼仧銆併仾銇忋仹銈傘亜銇勩仹銇欍��
-					isNew__c = isNew,
-					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-					Check_Object__c = mcae.Check_Object__c,
-					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
-					Estimate_List_Price__c = listPrice,
-					//Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c,
-					Check_Result__c = mcae.Check_Result__c,
-					Repair_Price__c = mcae.Repair_Price__c,
-					Comment__c = mcae.Comment__c,
-					EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c,
-					Estimate_Cost__c = mcae.Estimate_Cost__c,
-					Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c,
-					Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c,
-					Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c,
-					LastMContract_Price__c = mcae.LastMContract_Price__c,
-					Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c,
-					Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c
-												// 杩藉姞闄愭淇℃伅
-					, URF_Series__c = mcae.URF_Series__c,
-					Series_RepairCount__c = mcae.Series_RepairCount__c,
-					Series_MaxRepairCount__c = mcae.Series_MaxRepairCount__c,
-					Asset_RepairCount__c = mcae.Asset_RepairCount__c,
-					Asset_MaxRepairCount__c = mcae.Asset_MaxRepairCount__c
-					// LJPH-C9GD34 gzw fix start
-					,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c
-					// LJPH-C9GD34 gzw fix end
+			isNew__c = isNew,
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+			Check_Object__c = mcae.Check_Object__c,
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
+			Estimate_List_Price__c = listPrice,
+			//Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c,
+			Check_Result__c = mcae.Check_Result__c,
+			Repair_Price__c = mcae.Repair_Price__c,
+			Comment__c = mcae.Comment__c,
+			EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c,
+			Estimate_Cost__c = mcae.Estimate_Cost__c,
+			Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c,
+			Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c,
+			Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c,
+			LastMContract_Price__c = mcae.LastMContract_Price__c,
+			Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c,
+			Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c
+										// 杩藉姞闄愭淇℃伅
+			, URF_Series__c = mcae.URF_Series__c,
+			Series_RepairCount__c = mcae.Series_RepairCount__c,
+			Series_MaxRepairCount__c = mcae.Series_MaxRepairCount__c,
+			Asset_RepairCount__c = mcae.Asset_RepairCount__c,
+			Asset_MaxRepairCount__c = mcae.Asset_MaxRepairCount__c
+			// LJPH-C9GD34 gzw fix start
+			,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c
+			// LJPH-C9GD34 gzw fix end
 	
-					);
-				this.isManual = false;
-				this.rec_checkBox_c = true;
-				this.orgPrice = record.Maintenance_Price_Month__c;
-				this.orgPrice12 = this.orgPrice * 12;
-				this.etGFlg = record.EquipmentGuaranteeFlg__c;
-				//add by rentx 2020-11-12 LJPH-BV93RZ start
-				this.proName = '鏈鸿韩缂栫爜涓�:' + record.SerialNumber;
-				this.proSerialNumber = record.SerialNumber;
-				this.proSerialName = record.Name;
-				//add by rentx 2020-11-12 LJPH-BV93RZ end
-				this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
-				this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
-				this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
-			}
+			);
+		this.isManual = false;
+		this.rec_checkBox_c = true;
+		this.orgPrice = record.Maintenance_Price_Month__c;
+		this.orgPrice12 = this.orgPrice * 12;
+		this.etGFlg = record.EquipmentGuaranteeFlg__c;
+		//add by rentx 2020-11-12 LJPH-BV93RZ start
+		this.proName = '鏈鸿韩缂栫爜涓�:' + record.SerialNumber;
+		this.proSerialNumber = record.SerialNumber;
+		this.proSerialName = record.Name;
+		//add by rentx 2020-11-12 LJPH-BV93RZ end
+		this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+		this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
+		this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
+		//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+	}
 	// 閬告姙銇曘倢銇熺敤銆佹湭绱嶅搧鐢紙Manual锛�
-			public AssetInfo(Integer lineNo, Maintenance_Contract_Asset_Estimate__c mcae) {
-				this.lineNo = lineNo;
-				this.rec = null;
-				this.mcae = new Maintenance_Contract_Asset_Estimate__c(
+	public AssetInfo(Integer lineNo, Maintenance_Contract_Asset_Estimate__c mcae) {
+		this.lineNo = lineNo;
+		this.rec = null;
+		this.mcae = new Maintenance_Contract_Asset_Estimate__c(
 	//                id = mcae.Id,             // 鏈綋銇亜銈夈仾銇勩伄锛� 銈汇儍銉堛仐銇熴倝銆佹柊瑕忔ī闄愩亴銇亸銇с倐銆佹洿鏂般仹銇嶃伨銇欍�傚緦钘ゃ仌銈撱伀纰鸿獚銇椼仧銆併仾銇忋仹銈傘亜銇勩仹銇欍��
-					isNew__c = mcae.IsNew__c,
-					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
-					Check_Object__c = mcae.Check_Object__c,
-					// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
-					Product_Manual__c = mcae.Product_Manual__c,
-					Estimate_List_Price__c = mcae.Estimate_List_Price__c,
-					//Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c,
-					Check_Result__c = mcae.Check_Result__c,
-					Repair_Price__c = mcae.Repair_Price__c,
-					Comment__c = mcae.Comment__c,
-					EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c,
-					Estimate_Cost__c = mcae.Estimate_Cost__c,
-					Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c,
-					Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c,
-					Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c,
-					LastMContract_Price__c = mcae.LastMContract_Price__c,
-					Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c,
-					Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c
-												// 杩藉姞闄愭淇℃伅
-					, URF_Series__c = mcae.URF_Series__c,
-					Series_RepairCount__c = mcae.Series_RepairCount__c,
-					Series_MaxRepairCount__c = mcae.Series_MaxRepairCount__c,
-					Asset_RepairCount__c = mcae.Asset_RepairCount__c,
-					Asset_MaxRepairCount__c = mcae.Asset_MaxRepairCount__c
-					// LJPH-C9GD34 gzw fix start
-					,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c
-					// LJPH-C9GD34 gzw fix end
-					);
-				this.isManual = true;
-				this.rec_checkBox_c = false;
-				this.orgPrice = mcae.Product_Manual__r.Maintenance_Price_Month__c;
-				this.orgPrice12 = this.orgPrice * 12;
-				this.proName = mcae.Product_Manual__r.Name;
-				this.etGFlg = mcae.Product_Manual__r.EquipmentGuaranteeFlg__c;
-				this.uFRPrice = mcae.Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c;
-				this.uFRSerial = mcae.Product_Manual__r.ProductURF__r.URFLimitSerial__c;
-				this.uFRRepairCount = mcae.Product_Manual__r.ProductURF__r.UFR_MaxRepairCount__c;
-			}
+			isNew__c = mcae.IsNew__c,
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk Star
+			Check_Object__c = mcae.Check_Object__c,
+			// add鐐规鏀瑰杽锛氭柊澧炰竴涓偣妫�瀵硅薄澶嶉�夋瀛楁锛岄粯璁や负true 2021.6.8 fxk end
+			Product_Manual__c = mcae.Product_Manual__c,
+			Estimate_List_Price__c = mcae.Estimate_List_Price__c,
+			//Maintenance_Price_YearTXT__c = mcae.Maintenance_Price_YearTXT__c,
+			Check_Result__c = mcae.Check_Result__c,
+			Repair_Price__c = mcae.Repair_Price__c,
+			Comment__c = mcae.Comment__c,
+			EquipmentGuaranteeFlgTxt__c = mcae.EquipmentGuaranteeFlgTxt__c,
+			Estimate_Cost__c = mcae.Estimate_Cost__c,
+			Adjustment_ratio_Upper__c = mcae.Adjustment_ratio_Upper__c,
+			Adjustment_ratio_Lower__c = mcae.Adjustment_ratio_Lower__c,
+			Adjustment_Upper_price__c = mcae.Adjustment_Upper_price__c,
+			LastMContract_Price__c = mcae.LastMContract_Price__c,
+			Adjustment_Lower_price__c = mcae.Adjustment_Lower_price__c,
+			Asset_Consumption_rate__c = mcae.Asset_Consumption_rate__c
+										// 杩藉姞闄愭淇℃伅
+			, URF_Series__c = mcae.URF_Series__c,
+			Series_RepairCount__c = mcae.Series_RepairCount__c,
+			Series_MaxRepairCount__c = mcae.Series_MaxRepairCount__c,
+			Asset_RepairCount__c = mcae.Asset_RepairCount__c,
+			Asset_MaxRepairCount__c = mcae.Asset_MaxRepairCount__c
+			// LJPH-C9GD34 gzw fix start
+			,Estimate_List_Price_Page__c = mcae.Estimate_List_Price_Page__c
+			// LJPH-C9GD34 gzw fix end
+			);
+		this.isManual = true;
+		this.rec_checkBox_c = false;
+		this.orgPrice = mcae.Product_Manual__r.Maintenance_Price_Month__c;
+		this.orgPrice12 = this.orgPrice * 12;
+		this.proName = mcae.Product_Manual__r.Name;
+		this.etGFlg = mcae.Product_Manual__r.EquipmentGuaranteeFlg__c;
+		this.uFRPrice = mcae.Product_Manual__r.ProductURF__r.UFR_Maintenance_Price_Month__c;
+		this.uFRSerial = mcae.Product_Manual__r.ProductURF__r.URFLimitSerial__c;
+		this.uFRRepairCount = mcae.Product_Manual__r.ProductURF__r.UFR_MaxRepairCount__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = mcae.Product_Manual__r.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+	}
 	// 閬告姙銇曘倢銇亱銇c仧鐢�
-			public AssetInfo(Integer lineNo, Asset record) {
-				this.lineNo = lineNo;
-				this.rec = record;
-				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;
-				this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
-				this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
-				this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
-			}
-		}
+	public AssetInfo(Integer lineNo, Asset record) {
+		this.lineNo = lineNo;
+		this.rec = record;
+		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;
+		this.uFRPrice = record.Product2.ProductURF__r.UFR_Maintenance_Price_Month__c;
+		this.uFRSerial = record.Product2.ProductURF__r.URFLimitSerial__c;
+		this.uFRRepairCount = record.Product2.ProductURF__r.UFR_MaxRepairCount__c;
+		//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+		this.uFRMaxPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF_Max__c;
+		this.uFRMinPrice = record.Product2.ProductURF__r.Maintenance_Price_Year_URF__c;
+		// XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+	}
+	}
 	
-		WebService static String pageDecide(String strId) {
-			String rs = '';
-			SelectAssetEstimateURFController saec = new SelectAssetEstimateURFController();
-			saec.targetEstimateId = strId;
-			saec.isPageAction = true;
-			saec.init();
-			if (saec.getDecideBtnDisabled()) {
-				rs = '宸茬粡鏄疍ecide杩囩殑鍚堝悓 鎴� 涓嶆槸鎵瑰噯鐨勬姤浠凤紝涓嶈兘Decide';
-				return rs;
-			}
-			if (saec.syncEstimate(false, true)) {
-				rs = '0';
-			} else {
-				rs = 'Decide澶辫触';
-			}
+	WebService static String pageDecide(String strId) {
+		String rs = '';
+		SelectAssetEstimateURFController saec = new SelectAssetEstimateURFController();
+		saec.targetEstimateId = strId;
+		saec.isPageAction = true;
+		saec.init();
+		if (saec.getDecideBtnDisabled()) {
+			rs = '宸茬粡鏄疍ecide杩囩殑鍚堝悓 鎴� 涓嶆槸鎵瑰噯鐨勬姤浠凤紝涓嶈兘Decide';
 			return rs;
 		}
+		if (saec.syncEstimate(false, true)) {
+			rs = '0';
+		} else {
+			rs = 'Decide澶辫触';
+		}
+		return rs;
+	}
 	
-		WebService static String pageUndecide(String strId) {
-			String rs = '';
-			SelectAssetEstimateURFController saec = new SelectAssetEstimateURFController();
-			saec.targetEstimateId = strId;
-			saec.isPageAction = true;
-			saec.init();
-			if (saec.getUnDecideBtnDisabled()) {
-				rs = '涓嶆槸Decide杩囩殑鎶ヤ环锛屼笉鑳経ndecide';
-				return rs;
-			}
-			if (saec.undecide() != null) {
-				rs = '0';
-			} else {
-				rs = 'Undecide澶辫触';
-			}
+	WebService static String pageUndecide(String strId) {
+		String rs = '';
+		SelectAssetEstimateURFController saec = new SelectAssetEstimateURFController();
+		saec.targetEstimateId = strId;
+		saec.isPageAction = true;
+		saec.init();
+		if (saec.getUnDecideBtnDisabled()) {
+			rs = '涓嶆槸Decide杩囩殑鎶ヤ环锛屼笉鑳経ndecide';
 			return rs;
 		}
+		if (saec.undecide() != null) {
+			rs = '0';
+		} else {
+			rs = 'Undecide澶辫触';
+		}
+		return rs;
+	}
 	
 	// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start 浼犲叆 startDate 锛屾坊鍔� lastMContractMap1
-		public static List<lastMContract> getlastMContract(List<AssetInfo> checkedAssets, Date startDate) {
-			Map<String, lastMContract> lastMContractMap = new Map<String, lastMContract>();
-			Map<String, lastMContract> lastMContractMap1 = new Map<String, lastMContract>();
-			for (AssetInfo ai : checkedAssets) {
+	public static List<lastMContract> getlastMContract(List<AssetInfo> checkedAssets, Date startDate) {
+		Map<String, lastMContract> lastMContractMap = new Map<String, lastMContract>();
+		Map<String, lastMContract> lastMContractMap1 = new Map<String, lastMContract>();
+		for (AssetInfo ai : checkedAssets) {
 				lastMContract lM = new lastMContract(ai.rec.CurrentContract_F__c, ai.rec.CurrentContract_F__r.Management_Code__c, ai.rec.CurrentContract_F__r.Contract_End_Date__c, 1);
-				// 璁$畻绌虹櫧鏈�
-				if (startDate != null && lM.endDate != null) {
-					if (startDate.daysbetween(lM.endDate) > -366 && startDate.daysbetween(lM.endDate) < 366) {
-						lm.ayearcontract = true;
-					} else {
-						lm.ayearcontract = false;
-					}
+			// 璁$畻绌虹櫧鏈�
+			if (startDate != null && lM.endDate != null) {
+				if (startDate.daysbetween(lM.endDate) > -366 && startDate.daysbetween(lM.endDate) < 366) {
+					lm.ayearcontract = true;
 				} else {
 					lm.ayearcontract = false;
 				}
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+			} else {
+				lm.ayearcontract = false;
+			}
+			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
 	
-				// if (String.isNotBlank(ai.rec.CurrentContract_F__c) ) {
-				//鍒ゆ柇 濡傛灉涓婁竴鏈熺淮淇悎鍚屼负 澶氬勾淇濅慨鍚堝悓 鐨勮瘽 鍒欎笉鏀惧叆map杩涜鏇存柊 LJPH-BUU3E3 update by rentx 2020-11-03 start
-				if (String.isNotBlank(ai.rec.CurrentContract_F__c) && ai.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
+			// if (String.isNotBlank(ai.rec.CurrentContract_F__c) ) {
+			//鍒ゆ柇 濡傛灉涓婁竴鏈熺淮淇悎鍚屼负 澶氬勾淇濅慨鍚堝悓 鐨勮瘽 鍒欎笉鏀惧叆map杩涜鏇存柊 LJPH-BUU3E3 update by rentx 2020-11-03 start
+			if (String.isNotBlank(ai.rec.CurrentContract_F__c) && ai.rec.CurrentContract_F__r.RecordType_DeveloperName__c != 'VM_Contract') {
 	
-					// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-					if (lm.ayearcontract) {
-						// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+				if (lm.ayearcontract) {
+					// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
 	
-						//鍒ゆ柇 濡傛灉涓婁竴鏈熺淮淇悎鍚屼负 澶氬勾淇濅慨鍚堝悓 鐨勮瘽 鍒欎笉鏀惧叆map杩涜鏇存柊 LJPH-BUU3E3 update by rentx 2020-11-03 end
-						// 绌虹櫧鏈�
-						if (lastMContractMap.containsKey(ai.rec.CurrentContract_F__c)) {
-							lastMContractMap.get(ai.rec.CurrentContract_F__c).count++;
-						} else {
-							lastMContractMap.put(ai.rec.CurrentContract_F__c, lM);
-						}
-						// 闈炵┖鐧芥湡
+					//鍒ゆ柇 濡傛灉涓婁竴鏈熺淮淇悎鍚屼负 澶氬勾淇濅慨鍚堝悓 鐨勮瘽 鍒欎笉鏀惧叆map杩涜鏇存柊 LJPH-BUU3E3 update by rentx 2020-11-03 end
+					// 绌虹櫧鏈�
+					if (lastMContractMap.containsKey(ai.rec.CurrentContract_F__c)) {
+						lastMContractMap.get(ai.rec.CurrentContract_F__c).count++;
 					} else {
-						if (lastMContractMap1.containsKey(ai.rec.CurrentContract_F__c)) {
-							lastMContractMap1.get(ai.rec.CurrentContract_F__c).count++;
-						} else {
-							lastMContractMap1.put(ai.rec.CurrentContract_F__c, lM);
-						}
+						lastMContractMap.put(ai.rec.CurrentContract_F__c, lM);
+					}
+					// 闈炵┖鐧芥湡
+				} else {
+					if (lastMContractMap1.containsKey(ai.rec.CurrentContract_F__c)) {
+						lastMContractMap1.get(ai.rec.CurrentContract_F__c).count++;
+					} else {
+						lastMContractMap1.put(ai.rec.CurrentContract_F__c, lM);
 					}
 				}
 			}
-			List<lastMContract> listResulttemp = new List<lastMContract>();
-			List<lastMContract> listResult = new List<lastMContract>();
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-			List<lastMContract> listResulttemp1 = new List<lastMContract>();
-			List<lastMContract> listResult1 = new List<lastMContract>();
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
-			// 绌虹櫧鏈�
-			for ( lastMContract ll : lastMContractMap.values()) {
-				listResulttemp.add(ll);
-			}
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-			// 闈炵┖鐧芥湡
-			for ( lastMContract ll : lastMContractMap1.values()) {
-				listResulttemp1.add(ll);
-			}
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
-			//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'listResult +++++锛�' + listResult));
-	
-			// 绌虹櫧鏈�
-			listResulttemp.sort();
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start  锛堜慨鏀逛簡寰幆娆℃暟 鍘�5锛�
-			for (Integer i = 0; i < listResulttemp.size(); i++) {
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
-				if (listResulttemp.size() >= i + 1) {
-					listResult.add(listResulttemp[i]);
-				}
-			}
-	
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-			// 闈炵┖鐧芥湡
-			listResulttemp1.sort();
-			for (Integer i = 0; i < 5 - listResulttemp.size(); i++) {
-				if (listResulttemp1.size() >= i + 1) {
-					listResult1.add(listResulttemp1[i]);
-				} else {
-					listResult1.add(new lastMContract(null, null, null, null));
-				}
-			}
-			// 鍚堝苟
-			listResult.addAll(listResult1);
-			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
-			//List<lastMContract> listResult = new List<lastMContract>();
-			return listResult;
 		}
+		List<lastMContract> listResulttemp = new List<lastMContract>();
+		List<lastMContract> listResult = new List<lastMContract>();
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+		List<lastMContract> listResulttemp1 = new List<lastMContract>();
+		List<lastMContract> listResult1 = new List<lastMContract>();
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+		// 绌虹櫧鏈�
+		for ( lastMContract ll : lastMContractMap.values()) {
+			listResulttemp.add(ll);
+		}
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+		// 闈炵┖鐧芥湡
+		for ( lastMContract ll : lastMContractMap1.values()) {
+			listResulttemp1.add(ll);
+		}
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+		//ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'listResult +++++锛�' + listResult));
+	
+		// 绌虹櫧鏈�
+		listResulttemp.sort();
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start  锛堜慨鏀逛簡寰幆娆℃暟 鍘�5锛�
+		for (Integer i = 0; i < listResulttemp.size(); i++) {
+			// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+			if (listResulttemp.size() >= i + 1) {
+				listResult.add(listResulttemp[i]);
+			}
+		}
+	
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+		// 闈炵┖鐧芥湡
+		listResulttemp1.sort();
+		for (Integer i = 0; i < 5 - listResulttemp.size(); i++) {
+			if (listResulttemp1.size() >= i + 1) {
+				listResult1.add(listResulttemp1[i]);
+			} else {
+				listResult1.add(new lastMContract(null, null, null, null));
+			}
+		}
+		// 鍚堝苟
+		listResult.addAll(listResult1);
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+		//List<lastMContract> listResult = new List<lastMContract>();
+		return listResult;
+	}
 	
 	
 	// public static List<Data> getChartData() {
@@ -3300,23 +3371,25 @@
 	//     return data;
 	// }
 	// 璁$畻闄愭绯诲垪娆℃暟
-		public Map<String, Decimal> getLimitSerialData() {
-			Map<String, Decimal> limitSerial = new Map<String, Decimal>();
+	public Map<String, Decimal> getLimitSerialData(Integer Contract_year) {
+		Map<String, Decimal> limitSerial = new Map<String, Decimal>();
 	
-			for (AssetInfo input : this.checkedAssets) {
-				if (String.isNotBlank(input.uFRSerial) && limitSerial.containsKey(input.uFRSerial)) {
-					limitSerial.put(input.uFRSerial, limitSerial.get(input.uFRSerial) + input.uFRRepairCount);
-				} else {
-					limitSerial.put(input.uFRSerial, input.uFRRepairCount);
-				}
-				// if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
-				//     if (String.isBlank(input.mcae.Check_Result__c)) {
-				//         input.mcae.Check_Result__c.addError('鐐规缁撴灉蹇呭~');
-				//     }
-				// }
+		for (AssetInfo input : this.checkedAssets) {
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 start
+			if (String.isNotBlank(input.uFRSerial) && limitSerial.containsKey(input.uFRSerial)) {
+				limitSerial.put(input.uFRSerial, limitSerial.get(input.uFRSerial) + input.uFRRepairCount * Contract_year);
+			} else {
+				limitSerial.put(input.uFRSerial, input.uFRRepairCount * Contract_year);
 			}
-			return limitSerial;
+			//XLIU-CE7AVC銆愬鎵樸�慤RF闄愭淇悊鍚堝悓鐨勬渶楂樹环鏍间慨鏀� thh 20220509 end
+			// if (!input.isManual || input.isManual && !String.isBlank(input.mcae.Product_Manual__c)) {
+			//     if (String.isBlank(input.mcae.Check_Result__c)) {
+			//         input.mcae.Check_Result__c.addError('鐐规缁撴灉蹇呭~');
+			//     }
+			// }
 		}
+		return limitSerial;
+	}
 	
 	// // 浠锋牸浣撶郴 class
 	// public class Data {
@@ -3333,41 +3406,41 @@
 	// }
 	
 	// 缁鍚堝悓淇℃伅 class
-		public class lastMContract implements Comparable {
-			public Date endDate { get; set; }
-			public Integer count { get; set; }
-			public String contractId { get; set; }
-			public String contractNo { get; set; }
+	public class lastMContract implements Comparable {
+	public Date endDate { get; set; }
+	public Integer count { get; set; }
+	public String contractId { get; set; }
+	public String contractNo { get; set; }
 	// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-			public Boolean ayearcontract { get; set; }
+	public Boolean ayearcontract { get; set; }
 	// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
-			public lastMContract(String contractId, String contractNo, Date endDate, Integer count) {
-				this.endDate = endDate;
-				this.count = count;
-				this.contractId = contractId;
-				this.contractNo = contractNo;
-			}
+	public lastMContract(String contractId, String contractNo, Date endDate, Integer count) {
+		this.endDate = endDate;
+		this.count = count;
+		this.contractId = contractId;
+		this.contractNo = contractNo;
+	}
 	
 	// 鎺掑簭
-			public Integer compareTo(Object compareTo) {
-				lastMContract compareToesd = (lastMContract)compareTo;
-				Integer returnValue = 0;
+	public Integer compareTo(Object compareTo) {
+		lastMContract compareToesd = (lastMContract)compareTo;
+		Integer returnValue = 0;
 	
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
-				// 鍒ゆ柇鍦ㄦ暟閲�
-				if (count  > compareToesd.count) {
-					returnValue = -1;
-				} else if (count  < compareToesd.count) {
-					returnValue = 1;
-				} else {
-					if (endDate  > compareToesd.endDate ) {
-						returnValue = 1;
-					} else {
-						returnValue = -1;
-					}
-				}
-				return returnValue;
-				// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 start
+		// 鍒ゆ柇鍦ㄦ暟閲�
+		if (count  > compareToesd.count) {
+			returnValue = -1;
+		} else if (count  < compareToesd.count) {
+			returnValue = 1;
+		} else {
+			if (endDate  > compareToesd.endDate ) {
+				returnValue = 1;
+			} else {
+				returnValue = -1;
 			}
 		}
+		return returnValue;
+		// 2021-09-10 tcm 鎺掑簭閫昏緫璋冩暣 end
+	}
+	}
 	}
\ No newline at end of file

--
Gitblit v1.9.1