| | |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | res.msg = ''; |
| | | System.debug('res:' + res); |
| | | return res; |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC importCSVFile(String base64Data, String sqlagencyProType, String userWorkLocation, String accountName) { |
| | | 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 = sqlagencyProType; |
| | | userWorkLocation = userWorkLocation; |
| | | accountName = accountName; |
| | | base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8'); |
| | | 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; |
| | |
| | | barcodePieceMap.put(csvRecordData[6], Integer.valueOf(csvRecordData[7])); |
| | | } |
| | | } |
| | | String[] csvRecordDataStr = new List<String>(13); |
| | | String[] csvRecordDataStr = new String[13]; |
| | | for (Integer j = 0; j < csvRecordData.size(); j++) { |
| | | csvRecordDataStr[j] = csvRecordData[j]; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 不存在或单位错误,请确认。') |
| | | // ); |
| | | errorMsg += 'Barcode ' + bc + ' 不存在或单位错误,请确认。\n'; |
| | | 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 + ' 库存不足,请确认。\n'; |
| | | errorMsg += 'Barcode ' + bc + ' 库存不足,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | //ApexPages.addMessages(e); |
| | | errorMsg += e.getMessage(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | //return new ResponseBodyLWC('Error', 500, e.getMessage()+e.getStackTraceString(), ''); |
| | | } |
| | | getorderinfo(); |
| | |
| | | } |
| | | data.put('orderRecords', orderRecords); |
| | | data.put('saveFLGbln', saveFLGbln); |
| | | data.put('csvRecordStr',csvRecordStr); |
| | | data.put('barcodeList',barcodeList); |
| | | 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; |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '出货目的为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出货目的为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出货目的为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + cocObj.Name + '的产品中,存在出库日期为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + cocObj.Name + '的产品中,存在出库日期为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + cocObj.Name + '的产品中,存在出库日期为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | } |
| | | } catch (Exception e) { |
| | | //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); |
| | | errorMsg += e.getMessage(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | } |
| | | } |
| | | |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '医院相关信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '医院相关信息不能空,请确认。\n'; |
| | | errorMsg += '出库单' + ass.order.Name + '医院相关信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | //return null; |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '经销商信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。\n'; |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '不需要二级经销商,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '不需要二级经销商,请确认。\n'; |
| | | errorMsg += '出库单' + ass.order.Name + '不需要二级经销商,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '经销商信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。\n'; |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '不需要医院相关信息,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '不需要医院相关信息,请确认。\n'; |
| | | 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 |
| | |
| | | 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) |
| | |
| | | hospitalconMap.get(widget) + |
| | | ' 的医院编码' + |
| | | widget + |
| | | ' 不存在或者不是本经销商负责的医院,请确认。\n'; |
| | | ' 不存在或者不是本经销商负责的医院,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | } |
| | | } |
| | |
| | | // ' 不存在出库单位,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的barcode ' + cod2Obj.Bar_Code__c + ' 不存在出库单位,请确认。\n'; |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的barcode ' + cod2Obj.Bar_Code__c + ' 不存在出库单位,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.valueOf(csvRecordData[9]) != '盒' && String.valueOf(csvRecordData[9]) != '个') { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.isNotBlank(csvRecordData[8])) { |
| | |
| | | // '产品出货单价不能为0,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价不能为0,请确认。\n'; |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价不能为0,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // '的产品中,存在barcode为空,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的产品中,存在barcode为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的产品中,存在barcode为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.isBlank(csvRecordData[12])) { |
| | |
| | | } |
| | | } catch (Exception e) { |
| | | //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); |
| | | errorMsg += e.getMessage(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | } |
| | | } |
| | | |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '产品出货数量为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '产品出货数量为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '产品出货数量为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (Decimal.valueOf(csvRecordData[7]) > 1 && String.valueOf(csvRecordData[9]) == '盒') { |
| | |
| | | // '存在单位是盒,产品出货数量大于1,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '存在单位是盒,产品出货数量大于1,请确认。\n'; |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '存在单位是盒,产品出货数量大于1,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '产品出货单价为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出库单 ' + csvRecordData[0] + '产品出货单价为空,请确认。\n'; |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出库单 ' + csvRecordData[0] + '产品出货单价为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | |
| | | } |
| | | } catch (Exception e) { |
| | | //return new ResponseBodyLWC('Error', 500, e.getMessage(), ''); |
| | | errorMsg += e.getMessage(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | } |
| | | } |
| | | |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC dataImport(List<String[]> csvRecordStr,List<ConsumableorderdetailsInfo> orderRecords,String sqlagencyProType, String userWorkLocation, String accountName) { |
| | | 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 = csvRecordStr; |
| | | orderRecords = orderRecords; |
| | | sqlagencyProType = sqlagencyProType; |
| | | userWorkLocation = userWorkLocation; |
| | | accountName = accountName; |
| | | errorMessage = ''; |
| | | 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>(); |
| | |
| | | ass.order.RecordTypeId = System.Label.RT_ConOrder_Sale; |
| | | coc.add(ass.order); |
| | | } |
| | | System.debug('coc = ' + coc); |
| | | if (coc.size() > 0) { |
| | | insert coc; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | System.debug('cod = ' + cod); |
| | | if (cod.size() > 0) { |
| | | insert cod; |
| | | } |
| | |
| | | Database.rollback(sp); |
| | | // ApexPages.addMessages(e); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage()+e.getStackTraceString(), ''); |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getStackTraceString(), ''); |
| | | } |
| | | } |
| | | |
| | |
| | | string[] csvRecordData = csvRecordStr[i]; |
| | | if (orderdetMap.containsKey(csvRecordData[0] + csvRecordData[12] + csvRecordData[9])) { |
| | | orderdetMap.put( |
| | | csvRecordData[0] + |
| | | csvRecordData[12] + |
| | | csvRecordData[9], |
| | | csvRecordData[0] + csvRecordData[12] + csvRecordData[9], |
| | | orderdetMap.get(csvRecordData[0] + csvRecordData[12] + csvRecordData[9]) + Decimal.valueOf(csvRecordData[7]) |
| | | ); |
| | | continue; |
| | |
| | | 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(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | System.debug('orderdetRecords = null ' + e.getLineNumber()); |
| | | return null; |
| | | } |
| | | } |
| | |
| | | } catch (Exception e) { |
| | | // ApexPages.addMessages(e); |
| | | // return null; |
| | | errorMsg += e.getMessage(); |
| | | errorMsg += e.getMessage() + ' ' + e.getLineNumber() + ';'; |
| | | return null; |
| | | } |
| | | } |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Consumable_order__c order { get; set; } |