//测试类 InventoryTemperatureHumidityCtlTest public class InventoryTemperatureHumidityController { public String bieCunFangDi { get; set; } public Temperature_And_Humidity_Check__c tahcObj { get; set; } public String temperatureHumidityZone { get; set; } //温湿度区 public String YYYYMM { get; set; } public PageReference init() { Datetime now = Datetime.now(); YYYYMM = formatYYYYMM(now.format('YYYYMM')); if (String.isBlank(temperatureHumidityZone)) { temperatureHumidityZone = 'A区'; } User currUser = [ Select Id, Name,Dept__c, Default_Referable_Apply_Equipment_Center__c, JingliEquipmentId__c From User Where Id = :UserInfo.getUserId()]; if (String.isBlank(currUser.Default_Referable_Apply_Equipment_Center__c)) { ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '当前用户所在地不能为空')); return null; } bieCunFangDi = currUser.Default_Referable_Apply_Equipment_Center__c; getTAHCObj(); return null; } public void changeZone() { getTAHCObj(); } public void getTAHCObj() { /*String QueryString = 'SELECT SUM(You_Xiao_Ku_Cun__c) sumQuantity FROM Asset WHERE Internal_asset_location__c = :bieCunFangDi and Delete_Flag__c = False and Quantity > 0 and Asset_Owner__c = \'Olympus\' and Temperature_And_Humidity_Zone__c =: temperatureHumidityZone and ' + FixtureUtil.getAssetSoqlBase(); AggregateResult[] sumResults = Database.query(QueryString);*/ Integer sumAsset = 0; AggregateResult[] sumResults1 = [Select sum(Amount__c) sumQuantity From Inventory_Detail__c WHERE Inventory_Header__r.Inventory_Status__c <> '已批准' AND Inventory_Header__r.Internal_asset_location__c =: bieCunFangDi AND Inventory_Header__r.Inventory_Start_Date__c = LAST_N_DAYS:30 AND Asset_Status__c IN ('在库', '冻结') AND Asset__r.Temperature_And_Humidity_Zone__c =: temperatureHumidityZone]; for (AggregateResult ar : sumResults1) { if (ar.get('sumQuantity') != null) { sumAsset += Integer.valueOf(ar.get('sumQuantity')); } } AggregateResult[] sumResults2 = [Select sum(Amount__c) sumQuantity From Consum_Inventory_Detail__c WHERE Inventory_Header__r.Inventory_Status__c <> '已批准' AND Inventory_Header__r.Internal_asset_location__c =: bieCunFangDi AND Inventory_Header__r.Inventory_Start_Date__c = LAST_N_DAYS:30 AND Asset_Status__c IN ('在库', '冻结') AND Asset__r.Temperature_And_Humidity_Zone__c =: temperatureHumidityZone]; for (AggregateResult ar : sumResults2) { if (ar.get('sumQuantity') != null) { sumAsset += Integer.valueOf(ar.get('sumQuantity')); } } List tahcTemp = [ SELECT Id, Temperature_And_Humidity_Zone__c, Asset_Count__c, Internal_asset_location__c, Inventory_Time__c, Temperature_Storage_Information__c, Humidity_Storage_Information__c, Temperature_Check_Result__c, Temperature_Note__c, Humidity_Check_Result__c, Humidity_Note__c FROM Temperature_And_Humidity_Check__c WHERE Internal_asset_location__c =: bieCunFangDi AND Inventory_Time__c =: YYYYMM AND Temperature_And_Humidity_Zone__c =: temperatureHumidityZone]; if (tahcTemp.isEmpty()) { tahcObj = new Temperature_And_Humidity_Check__c(); tahcObj.Inventory_Time__c = YYYYMM; tahcObj.Internal_asset_location__c = bieCunFangDi; tahcObj.Asset_Count__c = sumAsset; tahcObj.Temperature_And_Humidity_Zone__c = temperatureHumidityZone; tahcObj.Temperature_Storage_Information__c = FixtureUtil.zoneTemperatureMap.get(temperatureHumidityZone); tahcObj.Humidity_Storage_Information__c = FixtureUtil.zoneHumidityMap.get(temperatureHumidityZone); } else { tahcObj = tahcTemp[0]; } } //温湿度区 SelectOption public List gettemperatureHumidityZoneOps() { List opList = new List(); List pick_list_values = Temperature_And_Humidity_Check__c.Temperature_And_Humidity_Zone__c.getDescribe().getPicklistValues(); for (Schema.PicklistEntry a : pick_list_values) { opList.add(new selectOption(a.getValue(), a.getLabel())); } return opList; } public String formatYYYYMM(String YYYYMM) { return YYYYMM.substring(0, 4) + '年' + YYYYMM.substring(4, 6) + '月'; } public PageReference save() { if (String.isBlank(tahcObj.Temperature_Check_Result__c)) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请填写温度检查结果')); return null; } if (String.isBlank(tahcObj.Humidity_Check_Result__c)) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请填写湿度检查结果')); return null; } insert tahcObj; return null; } }