public without sharing class LexSummonsCreatController { public static Map schemaMap = Schema.getGlobalDescribe(); /*****************検索用******************/ //经销商用户产品分类(ET、ENG) @AuraEnabled public static String agencyProType { get; set; } public static Consumable_order__c coc { get; set; } // 画view用, 可能是 出库指示单, 也有可能是到货单, 也有可能 空instance public static User localuser { get; set; } public static String category1 { get; set; } public static Integer noOfRecords { get; set; } //public String category_Goods {get ; set;} public static Boolean cansee { get; set; } public static Integer size { get; set; } //经销商定价查看权限 //public static ApexPages.StandardSetController setCon { get; set; } public static Boolean dealerPricesee { get; set; } /*****************画面初始化用********************************/ /******20160313_add**************/ public static String IdCheck { get; set; } public static Boolean editAble { get; set; } public static String statusEdit { get; set; } public static String alertMessage { get; set; } public static String SearchDone { get; set; } public static List zaikuId = new List(); public static List orderzaikuId = new List(); //附件 public static List attachmentRecoeds { get; set; } public static Boolean getExistarrive() { return (coc.Arrive_Order__c != null); } //总价格计算结果 @AuraEnabled public static Decimal sumPrice { get; set; } /******20160317_add**************/ public static String SummonsFlag { get; set; } // 新規: hidden, 更新: visible public static String category5 { get; set; } public static String category4 { get; set; } public static String category3 { get; set; } public static List categoryOptionList { get; set; } public static List category4OptionList { get; set; } public static List category5OptionList { get; set; } @AuraEnabled public static Map categoryOptionMap { get; set; } @AuraEnabled public static Map category4OptionMap { get; set; } @AuraEnabled public static Map category5OptionMap { get; set; } /*****************画面表示Bean******************/ private static List consumableorderdetailsSelectRecords = new List(); //明细2 @AuraEnabled public static List consumableorderdetailsRecords { get; set; } //错误明细 @AuraEnabled public static List consumableorderdetailsRecordserror { get; set; } @AuraEnabled public static List pageRecords { get; set; } public static List pageRecordsLwc { get; set; } //public List> consumableorderdetailsRecordsview { get; set; } public static List consumableorderdetails2Records { get; set; } public static List consumableInvoiceRecords { get; set; } private static List consumableproductdetailsRecords = new List(); private static List attachmentinfo = new List(); public static List product2Selected = new List(); @AuraEnabled public static Map orderpieceorboxMap { get; set; } @AuraEnabled public static List orderdetails { get; set; } @AuraEnabled public static Map orderagencypriceMap { get; set; } @AuraEnabled public static Map orderpriceMap { get; set; } @AuraEnabled public static Map orderdetCountMap { get; set; } @AuraEnabled public static Boolean hasSpecialHos { get; set; } //选择产品size public static Integer consumableorderdetailsCount { get { return pageRecords == null ? 0 : pageRecords.size(); } } //消耗品明细2数量 public static Integer consumableorderdetails2Count { get { return consumableorderdetails2Records == null ? 0 : consumableorderdetails2Records.size(); } } //订货单号 public static String consumableorderId { get { return (coc.Arrive_Order__c); } } //选择框 public static List provinceOpts { get; set; } @AuraEnabled public static Map provinceOptsMap { get; set; } public static String SecondDealer { get; set; } //public List orderForHospitalOpts { get; set; } public static String HospitalInfo { get; set; } public static String HospitalName { get; set; } public static Boolean EditDelCommitBtnDisabled { get; private set; } public static Boolean saveBtnDisabled { get; private set; } public static Boolean SorderBtnDisabled { get; private set; } // 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 addSize { get; set; } //List reSetLwc public static List addData { get; set; } public static Map skipData { get; set; } // 保存后动作: 1.检索 2.排序 // 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{ // 'Consumable_Product__r.Name', // 'Consumable_Product__r.Asset_Model_No__c', // 'Consumable_Product__r.Intra_Trade_List_RMB__c', // '', // '', // 'Consumable_Product__r.Category3__c', // 'Consumable_Product__r.Category4__c', // 'Consumable_Product__r.Category5__c' // }; // private static String[] columus_no = new List{ // 'Product2__c.Name', // 'Product2__c.Asset_Model_No__c', // 'Product2__c.Intra_Trade_List_RMB__c', // '', // '', // 'Category3__c', // 'Category4__c', // 'Category5__c' // }; //到货单明细1 private static List consumableorderdetailsSelected = new List(); //到货单明细2 private static List consumablearriveproductdetailsSelected = new List(); //出库单明细2 private static List consumableorderdetails2RecordsList = new List(); /*****************ソート時再検索条件(画面からの入力条件を無視するため)******************/ //private String cate1ForSort = null; private static String accountid = null; @AuraEnabled public static String accountName { get; set; } // 产品 ID private static String ESetId = ''; @AuraEnabled public static String arriveorder { get; set; } private static String userId = ''; //private String[] ProidListAll = new String[]{}; // 登录者工作地 @AuraEnabled public static String userWorkLocation { get; set; } //add by rentx 2021-01-29 public static List outOutPatternOptionList { get; set; } @AuraEnabled public static Map outOutPatternOptionMap { get; set; } public static String outOutPattern { get; set; } public static Boolean hasHos { get; set; } @AuraEnabled public static Boolean hasHosPro { get; set; } private static Map HosProMap = new Map(); //add by rentx 2021-01-29 public LexSummonsCreatController() { System.debug('LexSummonsCreatController'); size = Integer.valueOf(System.Label.orderdetLimitsize); // ESetId = ApexPages.currentPage().getParameters().get('esetId'); // arriveorder = ApexPages.currentPage().getParameters().get('arriveorder'); // statusEdit = ApexPages.currentPage().getParameters().get('KeyWords'); provinceOpts = new List(); provinceOptsMap = new Map(); pageRecords = new List(); consumableproductdetailsRecords = new List(); consumableorderdetailsSelectRecords = new List(); attachmentRecoeds = new List(); consumableorderdetails2Records = new List(); consumableInvoiceRecords = new List(); categoryOptionList = new List(); category4OptionList = new List(); category5OptionList = new List(); categoryOptionMap = new Map(); category4OptionMap = new Map(); category5OptionMap = new Map(); outOutPatternOptionMap = new Map(); outOutPatternOptionMap.put('', '-无-'); outOutPatternOptionMap.put('ishos', '医院特价产品'); outOutPatternOptionMap.put('nothos', '非医院特价产品'); outOutPatternOptionList.add(new SelectOption('', '-无-')); outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); HospitalName = ''; } public static void firstInit(String ESetidJs) { System.debug('enter firstInit'); ESetid = ESetidJs; System.debug('ESetid = ' + ESetid); size = Integer.valueOf(System.Label.orderdetLimitsize); provinceOpts = new List(); provinceOptsMap = new Map(); pageRecords = new List(); consumableproductdetailsRecords = new List(); consumableorderdetailsSelectRecords = new List(); attachmentRecoeds = new List(); consumableorderdetails2Records = new List(); consumableInvoiceRecords = new List(); categoryOptionList = new List(); category4OptionList = new List(); category5OptionList = new List(); categoryOptionMap = new Map(); category4OptionMap = new Map(); category5OptionMap = new Map(); outOutPatternOptionMap = new Map(); outOutPatternOptionMap.put('', '-无-'); outOutPatternOptionMap.put('ishos', '医院特价产品'); outOutPatternOptionMap.put('nothos', '非医院特价产品'); // outOutPatternOptionList.add(new SelectOption('', '-无-')); // outOutPatternOptionList.add(new SelectOption('ishos', '医院特价产品')); // outOutPatternOptionList.add(new SelectOption('nothos', '非医院特价产品')); HospitalName = ''; } // 画面初始化 @AuraEnabled public static ResponseBodyLWC init(String ESetidJs, String statusEdit, Integer pageSizeLWC, Integer pageTokenLWC) { // try { firstInit(ESetidJs); statusEdit = statusEdit; arriveorder = ''; HospitalName = ''; provinceOpts = new List(); provinceOptsMap = new Map(); ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; // public static Integer pagesize { get; set; } // public static Integer pageToken { get; set; } // public static String sortField { get; set; } // public static String sortOrder { get; set; } pagesize = pageSizeLWC; pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; // sortKey = '1'; // preSortKey = '1'; // sortOrderAsc = false; // sortOrder = new List(8); // sortOrder = new List{ ' ', ' ', ' ', ' ', '↓', '', '', '' }; //cate1ForSort = ''; sumPrice = 0; IdCheck = EsetId; if (ESetId != null && ESetId != '' && (statusEdit == '' || statusEdit == null)) { editAble = false; } else if ((ESetId == null || ESetId == '') && (statusEdit == '' || statusEdit == null)) { editAble = true; } else if (ESetId != null && ESetId != '' && statusEdit != '' && statusEdit != null) { editAble = true; } userId = UserInfo.getUserId(); localuser = [SELECT id, State_Hospital__c FROM User WHERE id = :UserInfo.getUserId()]; //userId = '00510000005QO75'; 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 FROM account WHERE id = :accountid]; accountName = accountInfo.Name; //coc.Order_date__c = Date.today(); list Dealerelationship = new List(); Dealerelationship = [ SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name FROM Dealer_elationship__c WHERE Dealer_principal__c = :accountid ]; List AgencyHospitalLink = new List(); AgencyHospitalLink = [SELECT Id, Hospital__c, Hospital__r.Name FROM Agency_Hospital_Link__c WHERE Agency__c = :accountid]; //add by rentx 2021-3-1 start //判断当前经销商下是否有特价医院 List hlist = [SELECT id, product__c FROM hospitalprice__c WHERE account__c = :accountid]; if (hlist == null || hlist.size() == 0) { hasHos = false; } else { for (hospitalprice__c hp : hlist) { HosProMap.put(hp.product__c, ''); } hasHos = true; } //add by rentx 2021-3-1 end saveBtnDisabled = false; SorderBtnDisabled = false; String sqlagencyProType = '%' + agencyProType + '%'; coc = new Consumable_order__c(); consumableorderdetailsSelectRecords = new List(); Map MidMap = new Map(); //add by rentx 2021-01-29 Map MidMap2 = new Map(); //add by rentx 2021-01-29 List orderdetailCount = [ SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE AND Bar_Code__c != NULL AND Isoverdue__c = 1 AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountName AND Arrive_Owner_Work_Location__c = :userWorkLocation GROUP BY Consumable_Product__c, Box_Piece__c ]; for (AggregateResult orderdetail : orderdetailCount) { zaikuId.add(String.valueOf(orderdetail.get('cpc'))); } System.debug('sqlagencyProType = ' + sqlagencyProType); System.debug('userWorkLocation = ' + userWorkLocation); System.debug('accountName = ' + accountName); List CountDel = [ SELECT Id, Bar_Code__c, Name, Inventory_date__c, Consumable_Product__c, Consumable_Product__r.Asset_Model_No__c, Recordtypeid, Box_Piece__c, ProductPacking_list_manual__c, //add by rentx 2020-11-27 start hospitalSpecialOffer__c //add by rentx 2020-11-27 end 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 Isoverdue__c = 1 AND Product_Type__c LIKE :sqlagencyProType AND Arrive_Owner_Work_Location__c = :userWorkLocation AND Dealer_Info_text__c = :accountName ]; // 新規 if (ESetId == null || ESetId == '') { SummonsFlag = 'hidden'; String msoql = makeSoqlinventory(); initStandardController(msoql); System.debug('msoql = ' + msoql); product2Selected = Database.query(msoql); if (String.isBlank(arriveorder)) { EditDelCommitBtnDisabled = true; for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); } for (Integer i = 0; i < CountDel.size(); i++) { String str = ''; if (CountDel[i].hospitalSpecialOffer__c) { str = 'isHos'; } else { str = 'notHos'; } //明细2对应的产品存在于MidMap中 if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { //设置map中key的后缀 用于区分医院特价和非医院特价 if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } else { //midmap2中没有对应的产品 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } } System.debug('MidMap2.size() = ' + MidMap2.size()); /*//然后循环CountDel去修改map里的allnumber if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); Jstage.allnumber = Jstage.allnumber+1 ; if(CountDel[i].Box_Piece__c == '盒'){ Jstage.Boxnumber = Jstage.Boxnumber + 1; }else if(CountDel[i].Box_Piece__c == '个'){ Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; }else{ Jstage.hospitalSpecialOffer = false; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c+str, Jstage); }*/ } //update by rentx 2021-01-29 end //再把map里的值从新赋给ConsumableorderdetailsRecords //update by rentx 2021-01-29 // for(ConsumableorderdetailsInfo bss : MidMap.values()){ for (ConsumableorderdetailsInfo bss : MidMap2.values()) { //update by rentx 2021-01-29 //if(bss.allnumber>0){ bss.packinglist = 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; consumableorderdetailsSelectRecords.add(bss); //} } Integer ishosnum = 0; for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { //ass.sortBy = sortOrderAsc; //add by rentx 2021-3-10 if (ass.hospitalSpecialOffer) { ishosnum = ishosnum + 1; } } if (ishosnum > 0) { hasHosPro = true; } else { hasHosPro = false; } consumableorderdetailsSelectRecords.sort(); //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx System.debug('makepagerecords1'); makepagerecords(); //listCut(); } else { if (statusEdit == '' || statusEdit == null) { editAble = false; } else if (statusEdit != '' && statusEdit != null) { editAble = true; } // upadte start by vivek 2019-7-15 // coc = [SELECT Id,Name,Summons_Order_type__c,SummonsStatus_c__c,Order_ForDealerText__c, // Dealer_Info__c,Order_ForDealer__c,Order_ForDealer__r.Name,Order_ForDealerTextID__c, // Order_ForHospital__c,SummonsForDirction__c,Order_date__c,Arrive_Order__c, // Order_status__c,Shipment_total_amount__c,Offers_Price__c, // Billed_Status__c,ShipmentAccount__c,Order_Dealer_Info__c,Order_ForCustomerText__c,ConInvoice_Code__c,Onchange_order__c // FROM Consumable_order__c // WHERE Id =:arriveorder AND Order_Owner_WorkLocal__c =: userWorkLocation // AND recordtypeid = :System.Label.RT_ConOrder_Arrive]; coc = [ SELECT Id, Name, Summons_Order_type__c, NoConfirmedPrice__c, SummonsStatus_c__c, Order_ForDealerText__c, Dealer_Info__c, Order_ForDealer__c, Order_ForDealer__r.Name, Order_ForDealerTextID__c, Order_ForHospital__c, SummonsForDirction__c, Order_date__c, Arrive_Order__c, Order_status__c, Shipment_total_amount__c, Offers_Price__c, Billed_Status__c, ShipmentAccount__c, Order_Dealer_Info__c, Order_ForCustomerText__c, ConInvoice_Code__c, Onchange_order__c, OutPattern__c FROM Consumable_order__c WHERE Id = :arriveorder AND Order_Owner_WorkLocal__c = :userWorkLocation AND recordtypeid = :System.Label.RT_ConOrder_Arrive ]; // update end by vivek 2019-7-15 //明细1获取 consumableorderdetailsSelected = [ SELECT Id, Dealer_Custom_Price__c, Delivery_List_RMB__c, Consumable_Product__r.Name__c, Name, Consumable_order__c, Consumable_Product__c, Consumable_Product__r.Name, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Shipment_Count__c, Consumable_Product__r.Intra_Trade_List_RMB__c, Consumable_Product__r.Asset_Model_No__c, Sum_of_money__c, Box_Piece__c, ProductPacking_list_manual__c, Consumable_Product__r.SFDA_Status__c, Consumable_count__c, Invoiced_Procount__c, RrturnPro_count__c, InvoiceProNot_count__c, //Unitprice_To_agency__c, Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c FROM Consumable_Orderdetails__c WHERE Consumable_order__c = :coc.Arrive_Order__c ORDER BY Name ]; for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { orderzaikuId.add(cdc1.Consumable_Product__c); } msoql = makeSoqlorderdet(); product2Selected = Database.query(msoql); size = product2Selected.size(); initStandardController(msoql); for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); } //update by rentx 2021-01-29 /*for(Integer i = 0 ; i< CountDel.size();i++){ //然后循环CountDel去修改map里的allnumber if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); Jstage.allnumber = Jstage.allnumber+1 ; if(CountDel[i].Box_Piece__c == '盒'){ Jstage.Boxnumber = Jstage.Boxnumber + 1; }else if(CountDel[i].Box_Piece__c == '个'){ Jstage.Piecenumber = Jstage.Piecenumber + 1; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ for (Integer i = 0; i < CountDel.size(); i++) { String str = ''; if (CountDel[i].hospitalSpecialOffer__c) { str = 'isHos'; } else { str = 'notHos'; } //明细2对应的产品存在于MidMap中 if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { //设置map中key的后缀 用于区分医院特价和非医院特价 if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } else { //midmap2中没有对应的产品 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } } } //再把map里的值从新赋给ConsumableorderdetailsRecords //update by rentx 2021-01-29 // for(ConsumableorderdetailsInfo bss : MidMap.values()){ for (ConsumableorderdetailsInfo bss : MidMap2.values()) { //update by rentx 2021-01-29 bss.packinglist = 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; consumableorderdetailsSelectRecords.add(bss); } //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test11111' + consumableorderdetailsSelected.size())); //return; Integer ishosnum = 0; for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { //ass.sortBy = sortOrderAsc; for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { cdc1.Shipment_Count__c = cdc1.Consumable_count__c; if (ass.prod.Id == cdc1.Consumable_Product__c) { ass.check = true; ass.orderdetails1 = cdc1; } } if (ass.hospitalSpecialOffer == true) { ishosnum = ishosnum + 1; } } if (ishosnum > 0) { hasHosPro = true; } else { hasHosPro = false; } consumableorderdetailsSelectRecords.sort(); //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx System.debug('makepagerecords2'); makepagerecords(); consumablearriveproductdetailsSelected = [ SELECT Id, Name, Intra_Trade_List_RMB__c, Asset_Model_No__c, Consumable_Product__c, Consumable_Product__r.Name, Consumable_Product__r.Name__c, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Sterilization_limit__c, Deliver_date__c, Bar_Code__c, Arrive_date__c, Send_Date__c, Consumable_order_minor__r.Name, Consumable_order_minor__c, Dealer_Arrive__c, Delivery_List_RMB__c, Box_Piece__c, ProductPacking_list_manual__c, //add by rentx start hospitalSpecialOffer__c //add by rentx end FROM Consumable_order_details2__c WHERE Consumable_order_minor__c = :coc.Arrive_Order__c AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery AND Dealer_Arrive__c = TRUE ORDER BY Name ]; for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { if ( consumablearriveproductdetailsSelected[i].hospitalSpecialOffer__c && HosProMap.containsKey(consumablearriveproductdetailsSelected[i].Consumable_product__c) ) { coc.OutPattern__c = true; } consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); } } } else { // 更新、 SummonsFlag = 'visible'; // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select consumableInvoiceRecords = [ SELECT Id, Name, Invoice_Date__c, NoConfirmedPrice__c, Invoice_total_amount__c, Invoice_status__c FROM Consumable_order__c WHERE Id IN (SELECT Invoice_Code_link__c FROM Consumable_order_LinkTable__c WHERE Outboundorder_Code_link__c = :ESetId) AND Invoice_status__c != '草案中' ]; System.debug('coc ESetId = ' + ESetId); System.debug('coc userWorkLocation = ' + userWorkLocation); coc = [ SELECT Id, Name, Summons_Order_type__c, NoConfirmedPrice__c, SummonsStatus_c__c, Order_ForDealerText__c, Dealer_Info__c, Order_ForDealer__c, Order_ForDealer__r.Name, Order_ForDealerTextID__c, Order_ForHospital__c, SummonsForDirction__c, Order_date__c, Arrive_Order__c, Order_status__c, Shipment_total_amount__c, Offers_Price__c, Billed_Status__c, ShipmentAccount__c, Order_Dealer_Info__c, Order_ForCustomerText__c, ConInvoice_Code__c, Onchange_order__c, OutPattern__c FROM Consumable_order__c WHERE Id = :ESetId AND Order_Owner_WorkLocal__c = :userWorkLocation AND Order_type__c = '传票' ]; // update start by vivek 2019-7-15 if (getExistarrive()) { arriveorder = coc.Arrive_Order__c; } // 到货订单来的时候 if (getExistarrive()) { if (editAble) { alertMessage = '到货订单直接出库,出库单明细不可编辑'; } if (coc.SummonsStatus_c__c == '已提交' || coc.SummonsStatus_c__c == '批准') { system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); saveBtnDisabled = true; SorderBtnDisabled = true; EditDelCommitBtnDisabled = false; } //医院二级经销商分类 Integer io = 0; while (io < Dealerelationship.size()) { if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) { SecondDealer = Dealerelationship[io].Dealer_subordinate__c; coc.Order_ForDealer__c = null; io = io + Dealerelationship.size(); } io++; } Integer ik = 0; while (ik < AgencyHospitalLink.size()) { if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) { HospitalInfo = AgencyHospitalLink[ik].Hospital__c; HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; coc.Order_ForHospital__c = null; ik = ik + AgencyHospitalLink.size(); } ik++; } //出库单明细1取得 consumableorderdetailsSelected = [ SELECT Id, Dealer_Custom_Price__c, Delivery_List_RMB__c, Consumable_Product__r.Name__c, Consumable_Product__r.SFDA_Status__c, Name, Consumable_order__c, Consumable_Product__c, Consumable_Product__r.Name, Shipment_Count__c, Consumable_Product__r.Intra_Trade_List_RMB__c, Consumable_Product__r.Asset_Model_No__c, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Shipment_amount__c, //Unitprice_To_agency__c, Box_Piece__c, ProductPacking_list_manual__c, Invoiced_Procount__c, RrturnPro_count__c, InvoiceProNot_count__c, Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, isOutPattern__c FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation ORDER BY Name ]; Map cocMap = new Map(); for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { sumPrice += cdc1.Shipment_amount__c; orderzaikuId.add(cdc1.Consumable_Product__c); //add by rentx 2021-2-26 String tempId = cdc1.Consumable_product__c; if (cdc1.isOutPattern__c) { cocMap.put(tempId + 'ishos', cdc1); } else { cocMap.put(tempId + 'nothos', cdc1); } //add by rentx 2021-2-26 } String msoql = makeSoqlorderdet(); product2Selected = Database.query(msoql); size = product2Selected.size(); initStandardController(msoql); for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); } //update by rentx 2021-01-29 /*for(Integer i = 0 ; i< CountDel.size();i++){ //然后循环CountDel去修改map里的allnumber if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){ ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c); Jstage.allnumber = Jstage.allnumber+1 ; if(CountDel[i].Box_Piece__c == '盒'){ Jstage.Boxnumber = Jstage.Boxnumber + 1; }else if(CountDel[i].Box_Piece__c == '个'){ Jstage.Piecenumber = Jstage.Piecenumber + 1; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap.put(CountDel[i].Consumable_Product__c, Jstage); } }*/ for (Integer i = 0; i < CountDel.size(); i++) { String str = ''; if (CountDel[i].hospitalSpecialOffer__c) { str = 'isHos'; } else { str = 'notHos'; } //明细2对应的产品存在于MidMap中 if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { //设置map中key的后缀 用于区分医院特价和非医院特价 if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } else { //midmap2中没有对应的产品 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } } } //update by rentx 2021-01-29 consumableorderdetailsSelectRecords = new List(); //再把map里的值从新赋给ConsumableorderdetailsRecords //update by rentx 2021-01-29 // for(ConsumableorderdetailsInfo bss : MidMap.values()){ for (ConsumableorderdetailsInfo bss : MidMap2.values()) { //update by rentx 2021-01-29 //if(bss.allnumber > 0){ //bss.UnitpriceToagency = bss.orderdetails1.Unitprice_To_agency__c == null || bss.orderdetails1.Unitprice_To_agency__c == 0 ? '' :bss.orderdetails1.Unitprice_To_agency__c.format(); bss.packinglist = 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; //update by rentx 2021-2-26 start if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) { consumableorderdetailsSelectRecords.add(bss); } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) { consumableorderdetailsSelectRecords.add(bss); } //update by rentx 2021-2-26 end // consumableorderdetailsSelectRecords.add(bss); //} } Integer ishosnum = 0; for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { //update by rentx 2012-3-1 start // if(ass.prod.Id == cdc1.Consumable_Product__c){ // ass.check = true; // ass.orderdetails1 = cdc1; // } if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) { ass.check = true; ass.orderdetails1 = cdc1; } //update by rentx 2012-3-1 end } if (ass.hospitalSpecialOffer == true) { ishosnum = ishosnum + 1; } } if (ishosnum > 0) { hasHosPro = true; } else { hasHosPro = false; } //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx System.debug('makepagerecords3'); makepagerecords(); //listCut(); // 消耗品明细2を取得 consumableorderdetails2RecordsList = [ SELECT Id, Name, SerialLotNo__c, Consumable_Product__r.Name__c, TracingCode__c, Sterilization_limit__c, Consumable_Product__c, Consumable_Product__r.Name, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Return_date__c, Invoice_Date__c, Box_Piece__c, ProductPacking_list_manual__c, //add by rentx start hospitalSpecialOffer__c //add by rentx end FROM Consumable_order_details2__c WHERE Consumable_ZS_order__c = :ESetId ORDER BY Name ]; for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) { consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i])); } //产品明细取得 consumablearriveproductdetailsSelected = [ SELECT Id, Delivery_List_RMB__c, Consumable_Product__r.Name__c, Name, Consumable_Product__r.SFDA_Status__c, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Consumable_Product__c, Consumable_Product__r.Name, Sterilization_limit__c, Consumable_Product__r.Intra_Trade_List_RMB__c, Consumable_Product__r.Asset_Model_No__c, Box_Piece__c, ProductPacking_list_manual__c, //add by rentx start hospitalSpecialOffer__c //add by rentx end FROM Consumable_order_details2__c WHERE Consumable_ZS_order__c = :ESetId ORDER BY Name ]; for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); } } else { // 不是到货订单来的时候 if (coc.SummonsStatus_c__c == '已提交' || coc.SummonsStatus_c__c == '批准') { system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c); saveBtnDisabled = true; SorderBtnDisabled = true; EditDelCommitBtnDisabled = false; } //医院二级经销商分类 Integer io = 0; while (io < Dealerelationship.size()) { if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) { SecondDealer = Dealerelationship[io].Dealer_subordinate__c; coc.Order_ForDealer__c = null; io = io + Dealerelationship.size(); } io++; } Integer ik = 0; while (ik < AgencyHospitalLink.size()) { if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) { HospitalInfo = AgencyHospitalLink[ik].Hospital__c; HospitalName = AgencyHospitalLink[ik].Hospital__r.Name; coc.Order_ForHospital__c = null; ik = ik + AgencyHospitalLink.size(); } ik++; } // 消耗品明细1を取得 consumableorderdetailsSelected = [ SELECT Id, Dealer_Custom_Price__c, Delivery_List_RMB__c, Consumable_Product__r.Name__c, Consumable_Product__r.SFDA_Status__c, Name, Consumable_order__c, Consumable_Product__c, Consumable_Product__r.Name, Shipment_Count__c, Consumable_Product__r.Intra_Trade_List_RMB__c, Consumable_Product__r.Asset_Model_No__c, Shipment_amount__c, Box_Piece__c, ProductPacking_list_manual__c, Invoiced_Procount__c, RrturnPro_count__c, //Unitprice_To_agency__c, InvoiceProNot_count__c, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c, isOutPattern__c FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation ORDER BY Name ]; //add by rentx 202-2-26 Map cocMap = new Map(); for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { sumPrice += cdc1.Shipment_amount__c; orderzaikuId.add(cdc1.Consumable_Product__c); //add by rentx 2021-2-26 String tempId = cdc1.Consumable_product__c; if (cdc1.isOutPattern__c) { cocMap.put(tempId + 'ishos', cdc1); } else { cocMap.put(tempId + 'nothos', cdc1); } //add by rentx 2021-2-26 } String msoql = makeSoqlorderdet(); product2Selected = Database.query(msoql); size = product2Selected.size(); initStandardController(msoql); for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); } for (Integer i = 0; i < CountDel.size(); i++) { String str = ''; if (CountDel[i].hospitalSpecialOffer__c) { str = 'isHos'; } else { str = 'notHos'; } //明细2对应的产品存在于MidMap中 if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { //设置map中key的后缀 用于区分医院特价和非医院特价 if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } else { //midmap2中没有对应的产品 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } } } //再把map里的值从新赋给ConsumableorderdetailsRecords //update by rentx 2021-01-29 // for(ConsumableorderdetailsInfo bss : MidMap.values()){ for (ConsumableorderdetailsInfo bss : MidMap2.values()) { //update by rentx 2021-01-29 //if(bss.allnumber>0){ bss.packinglist = 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; //update by rentx 2021-2-26 start if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) { consumableorderdetailsSelectRecords.add(bss); } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) { consumableorderdetailsSelectRecords.add(bss); } // consumableorderdetailsSelectRecords.add(bss); //} } // return null; Integer ishosnum = 0; for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) { //ass.sortBy = sortOrderAsc; for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) { //update by rentx 2012-3-1 start // if(ass.prod.Id == cdc1.Consumable_Product__c){ // ass.check = true; // ass.orderdetails1 = cdc1; // } if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) { ass.check = true; ass.orderdetails1 = cdc1; } //update by rentx 2012-3-1 end } if (ass.hospitalSpecialOffer == true) { ishosnum = ishosnum + 1; } } if (ishosnum > 0) { hasHosPro = true; } else { hasHosPro = false; } consumableorderdetailsSelectRecords.sort(); //add by rentx noOfRecords = consumableorderdetailsSelectRecords.size(); //add by rentx System.debug('makepagerecords4'); makepagerecords(); // 消耗品明细2を取得 consumableorderdetails2RecordsList = [ SELECT Id, Name, SerialLotNo__c, Consumable_Product__r.Name__c, TracingCode__c, Sterilization_limit__c, Consumable_Product__c, Consumable_Product__r.Name, Consumable_Product__r.Category3__c, Consumable_Product__r.Category4__c, Consumable_Product__r.Category5__c, Return_date__c, Invoice_Date__c, Box_Piece__c, ProductPacking_list_manual__c, //add by rentx start hospitalSpecialOffer__c //add by rentx end FROM Consumable_order_details2__c WHERE Consumable_ZS_order__c = :ESetId ORDER BY Name ]; for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) { consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i])); } } } //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test++++++' + SecondDealer)); if (SecondDealer == null || SecondDealer == '') { provinceOpts.add(new SelectOption('', '-无-')); provinceOptsMap.put('', '-无-'); for (Integer i = 0; i < Dealerelationship.size(); i++) { provinceOpts.add( new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name) ); provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name); } } else { provinceOpts.add(new SelectOption('', '-无-')); provinceOptsMap.put('', '-无-'); for (Integer i = 0; i < Dealerelationship.size(); i++) { if (Dealerelationship[i].Dealer_subordinate__c == SecondDealer) { provinceOpts.add( new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name) ); provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name); } } for (Integer i = 0; i < Dealerelationship.size(); i++) { if (Dealerelationship[i].Dealer_subordinate__c != SecondDealer) { provinceOpts.add( new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name) ); provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name); } } } Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe(); cansee = dfr.isAccessible(); Schema.DescribeFieldResult dealerPrice = Consumable_orderdetails__c.Dealer_Custom_Price__c.getDescribe(); dealerPricesee = dealerPrice.isAccessible(); // 显示数据条数信息 // makeMessage(); //附件 attachmentinfo = [SELECT Id, Name, OwnerId FROM Attachment WHERE parentid = :ESetId]; if (attachmentinfo.size() > 0) { for (Integer i = 0; i < attachmentinfo.size(); i++) { attachmentRecoeds.add(new ConsumableorderdetailsInfo(attachmentinfo[i])); } } AggregateResult[] categoryList = [ SELECT Count(id), Category3_text__c c3c FROM Product2__c WHERE Category3_text__c != NULL GROUP BY Category3_text__c ]; categoryOptionList = new List(); categoryOptionList.add(new SelectOption('', '-无-')); categoryOptionMap = new Map(); 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 = new Map(); category4OptionMap.put('', '-无-'); /*for(AggregateResult category4Search : category4List) { String deliverycnt4 = String.valueOf(category4Search.get('c4c')); category4OptionList.add(new SelectOption(deliverycnt4,deliverycnt4)); }*/ category5OptionList = new List(); category5OptionList.add(new SelectOption('', '-无-')); category5OptionMap = new Map(); category5OptionMap.put('', '-无-'); //分页 PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); totalCount = pageRecords.size(); System.debug('pageToken = ' + pageToken); System.debug('pageSize = ' + pageSize); System.debug('totalCount = ' + totalCount); paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; System.debug('paginatedAccounts.nextPageToken = ' + paginatedAccounts.nextPageToken); paginatedAccounts.recordStart = pageToken + 1; paginatedAccounts.pageNumber = pageToken / pageSize + 1; Integer recordEnd = pageSize * paginatedAccounts.pageNumber; paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; paginatedAccounts.totalRecords = totalCount; Integer startIdx; Integer endIdx; startIdx = pageToken; endIdx = pageToken + pageSize; List pageRecordsTemp = new List(); if (endIdx > pageRecords.size()) { endIdx = pageRecords.size(); } for (Integer i = startIdx; i < endIdx; i++) { pageRecordsTemp.add(pageRecords.get(i)); } Boolean Existarrive = (coc.Arrive_Order__c != null); String ConsumableOut_report = System.Label.ConsumableOut_report; System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords); data.put('paginatedAccounts', paginatedAccounts); data.put('ConsumableOut_report', ConsumableOut_report); data.put('accountid', accountid); data.put('consumableproductdetailsRecords', consumableproductdetailsRecords); data.put('agencyProType', agencyProType); data.put('accountName', accountName); data.put('userWorkLocation', userWorkLocation); data.put('categoryOptionMap', categoryOptionMap); data.put('category4OptionMap', category4OptionMap); data.put('category5OptionMap', category5OptionMap); data.put('outOutPatternOptionMap', outOutPatternOptionMap); data.put('hasHosPro', hasHosPro); data.put('Existarrive', Existarrive); data.put('sumPrice', sumPrice); data.put('HospitalName', HospitalName); data.put('provinceOptsMap', provinceOptsMap); data.put('SummonsFlag', SummonsFlag); data.put('EditDelCommitBtnDisabled', EditDelCommitBtnDisabled); data.put('EditAble', EditAble); data.put('coc', coc); data.put('pageRecords', pageRecordsTemp); data.put('arriveorder', arriveorder); data.put('consumableorderdetails2Count', consumableorderdetails2Count); data.put('consumableorderdetails2Records', consumableorderdetails2Records); data.put('HospitalInfo', HospitalInfo); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; // } catch (Exception e) { // return new ResponseBodyLWC('Error',500, e.getMessage(), ''); // } } @AuraEnabled public static ResponseBodyLWC categoryAllload(String category3Lwc) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; category3 = category3Lwc; AggregateResult[] category4List = [ SELECT Count(id), Category4_text__c c4c FROM Product2__c WHERE Category3_text__c = :category3 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 Category3_text__c = :category3 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); } data.put('category4OptionMap', category4OptionMap); data.put('category5OptionMap', category5OptionMap); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } @AuraEnabled public static ResponseBodyLWC categoryload(String category3Lwc, String category4Lwc) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; category3 = category3Lwc; category4 = category4Lwc; AggregateResult[] category4List = [ SELECT Count(id), Category4_text__c c4c FROM Product2__c WHERE Category3_text__c = :category3 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 Category3_text__c = :category3 AND Category4_text__c = :category4 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); } data.put('category4OptionMap', category4OptionMap); data.put('category5OptionMap', category5OptionMap); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } // 检索 @AuraEnabled public static ResponseBodyLWC searchConsumableorderdetails( String agencyProTypeLwc, String accountNameLwc, String userWorkLocationLwc, String outOutPattern, String category1, String category3, String category4, String category5, Boolean editAbleLwc, List pageRecordsLwcLwc, List consumableproductdetailsRecordsLwc, String arriveorderLwc, Integer pageSizeLWC, Integer pageTokenLWC ) { consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; pageRecordsLwc = pageRecordsLwcLwc; System.debug('pageRecordsLwc = ' + pageRecordsLwc); arriveorder = arriveorderLwc; accountName = accountNameLwc; userWorkLocation = userWorkLocationLwc; agencyProType = agencyProTypeLwc; product2Selected = new List(); pagesize = pageSizeLWC; pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; addSize = 0; addData = new List(); System.debug('start addData = ' + addData); System.debug('accountName = ' + accountName); System.debug('userWorkLocation = ' + userWorkLocation); String sqlagencyProType = '%' + agencyProTypeLwc + '%'; List orderdetailCount = [ SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE AND Bar_Code__c != NULL AND Isoverdue__c = 1 AND Product_Type__c LIKE :sqlagencyProType AND Dealer_Info_text__c = :accountNameLwc AND Arrive_Owner_Work_Location__c = :userWorkLocationLwc GROUP BY Consumable_Product__c, Box_Piece__c ]; for (AggregateResult orderdetail : orderdetailCount) { zaikuId.add(String.valueOf(orderdetail.get('cpc'))); } editAble = editAbleLwc; ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; SearchDone = 'SearchDone'; Map selectedIdMap = new Map(); List reSet = new List(); Map MidMap = new Map(); //update by rentx 2021-01-29 Map MidMap2 = new Map(); String countdelSoql = 'SELECT Id,Bar_Code__c,Name,Inventory_date__c,Consumable_Product__c,Consumable_Product__r.Asset_Model_No__c,Recordtypeid,Box_Piece__c,ProductPacking_list_manual__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 Bar_Code__c != null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c = :userWorkLocation AND Dealer_Info_text__c = :accountName '; if (String.isNotBlank(outOutPattern) && outOutPattern.equals('ishos')) { countdelSoql += ' AND hospitalSpecialOffer__c = true'; } else if (String.isNotBlank(outOutPattern) && outOutPattern.equals('nothos')) { countdelSoql += ' AND hospitalSpecialOffer__c = false'; } System.debug('countdelSoql = ' + countdelSoql); List CountDel = Database.query(countdelSoql); System.debug('CountDel = ' + CountDel); //update by rentx 2021-01-29 consumableorderdetailsSelectRecords = new List(); //consumableorderdetailsSelectRecords = reSet; String soql = makeSoql(category1, category3, category4, category5); size = Integer.valueOf(System.Label.orderdetLimitsize); initStandardController(soql); System.debug('soql = ' + soql); product2Selected = Database.query(soql); for (Integer i = 0; i < product2Selected.size(); i++) { MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i])); } for (Integer i = 0; i < CountDel.size(); i++) { String str = ''; if (CountDel[i].hospitalSpecialOffer__c) { str = 'isHos'; } else { str = 'notHos'; } System.debug('MidMap = ' + MidMap); //明细2对应的产品存在于MidMap中 if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) { //设置map中key的后缀 用于区分医院特价和非医院特价 if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) { ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } else { //midmap2中没有对应的产品 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone(); Jstage.allnumber = Jstage.allnumber + 1; if (CountDel[i].Box_Piece__c == '盒') { Jstage.Boxnumber = Jstage.Boxnumber + 1; } else if (CountDel[i].Box_Piece__c == '个') { Jstage.Piecenumber = Jstage.Piecenumber + 1; } if (CountDel[i].hospitalSpecialOffer__c) { Jstage.hospitalSpecialOffer = true; } else { Jstage.hospitalSpecialOffer = false; } if (HosProMap.containsKey(Jstage.Prod.Id)) { Jstage.hosPro = true; } //Jstage.BoxPiece = CountDel[i].Box_Piece__c; MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage); } } } Integer ishosnum = 0; System.debug('MidMap2 = ' + MidMap2); for (ConsumableorderdetailsInfo bss : MidMap2.values()) { if (selectedIdMap.containsKey(bss.Prod.id)) { continue; } else { bss.sortBy = false; bss.packinglist = 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; consumableorderdetailsSelectRecords.add(bss); if (bss.hospitalSpecialOffer == true) { ishosnum = ishosnum + 1; } } } if (ishosnum > 0) { hasHosPro = true; } else { hasHosPro = false; } consumableorderdetailsSelectRecords.sort(); makepagerecordsLwc(); //分页 PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); totalCount = pageRecords.size(); 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; System.debug('addSize = ' + addSize); Integer startIdx; Integer endIdx; startIdx = pageToken; endIdx = pageToken + pageSize; List pageRecordsTemp = new List(); if (endIdx > pageRecords.size()) { endIdx = pageRecords.size(); } System.debug('addData.size() = ' + addData.size()); for (ConsumableorderdetailsInfo ci : addData) { pageRecordsTemp.add(ci); } System.debug('startIdx = ' + startIdx); System.debug('endIdx = ' + endIdx); System.debug('skipData = ' + skipData); System.debug('pageRecords = ' + pageRecords.size()); String hos = ''; for (Integer i = startIdx; i < endIdx; i++) { System.debug('skipData.get(pageRecords.get(i).Prod.Id) = ' + skipData.get(pageRecords.get(i).Prod.Id)); if (pageRecords.get(i).hospitalSpecialOffer == true) { hos = 'ishos'; } else { hos = 'nothos'; } if (skipData.get(pageRecords.get(i).Prod.Id + hos) == null) { pageRecordsTemp.add(pageRecords.get(i)); } } System.debug('pageRecordsTemp = ' + pageRecordsTemp.size()); data.put('paginatedAccounts', paginatedAccounts); data.put('pageRecords', pageRecordsTemp); data.put('SearchDone', SearchDone); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } private static String makeSoql(String CateName, String Category3, String Category4, String Category5) { String sqlTail1 = '(\''; for (Integer i = 0; i < zaikuId.size(); i++) { if (zaikuId[i] != null) { if (i < zaikuId.size() - 1) { sqlTail1 += zaikuId[i] + '\',\''; } else { sqlTail1 += zaikuId[i]; } } } sqlTail1 += '\')'; String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; soql += ' WHERE Id in' + sqlTail1; 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 String makeSoqlorderdet() { String sqlTail = '(\''; for (Integer i = 0; i < orderzaikuId.size(); i++) { if (i < orderzaikuId.size() - 1) { sqlTail += orderzaikuId[i] + '\',\''; } else { sqlTail += orderzaikuId[i]; } } sqlTail += '\')'; String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; msoql += ' WHERE Id in' + sqlTail; return msoql; } public static String makeSoqlinventory() { String sqlTail = '(\''; for (Integer i = 0; i < zaikuId.size(); i++) { if (zaikuId[i] != null) { if (i < zaikuId.size() - 1) { sqlTail += zaikuId[i] + '\',\''; } else { sqlTail += zaikuId[i]; } } } sqlTail += '\')'; String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c FROM Product2__c '; msoql += ' WHERE Id in' + sqlTail; return msoql; } public static void initStandardController(String soql) { // init standard controller System.debug('soql =' + soql); System.debug('initStandardController star'); //setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql)); // sets the number of records in each page set //setCon.setPageSize(size); System.debug('initStandardController end'); } public static List makepagerecords() { List reSet = new List(); Map selectedIdMap = new Map(); System.debug('zhj1'); //取出选择的产品 if (pageRecords != null) { System.debug('zhj2'); for (ConsumableorderdetailsInfo ass : pageRecords) { if (ass.check == true) { if (ass.hospitalSpecialOffer == true) { selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); } else { selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); } reSet.add(ass); } } } System.debug('zhj3'); pageRecords = new List(); System.debug('reSet.size() = ' + reSet.size()); if (editAble && String.isBlank(arriveorder)) { pageRecords = reSet; } //Integer pagestartNo = (setCon.getPageNumber() * size)-size; //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); Integer addNo = 0; //update by rentx 2021-2-26 start System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size()); for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) { Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); if ( (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos')) ) { addNo++; } else { if (info.check == false) { info.orderdetails1 = orderdetails1; } pageRecords.add(info); addNo++; } } System.debug('pageRecords 2 = ' + pageRecords); System.debug('zhj5'); System.debug('pageRecords = ' + pageRecords); return pageRecords; } public static List makepagerecordsLwc() { List reSetLwc = new List(); Map selectedIdMap = new Map(); skipData = new Map(); System.debug('makepagerecordsLwc pageRecordsLwc = ' + pageRecordsLwc); //取出选择的产品 if (pageRecordsLwc != null) { for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { System.debug('ass.check = ' + ass.check); if (ass.check == true) { if (ass.hospitalSpecialOffer == true) { selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id); skipData.put(ass.Prod.Id + 'ishos', ass.Prod.Id); } else { selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id); skipData.put(ass.Prod.Id + 'nothos', ass.Prod.Id); } reSetLwc.add(ass); } } } System.debug('selectedIdMap = ' + selectedIdMap); pageRecords = new List(); if (editAble && String.isBlank(arriveorder)) { List reSet = new List(); System.debug('reSetLwc = ' + reSetLwc); for (ConsumableorderdetailsInfoLwc assLwc : reSetLwc) { ConsumableorderdetailsInfo ci = new ConsumableorderdetailsInfo(); ci.check = assLwc.check; ci.oldCheck = assLwc.oldCheck; ci.orderdetails1 = assLwc.orderdetails1; ci.orderdetails2 = assLwc.orderdetails2; ci.Prod = assLwc.Prod; ci.Boxnumber = assLwc.Boxnumber; ci.Piecenumber = assLwc.Piecenumber; ci.allnumber = assLwc.allnumber; ci.oldConsumableCount = assLwc.oldConsumableCount; ci.canSelect = assLwc.canSelect; ci.sortBy = assLwc.sortBy; ci.packinglist = assLwc.packinglist; ci.approbation_No = assLwc.approbation_No; ci.expiration_Date = assLwc.expiration_Date; ci.boxorpiecein = assLwc.boxorpiecein; ci.boxorpiece = assLwc.boxorpiece; ci.boxorpieceMap = assLwc.boxorpieceMap; ci.concc = assLwc.concc; ci.BoxPiece = assLwc.BoxPiece; ci.hospitalSpecialOffer = assLwc.hospitalSpecialOffer; ci.hosPro = assLwc.hosPro; reSet.add(ci); } pageRecords = reSet; System.debug('reSet = ' + reSet); addData = reSet.clone(); System.debug('addData = reSet = ' + addData); } //Integer pagestartNo = (setCon.getPageNumber() * size)-size; //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1); Integer addNo = 0; //update by rentx 2021-2-26 start System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size()); for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) { Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c(); if ( (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) || (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos')) ) { System.debug('去掉的id : ' + info.Prod.Id); addNo++; addSize++; } else { if (info.check == false) { info.orderdetails1 = orderdetails1; } pageRecords.add(info); addNo++; } } System.debug('pageRecords.size() = ' + pageRecords.size()); System.debug('end addData = ' + addData); return pageRecords; } // 保存按钮 @AuraEnabled public static ResponseBodyLWC save( Consumable_order__c cocLwc, String hospitalInfoLwc, String hospitalNameLwc, String secondaryDistributorLwc, List pageRecordsLwc, String accountidLwc, String ESetIdLwc, List consumableproductdetailsRecordsLwc, String agencyProTypeLwc, String userWorkLocationLwc ) { coc = cocLwc; HospitalInfo = hospitalInfoLwc; HospitalName = hospitalNameLwc; SecondDealer = secondaryDistributorLwc; pageRecordsLwc = pageRecordsLwc; accountid = accountidLwc; consumableproductdetailsRecords = consumableproductdetailsRecordsLwc; ESetId = ESetIdLwc; agencyProType = agencyProTypeLwc; userWorkLocation = userWorkLocationLwc; System.debug('coc = ' + coc); System.debug('HospitalInfo = ' + HospitalInfo); System.debug('HospitalName = ' + HospitalName); System.debug('SecondDealer = ' + SecondDealer); System.debug('pageRecordsLwc = ' + pageRecordsLwc); System.debug('accountid = ' + accountid); System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords); System.debug('ESetId = ' + ESetId); ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; //订单信息确认 if (coc.SummonsForDirction__c == '' || coc.SummonsForDirction__c == null) { // coc.SummonsForDirction__c.addError('请输入指示单目的'); // return null; return new ResponseBodyLWC('Error', 500, '请输入指示单目的', ''); } else if (coc.SummonsForDirction__c == '直接销售给医院') { if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { // coc.addError('请输入医院'); // return null; return new ResponseBodyLWC('Error', 500, '请输入医院', ''); } if (String.isBlank(coc.Order_ForCustomerText__c)) { // coc.Order_ForCustomerText__c.addError('请输入科室'); // return null; return new ResponseBodyLWC('Error', 500, '请输入科室', ''); } else if (String.isNotBlank(SecondDealer) || String.isNotBlank(coc.Order_ForDealerText__c)) { // coc.addError('不需要二级经销商和经销商(录入)信息' ); // return null; return new ResponseBodyLWC('Error', 500, '不需要二级经销商和经销商(录入)信息', ''); } } else if (coc.SummonsForDirction__c == '医院试用') { if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { // coc.addError('请输入医院'); // return null; return new ResponseBodyLWC('Error', 500, '请输入医院', ''); } if (String.isBlank(coc.Order_ForCustomerText__c)) { // coc.Order_ForCustomerText__c.addError('请输入科室'); // return null; return new ResponseBodyLWC('Error', 500, '请输入科室', ''); } } else if (coc.SummonsForDirction__c == '销售给二级经销商') { if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) { // coc.addError('必须输入二级经销商或经销商(录入)'); // return null; return new ResponseBodyLWC('Error', 500, '必须输入二级经销商或经销商(录入)', ''); } if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) { // coc.addError('请输入医院'); // return null; return new ResponseBodyLWC('Error', 500, '请输入医院', ''); } if (String.isBlank(coc.Order_ForCustomerText__c)) { // coc.Order_ForCustomerText__c.addError('请输入科室'); // return null; return new ResponseBodyLWC('Error', 500, '请输入科室', ''); } } else if (coc.SummonsForDirction__c == '互相调货') { if (String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)) { // coc.addError('不需要输入医院'); // return null; return new ResponseBodyLWC('Error', 500, '不需要输入医院', ''); } if (String.isNotBlank(coc.Order_ForCustomerText__c)) { // coc.Order_ForCustomerText__c.addError('不需要输入科室'); // return null; return new ResponseBodyLWC('Error', 500, '不需要输入科室', ''); } if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) { // coc.addError('必须输入二级经销商或经销商(录入)'); // return null; return new ResponseBodyLWC('Error', 500, '必须输入二级经销商或经销商(录入)', ''); } } Integer isHos = 0; Integer FLG = 0; Integer Count = 0; for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { FLG = FLG + 1; if (CheckCount.check == false) { Count = Count + 1; } else { //add by rentx if (CheckCount.hospitalSpecialOffer) { isHos = isHos + 1; } //add by rentx } } if (Count == FLG) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请选择所需消耗品')); // return null; return new ResponseBodyLWC('Error', 500, '请选择所需消耗品', ''); } // gzw 注释 判断提前 20210308 //checkOutPattern(); //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 Integer isHosCheckOutPattern = 0; for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) { if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { isHosCheckOutPattern = isHosCheckOutPattern + 1; } } if (isHosCheckOutPattern > 0) { coc.OutPattern__c = true; } else { coc.OutPattern__c = false; } // add by rentx 2021-3-10 start //特价医院出库非本医院维护的特价商品时,报错 非特价医院出库维护在医院特价关系表的产品时 报错 if (coc.SummonsForDirction__c != '互相调货') { //非特价医院出库特价产品时 报错(当前经销商下没有特价医院除外) List hopList = [SELECT id, hospital__c, product__c FROM hospitalprice__c WHERE account__c = :accountid]; //经销商对应医院下的所有特价产品 Map proMap = new Map(); //经销商下的所有特价产品 Map allProMap = new Map(); if (hopList != null && hopList.size() > 0) { Boolean flag = false; if (HospitalInfo != null && HospitalInfo != '') { for (hospitalprice__c hp : hopList) { allProMap.put(hp.product__c, ''); //如果当前 医院特价关系中的医院对应出库单上出库的医院,则放产品id到map if (hp.hospital__c == HospitalInfo) { flag = true; proMap.put(hp.product__c, ''); } } } for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.check == true) { //判断选中的医院特价产品 if (ass.hospitalSpecialOffer == true) { //用户选中了当前医院下的特价产品 if (proMap.containsKey(ass.Prod.Id)) { continue; //用户选中了没有维护特价医院的特价产品 } else if (!allProMap.containsKey(ass.Prod.Id)) { continue; } else { //用户选中非当前医院维护的特价产品 // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '当前医院没有维护 消耗品:'+ ass.Prod.Name__c +' 的特价')); // return null; return new ResponseBodyLWC('Error', 500, '当前医院没有维护 消耗品:' + ass.Prod.Name__c + '的特价', ''); } } //非医院特价产品可以出库给任意医院,所以不需要判断 } } } } else { //如果是互相调货,判断 经销商(录入) 是否维护了 当前选中的特价产品 List hopList = [ SELECT id, hospital__c, product__c FROM hospitalprice__c WHERE account__c = :coc.Order_ForDealerTextID__c ]; Map proMap = new Map(); if (hopList != null && hopList.size() > 0) { for (hospitalprice__c hpc : hopList) { proMap.put(hpc.product__c, ''); } String proStr = ''; for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.check == true) { if (ass.hospitalSpecialOffer == true) { if (!proMap.containsKey(ass.Prod.Id)) { proStr += ass.Prod.Name__c + ','; } } } } if (proStr != '') { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '经销商:'+coc.Order_ForDealerText__c +' 没有消耗品:'+proStr.substring(0,proStr.length()-1) + ' 的特价')); // return null; return new ResponseBodyLWC( 'Error', 500, '经销商:' + coc.Order_ForDealerText__c + ' 没有消耗品:' + proStr.substring(0, proStr.length() - 1) + ' 的特价', '' ); } } } // checkOutPattern(); Consumable_order__c p = new Consumable_order__c(); List Ins = new List(); List InsProduct = new List(); Savepoint sp = Database.setSavepoint(); // try { //新建订单时 if (String.isEmpty(ESetId)) { p.Name = '*'; p.Order_type__c = '传票'; p.Order_ProType__c = agencyProType; if (coc.SummonsStatus_c__c == null || String.isBlank(coc.SummonsStatus_c__c)) coc.SummonsStatus_c__c = '草案中'; // update strat by vivek 2019-7-12 p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; // update end by vivek 2019-7-12 p.SummonsStatus_c__c = coc.SummonsStatus_c__c; if (coc.Arrive_Order__c != null) { p.Arrive_Order__c = coc.Arrive_Order__c; } p.Offers_Price__c = coc.Offers_Price__c; p.Dealer_Info__c = accountid; if (String.isBlank(SecondDealer)) { p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; } else { p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; p.Order_ForDealer__c = SecondDealer; } P.Order_ForDealerText__c = coc.Order_ForDealerText__c; P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; p.Order_date__c = coc.Order_date__c; p.SummonsForDirction__c = coc.SummonsForDirction__c; p.RecordTypeid = System.Label.RT_ConOrder_Outboundorder; // update start by vivek 2019-7-15 p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c; // update end by vivek 2019-7-15 //add by rentx p.OutPattern__c = coc.OutPattern__c; //add by rentx //Map ProductNewMap = new Map(); for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.check == true) { if (ass.orderdetails1.Delivery_List_RMB__c < 0) { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); } if (ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c != '医院试用') { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); } if ( ass.orderdetails1.Delivery_List_RMB__c == 0 && (coc.SummonsForDirction__c == '销售给二级经销商' || coc.SummonsForDirction__c == '直接销售给医院') ) { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); } if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) { // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); // return null; return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); } if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') { // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); // return null; return new ResponseBodyLWC('Error', 500, '请输入单位', ''); } if (ass.orderdetails1.Box_Piece__c == '盒') { if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); if (ass.oldCheck == false) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); } else { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return new ResponseBodyLWC( 'Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', '' ); } } } else if (ass.orderdetails1.Box_Piece__c == '个') { if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); if (ass.oldCheck == false) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); } else { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return new ResponseBodyLWC( 'Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', '' ); } } } } } insert p; ESetId = p.id; List detailName = new List(); detailName = [SELECT id, Name FROM Consumable_order__c WHERE id = :ESetId]; Integer i = 1; for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.check == true) { Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); String str = string.valueOf(i); if (str.length() == 1) { str = '0' + str; } InsAfterDel.Name = detailName[0].name + '-' + str; InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; InsAfterDel.Consumable_order__c = p.id; InsAfterDel.Consumable_Product__c = ass.Prod.id; InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; // TODO 默认 盒 ,需要修正 InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; //add by rentx 2021-2-26 start InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; //add by rentx 2021-2-26 end i++; Ins.add(InsAfterDel); } } // 如果 出库单 和 OCM发货Header连 的话,发货的Detail2 Copy到 出库单的Detail2里 if (getExistarrive()) { for (ConsumableorderdetailsInfo ass : consumableproductdetailsRecords) { //BlockForP; Consumable_order_details2__c InsProductDet = new Consumable_order_details2__c(); InsProductDet.Id = ass.orderdetails2.Id; InsProductDet.Consumable_ZS_order__c = p.id; i++; InsProduct.add(InsProductDet); } } if (Ins.size() > 0) { insert Ins; } if (InsProduct.size() > 0) { //ControllerUtil.updateOrderDetailsSatus(InsProduct); update InsProduct; } } else if (ESetId != null || ESetId.length() > 0) { //修改之后 保存订单 List cocinfo = new List(); // update start by vivek 2019-7-15 add "NoConfirmedPrice__c" in select cocinfo = [ SELECT Id, Name, SummonsStatus_c__c, NoConfirmedPrice__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c FROM Consumable_order__c WHERE Id = :ESetId ]; // update end by vivek 2019-7-15 if (cocinfo.size() > 0) { p = cocinfo[0]; } p.Name = coc.Name; p.Dealer_Info__c = accountid; p.Order_ProType__c = agencyProType; if (String.isEmpty(SecondDealer)) { p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; System.debug('SecondDealer = ' + SecondDealer); p.Order_ForDealer__c = null; } else { p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null; p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c; p.Order_ForDealer__c = SecondDealer; } P.Order_ForDealerText__c = coc.Order_ForDealerText__c; P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c; p.Order_date__c = coc.Order_date__c; p.SummonsForDirction__c = coc.SummonsForDirction__c; //add by rentx p.OutPattern__c = coc.OutPattern__c; // update start by vivek 2019-7-15 if (p.SummonsStatus_c__c == '价格未定') { p.NoConfirmedPrice__c = false; p.SummonsStatus_c__c = '已完成'; } else { p.SummonsStatus_c__c = '草案中'; } // p.SummonsStatus_c__c = '草案中'; // update end by vivek 2019-7-15 Integer i = 1; //Map ProductOldMap = new Map(); for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.check == true) { if (ass.orderdetails1.Delivery_List_RMB__c < 0) { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入正确的出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入正确的出货单价 (元)', ''); } Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c(); if (ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c != '医院试用') { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); } if ( ass.orderdetails1.Delivery_List_RMB__c == 0 && (coc.SummonsForDirction__c == '销售给二级经销商' || coc.SummonsForDirction__c == '直接销售给医院') ) { // ass.orderdetails1.Delivery_List_RMB__c.addError('请输入出货单价 (元)'); // return null; return new ResponseBodyLWC('Error', 500, '请输入出货单价 (元)', ''); } if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') { // ass.orderdetails1.Box_Piece__c.addError('请输入单位'); // return null; return new ResponseBodyLWC('Error', 500, '请输入单位', ''); } if (ass.orderdetails1.Box_Piece__c == '盒') { if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) { //ass.orderdetails1.Shipment_Count__c.addError('库存不足'); if (ass.oldCheck == false) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); } else { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return new ResponseBodyLWC( 'Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', '' ); } } } else if (ass.orderdetails1.Box_Piece__c == '个') { if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) { if (ass.oldCheck == false) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.Prod.Name__c + '库存不足')); return new ResponseBodyLWC('Error', 500, '消耗品' + ass.Prod.Name__c + '库存不足', ''); } else { //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); return new ResponseBodyLWC( 'Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', '' ); } } } if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) { // ass.orderdetails1.Shipment_Count__c.addError('请输入出货数量'); // return null; return new ResponseBodyLWC('Error', 500, '请输入出货数量', ''); } else { String str = string.valueOf(i); if (str.length() == 1) { str = '0' + str; } InsAfterDel.Name = p.name + '-' + str; InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c; InsAfterDel.Consumable_order__c = ESetId; InsAfterDel.Consumable_Product__c = ass.Prod.id; InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c; InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c; InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c; InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c; //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c; InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c; InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; //add by rentx 2021-2-26 start InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer; //add by rentx 2021-2-26 end i++; Ins.add(InsAfterDel); } } } update p; List qs = new List(); qs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId]; if (qs.size() > 0) { delete qs; } if (Ins.size() > 0) { insert Ins; } } // }catch (Exception ex) { // Database.rollback(sp); // // ApexPages.addMessages(ex); // // return null; // //return new ResponseBodyLWC('Error',500, ex.getMessage(), ''); // return new ResponseBodyLWC('Error',500, JSON.serialize(ex), ''); // } data.put('ESetId', ESetId); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } public static void checkOutPattern() { //根据用户选中的产品给 出库单上的是否医院特价出库字段赋值 Integer isHos = 0; for (ConsumableorderdetailsInfo CheckCount : pageRecords) { if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) { ishos = ishos + 1; } } if (isHos > 0) { coc.OutPattern__c = true; } else { coc.OutPattern__c = false; } } //打印PDF @AuraEnabled public static ResponseBodyLWC PraseToPDF(Consumable_order__c cocLwc, String ESetId) { System.debug('cocLwc = ' + cocLwc); System.debug('ESetId = ' + ESetId); coc = cocLwc; ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; if (coc.SummonsStatus_c__c == '批准') { Consumable_order__c P = new Consumable_order__c(); List cocinfo = new List(); // update start by vivek 2019-7-15 add “NoConfirmedPrice__c” in select cocinfo = [ SELECT Id, Name, SummonsStatus_c__c, NoConfirmedPrice__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c, Billed_Status__c FROM Consumable_order__c WHERE Id = :ESetId ]; // update end by vivek 2019-7-15 if (cocinfo.size() > 0) { p = cocinfo[0]; } p.SummonsStatus_c__c = '出库单已打印'; update p; } data.put('ESetId', ESetId); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } //查找经销商 @AuraEnabled(cacheable=true scope='global') public static List search(String searchTerm) { System.debug('searchTerm = ' + searchTerm); String nameCondition = ''; nameCondition += '%' + String.escapeSingleQuotes(searchTerm.replaceAll('%', '\\%')) + '%'; List accs = new List(); System.debug('nameCondition = ' + nameCondition); //查询条件修改 //筛选判断条件:当前财年的4/1 ~ 第二年的6/30  & ET or ENG类型 & 当前用户类型 //1 and 2 //1. Integer year 2022/4/1 ~ 2023/6/30 //开始日期 + 结束日期 //Contract_Decide_Start_Date__c>=开始日期 and Contract_Decide_End_Date__c<结束日期 //2. 添加经销商允销类型:ET经销商协议;ENG耗材经销商协议 //取当前用户的类型,如果用户类型是ET,ET经销商协议 = true // Date today = Date.today(); // Integer thisYear = today.year(); // Integer nextYear = today.year() + 1; // Date thisDatetime = Date.newInstance(thisYear, 4, 1); // Date nextDatetime = Date.newInstance(nextYear, 6, 30); // System.debug('thisDatetime = ' + thisDatetime); // System.debug('nextDatetime = ' + nextDatetime); // User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; // System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); // System.debug('UserProTypecTemp = ' + UserProTypecTemp); // System.debug('UserProTypecTemp.UserPro_Type__c = ' + UserProTypecTemp.UserPro_Type__c); // if (UserProTypecTemp.UserPro_Type__c == 'ENG') { // accs = [ // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity // FROM Account // WHERE // // Name = '奥林巴斯(北京)销售服务有限公司' // // AND // Name LIKE :nameCondition // AND RecordType.DeveloperName = 'AgencyContract' // AND Contract_Decide_Start_Date__c >= :thisDatetime // AND Contract_Decide_End_Date__c <= :nextDatetime // AND ENG_Dealer__c = true // ORDER BY Name // LIMIT 49 // ]; // } // if (UserProTypecTemp.UserPro_Type__c == 'ET') { // accs = [ // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity // FROM Account // WHERE // // Name = '奥林巴斯(北京)销售服务有限公司' // // AND // Name LIKE :nameCondition // AND RecordType.DeveloperName = 'AgencyContract' // AND Contract_Decide_Start_Date__c >= :thisDatetime // AND Contract_Decide_End_Date__c <= :nextDatetime // AND ET_SP_Dealer__c = true // ORDER BY Name // LIMIT 49 // ]; // } Date today = Date.today(); //Date today = Date.newInstance(2023, 3, 1); Integer thisMonth = today.month(); System.debug('thisMonth = ' + thisMonth); Integer lastYear = today.year() - 1; Integer thisYear = today.year(); Integer nextYear = today.year() + 1; Date lastDatetime = Date.newInstance(lastYear, 4, 1); Date thisDatetime = Date.newInstance(thisYear, 4, 1); Date thisDatetime2 = Date.newInstance(thisYear, 7, 1); Date nextDatetime = Date.newInstance(nextYear, 7, 1); System.debug('lastDatetime = ' + lastDatetime); System.debug('thisDatetime = ' + thisDatetime); System.debug('thisDatetime2 = ' + thisDatetime2); System.debug('nextDatetime = ' + nextDatetime); System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId()); User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()]; String sql = 'SELECT id, Parentid FROM Account WHERE Parent.Name LIKE :nameCondition '; if(thisMonth < 4){ sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :thisDatetime2 '; }else if(thisMonth >= 4 && thisMonth <= 6){ sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; }else{ sql += 'AND Contract_Decide_Start_Date__c >= :thisDatetime AND Contract_Decide_End_Date__c < :nextDatetime '; } if (UserProTypecTemp.UserPro_Type__c == 'ENG') { sql += 'AND ENG_Dealer__c = true'; } if (UserProTypecTemp.UserPro_Type__c == 'ET') { sql += 'AND ET_SP_Dealer__c = true'; } System.debug('sql = ' + sql); accs = Database.query(sql); // 用于保存特约经销商匹配到的其父类的id Set pids = new Set(); for (Account acc : accs) { pids.add(acc.Parentid); } accs = [ SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity FROM Account WHERE (Id IN :pids OR (Name = '奥林巴斯(北京)销售服务有限公司' AND Name LIKE :nameCondition)) AND RecordType.DeveloperName = 'Agency' ORDER BY Name LIMIT 49 ]; // accs = [ // SELECT id, Parentid // FROM Account // WHERE // Parent.Name LIKE :nameCondition // AND Contract_Decide_Start_Date__c <= :Date.Today() // AND Contract_Decide_End_Date__c >= :Date.Today() // ]; // 用于保存特约经销商匹配到的其父类的id // Set pids = new Set(); // for (Account acc : accs) { // pids.add(acc.Parentid); // } // accs = [ // SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity // FROM Account // WHERE // (Id IN :pids // OR (Name = '奥林巴斯(北京)销售服务有限公司' // AND Name LIKE :nameCondition)) // AND RecordType.DeveloperName = 'Agency' // AND Is_Active__c != '無効' // ORDER BY Name // LIMIT 5 // ]; System.debug('accs = ' + accs); List results = new List(); String accountIcon = 'standard:account'; for (Account account : accs) { String subtitle = account.BillingCity == null ? 'Account' : 'Account • ' + account.BillingCity; results.add(new LookupSearchResult(account.Id, 'Account', accountIcon, account.Name, subtitle)); } results.sort(); System.debug('results = ' + results); return results; } //保存附件 @AuraEnabled public static String saveFile(Id recordId, String fileName, String base64Data) { base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); ContentVersion cv = new ContentVersion(); cv.Title = fileName; cv.PathOnClient = '/' + fileName; cv.FirstPublishLocationId = recordId; cv.VersionData = EncodingUtil.base64Decode(base64Data); cv.IsMajorVersion = true; insert cv; return cv.Id; } //获取附件 @AuraEnabled public static ResponseBodyLWC getFiles(Id recordId) { System.debug('getFiles recordId = ' + recordId); ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; List cvList = [ SELECT id, Title, CreatedBy.Name, PathOnClient, CreatedDate, ContentDocumentId FROM ContentVersion WHERE FirstPublishLocationId = :recordId ]; data.put('cvList', cvList); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } //跳转出货/销售 @AuraEnabled public static ResponseBodyLWC GoodsDelivery( Consumable_order__c cocLwc, String ESetId, List pageRecordsLwcLwc ) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; coc = cocLwc; ESetId = ESetId; pageRecordsLwc = pageRecordsLwcLwc; if (coc.SummonsForDirction__c == '互相调货') { List accList = [ SELECT Id FROM Account WHERE Name = :coc.Order_ForDealerText__c AND RecordType.DeveloperName = 'Agency' ]; if (accList.size() < 1) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请输入二级经销商全称!')); // return null; return new ResponseBodyLWC('Error', 500, '请输入二级经销商全称!', ''); } } if (coc.SummonsStatus_c__c == '批准') { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请先打印指示单!')); // return null; return new ResponseBodyLWC('Error', 500, '请先打印指示单!', ''); } for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) { if (ass.orderdetails1.Shipment_Count__c > ass.allnumber) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '消耗品'+ ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足')); // return null; return new ResponseBodyLWC('Error', 500, '消耗品' + ass.orderdetails1.Consumable_Product__r.Name__c + '库存不足', ''); } } data.put('ESetid', ESetid); res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } //删除按钮 @AuraEnabled public static ResponseBodyLWC DelConsumable(String ESetId) { ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; ESetId = ESetId; Savepoint sp = Database.setSavepoint(); try { List qs = new List(); List Dqs = new List(); Dqs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId]; qs = [SELECT Id FROM Consumable_order__c WHERE Id = :ESetId]; if (Dqs.size() > 0 || qs.size() > 0) { delete Dqs; delete qs; } } catch (Exception e) { Database.rollback(sp); System.debug(e.getMessage() + e.getLineNumber()); return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); } res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; } // Data Bean class ConsumableorderdetailsInfo implements Comparable { @AuraEnabled public Boolean check { get; set; } @AuraEnabled public Boolean oldCheck { get; set; } @AuraEnabled public Consumable_Orderdetails__c orderdetails1 { get; set; } @AuraEnabled public Consumable_order_details2__c orderdetails2 { get; set; } @AuraEnabled public Product2__c Prod { get; set; } @AuraEnabled public Decimal Boxnumber { get; set; } @AuraEnabled public Decimal Piecenumber { get; set; } @AuraEnabled public Decimal allnumber { get; set; } @AuraEnabled public Decimal oldConsumableCount { get; set; } @AuraEnabled public Boolean canSelect { get; set; } @AuraEnabled public Boolean sortBy { get; set; } @AuraEnabled public Integer packinglist { get; set; } @AuraEnabled public String approbation_No { get; set; } @AuraEnabled public Date expiration_Date { get; set; } @AuraEnabled public String boxorpiecein { get; set; } public List boxorpiece { get; set; } @AuraEnabled public Map boxorpieceMap { get; set; } @AuraEnabled public Attachment concc { get; set; } @AuraEnabled public String BoxPiece { get; set; } @AuraEnabled public Boolean hospitalSpecialOffer { get; set; } @AuraEnabled public Boolean hosPro { get; set; } public ConsumableorderdetailsInfo() { } public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) { check = true; oldCheck = true; orderdetails1 = e; orderdetails2 = new Consumable_order_details2__c(); Prod = e.Consumable_Product__r; oldConsumableCount = e.Shipment_Count__c; canSelect = true; allnumber = 0; Boxnumber = 0; Piecenumber = 0; BoxPiece = e.Box_Piece__c; boxorpiece = new List(); boxorpiece.add(new SelectOption('盒', '盒')); boxorpiece.add(new SelectOption('个', '个')); boxorpieceMap = new Map(); boxorpieceMap.put('盒', '盒'); boxorpieceMap.put('个', '个'); hospitalSpecialOffer = false; hosPro = false; } // 消耗品发货明细 public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { check = true; oldCheck = true; orderdetails1 = new Consumable_Orderdetails__c(); orderdetails2 = e; Prod = e.Consumable_Product__r; canSelect = true; allnumber = 0; Boxnumber = 0; Piecenumber = 0; //boxorpiece = new List(); //boxorpiece.add(new SelectOption('盒', '盒')); //boxorpiece.add(new SelectOption('个', '个')); hospitalSpecialOffer = false; hosPro = false; } //附件 public ConsumableorderdetailsInfo(Attachment e) { concc = e; hospitalSpecialOffer = false; hosPro = false; } public ConsumableorderdetailsInfo(Product2__c e) { check = false; oldCheck = false; orderdetails1 = new Consumable_Orderdetails__c(); orderdetails2 = new Consumable_order_details2__c(); Prod = e; //oldConsumableCount = null; canSelect = true; allnumber = 0; Boxnumber = 0; Piecenumber = 0; orderdetails1.Box_Piece__c = '盒'; boxorpiece = new List(); boxorpiece.add(new SelectOption('盒', '盒')); boxorpiece.add(new SelectOption('个', '个')); boxorpieceMap = new Map(); boxorpieceMap.put('盒', '盒'); boxorpieceMap.put('个', '个'); hospitalSpecialOffer = false; hosPro = false; } // 排序 public Integer compareTo(Object compareTo) { ConsumableorderdetailsInfo compareToorderdetails1 = (ConsumableorderdetailsInfo) compareTo; Integer returnValue = 0; if (sortBy == false) { if (Boxnumber > compareToorderdetails1.Boxnumber) { returnValue = -1; } else if (Boxnumber < compareToorderdetails1.Boxnumber) { returnValue = 1; } return returnValue; } else { if (Boxnumber > compareToorderdetails1.Boxnumber) { returnValue = 1; } else if (Boxnumber < compareToorderdetails1.Boxnumber) { returnValue = -1; } return returnValue; } } } class ConsumableorderdetailsInfoLwc { @AuraEnabled public Boolean check { get; set; } @AuraEnabled public Boolean oldCheck { get; set; } @AuraEnabled public Consumable_Orderdetails__c orderdetails1 { get; set; } @AuraEnabled public Consumable_order_details2__c orderdetails2 { get; set; } @AuraEnabled public Product2__c Prod { get; set; } @AuraEnabled public Decimal Boxnumber { get; set; } @AuraEnabled public Decimal Piecenumber { get; set; } @AuraEnabled public Decimal allnumber { get; set; } @AuraEnabled public Decimal oldConsumableCount { get; set; } @AuraEnabled public Boolean canSelect { get; set; } @AuraEnabled public Boolean sortBy { get; set; } @AuraEnabled public Integer packinglist { get; set; } @AuraEnabled public String approbation_No { get; set; } @AuraEnabled public Date expiration_Date { get; set; } @AuraEnabled public String boxorpiecein { get; set; } public List boxorpiece { get; set; } @AuraEnabled public Map boxorpieceMap { get; set; } @AuraEnabled public Attachment concc { get; set; } @AuraEnabled public String BoxPiece { get; set; } @AuraEnabled public Boolean hospitalSpecialOffer { get; set; } @AuraEnabled public Boolean hosPro { get; set; } @AuraEnabled public List> unitOptions { get; set; } @AuraEnabled public String unitValue { get; set; } @AuraEnabled public Integer shipmentNumber { get; set; } @AuraEnabled public Decimal shippingUnitPrice { get; set; } @AuraEnabled public String recordId { get; set; } @AuraEnabled public String Id { get; set; } @AuraEnabled public String Name { get; set; } @AuraEnabled public String Category3 { get; set; } @AuraEnabled public String Category4 { get; set; } @AuraEnabled public String Category5 { get; set; } } //分页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; } } }