From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp
---
force-app/main/default/classes/LexOutboundorderImportController.cls | 919 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 919 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/LexOutboundorderImportController.cls b/force-app/main/default/classes/LexOutboundorderImportController.cls
new file mode 100644
index 0000000..a1f00f6
--- /dev/null
+++ b/force-app/main/default/classes/LexOutboundorderImportController.cls
@@ -0,0 +1,919 @@
+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; }
+
+ @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 = '';
+ 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;
+
+ 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]));
+ }
+ }
+ String[] csvRecordDataStr = new List<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;
+ }
+ 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(), '');
+ }
+ }
+
+ 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 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 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;
+ }
+ }
+
+ 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;
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.1