public without sharing class LexArriveGsDetailsController { public static Consumable_order__c coc { get; set; } private static String accountid = null; private static Decimal orderallcount = 0; public static Boolean arrivetoorder { get; set; } public static List consumableorderdetailsRecords { get; set; } public static List> consumableorderdetailsRecordsview { get; set; } private static String eSetId = ''; private static Integer consumableorderdetailsCount = null; //初始化 @AuraEnabled public static Results init(String eSetIdStr) { Results results = new Results(); results.isNoteStay = LexUtility.getIsNoteStay(); eSetId = eSetIdStr; consumableorderdetailsRecords = new List(); consumableorderdetailsRecordsview = new List>(); try { //取经销商信息 String userId = UserInfo.getUserId(); List useracc = New List(); useracc = [select accountid from user where id =:userId]; accountid = useracc[0].accountid; List rs = New List(); if(eSetId == NULL || eSetId == '') { }else { rs = [SELECT id,name,Order_reason__c,Arrive_Order__c,Arrive_Order__r.Total_num__c,Arrive_Order__r.IsShipment__c,Arrive_Order__r.Name, recordtypeid,Order_status__c,Deliver_date__c,Arrive_total_amount__c FROM Consumable_order__c WHERE id =:eSetId]; coc = new Consumable_order__c(); if(rs.size()>0){ coc = rs[0]; orderallcount = coc.Arrive_Order__r.Total_num__c; } if(coc.Arrive_Order__c == null){ arrivetoorder = true; } List consumablearriveproductdetailsSelected = [SELECT Id,Dealer_Arrive__c,Bar_Code__c, RecordTypeid, Name,Consumable_Product__r.Name__c, Consumable_Product__c,Consumable_Product__r.Name,Dealer_Saled__c, Sterilization_limit__c,Deliver_date__c, Intra_Trade_List_RMB__c,Asset_Model_No__c,Arrive_Date__c,Send_Date__c, Consumable_Product__r.SFDA_Status__c, Consumable_Product__r.Product2__r.Packing_list_manual__c, Consumable_Product__r.Product2__r.SFDA_Approbation_No__c, Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c FROM Consumable_order_details2__c WHERE Consumable_Arrived_order__c = :eSetId ORDER BY Name ]; for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) { consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i])); } } for(ConsumableorderdetailsInfo bss : consumableorderdetailsRecords){ bss.packing_list = bss.Prod.Product2__r.Packing_list_manual__c; bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; //update by rentx 20210622 start CHAN-C3K4ZQ bss.expiration_DateStr = bss.Prod.Product2__r.SFDA_Expiration_Date__c == null ? '' : bss.Prod.Product2__r.SFDA_Expiration_Date__c.format(); bss.Sterilization_limitStr = bss.esd.Sterilization_limit__c == null ? '' : bss.esd.Sterilization_limit__c.format(); //update by rentx 20210622 end CHAN-C3K4ZQ } consumableorderdetailsCount = consumableorderdetailsRecords.size(); //add by rentx 20210622 CHAN-C3K4ZQ // makeRecordsView(consumableorderdetailsRecords); //add by rentx 20210622 CHAN- for(ConsumableorderdetailsInfo con : consumableorderdetailsRecords){ con.prodName = con.esd.Consumable_Product__r.Name__c; } results.coc = coc; results.accountid = accountid; results.orderallcount = orderallcount; results.arrivetoorder = arrivetoorder; results.consumableorderdetailsRecords = consumableorderdetailsRecords; results.consumableorderdetailsCount = consumableorderdetailsCount; results.result = 'Success'; } catch (Exception e) { results.result = 'Fail'; results.errorMsg = e.getLineNumber() + '---' + e.getMessage(); } return results; } //出库 @AuraEnabled public static Results proSale(String cocStr, Decimal orderallcountParm, Integer consumableorderdetailsCountParm) { Results results = new Results(); try { orderallcount = orderallcountParm; consumableorderdetailsCount = consumableorderdetailsCountParm; coc = (Consumable_order__c)JSON.deserialize(cocStr, Consumable_order__c.class); List orderdetails = new List(); //发货明细2 orderdetails = [SELECT Id 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 ]; if(orderallcount!= consumableorderdetailsCount){ results.result = 'Fail'; results.errorMsg = '订单不完全到货,无法出库'; return results; } if(coc.Arrive_Order__r.IsShipment__c == true){ results.result = 'Fail'; results.errorMsg = '订单已经出库'; return results; } results.url = '/lexsummonscreat?arriveorder=' + eSetId +'&KeyWords=Redirect'; results.result = 'Success'; } catch (Exception e) { results.result = 'Fail'; results.errorMsg = e.getLineNumber() + '---' + e.getMessage(); } return results; } public class Results { @AuraEnabled public String result; @AuraEnabled public String errorMsg; @AuraEnabled public Consumable_order__c coc; @AuraEnabled public String accountid; @AuraEnabled public Decimal orderallcount; @AuraEnabled public Boolean arrivetoorder; @AuraEnabled public List consumableorderdetailsRecords; @AuraEnabled public Integer consumableorderdetailsCount; @AuraEnabled public String url; @AuraEnabled public Boolean isNoteStay; } public class ConsumableorderdetailsInfo implements Comparable { @AuraEnabled public Consumable_order_details2__c esd; @AuraEnabled public Product2__c Prod; @AuraEnabled public Decimal packing_list; @AuraEnabled public Date expiration_Date; @AuraEnabled public String approbation_No; @AuraEnabled public String expiration_DateStr; @AuraEnabled public String Sterilization_limitStr; @AuraEnabled public String prodName; // 已存在消耗品明细用 public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { esd = e; Prod = e.Consumable_Product__r; } // 排序Consumable_order__c public Integer compareTo(Object compareTo) { return null; } } }