| | |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static List<String> getPickList(String objectName, String fieldName) { |
| | | List<String> values = new List<String>(); |
| | | public static String getPickList(String objectName, String fieldName) { |
| | | List<Map<String, Object>> lstPickvals = new List<Map<String, Object>>(); |
| | | List<Schema.DescribeSobjectResult> results = Schema.describeSObjects(new List<String>{objectName}); |
| | | |
| | | for(Schema.DescribeSobjectResult res : results) { |
| | | for (Schema.PicklistEntry entry : res.fields.getMap().get(fieldName).getDescribe().getPicklistValues()) { |
| | | if (entry.isActive()) { |
| | | values.add(entry.getValue()); |
| | | lstPickvals.add(new Map<String, Object>{'label' => entry.getValue(), 'value' => entry.getValue()}); |
| | | } |
| | | } |
| | | } |
| | | return values; |
| | | Map<string,List<Map<String, Object>>> pickList = new Map<string,List<Map<String, Object>>>(); |
| | | List<Map<String, Object>> zhuji = new List<Map<String, Object>>(); |
| | | List<Map<String, Object>> jingzi = new List<Map<String, Object>>(); |
| | | List<Map<String, Object>> xiaojingzhong = new List<Map<String, Object>>(); |
| | | List<Map<String, Object>> nengliang = new List<Map<String, Object>>(); |
| | | List<Map<String, Object>> qita = new List<Map<String, Object>>(); |
| | | Map<String, Object> empty = new Map<String, Object>{'label' => '--无--', 'value' => ''}; |
| | | zhuji.add(empty); |
| | | jingzi.add(empty); |
| | | xiaojingzhong.add(empty); |
| | | nengliang.add(empty); |
| | | qita.add(empty); |
| | | for (Integer i = 0; i < lstPickvals.size(); i++) { |
| | | if ((i >= 0 && i <= 6) || i == 36) { |
| | | zhuji.add(lstPickvals[i]); |
| | | } |
| | | if ((i >= 7 && i <= 23) || i == 36) { |
| | | jingzi.add(lstPickvals[i]); |
| | | } |
| | | if ((i >= 24 && i <= 29) || i == 35) { |
| | | xiaojingzhong.add(lstPickvals[i]); |
| | | } |
| | | if ((i >= 30 && i <= 34) || i == 36) { |
| | | nengliang.add(lstPickvals[i]); |
| | | } |
| | | if (i == 36) { |
| | | qita.add(lstPickvals[i]); |
| | | } |
| | | } |
| | | pickList.put('主机', zhuji); |
| | | pickList.put('镜子', jingzi); |
| | | pickList.put('小镜种', xiaojingzhong); |
| | | pickList.put('能量', nengliang); |
| | | pickList.put('其他', qita); |
| | | return JSON.serialize(pickList); |
| | | } |
| | | @AuraEnabled |
| | | public static String getPickListByFilter(String objectName,String fieldName,String controlFieldName,String controlFieldValue){ |
| | | try { |
| | | Schema.DescribeFieldResult fieldDescribe = Schema.getGlobalDescribe().get(objectName).getDescribe().fields.getMap().get(fieldName).getDescribe(); |
| | | // 如果该字段为选项列表类型,则获取选项列表 |
| | | List<Schema.PicklistEntry> picklistValues = fieldDescribe.getPicklistValues(); |
| | | // 根据控制字段的值筛选出对应的选项 |
| | | List<Map<String, Object>> lstPickvals = new List<Map<String, Object>>(); |
| | | for (Schema.PicklistEntry entry : picklistValues) { |
| | | if (entry.isActive() && entry.getValue().startsWith(controlFieldValue)) { |
| | | lstPickvals.add(new Map<String, Object>{'label' => entry.getValue(), 'value' => entry.getValue()}); |
| | | } |
| | | } |
| | | String jsonStr = JSON.serialize(lstPickvals); |
| | | return jsonStr; |
| | | } catch (Exception e) { |
| | | throw new AuraHandledException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | // 保存 |
| | | @AuraEnabled |
| | | public static String save(){ |
| | | // @AuraEnabled |
| | | // public static String save(LostReport report){ |
| | | // try { |
| | | // if(!dataEntry(report)) { |
| | | // return null; |
| | | // } |
| | | |
| | | if(!DataCheck()) { |
| | | return null; |
| | | } |
| | | if(!dataEntry()) { |
| | | return null; |
| | | } |
| | | |
| | | brandCount = LostReport.LostBrands.size(); |
| | | pageStatus = 'View'; |
| | | return '保存成功!'; |
| | | } |
| | | // // brandCount = LostReport.LostBrands.size(); |
| | | // pageStatus = 'View'; |
| | | // return '保存成功!'; |
| | | // } catch (Exception e) { |
| | | // return e.getMessage(); |
| | | // } |
| | | // } |
| | | //读取并构建竞争对手品牌 |
| | | // public void BrandmapSet(){ |
| | | // CompetitionMap = new map<string, id>(); |
| | |
| | | // } |
| | | // 数据检查 |
| | | @AuraEnabled |
| | | public static boolean DataCheck(){ |
| | | public static boolean DataCheck(LostReport report){ |
| | | LostReport = report; |
| | | boolean dataCheck = true; |
| | | if(string.isBlank(LostReport.LostReport.LostType__c)) |
| | | { |
| | |
| | | // 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end |
| | | } |
| | | |
| | | |
| | | return dataCheck; |
| | | } |
| | | @AuraEnabled |
| | |
| | | String jsonStr = JSON.serialize(lstPickvals); |
| | | return jsonStr; |
| | | } |
| | | @AuraEnabled |
| | | public static list<LostBrand> brandcopy(){ |
| | | public static list<LostBrand> brandcopy(LostReport report){ |
| | | list<LostBrand> tempbrands = new list<LostBrand>(); |
| | | for(LostBrand tempbrand: LostReport.LostBrands) { |
| | | for(LostBrand tempbrand: report.LostBrands) { |
| | | LostBrand LostBrand = |
| | | new LostBrand(tempbrand.lineNo,tempbrand.LostProducts ); |
| | | LostBrand.lostBrand = tempbrand.lostBrand.clone(); |
| | |
| | | } |
| | | // 数据录入 |
| | | @AuraEnabled |
| | | public static boolean dataEntry(){ |
| | | public static Map<String,String> dataEntry(String report1){ |
| | | LostReport report = (LostReport)JSON.deserialize(report1, LostReport.class); |
| | | Map<String,String> messageMap = new Map <String,String>(); |
| | | system.debug('save---start:'); |
| | | Savepoint sp = Database.setSavepoint(); |
| | | Lost_cancel_report__c templostReport = LostReport.lostReport.clone(); |
| | | templostReport.id = LostReport.lostReport.id; |
| | | list<LostBrand> tempBrands = brandcopy(); |
| | | try{ |
| | | // 待完成,这里需要把第一个品牌的信息赋值到这个失单报告上去,还有需要把各个品牌金额汇总加起来; |
| | | //system.debug('LostReport.LostBrands:'+LostReport.LostBrands); |
| | | // 设置记录类型 |
| | | LostReport.lostReport.recordTypeID = LostReport.lostReport.LostType__c== '失单'?Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_Lost_report').getRecordTypeId() : Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_PartLost_report').getRecordTypeId(); |
| | | LostReport.lostReport.LostTotalAmount__c = 0; |
| | | LostReport.lostReport.of_lost_system_processor__c = 0; |
| | | LostReport.lostReport.Lost_reason_main__c = null; |
| | | LostReport.lostReport.Lost_Reason_Sub__c = null; |
| | | LostReport.lostReport.Lost_By_Company__c = null; |
| | | for(LostBrand tempLostBrand : LostReport.LostBrands) { |
| | | report.lostReport.recordTypeID = report.lostReport.LostType__c== '失单'?Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_Lost_report').getRecordTypeId() : Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByDeveloperName().get('PCL_PartLost_report').getRecordTypeId(); |
| | | report.lostReport.LostTotalAmount__c = 0; |
| | | report.lostReport.of_lost_system_processor__c = 0; |
| | | report.lostReport.Lost_reason_main__c = null; |
| | | report.lostReport.Lost_Reason_Sub__c = null; |
| | | report.lostReport.Lost_By_Company__c = null; |
| | | for(LostBrand tempLostBrand : report.LostBrands) { |
| | | if(string.isNotBlank(tempLostBrand.lostBrand.Lost_By_Company__c)) { |
| | | LostReport.lostReport.LostTotalAmount__c += tempLostBrand.lostBrand.LostPrice__c; |
| | | LostReport.lostReport.Lost_reason_main__c = |
| | | LostReport.lostReport.Lost_reason_main__c == null |
| | | report.lostReport.LostTotalAmount__c += tempLostBrand.lostBrand.LostPrice__c; |
| | | report.lostReport.Lost_reason_main__c = |
| | | report.lostReport.Lost_reason_main__c == null |
| | | ? tempLostBrand.lostBrand.Lost_reason_main__c |
| | | : LostReport.lostReport.Lost_reason_main__c; |
| | | LostReport.lostReport.Lost_Reason_Sub__c = |
| | | LostReport.lostReport.Lost_Reason_Sub__c == null |
| | | : report.lostReport.Lost_reason_main__c; |
| | | report.lostReport.Lost_Reason_Sub__c = |
| | | report.lostReport.Lost_Reason_Sub__c == null |
| | | ? tempLostBrand.lostBrand.Lost_Reason_Sub__c |
| | | : LostReport.lostReport.Lost_Reason_Sub__c; |
| | | LostReport.lostReport.Lost_By_Company__c = |
| | | LostReport.lostReport.Lost_By_Company__c == null |
| | | : report.lostReport.Lost_Reason_Sub__c; |
| | | report.lostReport.Lost_By_Company__c = |
| | | report.lostReport.Lost_By_Company__c == null |
| | | ? tempLostBrand.lostBrand.Lost_By_Company__c |
| | | : LostReport.lostReport.Lost_By_Company__c; |
| | | : report.lostReport.Lost_By_Company__c; |
| | | |
| | | for( PCLLostProducts tempLostProduct : tempLostBrand.LostProducts) { |
| | | if(tempLostProduct.LostProductss.Quantity__c !=null && tempLostProduct.LostProductss.Quantity__c >0) { |
| | | LostReport.lostReport.of_lost_system_processor__c += tempLostProduct.LostProductss.Quantity__c; |
| | | report.lostReport.of_lost_system_processor__c += tempLostProduct.LostProductss.Quantity__c; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | upsert LostReport.lostReport; |
| | | upsert report.lostReport; |
| | | String reportId = report.lostReport.Id; |
| | | messageMap.put('reportId', reportId); |
| | | // 需要插入更新的失单品牌 |
| | | map<integer,PCLLostBrand__c> upsertLostBrandMap = new map<integer,PCLLostBrand__c>(); |
| | | // 需要删掉的失单品牌 |
| | |
| | | map<string,PCLLostProduct__c> upsertLostProductMap = new map<string,PCLLostProduct__c>(); |
| | | // 需要删掉的失单品牌 |
| | | list<PCLLostProduct__c> deleteLostProductList = new list<PCLLostProduct__c>(); |
| | | for(LostBrand tempLostBrand : LostReport.LostBrands ) { |
| | | for(LostBrand tempLostBrand : report.LostBrands ) { |
| | | // 如果有失单品牌,那么就要插入更新; |
| | | system.debug('tempLostBrand.lostBrand.Lost_By_Company__c:'+tempLostBrand.lostBrand.Lost_By_Company__c); |
| | | if(string.isNotBlank(tempLostBrand.lostBrand.Lost_By_Company__c)) { |
| | | upsertLostBrandMap.put(tempLostBrand.lineNo,tempLostBrand.lostBrand); |
| | | tempLostBrand.lostBrand.Lost_cancel_report__c = LostReport.lostReport.id; |
| | | tempLostBrand.lostBrand.Lost_cancel_report__c = report.lostReport.id; |
| | | tempLostBrand.lostBrand.Name = tempLostBrand.lostBrand.Lost_By_Company__c; |
| | | integer tempNo = 0; |
| | | for( PCLLostProducts tempLostProduct : tempLostBrand.LostProducts) { |
| | |
| | | |
| | | } |
| | | |
| | | for(integer brandNumber =0; brandNumber< LostReport.LostBrands.size(); brandNumber++) { |
| | | for(integer brandNumber =0; brandNumber< report.LostBrands.size(); brandNumber++) { |
| | | |
| | | LostBrand tempLostBrand = LostReport.LostBrands.get(brandNumber); |
| | | LostBrand tempLostBrand = report.LostBrands.get(brandNumber); |
| | | if(tempLostBrand.lostBrand.Id == null) { |
| | | LostReport.LostBrands.remove(brandNumber); |
| | | report.LostBrands.remove(brandNumber); |
| | | brandNumber--; |
| | | continue; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | lostReportId = LostReport.lostReport.id; |
| | | // lostReportId = report.lostReport.id; |
| | | system.debug('save---end:'); |
| | | }catch (Exception ex) { |
| | | Database.rollback(sp); |
| | | LostReport.lostReport = templostReport; |
| | | LostReport.LostBrands = tempBrands; |
| | | // 这里需要写一些报错信息 |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,ex.getMessage())); |
| | | return false; |
| | | messageMap.put('error', ex.getMessage()); |
| | | return messageMap; |
| | | } |
| | | return true; |
| | | return messageMap; |
| | | } |
| | | |
| | | |
| | | // 提交 |
| | | @AuraEnabled |
| | | public static Map<string,Object> submit(){ |
| | | public static Map<string,Object> submit(LostReport report,String reportId){ |
| | | Map<string,string> messages = new Map<string,string>(); |
| | | if(!'草案'.equals(LostReport.LostReport.Report_Status__c) ) { |
| | | if(!'草案'.equals(report.lostReport.Report_Status__c) ) { |
| | | messages.put('error', '只有在草案中才能提交申请!'); |
| | | return messages; |
| | | } |
| | | Map<string,Object> objs = new Map<string,Object>(); |
| | | Savepoint sp = Database.setSavepoint(); |
| | | try{ |
| | | LostReport.lostReport.Report_Status__c = '提交'; |
| | | update LostReport.lostReport; |
| | | report.lostReport.Report_Status__c = '提交'; |
| | | update report.lostReport; |
| | | Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest(); |
| | | psr.setObjectId(lostReportId); |
| | | psr.setObjectId(reportId); |
| | | Approval.ProcessResult submitResult = Approval.process(psr); |
| | | objs.put('uri', '/apex/PCLLostReportPage'); |
| | | objs.put('Id', lostReportId); |
| | | objs.put('Id', reportId); |
| | | objs.put('pageStatus', 'View'); |
| | | objs.put('submitFlag', '1'); |
| | | return objs; |
| | |
| | | tempLostBrand.ProductSize = tempLostBrand.LostProducts.size(); |
| | | return null; |
| | | } |
| | | @AuraEnabled |
| | | public static PCLLostProducts getLostProduct(){ |
| | | try { |
| | | PCLLostProduct__c plp = new PCLLostProduct__c(); |
| | | return new PCLLostProducts(0,plp); |
| | | } catch (Exception e) { |
| | | throw new AuraHandledException(e.getMessage()); |
| | | } |
| | | } |
| | | // update tcm 20211125 添加型号时自动带出品牌 end |
| | | // 页面的数据结构 |
| | | public class LostReport { |
| | |
| | | public list<PCLLostProducts> LostProducts; |
| | | @AuraEnabled |
| | | public Integer ProductSize; |
| | | @AuraEnabled |
| | | public List<Map<String,String>> columns; |
| | | public LostBrand( integer lineNo ){ |
| | | lostBrand = new PCLLostBrand__c(); |
| | | this.lineNo = lineNo; |
| | |
| | | public PCLLostProduct__c LostProductss; |
| | | @AuraEnabled |
| | | public Boolean bool; |
| | | |
| | | @AuraEnabled |
| | | public List<Map<String, Object>> productOptions = new List<Map<String, Object>>(); |
| | | public PCLLostProducts() { |
| | | this.lineNo2 = 0; |
| | | this.LostProductss=new PCLLostProduct__c(); |
| | |
| | | } |
| | | } |
| | | // add tcm 20211118 end |
| | | |
| | | @AuraEnabled |
| | | public static List<Product2> searchProduct(){ |
| | | try { |
| | | List<Product2> products = [ |
| | | select |
| | | Id,name |
| | | from Product2 |
| | | where Brand_Name__c = 'STORZ' limit 10 |
| | | ]; |
| | | return products; |
| | | } catch (Exception e) { |
| | | throw new AuraHandledException(e.getMessage()); |
| | | } |
| | | } |
| | | } |