.sf/config.json
@@ -1,3 +1,3 @@ { "target-org": "OlympusProd" "target-org": "OlympusStageEnv" } force-app/main/default/aura/CreateTarget/CreateTarget.cmp
@@ -1,6 +1,6 @@ <aura:component controller="CreateTargetCmp" implements="forceCommunity:availableForAllPageTypes,force:hasRecordId" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" access="global" > <aura:handler name="init" value="{!this}" action="{!c.doInit}" /> @@ -154,10 +154,10 @@ onclick="{!c.toggle_report}" > <lightning:icon class="close_icn" iconName="utility:close" size="medium" alternativeText="Indicates approval" alternative-text="close" variant="inverse" /> <span class="slds-assistive-text">Close</span> </button> @@ -174,10 +174,17 @@ <label class="slds-form-element__label" for="input-hos" >医院</label > <force:inputField value="{!v.record.Agency_Hospital__c}" aura:id="input-hos" /> <!-- <force:inputField value="{!v.record.Agency_Hospital__c}" aura:id="input-hos"/> --> <lightning:recordEditForm objectApiName="Agency_Opportunity__c" > <lightning:inputField variant="label-hidden" fieldName="Agency_Hospital__c" value="{!v.record.Agency_Hospital__c}" aura:id="input-hos" /> </lightning:recordEditForm> </div> </div> <!-- <h4 class="slds-section__title">访问目标</h4> force-app/main/default/aura/CreateTarget/CreateTarget.cmp-meta.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> <AuraDefinitionBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>39.0</apiVersion> <apiVersion>42.0</apiVersion> <description>A Lightning Component Bundle</description> </AuraDefinitionBundle> force-app/main/default/aura/CreateTarget/CreateTarget.css
@@ -4,3 +4,9 @@ .THIS.disp_none { display: none; } .THIS select { --lwc-lineHeightButton: 36px; --lwc-heightInput: 36px; min-height: 0px !important; height: 36px !important; } force-app/main/default/aura/CreateTarget/CreateTargetHelper.js
@@ -8,14 +8,19 @@ action.setParams({ recordId: recordId }); action.setCallback(this, function (response) { var state = response.getState(); console.log("state1:" + state); if (state === "SUCCESS") { var ah = response.getReturnValue(); var select_ah = ah.Id; var select_ah_name = ah.Name; component.set("v.record.Agency_Hospital__c", select_ah); // component.set('v.record.Agency_Hospital__c', select_ah); //add by Deloitte 2023-6-8 let agency = component.get("v.record"); agency.Agency_Hospital__c = select_ah; // component.set("v.record", agency); // alert(JSON.stringify(component.find('input-hos').get("v.body")[0].get('v.values'))); if ($A.get("$Browser.formFactor") == "DESKTOP") { console.log("flag1"); var values = [ { type: "Agency_Hospital_Link__c", @@ -28,15 +33,29 @@ } } ]; component .find("input-hos") .get("v.body")[0] .set("v.values", values); // component.find('input-hos').get("v.body")[0].set('v.values', values); //add by Deloitte 2023-6-8 if ( component.find("input-hos").get("v.body") && component.find("input-hos").get("v.body").length > 0 ) { component .find("input-hos") .get("v.body")[0] .set("v.values", values); } } else { component .find("input-hos") .get("v.body")[0] .set("v.selectedLabel", select_ah_name); // component.find('input-hos').get("v.body")[0].set('v.selectedLabel', select_ah_name); //add by Deloitte 2023-6-8 if ( component.find("input-hos").get("v.body") && component.find("input-hos").get("v.body").length > 0 ) { component .find("input-hos") .get("v.body")[0] .set("v.selectedLabel", select_ah_name); } } } else if (state === "ERROR") { var errors = response.getError(); @@ -55,6 +74,7 @@ var action = component.get("c.getProductList"); action.setCallback(this, function (response) { var state = response.getState(); console.log("state2:" + state); if (state === "SUCCESS") { var opts = response.getReturnValue(); // alert(JSON.stringify(opts["GI"])); force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReport.cmp
@@ -1,6 +1,6 @@ <aura:component controller="RetrospectiveWeeklyReportController" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction,forceCommunity:availableForAllPageTypes,lightning:availableForFlowScreens" access="global" > <ltng:require styles="{!$Resource.multilineToastCSS}" /> @@ -23,7 +23,8 @@ <aura:attribute name="acondata" type="Agency_Contact__c" default="{sobjectType:'Agency_Contact__c'}" default="{sobjectType:'Ag ency_Contact__c'}" /> <aura:attribute name="successMessage" type="String" /> <aura:attribute name="etEng" type="String" /> @@ -42,6 +43,8 @@ <aura:attribute name="doclist" type="List" /> <aura:attribute name="docmap" type="Map" /> <aura:attribute name="login" type="Boolean" default="false" /> <aura:attribute name="loginEdit" type="Boolean" default="false" /> <aura:attribute name="modal_import_spinner" type="Boolean" default="false" /> <aura:attribute name="loadOpp" type="Boolean" default="false" /> <aura:attribute name="reportPageData" type="Map" /> <aura:attribute name="selectbody" type="String" /> @@ -153,6 +156,12 @@ <aura:attribute name="NumOfRecords" type="Integer" default="1000" /> <aura:attribute name="showMain" type="Boolean" default="true" /> <aura:attribute name="IsEventDefault" type="Boolean" default="true" /> <!-- start DTT-zhj 增加错误信息table 2023-05-16--> <aura:attribute name="errorData" type="Object" /> <aura:attribute name="errorColumns" type="List" /> <!-- show Error information --> <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> <!-- end DTT-zhj 增加错误信息table 2023-05-16--> <aura:attribute name="PIConfig" type="Map" /> @@ -162,27 +171,40 @@ <!-- 批量添加日报 end--> <!--ロード中...--> <aura:renderIf isTrue="{!v.login}"> <div class="slds-spinner_container height100vh"> <aura:renderIf isTrue="{!!v.loginEdit}"> <!-- <div class="slds-spinner_container"> <div role="status" class="slds-spinner slds-spinner_medium slds-spinner_brand"> <span class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> </div> </div> --> <div class="slds-spinner--brand slds-spinner slds-spinner--medium" role="alert" class="slds-spinner_container" id="spinner" style="position: fixed; top: 123px" > <span class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> <div role="status" class="slds-spinner slds-spinner_medium slds-spinner_brand" > <span class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> </div> </div> </div> </aura:renderIf> </aura:renderIf> <div aura:id="report" id="report" class="contents_wrapper"> <div aura:id="report" id="report"> <div class="slds-grid slds-wrap slds-grid--pull-padded"> <div style="width: 200px"></div> <div style="width: 150px"></div> <div class="tr mt5 slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12" class="tr mt5 slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12 fontSize" > 周 </div> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 fontSize" > <ui:inputSelect aura:id="select_date" @@ -212,35 +234,44 @@ class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" style="display: contents" > <ui:button aura:id="new_button" label="新建" press="{!c.new_report}" /> <ui:button aura:id="new_button" label="新建" press="{!c.new_report}" class="buttonFontSize" /> </div> <div style="width: 350px" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" style="width: 400px" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12" > <ui:button aura:id="copy_button" label="复制" press="{!c.copy_button}" disabled="true" class="buttonFontSize" /> <ui:button aura:id="delete_button" label="删除" press="{!c.delete_button}" disabled="true" class="buttonFontSize" /> <ui:button aura:id="import" label="导入" press="{!c.import}" /> <ui:button aura:id="import" label="导入" press="{!c.import}" class="buttonFontSize" /> <ui:button aura:id="export" label="导出" press="{!c.export_condition}" class="buttonFontSize" /> <ui:button aura:id="returnbutton" label="返回" press="{!c.return_main_page}" /> <!-- <ui:button aura:id="returnbutton" label="返回" press="{!c.return_main_page}" /> --> </div> </div> </div> @@ -256,33 +287,41 @@ > <thead> <tr class="slds-line-height--reset"> <th class="table_header slds-text-title--caps"></th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize" style="width: 250px" > <span class="slds-truncate" title="Name">日报编号</span> </th> <th class="table_header slds-text-title--caps fontSize"> <span class="slds-truncate" title="Name" >{!v.fieldsmap.Person_In_Charge2__c}</span > <!-- {!v.fieldsmap.Person_In_Charge2__c} 担当--> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize" style="width: 250px" > <span class="slds-truncate" title="Name">医院</span> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize"> <span class="slds-truncate" title="Name" >{!v.fieldsmap.Department_Cateogy__c}</span > <!-- {!v.fieldsmap.Department_Cateogy__c} 科室--> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize"> <span class="slds-truncate" title="Name">拜访人</span> <!-- {!v.fieldsmap.doctor2__c} 拜访人 --> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize"> <span class="slds-truncate" title="Name" >{!v.fieldsmap.DealerPersonnel__c}</span > <!-- {!v.fieldsmap.visitor_title__c} 职位--> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps fontSize"> <span class="slds-truncate" title="Name" >{!v.fieldsmap.WorkMark__c}</span > @@ -293,7 +332,7 @@ <tbody> <aura:iteration items="{!v.reports}" var="item" indexVar="index"> <tr class="slds-hint-parent"> <td role="gridcell" class="slds-cell-edit"> <td role="gridcell" class="slds-cell-edit fontSize"> <ui:inputRadio class="report_radio" name="report_radio" @@ -309,7 +348,7 @@ onclick="{!c.edit_button}" /> </td> <td role="gridcell" class="slds-cell-edit"> <td role="gridcell" class="slds-cell-edit fontSize"> <span class="slds-grid slds-grid--align-spread"> <span class="slds-truncate" @@ -318,12 +357,15 @@ > </span> </td> <th scope="row" tabindex="0" class="slds-cell-edit"> <span class="slds-grid slds-grid--align-spread"> <td scope="row" tabindex="0" class="slds-cell-edit fontSize"> <div class="slds-grid slds-grid--align-spread" style="word-wrap: break-word" > {!item.Agency_Hospital__r.Name} </span> </th> <td role="gridcell" class="slds-cell-edit"> </div> </td> <td role="gridcell" class="slds-cell-edit fontSize"> <span class="slds-grid slds-grid--align-spread"> <span class="slds-truncate" @@ -332,7 +374,7 @@ > </span> </td> <td role="gridcell" class="slds-cell-edit"> <td role="gridcell" class="slds-cell-edit fontSize"> <span class="slds-grid slds-grid--align-spread"> <span class="slds-truncate" title="{!item.doctor2__r.Name}"> <span class="encrypt">{!item.doctor2__r.Name}</span> @@ -340,7 +382,7 @@ </span> </span> </td> <td role="gridcell" class="slds-cell-edit"> <td role="gridcell" class="slds-cell-edit fontSize"> <span class="slds-grid slds-grid--align-spread"> <span class="slds-truncate" @@ -349,7 +391,7 @@ > </span> </td> <td role="gridcell" class="slds-cell-edit"> <td role="gridcell" class="slds-cell-edit fontSize"> <span class="slds-grid slds-grid--align-spread"> <span class="slds-truncate" title="{!item.WorkMark__c}"> <lightning:input @@ -379,6 +421,9 @@ class="disp_none slds-modal slds-fade-in-open slds-modal--large" aria-labelledby="headerTarget" > <aura:renderIf isTrue="{!v.modal_import_spinner}"> <lightning:spinner alternativeText="Loading" size="medium" /> </aura:renderIf> <div class="slds-modal slds-fade-in-open slds-hide" aura:id="successDiv01"> <!-- <ui:inputText aura:id="articleURL" /> --> <div class="demo-only" style="height: 8rem"> @@ -404,35 +449,24 @@ </div> </div> </div> <div class="slds-modal slds-fade-in-open slds-hide" aura:id="errorDiv01" style="z-index: 10001" > <!-- <ui:inputText aura:id="articleURL" /> --> <div class="demo-only" style="height: 8rem"> <div class="slds-notify_container slds-is-relative"> <div class="slds-notify slds-notify_toast slds-theme_error" role="status" > <div class="slds-m-left_xx-large"> <div class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large" > <lightning:icon alternativeText="error" iconName="utility:error" size="small" class="buttonColor slds-m-right_small" /> <h2 class="slds-text-heading_small">{!v.errorMessage}</h2> </div> <!-- <div class="slds-modal slds-fade-in-open slds-hide" aura:id="errorDiv01" style="z-index: 10001"> <div class="demo-only" style="height: 8rem;"> <div class="slds-notify_container slds-is-relative"> <div class="slds-notify slds-notify_toast slds-theme_error" role="status"> <div class=" slds-m-left_xx-large"> <div class="slds-notify__content slds-m-left_small slds-align_absolute-center slds-m-left_xx-large"> <lightning:icon alternativeText="error" iconName="utility:error" size="small" class="buttonColor slds-m-right_small" /> <h2 class="slds-text-heading_small ">{!v.errorMessage}</h2> <lightning:icon alternativeText="Close" iconName="utility:close" size="small" onclick="{!c.closeErrorDiv}" /> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> --> <div class="slds-modal__container"> <div class="slds-modal__header"> <h4 id="headerTarget" class="slds-float--left"></h4> @@ -442,12 +476,12 @@ <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" class="close_button slds-button slds-button--neutral slds-order--1 buttonFontSize" press="{!c.close_import}" /> </div> <div class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium" class="slds-modal__content slds-scrollable slds-grow slds-p-around--medium fontSize" > <aura:if isTrue="{!v.showMain}"> <div> @@ -460,7 +494,7 @@ </div> <aura:set attribute="else"> <ui:outputRichText class="uiOutputRichText slds-m--around-large" class="uiOutputRichText slds-m--around-large fontSize" value="{!v.TableContent}" /> <div class="slds-p-around--large slds-align--absolute-center"> @@ -468,13 +502,34 @@ label="保存" variant="brand" onclick="{!c.processFileContent}" class="buttonFontSize" /> <lightning:button label="取消" variant="brand" onclick="{!c.cancel}" class="buttonFontSize" /> </div> <aura:if isTrue="{!v.showErrorInfo}"> <div class="slds-p-around--large slds-align--absolute-center"> <lightning:button label="导出错误信息" variant="brand" onclick="{!c.exportErrorInfo}" /> </div> <div class="slds-p-around--large slds-align--absolute-center"> <div style="height: 300px; overflow-x: scroll"> <lightning:datatable keyField="id" data="{! v.errorData }" columns="{! v.errorColumns }" hideCheckboxColumn="true" /> </div> </div> </aura:if> </aura:set> </aura:if> </div> @@ -639,35 +694,46 @@ </div> </div> </div> <div class="slds-modal__header"> <h4 id="headerTarget" class="slds-float--left">{!v.dialog_type}</h4> <h2 id="headerTarget" class="slds-text-heading--medium"> 日报({!v.selected_date} {!v.selected_agency_person}) </h2> <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" press="{!c.toggle_report}" /> </div> <div class="slds-modal__content slds-grow slds-p-around--medium"> <div class="slds-modal__content slds-grow slds-p-around--medium" style="position: relative" > <aura:renderIf isTrue="{!v.loginEdit}"> <lightning:spinner alternativeText="Loading" size="medium" style="width: 100%; height: 100%" /> </aura:renderIf> <div class="slds-modal__header"> <h2 id="headerTarget" class="slds-text-heading--medium"> 日报({!v.selected_date} {!v.selected_agency_person}) </h2> <ui:button aura:id="close_button" label="关闭" class="close_button slds-button slds-button--neutral slds-order--1" press="{!c.toggle_report}" /> </div> <div class="slds-box slds-theme--shade"> <div class="slds-grid slds-wrap slds-grid--pull-padded"> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" > 活动日 <lightning:input type="date" value="{!v.data.Report_Date__c}" aura:id="input-report-date" variant="label-hidden" /> </div> <!-- 医院 --> <div aura:id="hospital_list" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" data-select="single" > <!-- label="医院" --> @@ -677,6 +743,7 @@ class="field" value="{!v.hospital}" updateOn="keyup" variant="label-hidden" /> <div class="slds-lookup__menu" id="lookup-66"> <ul class="slds-lookup__list" role="listbox"> @@ -705,18 +772,21 @@ </div> <!-- 科室分类 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" > {!v.fieldsmap.Department_Cateogy__c} <ui:inputText <!-- <ui:inputText aura:id="select_department" class="slds-select" change="{!c.select_department}"/> --> <lightning:input type="text" onchange="{!c.select_department}" aura:id="select_department" class="slds-select" change="{!c.select_department}" variant="label-hidden" /> </div> <!-- 经销商人员 change="{!c.select_DealerPersonnel}" --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" style="width: 145px" > {!v.fieldsmap.DealerPersonnel__c} @@ -727,7 +797,7 @@ </div> <!-- 活动区分 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" > {!v.fieldsmap.WorkRecord__c} <ui:inputSelect @@ -738,7 +808,7 @@ </div> <!-- 拜访人 {!v.fieldsmap.doctor2__c}--> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" style="width: 145px" > 拜访人 @@ -751,7 +821,7 @@ <!-- <p hidden="hidden"> --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-7 slds-large-size--1-of-7" > <br /> <ui:button @@ -767,7 +837,7 @@ <hr /> <!-- 产品分类(第三分类) change="{!c.select_ProductClassification}" --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" > 产品分类(第三分类) <ui:inputSelect @@ -779,7 +849,7 @@ <!-- 使用产品1(产品型号) UseProduct1__c --> <div aura:id="UseProduct1_List" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" data-select="single" > <!-- label="使用产品1(产品型号)" --> @@ -789,6 +859,7 @@ class="field" value="{!v.UseProduct1}" updateOn="keyup" variant="label-hidden" /> <div class="slds-lookup__menu" id="lookup-11"> <ul @@ -825,7 +896,7 @@ <!-- 使用产品2 UseProduct2__c --> <div aura:id="UseProduct2_List" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" data-select="single" > <!-- label="使用产品2" --> @@ -835,6 +906,7 @@ class="field" value="{!v.UseProduct2}" updateOn="keyup" variant="label-hidden" /> <div class="slds-lookup__menu" id="lookup-22"> <ul @@ -871,7 +943,7 @@ <!-- 使用产品3 UseProduct3__c --> <div aura:id="UseProduct3_List" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" data-select="single" > <!-- label="使用产品3" --> @@ -881,6 +953,7 @@ class="field" value="{!v.UseProduct3}" updateOn="keyup" variant="label-hidden" /> <div class="slds-lookup__menu" id="lookup-33"> <ul @@ -917,7 +990,7 @@ <!-- 效果/进度 EffectProgress__c--> <div aura:id="product_category_select1" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" > {!v.fieldsmap.EffectProgress__c} <ui:inputSelect @@ -928,13 +1001,16 @@ <hr /> <!-- 产品1同类耗材科室月使用量 ConsumptionOfConsumables__c--> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" > {!v.fieldsmap.ConsumptionOfConsumables__c} <ui:inputText <!-- <ui:inputText aura:id="select_ConsumptionOfConsumables" class="slds-select" change="{!c.select_ConsumptionOfConsumables}" /> --> <lightning:input type="text" onchange="{!c.select_ConsumptionOfConsumables}" aura:id="select_ConsumptionOfConsumables" class="slds-select" change="{!c.select_ConsumptionOfConsumables}" variant="label-hidden" /> </div> <!-- 术士分类 WarlockClassification__c --> @@ -974,14 +1050,17 @@ class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" > {!v.fieldsmap.warlocksNumber__c} <ui:inputText <!-- <ui:inputText aura:id="select_warlocksNumber" class="slds-select" change="{!c.select_warlocksNumber}" /> --> <lightning:input type="text" onchange="{!c.select_warlocksNumber}" aura:id="select_warlocksNumber" class="slds-select" change="{!c.select_warlocksNumber}" variant="label-hidden" /> </div> <!-- 支援需求 WorkMark__c--> <div style="padding-left: 20px"> <div style="padding-left: 12px"> {!v.fieldsmap.WorkMark__c} <lightning:input type="checkbox" aura:id="select_WorkMark" /> </div> force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReport.css
@@ -1,103 +1,135 @@ @import "c/lexCssUtility"; .THIS .bcolor { color: #333; } .THIS.height100vh { height: 100vh; } .THIS.contents_wrapper { padding-top: 50px; } .THIS .mt5 { margin-top: 5px; } .THIS .mt40 { margin-top: 40px; } .THIS .edit_button { float: right; margin: -1.5em 0.5em 0 0; border: 0; } .THIS .no_data_area { text-align: center; margin: 0.5em 0; } .THIS.report_list_area { margin: 40px 0 20px 100px; height: 60vh; overflow-y: scroll; } .THIS .report_radio { float: left; } .THIS .table_header { width: 9.4rem; height: 2em; } .THIS.disp_none { display: none; } .THIS .disp_none { display: none; } .THIS .tr { text-align: right; } .THIS .close_button { float: right; margin-top: -2em; } .THIS .close_icn svg { fill: #fefefe; } .THIS .slds-progress__marker { cursor: default; } .THIS .progress_0 { width: 0%; } .THIS .progress_100 { width: 100%; } .THIS .new_btn_area { text-align: center; margin-top: 22px; } .THIS .new_btn { width: 100%; } .THIS .save_button_area { margin: 1em 0; text-align: right; } .THIS .save_button { background-color: #ffa500; border: 1px solid #ff8c00; } .THIS .report_data_header { border-bottom: 2px solid #ccc; } .THIS .report_data_area { border-bottom: 1px solid #ccc; } .THIS.fade { transition: 5s opacity linear; } .THIS.animation_off { opacity: 0; } .THIS.animation_on { opacity: 1; } .THIS .fade { transition: 5s opacity linear; } .THIS .animation_off { opacity: 0; } .THIS .animation_on { opacity: 1; } .THIS .divbotuser { width: fit-content; } @@ -119,12 +151,14 @@ .THIS .customRequired { font-weight: 400; } .THIS .customRequired:before { content: "*"; margin: 0 0.125rem 0 0.125rem; color: rgb(194, 57, 52); float: left; } .THIS .none { display: none; } @@ -140,3 +174,29 @@ .THIS tr:hover .encrypt { display: none; } .THIS tr:hover .encrypt { display: none; } .THIS .buttonFontSize { font-size: 18px; min-width: 80px; max-width: 110px; } .THIS .fontSize { font-size: 18px; } .THIS thead th { font-size: 18px; } .THIS table { table-layout: fixed; } .THIS td { white-space: normal; overflow-wrap: break-word; } force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReportController.js
@@ -299,10 +299,12 @@ CreateRecord: function (component, event, helper) { var files = event.getSource().get("v.files"); helper.readFile(component, helper, files[0]); component.set("v.showErrorInfo", false); }, processFileContent: function (component, event, helper) { helper.saveRecords(component, event, helper); component.set("v.showErrorInfo", false); }, cancel: function (component, event, helper) { @@ -366,5 +368,12 @@ }, return_main_page: function (component, event, helper) { window.open("/customer/", "_self"); }, exportErrorInfo: function (component, event, helper) { helper.exportErrorInfoHelper(component); }, closeErrorDiv: function (component, event, helper) { var errorDiv01 = component.find("errorDiv01"); $A.util.addClass(errorDiv01, "slds-hide"); } }); force-app/main/default/aura/RetrospectiveWeeklyReport/RetrospectiveWeeklyReportHelper.js
@@ -1,6 +1,7 @@ ({ doinit: function (component, event, helper) { debugger; document.title = "追溯日报"; this.report_date_list(component, event, helper, 5); component.set("v.login", true); var action = component.get("c.getalldata"); @@ -13,7 +14,7 @@ component.set("v.allselectlist", res.allselectlist); component.set("v.doclist", res.doclist); //fy debugger; var xx = res.UserProType; component.set("v.UserProType", res.UserProType); var gg = component.get("v.UserProType"); @@ -61,9 +62,80 @@ component.set("v.PIConfig", res.PIConfig); // 20220222 PI改造 by Bright component.set("v.login", false); } else { component.set("v.errorMessage", "doinit failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'doinit failed.'); this.error("doinit failed."); //this.showErrorToast(component); component.set("v.login", false); } }); $A.enqueueAction(action); }, doinitSave: function (component, event, helper) { document.title = "追溯日报"; component.set("v.loginEdit", true); this.report_date_list(component, event, helper, 5); var action = component.get("c.getalldata"); action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { var res = response.getReturnValue(); component.set("v.alldata", res.reports); component.set("v.fieldsmap", res.fieldsMap); component.set("v.allselectlist", res.allselectlist); component.set("v.doclist", res.doclist); //fy var xx = res.UserProType; component.set("v.UserProType", res.UserProType); var gg = component.get("v.UserProType"); //fy component .find("select_agency_person") .set( "v.options", this.conv_selected(res.allselectlist.AgencyPerson__c) ); component .find("select_DealerPersonnel") .set( "v.options", this.conv_selected(res.allselectlist.DealerPersonnel__c) ); component .find("select_purpose_type") .set( "v.options", this.conv_selected(res.allselectlist.WorkRecord__c) ); component .find("select_ProductClassification") .set( "v.options", this.conv_selected(res.allselectlist.ProductClassification__c) ); component .find("select_stageName") .set("v.options", this.conv_selected(res.allselectlist.StageName__c)); component.set( "v.selected_agency_person", res.allselectlist.AgencyPerson__c[0].label ); component.set("v.dialog_type", "新建"); this.get_reports( component, event, helper, component.find("select_date").get("v.value"), component.find("select_agency_person").get("v.value") ); component.set("v.PIConfig", res.PIConfig); // 20220222 PI改造 by Bright component.set("v.loginEdit", false); } else { //component.set('v.errorMessage', 'doinit failed.'); this.error("doinit failed."); //this.showErrorToast(component); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -107,9 +179,8 @@ date_str: date_str, person_str: person_str }); component.set("v.login", true); component.set("v.loginEdit", true); action.setCallback(this, function (response) { debugger; var state = response.getState(); if (state == "SUCCESS") { var res = response.getReturnValue(); @@ -173,7 +244,7 @@ m[data.object[di].dataId] = data.object[di]; } } debugger; for (let ri in res.reports) { if ( res.reports[ri] && @@ -198,22 +269,23 @@ component.set("v.report_count", res.reports.length); } //fy 20220414 end component.set("v.login", false); component.set("v.loginEdit", false); }, staticResourceAgencyContact.token ); } else { component.set("v.login", false); component.set("v.loginEdit", false); } } } else { component.set("v.list_message", "no_data"); component.set("v.login", false); component.set("v.loginEdit", false); } } else { component.set("v.errorMessage", "get_reports failed."); this.showErrorToast(component); component.set("v.login", false); //component.set('v.errorMessage', 'get_reports failed.'); this.error("get_reports failed."); //this.showErrorToast(component); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -261,7 +333,6 @@ }, //复制和编辑回显的位置 toggle_report: function (component) { debugger; var modal_window = component.find("modal_window"); var modal_bg = component.find("modal_bg"); if ($A.util.hasClass(modal_window, "disp_none")) { @@ -429,8 +500,6 @@ .find("select_WorkMark") .set("v.checked", select_data["WorkMark__c"]); } debugger; var report_id = component.get("v.edit_copy_select_report_id"); if (report_id != "") { var select_EffectProgress1 = ""; @@ -600,6 +669,345 @@ } } }, toggle_report_edit: function (component) { var modal_window = component.find("modal_window"); var modal_bg = component.find("modal_bg"); if ($A.util.hasClass(modal_window, "disp_none")) { // OPEN $A.util.removeClass(modal_window, "disp_none"); $A.util.removeClass(modal_bg, "disp_none"); component.set("v.loginEdit", true); //复制 和编辑 回显问题在这里面 if ( component.get("v.mode") == "edit" || component.get("v.mode") == "copy" ) { var select_data = ""; if (component.get("v.mode") == "edit") { select_data = component.get("v.select_report_data"); } else if (component.get("v.mode") == "copy") { select_data = component.get("v.select_report_data_radio"); } var reports = component.get("v.reports"); var Agency_Hospital_text = ""; var Agency_Hospital_parent_id = ""; // 医院名 if (select_data["Agency_Hospital__c"] != "") { for (var i = 0; i < reports.length; i++) { if ( reports[i]["Agency_Hospital__c"] == select_data["Agency_Hospital__c"] ) { Agency_Hospital_text = reports[i]["Agency_Hospital__r"]["Name"]; Agency_Hospital_parent_id = reports[i]["Agency_Hospital__r"]["Hospital__c"]; } } component.set("v.hospital", Agency_Hospital_text); component.set("v.hospitalId", Agency_Hospital_parent_id); component.set("v.hospitalLinkId", select_data["Agency_Hospital__c"]); component.find("new_con").set("v.disabled", false); } //使用产品1(产品型号) var UseProduct1Text = ""; var UseProduct1Id = ""; if ( select_data["UseProduct1__c"] != "" && select_data["UseProduct1__c"] != undefined ) { for (var i = 0; i < reports.length; i++) { if (reports[i]["UseProduct1__c"] == select_data["UseProduct1__c"]) { UseProduct1Text = reports[i]["UseProduct1__r"]["Asset_Model_No__c"]; UseProduct1Id = reports[i]["UseProduct1__c"]; } } component.set("v.UseProduct1", UseProduct1Text); component.set("v.UseProduct1Id", select_data["UseProduct1__c"]); } //使用产品2 var UseProduct2Text = ""; var UseProduct2Id = ""; if ( select_data["UseProduct2__c"] != "" && select_data["UseProduct2__c"] != undefined ) { for (var i = 0; i < reports.length; i++) { if (reports[i]["UseProduct2__c"] == select_data["UseProduct2__c"]) { UseProduct2Text = reports[i]["UseProduct2__r"]["Asset_Model_No__c"]; UseProduct2Id = reports[i]["UseProduct2__c"]; } } component.set("v.UseProduct2", UseProduct2Text); component.set("v.UseProduct2Id", select_data["UseProduct2__c"]); } //使用产品3 var UseProduct3Text = ""; var UseProduct3Id = ""; if ( select_data["UseProduct3__c"] != "" && select_data["UseProduct3__c"] != undefined ) { for (var i = 0; i < reports.length; i++) { if (reports[i]["UseProduct3__c"] == select_data["UseProduct3__c"]) { UseProduct3Text = reports[i]["UseProduct3__r"]["Asset_Model_No__c"]; UseProduct3Id = reports[i]["UseProduct3__c"]; } } component.set("v.UseProduct3", UseProduct3Text); component.set("v.UseProduct3Id", select_data["UseProduct3__c"]); } //活动日 var reportDate; if (select_data["Report_Date__c"] != "") { for (var i = 0; i < reports.length; i++) { if (reports[i]["Report_Date__c"] == select_data["Report_Date__c"]) { reportDate = reports[i]["Report_Date__c"]; } } component.set("v.data.Report_Date__c", reportDate); } // 科室 // if (select_data['Department_Cateogy__c'] != '') { // component.find('select_department').set('v.value',select_data['Department_Cateogy__c']); // } //fy Department_Cateogy_text__c if (select_data["Department_Cateogy_text__c"] != "") { component .find("select_department") .set("v.value", select_data["Department_Cateogy_text__c"]); } //经销商人员 if (select_data["DealerPersonnel__c"] != "") { this.set_selected( component, "select_DealerPersonnel", select_data["DealerPersonnel__c"] ); } // 活动区分 if (select_data["WorkRecord__c"] != "") { this.set_selected( component, "select_purpose_type", select_data["WorkRecord__c"] ); this.selectPurposeType(component); } // 拜访人 if (select_data["WorkRecord__c"] == "科室会") { component.set( "v.default_select_doctor_id2", select_data["doctor3__c"] ); var a = component.get("v.default_select_doctor_id2"); this.set_doctor_list_edit(component); } else { component.set( "v.default_select_doctor_id", select_data["doctor2__c"] ); this.set_doctor_list_edit(component); } //产品分类(第三分类) if (select_data["ProductClassification__c"] != null) { this.set_selected( component, "select_ProductClassification", select_data["ProductClassification__c"] ); this.selectProductClassification(component); } // 产品1同类耗材科室月使用量 if (select_data["ConsumptionOfConsumables__c"] != "") { component .find("select_ConsumptionOfConsumables") .set("v.value", select_data["ConsumptionOfConsumables__c"]); } // 产品用量 if (select_data["warlocksNumber__c"] != "") { component .find("select_warlocksNumber") .set("v.value", select_data["warlocksNumber__c"]); } // 支援需求 if (select_data["WorkMark__c"] != false) { component .find("select_WorkMark") .set("v.checked", select_data["WorkMark__c"]); } var report_id = component.get("v.edit_copy_select_report_id"); if (report_id != "") { var select_EffectProgress1 = ""; var WarlockClassification = ""; var ProductCcategory = ""; var productCategories = ""; var i = 0; for (i = 0; i < reports.length; i++) { if (report_id == reports[i]["Id"]) { select_EffectProgress1 = reports[i]["EffectProgress__c"]; WarlockClassification = reports[i]["WarlockClassification__c"]; ProductCcategory = reports[i]["ProductCcategory__c"]; productCategories = reports[i]["productCategories__c"]; break; } } //效果/进度 if (select_EffectProgress1 != null && select_EffectProgress1 != "") { component .find("select_EffectProgress") .set("v.value", select_EffectProgress1); } //术士分类 if (WarlockClassification != null && WarlockClassification != "") { component .find("select_OtherBrandConsumables") .set("v.value", WarlockClassification); } //已采用其他品牌 if (ProductCcategory != null && ProductCcategory != "") { component .find("select_ProductCcategory") .set("v.value", ProductCcategory); this.selectpurposetype(component); } //其他品牌产品类别 if (productCategories != null && productCategories != "") { component .find("select_productCategories") .set("v.value", productCategories); } component.set("v.edit_copy_select_report_id", ""); } } } else { var select_report_data = component.get("v.select_report_data"); var Report_Date__c = component.get("v.data.Report_Date__c"); var Agency_Hospital__c = component.get("v.hospitalLinkId"); var UseProduct1__c = component.get("v.UseProduct1Id"); var UseProduct2__c = component.get("v.UseProduct2Id"); var UseProduct3__c = component.get("v.UseProduct3Id"); var Department_Cateogy__c = component .find("select_department") .get("v.value"); var ConsumptionOfConsumables__c = component .find("select_ConsumptionOfConsumables") .get("v.value"); var DealerPersonnel__c = component .find("select_DealerPersonnel") .get("v.value"); var doctor2__c = component.find("select_doctor").get("v.value"); var WorkRecord__c = component.find("select_purpose_type").get("v.value"); var EffectProgress__c = component .find("select_EffectProgress") .get("v.value"); var WarlockClassification__c = component .find("select_OtherBrandConsumables") .get("v.value"); var ProductCcategory__c = component .find("select_ProductCcategory") .get("v.value"); var productCategories__c = component .find("select_productCategories") .get("v.value"); var warlocksNumber__c = component .find("select_warlocksNumber") .get("v.value"); var WorkMark__c = component.find("select_WorkMark").get("v.checked"); if (component.get("v.mode") == "new") { var confirm_title = "警告!"; var confirm_text = "放弃新建日报?"; if ( !Report_Date__c && !Agency_Hospital__c && !UseProduct1__c && !UseProduct2__c && !UseProduct3__c && !Department_Cateogy__c && !ConsumptionOfConsumables__c && !DealerPersonnel__c && !doctor2__c && !EffectProgress__c && !WarlockClassification__c && !ProductCcategory__c && !productCategories__c && !warlocksNumber__c && !WorkMark__c && !WorkRecord__c ) { this.allclear(component); $A.util.addClass(modal_window, "disp_none"); $A.util.addClass(modal_bg, "disp_none"); this.close_confirm(component, confirm_title, confirm_text); } else { this.close_confirm(component, confirm_title, confirm_text); } } else if (component.get("v.mode") == "copy") { var confirm_title = "警告!"; var confirm_text = "放弃新建日报?"; if ( select_report_data["Report_Date__c"] == Report_Date__c && select_report_data["Agency_Hospital__c"] == Agency_Hospital__c && select_report_data["UseProduct1__c"] == UseProduct1__c && select_report_data["UseProduct2__c"] == UseProduct2__c && select_report_data["UseProduct3__c"] == UseProduct3__c && select_report_data["Department_Cateogy__c"] == Department_Cateogy__c && select_report_data["ConsumptionOfConsumables__c"] == ConsumptionOfConsumables__c && select_report_data["DealerPersonnel__c"] == DealerPersonnel__c && select_report_data["doctor2__c"] == doctor2__c && select_report_data["EffectProgress__c"] == EffectProgress__c && select_report_data["WarlockClassification__c"] == WarlockClassification__c && select_report_data["ProductCcategory__c"] == ProductCcategory__c && select_report_data["productCategories__c"] == productCategories__c && select_report_data["warlocksNumber__c"] == warlocksNumber__c && select_report_data["WorkMark__c"] == WorkMark__c && select_report_data["WorkRecord__c"] == WorkRecord__c ) { this.allclear(component); $A.util.addClass(modal_window, "disp_none"); $A.util.addClass(modal_bg, "disp_none"); } else { this.close_confirm(component, confirm_title, confirm_text); } } else if (component.get("v.mode") == "edit") { var confirm_title = "警告!"; var confirm_text = "放弃编辑日报?"; if ( select_report_data["Report_Date__c"] == Report_Date__c && select_report_data["Agency_Hospital__c"] == Agency_Hospital__c && select_report_data["UseProduct1__c"] == UseProduct1__c && select_report_data["UseProduct2__c"] == UseProduct2__c && select_report_data["UseProduct3__c"] == UseProduct3__c && select_report_data["Department_Cateogy__c"] == Department_Cateogy__c && select_report_data["ConsumptionOfConsumables__c"] == ConsumptionOfConsumables__c && select_report_data["DealerPersonnel__c"] == DealerPersonnel__c && select_report_data["doctor2__c"] == doctor2__c && select_report_data["EffectProgress__c"] == EffectProgress__c && select_report_data["WarlockClassification__c"] == WarlockClassification__c && select_report_data["ProductCcategory__c"] == ProductCcategory__c && select_report_data["productCategories__c"] == productCategories__c && select_report_data["warlocksNumber__c"] == warlocksNumber__c && select_report_data["WorkMark__c"] == WorkMark__c && select_report_data["WorkRecord__c"] == WorkRecord__c ) { this.allclear(component); $A.util.addClass(modal_window, "disp_none"); $A.util.addClass(modal_bg, "disp_none"); } else { this.close_confirm(component, confirm_title, confirm_text); } } } //component.set('v.loginEdit',false); }, //关闭页面是 小的提示框是否放弃新建日报 close_confirm: function (component, title, text) { var confirm_status = component.get("v.confirm_status"); @@ -609,7 +1017,7 @@ var modal_bg = component.find("modal_bg"); var modal_confirm = component.find("modal_confirm"); var modal_confirm_bg = component.find("modal_confirm_bg"); debugger; if (confirm_status == 0) { $A.util.addClass(modal_window, "disp_none"); $A.util.addClass(modal_bg, "disp_none"); @@ -664,7 +1072,6 @@ }, // 复制按钮 copy_button: function (component, event, helper) { debugger; this.allclear(component); component.set("v.mode", "copy"); component.set("v.dialog_type", "新建"); @@ -708,10 +1115,8 @@ }, //删除按钮 delete_button: function (component, event, helper) { debugger; var select_report_data = component.get("v.select_report_data_radio"); if (confirm("是否删除该数据?")) { debugger; component.set("v.login", true); var action = component.get("c.deleteAgencyReport"); action.setParams({ @@ -734,7 +1139,6 @@ }, //复制按钮可用 change_report_radio: function (component, event, helper) { debugger; var reports = component.get("v.reports"); for (var i = 0; i < reports.length; i++) { if (reports[i].Name == event.getSource().get("v.label")) { @@ -747,9 +1151,11 @@ }, //编辑按钮 edit_button: function (component, event, helper) { this.allclear(component); component.set("v.login", true); debugger; component.set("v.loadOpp", true); //component.set('v.loginEdit', true); this.allclear(component); //component.set('v.loadOpp', true); var index = event.getSource().get("v.value"); component.set("v.select_report_data", component.get("v.reports")[index]); component.set("v.mode", "edit"); @@ -768,7 +1174,7 @@ "v.edit_copy_select_report_id", component.get("v.reports")[index].Id ); var ret = this.create_report_header( var ret = this.create_report_header_edit( component, event, helper, @@ -778,6 +1184,7 @@ ); // SWAG-CF58C3 fy start this.set_aws_url(component, "Agency_Contact__c"); //component.set('v.login', false); // SWAG-CF58C3 fy end }, //保存 @@ -805,7 +1212,7 @@ .find("select_agency_person") .get("v.value"); } debugger; // Agency_Report_Header__c var Agency_Report_Header__c = component.get("v.agency_report_header_id"); // 医院 @@ -1055,16 +1462,21 @@ // if (!productCategories__c) { error.push("其他品牌产品类别 不存在"); } //let errorMsg = ''; for (var i = 0; i < error.length; i++) { component.set("v.errorMessage", error[i]); this.showErrorToast(component); //errorMsg += '; ' + error[i] //this.error(error[i]); } // if(errorMsg != '') // this.error(errorMsg.substring(1)); if (error.length > 0) { component.find("save_button").set("v.disabled", false); return false; } // 保存処理 component.set("v.login", true); component.set("v.loginEdit", true); if (component.get("v.mode") == "edit") { var Agency_Report__c = component.get("v.select_report_data").Id; var action = component.get("c.editAgencyReport"); @@ -1098,6 +1510,7 @@ action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { debugger; component.set("v.successMessage", "编辑保存成功"); this.showSuccessToast(component); var report_id = response.getReturnValue(); @@ -1126,12 +1539,13 @@ component.get("v.select_report_data").Person_In_Charge2__c ); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } else { component.set("v.errorMessage", "save_report failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'save_report failed.'); this.error("保存日报失败"); //this.showErrorToast(component); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1205,24 +1619,27 @@ var data_list = component.find("modal_data_list_tr"); } } else { component.set("v.errorMessage", "get_reports_now failed."); this.showErrorToast(component); // component.set('v.errorMessage', 'get_reports_now failed.'); this.error("get_reports_now failed."); //this.showErrorToast(component); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action2); this.allclear(component); component.find("select_WorkMark").set("v.value", false); component.find("save_button").set("v.disabled", false); component.set("v.login", false); this.doinit(component, event, helper); component.set("v.loginEdit", false); debugger; this.doinitSave(component, event, helper); } else { var error = response.getError(); component.set("v.errorMessage", "saveAgencyReport failed."); this.showErrorToast(component); //component.set('v.errorMessage', '保存日报失败'); this.error("保存日报失败"); //this.showErrorToast(component); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1378,15 +1795,17 @@ ) { s_date = this.get_date_string(s_date); if (s_date == false) { component.set("v.errorMessage", "get_date_string failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'get_date_string failed.'); this.error("get_date_string failed."); //this.showErrorToast(component); return false; } var head_key = this.create_header_input_key(s_agency, s_date); component.set("v.agency_report_header", head_key); if (head_key == false) { component.set("v.errorMessage", "create_header_input_key failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'create_header_input_key failed.'); this.error("create_header_input_key failed."); //this.showErrorToast(component); return false; } var key2 = s_date.replace(/-/g, ""); @@ -1406,8 +1825,58 @@ component.set("v.login", false); this.toggle_report(component, event, helper); } else { component.set("v.errorMessage", "createReportHeader callback failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'createReportHeader callback failed.'); this.error("createReportHeader callback failed."); //this.showErrorToast(component); component.set("v.login", false); } }); $A.enqueueAction(action); }, create_report_header_edit: function ( component, event, helper, name, s_agency, s_date ) { s_date = this.get_date_string(s_date); if (s_date == false) { //component.set('v.errorMessage', 'get_date_string failed.'); this.error("get_date_string failed."); //this.showErrorToast(component); return false; } var head_key = this.create_header_input_key(s_agency, s_date); component.set("v.agency_report_header", head_key); if (head_key == false) { //component.set('v.errorMessage', 'create_header_input_key failed.'); this.error("create_header_input_key failed."); //this.showErrorToast(component); return false; } var key2 = s_date.replace(/-/g, ""); var action = component.get("c.createReportHeader"); action.setParams({ name: name, s_date: s_date, s_agency: s_agency, head_key: head_key }); component.set("v.login", true); action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { var res = response.getReturnValue(); component.set("v.agency_report_header_id", res); component.set("v.login", false); this.toggle_report_edit(component, event, helper); } else { //component.set('v.errorMessage', 'createReportHeader callback failed.'); this.error("createReportHeader callback failed."); //this.showErrorToast(component); component.set("v.login", false); } }); @@ -1417,11 +1886,9 @@ if (typeof s_date != "string") { s_date = this.get_date_string(s_date); if (s_date == false) { component.set( "v.errorMessage", "get_date_string in create_header_input_key." ); this.showErrorToast(component); //component.set('v.errorMessage', 'get_date_string in create_header_input_key.'); this.error("get_date_string in create_header_input_key."); //this.showErrorToast(component); return false; } } @@ -1513,7 +1980,6 @@ component.set("v.hospitalId", ""); }, selectHos: function (component, event, helper) { debugger; var hospital_list = component.find("hospital_list"); $A.util.removeClass(hospital_list, "slds-is-open"); var accname = event.currentTarget.dataset.accname; @@ -1536,9 +2002,9 @@ component.set("v.hospitals", accname); component.set("v.hospital", accname); component.set("v.hospitalId", accid); debugger; component.set("v.setdoctorlisthos", true); this.set_doctor_list(component, event, helper); this.set_doctor_list_edit(component, event, helper); }, //模糊查询使用产品1(产品型号) @@ -1582,7 +2048,6 @@ component.set("v.data.UseProduct1__c", ""); }, seletUseProduct1Change: function (component, event, helper) { debugger; var UseProduct1_List = component.find("UseProduct1_List"); $A.util.removeClass(UseProduct1_List, "slds-is-open"); var accname = event.currentTarget.dataset.accname; @@ -1600,8 +2065,9 @@ component.set("v.UseProduct1s", accname); component.set("v.UseProduct1", accname); } else { component.set("v.errorMessage", "不能选择同样的产品"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品'); this.error("不能选择同样的产品"); //this.showErrorToast(component); } }, //模糊查询使用产品2 @@ -1662,8 +2128,9 @@ component.set("v.UseProduct2s", accname); component.set("v.UseProduct2", accname); } else { component.set("v.errorMessage", "不能选择同样的产品"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品'); this.error("不能选择同样的产品"); //this.showErrorToast(component); } }, //模糊查询使用产品3 @@ -1724,13 +2191,13 @@ component.set("v.UseProduct3s", accname); component.set("v.UseProduct3", accname); } else { component.set("v.errorMessage", "不能选择同样的产品"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品'); this.error("不能选择同样的产品"); //this.showErrorToast(component); } }, //hospitalLinkId 经销商医院的ID 拜访人复制的地方 doctor_change: function (component, event, helper) { debugger; var doctorurpose = component.find("select_purpose_type").get("v.value"); var doctor_value = component.find("select_doctor").get("v.value"); var doctor_list = component.get("v.doctor_list"); @@ -1767,9 +2234,11 @@ component.set("v.AWSsearch", awsmap.searchUrl); component.set("v.AWStransactionURL", awsmap.transactionURL); } else { component.set("v.errorMessage", "AWS url/token error."); this.showErrorToast(component); // component.set('v.errorMessage', 'AWS url/token error.'); this.error("AWS url/token error."); //this.showErrorToast(component); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1784,6 +2253,9 @@ helper, hospitalName ) { console.log("newUrl = " + newUrl); console.log("payload = " + payload); console.log("token = " + token); fetch(newUrl, { method: "POST", body: payload, @@ -1796,6 +2268,7 @@ return data.json(); }) .then((result) => { console.log("result = " + JSON.stringify(result)); if (result.status == "0") { $A.getCallback(function () { helper.to_agencycontact(component, result, agencyHospitalid); @@ -1850,17 +2323,20 @@ this.to_confirm(component, token, confirmUrl, JSON.stringify(data)); } else if (acMap.errormsg != "") { component.set("v.errorMessage", acMap.errormsg); this.showErrorToast(component); // component.set('v.errorMessage', acMap.errormsg); this.error(acMap.errormsg); //this.showErrorToast(component); component.set("v.login", false); } else { component.set("v.errorMessage", "agency contact insert id error."); this.showErrorToast(component); //component.set('v.errorMessage', 'agency contact insert id error.'); this.error("agency contact insert id error."); //this.showErrorToast(component); component.set("v.login", false); } } else { component.set("v.errorMessage", "agency contact insert error."); this.showErrorToast(component); //component.set('v.errorMessage', 'agency contact insert error.'); this.error("agency contact insert error."); //this.showErrorToast(component); component.set("v.login", false); } }); @@ -1896,30 +2372,35 @@ $A.util.addClass(modal_newAC, "disp_none"); component.set("v.successMessage", ".拜访人已创建。"); this.showSuccessToast(component); this.set_doctor_list(component); component.set("v.login", false); this.set_doctor_list_edit(component); } else { component.set("v.errorMessage", "AWS confirm error."); this.showErrorToast(component); //component.set('v.errorMessage', 'AWS confirm error.'); this.error("AWS confirm error."); //this.showErrorToast(component); component.set("v.login", false); } }) .catch((error) => { component.set("v.errorMessage", "AWS confirm error."); this.showErrorToast(component); // component.set('v.errorMessage', 'AWS confirm error.'); this.error("AWS confirm error."); //this.showErrorToast(component); component.set("v.login", false); }); }, //SWAG-CF58C3 fy end 调用pi set_doctor_list: function (component) { console.log("set_doctor_list"); var doctor_value = component.find("select_purpose_type").get("v.value"); var hospital_id = component.get("v.hospitalLinkId"); console.log("hospital_id = " + hospital_id); if (hospital_id) { if (doctor_value == "科室会") { component.set("v.login", true); component.set("v.loginEdit", true); this.set_doctor_list2(component); } else { component.set("v.login", true); component.set("v.loginEdit", true); var action = component.get("c.getDoctorList"); action.setParams({ hospital_id: hospital_id @@ -1927,7 +2408,6 @@ action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { debugger; var res = this.conv_selected(response.getReturnValue()); //fy var setdoctorlisthos = component.get("v.setdoctorlisthos"); @@ -1953,7 +2433,7 @@ } component.find("select_doctor").set("v.options", res); component.set("v.doctor_title", doctor_title); console.log("awsids = " + JSON.stringify(awsids)); if (awsids.length > 0) { let PIConfig = component.get("v.PIConfig"); let staticResourceAgencyContact = JSON.parse( @@ -1965,6 +2445,7 @@ dataIds: awsids }, function (data) { console.log("data = " + JSON.stringify(data)); if (data && data.object && data.object.length) { let m = {}; for (let di in data.object) { @@ -1985,7 +2466,7 @@ component.find("select_doctor").set("v.options", res); } component.set("v.login", false); component.set("v.loginEdit", false); }, staticResourceAgencyContact.token ); @@ -2029,7 +2510,7 @@ component.find("select_doctor").set("v.options", res); } component.set("v.login", false); component.set("v.loginEdit", false); }, staticResourceAgencyContact.token ); @@ -2040,13 +2521,14 @@ } } // component.set('v.default_select_doctor_id', ''); debugger; component.set("v.doctor_list", res); component.set("v.login", false); component.set("v.loginEdit", false); } else { component.set("v.errorMessage", "set_doctor_list failed."); this.showErrorToast(component); component.set("v.login", false); // component.set('v.errorMessage', 'set_doctor_list failed.'); this.error("set_doctor_list failed."); //this.showErrorToast(component); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -2058,14 +2540,166 @@ component.find("select_doctor").set("v.options", ""); } } component.set("v.loginEdit", false); }, //fy 20220414 set_doctor_list_edit: function (component) { console.log("set_doctor_list"); var doctor_value = component.find("select_purpose_type").get("v.value"); var hospital_id = component.get("v.hospitalLinkId"); console.log("hospital_id = " + hospital_id); if (hospital_id) { if (doctor_value == "科室会") { component.set("v.loginEdit", true); this.set_doctor_list2(component); } else { component.set("v.loginEdit", true); var action = component.get("c.getDoctorList"); action.setParams({ hospital_id: hospital_id }); action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { var res = this.conv_selected(response.getReturnValue()); //fy var setdoctorlisthos = component.get("v.setdoctorlisthos"); if (setdoctorlisthos) { component.set("v.default_select_doctor_id", ""); component.set("v.setdoctorlisthos", false); } //fy var default_doctor = component.get("v.default_select_doctor_id"); if (default_doctor != "" && res.length > 0) { var doctor_title = ""; let awsids = []; for (var i = 0; i < res.length; i++) { if (res[i].value == default_doctor) { res[i].selected = true; doctor_title = res[i].Doctor_Division1__c; } else { res[i].selected = false; } if (res[i].AWS_Data_Id__c) { awsids.push(res[i].AWS_Data_Id__c); } } component.find("select_doctor").set("v.options", res); component.set("v.doctor_title", doctor_title); console.log("awsids = " + JSON.stringify(awsids)); if (awsids.length > 0) { let PIConfig = component.get("v.PIConfig"); let staticResourceAgencyContact = JSON.parse( PIConfig.staticResourceAgencyContact ); AWSService.search( staticResourceAgencyContact.searchUrl, { dataIds: awsids }, function (data) { console.log("data = " + JSON.stringify(data)); if (data && data.object && data.object.length) { let m = {}; for (let di in data.object) { if (data.object[di] && data.object[di].dataId) { m[data.object[di].dataId] = data.object[di]; } } for (let ri in res) { if ( res[ri] && res[ri].AWS_Data_Id__c && m.hasOwnProperty(res[ri].AWS_Data_Id__c) ) { res[ri].label = m[res[ri].AWS_Data_Id__c].name; } } component.find("select_doctor").set("v.options", res); } component.set("v.loginEdit", false); }, staticResourceAgencyContact.token ); } } else { let awsids = []; for (var i = 0; i < res.length; i++) { if (res[i].AWS_Data_Id__c) { awsids.push(res[i].AWS_Data_Id__c); } } component.find("select_doctor").set("v.options", res); if (awsids.length > 0) { let PIConfig = component.get("v.PIConfig"); let staticResourceAgencyContact = JSON.parse( PIConfig.staticResourceAgencyContact ); AWSService.search( staticResourceAgencyContact.searchUrl, { dataIds: awsids }, function (data) { if (data && data.object && data.object.length) { let m = {}; for (let di in data.object) { if (data.object[di] && data.object[di].dataId) { m[data.object[di].dataId] = data.object[di]; } } for (let ri in res) { if ( res[ri] && res[ri].AWS_Data_Id__c && m.hasOwnProperty(res[ri].AWS_Data_Id__c) ) { res[ri].label = m[res[ri].AWS_Data_Id__c].name; } } component.find("select_doctor").set("v.options", res); } component.set("v.loginEdit", false); }, staticResourceAgencyContact.token ); } // component.find('select_doctor').set('v.options', res); if (res.length > 0) { component.set("v.doctor_title", res[0].Doctor_Division1__c); } } // component.set('v.default_select_doctor_id', ''); component.set("v.doctor_list", res); component.set("v.loginEdit", false); } else { // component.set('v.errorMessage', 'set_doctor_list failed.'); this.error("set_doctor_list failed."); //this.showErrorToast(component); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); } } else { if (doctor_value == "科室会") { this.set_doctor_list2(component); } else { component.find("select_doctor").set("v.options", ""); } } }, set_doctor_list2: function (component) { var action1 = component.get("c.selectdoctor3c"); action1.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { var res = response.getReturnValue(); debugger; for (var i = 0; i < res.length; i++) { if (res[i].selected == "true") { res[i].selected = true; @@ -2073,11 +2707,12 @@ res[i].selected = false; } } debugger; component.find("select_doctor").set("v.options", res); var doctor3value = component.get("v.default_select_doctor_id2"); this.set_selected(component, "select_doctor", doctor3value); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action1); @@ -2096,8 +2731,9 @@ (p1bool && p0bool && product_category_id == pcId1) || (p2bool && p0bool && product_category_id == pcId2) ) { component.set("v.errorMessage", "不能选择同样的产品区分"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品区分'); this.error("不能选择同样的产品区分"); //this.showErrorToast(component); component.find("select_Product1").set("v.value", ""); } }, @@ -2112,8 +2748,9 @@ (p1bool && p0bool && product_category_id == pcId1) || (p2bool && p0bool && product_category_id == pcId2) ) { component.set("v.errorMessage", "不能选择同样的产品区分"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品区分'); this.error("不能选择同样的产品区分"); //this.showErrorToast(component); component.set("v.UseProduct2_TEXT", ""); } }, @@ -2131,8 +2768,9 @@ (p1bool && p0bool && product_category_id == pcId1) || (p2bool && p0bool && product_category_id == pcId2) ) { component.set("v.errorMessage", "不能选择同样的产品区分"); this.showErrorToast(component); //component.set('v.errorMessage', '不能选择同样的产品区分'); this.error("不能选择同样的产品区分"); //this.showErrorToast(component); component.find("select_Product3").set("v.value", ""); } }, @@ -2149,7 +2787,6 @@ return obj; }, set_selected: function (component, aura_id_name, value) { debugger; var select_tmp = component.find(aura_id_name).get("v.options"); if (select_tmp) { for (var i = 0; i < select_tmp.length; i++) { @@ -2167,7 +2804,6 @@ }, //弹出 成功提示 showSuccessToast: function (component) { debugger; $A.util.removeClass(component.find("successDiv"), "slds-hide"); window.setTimeout( $A.getCallback(function () { @@ -2178,7 +2814,6 @@ }, //弹出 成功提示 showSuccessToast01: function (component) { debugger; $A.util.removeClass(component.find("successDiv01"), "slds-hide"); window.setTimeout( $A.getCallback(function () { @@ -2189,7 +2824,6 @@ }, //弹出 错误提示 showErrorToast: function (component) { debugger; $A.util.removeClass(component.find("errorDiv"), "slds-hide"); window.setTimeout( $A.getCallback(function () { @@ -2200,7 +2834,6 @@ }, //弹出 错误提示 showErrorToast01: function (component) { debugger; $A.util.removeClass(component.find("errorDiv01"), "slds-hide"); window.setTimeout( $A.getCallback(function () { @@ -2239,7 +2872,7 @@ $A.util.addClass(modal_newAC, "disp_none"); component.set("v.successMessage", ".拜访人已创建。"); this.showSuccessToast(component); this.set_doctor_list(component, event, helper); this.set_doctor_list_edit(component, event, helper); }, createCancel: function (component, event, helper) { component.set("v.truthy", false); @@ -2307,7 +2940,6 @@ component.set("v.TargetFileName", output); }; reader.onload = function (e) { debugger; var data = e.target.result; component.set("v.fileContentData", data); @@ -2326,9 +2958,15 @@ var content = '<table class="table slds-table slds-table--bordered slds-table--cell-buffer">'; content += '<thead><tr class="slds-text-title--caps">'; content += '<th scope="col">' + "行号" + "</th>"; content += '<th scope="col" style="width:100px">' + "行号" + "</th>"; for (i = 0; i < headers.length; i++) { content += '<th scope="col">' + headers[i] + "</th>"; if (headers[i] == "产品1同类耗材科室月使用量") { content += '<th scope="col" style="width:250px">' + headers[i] + "</th>"; } else { content += '<th scope="col" style="width:200px">' + headers[i] + "</th>"; } } content += "</tr></thead>"; for (var i = 1; i < allTextLines.length; i++) { @@ -2366,8 +3004,9 @@ var result = response.getReturnValue(); if (callback) callback(result); } else { component.set("v.errorMessage", "AWS url/token error."); this.showErrorToast01(component); //component.set('v.errorMessage', 'AWS url/token error.'); this.error("AWS url/token error."); //this.showErrorToast01(component); component.set("v.login", false); } }); @@ -2393,13 +3032,15 @@ }) .catch((error) => { console.log("AWS search error = " + JSON.stringify(error)); component.set("v.errorMessage", "AWS search error."); this.showErrorToast01(component); // component.set('v.errorMessage', 'AWS search error.'); this.error("AWS search error."); //this.showErrorToast01(component); component.set("v.login", false); }); }, saveRecords: function (component, event, helper) { component.set("v.login", true); //component.set('v.login', true); component.set("v.modal_import_spinner", true); //fy 导入 202200506 start var action1 = component.get("c.processDataAWSId"); action1.setParams({ @@ -2408,13 +3049,12 @@ action1.setCallback(this, function (response) { var state = response.getState(); if (state === "SUCCESS") { debugger; var ress = response.getReturnValue(); if (ress) { var valur = ress.split("error1"); if (valur.length <= 1) { var res = JSON.parse(response.getReturnValue()); debugger; var dataArr = new Array(); var dataMap = new Map(); res.forEach((item) => { @@ -2424,7 +3064,7 @@ dataMap.set(item.AWS_Data_Id__c, item.AWS_Data_Id__c); } }); debugger; let obj = Object.create(null); obj["dataIds"] = dataArr; var payload = JSON.stringify(obj); @@ -2434,14 +3074,19 @@ (result) => { var token = result.token; var searchUrl = result.searchUrl; console.log("token = " + token); console.log("searchUrl = " + searchUrl); console.log("payload = " + payload); this.search_core( token, searchUrl, payload, (result) => { console.log("result = " + JSON.stringify(result)); if (result.status == "0") { if (result.object != null && result.object.length != 0) { component.set("v.login", true); //component.set('v.login', true); component.set("v.modal_import_spinner", true); this.saveRecordsEditFile( component, dataMap, @@ -2449,17 +3094,18 @@ helper ); } else { component.set("v.errorMessage", "AWS search status "); this.showErrorToast01(component); component.set("v.login", false); //component.set('v.errorMessage', 'AWS 查询数据为空 '); this.error("AWS 查询数据为空 "); //this.showErrorToast01(component); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } } else { component.set( "v.errorMessage", "AWS search status : " + result.status ); this.showErrorToast01(component); component.set("v.login", false); //component.set('v.errorMessage', 'AWS search status : ' + result.status); this.error("AWS search status : " + result.status); //this.showErrorToast01(component); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } }, component @@ -2467,12 +3113,11 @@ } ); } else { component.set( "v.errorMessage", valur[1] + "\n" + "请修改后重新上传" ); this.showErrorToast01(component); component.set("v.login", false); //component.set('v.errorMessage', valur[1] + '\n' + "请修改后重新上传"); this.error(valur[1] + "\n" + "请修改后重新上传"); //this.showErrorToast01(component); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } } } @@ -2531,8 +3176,10 @@ saveRecordsEditFile: function (component, dataMap, searchData, helper) { var searchDataMap = new Map(); for (var i = 0; i < searchData.length; i++) { var sd = searchData[i]; searchDataMap.set(sd.name.replace(" ", ""), sd.dataId); if (searchData[i].name != null) { var sd = searchData[i]; searchDataMap.set(sd.name.replace(" ", ""), sd.dataId); } } console.log("searchDataMap=" + searchDataMap); var error = ""; @@ -2560,7 +3207,6 @@ var nameDataId = searchDataMap.get(fileName.replace(" ", "")); if (dataMap.get(nameDataId)) { filelist[5] = dataMap.get(nameDataId); //zhj 新方案改造 filelist[5]不再存的nameEncrpt 2022-12-21 console.log("filelist[5] = " + filelist[5]); } else { error += "error1 第" + i + "行数据拜访人SF不存在"; } @@ -2603,16 +3249,116 @@ } if (error != "") { component.set("v.errorMessage", error); this.showErrorToast01(component); console.log("zhj error = " + error); let errorArray = error.split("error1"); let errorDatas = []; let errorDataRow = []; var fileContentData = component.get("v.fileContentData").split("\n"); console.log("fileContentData = " + JSON.stringify(fileContentData)); console.log("errorArray = " + JSON.stringify(errorArray)); for (var i in errorArray) { // if (errorArray[i] != '') { // let errorData = {} // errorData.errorRow = errorArray[i].trim().substring(1, 2); // errorData.errorInfo = errorArray[i].trim().substring(5); // errorDatas.push(errorData); // } if (errorArray[i] != "") { let errorData = {}; let index = errorDataRow.indexOf( errorArray[i].trim().substring(1, 2) ); if (index == -1) { errorData.errorRow = errorArray[i].trim().substring(1, 2); errorDataRow.push(errorData.errorRow); errorData.errorInfo = errorArray[i].trim().substring(5); if (errorData.errorInfo == "拜访人AWS不存在") { errorData.errorInfo = "拜访人 " + fileContentData[errorData.errorRow].split(",")[5] + "不存在"; } errorDatas.push(errorData); } else { if (errorArray[i].trim().substring(5) == "拜访人AWS不存在") { errorData[index].errorInfo = "; " + "拜访人 " + fileContentData[errorDatas[index].errorRow].split(",")[5] + "不存在"; } else { errorDatas[index].errorInfo += "; " + errorArray[i].trim().substring(5); } } } } var fileContentData = component.get("v.fileContentData").split("\n"); console.log("fileContentData = " + JSON.stringify(fileContentData)); let errorColumns = [ { label: "错误行", fieldName: "errorRow", type: "text", hideDefaultActions: true, initialWidth: 100 }, { label: "错误信息", fieldName: "errorInfo", type: "text", hideDefaultActions: true, initialWidth: 300, wrapText: true } ]; for (var i = 0; i < fileContentData[0].split(",").length - 1; i++) { let initialWidth = 180; if ( fileContentData[0].split(",")[i] == "产品1同类耗材科室月使用量" || fileContentData[0].split(",")[i] == "使用产品1(产品型号)" ) { initialWidth = 250; } errorColumns.push({ label: fileContentData[0].split(",")[i], fieldName: "field" + i, type: "text", hideDefaultActions: true, wrapText: true, initialWidth: initialWidth }); } for (var i = 0; i < errorDatas.length; i++) { let data = fileContentData[errorDatas[i].errorRow]; console.log("data = " + JSON.stringify(data)); if (data) { for (var j = 0; j < data.split(",").length; j++) { let label = "field" + j; errorDatas[i][label] = data.split(",")[j]; } } } console.log("errorDatas =" + JSON.stringify(errorDatas)); component.set("v.errorColumns", errorColumns); component.set("v.errorData", errorDatas); component.set("v.showErrorInfo", true); console.log("error = " + error); //component.set('v.errorMessage', error); this.error(error); //this.showErrorToast01(component); console.log("error=" + error); component.set("v.login", false); //component.set('v.login', false); component.set("v.modal_import_spinner", false); return; } console.log("fileStr=" + fileStr); $A.getCallback(function () { debugger; helper.ImportMethod(component, fileStr, helper); })(); }, @@ -2633,32 +3379,124 @@ if (res != "success") { var ress = res.split("="); console.log(ress); let errorDatas = []; let errorDataRow = []; var fileContentData = component.get("v.fileContentData").split("\n"); console.log( "fileContentData[1].split(,)[5] = " + fileContentData[1].split(",")[5] ); for (var i = 0; i < ress.length; i++) { res1 += ress[i].substr(7) + "\n"; if (ress[i] != "") { let errorData = {}; let index = errorDataRow.indexOf( ress[i].substr(7).substring(1, 2) ); if (index == -1) { errorData.errorRow = ress[i].substr(7).substring(1, 2); errorDataRow.push(errorData.errorRow); errorData.errorInfo = ress[i].substr(7).substring(5); if (errorData.errorInfo == "拜访人不存在") { console.log("errorData.errorRow = " + errorData.errorRow); errorData.errorInfo = "拜访人 " + fileContentData[errorData.errorRow].split(",")[5] + "不存在"; } errorDatas.push(errorData); } else { if (ress[i].substr(7).substring(5) == "拜访人不存在") { errorDatas[index].errorInfo += "; " + "拜访人 " + fileContentData[errorDatas[index].errorRow].split(",")[5] + "不存在"; } else { errorDatas[index].errorInfo += "; " + ress[i].substr(7).substring(5); } } } } var fileContentData = component.get("v.fileContentData").split("\n"); let errorColumns = [ { label: "错误行", fieldName: "errorRow", type: "text", hideDefaultActions: true, initialWidth: 100 }, { label: "错误信息", fieldName: "errorInfo", type: "text", hideDefaultActions: true, initialWidth: 300, wrapText: true } ]; for (var i = 0; i < fileContentData[0].split(",").length - 1; i++) { let initialWidth = 180; if ( fileContentData[0].split(",")[i] == "产品1同类耗材科室月使用量" || fileContentData[0].split(",")[i] == "使用产品1(产品型号)" ) { initialWidth = 250; } errorColumns.push({ label: fileContentData[0].split(",")[i], fieldName: "field" + i, type: "text", hideDefaultActions: true, wrapText: true, initialWidth: initialWidth }); } for (var i = 0; i < errorDatas.length; i++) { let data = fileContentData[errorDatas[i].errorRow]; console.log("data = " + JSON.stringify(data)); for (var j = 0; j < data.split(",").length; j++) { let label = "field" + j; errorDatas[i][label] = data.split(",")[j]; } } component.set("v.errorColumns", errorColumns); component.set("v.errorData", errorDatas); component.set("v.showErrorInfo", true); console.log("==" + res1); component.set("v.errorMessage", res1 + "请修改后重新上传"); this.showErrorToast01(component); component.set("v.login", false); //component.set('v.errorMessage', res1 + "请修改后重新上传"); this.error(res1 + "请修改后重新上传"); //this.showErrorToast01(component); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } else { component.set("v.successMessage", "导入成功"); this.showSuccessToast01(component); component.set("v.showMain", true); component.set("v.login", false); //component.set('v.login', false); component.set("v.modal_import_spinner", false); this.doinit(component, event, helper); } } else if (state === "INCOMPLETE") { component.set("v.login", false); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } else if (state === "ERROR") { var errors = response.getError(); if (errors) { if (errors[0] && errors[0].message) { console.log("Error message: " + errors[0].message); component.set("v.login", false); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } } else { console.log("Unknown error"); component.set("v.login", false); //component.set('v.login', false); component.set("v.modal_import_spinner", false); } } }); @@ -3023,8 +3861,9 @@ component.set("v.doctor_list", res); component.set("v.login", false); } else { component.set("v.errorMessage", "newlyBuild failed."); this.showErrorToast(component); //component.set('v.errorMessage', 'newlyBuild failed.'); this.error("newlyBuild failed."); //this.showErrorToast(component); component.set("v.login", false); } }); @@ -3039,18 +3878,14 @@ if (sc.replace(/\D/gi, "")) { component.set("v.select_ConsumptionOfConsumables", sc); } else { component.set( "v.errorMessage", "产品1同类耗材科室月使用量必须输入数字!" ); this.showErrorToast(component); //component.set('v.errorMessage', '产品1同类耗材科室月使用量必须输入数字!'); this.error("产品1同类耗材科室月使用量必须输入数字!"); //this.showErrorToast(component); } } else { component.set( "v.errorMessage", "产品1同类耗材科室月使用量最多输入14位数字!" ); this.showErrorToast(component); //component.set('v.errorMessage', '产品1同类耗材科室月使用量最多输入14位数字!'); this.error("产品1同类耗材科室月使用量最多输入14位数字!"); //this.showErrorToast(component); } } }, @@ -3062,18 +3897,19 @@ if (sc.replace(/\D/gi, "")) { component.set("v.select_warlocksNumber", sc); } else { component.set("v.errorMessage", "产品用量必须输入数字!"); this.showErrorToast(component); //component.set('v.errorMessage', '产品用量必须输入数字!'); this.error("产品用量必须输入数字!"); //this.showErrorToast(component); } } else { component.set("v.errorMessage", "产品用量最多输入14位数字!"); this.showErrorToast(component); //component.set('v.errorMessage', '产品用量最多输入14位数字!'); this.error("产品用量最多输入14位数字!"); //this.showErrorToast(component); } } }, //工作会记录 selectPurposeType: function (component, event, helper) { debugger; var doctor_value = component.find("select_purpose_type").get("v.value"); // alert(doctor_value); if (doctor_value != "科室会") { @@ -3082,7 +3918,7 @@ component.find("new_con").set("v.disabled", true); } if (doctor_value != "") { this.set_doctor_list(component); this.set_doctor_list_edit(component); var action = component.get("c.selectPurposeTypes"); action.setParams({ doctor_value: doctor_value @@ -3103,7 +3939,6 @@ }, selectProductClassification: function (component, event, helper) { debugger; var select_ProductClassification = component .find("select_ProductClassification") .get("v.value"); @@ -3131,7 +3966,7 @@ var select_ProductCcategory = component .find("select_ProductCcategory") .get("v.value"); debugger; if (select_ProductCcategory != "") { var result = component.find("result"); var UserProType = component.get("v.UserProType"); @@ -3179,7 +4014,6 @@ $A.util.addClass(result, "disp_none"); } } else { debugger; component.find("select_productCategories").set("v.value", ""); var result = component.find("result"); $A.util.addClass(result, "disp_none"); @@ -3201,6 +4035,86 @@ } $A.enqueueAction(action); } }, //zhj MEBG新方案改造 2022-11-29 end //zhj 导出错误信息 2023-05-16 start exportErrorInfoHelper: function (component) { var errorData = component.get("v.errorData"); var errorColumns = component.get("v.errorColumns"); var datas = []; let errorColumnsArray = []; for (var i in errorColumns) { errorColumnsArray.push(errorColumns[i].label); } datas.push(errorColumnsArray); //datas.push(errorColumns); for (var i in errorData) { let data = []; data.push(errorData[i].errorRow); data.push(errorData[i].errorInfo); for (var j = 0; j < Object.keys(errorData[i]).length - 2; j++) { data.push(errorData[i]["field" + j]); } datas.push(data); } console.log("datas = " + JSON.stringify(datas)); var csv = this.convertToCSV(component, datas); console.log("csv = " + JSON.stringify(csv)); this.downloadCSV(component, csv); }, convertToCSV: function (component, data) { console.log("enter convertToCSV"); console.log("data = " + data); var csv = ""; for (var i = 0; i < data.length; i++) { var row = data[i]; console.log("row = " + JSON.stringify(row)); for (var j = 0; j < row.length; j++) { var val = ""; val = row[j] === null ? "" : row[j].toString(); console.log("val = " + val); if ( val.indexOf(",") !== -1 || val.indexOf('"') !== -1 || val.indexOf("\n") !== -1 ) { //val = '"' + val.replace(/"/g,'""') + '"'; } if (j > 0) { csv += ","; } csv += val; } csv += "\n"; } return csv; }, downloadCSV: function (component, csv) { var link = document.createElement("a"); var bom = "\uFEFF"; link.href = "data:text/csv;charset=utf-8," + encodeURIComponent(bom + csv); link.download = "data.csv"; document.body.appendChild(link); link.click(); document.body.removeChild(link); }, error: function (message) { // $('toastMessage.forceToastManager').css('white-space', 'pre-wrap'); var toastEvent = $A.get("e.force:showToast"); toastEvent.setParams({ title: "错误!", message: message, type: "error" //"duration" : "sticky" }); toastEvent.fire(); } //zhj 导出错误信息 2023-05-16 end }); force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
@@ -36,6 +36,7 @@ <aura:attribute name="doclist" type="List" /> <aura:attribute name="docmap" type="Map" /> <aura:attribute name="login" type="Boolean" default="false" /> <aura:attribute name="loginEdit" type="Boolean" default="false" /> <aura:attribute name="loadOpp" type="Boolean" default="false" /> <aura:attribute name="reportPageData" type="Map" /> <aura:attribute name="selectbody" type="String" /> @@ -121,22 +122,35 @@ <aura:attribute name="contactawsurl" type="Map" /> <aura:attribute name="allselectlistAgencyPerson" type="Map" /> <!-- PIPL update Yin Mingjie 21/02/2022 end --> <!-- start DTT-zhj 增加错误信息table 2023-05-16--> <aura:attribute name="errorData" type="Object" /> <aura:attribute name="errorColumns" type="List" /> <!-- show Error information --> <aura:attribute name="showErrorInfo" type="Boolean" default="false" /> <!-- end DTT-zhj 增加错误信息table 2023-05-16--> <!-- 批量添加周报 end--> <ltng:require scripts="{! $Resource.AWSService+'/AWSService.js' }" /> <ltng:require scripts="{! $Resource.jquery183minjs }" /> <!--ロード中...--> <aura:renderIf isTrue="{!v.login}"> <div class="slds-spinner_container height100vh"> <div class="slds-spinner--brand slds-spinner slds-spinner--medium" role="alert" > <span id="aa" class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> <aura:renderIf isTrue="{!!v.loginEdit}"> <!-- add by Deloitte-Link 2023-6-19 --> <div class="weeklyReportSpinner"> <div class="slds-spinner_container"> <div class="slds-spinner--brand slds-spinner slds-spinner--medium" role="alert" > <span id="aa" class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> </div> </div> </div> </div> </aura:renderIf> </aura:renderIf> <div aura:id="report" id="report" class="contents_wrapper"> @@ -172,7 +186,7 @@ /> </div> <div class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="tr slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-12 slds-large-size--1-of-12" > <ui:button aura:id="new_button" @@ -182,7 +196,7 @@ /> </div> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" > <ui:button aura:id="copy_button" @@ -213,34 +227,60 @@ > <thead> <tr class="slds-line-height--reset"> <th class="table_header slds-text-title--caps"></th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 250px; font-size: 13px" > <span class="slds-truncate" title="Name">周报编号</span> </th> <th class="table_header slds-text-title--caps" style="width: 100px; font-size: 13px" > <span class="slds-truncate" title="Name" >{!v.fieldsmap.Person_In_Charge2__c}</span > </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 250px; font-size: 13px" > <span class="slds-truncate" title="Name">医院</span> </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 100px; font-size: 13px" > <span class="slds-truncate" title="Name" >{!v.fieldsmap.Department_Cateogy__c}</span > </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 100px; font-size: 13px" > <!-- PIPL update Yin Mingjie 21/02/2022 start <span class="slds-truncate" title="Name">{!v.fieldsmap.doctor2__r}</span> PIPL update Yin Mingjie 21/02/2022 end--> <span class="slds-truncate" title="Name" <span class="slds-truncate" title="Name" style="width: 100px; font-size: 13px" >{!v.fieldsmap.Agency_Contact__c}</span > </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 100px; font-size: 13px" > <span class="slds-truncate" title="Name" >{!v.fieldsmap.visitor_title__c}</span > </th> <th class="table_header slds-text-title--caps"> <th class="table_header slds-text-title--caps" style="width: 100px; font-size: 13px" > <span class="slds-truncate" title="Name" >{!v.fieldsmap.Purpose_Type__c}</span > @@ -338,6 +378,13 @@ aria-labelledby="headerTarget" > <div class="slds-modal__container"> <aura:renderIf isTrue="{!v.loginEdit}"> <lightning:spinner alternativeText="Loading" size="medium" style="width: 100%; height: 80%; top: 50px" /> </aura:renderIf> <div class="slds-modal__header"> <h4 id="headerTarget" class="slds-float--left"></h4> <h2 id="headerTarget" class="slds-text-heading--medium"> @@ -382,6 +429,27 @@ onclick="{!c.cancel}" /> </div> <!-- start DTT-zhj 增加错误信息table 2023-05-16--> <aura:if isTrue="{!v.showErrorInfo}"> <div class="slds-p-around--large slds-align--absolute-center"> <lightning:button label="导出错误信息" variant="brand" onclick="{!c.exportErrorInfo}" /> </div> <div class="slds-p-around--large slds-align--absolute-center"> <div style="height: 300px; overflow-x: scroll"> <lightning:datatable keyField="id" data="{! v.errorData }" columns="{! v.errorColumns }" hideCheckboxColumn="true" /> </div> </div> </aura:if> <!-- start DTT-zhj 增加错误信息table 2023-05-16--> </aura:set> </aura:if> </div> @@ -504,8 +572,15 @@ aria-labelledby="headerTarget" > <div class="slds-modal__container"> <aura:renderIf isTrue="{!v.loginEdit}"> <lightning:spinner alternativeText="Loading" size="medium" style="width: 100%; height: 80%; top: 50px" /> </aura:renderIf> <div class="slds-modal__header"> <h4 id="headerTarget" class="slds-float--left">{!v.dialog_type}</h4> <h4 id="headerTarget" class="slds-float--left"></h4> <h2 id="headerTarget" class="slds-text-heading--medium"> 周报({!v.selected_date} {!v.selected_agency_person}) </h2> @@ -520,26 +595,31 @@ <div class="slds-box slds-theme--shade"> <div class="slds-grid slds-wrap slds-grid--pull-padded"> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" > 活动日 <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> <force:inputField <!-- <force:inputField value="{!v.data.Report_Date__c}" aura:id="input-report-date"/> --> <lightning:input type="date" value="{!v.data.Report_Date__c}" aura:id="input-report-date" variant="label-hidden" /> </div> <!-- 医院 --> <div aura:id="hospital_list" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5" class="slds-form-element slds-lookup slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-5 marginTop" data-select="single" > <ui:inputText <!-- <ui:inputText aura:id="hospital_input_text" label="医院" class="field" value="{!v.hospital}" updateOn="keyup"/> --> 医院 <lightning:input aura:id="hospital_input_text" label="医院" class="field" value="{!v.hospital}" variant="label-hidden" updateOn="keyup" /> <div class="slds-lookup__menu" id="lookup-66"> @@ -570,7 +650,7 @@ <!-- 科室分类 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" > {!v.fieldsmap.Department_Cateogy__c} <ui:inputSelect @@ -582,7 +662,7 @@ <!-- 先生 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" > {!v.fieldsmap.doctor2__c} <ui:inputSelect @@ -593,7 +673,7 @@ </div> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-12 marginTop" > <br /> <ui:button @@ -607,14 +687,14 @@ <!-- 职位 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-8 marginTop" > {!v.fieldsmap.visitor_title__c} <div>{!v.doctor_title}</div> </div> <!-- 活动区分 --> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" > {!v.fieldsmap.Purpose_Type__c} <ui:inputSelect @@ -626,7 +706,7 @@ <!-- 询价 --> <div aura:id="input-opportunity-opp" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--4-of-12 slds-large-size--4-of-12 marginTop" > {!v.fieldsmap.Opportunity__c} <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> @@ -652,11 +732,11 @@ </div> <div aura:id="input-opportunity-blank" class="lds-p-horizontal--small slds-size--1-of-1 slds-medium-size--8-of-12 slds-large-size--8-of-12" class="lds-p-horizontal--small slds-size--1-of-1 slds-medium-size--8-of-12 slds-large-size--8-of-12 marginTop" ></div> <div aura:id="input-opportunity-stage" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" > {!v.fieldsmap.StageName__c} <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> @@ -665,7 +745,7 @@ </div> <div aura:id="input-opportunity-amount1" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" > {!v.fieldsmap.Amount__c} <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> @@ -673,7 +753,7 @@ </div> <div aura:id="input-opportunity-amount2" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" > {!v.fieldsmap.OCMSale_Price__c} <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> @@ -684,7 +764,7 @@ </div> <div aura:id="input-opportunity-date" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--2-of-12 slds-large-size--2-of-12 marginTop" > {!v.fieldsmap.Close_Forecasted_Date__c} <!-- <ui:inputSelect aura:id="select_opportunity" class="slds-select"/> --> @@ -696,7 +776,7 @@ <!-- 製品分類 --> <div aura:id="product_category_select1" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" > {!v.fieldsmap.Product_Category1__c} <!-- <force:inputField value="{!v.data.Product_Category1__c}" aura:id="input-product-category1"/> --> @@ -708,7 +788,7 @@ </div> <div aura:id="product_category_select2" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" > {!v.fieldsmap.Product_Category2__c} <!-- <force:inputField value="{!v.data.Product_Category2__c}" aura:id="input-product-category2"/> --> @@ -720,7 +800,7 @@ </div> <div aura:id="product_category_select3" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" > {!v.fieldsmap.Product_Category3__c} <!-- <force:inputField value="{!v.data.Product_Category3__c}" aura:id="input-product-category3"/> --> @@ -733,7 +813,7 @@ <!--SWAG-CBX68C fy 【委托】DAMS系统周报模块内容需求增加 start--> <!-- 支援需求 change="{!c.SupportNeeds__c}"--> <div class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6" class="slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--1-of-5 slds-large-size--1-of-6 marginTop" > {!v.fieldsmap.SupportNeeds__c} <ui:inputSelect aura:id="SupportNeeds__c" class="slds-select" /> @@ -741,7 +821,7 @@ <!--SWAG-CBX68C fy 【委托】DAMS系统周报模块内容需求增加 end--> <div aura:id="result" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12" class="disp_none slds-p-horizontal--small slds-size--1-of-1 slds-medium-size--3-of-12 slds-large-size--3-of-12 marginTop" > {!v.fieldsmap.Result__c} <ui:inputSelect aura:id="select_result" class="slds-select" /> @@ -924,6 +1004,13 @@ class="disp_none slds-modal slds-fade-in-open" > <div class="slds-modal__container"> <aura:renderIf isTrue="{!v.loginEdit}"> <lightning:spinner alternativeText="Loading" size="medium" style="width: 100%; height: 80%; top: 50px" /> </aura:renderIf> <div class="slds-modal__header"> <h2 id="headertest" class="slds-text-heading--medium">新建.客户人员</h2> </div> force-app/main/default/aura/WeeklyReport/WeeklyReport.css
@@ -4,9 +4,10 @@ .THIS.height100vh { height: 100vh; } .THIS.contents_wrapper { padding-top: 50px; } /* .THIS.contents_wrapper { padding-top: 50px; width: 105%; } */ .THIS .mt5 { margin-top: 5px; } @@ -23,7 +24,7 @@ margin: 0.5em 0; } .THIS.report_list_area { margin: 40px 0 20px 100px; margin: 40px 0 20px 0px; height: 60vh; overflow-y: scroll; } @@ -140,3 +141,30 @@ .THIS tr:hover .encrypt { display: none; } /* add by Deloitte-Link 2023-6-19 start*/ .THIS .weeklyReportSpinner { top: 100px; } .THIS .weeklyReportSpinnerEdit { top: 50px; } .THIS .slds-spinner_container { position: absolute; top: 100px; } .THIS .slds-spinner_containerEdit { position: absolute; top: 50px; } .THIS .marginTop { margin-top: 10px; } .THIS .custom-input .uiInput { height: 2rem; } /* add by Deloitte-Link 2023-6-19 end*/ force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
@@ -1,11 +1,12 @@ ({ doInit: function (component, event, helper) { console.log("zhj 新方案"); console.log("zhj 新方案weeklyReport"); if (window.location.href.endsWith("weekly-report")) { helper.doinit(component, event, helper); } else { helper.hideCmp(component, event, helper); } component.set("v.showErrorInfo", false); }, createAopp: function (component, event, helper) { @@ -15,10 +16,12 @@ recordTypeId: "012100000006KW7" }); addRecordEvent.fire(); component.set("v.showErrorInfo", false); }, new_report: function (component, event, helper) { component.find("save_button").set("v.label", "保存并新建"); component.set("v.data.Report_Date__c", ""); helper.new_report(component, event, helper); }, @@ -141,7 +144,7 @@ var token = component.get("v.AWStoken"); var newUrl = component.get("v.AWSinsert") + "V2"; component.set("v.login", true); component.set("v.loginEdit", true); helper.insert_agencycontact( component, token, @@ -282,10 +285,12 @@ // var fileInput = component.find("file").getElement(); // var file = fileInput.files[0]; helper.readFile(component, helper, files[0]); component.set("v.showErrorInfo", false); }, processFileContent: function (component, event, helper) { helper.saveRecords(component, event, helper); component.set("v.showErrorInfo", false); }, cancel: function (component, event, helper) { @@ -342,5 +347,8 @@ close_export: function (component, event, helper) { component.set("v.showMain", true); helper.close_export(component); }, exportErrorInfo: function (component, event, helper) { helper.exportErrorInfoHelper(component); } }); force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
@@ -96,11 +96,11 @@ if (result.object != null) { this.to_contact_list(result, contactData, component); } else { component.set("v.login", false); component.set("v.loginEdit", false); } } else { this.error("AWS search status1 : " + result.status); component.set("v.login", false); component.set("v.loginEdit", false); } }, component @@ -127,7 +127,7 @@ } component.find("select_agency_person").set("v.options", res); component.set("v.allselectlistAgencyPerson", res); component.set("v.login", false); component.set("v.loginEdit", false); }, search_contact_url: function (component, sobject, callback) { @@ -142,7 +142,7 @@ if (callback) callback(result); } else { this.error("AWS url/token error."); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -339,6 +339,152 @@ }); $A.enqueueAction(action); }, get_reports_edit: function (component, event, helper, date_str, person_str) { if (!date_str) { return false; } date_str = this.get_date_string(date_str); var action = component.get("c.getReports"); action.setParams({ date_str: date_str, person_str: person_str }); component.set("v.loginEdit", true); action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { var res = response.getReturnValue(); component.set("v.reports", res.reports); // 20220222 PI改造 by Bright--start let dataIds = []; let dataIds1 = []; let mm = {}; let b = false; let b1 = false; for (const rep of res.reports) { if (rep.doctor2__r && rep.doctor2__r.AWS_Data_Id__c) { dataIds.push(rep.doctor2__r.AWS_Data_Id__c); } if ( rep.Person_In_Charge2__r && rep.Person_In_Charge2__r.AWS_Data_Id__c ) { dataIds1.push(rep.Person_In_Charge2__r.AWS_Data_Id__c); } } let Foo = null; Foo = function () { if (b && b1) { for (const rep of res.reports) { if ( rep.doctor2__r && rep.doctor2__r.AWS_Data_Id__c && mm.hasOwnProperty(rep.doctor2__r.AWS_Data_Id__c) ) { rep.doctor2__r.awsdata = mm[rep.doctor2__r.AWS_Data_Id__c]; } if ( rep.Person_In_Charge2__r && rep.Person_In_Charge2__r.AWS_Data_Id__c && mm.hasOwnProperty(rep.Person_In_Charge2__r.AWS_Data_Id__c) ) { rep.Person_In_Charge2__r.awsdata = mm[rep.Person_In_Charge2__r.AWS_Data_Id__c]; } } $A.getCallback(() => component.set("v.reports", res.reports))(); } else { console.log("b=" + b + ",b1=" + b1 + ",continue"); setTimeout(Foo, 100); } }; if (dataIds.length > 0) { let awsurl = component.get("v.awsurl"); helper.search_core( awsurl.token, awsurl.searchUrl, JSON.stringify({ dataIds: dataIds }), (result) => { if (result.status == "0") { for (const m of result.object) { mm[m.dataId] = m; } b = true; Foo(); } else { //this.error('AWS search status2 : ' + result.status); this.success("请重新刷新页面进行解密"); } }, component ); } else { b = true; } if (dataIds1.length > 0) { let contactawsurl = component.get("v.contactawsurl"); helper.search_core( contactawsurl.token, contactawsurl.searchUrl, JSON.stringify({ dataIds: dataIds1 }), (result) => { if (result.status == "0") { for (const m of result.object) { mm[m.dataId] = m; } b1 = true; Foo(); } else { this.error("AWS search status3 : " + result.status); } }, component ); } else { b1 = true; } // 20220222 PI改造 by Bright--end component.set("v.report_count", res.reports.length); // 更新保存後のselect_data用 var report_id = component.get("v.update_select_report_data_id"); if (report_id != "") { for (i = 0; i < res.reports.length; i++) { if (res.reports[i]["Id"] == report_id) { component.set("v.select_report_data", res.reports[i]); break; } } component.set("v.update_select_report_data_id", ""); } if (res.reports.length > 0) { component.set("v.list_message", ""); } else { component.set("v.list_message", "no_data"); } component.set("v.loginEdit", false); } else { this.error("get_reports failed."); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); }, select_date_change: function (component, event, helper) { this.get_reports( @@ -404,7 +550,7 @@ // OPEN $A.util.removeClass(modal_window, "disp_none"); $A.util.removeClass(modal_bg, "disp_none"); component.set("v.loginEdit", true); if ( component.get("v.mode") == "edit" || component.get("v.mode") == "copy" @@ -553,12 +699,16 @@ } if (reportDate != null) { console.log("reportDate = " + reportDate); component.set("v.data.Report_Date__c", reportDate); } component.set("v.edit_copy_select_report_id", ""); } } setTimeout(function () { component.set("v.loginEdit", false); }, 1000); } else { // CLOSE @@ -784,6 +934,7 @@ }, edit_button: function (component, event, helper) { component.set("v.login", true); this.allclear(component); component.set("v.loadOpp", true); var index = event.getSource().get("v.value"); @@ -986,7 +1137,7 @@ } // 保存処理 component.set("v.login", true); component.set("v.loginEdit", true); if (component.get("v.mode") == "edit") { var Agency_Report__c = component.get("v.select_report_data").Id; var action = component.get("c.editAgencyReport"); @@ -1040,7 +1191,7 @@ .set("v.options", select_agency_list); component.set("v.update_select_report_data_id", report_id); this.get_reports( this.get_reports_edit( component, event, helper, @@ -1049,7 +1200,7 @@ ); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } else { // var error = response.getError(); // alert(JSON.stringify(error)); @@ -1062,7 +1213,7 @@ // } this.error("save_report failed."); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1102,7 +1253,7 @@ var report_id = response.getReturnValue(); component.set("v.create_agency_report_id", report_id); this.get_reports( this.get_reports_edit( component, event, helper, @@ -1146,20 +1297,20 @@ } else { this.error("get_reports_now failed."); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action2); this.allclear(component); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } else { var error = response.getError(); // alert(JSON.stringify(error)); this.error("saveAgencyReport failed."); component.find("save_button").set("v.disabled", false); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1201,6 +1352,7 @@ component.find("select_Product1").set("v.value", ""); component.find("select_Product2").set("v.value", ""); component.find("select_Product3").set("v.value", ""); console.log("reportDate = 空"); component.set("v.data.Report_Date__c", ""); component.set("v.oppdata.Close_Forecasted_Date__c", ""); component.set("v.oppdata.Amount__c", ""); @@ -1524,7 +1676,7 @@ component.set("v.AWStransactionURL", awsmap.transactionURL); } else { this.error("AWS url/token error."); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1570,7 +1722,7 @@ })(); } else { console.log("AWS status error:" + result); component.set("v.login", false); component.set("v.loginEdit", false); if (result.status == "129") { component .find("OppMessage") @@ -1584,7 +1736,7 @@ }) .catch((error) => { console.log("AWS insert error:" + error); component.set("v.login", false); component.set("v.loginEdit", false); component.find("OppMessage").setError("AWS insert error."); }); }, @@ -1619,14 +1771,14 @@ this.to_confirm(component, token, confirmUrl, JSON.stringify(data)); } else if (acMap.errormsg != "") { this.error(acMap.errormsg); component.set("v.login", false); component.set("v.loginEdit", false); } else { this.error("agency contact insert id error."); component.set("v.login", false); component.set("v.loginEdit", false); } } else { this.error("agency contact insert error."); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1657,12 +1809,12 @@ this.set_doctor_list(component); } else { this.error("AWS confirm error."); component.set("v.login", false); component.set("v.loginEdit", false); } }) .catch((error) => { this.error("AWS confirm error."); component.set("v.login", false); component.set("v.loginEdit", false); }); }, // PIPL update Yin Mingjie 21/02/2022 end @@ -1670,7 +1822,7 @@ set_doctor_list: function (component) { var hospital_id = component.get("v.hospitalLinkId"); if (hospital_id) { component.set("v.login", true); component.set("v.loginEdit", true); var action = component.get("c.getDoctorList"); action.setParams({ hospital_id: hospital_id @@ -1710,7 +1862,7 @@ // PIPL update Yin Mingjie 21/02/2022 end } else { this.error("set_doctor_list failed."); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -1730,7 +1882,7 @@ dataArr.push(key); } if (dataArr.length == 0) { component.set("v.login", false); component.set("v.loginEdit", false); this.warning("没有找到符合条件的客户人员"); return; } @@ -1756,7 +1908,7 @@ this.to_doctor_list(result, retMap, component); } else { this.error("AWS search status4 : " + result.status); component.set("v.login", false); component.set("v.loginEdit", false); } }, component @@ -1793,13 +1945,13 @@ return data.json(); }) .then((result) => { component.set("v.login", false); component.set("v.loginEdit", false); if (callback) callback(result); }) .catch((error) => { console.log("error = " + JSON.stringify(error)); this.error("AWS search error."); component.set("v.login", false); component.set("v.loginEdit", false); }); }, @@ -1844,7 +1996,7 @@ component.set("v.default_select_doctor_id", ""); component.set("v.doctor_list", res); component.set("v.login", false); component.set("v.loginEdit", false); }, // PIPL update Yin Mingjie 21/02/2022 end @@ -1931,7 +2083,7 @@ agency_hospital_link_id: component.get("v.hospitalLinkId") }); component.set("v.login", true); component.set("v.loginEdit", true); action.setCallback(this, function (response) { var state = response.getState(); if (state == "SUCCESS") { @@ -1968,7 +2120,7 @@ // } else { // component.find('input-opportunity').get("v.body")[0].set('v.selectedLabel', ''); // } component.set("v.login", false); component.set("v.loginEdit", false); return false; } //SWAG-CKH5M8 【委托】周报关联询价,可选择询价范围调整 fy start @@ -2029,10 +2181,10 @@ ); } component.set("v.login", false); component.set("v.loginEdit", false); } else { this.error("selectOpportunityByIdAndHospitalLinkId failed."); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -2325,12 +2477,14 @@ }, saveRecords: function (component, event, helper) { component.set("v.login", true); debugger; component.set("v.loginEdit", true); //fy 导入 20220424 start var action1 = component.get("c.processDataAWSId"); action1.setParams({ fileData: component.get("v.fileContentData") }); debugger; action1.setCallback(this, function (response) { console.log("response = " + JSON.stringify(response)); var state = response.getState(); @@ -2351,10 +2505,11 @@ dataMap.set(item.AWS_Data_Id__c, item.AWS_Data_Id__c); //zhj 新方案改造 2022-12-21 } }); debugger; let obj = Object.create(null); obj["dataIds"] = dataArr; var payload = JSON.stringify(obj); console.log("payload zhj = " + JSON.stringify(payload)); this.search_contact_url( component, "Agency_Contact__c", @@ -2375,7 +2530,7 @@ // component.set('v.login',true); // this.ImportMethod(component,resultjson); // } component.set("v.login", true); component.set("v.loginEdit", true); this.saveRecordsEditFile( component, dataMap, @@ -2383,12 +2538,12 @@ helper ); } else { this.error("AWS search status5 "); component.set("v.login", false); this.error("AWS 查询数据为空 "); component.set("v.loginEdit", false); } } else { this.error("AWS search status6 : " + result.status); component.set("v.login", false); component.set("v.loginEdit", false); } }, component @@ -2463,7 +2618,11 @@ // }); // $A.enqueueAction(action); }, isNumber: function (str) { return /^\d+$/.test(str); }, ImportMethod: function (component, fileStr) { debugger; var actionss = component.get("c.processData"); var selectDate = component.find("select_date").get("v.value"); var fieldsList = ["Name", "Phone", "AccountNumber"]; //Please write your code dynamic @@ -2486,32 +2645,112 @@ if (res != "success") { var ress = res.split("="); console.log(ress); let errorDatas = []; let errorDataRow = []; debugger; var fileContentData = component.get("v.fileContentData").split("\n"); for (var i = 0; i < ress.length; i++) { res1 += ress[i].substr(7) + "\n"; if (ress[i] != "") { let errorData = {}; if (!this.isNumber(ress[i].substr(7).substring(1, 2))) { continue; } let index = errorDataRow.indexOf( ress[i].substr(7).substring(1, 2) ); if (index == -1) { errorData.errorRow = ress[i].substr(7).substring(1, 2); errorDataRow.push(errorData.errorRow); errorData.errorInfo = ress[i] .substr(7) .substring(5) .replace("=", ""); if (errorData.errorInfo == "拜访人不存在") { console.log("errorData.errorRow = " + errorData.errorRow); errorData.errorInfo = "拜访人 " + fileContentData[errorData.errorRow].split(",")[4] + "不存在"; } errorDatas.push(errorData); } else { if (ress[i].substr(7).substring(5) == "拜访人不存在") { errorDatas[index].errorInfo += "; " + "拜访人 " + fileContentData[errorDatas[index].errorRow].split(",")[4] + "不存在"; } else { errorDatas[index].errorInfo += "; " + ress[i].substr(7).substring(5); } } } } // $('.forceToastManager').css('white-space', 'pre-wrap'); let errorColumns = [ { label: "错误行", fieldName: "errorRow", type: "text", hideDefaultActions: true, initialWidth: 100 }, { label: "错误信息", fieldName: "errorInfo", type: "text", hideDefaultActions: true, initialWidth: 300, wrapText: true } ]; for (var i = 0; i < fileContentData[0].split(",").length; i++) { errorColumns.push({ label: fileContentData[0].split(",")[i], fieldName: "field" + i, type: "text", hideDefaultActions: true, wrapText: true, initialWidth: 120 }); } for (var i = 0; i < errorDatas.length; i++) { let data = fileContentData[errorDatas[i].errorRow]; console.log("data = " + JSON.stringify(data)); if (data) { for (var j = 0; j < data.split(",").length; j++) { let label = "field" + j; errorDatas[i][label] = data.split(",")[j]; } } } component.set("v.errorColumns", errorColumns); component.set("v.errorData", errorDatas); component.set("v.showErrorInfo", true); console.log("==" + res1); this.error(res1 + "请修改后重新上传"); component.set("v.login", false); component.set("v.loginEdit", false); } else { component.set("v.showMain", true); this.success("导入成功"); // alert('saved successfully'); component.set("v.login", false); component.set("v.loginEdit", false); } } else if (state === "INCOMPLETE") { // do something component.set("v.login", false); component.set("v.loginEdit", false); } else if (state === "ERROR") { var errors = response.getError(); if (errors) { if (errors[0] && errors[0].message) { console.log("Error message: " + errors[0].message); component.set("v.login", false); component.set("v.loginEdit", false); } } else { console.log("Unknown error"); component.set("v.login", false); component.set("v.loginEdit", false); } } }); @@ -2552,9 +2791,99 @@ } if (error != "") { console.log("zhj error = " + error); let errorArray = error.split("error1"); let errorDatas = []; let errorDataRow = []; debugger; var fileContentData = component.get("v.fileContentData").split("\n"); console.log("errorArray = " + JSON.stringify(errorArray)); for (var i in errorArray) { if (errorArray[i] != "") { let errorData = {}; if (!this.isNumber(errorArray[i].trim().substring(1, 2))) { continue; } let index = errorDataRow.indexOf( errorArray[i].trim().substring(1, 2) ); if (index == -1) { errorData.errorRow = errorArray[i].trim().substring(1, 2); errorDataRow.push(errorData.errorRow); errorData.errorInfo = errorArray[i] .trim() .substring(5, errorArray[i].trim().length) .replace("=", ""); if (errorData.errorInfo == "拜访人AWS不存在") { errorData.errorInfo = "拜访人 " + fileContentData[errorData.errorRow].split(",")[4] + "不存在"; } errorDatas.push(errorData); } else { if (errorArray[i].trim().substring(5) == "拜访人AWS不存在") { errorData[index].errorInfo = "; " + "拜访人 " + fileContentData[errorDatas[index].errorRow].split(",")[4] + "不存在"; } else { errorDatas[index].errorInfo += "; " + errorArray[i].trim().substring(5, errorArray[i].trim().length); } } } } var fileContentData = component.get("v.fileContentData").split("\n"); let errorColumns = [ { label: "错误行", fieldName: "errorRow", type: "text", hideDefaultActions: true, initialWidth: 100 }, { label: "错误信息", fieldName: "errorInfo", type: "text", hideDefaultActions: true, initialWidth: 300, wrapText: true } ]; for (var i = 0; i < fileContentData[0].split(",").length; i++) { errorColumns.push({ label: fileContentData[0].split(",")[i], fieldName: "field" + i, type: "text", hideDefaultActions: true, wrapText: true, initialWidth: 120 }); } for (var i = 0; i < errorDatas.length; i++) { let data = fileContentData[errorDatas[i].errorRow]; console.log("data = " + JSON.stringify(data)); for (var j = 0; j < data.split(",").length; j++) { let label = "field" + j; errorDatas[i][label] = data.split(",")[j]; } } console.log("errorDatas =" + JSON.stringify(errorDatas)); component.set("v.errorColumns", errorColumns); component.set("v.errorData", errorDatas); component.set("v.showErrorInfo", true); console.log("error = " + error); component.set("v.errorMessage", error); this.error(error); console.log("error=" + error); component.set("v.login", false); component.set("v.loginEdit", false); return; } @@ -2733,7 +3062,7 @@ }, select_repores_date: function (component, event, helper) { component.set("v.login", true); component.set("v.loginEdit", true); var reportsdate1 = component.find("input-report-date1").get("v.value"); var reportsdate2 = component.find("input-report-date2").get("v.value"); console.log( @@ -2751,7 +3080,7 @@ if (state === "SUCCESS") { var res = response.getReturnValue(); console.log("输入的开始日期3" + res); component.set("v.login", false); component.set("v.loginEdit", false); // PI 改造 By Bright 20220328 if (true) { @@ -2798,7 +3127,7 @@ } helper.showExportDate(component, res); component.set("v.login", false); component.set("v.loginEdit", false); }, awsurl.token ); @@ -2810,7 +3139,7 @@ component.set("v.reports_date", res); } else { alert("导出失败,请检查活动日"); component.set("v.login", false); component.set("v.loginEdit", false); } }); $A.enqueueAction(action); @@ -2861,9 +3190,78 @@ } $A.enqueueAction(action); } }, //zhj MEBG新方案改造 2022-11-29 end //zhj 导出错误信息 2023-05-16 start exportErrorInfoHelper: function (component) { var errorData = component.get("v.errorData"); var errorColumns = component.get("v.errorColumns"); var datas = []; let errorColumnsArray = []; for (var i in errorColumns) { errorColumnsArray.push(errorColumns[i].label); } datas.push(errorColumnsArray); //datas.push(errorColumns); for (var i in errorData) { let data = []; data.push(errorData[i].errorRow); data.push(errorData[i].errorInfo); for (var j = 0; j < Object.keys(errorData[i]).length - 2; j++) { data.push(errorData[i]["field" + j]); } datas.push(data); } console.log("datas = " + JSON.stringify(datas)); var csv = this.convertToCSV(component, datas); console.log("csv = " + JSON.stringify(csv)); this.downloadCSV(component, csv); }, convertToCSV: function (component, data) { console.log("enter convertToCSV"); console.log("data = " + data); var csv = ""; for (var i = 0; i < data.length; i++) { var row = data[i]; console.log("row = " + JSON.stringify(row)); for (var j = 0; j < row.length; j++) { var val = ""; val = row[j] === null ? "" : row[j].toString(); console.log("val = " + val); if ( val.indexOf(",") !== -1 || val.indexOf('"') !== -1 || val.indexOf("\n") !== -1 ) { //val = '"' + val.replace(/"/g,'""') + '"'; } if (j > 0) { csv += ","; } csv += val; } csv += "\n"; } return csv; }, downloadCSV: function (component, csv) { var link = document.createElement("a"); // 设置字符集和文件头 var bom = "\uFEFF"; link.href = "data:text/csv;charset=utf-8," + encodeURIComponent(bom + csv); link.download = "data.csv"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } //zhj 导出错误信息 2023-05-16 end // searchAgencyContact : function(res) { // var agencyContacts = []; // for (let idx = 0; idx < res.length; idx++) { force-app/main/default/classes/ArriveGoodsController.cls
@@ -88,8 +88,9 @@ //public String[] proidList =new String[]{}; public Decimal orderCountAll = 0; public Decimal orderCountNotarrive = 0; private id return_Order_id = null; private id inventory_Order_id = null; //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 public id return_Order_id = null; public id inventory_Order_id = null; public boolean ReturnFLGbln { get; set; } public boolean saveFLGbln { get; set; } public String ArrType { get; set; } @@ -102,6 +103,14 @@ public String product_Type = null; public Boolean EngFlag = false; public Boolean ETFlag = false; //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 public Boolean isLwc = false; public String returnError; public List<String> warningList; public List<String> errorList; public String urlType; public ArriveGoodsController() { baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); ESetId = ApexPages.currentPage().getParameters().get('esetId'); @@ -121,6 +130,29 @@ consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); //add by rentx 20210602 CHAN-C3K4ZQ end // OrderAllMap = new Map<String, String>(); } //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 public ArriveGoodsController(String eSetId, String arrType) { this.ESetId = eSetId; this.ArrType = arrType; ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); ConsumableorderdetailsRecordserror = new List<ConsumableorderdetailsInfo>(); ConsumableorderdetailsRecordsdummy = new List<ConsumableorderdetailsInfo>(); consumableInventory = new List<ConsumableorderdetailsInfo>(); consumableorderdetailsRecordsUse = new List<ConsumableorderdetailsInfo>(); consumableInventoryUse = new List<ConsumableorderdetailsInfo>(); consumableorderdetails2Cancle = new List<Consumable_order_details2__c>(); orderdetails2trMap = new Map<String, Consumable_order_details2__c>(); detailsSummary = new List<ConsumableorderdetailsInfo>(); saveFLGbln = false; consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); noboxBarcodeList = new Set<String>(); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 warningList = new List<String>(); errorList = new List<String>(); returnError = null; urlType = null; } //add by rentx 20210602 CHAN-C3K4ZQ start 出错的原因是页面最多展示1000条数据,但是需要展示的数据超过了1000条,现在把展示上线改为1000 * 1000 @@ -360,6 +392,18 @@ //========20160311======ADD_End================================== //获取明细 public void SearchPro() { //从下边移上来 by Link 2023-5-23 if (barcode == null || barcode.trim() == '') { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = '请输入BarCode号'; } else { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, '请输入BarCode号。') ); } return; } notInlist = new List<String>(); otherAgencyMap = new Map<String, String>(); barMcodeMap = new Map<String, String>(); @@ -367,6 +411,10 @@ consumableInventoryUse = new List<ConsumableorderdetailsInfo>(); consumableorderdetails2Cancle = new List<Consumable_order_details2__c>(); orderdetails2trMap = new Map<String, Consumable_order_details2__c>(); //update by Link 20230428 if (isLwc) { noboxBarcodeList = new Set<String>(); } //add by rentx 2021-01-27 start HosErrorList = new List<String>(); HosErrorMap = new Map<String, String>(); @@ -437,12 +485,16 @@ List<Consumable_order_details2__c> Ins = new List<Consumable_order_details2__c>(); List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>(); List<Consumable_order_details2__c> reSet1 = new List<Consumable_order_details2__c>(); if (barcode == null || barcode.trim() == '') { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, '请输入BarCode号。') ); return; } //移到最上边 by Link 2023-5-23 // if(barcode == null || barcode.trim() ==''){ // //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 // if(isLwc){ // returnError = '请输入BarCode号'; // }else { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO,'请输入BarCode号。')); // } // return; // } //对比全部库存中是否存在管理编码一样,barcode号不一样的产品 reSet1 = [ SELECT Id, Name, TracingCode__c, Bar_Code__c, Report_Product_Expiration__c @@ -468,13 +520,21 @@ } else { for (String str : barMcodeMap.keySet()) { if (barMcodeMap.get(str) == reSet1[i].TracingCode__c) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( str + ' 的管理编码已经存在于系统的库存中,请确认输入信息是否有误。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, str + ' 的管理编码已经存在于系统的库存中,请确认输入信息是否有误。' ) ); } ErrorIdMap.put(str, str); ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); } @@ -526,6 +586,8 @@ } //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '管理编码为空的产品 ' + ErrorIdMap)); //整体到货 System.debug('EsetId===>' + EsetId); System.debug('ArrType===>' + ArrType); if (EsetId == null || EsetId == '') { if (ArrType != 'ReG') { //到货但产品类型与用户的类型不符 @@ -589,6 +651,65 @@ } } } System.debug('reSet1===>' + reSet1); //add by Wang Xueqin //到货但产品类型与用户的类型不符 reSet1 = [ SELECT Id, Name, Intra_Trade_List_RMB__c, Asset_Model_No__c, Consumable_Product__c, Consumable_Product__r.Name, Consumable_Product__r.Name__c, Consumable_Product__r.Asset_Model_No__c, Sterilization_limit__c, Deliver_date__c, Bar_Code__c, Arrive_date__c, Send_Date__c, Consumable_order_minor__r.Name, Consumable_order_minor__c, Dealer_Arrive__c, Guarantee_period_for_products__c, CFDA_Status__c, ProductPacking_list_manual__c, Report_Product_Approbation__c, Report_Product_Expiration__c, Box_Piece__c, Rrturn_count__c, Product_Type__c, ContractNo_text__c, Consumable_order_minor__r.ContractNo__c FROM Consumable_order_details2__c WHERE Bar_Code__c IN :BarCodeListP AND (NOT Product_Type__c LIKE :userPro_Typestr) ]; if (reSet1.size() > 0) { for (Integer i = 0; i < reSet1.size(); i++) { if (ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)) { // 跳过已经处理的消耗品明细 continue; } else { String str = '产品类型[' + reSet1[i].Product_Type__c + ']与用户的类型[' + userPro_Type + ']不符'; ConsumableorderdetailsRecordserror.add( new ConsumableorderdetailsInfo(reSet1[i], str) ); ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); } } } System.debug('reSet1===>1' + reSet1); //end //销售产品 reSet1 = [ SELECT @@ -1284,14 +1405,23 @@ reSet1[i].Lose_Flag__c == true && reSet1[i].ToDueDateDays__c >= 0 ) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.WARNING, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add( '产品' + reSet1[i].Consumable_Product__r.Name + '存在丢失记录' ) ); //如果丢失产品就给提示。 ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.WARNING, '产品' + reSet1[i].Consumable_Product__r.Name + '存在丢失记录' ) ); //如果丢失产品就给提示。 } } if ( reSet1[i].Lose_Flag__c == true && @@ -1531,15 +1661,22 @@ reSet[i].Bar_Code__c != str && reSet[i].TracingCode__c == barMcodeMap.get(str) ) { // 20220815 ljh SWAG-CH65B7 start // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'此管理编码与实际发货BarCode不一致,请核对管理编码('+ str +')的入库及库存数据。')); ApexPages.addmessage( new ApexPages.message( ApexPages.severity.WARNING, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add( '条形码为(' + str + ')的入库数据与发货数据不一致' ) ); // 20220815 ljh SWAG-CH65B7 end ); } else { // 20220815 ljh SWAG-CH65B7 start // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'此管理编码与实际发货BarCode不一致,请核对管理编码('+ str +')的入库及库存数据。')); ApexPages.addmessage( new ApexPages.message( ApexPages.severity.WARNING, '条形码为(' + str + ')的入库数据与发货数据不一致' ) ); // 20220815 ljh SWAG-CH65B7 end } } if (barMcodeMap.get(str) == reSet[i].TracingCode__c) { reSet[i].Bar_Code__c = str; @@ -1586,16 +1723,27 @@ } else { for (String str : barMcodeMap.keySet()) { if (barMcodeMap.get(str) == reSet1[i].TracingCode__c) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( 'barcode' + str + '与出库单' + reSet1[i].Sale_orderName__c + ' 中的管理编码一致,但Barcode不同,请确认具体数据。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'barcode' + str + '与出库单' + reSet1[i].Sale_orderName__c + ' 中的管理编码一致,但Barcode不同,请确认具体数据。' ) ); } ErrorIdMap.put(str, str); ErrorIdMap.put(reSet1[i].Bar_Code__c, reSet1[i].Bar_Code__c); } @@ -1635,23 +1783,36 @@ if (ArrType != 'ReG') { inventoryEntryNoESetId(notInlist); if (notInStorelist.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号' + notInStorelist + '不存在。' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = 'BarCode号' + notInStorelist + '不存在'; } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号' + notInStorelist + '不存在。' ) ); } return; } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = 'BarCode号' + notInlist + '不存在,无对应的出库单,请先操作产品入库。' ) ); notInlist + '不存在,无对应的出库单,请先操作产品入库'; } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号' + notInlist + '不存在,无对应的出库单,请先操作产品入库。' ) ); } return; } } @@ -1659,12 +1820,17 @@ //add by rentx 2021-01-27 start if (HosErrorList.size() > 0) { for (String str : HosErrorList) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号:' + str + HosErrorMap.get(str) + '' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('BarCode号:' + str + HosErrorMap.get(str) + ''); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号:' + str + HosErrorMap.get(str) + '' ) ); } } } //add by rentx 2021-01-27 end @@ -2161,12 +2327,17 @@ if (notInlist.size() > 0) { inventoryEntry(notInlist); if (notInStorelist.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号' + notInStorelist + '不存在。' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = 'BarCode号' + notInStorelist + '不存在'; } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号' + notInStorelist + '不存在。' ) ); } return; } } @@ -2175,12 +2346,17 @@ //add by rentx 2021-01-27 start 当订单为医院特价类型的订单时,如果找不到barcode,不解析,并且默认该barcode对应的明细2为非医院特价产品,直接报错 if (HosErrorList.size() > 0) { for (String str : HosErrorList) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号:' + str + '是非医院特价产品' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('BarCode号:' + str + '是非医院特价产品'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号:' + str + '是非医院特价产品' ) ); } } } //add by rentx 2021-01-27 end @@ -2216,14 +2392,23 @@ //生产日期 List<String> janCode = new List<String>(); if (barCodeList[i].length() < 16) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); } continue; } else { //if(barCodeList[i].substring(0,2) !='01'){ @@ -2234,12 +2419,19 @@ try { Decimal test = Decimal.valueOf(janCodeMark); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的janCode错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的janCode错误!' ) ); } continue; } } @@ -2251,12 +2443,19 @@ barCodeList[i].length() - 5 ) != '250' ) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); } continue; } if (barCodeList[i].substring(16, 18) == '11') { @@ -2269,16 +2468,27 @@ '-01'; productionDate = Date.valueOf(productDateStr); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 32) { @@ -2307,16 +2517,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 42) { @@ -2361,16 +2582,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 34) { @@ -2424,30 +2656,42 @@ Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find() ) { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 String str = '管理编码有误,请检查条形码数据。'; ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。' ) ); } continue; } } // String str = '管理编码不正确,请与管理员确认是否错误。'; // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码中有数字,请与管理员确认是否错误!')); // continue; // gzw DB202305352696 入库管理编码验证程序调整 end } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的tracingCode错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的tracingCode错误!' ) ); } continue; } } @@ -2544,25 +2788,41 @@ barCodeList[i].length() - 5 ) != '250' ) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); } continue; } List<String> otCodeList = new List<String>(); Map<String, String> otCodeMap = new Map<String, String>(); if (barCodeList[i].length() < 7) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); } continue; } else if (barCodeList[i].length() == 11) { String otCode4 = barCodeList[i].substring(3, 7); @@ -2604,21 +2864,31 @@ barOtcodeMap.put(barCodeList[i], otCodeMap); barCode241List.add(barCodeList[i]); } else { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('产品BarCode(' + barCodeList[i] + ')不符合要求!'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')不符合要求!' ) ); } continue; } } else { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('产品BarCode(' + barCodeList[i] + ')不符合要求!'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')不符合要求!' ) ); continue; } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')不符合要求!' ) ); continue; } } @@ -2681,9 +2951,9 @@ } } if (errorMap.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( 'BarCode号[' + errorMap.values() + ']产品类型[' + @@ -2691,8 +2961,21 @@ ']与用户类型[' + userPro_Type + ']不符' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号[' + errorMap.values() + ']产品类型[' + product_Type + ']与用户类型[' + userPro_Type + ']不符' ) ); } } } } @@ -2728,9 +3011,9 @@ } } if (errorMap.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( 'BarCode号[' + errorMap.values() + ']产品类型[' + @@ -2738,8 +3021,21 @@ ']与用户[' + userPro_Type + ']类型不符' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号[' + errorMap.values() + ']产品类型[' + product_Type + ']与用户[' + userPro_Type + ']类型不符' ) ); } } product2InStore = [ SELECT @@ -2780,16 +3076,27 @@ '-01'; productionDate = Date.valueOf(productDateStr); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 3 + 16) { @@ -2843,16 +3150,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 3 + 25) { @@ -2936,16 +3254,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 20) { @@ -3003,15 +3332,24 @@ Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find() ) { String str = '管理编码有误,请检查条形码数据。'; ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, String str = '管理编码不正确,请与管理员确认是否错误。'; //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。' ) ); } continue; } } @@ -3021,12 +3359,19 @@ // gzw DB202305352696 入库管理编码验证程序调整 end } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的tracingCode错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的tracingCode错误!' ) ); } continue; } } @@ -3103,26 +3448,42 @@ //生产日期 List<String> janCode = new List<String>(); if (barCodeList[i].length() < 16) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); } continue; } else { janCodeMark = barCodeList[i].substring(2, 16); try { Decimal test = Decimal.valueOf(janCodeMark); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的janCode错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的janCode错误!' ) ); } continue; } } @@ -3134,12 +3495,19 @@ barCodeList[i].length() - 5 ) != '250' ) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); } continue; } if (barCodeList[i].substring(16, 18) == '11') { @@ -3152,16 +3520,27 @@ '-01'; productionDate = Date.valueOf(productDateStr); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 32) { @@ -3190,16 +3569,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 42) { @@ -3244,16 +3634,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (barCodeList[i].length() >= 34) { @@ -3304,15 +3705,24 @@ Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find() ) { String str = '管理编码有误,请检查条形码数据。'; ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, String str = '管理编码不正确,请与管理员确认是否错误。'; //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。' ) ); } continue; } } @@ -3322,12 +3732,19 @@ // gzw DB202305352696 入库管理编码验证程序调整 end } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的tracingCode错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的tracingCode错误!' ) ); } continue; } } @@ -3413,25 +3830,39 @@ barCodeList[i].length() - 5 ) != '250' ) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('产品BarCode(' + barCodeList[i] + ')没有管理编码!'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有管理编码!' ) ); } continue; } List<String> otCodeList = new List<String>(); Map<String, String> otCodeMap = new Map<String, String>(); if (barCodeList[i].length() < 7) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!' ) ); } continue; } else if (barCodeList[i].length() == 11) { String otCode4 = barCodeList[i].substring(3, 7); @@ -3473,14 +3904,23 @@ barOtcodeMap.put(barCodeList[i], otCodeMap); barCode241List.add(barCodeList[i]); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + barCodeList[i] + ')没有janCode或OTcode,不符合要求!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + barCodeList[i] + ')没有janCode或OTcode,不符合要求!' ) ); } continue; } } @@ -3520,9 +3960,9 @@ } } if (errorMap.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( 'BarCode号[' + errorMap.values() + ']产品类型[' + @@ -3530,8 +3970,21 @@ ']与用户的类型[' + userPro_Type + ']不符' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号[' + errorMap.values() + ']产品类型[' + product_Type + ']与用户的类型[' + userPro_Type + ']不符' ) ); } } } product2InStore = [ @@ -3623,9 +4076,9 @@ } } if (errorMap.size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( 'BarCode号[' + errorMap.values() + ']产品类型[' + @@ -3633,8 +4086,21 @@ ']与用户[' + userPro_Type + ']类型不符' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, 'BarCode号[' + errorMap.values() + ']产品类型[' + product_Type + ']与用户[' + userPro_Type + ']类型不符' ) ); } } product2InStore = [ SELECT @@ -3674,16 +4140,27 @@ '-01'; productionDate = Date.valueOf(productDateStr); } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 3 + 16) { @@ -3738,16 +4215,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 3 + 25) { @@ -3826,16 +4314,27 @@ expirationDate = Date.valueOf(expirationDateStr); } } catch (Exception e) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!' ) ); } continue; } if (bar.length() >= oTcodeLength + 20) { @@ -3885,15 +4384,24 @@ Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find() ) { String str = '管理编码有误,请检查条形码数据。'; ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, String str = '管理编码不正确,请与管理员确认是否错误。'; //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add( '产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。' ) ); } continue; } } @@ -3903,12 +4411,17 @@ // gzw DB202305352696 入库管理编码验证程序调整 end } } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的tracingCode错误!' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { errorList.add('产品BarCode(' + bar + ')的tracingCode错误!'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '产品BarCode(' + bar + ')的tracingCode错误!' ) ); } continue; } } @@ -3956,20 +4469,30 @@ if (notEqualBARcodeCunMap.size() > 0) { for (String widget : notEqualBARcodeCunMap.keySet()) { if (notEqualBARcodeCunMap.get(widget).size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.INFO, '以下barcode产品与订货产品不一致。' ) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add('以下barcode产品与订货产品不一致。'); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.INFO, '以下barcode产品与订货产品不一致。' ) ); } for ( String barcodeListTTT : (List<String>) notEqualBARcodeCunMap.get( widget ) ) { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add(barcodeListTTT); } else { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT) ); } } } } @@ -4398,9 +4921,14 @@ ConsumableorderdetailsRecords.size() < 1 && consumableInventory.size() < 1 ) { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.ERROR, '不存在到货明细') ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = '不存在到货明细'; } else { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.ERROR, '不存在到货明细') ); } return null; } if (EsetId != null && EsetId != '') { @@ -4408,24 +4936,40 @@ if (resultcheck.length() > 0) { for (String widget : overOrderBARcodeCunMap.keySet()) { if (overOrderBARcodeCunMap.get(widget).size() > 0) { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.INFO, //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add( '产品' + widget + '本次到货数量超过' + overOrderBARcodeCunMap.get(widget).size() + '个订货的数量。' ) ); ); } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.INFO, '产品' + widget + '本次到货数量超过' + overOrderBARcodeCunMap.get(widget).size() + '个订货的数量。' ) ); } for ( String barcodeListTTT : (List<String>) overOrderBARcodeCunMap.get( widget ) ) { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT) ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { warningList.add(barcodeListTTT); } else { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT) ); } } } } @@ -4458,6 +5002,7 @@ arriveId = orderMain.id; Decimal arriveAmount = 0; for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsUse) { //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------1------')); Consumable_order_details2__c insDetails = new Consumable_order_details2__c(); insDetails.Id = ass.esd.Id; insDetails.Consumable_Arrived_order__c = orderMain.id; @@ -4584,6 +5129,7 @@ if (updateconsumableorderdetails2.size() > 0) { update updateconsumableorderdetails2; } List<Consumable_order_details2__c> insertconsumableorderdetails2 = new List<Consumable_order_details2__c>(); for (Consumable_order_details2__c Cod2 : consumableorderdetails2Insert) { //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------4------')); @@ -4621,7 +5167,7 @@ i++; } // return null; //return null; if (insertconsumableorderdetails2.size() > 0) { insert insertconsumableorderdetails2; @@ -4681,7 +5227,12 @@ // Integer a = 1/0; } catch (Exception e) { Database.rollback(sp); ApexPages.addMessages(e); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = e.getLineNumber() + '---' + e.getMessage(); } else { ApexPages.addMessages(e); } return null; } if (resultcheck.length() > 0) { @@ -4689,6 +5240,7 @@ } else if (resultcheckWithoutOrder.size() > 0) { return null; } else { urlType = 'UnabletoEdit'; return UnabletoEdit(); // return null; } @@ -5098,11 +5650,7 @@ Inventory_Order_Sheet.Order_ProType__c = userPro_Type; insert Inventory_Order_Sheet; inventory_Order_id = Inventory_Order_Sheet.id; List<Consumable_order__c> consumable_order_Inv = [ SELECT Name FROM Consumable_order__c WHERE id = :Inventory_Order_Sheet.id ]; //List<Consumable_order__c> consumable_order_Inv = [SELECT Name FROM Consumable_order__c WHERE id =:Inventory_Order_Sheet.id]; //Commented By Li Jun 20230616 // WYIN-BLZE48盘点丢失产品增加入库方式 update by vivek 2020-03-05 end List<Consumable_order_details2__c> codcList = new List<Consumable_order_details2__c>(); @@ -5123,7 +5671,11 @@ codi.esd.Return_reason__c == null || codi.esd.Return_reason__c == '' ) { codi.esd.Return_reason__c.addError('请补充返品原因'); if (isLwc) { returnError = '请补充返品原因'; } else { codi.esd.Return_reason__c.addError('请补充返品原因'); } return null; } @@ -5134,7 +5686,11 @@ codi.esd.Bar_Code__c; Integer deliverycnt = BarcodeCntMap.get(key); if (codi.esd.Rrturn_count__c > deliverycnt) { codi.esd.Rrturn_count__c.addError('超出出库数量'); if (isLwc) { returnError = '超出出库数量'; } else { codi.esd.Rrturn_count__c.addError('超出出库数量'); } return null; } } @@ -5355,6 +5911,7 @@ codcList.add(codi.esd); } } //明细2不存在的对应的到货订单明细 2017-07-05 Integer i = 1; //for(ConsumableorderdetailsInfo ass : consumableInventoryUse){ @@ -5368,9 +5925,17 @@ // } if (ass.ReturnReason == null || ass.ReturnReason == '') { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.ERROR, '请补充返品原因') ); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = '请补充返品原因'; } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '请补充返品原因' ) ); } return null; } @@ -5469,13 +6034,33 @@ // WYIN-BPE3T4 虚拟盘点单 update by vivek 2020-05-11 start // return ToReturnGoodsPage(); if (hasLoseGoods) { urlType = 'ToInventoryGoodsPage'; return ToInventoryGoodsPage(); // return null; } else { urlType = 'ToReturnGoodsPage'; return ToReturnGoodsPage(); // return null; } // WYIN-BPE3T4 虚拟盘点单 update by vivek 2020-05-11 start } else { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = '没有需要登录的返品'; } else { ApexPages.addmessage( new ApexPages.message( ApexPages.severity.ERROR, '没有需要登录的返品' ) ); } return null; } } else { //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = '没有需要登录的返品'; } else { ApexPages.addmessage( new ApexPages.message( @@ -5483,17 +6068,17 @@ '没有需要登录的返品' ) ); return null; } } else { ApexPages.addmessage( new ApexPages.message(ApexPages.severity.ERROR, '没有需要登录的返品') ); return null; } } catch (Exception e) { Database.rollback(sp); ApexPages.addMessages(e); //LWC:Lwcflag和报错提醒 update by Link 2023-04-27 if (isLwc) { returnError = e.getLineNumber() + '---' + e.getMessage(); } else { ApexPages.addMessages(e); } return null; } } @@ -5575,7 +6160,7 @@ return ref; } class ConsumableorderdetailsInfo implements Comparable { public class ConsumableorderdetailsInfo implements Comparable { public Consumable_order_details2__c esd { get; set; } public Product2__c Prod { get; set; } public String ProductName { get; set; } @@ -5593,6 +6178,10 @@ public Decimal arrivedCount { get; set; } public String ReportProductExpirationDate { get; set; } public ConsumableorderdetailsInfo() { } public ConsumableorderdetailsInfo( Consumable_order_details2__c e, string str force-app/main/default/classes/ArriveGoodsControllerTest.cls
@@ -1,236 +1,5 @@ @isTest private class ArriveGoodsControllerTest { @isTest static void myUnitTest() { // // TO DO: implement unit test List<RecordType> rectCo = [ SELECT Id FROM RecordType WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' ]; if (rectCo.size() == 0) { return; } // Profile prof = [select Id from Profile where Name ='901_经销商社区普通权限_2重验证(ET Email)']; Profile prof = [ SELECT Id FROM Profile WHERE Name = '901_经销商社区普通权限_2重验证(ET)' ]; Account myAccount2 = new Account( name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '9999900' ); Account myAccount1 = new Account( name = 'Testaccount001', Dealer_discount__c = 30, RecordTypeId = rectCo[0].Id ); insert new List<account>{ myAccount1, myAccount2 }; Contact core = new Contact( email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id ); insert core; user MyUser_Test = new User( ContactId = core.id, Alias = 'newUser', Email = 'newuser@testorg.com', EmailEncodingKey = 'UTF-8', LastName = 'TestUser', LanguageLocaleKey = 'zh_CN', LocaleSidKey = 'zh_CN', ProfileId = prof.Id, TimeZoneSidKey = 'Asia/Shanghai', UserName = 'testUser@testorg.com', UserPro_Type__c = 'ET' ); System.runAs(new User(Id = UserInfo.getUserId())) { insert MyUser_Test; } // User MyUser_Test = [select id,Contact.accountid from User WHERE ProfileId = :prof.Id and IsActive = true and UserPro_Type__c = 'ET' limit 1 ]; // Product2 prod01 = new Product2(Name='Test01',ProductCode='Test01',Asset_Model_No__c = 'Test01',SFDA_Status__c = '有効',JANCODE__c = '04953170200311',Dealer_special_Object__c = true,Manual_Entry__c = false); // Product2 prod02 = new Product2(Name='Test02',ProductCode='Test02',Asset_Model_No__c = 'Test02',SFDA_Status__c = '有効',JANCODE__c = '04953170200312',Dealer_special_Object__c = true,Manual_Entry__c = false); // insert new Product2[] {prod01,prod02}; System.runAs(MyUser_Test) { Product2 prod01 = new Product2( Name = 'Test01', ProductCode = 'Test01', Asset_Model_No__c = 'Test01', SFDA_Status__c = '有効', JANCODE__c = '04953170200311', Dealer_special_Object__c = true, Manual_Entry__c = false ); Product2 prod02 = new Product2( Name = 'Test02', ProductCode = 'Test02', Asset_Model_No__c = 'Test02', SFDA_Status__c = '有効', JANCODE__c = '04953170200312', Dealer_special_Object__c = true, Manual_Entry__c = false ); insert new List<Product2>{ prod01, prod02 }; Product2__c pro1 = new Product2__c( Name = 'Pro001', OT_CODE_Text__c = 'Test001', Product2__c = prod01.Id ); Product2__c pro2 = new Product2__c( Name = 'Pro002', OT_CODE_Text__c = 'Test002', Product2__c = prod02.Id ); insert new List<Product2__c>{ pro1, pro2 }; //订单 Consumable_order__c Order1 = new Consumable_order__c(); Order1.Name = 'OCM_01_001'; Order1.Order_status__c = '批准'; Order1.Order_type__c = '订单'; // Order1.Dealer_Info__c = myAccount1.id; Order1.Dealer_Info__c = myAccount1.id; Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; Order1.Total_num__c = 3; Order1.OrderNumber_arrived__c = 1; Order1.Delivery_detail_count__c = 1; Order1.Order_ProType__c = 'ET'; insert Order1; //订单明细 //fahuo Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); Orderdet.Name = 'OCM_01_00101'; Orderdet.Consumable_order__c = Order1.Id; Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; Orderdet.Consumable_Product__c = pro1.Id; Orderdet.Consumable_count__c = 40; insert Orderdet; //发货明细 //到货正确信息 Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); Orderdet1.Name = 'OCM_01_001002'; Orderdet1.Consumable_order_minor__c = Order1.Id; Orderdet1.Consumable_Product__c = pro1.Id; Orderdet1.Asset_Model_No__c = 'Test01'; Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA'; Orderdet1.TracingCode__c = 'BXJRA'; //取消产品 Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); Orderdet2.Name = 'OCM_01_001003'; Orderdet2.Consumable_order_minor__c = Order1.Id; Orderdet2.Consumable_Product__c = pro1.Id; Orderdet2.Asset_Model_No__c = 'Test01'; //Orderdet2.Consumable_Arrived_order__c = Order1.Id; Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRB'; Orderdet2.Cancellation_Date__c = Date.today(); Orderdet2.TracingCode__c = 'BXJRB'; //销售产品 Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); Orderdet3.Name = 'OCM_01_001004'; Orderdet3.Consumable_order_minor__c = Order1.Id; Orderdet3.Consumable_Product__c = pro1.Id; Orderdet3.Asset_Model_No__c = 'Test01'; Orderdet3.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRC'; Orderdet3.Used_date__c = Date.today(); Orderdet3.Arrive_date__c = Date.today(); Orderdet3.TracingCode__c = 'BXJRC'; //Orderdet3.Box_Piece__c = '盒'; //出库产品 Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c(); Orderdet4.Name = 'OCM_01_001005'; Orderdet4.Consumable_order_minor__c = Order1.Id; Orderdet4.Consumable_Product__c = pro1.Id; Orderdet4.Asset_Model_No__c = 'Test01'; Orderdet4.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet4.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRD'; Orderdet4.Send_Date__c = Date.today(); Orderdet4.Arrive_date__c = Date.today(); Orderdet4.TracingCode__c = 'BXJRD'; //已到货产品 Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c(); Orderdet5.Name = 'OCM_01_001006'; Orderdet5.Consumable_order_minor__c = Order1.Id; Orderdet5.Consumable_Product__c = pro1.Id; Orderdet5.Asset_Model_No__c = 'Test01'; Orderdet5.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet5.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRE'; Orderdet5.Arrive_date__c = Date.today(); Orderdet5.TracingCode__c = 'BXJRE'; //发货明细 //管理编码包含数字 Consumable_order_details2__c Orderdet6 = new Consumable_order_details2__c(); Orderdet6.Name = 'OCM_01_001002'; Orderdet6.Consumable_order_minor__c = Order1.Id; Orderdet6.Consumable_Product__c = pro1.Id; Orderdet6.Asset_Model_No__c = 'Test01'; Orderdet6.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet6.Bar_Code__c = '01049531702003111115120017181000105ZK250BX123'; Orderdet6.TracingCode__c = 'BX123'; //发错库 未到货 Consumable_order_details2__c Orderdets8 = new Consumable_order_details2__c(); Orderdets8.Name = 'OCM_01_001011'; Orderdets8.Consumable_order_minor__c = Order1.Id; Orderdets8.Consumable_Product__c = pro1.Id; Orderdets8.Asset_Model_No__c = 'Test01'; Orderdets8.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdets8.Bar_Code__c = '01049531702003111115120017181000105ZK250BXsys'; Orderdets8.Box_Piece__c = '盒'; Orderdets8.TracingCode__c = 'BXsys'; insert new List<Consumable_order_details2__c>{ Orderdet1, Orderdet2, Orderdet3, Orderdet4, Orderdet5, Orderdet6, Orderdets8 }; List<Consumable_orderdetails__c> cod1 = [ SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :Order1.Id ]; System.assertEquals(1, cod1.size()); PageReference page = new PageReference( '/apex/ArriveGoods?Esetid=' + Order1.Id ); System.Test.setCurrentPage(page); ArriveGoodsController Controller = new ArriveGoodsController(); //初始化测试 System.Test.startTest(); Controller.init(); //排序 Controller.barcode = ''; Controller.SearchPro(); Controller.barcode = '01049531702003111115120017181000105ZK250BXJRA\n01049531702003111115120017181000105ZK250BXsys\n01049531702003111115120017181000105ZK250BXsun\n01049531702003111115120017181000105ZK250BXJRB\n01049531702003111115120017181000105ZK250BXJRC\n01049531702003111115120017181000105ZK250BX111\n01049531702003111115120017181000105ZK250BXJRD\n01049531702003111115120017181000105ZK250BXJRE\n01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BXJRG\n01049531702003111115120017181000105ZK250BX123'; Controller.SearchPro(); // System.assertEquals(3, controller.ConsumableorderdetailsRecordsdummy.size()); //tcm Controller.ArriveGoodsConfim(); System.Test.stopTest(); } } //选择等待入库,包括01 和241 @isTest static void arriveWithID() { @@ -1292,27 +1061,27 @@ //发货明细 //fahuo /*Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); Orderdet1.Name = 'OCM_01_001001'; Orderdet1.Consumable_order_minor__c = Order1.Id; Orderdet1.Consumable_Product__c = pro1.Id; Orderdet1.Asset_Model_No__c = 'Pro001'; Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet1.Box_Piece__c ='盒'; Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF'; //daohuo Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); Orderdet2.Name = 'OCM_01_001002'; Orderdet2.Consumable_order_minor__c = Order1.Id; Orderdet2.Consumable_Product__c = pro1.Id; Orderdet2.Asset_Model_No__c = 'Pro001'; Orderdet2.Consumable_Arrived_order__c = Order1.Id; //Orderdet2.IsArrival__c = true; Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet2.Box_Piece__c ='盒'; Orderdet2.Arrive_date__c = Date.today(); //Orderdet2.Send_Date__c = Date.today(); //Orderdet2.Used_date__c= Date.today(); Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';*/ Orderdet1.Name = 'OCM_01_001001'; Orderdet1.Consumable_order_minor__c = Order1.Id; Orderdet1.Consumable_Product__c = pro1.Id; Orderdet1.Asset_Model_No__c = 'Pro001'; Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet1.Box_Piece__c ='盒'; Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF'; //daohuo Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); Orderdet2.Name = 'OCM_01_001002'; Orderdet2.Consumable_order_minor__c = Order1.Id; Orderdet2.Consumable_Product__c = pro1.Id; Orderdet2.Asset_Model_No__c = 'Pro001'; Orderdet2.Consumable_Arrived_order__c = Order1.Id; //Orderdet2.IsArrival__c = true; Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet2.Box_Piece__c ='盒'; Orderdet2.Arrive_date__c = Date.today(); //Orderdet2.Send_Date__c = Date.today(); //Orderdet2.Used_date__c= Date.today(); Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';*/ //sale Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c(); Orderdet3.Name = 'OCM_01_001003'; @@ -4056,4 +3825,161 @@ System.Test.stopTest(); } } @isTest static void makeRecordsVieweTest() { Integer count = 1001; List<ArriveGoodsController.ConsumableorderdetailsInfo> conList = new List<ArriveGoodsController.ConsumableorderdetailsInfo>(); for (Integer i = 0; i < 1001; i++) { conList.add(new ArriveGoodsController.ConsumableorderdetailsInfo()); } ArriveGoodsController arr = new ArriveGoodsController(); arr.makeRecordsView(conList); ArriveGoodsController arr1 = new ArriveGoodsController('', ''); } @isTest static void compareToTest() { ArriveGoodsController.ConsumableorderdetailsInfo c1 = new ArriveGoodsController.ConsumableorderdetailsInfo(); ArriveGoodsController.ConsumableorderdetailsInfo c2 = new ArriveGoodsController.ConsumableorderdetailsInfo(); c1.compareTo(c2); } @isTest static void searchProTest1() { List<RecordType> rectCo = [ SELECT Id FROM RecordType WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '販売店' ]; if (rectCo.size() == 0) { return; } Profile prof = [ SELECT Id FROM Profile WHERE Name = '901_经销商社区普通权限_2重验证(ET)' ]; Account myAccount2 = new Account( name = 'Testaccount002', Dealer_discount__c = 20, RecordTypeId = rectCo[0].Id, AgentCode_Ext__c = '9999900' ); Account myAccount1 = new Account( name = 'Testaccount001', Dealer_discount__c = 30, RecordTypeId = rectCo[0].Id ); insert new List<account>{ myAccount1, myAccount2 }; Contact core = new Contact( email = 'jplumber@salesforce.com', firstname = 'Joe', lastname = 'Plumber', accountid = myAccount1.id ); insert core; user MyUser_Test = new User( ContactId = core.id, Alias = 'newUser', Email = 'newuser@testorg.com', EmailEncodingKey = 'UTF-8', LastName = 'TestUser', LanguageLocaleKey = 'zh_CN', LocaleSidKey = 'zh_CN', ProfileId = prof.Id, TimeZoneSidKey = 'Asia/Shanghai', UserName = 'testUser@testorg.com', UserPro_Type__c = 'ET' ); System.runAs(new User(Id = UserInfo.getUserId())) { insert MyUser_Test; } System.runAs(MyUser_Test) { Product2 prod01 = new Product2( Name = 'Test01', ProductCode = 'Test01', Asset_Model_No__c = 'Test01', SFDA_Status__c = '有効', JANCODE__c = '04953170200311', Dealer_special_Object__c = true, Manual_Entry__c = false ); Product2 prod02 = new Product2( Name = 'Test02', ProductCode = 'Test02', Asset_Model_No__c = 'Test02', SFDA_Status__c = '有効', JANCODE__c = '04953170200312', Dealer_special_Object__c = true, Manual_Entry__c = false ); insert new List<Product2>{ prod01, prod02 }; Product2__c pro1 = new Product2__c( Name = 'Pro001', OT_CODE_Text__c = 'N3047730', Product2__c = prod01.Id ); Product2__c pro2 = new Product2__c( Name = 'Pro002', OT_CODE_Text__c = 'N3047731', Product2__c = prod02.Id ); insert new List<Product2__c>{ pro1, pro2 }; Consumable_order__c Order1 = new Consumable_order__c(); Order1.Name = 'OCM_01_001'; Order1.Order_status__c = '批准'; Order1.Order_type__c = '订单'; Order1.Dealer_Info__c = myAccount1.id; Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery; Order1.Order_ProType__c = 'ET'; insert Order1; Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c(); Orderdet.Name = 'OCM_01_00101'; Orderdet.Consumable_order__c = Order1.Id; Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order; Orderdet.Consumable_Product__c = pro1.Id; Orderdet.Consumable_count__c = 4; insert Orderdet; Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c(); Orderdet1.Name = 'OCM_01_001001'; Orderdet1.Consumable_order_minor__c = Order1.Id; Orderdet1.Consumable_Product__c = pro1.Id; Orderdet1.Asset_Model_No__c = 'Test01'; Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF'; Orderdet1.Cancellation_Date__c = null; Orderdet1.TracingCode__c = 'BXJRF'; Orderdet1.SerialLotNo__c = '5ZK'; insert Orderdet1; System.debug('Orderdet1:' + Orderdet1); Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c(); Orderdet2.Name = 'OCM_01_001001'; Orderdet2.Consumable_order_minor__c = Order1.Id; Orderdet2.Consumable_Product__c = pro1.Id; Orderdet2.Asset_Model_No__c = 'Test01'; Orderdet2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery; Orderdet2.Bar_Code__c = '01049531702003111115120017181234105ZK250BXJRF'; Orderdet1.Cancellation_Date__c = null; Orderdet2.TracingCode__c = 'BXJRF'; Orderdet2.SerialLotNo__c = '5ZK'; insert Orderdet2; PageReference page = new PageReference('/apex/ArriveGoods?ArrType=Arr'); System.Test.setCurrentPage(page); ArriveGoodsController Controller = new ArriveGoodsController(); System.Test.startTest(); Controller.init(); Controller.barcode = '01049531702003111115120017181000105ZK250BXJRF'; Controller.SearchPro(); Controller.ArriveGoodsConfim(); List<Consumable_order_details2__c> ins = [ SELECT Id, Name FROM Consumable_order_details2__c ]; System.Test.stopTest(); } } } force-app/main/default/classes/DealerInquiryModifyStateController.cls
@@ -51,6 +51,9 @@ private String strColumus; private String strRtColumus; //add by Link 2023-6-2 public String remindMsg { get; set; } @TestVisible private String accTypeForSort = null; private static Integer oppLimit = 500; @@ -129,6 +132,7 @@ } public PageReference init() { remindMsg = ''; PartnerSoapSforceCom.Soap soap = new PartnerSoapSforceCom.Soap(); soap.SessionHeader = new PartnerSoapSforceCom.SessionHeader_element(); soap.SessionHeader.sessionId = UserInfo.getSessionId(); @@ -420,6 +424,8 @@ '取得最近的 ' + oppCount + ' 条数据' ) ); //add by Link 2023-6-2 remindMsg = '取得最近的 ' + oppCount + ' 条数据'; } else if (!String.isBlank(this.sortKey)) { if (oppCount > oppLimit) { ApexPages.addmessage( @@ -428,6 +434,8 @@ '数据超过' + oppLimit + '件,只显示前' + oppLimit + '件' ) ); //add by Link 2023-6-2 remindMsg = '数据超过' + oppLimit + '件,只显示前' + oppLimit + '件'; } else { ApexPages.addmessage( new ApexPages.message( @@ -435,6 +443,8 @@ '共有 ' + oppCount + ' 条数据' ) ); //add by Link 2023-6-2 remindMsg = '共有 ' + oppCount + ' 条数据'; } } else { ApexPages.addmessage( @@ -443,6 +453,8 @@ '共有 ' + oppCount + ' 条数据' ) ); //add by Link 2023-6-2 remindMsg = '共有 ' + oppCount + ' 条数据'; } } //检索条件:数据字段1,数据字段2,数据字段3均满足进入此方法 判断多种情况 @@ -645,6 +657,8 @@ ApexPages.addmessage( new ApexPages.message(ApexPages.severity.INFO, '保存完了') ); //add by Link 2023-6-2 remindMsg = '保存完了'; } catch (Exception e) { //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '请确定科室分类和产品区分的关系')); } force-app/main/default/classes/DealerInquiryModifyStateControllerTest.cls
@@ -64,7 +64,7 @@ opp.Name = 'GZ-SP-NFM007_1'; opp.Trade__c = '内貿'; opp.StageName = '引合'; opp.CloseDate = date.newinstance(2022, 11, 30); opp.CloseDate = Date.today(); opp.Stock_apply_status__c = '申请中'; insert opp; Test.startTest(); @@ -102,8 +102,9 @@ user.Alias = 'テユ'; user.CommunityNickname = 'テストユーザー'; user.SalesManager__c = UserInfo.getUserId(); insert user; System.runAs(new User(Id = UserInfo.getUserId())) { insert user; } List<user> users = [ SELECT Id, Name, LastName, FirstName FROM User force-app/main/default/classes/LexSaleOrderController.cls
@@ -784,6 +784,7 @@ Matcher n = Pattern.compile('[0-9]') .matcher(newdet2[j].TracingCode__c); if (n.find()) { // gzw DB202305352696 入库管理编码验证程序调整 start if (newdet2[j].TracingCode__c.length() == 5) { String tr = newdet2[j].TracingCode__c; String Ctr = tr.substring(tr.length() - 3, tr.length()); force-app/main/default/pages/DealerInquiryModifyState.page
@@ -1,9 +1,11 @@ <apex:page controller="DealerInquiryModifyStateController" docType="html-5.0" showHeader="false" sidebar="false" id="allPage" action="{!init}" lightningStyleSheets="true" > <head> <title>经销商批量修改询价状态</title> @@ -22,42 +24,48 @@ div.inline { float: left; } .clearBoth { clear: both; } div.reportBlock table.list { width: auto; } div#out_Div { /* ここにヘッダを格納 */ position: relative; overflow: hidden; float: left; width: 50.3%; width: 50% !important; } div#out_Div_L { position: relative; overflow: hidden; float: left; width: 48%; border-right: 2px solid #000; width: 50% !important; border-right: 2px solid #808383; } div#in_Div { /* tbodyが入っている。ここがスクロール対象*/ position: relative; overflow: auto; /*スクロールバー*/ float: left; width: 51.8%; height: 373px; /* tbodyを表示する高さ、後でjsにて調整 */ width: 50% !important; height: 600px; } div#in_Div_L { position: relative; overflow-x: auto; overflow-y: hidden; float: left; width: 48%; height: 373px; border-right: 2px solid #000; width: 50% !important; height: 600px; border-right: 2px solid #808383; } body .pbBody table.list tr.headerRow td { @@ -66,11 +74,13 @@ font-weight: normal; padding: 0px 0px 0px 1px; } body .pbBody table.list tr.headerRow td.header1 { text-align: center; font-weight: normal; padding: 0px 0px 0px 0px; } body .pbBody table.list tr.dataRow td { box-sizing: border-box; padding: 0px 0px 0px 1px; @@ -78,6 +88,7 @@ vertical-align: middle; word-break: break-all; } body .pbBody table.list tr.dataRow td.dataCellBorder { /* いらない、使っていない */ padding: 0px 0px 0px 1px; @@ -85,12 +96,14 @@ vertical-align: middle; word-break: break-all; } body .pbBody table.list tr.dataRow td.dataCellBorder1 { padding: 0px 0px 0px 1px; border-width: 0px 0px 1px 1px; vertical-align: middle; word-break: break-all; } @-moz-document url-prefix() { body .pbBody table.list tr.dataRow td.dataCellBorder1 { padding: 0px 0px 0px 0px; @@ -103,12 +116,15 @@ table.list td { width: 100px; } table.list td select { width: 95%; } table.list td input { width: 95%; } table.list td textarea { height: 50px; width: 90%; @@ -289,14 +305,12 @@ table.list .col_OPD_USG400__c { width: 118px; } /*OPD对象:USG-400*/ table.list .col_Hospital_Name__c { width: 139px; } /*医院名*/ table.list .col_Department_Name__c { width: 60px; } /*科室名称*/ table.list .col_Province_formula__c { width: 78px; } /*省(公式)*/ @@ -319,14 +333,13 @@ width: 178px; } /*活动计划(销售)*/ /*table.list .col_Link1 {width:58px;} table.list .col_Link2 {width:58px;} table.list .col_Link3 {width:58px;} table.list .col_Link4 {width:58px;} table.list .col_Link5 {width:58px;} table.list .col_Link6 {width:58px;} table.list .col_Link7 {width:58px;} table.list .col_Link8 {width:58px;}*/ table.list .col_Link2 {width:58px;} table.list .col_Link3 {width:58px;} table.list .col_Link4 {width:58px;} table.list .col_Link5 {width:58px;} table.list .col_Link6 {width:58px;} table.list .col_Link7 {width:58px;} table.list .col_Link8 {width:58px;}*/ body .pbBody table.list tr.headerRow td.colViewing { /* デフォルト値、最小化アイコンを表示 */ background-image: url("{!URLFOR($Resource.IconResizeMinus_5)}"); @@ -348,8 +361,19 @@ border-width: 0px; } /*.zxk{ margin-bottom: 3px; }*/ margin-bottom: 3px; }*/ .buttonStyle { font-size: 14px !important; font-family: "sans-serif" !important; font-weight: 500 !important; width: 70px !important; height: 32px !important; border-radius: 4px !important; opacity: 1 !important; background: #090f84 !important; color: #ffffff !important; } </style> <script type="text/javascript"> var heightAjustment = 120; @@ -361,12 +385,23 @@ } </script> </head> <apex:slds /> <div id="spinner" class="slds-spinner_container" style="display: none"> <div role="status" class="slds-spinner slds-spinner_medium slds-spinner_brand" > <span class="slds-assistive-text">Loading</span> <div class="slds-spinner__dot-a"></div> <div class="slds-spinner__dot-b"></div> </div> </div> <apex:form id="allForm"> <apex:actionFunction name="saveAndSearch" action="{!save}" rerender="allPanel" oncomplete="unblockUI();expandAll();" oncomplete="closeSpinner();expandAll();" > <apex:param name="firstParam" assignTo="{!saveType}" value="" /> </apex:actionFunction> @@ -374,7 +409,7 @@ name="saveAndSort" action="{!save}" rerender="allPanel" oncomplete="unblockUI();expandAll();" oncomplete="closeSpinner();expandAll();" > <apex:param name="firstParam" assignTo="{!saveType}" value="" /> <apex:param name="secondParam" assignTo="{!sortKey}" value="" /> @@ -383,128 +418,163 @@ name="searchOpp" action="{!chick}" rerender="allPanel" oncomplete="unblockUI();expandAll();" oncomplete="closeSpinner();expandAll();" /> <apex:actionFunction name="sortTable" action="{!sortTable}" rerender="allPanel" oncomplete="unblockUI();expandAll();" oncomplete="closeSpinner();expandAll();" > <apex:param name="firstParam" assignTo="{!sortKey}" value="" /> </apex:actionFunction> <apex:outputPanel id="allPanel"> <div id="zxk" style="margin-bottom: -15px"> <apex:pageBlock id="searchBlock" mode="maindetail"> <!-- tabStyle="Report"红色 mode="maindetail" 消失 mode="edit" 变大 --> <!-- <apex:pageMessages ></apex:pageMessages> --> <!-- <table style="border-bottom-width: 0px; font-size:12px;"> <tr> <td width="150px"> <apex:commandButton action="{!save}" value="保存" rerender="allPanel" onclick="blockme();" oncomplete="unblockUI();expandAll();" style="height:30px;width:50px;"/> <apex:commandButton value="检索" onclick="searchOppJs_Account();return false;" style="height:30px;width:70px;"/> </td> <td width="1000px"> <apex:pageMessages /> </td> </tr> </table> --> <table style="border-bottom-width: 0px; font-size: 12px"> <table style="border-bottom-width: 0px; font-size: 14px; color: #696969" > <tr> <!-- <td width="150px">分类 <apex:selectList value="{!accType}" size="1" style="width:80px" id="accType"><apex:selectOptions value="{!accTypeOpts}" id="accTypeOptsId"/></apex:selectList></td> --> <td width="250px"> 经销商医院 <apex:inputText value="{!accSearch}" style="width: 170px" /> <td width="283px"> <div style="color: #696969"> 经销商医院 <apex:inputText styleClass="slds-input" value="{!accSearch}" style="width: 170px" /> </div> </td> <td></td> <td width="250px"> 销售担当 <apex:inputText value="{!aooSearch}" style="width: 150px" /> <div style="color: #696969"> 销售担当 <apex:inputText styleClass="slds-input" value="{!aooSearch}" style="width: 150px" /> </div> </td> <td width="230px"> 显示 <apex:selectList value="{!limits}" size="1" onchange="searchOppJs_Account();return false;" > <apex:selectOptions value="{!limitOpts}" /></apex:selectList > 条数据 <div style="color: #696969"> 显示 <apex:selectList styleClass="slds-input slds-combobox__input" style="width: 100px" value="{!limits}" size="1" onchange="searchOppJs_Account();return false;" > <apex:selectOptions value="{!limitOpts}" /> </apex:selectList> 条数据 </div> </td> <!-- <td width="10px"></td> --> <td width="70px"> <td> <a href="#" onclick="expandAll();return false;" style="text-decoration: underline" style="text-decoration: underline; color: #696969" >全部展开</a > </td> <!-- text-decoration: underline; --> </tr> </table> <table style="border-bottom-width: 0px; font-size: 12px"> <p style="height: 10px"></p> <table style=" border-bottom-width: 0px; font-size: 12px; font-size: 14px; color: #696969; " > <tr> <td width="200px"> <font>数 据 字 段 </font> <apex:selectList value="{!numtext1}" size="1" style="width: 110px" ><apex:selectOptions value="{!textOpts}" /></apex:selectList> <td width="220px"> <div style="color: #696969"> <font>数 据 字 段</font > <apex:selectList styleClass="slds-input slds-combobox__input" value="{!numtext1}" size="1" style="width: 110px" > <apex:selectOptions value="{!textOpts}" /> </apex:selectList> </div> </td> <td width="130px"> <apex:selectList styleClass="slds-input slds-combobox__input" value="{!numtext2}" size="1" style="width: 110px" ><apex:selectOptions value="{!equalOpts}" /></apex:selectList> > <apex:selectOptions value="{!equalOpts}" /> </apex:selectList> </td> <td width="200px"> <apex:inputText style="width: 150px" value="{!numtext}" /> <td width="183px"> <apex:inputText styleClass="slds-input" style="width: 150px" value="{!numtext}" /> </td> <td width="150px"> <td width="188px"> <!-- slds-button slds-button_brand --> <apex:commandButton styleClass="buttonStyle" value="检索" onclick="searchOppJs_Account();return false;" style="height: 30px; width: 50px" style="height: 30px; width: 70px" /> <apex:commandButton styleClass="buttonStyle" action="{!save}" value="保存" rerender="allPanel" onclick="blockme();" oncomplete="unblockUI();expandAll();" style="height: 30px; width: 50px" onclick="showSpinner();" oncomplete="closeSpinner();expandAll();" style="height: 30px; width: 70px" /> </td> <td width="500px"> <apex:pageMessages /> <td> <!-- <apex:pageMessages /> --> <!-- add by Link 2023-6-2 --> <apex:outputPanel rendered="{! remindMsg != '' && remindMsg != null}" > <div style=" border: 1px solid #d4d4d4; height: 32px; border-radius: 5px; color: #ff6a00; font-size: 18px; " > <span class="slds-icon_container slds-icon-custom-custom53 slds-icon-text-default" > <svg aria-hidden="true" class="slds-icon"> <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/apexpages/slds/latest/assets/icons/custom-sprite/svg/symbols.svg#custom53" ></use> </svg> <span class="slds-assistive-text">Custom 53</span> </span> <strong style="padding-top: 2px"> {!remindMsg}</strong> </div> </apex:outputPanel> </td> </tr> <!-- <tr> <td width="110px"> <font> 日 期 </font> <apex:selectList value="{!timetext1}" size="1" style="width:110px"><apex:selectOptions value="{!timeOpts}"/></apex:selectList> </td> <td> 从<apex:inputField style="width:150px" value="{!tmpAO.MaxActivityDate__c}"/> --> <!-- <apex:selectList value="{!timetext2}" size="1" style="width:110px"><apex:selectOptions value="{!timeequalOpts}"/></apex:selectList> --> <!-- </td> <td> 到<apex:inputField style="width:150px" value="{!tmpBO.MaxActivityDate__c}"/> </td> </tr> --> </table> </apex:pageBlock> </div> <apex:pageBlock id="oppBlock"> <!-- <div style="border: 1px solid #D4D4D4;border-top: 3px solid #51606E;border-radius:5px;margin-bottom:7px;"> --> <apex:pageBlock id="oppBlock" mode="maindetail"> <!-- <apex:pageblocksection columns="1" id="oppSection"> --> <apex:outputPanel> <apex:inputHidden id="oppCount" value="{!oppCount}" /> @@ -515,7 +585,7 @@ style=" border-bottom-width: 0px; width: 1100px; font-size: 11px; font-size: 14px !important; border-spacing: 0; " border="" @@ -536,7 +606,12 @@ <a href="#" onclick="sortTableJs_Account1('{!cnt + titleLeft.size}');return false;" style="text-decoration: underline" style=" text-decoration: underline; color: black; font-size: 14px !important; font-weight: bold; " ><apex:outputText value="{!t}" /></a >{!sortOrder[cnt + titleLeft.size]} </td> @@ -552,7 +627,7 @@ style=" border-bottom-width: 0px; width: 2000px; font-size: 11px; font-size: 14px !important; border-spacing: 0; " border="" @@ -572,7 +647,12 @@ <a href="#" onclick="sortTableJs_Account1('{!cnt}');return false;" style="text-decoration: underline" style=" text-decoration: underline; color: black; font-size: 14px !important; font-weight: bold; " ><apex:outputText value="{!t}" /></a >{!sortOrder[cnt]} </td> @@ -590,7 +670,7 @@ style=" border-bottom-width: 0px; width: 1100px; font-size: 11px; font-size: 13px; border-spacing: 0; " border="" @@ -600,6 +680,7 @@ <apex:repeat value="{!oppRecords}" var="or" id="oppTable"> <tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}" style="height: 35px" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" @@ -614,7 +695,7 @@ <!-- <apex:outputLink rendered="{!c[0]=='Name'}" value="/{!or.opp.Id}" target="LINK_{!or.opp.Id}"><apex:outputField rendered="{!c[0]=='Name'}" value="{!or.opp[c[0]]}" /></apex:outputLink> --> <!-- vivek end --> <!-- <apex:outputField id="q1111111111" rendered="{!(c.size==1 && columnRightRW[c[0]]=='r' && or.opp.Id <> null && c[0] <> 'Name' && (c[0] <> 'Opp_Changed_Field__c' ||(c[0] == 'Opp_Changed_Field__c' && or.opp.Opp_Changed_Field__c != '询价阶段发生了变化' &&or.opp.Opp_Changed_Field__c != '预测签约日发生了变化' &&or.opp.Opp_Changed_Field__c != '医院合同金额发生了变化' && or.opp.Opp_Changed_Field__c != '订货金额发生了变化')))}" value="{!or.opp[c[0]]}" /> && or.opp.Oly_Inquiry_Status1__c <> null AgcOpp --> or.opp.Opp_Changed_Field__c != '询价阶段发生了变化' &&or.opp.Opp_Changed_Field__c != '预测签约日发生了变化' &&or.opp.Opp_Changed_Field__c != '医院合同金额发生了变化' && or.opp.Opp_Changed_Field__c != '订货金额发生了变化')))}" value="{!or.opp[c[0]]}" /> && or.opp.Oly_Inquiry_Status1__c <> null AgcOpp --> <apex:outputField rendered="{!c[0] == 'Change_To_Opportunity_T__c' }" value="{!or.opp[c[0]]}" @@ -625,20 +706,20 @@ value="{!or.opp[c[0]]}" /> <!-- <apex:outputField id="q1111111111" rendered="{!( columnRightRW[c[0]]=='r' && c[0] <> 'Name' && (c[0] <> 'StageName__c' ||(c[0] == 'StageName__c' && or.opp.Oly_Inquiry_Stage__c != '询价阶段发生了变化' &&or.opp.Oly_Inquiry_Stage__c != '预测签约日发生了变化' &&or.opp.Oly_Inquiry_Stage__c != '医院合同金额发生了变化' && or.opp.Oly_Inquiry_Stage__c != '订货金额发生了变化')))}" value="{!or.opp[c[0]]}" /> --> or.opp.Oly_Inquiry_Stage__c != '询价阶段发生了变化' &&or.opp.Oly_Inquiry_Stage__c != '预测签约日发生了变化' &&or.opp.Oly_Inquiry_Stage__c != '医院合同金额发生了变化' && or.opp.Oly_Inquiry_Stage__c != '订货金额发生了变化')))}" value="{!or.opp[c[0]]}" /> --> <!-- <div style ="color:red"> --> <!-- <apex:outputField id="q2222222" rendered="{!(c.size==1 && columnRightRW[c[0]]=='r' && or.opp.Id <> null && c[0] <> 'Name' && c[0] == 'Opp_Changed_Field__c' && ( or.opp.Opp_Changed_Field__c == '询价阶段发生了变化' || or.opp.Opp_Changed_Field__c == '预测签约日发生了变化' || or.opp.Opp_Changed_Field__c == '医院合同金额发生了变化' || or.opp.Opp_Changed_Field__c == '订货金额发生了变化'))}" value="{!or.opp[c[0]]}" /> --> or.opp.Opp_Changed_Field__c == '询价阶段发生了变化' || or.opp.Opp_Changed_Field__c == '预测签约日发生了变化' || or.opp.Opp_Changed_Field__c == '医院合同金额发生了变化' || or.opp.Opp_Changed_Field__c == '订货金额发生了变化'))}" value="{!or.opp[c[0]]}" /> --> <!-- <apex:outputField id="q2222222" rendered="{!(c.size==1 && columnRightRW[c[0]]=='r' && c[0] <> 'Name' && c[0] == 'StageName__c' && ( or.opp.Oly_Inquiry_Stage__c == '询价阶段发生了变化' || or.opp.Oly_Inquiry_Stage__c == '预测签约日发生了变化' || or.opp.Oly_Inquiry_Stage__c == '医院合同金额发生了变化' || or.opp.Oly_Inquiry_Stage__c == '订货金额发生了变化'))}" value="{!or.opp[c[0]]}" /> </div> --> </div> --> <!-- <apex:inputField rendered="{!(c.size==1 && columnRightRW[c[0]]=='w' && or.opp.Id <> null && c[0] <> 'Name')}" value="{!or.opp[c[0]]}" onchange="setChangeFlgRight('{!or.lineNo}')"/> <apex:outputPanel rendered="{!(c.size==1 && columnRightRW[c[0]]=='wm' && c[0] <> 'Name' && or.opp.Id <> null)}" layout="none"> <div class="requiredInput_r"> <div class="requiredBlock_r"></div> <apex:inputField value="{!or.Opp[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/> </div> <apex:outputPanel rendered="{!(c.size==1 && columnRightRW[c[0]]=='wm' && c[0] <> 'Name' && or.opp.Id <> null)}" layout="none"> <div class="requiredInput_r"> <div class="requiredBlock_r"></div> <apex:inputField value="{!or.Opp[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')"/> </div> </apex:outputPanel> --> <apex:outputField rendered="{!c[0] == 'Strategic_department_Class_Name__c'}" @@ -646,6 +727,7 @@ /> <apex:inputField styleClass="slds-form-element" rendered="{!( columnRightRW[c[0]]=='w' && c[0] <> 'Strategic_department_Class_Name__c' && c[0] <> 'Change_To_Opportunity_T__c' && c[0] <> 'Name')}" value="{!or.opp[c[0]]}" onchange="setChangeFlgRight('{!or.lineNo}')" @@ -657,6 +739,7 @@ <div class="requiredInput_r"> <div class="requiredBlock_r"></div> <apex:inputField styleClass="slds-form-element" value="{!or.Opp[c[0]]}" onchange="setChangeFlg('{!or.lineNo}')" /> @@ -707,7 +790,7 @@ style=" border-bottom-width: 0px; width: 2000px; font-size: 11px; font-size: 13px; border-spacing: 0; " border="" @@ -717,6 +800,7 @@ <apex:repeat value="{!oppRecords}" var="or" id="oppTable_L"> <tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}" style="height: 35px" onmouseover="if (window.hiOn){hiOn(this);} " onmouseout="if (window.hiOff){hiOff(this);} " onblur="if (window.hiOff){hiOff(this);}" @@ -764,10 +848,11 @@ <!-- OCSM询价 --> <!-- <apex:outputLink target="_blank" rendered="{!c[0]=='Change_To_Opportunity__c'}" value="/{!or.AgcOpp[c[0]]}" > <apex:outputText value="{!or.AgcOpp.Agency__r.Name }" /> </apex:outputLink> --> </apex:outputLink> --> <!-- 必填字段 --> <!-- <apex:outputField rendered="{!(c[0]<>'Name' && c[0]<>'Agency_Hospital__c' && c[0]<>'Product_Category1__c' && c[0]<>'Product_Category2__c' && c[0]<>'Product_Category3__c' && c[0]<>'Agency_Person__c' && c[0]<>'Agency__c' && c[0]<>'Change_To_Opportunity__c' && columnLeftRW[c[0]]=='wm')}" value="{!or.AgcOpp[c[0]] }"/> --> <apex:inputField styleClass="slds-form-element" rendered="{!(c[0]<>'Name' && c[0]<>'Product_Category1__c' && c[0]<>'Product_Category2__c' && c[0]<>'Product_Category3__c' && c[0]<>'Agency_Person__c' && c[0]<>'Agency__c' && c[0]<>'Change_To_Opportunity__c' && columnLeftRW[c[0]]=='wm')}" value="{!or.AgcOpp[c[0]] }" onchange="setChangeFlg('{!or.lineNo}')" @@ -781,6 +866,7 @@ <!-- <apex:outputField rendered="{!(c[0]<>'Name' && columnLeftRW[c[0]]<>'w')}" value="{!or.AgcOpp[c[0]] }"/> --> <!-- 可编辑的字段 --> <apex:inputField styleClass="slds-form-element" value="{!or.AgcOpp[c[0]]}" rendered="{!columnLeftRW[c[0]]=='w'}" onchange="setChangeFlg('{!or.lineNo}')" @@ -797,6 +883,7 @@ <!-- /in_Div --> </apex:outputPanel> </apex:pageBlock> <!-- </div> --> <script type="text/javascript"> j$(function () { var tableWidth = 0; @@ -816,6 +903,7 @@ // list の headerRow の tdに toggleWidth() を追加 bindTdToggleWidth(); // j$("input").attr("styleClass","slds-input"); }); var elements = document.getElementsByTagName("select"); for (i = 0; i < elements.length; i++) { force-app/main/default/pages/DealerInquiryModifyState.page-meta.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" ?> <ApexPage xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>35.0</apiVersion> <apiVersion>39.0</apiVersion> <availableInTouch>true</availableInTouch> <confirmationTokenRequired>false</confirmationTokenRequired> <label>DealerInquiryModifyState</label> force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger
@@ -333,14 +333,11 @@ update consumableOrderlist; } } //Back up by DTT - Li Jun 2023-06-14 Start for reduce soql times // 2018年8月9日 HWAG-B3D9UV 获取所有的record ID start by 张玉山 List<RecordType> allrtList = [ SELECT Id, DeveloperName FROM RecordType WHERE SobjectType = 'Consumable_orderdetails__c' ]; //List<RecordType> allrtList = [select Id,DeveloperName from RecordType where SobjectType = 'Consumable_orderdetails__c']; // 2018年8月9日 HWAG-B3D9UV 获取所有的record ID end by 张玉山 //Back up by DTT - Li Jun 2023-06-14 Start //到货和返品时,生成或修改消费品订货明细 Set<String> arrivedSet = new Set<String>(); Set<String> returnSet = new Set<String>(); @@ -437,22 +434,27 @@ ar.get('Asset_Model_No__c'); keyCount.put(key, Integer.valueOf(ar.get('recordCount'))); } //Back up by DTT - Li Jun 2023-06-14 Start // 2018年8月9日 HWAG-B3D9UV 替代下面SQL select start by 张玉山 List<RecordType> rtList = new List<RecordType>(); for (RecordType rtl : allrtList) { if ('Detail1_Arrival'.equals(rtl.DeveloperName)) { rtList.add(rtl); } } // List<RecordType> rtList = new List<RecordType>(); // for(RecordType rtl : allrtList){ // if('Detail1_Arrival'.equals(rtl.DeveloperName)){ // rtList.add(rtl); // } // } // 2018年8月9日 HWAG-B3D9UV 替代下面SQL select end by 张玉山 //Back up by DTT - Li Jun 2023-06-14 End /* 2018年8月9日 HWAG-B3D9UV 原获取 recordtype start by 张玉山 List<RecordType> rtList = [select Id from RecordType where DeveloperName = 'Detail1_Arrival' and SobjectType = 'Consumable_orderdetails__c']; 2018年8月9日 HWAG-B3D9UV 原获取 recordtype end by 张玉山 */ Id recordTypeId = null; if (rtList.size() > 0) recordTypeId = rtList[0].Id; //Back up by DTT - Li Jun 2023-06-14 Start // Id recordTypeId = null; // if (rtList.size() > 0) recordTypeId = rtList[0].Id; //Back up by DTT - Li Jun 2023-06-14 End Id recordtypeId = Schema.SObjectType.Consumable_Orderdetails__c.getRecordTypeInfosByDeveloperName() .get('Detail1_Arrival') .getRecordTypeId(); results = [ SELECT Consumable_order__c, count(Id) noCount FROM Consumable_orderdetails__c @@ -695,23 +697,24 @@ ar.get('Asset_Model_No__c'); keyCount.put(key, Integer.valueOf(ar.get('recordCount'))); } //Back up by DTT - Li Jun 2023-06-14 Start for reduce soql times // 2018年8月9日 HWAG-B3D9UV 替代下面SQL select start by 张玉山 List<RecordType> rtList = new List<RecordType>(); for (RecordType rtl : allrtList) { if ('Detail1_ReturnGoods'.equals(rtl.DeveloperName)) { rtList.add(rtl); } } // List<RecordType> rtList = new List<RecordType>(); // for(RecordType rtl : allrtList){ // if('Detail1_ReturnGoods'.equals(rtl.DeveloperName)){ // rtList.add(rtl); // } // } // 2018年8月9日 HWAG-B3D9UV 替代下面SQL select end by 张玉山 //Back up by DTT - Li Jun 2023-06-14 End /* 2018年8月9日 HWAG-B3D9UV 原获取 recordtype start by 张玉山 List<RecordType> rtList = [select Id from RecordType where DeveloperName = 'Detail1_ReturnGoods' and SobjectType = 'Consumable_orderdetails__c']; 2018年8月9日 HWAG-B3D9UV 原获取 recordtype end by 张玉山 */ Id recordTypeId = null; if (rtList.size() > 0) recordTypeId = rtList[0].Id; Id recordTypeId = Schema.SObjectType.Consumable_Orderdetails__c.getRecordTypeInfosByDeveloperName() .get('Detail1_ReturnGoods') .getRecordTypeId(); //if (rtList.size() > 0) recordTypeId = rtList[0].Id; results = [ SELECT Consumable_order__c, count(Id) noCount force-app/main/default/triggers/ConsumableOrderDetail2Trigger.trigger-meta.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> <ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>40.0</apiVersion> <apiVersion>50.0</apiVersion> <status>Active</status> </ApexTrigger>