From 854c4a5ebc4608bae1952f281568c0332c30eab1 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Mon, 20 May 2024 11:52:01 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20GH=E4=BE=8B=E4=BC=9A:=20=E9=A1=BE?= =?UTF-8?q?=E9=97=AE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/MeetingData.js | 61 +++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/src/stores/MeetingData.js b/src/stores/MeetingData.js index bb889f8..f538c4b 100644 --- a/src/stores/MeetingData.js +++ b/src/stores/MeetingData.js @@ -64,6 +64,11 @@ const GHproductTypeListSetting = { se: ['东南亚跨国', '泰国', '越南', '印度尼西亚', '水灯节', '柬埔寨', '老挝'], in: ['印度', '印度次大陆跨国', '尼泊尔', '不丹', '斯里兰卡'], }; +const GHCountryListSetting = { + ja: ['日本', ], + se: ['泰国', '越南', '印度尼西亚', '水灯节', '柬埔寨', '老挝', '新加坡', '马来西亚', '菲律宾'], + in: ['印度', '印度次大陆跨国', '尼泊尔', '不丹', '斯里兰卡'], +}; const rowItem = (filterData) => { const { data: dataByLineClass, summaryMix: summaryByLineClass } = pivotBy(filterData, [['COLI_LineClass'], [], []]); @@ -122,12 +127,27 @@ const dataGHOther = (rawData, yearData) => { }; const dataSales = (tKey, rawData, yearData, yearData2) => { - const productTypeList = GHproductTypeListSetting[tKey]; - const filterData = rawData.filter((ele) => productTypeList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1)); - const filterDataYear = yearData.filter((ele) => productTypeList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1)); - const rowYearData = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); + const targetList = GHCountryListSetting[tKey]; + const tIndex = Object.keys(GHCountryListSetting).indexOf(tKey); + const exceptTargetList = Object.keys(GHCountryListSetting).reduce((r, c, i) => r.concat(i < tIndex ? GHCountryListSetting[c] : []), []); + // console.log(tIndex, tKey, 'exceptTargetList', exceptTargetList, 'targetList', targetList); - const filterDataYear2 = yearData2.filter((ele) => productTypeList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1)); + const filterRaw1 = rawData.filter((ele) => exceptTargetList.every((item) => !ele.destinationCountry_AsJOSN.includes(item))); + // console.log(tKey, 'filterRaw1', filterRaw1); + const filterDataC = filterRaw1.filter((ele) => targetList.some((item) => ele.destinationCountry_AsJOSN.includes(item))); + const filterDataT = tKey === 'se' ? filterRaw1.filter((ele) => ['泰国水灯节'].some((item) => ele.productType.toLocaleLowerCase().indexOf(item) !== -1)) : []; + const filterData = filterDataC.concat(filterDataT); + const CJCount = filterData.length; // filterData.reduce((r, c) => r + c.CJCount, 0); + const YJLY = filterData.reduce((r, c) => r + price_to_number(c.ML), 0); + + const filterRaw2 = yearData.filter((ele) => exceptTargetList.every((item) => !ele.destinationCountry_AsJOSN.includes(item))); + const filterDataYearC = filterRaw2.filter((ele) => targetList.some((item) => ele.destinationCountry_AsJOSN.includes(item))); + const filterDataYearT = tKey === 'se' ? filterRaw2.filter((ele) => ['泰国水灯节'].some((item) => ele.productType.toLocaleLowerCase().indexOf(item) !== -1)) : []; + const filterDataYear = filterDataYearC.concat(filterDataYearT); + const rowYearData = { CJCount: filterDataYear.length, YJLY: filterDataYear.reduce((r, c) => r + price_to_number(c.ML), 0) }; + // console.log(tKey, filterDataYear.map(ee => ee.destinationCountry_AsJOSN), filterDataYear.map(ee => ee.productType), filterDataYear); + + const filterDataYear2 = yearData2.filter((ele) => targetList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1)); const rowYearData2 = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear2.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); const rowYear = { YJLY: price_to_number(rowYearData.YJLY), CJCount: rowYearData.CJCount, @@ -136,15 +156,25 @@ const dataSales = (tKey, rawData, yearData, yearData2) => { const cols = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterData.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); // console.log(tKey, filterData, filterDataYear, filterDataYear2); - return { ...cols, rowYear, rawData: filterData, rawYearData: filterDataYear, rawYearData2: filterDataYear2 }; + return { ...cols, CJCount, YJLY, rowYear, rawData: filterData, rawYearData: filterDataYear, rawYearData2: filterDataYear2 }; }; const dataSalesGHOther = (rawData, yearData, yearData2) => { - const exceptProduct = Object.values(GHproductTypeListSetting).reduce((r, c) => r.concat(c), []); - const filterData = rawData.filter((ele) => exceptProduct.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1)); - const filterDataYear = yearData.filter((ele) => exceptProduct.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1)); - const rowYearData = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); + const exceptContry = Object.values(GHCountryListSetting).reduce((r, c) => r.concat(c), []); + // console.log('OOoo rawData', rawData.map(e => e.destinationCountry_AsJOSN)); + const filterData = rawData + .filter((ele) => ['泰国水灯节'].every((item) => ele.productType.toLocaleLowerCase().indexOf(item) === -1)) + .filter((ele) => exceptContry.every((item) => !ele.destinationCountry_AsJOSN.includes(item))); + // console.log('OOoo', filterData.map(e => e.destinationCountry_AsJOSN), filterData.map(e => e.productType)); + const CJCount = filterData.length; // filterData.reduce((r, c) => r + c.CJCount, 0); + const YJLY = filterData.reduce((r, c) => r + price_to_number(c.ML), 0); - const filterDataYear2 = yearData2.filter((ele) => exceptProduct.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1)); + const filterDataYear = yearData + .filter((ele) => ['泰国水灯节'].every((item) => ele.productType.toLocaleLowerCase().indexOf(item) === -1)) + .filter((ele) => exceptContry.every((item) => !ele.destinationCountry_AsJOSN.includes(item))); + const rowYearData = { CJCount: filterDataYear.length, YJLY: filterDataYear.reduce((r, c) => r + price_to_number(c.ML), 0) }; + // console.log('OOoo year', filterDataYear.map(e => e.destinationCountry_AsJOSN), filterDataYear.map(e => e.productType)); + + const filterDataYear2 = yearData2.filter((ele) => exceptContry.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1)); const rowYearData2 = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear2.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); const rowYear = { @@ -152,9 +182,8 @@ const dataSalesGHOther = (rawData, yearData, yearData2) => { YJLY2: price_to_number(rowYearData2.YJLY), CJCount2: rowYearData2.CJCount, }; - const cols = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterData.reduce((a, c) => a + price_to_number(c[key]), 0) }), {}); // console.log('Oo', filterData, filterDataYear, filterDataYear2); - return { ...cols, rowYear, rawData: filterData, rawYearData: filterDataYear, rawYearData2: filterDataYear2 }; + return { CJCount, YJLY, rowYear, rawData: filterData, rawYearData: filterDataYear, rawYearData2: filterDataYear2 }; }; class MeetingData { @@ -234,13 +263,13 @@ class MeetingData { const salesParam = { ...param, DateType: 'confirmDate', 'WebCode': 'All', }; // console.log(param); const { total1: CHSalesDataWeek } = await getDepartmentOrderMLByType({...salesParam, DepartmentList: '1', OrderType:'ALL'}); - const { ordercount1: exceptCHSalesDataWeek } = await getOrderCountByType({ ...salesParam, 'DepartmentList': '28,33', 'WebCode': 'All', OrderType: 'Product' }); + const exceptCHSalesDataWeek = await getDetailData({ ...salesParam, 'DepartmentList': '28,33' }); const yearStart = moment().startOf("year").format(DATE_FORMAT); const yearEnd = moment().endOf("year").format(SMALL_DATETIME_FORMAT); /** 截至今年 - 成交 */ - const { total1: CHDataYear } = await getDepartmentOrderMLByType({...salesParam, Date1: yearStart,Date2:yearEnd,DepartmentList: '1', OrderType:'ALL' }); - const { ordercount1: ColLineClassDataYear } = await getOrderCountByType({ ...salesParam, Date1: yearStart,Date2:yearEnd, 'DepartmentList': '28,33', WebCode: 'All', OrderType: 'Product' }); + const { total1: CHDataYear } = await getDepartmentOrderMLByType({...salesParam, Date1: yearStart, DepartmentList: '1', OrderType:'ALL' }); + const ColLineClassDataYear = await getDetailData({ ...salesParam, Date1: yearStart, 'DepartmentList': '28,33' }); /** 截至今年 - 走团 */ const { total1: CHStartDataYear } = await getDepartmentOrderMLByType({...salesParam, Date1: yearStart,Date2:yearEnd,DepartmentList: '1', OrderType:'ALL',DateType: 'startDate' }); const { ordercount1: GHStartDataYear } = await getOrderCountByType({ ...salesParam, Date1: yearStart,Date2:yearEnd, DepartmentList: '28,33', WebCode: 'All', OrderType: 'Product', DateType: 'startDate' });