public without sharing class Consum_ApplyUtil { //借出备品配套一览状態 public enum CaStatus { Qu_Xiao, Shan_Chu, Wan_Liao, Yi_Hui_Shou, Yi_Hui_Ji, Yi_Yuan_Yi_Zhuang_Ji_Que_Ren, Shen_Qing_Zhe_Yi_Shou_Huo, Yi_Chu_Ku, Chu_Ku_Qian_Yi_Jian_Ce, Yi_Xia_Jia, Yi_Chu_Ku_Zhi_Shi, Yi_Fen_Pei, Qian_Pin_Zhong, Cao_An_Zhong, Tian_Xie_Wan_Bi, Shen_Qing_Zhong, Yi_Pi_Zhun, Bu_Pi_Zhun //申请状态没有待分配 // Dai_Fen_Pei } //借出备品配套一览状態 public enum CaesStatus { Cao_An_Zhong, Qu_Xiao, Yi_Hui_Ku, Hui_Shou_Hou_Yi_Jian_Ce, Hui_Shou_Hou_Jian_Ce_NG, Hui_Shou_Hou_Yi_CDS, Yi_Hui_Shou, Yi_Hui_Ji, Yi_Yuan_Yi_Zhuang_Ji_Que_Ren, Shen_Qing_Zhe_Yi_Shou_Huo, Shen_Qing_Zhe_Shou_Huo_NG, Yi_Chu_Ku, Chu_Ku_Qian_Yi_Jian_Ce, Yi_Xia_Jia, Yi_Chu_Ku_Zhi_Shi, Yi_Fen_Pei, Dai_Fen_Pei, Pai_Dui_Zhong, Zan_Ding_Fen_Pei, Qian_Pin_Zhong } //借出备品配套一览明细状態 public enum CaesdStatus { Qu_Xiao, Fei_Qi, Yi_Hui_Ku, Dai_Shang_Jia, Hui_Shou_Hou_Yi_CDS, Yi_Hui_Shou, Yi_Hui_Ji, Yi_Yuan_Yi_Zhuang_Ji_Que_Ren, Shen_Qing_Zhe_Yi_Shou_Huo, Shen_Qing_Zhe_Shou_Huo_NG, Yi_Chu_Ku, Chu_Ku_Qian_Yi_Jian_Ce, Yi_Xia_Jia, Yi_Chu_Ku_Zhi_Shi, Yi_Fen_Pei, Dai_Fen_Pei, Qian_Pin_Zhong, Yi_Xiao_Hao, Diu_Shi, Dai_Fei_Qi, Yi_Zhi_Bao_Fei_Qu, Pai_Dui_Zhong, Zan_Ding_Fen_Pei, Dai_Xiu_Li, Xiu_Li_Zhong } //备品借出申请 //RA_Status__c public static Map CaStatusMap = new Map { CaStatus.Qu_Xiao.ordinal() => '取消', CaStatus.Shan_Chu.ordinal() => '删除', CaStatus.Wan_Liao.ordinal() => '完了', //全部已回库的意思 CaStatus.Yi_Hui_Shou.ordinal() => '已回收', CaStatus.Yi_Hui_Ji.ordinal() => '已回寄', //old:'归还发送完了', CaStatus.Yi_Yuan_Yi_Zhuang_Ji_Que_Ren.ordinal() => '医院已装机确认', //old:'医院收到确认完了', CaStatus.Shen_Qing_Zhe_Yi_Shou_Huo.ordinal() => '申请者已收货', //old:'申请者收到确认完了', CaStatus.Yi_Chu_Ku.ordinal() => '已出库', //old:'出库完了', CaStatus.Chu_Ku_Qian_Yi_Jian_Ce.ordinal() => '出库前已检测', //old:'出库前检查完了', CaStatus.Yi_Xia_Jia.ordinal() => '已下架', //old:'下架完了', CaStatus.Yi_Chu_Ku_Zhi_Shi.ordinal() => '已出库指示', //old:'出库指示完了', CaStatus.Yi_Fen_Pei.ordinal() => '已分配', CaStatus.Qian_Pin_Zhong.ordinal() => '欠品中', //欠品确认中 CaStatus.Cao_An_Zhong.ordinal() => '草案中', CaStatus.Tian_Xie_Wan_Bi.ordinal() => '填写完毕', CaStatus.Shen_Qing_Zhong.ordinal() => '申请中', CaStatus.Yi_Pi_Zhun.ordinal() => '已批准', //old:'批准完了', CaStatus.Bu_Pi_Zhun.ordinal() => '不批准' //old:'批准完了', //申请状态没有待分配 // CaStatus.Dai_Fen_Pei.ordinal() => '待分配' }; //借出备品配套一览状態 //RAES_Status__c public static Map CaesStatusMap = new Map { CaesStatus.Cao_An_Zhong.ordinal() => '草案中', CaesStatus.Qu_Xiao.ordinal() => '取消', CaesStatus.Yi_Hui_Ku.ordinal() => '已回库', //old:'上架完了', CaesStatus.Hui_Shou_Hou_Yi_Jian_Ce.ordinal() => '回收后已检测', //old:'归还后检查完了', CaesStatus.Hui_Shou_Hou_Jian_Ce_NG.ordinal() => '回收后检测NG', //old:'回收后检查NG' CaesStatus.Hui_Shou_Hou_Yi_CDS.ordinal() => '回收后已CDS', //old:'归还后CDS完了', CaesStatus.Yi_Hui_Shou.ordinal() => '已回收', CaesStatus.Yi_Hui_Ji.ordinal() => '已回寄', //old:'归还发送完了', CaesStatus.Yi_Yuan_Yi_Zhuang_Ji_Que_Ren.ordinal() => '医院已装机确认', //old:'医院收到确认完了', CaesStatus.Shen_Qing_Zhe_Yi_Shou_Huo.ordinal() => '申请者已收货', //old:'申请者收到确认完了', CaesStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal() => '申请者收货NG', CaesStatus.Yi_Chu_Ku.ordinal() => '已出库', //old:'出库完了', CaesStatus.Chu_Ku_Qian_Yi_Jian_Ce.ordinal() => '出库前已检测', //old:'出库前检查完了', CaesStatus.Yi_Xia_Jia.ordinal() => '已下架', //old:'下架完了', CaesStatus.Yi_Chu_Ku_Zhi_Shi.ordinal() => '已出库指示', //old:'出库指示完了', CaesStatus.Yi_Fen_Pei.ordinal() => '已分配', CaesStatus.Dai_Fen_Pei.ordinal() => '待分配', CaesStatus.Pai_Dui_Zhong.ordinal() => '排队中', CaesStatus.Zan_Ding_Fen_Pei.ordinal() => '暂定分配', CaesStatus.Qian_Pin_Zhong.ordinal() => '欠品中' }; //ヒストリ状態 //RAESD_Status_F__c public static Map raesdStatusMap = new Map { CaesdStatus.Qu_Xiao.ordinal() => '取消', CaesdStatus.Fei_Qi.ordinal() => '废弃', CaesdStatus.Yi_Hui_Ku.ordinal() => '已回库', //old:'上架完了', CaesdStatus.Dai_Shang_Jia.ordinal() => '待上架', CaesdStatus.Hui_Shou_Hou_Yi_CDS.ordinal() => '回收后已CDS', //old:'归还后CDS完了', CaesdStatus.Yi_Hui_Shou.ordinal() => '已回收', CaesdStatus.Yi_Hui_Ji.ordinal() => '已回寄', //old:'归还发送完了', CaesdStatus.Yi_Yuan_Yi_Zhuang_Ji_Que_Ren.ordinal() => '医院已装机确认', //old:'医院收到确认完了', CaesdStatus.Shen_Qing_Zhe_Shou_Huo_NG.ordinal() => '申请者收货NG', CaesdStatus.Shen_Qing_Zhe_Yi_Shou_Huo.ordinal() => '申请者已收货', //old:'申请者收到确认完了', CaesdStatus.Yi_Chu_Ku.ordinal() => '已出库', //old:'出库完了', CaesdStatus.Chu_Ku_Qian_Yi_Jian_Ce.ordinal() => '出库前已检测', //old:'出库前检查完了', CaesdStatus.Yi_Xia_Jia.ordinal() => '已下架', //old:'下架完了', CaesdStatus.Yi_Chu_Ku_Zhi_Shi.ordinal() => '已出库指示', //old:'出库指示完了', CaesdStatus.Yi_Fen_Pei.ordinal() => '已分配', CaesdStatus.Dai_Fen_Pei.ordinal() => '待分配', CaesdStatus.Qian_Pin_Zhong.ordinal() => '欠品中', CaesdStatus.Yi_Xiao_Hao.ordinal() => '已消耗', CaesdStatus.Diu_Shi.ordinal() => '丢失', CaesdStatus.Dai_Fei_Qi.ordinal() => '待废弃', CaesdStatus.Yi_Zhi_Bao_Fei_Qu.ordinal() => '待移至报废区', CaesdStatus.Pai_Dui_Zhong.ordinal() => '排队中', CaesdStatus.Zan_Ding_Fen_Pei.ordinal() => '暂定分配', CaesdStatus.Dai_Xiu_Li.ordinal() => '待修理', CaesdStatus.Xiu_Li_Zhong.ordinal() => '修理中' }; public enum CUCUNTYPE { You_Xiao_Ku_Cun, Yi_Guo_Qi_Ku_Cun, You_Xiao_Qi_Ku_Cun } public static List getPlickList(String objApi, String fieldApi) { Schema.DescribeFieldResult fieldResult = Schema.getGlobalDescribe().get(objApi).getDescribe().fields.getMap().get(fieldApi).getDescribe(); List pickListValuesList= new List(); List ple = fieldResult.getPicklistValues(); pickListValuesList.add(new SelectOption('', system.label.StartTrading_None)); for( Schema.PicklistEntry pickListVal : ple){ pickListValuesList.add(new SelectOption(pickListVal.getValue(), pickListVal.getLabel())); } return pickListValuesList; } public static void withoutUpsertCaesd(List sobj) { if (!sobj.isEmpty()) upsert sobj UniqueKey__c; } public static List withoutQueryList(String sqlStr) { return Database.query(sqlStr); } public static List withoutQueryListWithConditionList(String sqlStr, List conditionList) { return Database.query(sqlStr); } public static void withoutUpsertCaes(List sobj) { if (!sobj.isEmpty()) upsert sobj UniqueKey__c; } public static void delCAESD_excludedUpserted(List pList, List upserted) { // ToDo 削除時、一部データのkeyを削除対象から外す // 一部データとは = Not(申請中) のこと List dels = [select Id from Consum_Apply_Equipment_Set_Detail__c where Consum_Apply_Equipment_Set__c IN :pList and Cancel_Select__c = False and Id Not IN :upserted]; if (!dels.isEmpty()) delete dels; } public static void delCAES_excludedUpserted(Consum_Apply__c ra, List upserted) { List dels = [select Id from Consum_Apply_Equipment_Set__c where Consum_Apply__c = :ra.Id and Cancel_Select__c = False and Id Not IN :upserted]; if (!dels.isEmpty()) delete dels; } public static void withoutUpsert(List sobjs) { if (!sobjs.isEmpty()) upsert sobjs; } public static Map getOlympusCalendarMAp(Date minDate, Date maxDate) { Map fsMap = OlympusCalendar__c.sObjectType.getDescribe().fields.getMap(); List allFiledList = new List(); allFiledList.addAll(fsMap.keySet()); String soql = 'SELECT ' + String.join(allFiledList, ',') + ' FROM OlympusCalendar__c' + ' WHERE Date__c >= :minDate' + ' AND Date__c <= :maxDate'; List calendarList = Database.query(soql); Map calendarMap = new Map(); for (OlympusCalendar__c calendar : calendarList) { calendarMap.put(calendar.Date__c, calendar); } return calendarMap; } /** * @description Get 開始日 + 何日後 的 平日 (只考虑 周六 周日) * @param pd 開始日 * @param i 何日後(平日,+-可能) * @return 日付 **/ public static Date getWD_addday(Date pd, Integer i) { if (null == pd) pd = System.today(); if (null == i) i = 0; Date d = Date.newInstance(pd.year(), pd.month(), pd.day()); // Day number of week (1 = Monday, ..., 7 = Sunday) Integer dayNumOfWeek = Integer.valueOf(Datetime.newInstance(d.year(), d.month(), d.day()).format('u')); if (dayNumOfWeek == 6) { if (i < 0) { d = d.addDays(2); } else { d = d.addDays(-1); } } else if (dayNumOfWeek == 7) { if (i < 0) { d = d.addDays(1); } else { d = d.addDays(-2); } } // 这里开始 已经没有 周六 周日 了 dayNumOfWeek = Integer.valueOf(Datetime.newInstance(d.year(), d.month(), d.day()).format('u')); Integer targetAddWeek = Math.rint(i / 5).intValue(); Integer dateMod = Math.mod(i, 5); Integer targetDayNumOfWeek = dayNumOfWeek + dateMod; // 这里 targetDayNumOfWeek 一定变成 1 ~ 5 之间 if (targetDayNumOfWeek <= 0) { targetDayNumOfWeek += 5; targetAddWeek--; } else if (targetDayNumOfWeek > 5) { targetDayNumOfWeek -= 5; targetAddWeek++; } else { // 1, 2 ,3 ,4, 5 就是 平日了 } d = d.addDays(targetAddWeek * 7); d = d.addDays(targetDayNumOfWeek - dayNumOfWeek); return d; } public static Map> getAssetKucun(List assetList, Map dayMap) { return getAssetKucun1(assetList, dayMap, false, false); } public static Map> getAssetKucun1(List assetList, Map dayMap, Boolean isSnum, Boolean haveTime) { Map> aMap = new Map>(); Map assetyouxiaoqiMap = new Map(); Map assetguoqiMap = new Map(); Map assetyouxiaoMap = new Map(); for (Asset ass : assetList) { String key; if (isSnum) { key = ass.GroupKey_F__c; } else { key = ass.Fixture_Model_No_F__c; } if (assetyouxiaoMap.containsKey(key) == false) { assetyouxiaoMap.put(key, 0); } if (ass.Consumable_Guaranteen_end__c != null) { if (assetyouxiaoqiMap.containsKey(key) == false) { assetyouxiaoqiMap.put(key, 0); assetguoqiMap.put(key, 0); } if (dayMap == null || dayMap.containsKey(key) == false || ass.Consumable_Guaranteen_end__c > dayMap.get(key)) { assetyouxiaoqiMap.put(key, assetyouxiaoqiMap.get(key) + Integer.valueOf(ass.You_Xiao_Ku_Cun__c)); } else { assetguoqiMap.put(key, assetguoqiMap.get(key) + Integer.valueOf(ass.You_Xiao_Ku_Cun__c)); } } assetyouxiaoMap.put(key, assetyouxiaoMap.get(key) + Integer.valueOf(ass.You_Xiao_Ku_Cun__c)); } aMap.put(CUCUNTYPE.You_Xiao_Qi_Ku_Cun, assetyouxiaoqiMap); aMap.put(CUCUNTYPE.Yi_Guo_Qi_Ku_Cun, assetguoqiMap); aMap.put(CUCUNTYPE.You_Xiao_Ku_Cun, assetyouxiaoMap); return aMap; } public static List queryTempList(String sqlStr, List tempList) { return Database.query(sqlStr); } }