public without sharing class LexInventoryViewController { /*****************画面表示Bean******************/ public static List consumableorderdetailsRecords = new List(); public static List> consumableorderdetailsRecordsview = new List>(); // page public static Integer pagesize { get; set; } public static Integer pageToken { get; set; } public static String sortField { get; set; } public static String sortOrder { get; set; } public static Integer totalcount { get; set; } // public static Integer pagecount { get; set; } // public static Integer currentpage { get; set; } // public static Boolean hasPrevious { get; set; } // public static Boolean hasNext { get; set; } public static List pageRecords { get; set; } public static String soql { get; set; } // public static String sortKey { get; set; } // public static String preSortKey { get; private set; } // public static Boolean sortOrderAsc { get; private set; } // public static String[] sortOrder { get; private set; } // private static String[] columus = new List{ // 'Product2__c.Name__c', // 'Asset_Model_No__c', // '', // 'Category3__c', // 'Category4__c', // 'Category5__c', // '' // }; public static String[] proLimitAndDate = new List{}; private static Map productkucun = new Map(); public static List categoryOptionList { get; set; } @AuraEnabled public static Map categoryOptionMap { get; set; } public static List category4OptionList { get; set; } @AuraEnabled public static Map category4OptionMap { get; set; } public static List category5OptionList { get; set; } @AuraEnabled public static Map category5OptionMap { get; set; } public static String category5 { get; set; } public static String category4 { get; set; } public static String category3 { get; set; } public static String category_Goods { get; set; } public static String category1 { get; set; } public static Boolean editAble { get; set; } // 经销商在库产品ID public static List orderDetZaikuList = new List(); // 产品 ID public static String ESetId { get; set; } public static String idCheck { get; set; } /*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/ private static String accountid = null; public static String accountName { get; set; } // 查看产品 // private String[] ProidListAll = new String[]{}; // 登录者工作地 private static String userWorkLocation; // 经销商用户产品分类(ET、ENG) public static String agencyProType { get; set; } public static String sqlagencyProType; // add by rentx 2021-3-10 public static Boolean hasHos { get; set; } // add by rentx 2021-3-10 public LexInventoryViewController() { consumableorderdetailsRecords = new List(); consumableorderdetailsRecordsview = new List>(); editAble = false; categoryOptionList = new List(); category4OptionList = new List(); category5OptionList = new List(); categoryOptionMap = new Map(); category4OptionMap = new Map(); category5OptionMap = new Map(); // page // pagesize = Integer.valueof(system.label.orderdetLimitsize); // currentpage = 0; } @AuraEnabled public static ResponseBodyLWC init(Integer pageSizeLWC, Integer pageTokenLWC, String sortFieldLWC, String sortOrderLWC) { pageSize = pageSizeLWC; pageToken = pageTokenLWC; sortField = sortFieldLWC; sortOrder = sortOrderLWC; ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; categoryOptionMap = new Map(); category4OptionMap = new Map(); category5OptionMap = new Map(); // 取用户ID String userId = UserInfo.getUserId(); User useracc = [SELECT Accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId]; accountid = useracc.accountid; userWorkLocation = useracc.Work_Location__c; agencyProType = Useracc.UserPro_Type__c; if (String.isBlank(Useracc.UserPro_Type__c)) { agencyProType = 'ET'; } Account accountInfo = [SELECT Name, Dealer_discount__c, Product_Limit_Date__c FROM account WHERE id = :accountid]; accountName = accountInfo.Name; // 经销商查看产品 String product_Limit = accountInfo.Product_Limit_Date__c; if (product_Limit != null && product_Limit != '') { proLimitAndDate = product_Limit.split(','); } List boxRecords = new List(); Map MidMap = new Map(); Map newMidBoxMap = new Map(); Map newMidPieceMap = new Map(); // 库存明细取得 sqlagencyProType = '%' + agencyProType + '%'; orderDetZaikuList = new List(); System.debug('sqlagencyProType = ' + sqlagencyProType); System.debug('accountName = ' + accountName); System.debug('userWorkLocation = ' + userWorkLocation); List orderDetZaiku = [ SELECT count(Id), Consumable_Product__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = TRUE AND Dealer_Shipment__c = FALSE AND Dealer_Saled__c = FALSE AND Lose_Flag__c = FALSE AND Dealer_Returned__c = FALSE AND Bar_Code__c != NULL AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountName AND Cancellation_Flag__c = FALSE AND Arrive_Owner_Work_Location__c = :userWorkLocation GROUP BY Consumable_Product__c ]; for (AggregateResult zaikuId : orderDetZaiku) { orderDetZaikuList.add(String.valueOf(zaikuId.get('Consumable_Product__c'))); } System.debug('orderDetZaikuList = ' + orderDetZaikuList); List CountDel = [ SELECT Id, Bar_Code__c, Name, Inventory_date__c, Consumable_Product__c, Recordtypeid, Guarantee_period_for_products__c, Isoverdue__c, Box_Piece__c, hospitalSpecialOffer__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = TRUE AND Dealer_Shipment__c = FALSE AND Dealer_Saled__c = FALSE AND Dealer_Returned__c = FALSE AND Lose_Flag__c = FALSE AND Cancellation_Flag__c = FALSE AND Bar_Code__c != NULL AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountName AND Arrive_Owner_Work_Location__c = :userWorkLocation ]; System.debug('MidMap = ' + MidMap); System.debug('CountDel111 = ' + CountDel); System.debug('orderDetZaikuList = ' + orderDetZaikuList); List product2Selected = [ SELECT Id, Name, Name__c, Intra_Trade_List_RMB__c, Asset_Model_No__c, Category3__c, Category4__c, Category5__c, SFDA_Status__c, Product2__r.SFDA_Approbation_No__c, Product2__r.SFDA_Expiration_Date__c, Product2__r.Packing_list_manual__c FROM Product2__c WHERE Id IN :orderDetZaikuList ]; System.debug('product2Selected = ' + product2Selected); for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, product2Selected[i]); } System.debug('MidMap = ' + MidMap); /////////////////////====================================update by rentx Map newHosMidBoxMap = new Map(); Map newHosMidPieceMap = new Map(); // update by rentx 2021-01-27 start for (Integer i = 0; i < CountDel.size(); i++) { // 然后循环CountDel做Box和piece2个map if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '盒') { String tex = 'A'; if (CountDel[i].hospitalSpecialOffer__c) { tex = 'B'; } if (newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex)) { ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex) .clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; newMidBoxMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } else { ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidBoxMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } } else if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个') { String tex = 'A'; if (CountDel[i].hospitalSpecialOffer__c) { tex = 'B'; } if (newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex)) { ConsumableorderdetailsInfo Jstage = newMidPieceMap.get( CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex ) .clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } else { ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } } } consumableorderdetailsRecords = new List(); // 把Boxmap里的值从新赋给boxRecords System.debug('newMidBoxMap = ' + newMidBoxMap); for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) { if (bss.allnumber > 0) { bss.sortBy = false; bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; bss.overlimitCount = bss.allnumber - bss.limitCount; boxRecords.add(bss); } } boxRecords.sort(); for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (bss.allnumber > 0) { bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; bss.overlimitCount = bss.allnumber - bss.limitCount; } } for (ConsumableorderdetailsInfo bss : boxRecords) { consumableorderdetailsRecords.add(bss); // 该产品是医院特价产品 if (bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id + '个B')) { if (newMidPieceMap.get(bss.Prod.Id + '个B').hospitalSpecialOffer) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B')); newMidPieceMap.remove(bss.Prod.Id + '个B'); } } if (!bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id + '个A')) { // if (newMidPieceMap.get(bss.Prod.Id+'个A')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A')); newMidPieceMap.remove(bss.Prod.Id + '个A'); // } } } for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (newMidPieceMap.containsKey(bss.Prod.Id + '个B')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B')); } } for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (newMidPieceMap.containsKey(bss.Prod.Id + '个A')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A')); } } productLimtAndDate(); datelimitSearch(); // add by rentx 2021-3-10 start Integer hosnum = 0; // add by rentx 2021-3-10 end for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) { if (productkucun.get(bss.Prod.Id) != null) { bss.guaranteeperiod = productkucun.get(bss.Prod.Id); } // add by rentx 2021-3-10 start if (bss.hospitalSpecialOffer) { hosnum = hosnum + 1; } } if (hosnum > 0) { hasHos = true; } else { hasHos = false; } // add by rentx 2021-3-10 end // listCut(); AggregateResult[] categoryList = [ SELECT Count(id), Category3_text__c c3c FROM Product2__c WHERE Estimation_Entry_Possibility__c = '○' AND Product_Type__c LIKE :agencyProType AND Category3_text__c != NULL GROUP BY Category3_text__c ]; categoryOptionList = new List(); categoryOptionList.add(new SelectOption('', '-无-')); categoryOptionMap.put('', '-无-'); for (AggregateResult category3Search : categoryList) { String deliverycnt = String.valueOf(category3Search.get('c3c')); categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt)); categoryOptionMap.put(deliverycnt, deliverycnt); } category4OptionList = new List(); category4OptionList.add(new SelectOption('', '-无-')); category4OptionMap.put('', '-无-'); category5OptionList = new List(); category5OptionList.add(new SelectOption('', '-无-')); category5OptionMap.put('', '-无-'); System.debug('categoryOptionList===>' + category4OptionList); System.debug('category4OptionList===>' + category4OptionList); System.debug('category5OptionList===>' + category4OptionList); //// 总件数 totalcount = consumableorderdetailsRecords.size(); //// 页数 // pagecount = (totalcount + pagesize - 1) / pagesize; //// 显示第一页 // moveToFirst(); makeCurrentPageRecords(); // data.put('categoryOptionList',categoryOptionList); PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; paginatedAccounts.recordStart = pageToken + 1; paginatedAccounts.pageNumber = pageToken / pageSize + 1; Integer recordEnd = pageSize * paginatedAccounts.pageNumber; paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; paginatedAccounts.totalRecords = totalCount; data.put('paginatedAccounts', paginatedAccounts); data.put('categoryOptionMap', categoryOptionMap); data.put('category4OptionMap', category4OptionMap); data.put('category5OptionMap', category5OptionMap); data.put('agencyProType', agencyProType); data.put('orderDetZaikuList', orderDetZaikuList); data.put('accountid', accountid); data.put('accountName', accountName); data.put('sqlagencyProType', accountName); data.put('userWorkLocation', userWorkLocation); data.put('agencyProType', agencyProType); data.put('pageRecords', pageRecords); data.put('consumableorderdetailsRecords', consumableorderdetailsRecords); data.put('hasHos', hasHos); data.put('productLimtAndDate',proLimitAndDate); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } @AuraEnabled public static ResponseBodyLWC categoryAllload(String category3LWC,String agencyProTypeLWC) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; category3 = category3LWC; agencyProType = '%' + agencyProTypeLWC + '%'; System.debug('category3LWC===>'+category3LWC); System.debug('agencyProType===>'+agencyProType); AggregateResult[] category4List = [ SELECT Count(id), Category4_text__c c4c FROM Product2__c WHERE Estimation_Entry_Possibility__c = '○' AND Category3_text__c = :category3 AND Product_Type__c LIKE :agencyProType AND Category4_text__c != NULL AND Category5_text__c != NULL GROUP BY Category4_text__c ]; category4OptionList = new List(); category4OptionList.add(new SelectOption('', '-无-')); category4OptionMap = new Map(); category4OptionMap.put('', '-无-'); for (AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); category4OptionMap.put(deliverycnt4, deliverycnt4); } AggregateResult[] category5List = [ SELECT Count(id), Category5_text__c c5c FROM Product2__c WHERE Estimation_Entry_Possibility__c = '○' AND Category3_text__c = :category3 AND Product_Type__c LIKE :agencyProType AND Category4_text__c != NULL AND Category5_text__c != NULL GROUP BY Category5_text__c ]; category5OptionList = new List(); category5OptionList.add(new SelectOption('', '-无-')); category5OptionMap = new Map(); category5OptionMap.put('', '-无-'); for (AggregateResult category5Search : category5List) { String deliverycnt5 = String.valueOf(category5Search.get('c5c')); category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); category5OptionMap.put(deliverycnt5, deliverycnt5); } System.debug('类别4'+category4OptionList); System.debug('类别5'+category5OptionList); data.put('category4OptionMap', category4OptionMap); data.put('category5OptionMap', category5OptionMap); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } public static void categoryload() { AggregateResult[] category4List = [ SELECT Count(id), Category4_text__c c4c FROM Product2__c WHERE Estimation_Entry_Possibility__c = '○' AND Category3_text__c = :category3 AND Product_Type__c LIKE :agencyProType AND Category4_text__c != NULL AND Category5_text__c != NULL GROUP BY Category4_text__c ]; category4OptionList = new List(); category4OptionList.add(new SelectOption('', '-无-')); for (AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4)); } AggregateResult[] category5List = [ SELECT Count(id), Category5_text__c c5c FROM Product2__c WHERE Estimation_Entry_Possibility__c = '○' AND Category3_text__c = :category3 AND Product_Type__c LIKE :agencyProType AND Category4_text__c = :category4 AND Category5_text__c != NULL GROUP BY Category5_text__c ]; category5OptionList = new List(); category5OptionList.add(new SelectOption('', '-无-')); for (AggregateResult category5Search : category5List) { String deliverycnt5 = String.valueOf(category5Search.get('c5c')); category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5)); } } // 检索 @AuraEnabled public static ResponseBodyLWC searchConsumableorderdetails( String category1, String Category3, String Category4, String Category5, List orderDetZaikuListLWC, String accountName, string agencyProType, string userWorkLocation, Integer pageSizeLWC, Integer pageTokenLWC, String sortFieldLWC, String sortOrderLWC ) { try { System.debug('orderDetZaikuListLWC===>'+orderDetZaikuListLWC); pageSize = pageSizeLWC; pageToken = pageTokenLWC; sortField = sortFieldLWC; sortOrder = sortOrderLWC; orderDetZaikuList = new List(); orderDetZaikuList = orderDetZaikuListLWC; sqlagencyProType = '%' + agencyProType + '%'; ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; System.debug('====>accountName' + accountName); System.debug('====>sqlagencyProType' + sqlagencyProType); System.debug('====>userWorkLocation' + userWorkLocation); System.debug('====>category1' + category1); System.debug('====>Category3' + Category3); System.debug('====>Category4' + Category4); System.debug('====>Category5' + Category5); // sortKey = '2'; // preSortKey = '2'; // sortOrderAsc = false; // sortOrder = new List(8); // sortOrder = new List{ ' ', '', ' ', ' ', '', '', '', '↓' }; List reSet = new List(); List CountDel = [ SELECT Id, Bar_Code__c, Name, Inventory_date__c, Consumable_Product__c, Recordtypeid, Guarantee_period_for_products__c, Isoverdue__c, Box_Piece__c, hospitalSpecialOffer__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = TRUE AND Dealer_Shipment__c = FALSE AND Dealer_Saled__c = FALSE AND Dealer_Returned__c = FALSE AND Lose_Flag__c = FALSE AND Cancellation_Flag__c = FALSE AND Bar_Code__c != NULL AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountName AND Arrive_Owner_Work_Location__c = :userWorkLocation ]; System.debug('CountDel = ' + CountDel); List boxRecords = new List(); Map MidMap = new Map(); Map newMidBoxMap = new Map(); Map newMidPieceMap = new Map(); // 所有产品取得 String soql = makeSoql(category1, category_Goods, category3, category4, category5); //orderDetZaikuList System.debug('orderDetZaikuList = ' + orderDetZaikuList); System.debug('accountName = ' + accountName); System.debug('soql====>' + soql); //排序 // if (String.isNotBlank(sortField) && String.isNotBlank(sortOrder)) { // if(sortFieldLWC != 'limitCount'){ // soql += ' ORDER BY ' + sortField + ' ' + sortOrder; // } // } System.debug('soql = ' + soql); //soql += ' ORDER BY ' + this.columus[Integer.valueOf(this.sortKey)] + ' ' + (this.sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); List queryList = Database.query(soql); System.debug('queryList = ' + queryList); for (Integer i = 0; i < queryList.size(); i++) { MidMap.put(queryList[i].Id, queryList[i]); } System.debug('MidMap = ' + MidMap); Map newHosMidBoxMap = new Map(); Map newHosMidPieceMap = new Map(); System.debug('CountDel = ' + CountDel); for (Integer i = 0; i < CountDel.size(); i++) { //然后循环CountDel做Box和piece2个map if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '盒') { String tex = 'A'; if (CountDel[i].hospitalSpecialOffer__c) { tex = 'B'; } if (newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex)) { ConsumableorderdetailsInfo Jstage = newMidBoxMap.get( CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex ) .clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; newMidBoxMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } else { ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidBoxMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } } else if (MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个') { String tex = 'A'; if (CountDel[i].hospitalSpecialOffer__c) { tex = 'B'; } if (newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex)) { ConsumableorderdetailsInfo Jstage = newMidPieceMap.get( CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex ) .clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } else { ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Isoverdue__c == 1) { Jstage.limitCount = Jstage.limitCount + 1; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } newMidPieceMap.put(CountDel[i].Consumable_Product__c + CountDel[i].Box_Piece__c + tex, Jstage); } } } consumableorderdetailsRecords = new List(); System.debug('newMidBoxMap = ' + newMidBoxMap); //把Boxmap里的值从新赋给boxRecords for (ConsumableorderdetailsInfo bss : newMidBoxMap.values()) { if (bss.allnumber > 0) { bss.sortBy = false; bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; bss.overlimitCount = bss.allnumber - bss.limitCount; boxRecords.add(bss); } } boxRecords.sort(); for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (bss.allnumber > 0) { bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; bss.overlimitCount = bss.allnumber - bss.limitCount; } } System.debug('boxRecords = ' + boxRecords); for (ConsumableorderdetailsInfo bss : boxRecords) { consumableorderdetailsRecords.add(bss); //该产品是医院特价产品 if (bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id + '个B')) { if (newMidPieceMap.get(bss.Prod.Id + '个B').hospitalSpecialOffer) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B')); newMidPieceMap.remove(bss.Prod.Id + '个B'); } } if (!bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id + '个A')) { // if (newMidPieceMap.get(bss.Prod.Id+'个A')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A')); newMidPieceMap.remove(bss.Prod.Id + '个A'); // } } } for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (newMidPieceMap.containsKey(bss.Prod.Id + '个B')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B')); } } for (ConsumableorderdetailsInfo bss : newMidPieceMap.values()) { if (newMidPieceMap.containsKey(bss.Prod.Id + '个A')) { consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A')); } } productLimtAndDate(); datelimitSearch(); System.debug('consumableorderdetailsRecords zzz = ' + consumableorderdetailsRecords); for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) { if (productkucun.get(bss.Prod.Id) != null) { bss.guaranteeperiod = productkucun.get(bss.Prod.Id); } } //listCut(); // sortKey = '2'; // preSortKey = '2'; // sortOrderAsc = false; // sortOrder = new List(8); // sortOrder = new List{ ' ', '', ' ', ' ', '', '', '', '↓' }; // //总件数 totalcount = consumableorderdetailsRecords.size(); // //页数 // pagecount=(totalcount + pagesize - 1) / pagesize; //显示第一页 //currentpage = 0; //moveToFirst(); makeCurrentPageRecords(); PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; paginatedAccounts.recordStart = pageToken + 1; paginatedAccounts.pageNumber = pageToken / pageSize + 1; Integer recordEnd = pageSize * paginatedAccounts.pageNumber; paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; paginatedAccounts.totalRecords = totalCount; List pageRecordsCompare = new List(); System.debug('queryList = ' + JSON.serialize(queryList)); for (Integer i = 0; i < queryList.size(); i++) { for(ConsumableorderdetailsInfo ci : pageRecords){ if(queryList[i].Id == ci.Prod.Id){ System.debug('queryList[i].Id =' + queryList[i].Id); System.debug('ci.Prod.Id =' + queryList[i].Id); pageRecordsCompare.add(ci); } } } data.put('paginatedAccounts', paginatedAccounts); data.put('accountid', accountid); data.put('userWorkLocation', userWorkLocation); data.put('agencyProType', agencyProType); data.put('pageRecords', pageRecordsCompare); data.put('hasHos', hasHos); system.debug('===========>pageRecords' + pageRecordsCompare); system.debug('===========>data' + data); if (pageRecords.isEmpty()) { res.msg = '未搜索到相关消耗品订单!'; res.status = 'fail'; res.code = 500; } else { res.status = 'Success'; res.msg = '共有' + pageRecords.size() + '条数据'; res.code = 200; System.debug('res = ' + res); } return res; } catch (Exception e) { return new ResponseBodyLWC('Error', 500, e.getStackTraceString(), ''); } } public static void productLimtAndDate() { String nowName = null, nowRightAsstModelNo = null; Map productLimt = new Map(); for (Integer i = 0; i < proLimitAndDate.size(); i++) { nowName = proLimitAndDate[i]; if (nowName.indexOf('|') >= 0) { nowRightAsstModelNo = nowName.subString(0, nowName.indexOf('|')); nowName = nowName.subString(nowName.indexOf('|') + 1); } productLimt.put(nowRightAsstModelNo, nowName); } for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) { if (productLimt.containsKey(ass.Prod.Asset_Model_No__c)) { ass.lowerlimit = decimal.valueOf( productLimt.get(ass.Prod.Asset_Model_No__c).subString(0, productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|')) ); ass.upperlimit = decimal.valueOf( productLimt.get(ass.Prod.Asset_Model_No__c).subString(productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|') + 1) ); } } } public static void datelimitSearch() { List barcodekucun = new List(); List orderkucun = [ SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Recordtypeid, Guarantee_period_for_products__c, Sterilization_limit__c FROM Consumable_order_details2__c WHERE Dealer_Arrive__c = TRUE AND Dealer_Shipment__c = FALSE AND Dealer_Saled__c = FALSE AND Dealer_Returned__c = FALSE AND Lose_Flag__c = FALSE AND Bar_Code__c != NULL AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountName AND Arrive_Owner_Work_Location__c = :userWorkLocation ORDER BY Consumable_Product__c, Sterilization_limit__c ASC ]; for (Integer i = 0; i < orderkucun.size(); i++) { if (productkucun.containsKey(orderkucun[i].Consumable_Product__c)) { continue; } else { productkucun.put(orderkucun[i].Consumable_Product__c, orderkucun[i].Sterilization_limit__c); } } } //名称排序 // public static void SortLimited() { // Map MidMap = new Map(); // Map newMap = new Map(); // if (sortKey == preSortKey) { // // 方向が変わるのみ // sortOrderAsc = !sortOrderAsc; // sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '↑' : '↓'); // } else { // sortOrderAsc = true; // sortOrder[Integer.valueOf(preSortKey)] = ' '; // sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '↑' : '↓'); // } // preSortKey = sortKey; // // 所有产品取得 // String soql = makeSoql(null, null, null, null, null); // soql += ' ORDER BY ' + columus[Integer.valueOf(sortKey)] + ' ' + (sortOrderAsc == true ? 'asc nulls first' : 'desc nulls last'); // List queryList = Database.query(soql); // for (Integer i = 0; i < queryList.size(); i++) { // MidMap.put(queryList[i].Id + '盒', null); // MidMap.put(queryList[i].Id + '个', null); // } // //update by rentx 2020-12-29 // for (Integer i = 0; i < pageRecords.size(); i++) { // if (MidMap.containsKey(pageRecords[i].prod.Id + pageRecords[i].BoxPiece)) { // ConsumableorderdetailsInfo Jstage = pageRecords[i].clone(); // if (Jstage.hospitalSpecialOffer == true) { // newMap.put(pageRecords[i].prod.id + pageRecords[i].BoxPiece, Jstage); // } else { // MidMap.put(pageRecords[i].prod.id + pageRecords[i].BoxPiece, Jstage); // } // } // } // pageRecords = new List(); // //update byr entx 2020-12-29 // //再把map里的值从新赋给CpageRecords // for (ConsumableorderdetailsInfo bss : MidMap.values()) { // if (bss != null) { // pageRecords.add(bss); // if (newMap.get(bss.Prod.Id + bss.BoxPiece) != null) { // pageRecords.add(newMap.get(bss.Prod.Id + bss.BoxPiece)); // newMap.remove(bss.Prod.Id + bss.BoxPiece); // } // } // } // for (ConsumableorderdetailsInfo bss : newMap.values()) { // if (bss != null) { // pageRecords.add(bss); // } // } // } //库存排序 // public static void SortStore() { // if (sortKey == preSortKey) { // // 方向が変わるのみ // sortOrder = !sortOrder; // sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '↑' : '↓'); // } else { // sortOrderAsc = true; // sortOrder[Integer.valueOf(preSortKey)] = ' '; // sortOrder[Integer.valueOf(sortKey)] = (sortOrderAsc == true ? '↑' : '↓'); // } // preSortKey = sortKey; // for (ConsumableorderdetailsInfo ass : pageRecords) { // ass.sortBy = sortOrderAsc; // } // pageRecords.sort(); // } //检索sql文做成 private static String makeSoql(String CateName, String CateCode, String Category3, String Category4, String Category5) { System.debug('orderDetZaikuList = ' + orderDetZaikuList); String sqlTail = '(\''; for (Integer i = 0; i < orderDetZaikuList.size(); i++) { if (i < orderDetZaikuList.size() - 1) { sqlTail += orderDetZaikuList[i] + '\',\''; } else { sqlTail += orderDetZaikuList[i] + '\')'; } } String soql = 'select Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Category3__c,Category4__c,Category5__c,'; soql += ' SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c FROM Product2__c '; soql += ' WHERE Id in' + sqlTail; if (!String.isBlank(CateName)) { soql += ' AND (Name__c like \'%' + String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + '%\' or Asset_Model_No__c like \'%' + String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) + '%\')'; } if (!String.isBlank(Category3)) { soql += ' AND Category3__c = \'' + Category3 + '\''; } if (!String.isBlank(Category4)) { soql += ' AND Category4__c = \'' + Category4 + '\''; } if (!String.isBlank(Category5)) { soql += ' AND Category5__c = \'' + Category5 + '\''; } return soql; } //首页 // public static void moveToFirst() { // if (currentpage == 1) // return; // currentpage = 1; // canMove(); // } // //尾页 // public static void moveToLast() { // if (currentpage >= pagecount) // return; // currentpage = pagecount; // canMove(); // } // //上一页 // public static void moveToPrevious() { // if (currentpage == 1) // return; // currentpage = currentpage - 1; // canMove(); // } // //下一页 // public static void moveToNext() { // if (currentpage >= pagecount) // return; // currentpage = currentpage + 1; // canMove(); // } // //判断是否可翻页 // public static void canMove() { // hasPrevious = false; // hasNext = false; // if (pagecount > 1 && currentpage > 1) // hasPrevious = true; // if (pagecount > 1 && currentpage < pagecount) // hasNext = true; // } //刷新当前页 // public static PageReference refreshPageSize() { // makeCurrentPageRecords(); // return null; // } //编辑当前页内容 public static void makeCurrentPageRecords() { // pageRecords = new List(); // System.debug('consumableorderdetailsRecords =' + consumableorderdetailsRecords); // for (Integer i = 0; i < consumableorderdetailsRecords.size(); i++) { // pageRecords.add(consumableorderdetailsRecords.get(i)); // } Integer startIdx; Integer endIdx; pageRecords = new List(); startIdx = pageToken; endIdx = pageToken + pageSize; if (endIdx > consumableorderdetailsRecords.size()) { endIdx = consumableorderdetailsRecords.size(); } for (Integer i = startIdx; i < endIdx; i++) { pageRecords.add(consumableorderdetailsRecords.get(i)); } } //分页Bean public class PaginatedAccounts { @AuraEnabled public Integer nextPageToken; @AuraEnabled public Integer pageNumber { get; set; } @AuraEnabled public Integer totalRecords { get; set; } @AuraEnabled public Integer recordStart { get; set; } @AuraEnabled public Integer recordEnd { get; set; } } // Data Bean class ConsumableorderdetailsInfo implements Comparable { @AuraEnabled public Consumable_order_details2__c esd { get; set; } @AuraEnabled public Product2__c Prod { get; set; } @AuraEnabled public Decimal allnumber { get; set; } @AuraEnabled public Integer packing_list { get; set; } @AuraEnabled public Date expiration_Date { get; set; } @AuraEnabled public String approbation_No { get; set; } @AuraEnabled public Consumable_order__c Concc { get; set; } @AuraEnabled public Boolean sortBy { get; set; } @AuraEnabled public Decimal upperlimit { get; set; } @AuraEnabled public Decimal lowerlimit { get; set; } @AuraEnabled public String BoxPiece { get; set; } @AuraEnabled public Date guaranteeperiod { get; set; } @AuraEnabled public Decimal limitCount { get; set; } @AuraEnabled public Decimal overlimitCount { get; set; } @AuraEnabled public Boolean hospitalSpecialOffer { get; set; } public ConsumableorderdetailsInfo(Product2__c e) { esd = new Consumable_order_details2__c(); Prod = e; allnumber = 0; limitCount = 0; overlimitCount = 0; } // 排序 public Integer compareTo(Object compareTo) { ConsumableorderdetailsInfo compareToesd = (ConsumableorderdetailsInfo) compareTo; Integer returnValue = 0; if (sortBy == false) { if (allnumber > compareToesd.allnumber) { returnValue = -1; } else if (allnumber < compareToesd.allnumber) { returnValue = 1; } return returnValue; } else { if (allnumber > compareToesd.allnumber) { returnValue = 1; } else if (allnumber < compareToesd.allnumber) { returnValue = -1; } return returnValue; } } } }