public class FixtureRemindController { public Map eastMap {set;get;} // 华东 public Map eastConsumMap {set;get;} // 华东耗材 public Map southMap {set;get;} // 南方 public Map northMap {set;get;} // 北方 public Map totalMap {set;get;} // 合计 public Boolean hasEastMap {set;get;} // 华东 public Boolean hasEastConsumMap {set;get;} // 华东耗材 public Boolean hasSouthMap {set;get;} // 南方 public Boolean hasNorthMap {set;get;} // 北方 public Boolean hasTotalMap {set;get;} // 合计 public Boolean hasAuthority {set;get;} public FixtureRemindUtil frUtil{get;set;} public FixtureRemindSnapshot__c snap{get;set;} public FixtureRemindController(){ this.snap = new FixtureRemindSnapshot__c(); snap.Date__c = System.today(); User currentUser = [SELECT UserRole.Name, ProfileId FROM User WHERE Id=: UserInfo.getUserId()]; // User currentUser = [SELECT UserRole.Name, ProfileId FROM User WHERE Id= '00510000001OOJx']; this.hasAuthority = false; this.hasNorthMap = false; this.hasSouthMap = false; this.hasEastMap = false; this.hasTotalMap = false; this.hasEastConsumMap = false; //20210519 you WLIG-C2J9AA || currentUser.UserRole.Name == '备品运营部' if (System.Label.ProfileId_EquCenAdmin.contains(currentUser.ProfileId) || currentUser.UserRole.Name == '备品运营部'){ this.hasAuthority = true; this.hasNorthMap = true; this.hasSouthMap = true; this.hasEastMap = true; this.hasTotalMap = true; this.hasEastConsumMap = true; } else if(currentUser.UserRole.Name == '备品中心北方管理成员') { this.hasAuthority = true; this.hasNorthMap = true; } else if(currentUser.UserRole.Name == '备品中心南方管理成员') { this.hasAuthority = true; this.hasSouthMap = true; } else if(currentUser.UserRole.Name == '备品中心华东管理成员') { this.hasAuthority = true; this.hasEastMap = true; this.hasEastConsumMap = true; } this.frUtil = new FixtureRemindUtil(); this.eastMap = this.frUtil.eastMap; this.eastConsumMap = this.frUtil.eastConsumMap; this.southMap = this.frUtil.southMap; this.northMap = this.frUtil.northMap; this.totalMap = this.frUtil.totalMap; } public void init() { if(!hasAuthority){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '您所在的Role无权查看数量')); return; } this.frUtil.init(); } public void refreshTable(){ if(snap.Time__c == null){ this.frUtil.init(); return; } else if(snap.Date__c != null) { this.frUtil.resetAllMaps(); List frsList = [ SELECT Id , Region__c , Date__c , Time__c , Consum_Dai_Chu_Ku_Zhi_Shi_Cnt__c , Consum_Dai_Fa_Huo_Cnt__c , Consum_Dai_Fen_Pei_Cnt__c , Consum_Dai_Que_Ren_Shi_Yong_Biao_Cnt__c , Consum_Dai_Shou_Huo_Cnt__c , Consum_Dao_Huo_NG_Dai_Que_Ren_Cnt__c , Dai_Bao_Xiu_Cnt__c , Dai_CDS_Cnt__c , Dai_Chu_Ku_Qian_Jian_Ce_Cnt__c , Dai_Chu_Ku_Zhi_Shi_Cnt__c , Dai_Fa_Huo_Cnt__c , Dai_Fen_Pei_Cnt__c , Dai_Hui_Shou_Hou_Jian_Ce_Cnt__c , Dai_Qian_Pin_Que_Ren_Cnt__c , Dai_Que_Ren_Qian_Shou_Cnt__c , Dai_Shang_Jia_Cnt__c , Dai_Xia_Jia_Cnt__c , Pai_Dui_Zhong_Cnt__c , Qian_Pin_Zhong_Cnt__c , Zan_Ding_Fen_Pei_Cnt__c FROM FixtureRemindSnapshot__c WHERE Date__c = : snap.Date__c AND Time__c = : snap.Time__c //add by rentx 20210722 WLIG-C4VDUX AND Rental_ApplyRecordtype__c != '办事处' //add by rentx 20210722 WLIG-C4VDUX ]; Boolean northLoaded = false; Boolean southLoaded = false; Boolean eastLoaded = false; for(FixtureRemindSnapshot__c frs:frsList){ switch on frs.Region__c{ when '北方' { loadMap(this.northMap, frs); northLoaded = true; } when '南方' { loadMap(this.southMap, frs); southLoaded = true; } when '华东' { this.eastConsumMap.put('待分配件数', valueOf(frs.Consum_Dai_Fen_Pei_Cnt__c)); this.eastConsumMap.put('待出库指示件数', valueOf(frs.Consum_Dai_Chu_Ku_Zhi_Shi_Cnt__c)); this.eastConsumMap.put('待发货件数', valueOf(frs.Consum_Dai_Fa_Huo_Cnt__c)); this.eastConsumMap.put('到货NG待确认数量',valueOf(frs.Consum_Dao_Huo_NG_Dai_Que_Ren_Cnt__c)); this.eastConsumMap.put('待确认试用表数量', valueOf(frs.Consum_Dai_Que_Ren_Shi_Yong_Biao_Cnt__c)); this.eastConsumMap.put('待收货件数', valueOf(frs.Consum_Dai_Shou_Huo_Cnt__c)); loadMap(this.eastMap, frs); eastLoaded = true; } } } String regions = ''; if(this.hasEastMap && !eastLoaded){ regions +=' 华东 '; } if(this.hasNorthMap && !northLoaded){ regions +=' 北方 '; } if(this.hasSouthMap && !southLoaded){ regions +=' 南方 '; } if(String.isNotBlank(regions)){ ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '该时间' + regions + '没有快照')); } for(String key : this.totalMap.keySet()){ Integer total = this.eastMap.get(key) + this.northMap.get(key) + this.southMap.get(key); this.totalMap.put(key, total); } } } private void loadMap(Map fixtureMap, FixtureRemindSnapshot__c frs){ fixtureMap.put('待分配件数', valueOf(frs.Dai_Fen_Pei_Cnt__c)); fixtureMap.put('暂定分配件数', valueOf(frs.Zan_Ding_Fen_Pei_Cnt__c)); fixtureMap.put('排队中件数', valueOf(frs.Pai_Dui_Zhong_Cnt__c)); fixtureMap.put('待出库指示件数', valueOf(frs.Dai_Chu_Ku_Zhi_Shi_Cnt__c)); fixtureMap.put('待下架件数', valueOf(frs.Dai_Xia_Jia_Cnt__c)); fixtureMap.put('待出库前检测件数', valueOf(frs.Dai_Chu_Ku_Qian_Jian_Ce_Cnt__c)); fixtureMap.put('待发货件数', valueOf(frs.Dai_Fa_Huo_Cnt__c)); fixtureMap.put('待确认签收单数', valueOf(frs.Dai_Que_Ren_Qian_Shou_Cnt__c)); fixtureMap.put('待欠品确认件数', valueOf(frs.Dai_Qian_Pin_Que_Ren_Cnt__c)); fixtureMap.put('待CDS件数', valueOf(frs.Dai_CDS_Cnt__c)); fixtureMap.put('待回收后检测件数', valueOf(frs.Dai_Hui_Shou_Hou_Jian_Ce_Cnt__c)); fixtureMap.put('待上架件数', valueOf(frs.Dai_Shang_Jia_Cnt__c)); fixtureMap.put('欠品中件数', valueOf(frs.Qian_Pin_Zhong_Cnt__c)); fixtureMap.put('待报修件数', valueOf(frs.Dai_Bao_Xiu_Cnt__c)); } private Integer valueOf(Decimal d) { if(d == null) { return 0; } return Integer.valueOf(d); } }