import { LightningElement, track, wire,api } from 'lwc'; import { CurrentPageReference } from "lightning/navigation"; import { CloseActionScreenEvent } from 'lightning/actions'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import RT_ConOrderDetail2_Delivery from '@salesforce/label/c.RT_ConOrderDetail2_Delivery'; import RT_ConOrder_Delivery from '@salesforce/label/c.RT_ConOrder_Delivery'; import init from '@salesforce/apex/LexConsumableOrder.initConsumableOrder'; import updateConsumableOrder from '@salesforce/apex/LexConsumableOrder.updateConsumableOrder'; import selectDeteails from '@salesforce/apex/LexConsumableOrder.selectDeteails'; import create from '@salesforce/apex/LexConsumableOrder.create'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {loadStyle} from 'lightning/platformResourceLoader'; export default class lexSAPSendTest extends LightningElement { @api recordId; IsLoading=true; ConsumableOrder; ConsumableOrderdetails; @wire(CurrentPageReference) getStateParameters(currentPageReference) { if (currentPageReference) { const urlValue = currentPageReference.state.recordId; if (urlValue) { let str = `${urlValue}`; this.recordId = str; console.log(this.recordId); } } } connectedCallback(){ Promise.all([ loadStyle(this, lwcCSS) ]); init({ recordId: this.recordId }).then(result => { if (result != null) { this.ConsumableOrder = result; console.log('ConsumableOrder'); console.log(this.ConsumableOrder); this.SAPSendTest().then(result=>{ this.IsLoading=false; this.dispatchEvent(new CloseActionScreenEvent()); }); } }).catch(error => { const eventInItError = new ShowToastEvent({ message: error.message, variant : 'error', mode :'sticky' }); this.dispatchEvent(eventInItError); }); } async SAPSendTest(){ if (this.ConsumableOrder.Order_status__c === '已提交') { this.showToast('请先审批订单','error'); return; }else if (this.ConsumableOrder.Order_status__c === '草案中') { this.showToast('请先批准订单','error'); return; }; var Owner = this.ConsumableOrder.OwnerId; console.log('RT_ConOrder_Delivery'+RT_ConOrder_Delivery); var resultdet = await updateConsumableOrder({Id: this.ConsumableOrder.Id,recordTypeid: RT_ConOrder_Delivery}); if(resultdet !='success'){ this.showToast(resultdet,error); } this.ConsumableOrderdetails = await selectDeteails({recordId:this.recordId}); if(this.ConsumableOrderdetails.length>0) { for (var i = 0; i < this.ConsumableOrderdetails.length; i++) { var esd = this.ConsumableOrderdetails[i]; var countNum = esd.Consumable_count__c; var OrderNnme = esd.Name; var OrderId = esd.Consumable_order__c; var ForeignTrade = esd.Intra_Trade_List_RMB__c; var AssetModel = esd.Asset_Model_No__c; var orderPro = esd.Consumable_product__c; for (var j = 1; j <=countNum; j++) { let rac = { sobjectType: 'Consumable_order_details2__c', Name: '', Consumable_order_minor__c: OrderId, RecordTypeId: RT_ConOrderDetail2_Delivery, // 替换为正确的 Record Type Id Asset_Model_No__c: AssetModel, Intra_Trade_List_RMB__c: ForeignTrade, Deliver_date__c: new Date(), Sterilization_limit__c: '', Guarantee_period_for_products__c: '', Consumable_product__c: orderPro, TracingCode__c: '', SerialLotNo__c: '', Bar_Code__c: '', OwnerId: '' // 替换为正确的 Owner Id }; if(j.toString().length == 1){ rac.Name = OrderNnme + '00'+ j; }else if (j.toString().length == 2){ rac.Name = OrderNnme + '0'+ j; }else{rac.Name = OrderNnme + j;} var NewDate=new Date(); NewDate.setFullYear(NewDate.getFullYear()+5); NewDate.setDate(NewDate.getDate()-1); rac.Deliver_date__c = new Date(); rac.Sterilization_limit__c = NewDate; rac.Guarantee_period_for_products__c = new Date(); rac.Consumable_product__c=orderPro; var rtingC = this.tringcodestr(); rac.TracingCode__c = rtingC.toString(); rac.SerialLotNo__c = rtingC.toString(); rac.Bar_Code__c = (new Date()).valueOf() + "250" + rtingC.toString(); rac.OwnerId = Owner; var result = await create({rac: rac}); if(result !='success'){ this.showToast(result,result); return; } } } this.showToast('测试成功','success'); setInterval(() => { window.location.reload(); }, 3000); } } showToast(msg, type) { if(type == 'success'){ const event = new ShowToastEvent({ message: msg, variant: type }); this.dispatchEvent(event); }else{ const event = new ShowToastEvent({ message: msg, variant: type, mode:'Sticky' }); this.dispatchEvent(event); } this.dispatchEvent(new CloseActionScreenEvent()); } tringcodestr(){ let result = ''; for (let i = 0; i < 5; i++) { let ranNum = Math.ceil(Math.random() * 25); // 生成一个0到25的数字 result = result + String.fromCharCode(65 + ranNum); // 大写字母'A'的ASCII是65,A~Z的ASCII码就是65 + 0~25 } // result = '250' + result; return result; } }