From e6068da47c1bef5517c9e5fdc8c726766867ad4e Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 15:10:02 +0800 Subject: [PATCH] Merge branch 'master' into LEXUpgrade2023-Deloitte --- force-app/main/default/classes/LexOutboundorderImportController.cls | 1918 +++++++++++++++++++++++++++-------------------------------- 1 files changed, 891 insertions(+), 1,027 deletions(-) diff --git a/force-app/main/default/classes/LexOutboundorderImportController.cls b/force-app/main/default/classes/LexOutboundorderImportController.cls index af454e1..a305d02 100644 --- a/force-app/main/default/classes/LexOutboundorderImportController.cls +++ b/force-app/main/default/classes/LexOutboundorderImportController.cls @@ -1,1054 +1,918 @@ public without sharing class LexOutboundorderImportController { - //缁忛攢鍟嗕骇鍝佸垎绫� - public static String agencyProType { get; set; } - private static String sqlagencyProType; - public static Blob csvFileBody { get; set; } - public static string csvAsString { get; set; } - public static String[] csvFileLines { get; set; } - public static List<ConsumableorderdetailsInfo> orderRecords { get; set; } - public static List<String[]> csvRecordStr { get; set; } - public static Map<String, String> hospitalconMap { get; set; } - public static Map<String, String> product2conMap { get; set; } - public static Map<String, String> hospitalSysMap { get; set; } - public static Map<String, String> secondAgencyMap { get; set; } - private static String accountid { get; set; } - private static String accountName { get; set; } - private static Integer messageCount; - public static boolean saveFLGbln { get; set; } - private static List<String> barcodeList { get; set; } - private static List<String> barcodePieceList { get; set; } - public static Map<String, Integer> barcodePieceMap { get; set; } - public static boolean errorflg { get; set; } - public static String errorMessage { get; set; } - private static String userWorkLocation { get; set; } - public static String errorMsg { get; set; } + //缁忛攢鍟嗕骇鍝佸垎绫� + public static String agencyProType { get; set; } + private static String sqlagencyProType; + public static Blob csvFileBody { get; set; } + public static string csvAsString { get; set; } + public static String[] csvFileLines { get; set; } + public static List<ConsumableorderdetailsInfo> orderRecords { get; set; } + public static List<String[]> csvRecordStr { get; set; } + public static Map<String, String> hospitalconMap { get; set; } + public static Map<String, String> product2conMap { get; set; } + public static Map<String, String> hospitalSysMap { get; set; } + public static Map<String, String> secondAgencyMap { get; set; } + private static String accountid { get; set; } + private static String accountName { get; set; } + private static Integer messageCount; + public static boolean saveFLGbln { get; set; } + private static List<String> barcodeList { get; set; } + private static List<String> barcodePieceList { get; set; } + public static Map<String, Integer> barcodePieceMap { get; set; } + public static boolean errorflg { get; set; } + public static String errorMessage { get; set; } + private static String userWorkLocation { get; set; } + public static String errorMsg { get; set; } - @AuraEnabled - public static ResponseBodyLWC init() { - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; - messageCount = 0; - errorflg = false; - errorMessage = null; - User useracc = [ - SELECT accountid, Work_Location__c, UserPro_Type__c - FROM user - WHERE id = :UserInfo.getUserId() - ]; - accountid = Useracc.accountid; - userWorkLocation = Useracc.Work_Location__c; - agencyProType = Useracc.UserPro_Type__c; - if (String.isBlank(Useracc.UserPro_Type__c)) { - agencyProType = 'ET'; + @AuraEnabled + public static ResponseBodyLWC init() { + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + messageCount = 0; + errorflg = false; + errorMessage = null; + User useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()]; + accountid = Useracc.accountid; + userWorkLocation = Useracc.Work_Location__c; + agencyProType = Useracc.UserPro_Type__c; + if (String.isBlank(Useracc.UserPro_Type__c)) { + agencyProType = 'ET'; + } + sqlagencyProType = '%' + agencyProType + '%'; + Account accountInfo = [SELECT Name FROM account WHERE id = :accountid]; + accountName = accountInfo.name; + + data.put('accountid', accountid); + data.put('userWorkLocation', userWorkLocation); + data.put('agencyProType', agencyProType); + data.put('accountName', accountName); + data.put('sqlagencyProType', sqlagencyProType); + res.status = 'Success'; + res.code = 200; + res.msg = ''; + System.debug('res:' + res); + return res; } - sqlagencyProType = '%' + agencyProType + '%'; - Account accountInfo = [SELECT Name FROM account WHERE id = :accountid]; - accountName = accountInfo.name; - data.put('accountid', accountid); - data.put('userWorkLocation', userWorkLocation); - data.put('agencyProType', agencyProType); - data.put('accountName', accountName); - data.put('sqlagencyProType', sqlagencyProType); - res.status = 'Success'; - res.code = 200; - res.msg = ''; - System.debug('res:' + res); - return res; - } + @AuraEnabled + public static ResponseBodyLWC importCSVFile( + String base64DataLwc, + String sqlagencyProTypeLwc, + String userWorkLocationLwc, + String accountNameLwc + ) { + System.debug('enter importCSVFile'); + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; - @AuraEnabled - public static ResponseBodyLWC importCSVFile( - String base64DataLwc, - String sqlagencyProTypeLwc, - String userWorkLocationLwc, - String accountNameLwc - ) { - System.debug('enter importCSVFile'); - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; + errorMsg = ''; + sqlagencyProType = sqlagencyProTypeLwc; + userWorkLocation = userWorkLocationLwc; + accountName = accountNameLwc; + String base64Data = EncodingUtil.urlDecode(base64DataLwc, 'UTF-8'); + csvFileBody = EncodingUtil.base64Decode(base64Data); + product2conMap = new Map<String, String>(); - errorMsg = ''; - sqlagencyProType = sqlagencyProTypeLwc; - userWorkLocation = userWorkLocationLwc; - accountName = accountNameLwc; - String base64Data = EncodingUtil.urlDecode(base64DataLwc, 'UTF-8'); - csvFileBody = EncodingUtil.base64Decode(base64Data); - product2conMap = new Map<String, String>(); - - messageCount = 0; - errormessage = null; - saveFLGbln = false; - csvRecordStr = new List<String[]>(); - barcodeList = new List<String>(); - barcodePieceMap = new Map<String, Integer>(); - barcodePieceList = new List<String>(); - orderRecords = new List<ConsumableorderdetailsInfo>(); - hospitalconMap = new Map<String, String>(); - if (csvFileBody == null) { - errorflg = true; - saveFLGbln = true; - // errormessage = '璇诲彇鍐呭涓虹┖銆�'; - return new ResponseBodyLWC('Error', 500, '璇诲彇鍐呭涓虹┖銆�', ''); - } else { - //浜у搧鏁版嵁鏌ユ壘 - map<string, string> orderNameMap = new Map<string, string>(); - try { - csvAsString = csvFileBody.toString(); - csvFileLines = csvAsString.split('\n'); - for (Integer i = 0; i < csvFileLines.size(); i++) { - string[] csvRecordData = csvFileLines[i].split(','); - if (String.isNotBlank(csvRecordData[6])) { - barcodeList.add(csvRecordData[6]); - if (String.valueOf(csvRecordData[9]) == '涓�') { - barcodePieceList.add(csvRecordData[6]); - barcodePieceMap.put( - csvRecordData[6], - Integer.valueOf(csvRecordData[7]) - ); + messageCount = 0; + errormessage = null; + saveFLGbln = false; + csvRecordStr = new List<String[]>(); + barcodeList = new List<String>(); + barcodePieceMap = new Map<String, Integer>(); + barcodePieceList = new List<String>(); + orderRecords = new List<ConsumableorderdetailsInfo>(); + hospitalconMap = new Map<String, String>(); + if (csvFileBody == null) { + errorflg = true; + saveFLGbln = true; + // errormessage = '璇诲彇鍐呭涓虹┖銆�'; + return new ResponseBodyLWC('Error', 500, '璇诲彇鍐呭涓虹┖銆�', ''); + } else { + //浜у搧鏁版嵁鏌ユ壘 + map<string, string> orderNameMap = new Map<string, string>(); + try { + csvAsString = csvFileBody.toString(); + csvFileLines = csvAsString.split('\n'); + for (Integer i = 0; i < csvFileLines.size(); i++) { + string[] csvRecordData = csvFileLines[i].split(','); + if (String.isNotBlank(csvRecordData[6])) { + barcodeList.add(csvRecordData[6]); + if (String.valueOf(csvRecordData[9]) == '涓�') { + barcodePieceList.add(csvRecordData[6]); + barcodePieceMap.put(csvRecordData[6], Integer.valueOf(csvRecordData[7])); + } + } + String[] csvRecordDataStr = new String[13]; + for (Integer j = 0; j < csvRecordData.size(); j++) { + csvRecordDataStr[j] = csvRecordData[j]; + } + if (i == 0) { + csvRecordDataStr[12] = '浜у搧'; + } else { + csvRecordDataStr[12] = ''; + } + csvRecordStr.add(csvRecordDataStr); + } + Map<String, String> productBarcodeMap = new Map<String, String>(); + List<Consumable_order_details2__c> cOrderDet = [ + SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Box_Piece__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Lose_Flag__c = FALSE + AND Bar_Code__c IN :barcodeList + AND Product_Type__c LIKE :sqlagencyProType + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Dealer_Info_text__c = :accountName + ]; + for (Consumable_order_details2__c pdinfo : cOrderDet) { + productBarcodeMap.put(pdinfo.Bar_Code__c, pdinfo.Consumable_Product__c); + } + for (String[] csvlistStr : csvRecordStr) { + if (productBarcodeMap.containsKey(csvlistStr[6])) { + csvlistStr[12] = productBarcodeMap.get(csvlistStr[6]); + } else { + } + } + //妫�绱㈠瓨鍦ㄦ媶鐩掍骇鍝佹暟閲� + Map<String, Integer> exitpieceBarcodeMap = new Map<String, Integer>(); + AggregateResult[] pieceOrderDet = [ + SELECT count(Id) cnt, Bar_Code__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Lose_Flag__c = FALSE + AND Bar_Code__c IN :barcodePieceList + AND Product_Type__c LIKE :sqlagencyProType + AND Dealer_Info_text__c = :accountName + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Box_Piece__c = '涓�' + GROUP BY Bar_Code__c + ]; + for (AggregateResult ar : pieceOrderDet) { + exitpieceBarcodeMap.put(String.valueOf(ar.get('Bar_Code__c')), Integer.valueOf(ar.get('cnt'))); + } + for (String bc : barcodePieceList) { + if (!exitpieceBarcodeMap.containsKey(bc)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 涓嶅瓨鍦ㄦ垨鍗曚綅閿欒锛岃纭銆�') + // ); + errorMsg += 'Barcode ' + bc + ' 涓嶅瓨鍦ㄦ垨鍗曚綅閿欒锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else if (exitpieceBarcodeMap.containsKey(bc) && exitpieceBarcodeMap.get(bc) < barcodePieceMap.get(bc)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 搴撳瓨涓嶈冻锛岃纭銆�')); + errorMsg += 'Barcode ' + bc + ' 搴撳瓨涓嶈冻锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } + } + } catch (Exception e) { + //ApexPages.addMessages(e); + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; + //return new ResponseBodyLWC('Error', 500, e.getMessage()+e.getStackTraceString(), ''); } - } - String[] csvRecordDataStr = new String[13]; - for (Integer j = 0; j < csvRecordData.size(); j++) { - csvRecordDataStr[j] = csvRecordData[j]; - } - if (i == 0) { - csvRecordDataStr[12] = '浜у搧'; - } else { - csvRecordDataStr[12] = ''; - } - csvRecordStr.add(csvRecordDataStr); - } - Map<String, String> productBarcodeMap = new Map<String, String>(); - List<Consumable_order_details2__c> cOrderDet = [ - SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Box_Piece__c - FROM Consumable_order_details2__c - WHERE - Dealer_Arrive__c = TRUE - AND Dealer_Shipment__c = FALSE - AND Dealer_Saled__c = FALSE - AND Lose_Flag__c = FALSE - AND Bar_Code__c IN :barcodeList - AND Product_Type__c LIKE :sqlagencyProType - AND Arrive_Owner_Work_Location__c = :userWorkLocation - AND Dealer_Info_text__c = :accountName - ]; - for (Consumable_order_details2__c pdinfo : cOrderDet) { - productBarcodeMap.put( - pdinfo.Bar_Code__c, - pdinfo.Consumable_Product__c - ); - } - for (String[] csvlistStr : csvRecordStr) { - if (productBarcodeMap.containsKey(csvlistStr[6])) { - csvlistStr[12] = productBarcodeMap.get(csvlistStr[6]); - } else { - } - } - //妫�绱㈠瓨鍦ㄦ媶鐩掍骇鍝佹暟閲� - Map<String, Integer> exitpieceBarcodeMap = new Map<String, Integer>(); - AggregateResult[] pieceOrderDet = [ - SELECT count(Id) cnt, Bar_Code__c - FROM Consumable_order_details2__c - WHERE - Dealer_Arrive__c = TRUE - AND Dealer_Shipment__c = FALSE - AND Dealer_Saled__c = FALSE - AND Lose_Flag__c = FALSE - AND Bar_Code__c IN :barcodePieceList - AND Product_Type__c LIKE :sqlagencyProType - AND Dealer_Info_text__c = :accountName - AND Arrive_Owner_Work_Location__c = :userWorkLocation - AND Box_Piece__c = '涓�' - GROUP BY Bar_Code__c - ]; - for (AggregateResult ar : pieceOrderDet) { - exitpieceBarcodeMap.put( - String.valueOf(ar.get('Bar_Code__c')), - Integer.valueOf(ar.get('cnt')) - ); - } - for (String bc : barcodePieceList) { - if (!exitpieceBarcodeMap.containsKey(bc)) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 涓嶅瓨鍦ㄦ垨鍗曚綅閿欒锛岃纭銆�') - // ); - errorMsg += 'Barcode ' + bc + ' 涓嶅瓨鍦ㄦ垨鍗曚綅閿欒锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else if ( - exitpieceBarcodeMap.containsKey(bc) && - exitpieceBarcodeMap.get(bc) < barcodePieceMap.get(bc) - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 搴撳瓨涓嶈冻锛岃纭銆�')); - errorMsg += 'Barcode ' + bc + ' 搴撳瓨涓嶈冻锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } - } - } catch (Exception e) { - //ApexPages.addMessages(e); - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - //return new ResponseBodyLWC('Error', 500, e.getMessage()+e.getStackTraceString(), ''); - } - getorderinfo(); - dataInfoconfim(); - getorderdet2info(csvRecordStr); - if (saveFLGbln == false) { - getorderdetinfo(csvRecordStr); - } - data.put('orderRecords', orderRecords); - data.put('saveFLGbln', saveFLGbln); - data.put('csvRecordStr', csvRecordStr); - data.put('barcodeList', barcodeList); - data.put('secondAgencyMap', secondAgencyMap); - data.put('hospitalSysMap', hospitalSysMap); - res.status = 'Success'; - res.code = 200; - res.msg = errorMsg; - return res; - } - } - - public static void getorderinfo() { - map<string, string> orderNameMap = new Map<string, string>(); - try { - csvAsString = csvFileBody.toString(); - csvFileLines = csvAsString.split('\n'); - for (Integer i = 1; i < csvFileLines.size(); i++) { - Consumable_order__c cocObj = new Consumable_order__c(); - string[] csvRecordData = csvFileLines[i].split(','); - if (orderNameMap.containsKey(csvRecordData[0])) - continue; - cocObj.Name = csvRecordData[0]; - if (String.isNotBlank(csvRecordData[1])) { - cocObj.SummonsForDirction__c = csvRecordData[1]; - } else { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '鍑鸿揣鐩殑涓虹┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗� ' + - csvRecordData[0] + - '鍑鸿揣鐩殑涓虹┖锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } - cocObj.Order_Attachment__c = csvRecordData[2]; - cocObj.Order_Indication__c = csvRecordData[3]; - cocObj.Order_ForCustomerText__c = csvRecordData[4]; - cocObj.Invoice_Note__c = csvRecordData[5]; - if (String.isBlank(csvRecordData[11])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + cocObj.Name + '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��') - // ); - errorMsg += - '鍑哄簱鍗� ' + - cocObj.Name + - '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��<br />'; - saveFLGbln = true; - messageCount++; - } else { - cocObj.Outbound_Date__c = Date.parse(csvRecordData[11].trim()); - } - if (String.isNotEmpty(csvRecordData[2])) { - hospitalconMap.put(csvRecordData[2].trim(), csvRecordData[0].trim()); - } - orderNameMap.put(csvRecordData[0], csvRecordData[0]); - orderRecords.add(new ConsumableorderdetailsInfo(cocObj)); - } - } catch (Exception e) { - //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - } - } - - public static void dataInfoconfim() { - //纭鍖婚櫌淇℃伅 - hospitalSysMap = new Map<String, String>(); - secondAgencyMap = new Map<String, String>(); - for (ConsumableorderdetailsInfo ass : orderRecords) { - if ( - (ass.order.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' || - ass.order.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌' || - ass.order.SummonsForDirction__c == '鍖婚櫌璇曠敤') && - (String.isBlank(ass.hospitalName) || - String.isBlank(ass.hospitalCode) || - String.isBlank(ass.order.Order_ForCustomerText__c)) - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '鍖婚櫌鐩稿叧淇℃伅涓嶈兘绌猴紝璇风‘璁ゃ��') - // ); - errorMsg += - '鍑哄簱鍗�' + - ass.order.Name + - '鍖婚櫌鐩稿叧淇℃伅涓嶈兘绌猴紝璇风‘璁ゃ��<br />'; - messageCount++; - saveFLGbln = true; - //return null; - } - if (ass.order.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�') { - if (String.isBlank(ass.agencyName)) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗�' + - ass.order.Name + - '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�<br />'; - messageCount++; - saveFLGbln = true; - } - } - if (ass.order.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌') { - if (String.isNotBlank(ass.agencyName)) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佷簩绾х粡閿�鍟嗭紝璇风‘璁ゃ��') - // ); - errorMsg += - '鍑哄簱鍗�' + - ass.order.Name + - '涓嶉渶瑕佷簩绾х粡閿�鍟嗭紝璇风‘璁ゃ��<br />'; - messageCount++; - saveFLGbln = true; - } - } - if (ass.order.SummonsForDirction__c == '浜掔浉璋冭揣') { - if (String.isBlank(ass.agencyName)) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗�' + - ass.order.Name + - '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�<br />'; - messageCount++; - saveFLGbln = true; - } - if ( - String.isNotBlank(ass.hospitalName) || - String.isNotBlank(ass.hospitalCode) || - String.isNotBlank(ass.order.Order_ForCustomerText__c) - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佸尰闄㈢浉鍏充俊鎭紝璇风‘璁ゃ��') - // ); - errorMsg += - '鍑哄簱鍗�' + - ass.order.Name + - '涓嶉渶瑕佸尰闄㈢浉鍏充俊鎭紝璇风‘璁ゃ��<br />'; - messageCount++; - saveFLGbln = true; - } - } - } - System.debug('accountName = ' + accountName); - List<Agency_Hospital_Link__c> hospitalInfo = [ - SELECT Hospital__c, Hospital__r.Management_Code__c, Hospital__r.Name - FROM Agency_Hospital_Link__c - WHERE Agency__r.Name = :accountName - ]; - List<Dealer_elationship__c> secondAgencyInfo = [ - SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name - FROM Dealer_elationship__c - WHERE Dealer_principal__r.Name = :accountName - ]; - for (Agency_Hospital_Link__c hpinfo : hospitalInfo) { - hospitalSysMap.put( - hpinfo.Hospital__r.Management_Code__c, - hpinfo.Hospital__c - ); - } - for (Dealer_elationship__c safo : secondAgencyInfo) { - secondAgencyMap.put( - safo.Dealer_subordinate__r.Name, - safo.Dealer_subordinate__c - ); - } - //鍑哄簱鍗曚俊鎭獙璇� - System.debug('hospitalconMap = ' + hospitalconMap); - System.debug('hospitalSysMap = ' + hospitalSysMap); - for (String widget : hospitalconMap.keySet()) { - if (!hospitalSysMap.containsKey(widget)) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // hospitalconMap.get(widget) + - // ' 鐨勫尰闄㈢紪鐮�' + - // widget + - // ' 涓嶅瓨鍦ㄦ垨鑰呬笉鏄湰缁忛攢鍟嗚礋璐g殑鍖婚櫌锛岃纭銆�' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - hospitalconMap.get(widget) + - ' 鐨勫尰闄㈢紪鐮�' + - widget + - ' 涓嶅瓨鍦ㄦ垨鑰呬笉鏄湰缁忛攢鍟嗚礋璐g殑鍖婚櫌锛岃纭銆�<br />'; - saveFLGbln = true; - } - } - } - - public static void getorderdet2info(List<String[]> csvRecordStr) { - barcodeList = new List<String>(); - try { - for (Integer i = 1; i < csvRecordStr.size(); i++) { - Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); - string[] csvRecordData = csvRecordStr[i]; - cod2Obj.TracingCode__c = csvRecordData[0]; - cod2Obj.Bar_Code__c = csvRecordData[6]; - if (String.isNotBlank(csvRecordData[6])) { - barcodeList.add(csvRecordData[6]); - } - if (String.isBlank(csvRecordData[9])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '鐨刡arcode ' + - // cod2Obj.Bar_Code__c + - // ' 涓嶅瓨鍦ㄥ嚭搴撳崟浣嶏紝璇风‘璁ゃ��' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '鐨刡arcode ' + - cod2Obj.Bar_Code__c + - ' 涓嶅瓨鍦ㄥ嚭搴撳崟浣嶏紝璇风‘璁ゃ��<br />'; - saveFLGbln = true; - messageCount++; - } else if ( - String.valueOf(csvRecordData[9]) != '鐩�' && - String.valueOf(csvRecordData[9]) != '涓�' - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '鐨刡arcode ' + - // cod2Obj.Bar_Code__c + - // ' 鍑哄簱鍗曚綅涓嶆纭紝璇风‘璁ゃ��' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '鐨刡arcode ' + - cod2Obj.Bar_Code__c + - ' 鍑哄簱鍗曚綅涓嶆纭紝璇风‘璁ゃ��'; - saveFLGbln = true; - messageCount++; - } else { - cod2Obj.Box_Piece__c = csvRecordData[9]; - } - if (String.isBlank(csvRecordData[8])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else if (String.isNotBlank(csvRecordData[8])) { - if ( - Decimal.valueOf(csvRecordData[8]) == 0 && - (String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌' || - String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�') - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '浜у搧鍑鸿揣鍗曚环涓嶈兘涓�0锛岃纭銆�' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '浜у搧鍑鸿揣鍗曚环涓嶈兘涓�0锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else { - cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); - } - } - if (String.isBlank(csvRecordData[6])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '鐨勪骇鍝佷腑锛屽瓨鍦╞arcode涓虹┖锛岃纭銆�' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '鐨勪骇鍝佷腑锛屽瓨鍦╞arcode涓虹┖锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else if (String.isBlank(csvRecordData[12])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '鐨刡arcode ' + - // cod2Obj.Bar_Code__c + - // ' 涓嶅瓨鍦ㄦ垨涓嶆槸鍦ㄥ簱浜у搧锛岃纭銆�' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '鐨刡arcode ' + - cod2Obj.Bar_Code__c + - ' 涓嶅瓨鍦ㄦ垨涓嶆槸鍦ㄥ簱浜у搧锛岃纭銆�'; - saveFLGbln = true; - messageCount++; - } - cod2Obj.Return_reason__c = csvRecordData[12]; - if (String.isBlank(csvRecordData[11])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // cod2Obj.TracingCode__c + - // '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - cod2Obj.TracingCode__c + - '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��'; - saveFLGbln = true; - messageCount++; - } else { - cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); - } - } - } catch (Exception e) { - //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - } - } - - public static void getorderdetinfo(List<String[]> csvRecordStr) { - map<string, string> orderdetMap = new Map<string, string>(); - try { - for (Integer i = 1; i < csvRecordStr.size(); i++) { - Consumable_Orderdetails__c codObj = new Consumable_Orderdetails__c(); - string[] csvRecordData = csvRecordStr[i]; - if (orderdetMap.containsKey(csvRecordData[0] + csvRecordData[12])) - continue; - codObj.Remarks__c = csvRecordData[0]; - if (String.isBlank(csvRecordData[7])) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鏁伴噺涓虹┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗� ' + - csvRecordData[0] + - '浜у搧鍑鸿揣鏁伴噺涓虹┖锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else if ( - Decimal.valueOf(csvRecordData[7]) > 1 && - String.valueOf(csvRecordData[9]) == '鐩�' - ) { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message( - // ApexPages.severity.ERROR, - // '鍑哄簱鍗� ' + - // csvRecordData[0] + - // '瀛樺湪鍗曚綅鏄洅锛屼骇鍝佸嚭璐ф暟閲忓ぇ浜�1锛岃纭銆�' - // ) - // ); - errorMsg += - '鍑哄簱鍗� ' + - csvRecordData[0] + - '瀛樺湪鍗曚綅鏄洅锛屼骇鍝佸嚭璐ф暟閲忓ぇ浜�1锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } else { - codObj.Shipment_Count__c = Decimal.valueOf(csvRecordData[7]); - } - codObj.Box_Piece__c = csvRecordData[9]; - if (String.isNotBlank(csvRecordData[8])) { - codObj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); - } else { - if (messageCount >= 100) - break; - // ApexPages.addmessage( - // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�') - // ); - errorMsg += - '鍑哄簱鍗� ' + - csvRecordData[0] + - '鍑哄簱鍗� ' + - csvRecordData[0] + - '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�<br />'; - saveFLGbln = true; - messageCount++; - } - //if(String.isNotBlank(csvRecordData[10])){ - // codObj.Unitprice_To_agency__c = Decimal.valueOf(csvRecordData[10]); - //} - codObj.Lose_reason__c = csvRecordData[12]; - codObj.Used_date__c = Date.parse(csvRecordData[11].trim()); - product2conMap.put(csvRecordData[12].trim(), csvRecordData[12].trim()); - orderdetMap.put( - csvRecordData[0] + csvRecordData[12], - csvRecordData[0] + csvRecordData[12] - ); - //orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); - } - } catch (Exception e) { - //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - } - } - - @AuraEnabled - public static ResponseBodyLWC dataImport( - List<String[]> csvRecordStrLwc, - String orderRecordsLwc, - String sqlagencyProTypeLwc, - String userWorkLocationLwc, - String accountNameLwc, - String accountidLwc, - String agencyProTypeLwc, - Map<String, String> secondAgencyMapLwc, - Map<String, String> hospitalSysMapLwc - ) { - List<ConsumableorderdetailsInfo> orderdetRecords = new List<ConsumableorderdetailsInfo>(); - List<ConsumableorderdetailsInfo> orderdet2BoxRecords = new List<ConsumableorderdetailsInfo>(); - List<ConsumableorderdetailsInfo> orderdet2PieceRecords = new List<ConsumableorderdetailsInfo>(); - product2conMap = new Map<String, String>(); - ResponseBodyLWC res = new ResponseBodyLWC(); - Map<String, object> data = new Map<String, object>(); - res.entity = data; - - csvRecordStr = csvRecordStrLwc; - orderRecords = (List<ConsumableorderdetailsInfo>) JSON.deserialize( - orderRecordsLwc, - List<ConsumableorderdetailsInfo>.class - ); - System.debug('orderRecords = ' + orderRecords); - sqlagencyProType = sqlagencyProTypeLwc; - userWorkLocation = userWorkLocationLwc; - accountName = accountNameLwc; - secondAgencyMap = secondAgencyMapLwc; - hospitalSysMap = hospitalSysMapLwc; - accountid = accountidLwc; - agencyProType = agencyProTypeLwc; - System.debug('agencyProType = ' + agencyProType); - - errorMsg = ''; - System.debug('csvRecordStr = ' + csvRecordStr); - orderdetRecords = getorderdetList(csvRecordStr); - orderdet2BoxRecords = getorderdet2BoxList(csvRecordStr); - orderdet2PieceRecords = getorderdet2pieceList(csvRecordStr); - System.debug('orderdetRecords = ' + orderdetRecords); - System.debug('orderdet2BoxRecords = ' + orderdet2BoxRecords); - System.debug('orderdet2PieceRecords = ' + orderdet2PieceRecords); - Savepoint sp = Database.setSavepoint(); - try { - Map<String, String> orderInfoMap = new Map<String, String>(); - List<Consumable_order__c> coc = new List<Consumable_order__c>(); - for (ConsumableorderdetailsInfo ass : orderRecords) { - ass.order.Order_type__c = '浼犵エ'; - ass.order.SummonsStatus_c__c = '宸插畬鎴�'; - ass.order.Order_ProType__c = agencyProType; - ass.order.Dealer_Info__c = accountid; - ass.order.Order_ForHospital__c = hospitalSysMap.get(ass.hospitalCode); - if (secondAgencyMap.containsKey(ass.agencyName)) { - ass.order.Order_ForDealer__c = secondAgencyMap.get(ass.agencyName); - } else { - ass.order.Order_ForDealerText__c = ass.agencyName; - } - ass.order.RecordTypeId = System.Label.RT_ConOrder_Sale; - coc.add(ass.order); - } - System.debug('coc = ' + coc); - if (coc.size() > 0) { - insert coc; - } - for (Consumable_order__c order : coc) { - orderInfoMap.put(order.Name, order.Id); - } - List<Consumable_Orderdetails__c> cod = new List<Consumable_Orderdetails__c>(); - for (String field : orderInfoMap.keySet()) { - Integer i = 1; - for (ConsumableorderdetailsInfo ass : orderdetRecords) { - if (ass.orderName == field) { - String str = string.valueOf(i); - if (str.length() == 1) { - str = '0' + str; + getorderinfo(); + dataInfoconfim(); + getorderdet2info(csvRecordStr); + if (saveFLGbln == false) { + getorderdetinfo(csvRecordStr); } - ass.orderdetails1.Name = ass.orderName + '-' + str; - ass.orderdetails1.Consumable_order__c = orderInfoMap.get( - ass.orderName - ); - ass.orderdetails1.Consumable_Product__c = ass.productName; - ass.orderdetails1.RecordTypeId = System.Label.RT_ConOrderDetail1_Sale; - cod.add(ass.orderdetails1); - i++; - } + data.put('orderRecords', orderRecords); + data.put('saveFLGbln', saveFLGbln); + data.put('csvRecordStr', csvRecordStr); + data.put('barcodeList', barcodeList); + data.put('secondAgencyMap', secondAgencyMap); + data.put('hospitalSysMap', hospitalSysMap); + res.status = 'Success'; + res.code = 200; + res.msg = errorMsg; + return res; } - } - System.debug('cod = ' + cod); - if (cod.size() > 0) { - insert cod; - } - //鐩掔殑鏁版嵁妫�绱� - List<Consumable_Order_details2__c> cod2List = new List<Consumable_Order_details2__c>(); - List<Consumable_order_details2__c> cOrderDet = [ - SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Box_Piece__c - FROM Consumable_order_details2__c - WHERE - Dealer_Arrive__c = TRUE - AND Dealer_Shipment__c = FALSE - AND Dealer_Saled__c = FALSE - AND Lose_Flag__c = FALSE - AND Bar_Code__c IN :barcodeList - AND Product_Type__c LIKE :sqlagencyProType - AND Dealer_Info_text__c = :accountName - AND Arrive_Owner_Work_Location__c = :userWorkLocation - AND Box_Piece__c = '鐩�' - ]; - for (ConsumableorderdetailsInfo ass : orderdet2BoxRecords) { - Integer idx = 0; - for (Consumable_order_details2__c codtest : cOrderDet) { - Consumable_Order_details2__c cod2 = new Consumable_Order_details2__c(); - if (codtest.Bar_Code__c == ass.orderdetails2.Bar_Code__c) { - cod2 = codtest; - cod2.Consumable_Sale_order__c = orderInfoMap.get(ass.orderName); - cod2.Consumable_ZS_order__c = orderInfoMap.get(ass.orderName); - cod2.Used_date__c = ass.orderdetails2.Used_date__c; - cod2.Send_Date__c = ass.orderdetails2.Send_Date__c; - //cod2.Unitprice_To_agency__c = ass.orderdetails2.Unitprice_To_agency__c; - cod2.Delivery_List_RMB__c = ass.orderdetails2.Delivery_List_RMB__c; - cod2List.add(cod2); - cOrderDet.remove(idx); - break; - } - idx++; - } - } + } - //涓殑鏁版嵁妫�绱� - List<Consumable_order_details2__c> cOrderDetPiece = [ - SELECT - Id, - Bar_Code__c, - RemoveBox_No__c, - Name, - Consumable_Product__c, - Box_Piece__c - FROM Consumable_order_details2__c - WHERE - Dealer_Arrive__c = TRUE - AND Dealer_Shipment__c = FALSE - AND Dealer_Saled__c = FALSE - AND Lose_Flag__c = FALSE - AND Arrive_Owner_Work_Location__c = :userWorkLocation - AND Bar_Code__c IN :barcodePieceList - AND Product_Type__c LIKE :sqlagencyProType - AND Dealer_Info_text__c = :accountName - AND Box_Piece__c = '涓�' - ORDER BY Bar_Code__c, RemoveBox_No__c DESC - ]; - for (ConsumableorderdetailsInfo ass : orderdet2PieceRecords) { - Decimal idy = 1; - for (Integer idx = 0; idx < cOrderDetPiece.size(); idx++) { - Consumable_Order_details2__c cod2 = new Consumable_Order_details2__c(); - if ( - cOrderDetPiece[idx].Bar_Code__c == ass.orderdetails2.Bar_Code__c && - idy <= ass.pieceCount - ) { - cod2 = cOrderDetPiece[idx].Clone(); - cod2.Id = cOrderDetPiece[idx].Id; - cod2.Consumable_Sale_order__c = orderInfoMap.get(ass.orderName); - cod2.Consumable_ZS_order__c = orderInfoMap.get(ass.orderName); - cod2.Used_date__c = ass.orderdetails2.Used_date__c; - cod2.Send_Date__c = ass.orderdetails2.Send_Date__c; - //cod2.Unitprice_To_agency__c = ass.orderdetails2.Unitprice_To_agency__c; - cod2.Delivery_List_RMB__c = ass.orderdetails2.Delivery_List_RMB__c; - cod2List.add(cod2); - cOrderDetPiece[idx].Bar_Code__c = ''; - idy++; - //break; - } + public static void getorderinfo() { + map<string, string> orderNameMap = new Map<string, string>(); + try { + csvAsString = csvFileBody.toString(); + csvFileLines = csvAsString.split('\n'); + for (Integer i = 1; i < csvFileLines.size(); i++) { + Consumable_order__c cocObj = new Consumable_order__c(); + string[] csvRecordData = csvFileLines[i].split(','); + if (orderNameMap.containsKey(csvRecordData[0])) + continue; + cocObj.Name = csvRecordData[0]; + if (String.isNotBlank(csvRecordData[1])) { + cocObj.SummonsForDirction__c = csvRecordData[1]; + } else { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '鍑鸿揣鐩殑涓虹┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗� ' + csvRecordData[0] + '鍑鸿揣鐩殑涓虹┖锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } + cocObj.Order_Attachment__c = csvRecordData[2]; + cocObj.Order_Indication__c = csvRecordData[3]; + cocObj.Order_ForCustomerText__c = csvRecordData[4]; + cocObj.Invoice_Note__c = csvRecordData[5]; + if (String.isBlank(csvRecordData[11])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + cocObj.Name + '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��') + // ); + errorMsg += '鍑哄簱鍗� ' + cocObj.Name + '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��<br />'; + saveFLGbln = true; + messageCount++; + } else { + cocObj.Outbound_Date__c = Date.parse(csvRecordData[11].trim()); + } + if (String.isNotEmpty(csvRecordData[2])) { + hospitalconMap.put(csvRecordData[2].trim(), csvRecordData[0].trim()); + } + orderNameMap.put(csvRecordData[0], csvRecordData[0]); + orderRecords.add(new ConsumableorderdetailsInfo(cocObj)); + } + } catch (Exception e) { + //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; } - } - if (cod2List.size() > 0) { - update cod2List; - } - errorflg = true; - //errorMessage = '淇濆瓨瀹屾垚銆�'; - saveFLGbln = true; + } - res.status = 'Success'; - res.code = 200; - res.msg = errorMsg; - return res; - } catch (Exception e) { - Database.rollback(sp); - // ApexPages.addMessages(e); - // return null; - return new ResponseBodyLWC( - 'Error', - 500, - e.getMessage() + e.getStackTraceString(), - '' - ); + public static void dataInfoconfim() { + //纭鍖婚櫌淇℃伅 + hospitalSysMap = new Map<String, String>(); + secondAgencyMap = new Map<String, String>(); + for (ConsumableorderdetailsInfo ass : orderRecords) { + if ( + (ass.order.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' || + ass.order.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌' || + ass.order.SummonsForDirction__c == '鍖婚櫌璇曠敤') && + (String.isBlank(ass.hospitalName) || + String.isBlank(ass.hospitalCode) || + String.isBlank(ass.order.Order_ForCustomerText__c)) + ) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '鍖婚櫌鐩稿叧淇℃伅涓嶈兘绌猴紝璇风‘璁ゃ��') + // ); + errorMsg += '鍑哄簱鍗�' + ass.order.Name + '鍖婚櫌鐩稿叧淇℃伅涓嶈兘绌猴紝璇风‘璁ゃ��<br />'; + messageCount++; + saveFLGbln = true; + //return null; + } + if (ass.order.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�') { + if (String.isBlank(ass.agencyName)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�<br />'; + messageCount++; + saveFLGbln = true; + } + } + if (ass.order.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌') { + if (String.isNotBlank(ass.agencyName)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佷簩绾х粡閿�鍟嗭紝璇风‘璁ゃ��') + // ); + errorMsg += '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佷簩绾х粡閿�鍟嗭紝璇风‘璁ゃ��<br />'; + messageCount++; + saveFLGbln = true; + } + } + if (ass.order.SummonsForDirction__c == '浜掔浉璋冭揣') { + if (String.isBlank(ass.agencyName)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗�' + ass.order.Name + '缁忛攢鍟嗕俊鎭笉鑳界┖锛岃纭銆�<br />'; + messageCount++; + saveFLGbln = true; + } + if ( + String.isNotBlank(ass.hospitalName) || + String.isNotBlank(ass.hospitalCode) || + String.isNotBlank(ass.order.Order_ForCustomerText__c) + ) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佸尰闄㈢浉鍏充俊鎭紝璇风‘璁ゃ��') + // ); + errorMsg += '鍑哄簱鍗�' + ass.order.Name + '涓嶉渶瑕佸尰闄㈢浉鍏充俊鎭紝璇风‘璁ゃ��<br />'; + messageCount++; + saveFLGbln = true; + } + } + } + System.debug('accountName = ' + accountName); + List<Agency_Hospital_Link__c> hospitalInfo = [ + SELECT Hospital__c, Hospital__r.Management_Code__c, Hospital__r.Name + FROM Agency_Hospital_Link__c + WHERE Agency__r.Name = :accountName + ]; + List<Dealer_elationship__c> secondAgencyInfo = [ + SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name + FROM Dealer_elationship__c + WHERE Dealer_principal__r.Name = :accountName + ]; + for (Agency_Hospital_Link__c hpinfo : hospitalInfo) { + hospitalSysMap.put(hpinfo.Hospital__r.Management_Code__c, hpinfo.Hospital__c); + } + for (Dealer_elationship__c safo : secondAgencyInfo) { + secondAgencyMap.put(safo.Dealer_subordinate__r.Name, safo.Dealer_subordinate__c); + } + //鍑哄簱鍗曚俊鎭獙璇� + System.debug('hospitalconMap = ' + hospitalconMap); + System.debug('hospitalSysMap = ' + hospitalSysMap); + for (String widget : hospitalconMap.keySet()) { + if (!hospitalSysMap.containsKey(widget)) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // hospitalconMap.get(widget) + + // ' 鐨勫尰闄㈢紪鐮�' + + // widget + + // ' 涓嶅瓨鍦ㄦ垨鑰呬笉鏄湰缁忛攢鍟嗚礋璐g殑鍖婚櫌锛岃纭銆�' + // ) + // ); + errorMsg += + '鍑哄簱鍗� ' + + hospitalconMap.get(widget) + + ' 鐨勫尰闄㈢紪鐮�' + + widget + + ' 涓嶅瓨鍦ㄦ垨鑰呬笉鏄湰缁忛攢鍟嗚礋璐g殑鍖婚櫌锛岃纭銆�<br />'; + saveFLGbln = true; + } + } } - } - public static List<ConsumableorderdetailsInfo> getorderdetList( - List<String[]> csvRecordStr - ) { - List<ConsumableorderdetailsInfo> orderdetRecords = new List<ConsumableorderdetailsInfo>(); - map<string, Decimal> orderdetMap = new Map<string, Decimal>(); - try { - for (Integer i = 1; i < csvRecordStr.size(); i++) { - Consumable_Orderdetails__c codObj = new Consumable_Orderdetails__c(); - string[] csvRecordData = csvRecordStr[i]; - if ( - orderdetMap.containsKey( - csvRecordData[0] + csvRecordData[12] + csvRecordData[9] - ) - ) { - orderdetMap.put( - csvRecordData[0] + csvRecordData[12] + csvRecordData[9], - orderdetMap.get( - csvRecordData[0] + csvRecordData[12] + csvRecordData[9] - ) + Decimal.valueOf(csvRecordData[7]) - ); - continue; - } else { - orderdetMap.put( - csvRecordData[0] + csvRecordData[12] + csvRecordData[9], - Decimal.valueOf(csvRecordData[7]) - ); + public static void getorderdet2info(List<String[]> csvRecordStr) { + barcodeList = new List<String>(); + try { + for (Integer i = 1; i < csvRecordStr.size(); i++) { + Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); + string[] csvRecordData = csvRecordStr[i]; + cod2Obj.TracingCode__c = csvRecordData[0]; + cod2Obj.Bar_Code__c = csvRecordData[6]; + if (String.isNotBlank(csvRecordData[6])) { + barcodeList.add(csvRecordData[6]); + } + if (String.isBlank(csvRecordData[9])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '鐨刡arcode ' + + // cod2Obj.Bar_Code__c + + // ' 涓嶅瓨鍦ㄥ嚭搴撳崟浣嶏紝璇风‘璁ゃ��' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '鐨刡arcode ' + cod2Obj.Bar_Code__c + ' 涓嶅瓨鍦ㄥ嚭搴撳崟浣嶏紝璇风‘璁ゃ��<br />'; + saveFLGbln = true; + messageCount++; + } else if (String.valueOf(csvRecordData[9]) != '鐩�' && String.valueOf(csvRecordData[9]) != '涓�') { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '鐨刡arcode ' + + // cod2Obj.Bar_Code__c + + // ' 鍑哄簱鍗曚綅涓嶆纭紝璇风‘璁ゃ��' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '鐨刡arcode ' + cod2Obj.Bar_Code__c + ' 鍑哄簱鍗曚綅涓嶆纭紝璇风‘璁ゃ��'; + saveFLGbln = true; + messageCount++; + } else { + cod2Obj.Box_Piece__c = csvRecordData[9]; + } + if (String.isBlank(csvRecordData[8])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else if (String.isNotBlank(csvRecordData[8])) { + if ( + Decimal.valueOf(csvRecordData[8]) == 0 && + (String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌' || + String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�') + ) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '浜у搧鍑鸿揣鍗曚环涓嶈兘涓�0锛岃纭銆�' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '浜у搧鍑鸿揣鍗曚环涓嶈兘涓�0锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else { + cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); + } + } + if (String.isBlank(csvRecordData[6])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '鐨勪骇鍝佷腑锛屽瓨鍦╞arcode涓虹┖锛岃纭銆�' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '鐨勪骇鍝佷腑锛屽瓨鍦╞arcode涓虹┖锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else if (String.isBlank(csvRecordData[12])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '鐨刡arcode ' + + // cod2Obj.Bar_Code__c + + // ' 涓嶅瓨鍦ㄦ垨涓嶆槸鍦ㄥ簱浜у搧锛岃纭銆�' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '鐨刡arcode ' + cod2Obj.Bar_Code__c + ' 涓嶅瓨鍦ㄦ垨涓嶆槸鍦ㄥ簱浜у搧锛岃纭銆�'; + saveFLGbln = true; + messageCount++; + } + cod2Obj.Return_reason__c = csvRecordData[12]; + if (String.isBlank(csvRecordData[11])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // cod2Obj.TracingCode__c + + // '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + cod2Obj.TracingCode__c + '鐨勪骇鍝佷腑锛屽瓨鍦ㄥ嚭搴撴棩鏈熶负绌猴紝璇风‘璁ゃ��'; + saveFLGbln = true; + messageCount++; + } else { + cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); + } + } + } catch (Exception e) { + //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; } - codObj.Remarks__c = csvRecordData[0]; - codObj.Shipment_Count__c = Decimal.valueOf(csvRecordData[7]); - codObj.Box_Piece__c = csvRecordData[9]; - if (String.isNotBlank(csvRecordData[8])) { - codObj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); - } - codObj.Lose_reason__c = csvRecordData[12]; - if (String.isNotBlank(csvRecordData[11])) { - codObj.Used_date__c = Date.parse(csvRecordData[11].trim()); - } - product2conMap.put(csvRecordData[12].trim(), csvRecordData[12].trim()); - orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); - } - for (ConsumableorderdetailsInfo ass : orderdetRecords) { - if ( - orderdetMap.containsKey( - ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c - ) - ) { - ass.orderdetails1.Shipment_Count__c = orderdetMap.get( - ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c - ); - } - } - System.debug('orderdetRecords = ' + orderdetRecords); - return orderdetRecords; - } catch (Exception e) { - // ApexPages.addMessages(e); - // return null; - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - System.debug('orderdetRecords = null ' + e.getLineNumber()); - return null; } - } - public static List<ConsumableorderdetailsInfo> getorderdet2BoxList( - List<String[]> csvRecordStr - ) { - barcodeList = new List<String>(); - List<ConsumableorderdetailsInfo> orderdet2BoxRecords = new List<ConsumableorderdetailsInfo>(); - try { - for (Integer i = 1; i < csvRecordStr.size(); i++) { - string[] csvRecordData = csvRecordStr[i]; - if (String.valueOf(csvRecordData[9]) == '鐩�') { - Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); - cod2Obj.TracingCode__c = csvRecordData[0]; - cod2Obj.Bar_Code__c = csvRecordData[6]; - if (String.isNotBlank(csvRecordData[6])) { - barcodeList.add(csvRecordData[6]); - } - cod2Obj.Box_Piece__c = csvRecordData[9]; - if (String.isNotBlank(csvRecordData[8])) { - cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); - } - //if(String.isNotBlank(csvRecordData[10])){ - // cod2Obj.Unitprice_To_agency__c = Decimal.valueOf(csvRecordData[10]); - //} - cod2Obj.Return_reason__c = csvRecordData[12]; - if ( - String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�' || - String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌' - ) { - cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); - } else { - cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); - } - orderdet2BoxRecords.add(new ConsumableorderdetailsInfo(cod2Obj)); + public static void getorderdetinfo(List<String[]> csvRecordStr) { + map<string, string> orderdetMap = new Map<string, string>(); + try { + for (Integer i = 1; i < csvRecordStr.size(); i++) { + Consumable_Orderdetails__c codObj = new Consumable_Orderdetails__c(); + string[] csvRecordData = csvRecordStr[i]; + if (orderdetMap.containsKey(csvRecordData[0] + csvRecordData[12])) + continue; + codObj.Remarks__c = csvRecordData[0]; + if (String.isBlank(csvRecordData[7])) { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鏁伴噺涓虹┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鏁伴噺涓虹┖锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else if (Decimal.valueOf(csvRecordData[7]) > 1 && String.valueOf(csvRecordData[9]) == '鐩�') { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message( + // ApexPages.severity.ERROR, + // '鍑哄簱鍗� ' + + // csvRecordData[0] + + // '瀛樺湪鍗曚綅鏄洅锛屼骇鍝佸嚭璐ф暟閲忓ぇ浜�1锛岃纭銆�' + // ) + // ); + errorMsg += '鍑哄簱鍗� ' + csvRecordData[0] + '瀛樺湪鍗曚綅鏄洅锛屼骇鍝佸嚭璐ф暟閲忓ぇ浜�1锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } else { + codObj.Shipment_Count__c = Decimal.valueOf(csvRecordData[7]); + } + codObj.Box_Piece__c = csvRecordData[9]; + if (String.isNotBlank(csvRecordData[8])) { + codObj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); + } else { + if (messageCount >= 100) + break; + // ApexPages.addmessage( + // new ApexPages.message(ApexPages.severity.ERROR, '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�') + // ); + errorMsg += '鍑哄簱鍗� ' + csvRecordData[0] + '鍑哄簱鍗� ' + csvRecordData[0] + '浜у搧鍑鸿揣鍗曚环涓虹┖锛岃纭銆�<br />'; + saveFLGbln = true; + messageCount++; + } + //if(String.isNotBlank(csvRecordData[10])){ + // codObj.Unitprice_To_agency__c = Decimal.valueOf(csvRecordData[10]); + //} + codObj.Lose_reason__c = csvRecordData[12]; + codObj.Used_date__c = Date.parse(csvRecordData[11].trim()); + product2conMap.put(csvRecordData[12].trim(), csvRecordData[12].trim()); + orderdetMap.put(csvRecordData[0] + csvRecordData[12], csvRecordData[0] + csvRecordData[12]); + //orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); + } + } catch (Exception e) { + //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; } - } - return orderdet2BoxRecords; - } catch (Exception e) { - // ApexPages.addMessages(e); - // return null; - errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; - return null; } - } - public static List<ConsumableorderdetailsInfo> getorderdet2pieceList( - List<String[]> csvRecordStr - ) { - barcodePieceList = new List<String>(); - List<ConsumableorderdetailsInfo> orderdet2PieceRecords = new List<ConsumableorderdetailsInfo>(); - try { - for (Integer i = 1; i < csvRecordStr.size(); i++) { - string[] csvRecordData = csvRecordStr[i]; - if (String.valueOf(csvRecordData[9]) == '涓�') { - Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); - cod2Obj.TracingCode__c = csvRecordData[0]; - cod2Obj.Bar_Code__c = csvRecordData[6]; - if (String.isNotBlank(csvRecordData[6])) { - barcodePieceList.add(csvRecordData[6]); - } - cod2Obj.Box_Piece__c = csvRecordData[9]; - if (String.isNotBlank(csvRecordData[8])) { - cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); - } - cod2Obj.Return_reason__c = csvRecordData[12]; - if ( - String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�' || - String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌' - ) { - cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); - } else { - cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); - } - cod2Obj.Rrturn_count__c = Decimal.valueOf(csvRecordData[7]); - orderdet2PieceRecords.add(new ConsumableorderdetailsInfo(cod2Obj)); + @AuraEnabled + public static ResponseBodyLWC dataImport( + List<String[]> csvRecordStrLwc, + String orderRecordsLwc, + String sqlagencyProTypeLwc, + String userWorkLocationLwc, + String accountNameLwc, + String accountidLwc, + String agencyProTypeLwc, + Map<String, String> secondAgencyMapLwc, + Map<String, String> hospitalSysMapLwc + ) { + List<ConsumableorderdetailsInfo> orderdetRecords = new List<ConsumableorderdetailsInfo>(); + List<ConsumableorderdetailsInfo> orderdet2BoxRecords = new List<ConsumableorderdetailsInfo>(); + List<ConsumableorderdetailsInfo> orderdet2PieceRecords = new List<ConsumableorderdetailsInfo>(); + product2conMap = new Map<String, String>(); + ResponseBodyLWC res = new ResponseBodyLWC(); + Map<String, object> data = new Map<String, object>(); + res.entity = data; + + csvRecordStr = csvRecordStrLwc; + orderRecords = (List<ConsumableorderdetailsInfo>) JSON.deserialize(orderRecordsLwc, List<ConsumableorderdetailsInfo>.class); + System.debug('orderRecords = ' + orderRecords); + sqlagencyProType = sqlagencyProTypeLwc; + userWorkLocation = userWorkLocationLwc; + accountName = accountNameLwc; + secondAgencyMap = secondAgencyMapLwc; + hospitalSysMap = hospitalSysMapLwc; + accountid = accountidLwc; + agencyProType = agencyProTypeLwc; + System.debug('agencyProType = ' + agencyProType); + + errorMsg = ''; + System.debug('csvRecordStr = ' + csvRecordStr); + orderdetRecords = getorderdetList(csvRecordStr); + orderdet2BoxRecords = getorderdet2BoxList(csvRecordStr); + orderdet2PieceRecords = getorderdet2pieceList(csvRecordStr); + System.debug('orderdetRecords = ' + orderdetRecords); + System.debug('orderdet2BoxRecords = ' + orderdet2BoxRecords); + System.debug('orderdet2PieceRecords = ' + orderdet2PieceRecords); + Savepoint sp = Database.setSavepoint(); + try { + Map<String, String> orderInfoMap = new Map<String, String>(); + List<Consumable_order__c> coc = new List<Consumable_order__c>(); + for (ConsumableorderdetailsInfo ass : orderRecords) { + ass.order.Order_type__c = '浼犵エ'; + ass.order.SummonsStatus_c__c = '宸插畬鎴�'; + ass.order.Order_ProType__c = agencyProType; + ass.order.Dealer_Info__c = accountid; + ass.order.Order_ForHospital__c = hospitalSysMap.get(ass.hospitalCode); + if (secondAgencyMap.containsKey(ass.agencyName)) { + ass.order.Order_ForDealer__c = secondAgencyMap.get(ass.agencyName); + } else { + ass.order.Order_ForDealerText__c = ass.agencyName; + } + ass.order.RecordTypeId = System.Label.RT_ConOrder_Sale; + coc.add(ass.order); + } + System.debug('coc = ' + coc); + if (coc.size() > 0) { + insert coc; + } + for (Consumable_order__c order : coc) { + orderInfoMap.put(order.Name, order.Id); + } + List<Consumable_Orderdetails__c> cod = new List<Consumable_Orderdetails__c>(); + for (String field : orderInfoMap.keySet()) { + Integer i = 1; + for (ConsumableorderdetailsInfo ass : orderdetRecords) { + if (ass.orderName == field) { + String str = string.valueOf(i); + if (str.length() == 1) { + str = '0' + str; + } + ass.orderdetails1.Name = ass.orderName + '-' + str; + ass.orderdetails1.Consumable_order__c = orderInfoMap.get(ass.orderName); + ass.orderdetails1.Consumable_Product__c = ass.productName; + ass.orderdetails1.RecordTypeId = System.Label.RT_ConOrderDetail1_Sale; + cod.add(ass.orderdetails1); + i++; + } + } + } + System.debug('cod = ' + cod); + if (cod.size() > 0) { + insert cod; + } + //鐩掔殑鏁版嵁妫�绱� + List<Consumable_Order_details2__c> cod2List = new List<Consumable_Order_details2__c>(); + List<Consumable_order_details2__c> cOrderDet = [ + SELECT Id, Bar_Code__c, Name, Consumable_Product__c, Box_Piece__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Lose_Flag__c = FALSE + AND Bar_Code__c IN :barcodeList + AND Product_Type__c LIKE :sqlagencyProType + AND Dealer_Info_text__c = :accountName + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Box_Piece__c = '鐩�' + ]; + for (ConsumableorderdetailsInfo ass : orderdet2BoxRecords) { + Integer idx = 0; + for (Consumable_order_details2__c codtest : cOrderDet) { + Consumable_Order_details2__c cod2 = new Consumable_Order_details2__c(); + if (codtest.Bar_Code__c == ass.orderdetails2.Bar_Code__c) { + cod2 = codtest; + cod2.Consumable_Sale_order__c = orderInfoMap.get(ass.orderName); + cod2.Consumable_ZS_order__c = orderInfoMap.get(ass.orderName); + cod2.Used_date__c = ass.orderdetails2.Used_date__c; + cod2.Send_Date__c = ass.orderdetails2.Send_Date__c; + //cod2.Unitprice_To_agency__c = ass.orderdetails2.Unitprice_To_agency__c; + cod2.Delivery_List_RMB__c = ass.orderdetails2.Delivery_List_RMB__c; + cod2List.add(cod2); + cOrderDet.remove(idx); + break; + } + idx++; + } + } + + //涓殑鏁版嵁妫�绱� + List<Consumable_order_details2__c> cOrderDetPiece = [ + SELECT Id, Bar_Code__c, RemoveBox_No__c, Name, Consumable_Product__c, Box_Piece__c + FROM Consumable_order_details2__c + WHERE + Dealer_Arrive__c = TRUE + AND Dealer_Shipment__c = FALSE + AND Dealer_Saled__c = FALSE + AND Lose_Flag__c = FALSE + AND Arrive_Owner_Work_Location__c = :userWorkLocation + AND Bar_Code__c IN :barcodePieceList + AND Product_Type__c LIKE :sqlagencyProType + AND Dealer_Info_text__c = :accountName + AND Box_Piece__c = '涓�' + ORDER BY Bar_Code__c, RemoveBox_No__c DESC + ]; + for (ConsumableorderdetailsInfo ass : orderdet2PieceRecords) { + Decimal idy = 1; + for (Integer idx = 0; idx < cOrderDetPiece.size(); idx++) { + Consumable_Order_details2__c cod2 = new Consumable_Order_details2__c(); + if (cOrderDetPiece[idx].Bar_Code__c == ass.orderdetails2.Bar_Code__c && idy <= ass.pieceCount) { + cod2 = cOrderDetPiece[idx].Clone(); + cod2.Id = cOrderDetPiece[idx].Id; + cod2.Consumable_Sale_order__c = orderInfoMap.get(ass.orderName); + cod2.Consumable_ZS_order__c = orderInfoMap.get(ass.orderName); + cod2.Used_date__c = ass.orderdetails2.Used_date__c; + cod2.Send_Date__c = ass.orderdetails2.Send_Date__c; + //cod2.Unitprice_To_agency__c = ass.orderdetails2.Unitprice_To_agency__c; + cod2.Delivery_List_RMB__c = ass.orderdetails2.Delivery_List_RMB__c; + cod2List.add(cod2); + cOrderDetPiece[idx].Bar_Code__c = ''; + idy++; + //break; + } + } + } + if (cod2List.size() > 0) { + update cod2List; + } + errorflg = true; + //errorMessage = '淇濆瓨瀹屾垚銆�'; + saveFLGbln = true; + + res.status = 'Success'; + res.code = 200; + res.msg = errorMsg; + return res; + } catch (Exception e) { + Database.rollback(sp); + // ApexPages.addMessages(e); + // return null; + return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getStackTraceString(), ''); } - } - return orderdet2PieceRecords; - } catch (Exception e) { - // ApexPages.addMessages(e); - // return null; - errorMsg += e.getMessage(); - return null; } - } - @TestVisible - class ConsumableorderdetailsInfo implements Comparable { - @AuraEnabled - public Consumable_order__c order { get; set; } - @AuraEnabled - public Consumable_orderdetails__c orderdetails1 { get; set; } - @AuraEnabled - public Consumable_order_details2__c orderdetails2 { get; set; } - @AuraEnabled - public String orderName { get; set; } - @AuraEnabled - public String hospitalCode { get; set; } - @AuraEnabled - public String hospitalName { get; set; } - @AuraEnabled - public String agencyName { get; set; } - @AuraEnabled - public String productName { get; set; } - @AuraEnabled - public Decimal pieceCount { get; set; } - // 鍙栧埌鐨勮鍗曚俊鎭� - public ConsumableorderdetailsInfo(Consumable_order__c e) { - order = e; - hospitalCode = e.Order_Attachment__c; - hospitalName = e.Order_Indication__c; - agencyName = e.Invoice_Note__c; - e.Order_Attachment__c = ''; - e.Order_Indication__c = ''; - e.Invoice_Note__c = ''; + + public static List<ConsumableorderdetailsInfo> getorderdetList(List<String[]> csvRecordStr) { + List<ConsumableorderdetailsInfo> orderdetRecords = new List<ConsumableorderdetailsInfo>(); + map<string, Decimal> orderdetMap = new Map<string, Decimal>(); + try { + for (Integer i = 1; i < csvRecordStr.size(); i++) { + Consumable_Orderdetails__c codObj = new Consumable_Orderdetails__c(); + string[] csvRecordData = csvRecordStr[i]; + if (orderdetMap.containsKey(csvRecordData[0] + csvRecordData[12] + csvRecordData[9])) { + orderdetMap.put( + csvRecordData[0] + csvRecordData[12] + csvRecordData[9], + orderdetMap.get(csvRecordData[0] + csvRecordData[12] + csvRecordData[9]) + Decimal.valueOf(csvRecordData[7]) + ); + continue; + } else { + orderdetMap.put(csvRecordData[0] + csvRecordData[12] + csvRecordData[9], Decimal.valueOf(csvRecordData[7])); + } + codObj.Remarks__c = csvRecordData[0]; + codObj.Shipment_Count__c = Decimal.valueOf(csvRecordData[7]); + codObj.Box_Piece__c = csvRecordData[9]; + if (String.isNotBlank(csvRecordData[8])) { + codObj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); + } + codObj.Lose_reason__c = csvRecordData[12]; + if (String.isNotBlank(csvRecordData[11])) { + codObj.Used_date__c = Date.parse(csvRecordData[11].trim()); + } + product2conMap.put(csvRecordData[12].trim(), csvRecordData[12].trim()); + orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); + } + for (ConsumableorderdetailsInfo ass : orderdetRecords) { + if (orderdetMap.containsKey(ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c)) { + ass.orderdetails1.Shipment_Count__c = orderdetMap.get(ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c); + } + } + System.debug('orderdetRecords = ' + orderdetRecords); + return orderdetRecords; + } catch (Exception e) { + // ApexPages.addMessages(e); + // return null; + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; + System.debug('orderdetRecords = null ' + e.getLineNumber()); + return null; + } } - // 鍙栧埌鐨勮鍗曟槑缁� - public ConsumableorderdetailsInfo(Consumable_orderdetails__c e) { - orderdetails1 = e; - orderName = e.Remarks__c; - productName = e.Lose_reason__c; - e.Lose_reason__c = ''; - e.Remarks__c = ''; + + public static List<ConsumableorderdetailsInfo> getorderdet2BoxList(List<String[]> csvRecordStr) { + barcodeList = new List<String>(); + List<ConsumableorderdetailsInfo> orderdet2BoxRecords = new List<ConsumableorderdetailsInfo>(); + try { + for (Integer i = 1; i < csvRecordStr.size(); i++) { + string[] csvRecordData = csvRecordStr[i]; + if (String.valueOf(csvRecordData[9]) == '鐩�') { + Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); + cod2Obj.TracingCode__c = csvRecordData[0]; + cod2Obj.Bar_Code__c = csvRecordData[6]; + if (String.isNotBlank(csvRecordData[6])) { + barcodeList.add(csvRecordData[6]); + } + cod2Obj.Box_Piece__c = csvRecordData[9]; + if (String.isNotBlank(csvRecordData[8])) { + cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); + } + //if(String.isNotBlank(csvRecordData[10])){ + // cod2Obj.Unitprice_To_agency__c = Decimal.valueOf(csvRecordData[10]); + //} + cod2Obj.Return_reason__c = csvRecordData[12]; + if (String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�' || String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌') { + cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); + } else { + cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); + } + orderdet2BoxRecords.add(new ConsumableorderdetailsInfo(cod2Obj)); + } + } + return orderdet2BoxRecords; + } catch (Exception e) { + // ApexPages.addMessages(e); + // return null; + errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; + return null; + } } - // 鍙栧埌鐨勪骇鍝佹槑缁� - public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { - orderdetails2 = e; - orderName = e.TracingCode__c; - productName = e.Return_reason__c; - pieceCount = e.Rrturn_count__c; - e.TracingCode__c = ''; - e.Return_reason__c = ''; - e.Rrturn_count__c = null; + + public static List<ConsumableorderdetailsInfo> getorderdet2pieceList(List<String[]> csvRecordStr) { + barcodePieceList = new List<String>(); + List<ConsumableorderdetailsInfo> orderdet2PieceRecords = new List<ConsumableorderdetailsInfo>(); + try { + for (Integer i = 1; i < csvRecordStr.size(); i++) { + string[] csvRecordData = csvRecordStr[i]; + if (String.valueOf(csvRecordData[9]) == '涓�') { + Consumable_Order_details2__c cod2Obj = new Consumable_Order_details2__c(); + cod2Obj.TracingCode__c = csvRecordData[0]; + cod2Obj.Bar_Code__c = csvRecordData[6]; + if (String.isNotBlank(csvRecordData[6])) { + barcodePieceList.add(csvRecordData[6]); + } + cod2Obj.Box_Piece__c = csvRecordData[9]; + if (String.isNotBlank(csvRecordData[8])) { + cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); + } + cod2Obj.Return_reason__c = csvRecordData[12]; + if (String.valueOf(csvRecordData[1]) == '閿�鍞粰浜岀骇缁忛攢鍟�' || String.valueOf(csvRecordData[1]) == '鐩存帴閿�鍞粰鍖婚櫌') { + cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); + } else { + cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); + } + cod2Obj.Rrturn_count__c = Decimal.valueOf(csvRecordData[7]); + orderdet2PieceRecords.add(new ConsumableorderdetailsInfo(cod2Obj)); + } + } + return orderdet2PieceRecords; + } catch (Exception e) { + // ApexPages.addMessages(e); + // return null; + errorMsg += e.getMessage(); + return null; + } } - public Integer compareTo(Object compareTo) { - return null; + @TestVisible + class ConsumableorderdetailsInfo implements Comparable { + @AuraEnabled + public Consumable_order__c order { get; set; } + @AuraEnabled + public Consumable_orderdetails__c orderdetails1 { get; set; } + @AuraEnabled + public Consumable_order_details2__c orderdetails2 { get; set; } + @AuraEnabled + public String orderName { get; set; } + @AuraEnabled + public String hospitalCode { get; set; } + @AuraEnabled + public String hospitalName { get; set; } + @AuraEnabled + public String agencyName { get; set; } + @AuraEnabled + public String productName { get; set; } + @AuraEnabled + public Decimal pieceCount { get; set; } + // 鍙栧埌鐨勮鍗曚俊鎭� + public ConsumableorderdetailsInfo(Consumable_order__c e) { + order = e; + hospitalCode = e.Order_Attachment__c; + hospitalName = e.Order_Indication__c; + agencyName = e.Invoice_Note__c; + e.Order_Attachment__c = ''; + e.Order_Indication__c = ''; + e.Invoice_Note__c = ''; + } + // 鍙栧埌鐨勮鍗曟槑缁� + public ConsumableorderdetailsInfo(Consumable_orderdetails__c e) { + orderdetails1 = e; + orderName = e.Remarks__c; + productName = e.Lose_reason__c; + e.Lose_reason__c = ''; + e.Remarks__c = ''; + } + // 鍙栧埌鐨勪骇鍝佹槑缁� + public ConsumableorderdetailsInfo(Consumable_order_details2__c e) { + orderdetails2 = e; + orderName = e.TracingCode__c; + productName = e.Return_reason__c; + pieceCount = e.Rrturn_count__c; + e.TracingCode__c = ''; + e.Return_reason__c = ''; + e.Rrturn_count__c = null; + } + public Integer compareTo(Object compareTo) { + return null; + } } - } } -- Gitblit v1.9.1