|
|
@ -64,6 +64,11 @@ const GHproductTypeListSetting = {
|
|
|
|
se: ['东南亚跨国', '泰国', '越南', '印度尼西亚', '水灯节', '柬埔寨', '老挝'],
|
|
|
|
se: ['东南亚跨国', '泰国', '越南', '印度尼西亚', '水灯节', '柬埔寨', '老挝'],
|
|
|
|
in: ['印度', '印度次大陆跨国', '尼泊尔', '不丹', '斯里兰卡'],
|
|
|
|
in: ['印度', '印度次大陆跨国', '尼泊尔', '不丹', '斯里兰卡'],
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
const GHCountryListSetting = {
|
|
|
|
|
|
|
|
ja: ['日本', ],
|
|
|
|
|
|
|
|
se: ['泰国', '越南', '印度尼西亚', '水灯节', '柬埔寨', '老挝', '新加坡', '马来西亚', '菲律宾'],
|
|
|
|
|
|
|
|
in: ['印度', '印度次大陆跨国', '尼泊尔', '不丹', '斯里兰卡'],
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const rowItem = (filterData) => {
|
|
|
|
const rowItem = (filterData) => {
|
|
|
|
const { data: dataByLineClass, summaryMix: summaryByLineClass } = pivotBy(filterData, [['COLI_LineClass'], [], []]);
|
|
|
|
const { data: dataByLineClass, summaryMix: summaryByLineClass } = pivotBy(filterData, [['COLI_LineClass'], [], []]);
|
|
|
@ -122,12 +127,27 @@ const dataGHOther = (rawData, yearData) => {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const dataSales = (tKey, rawData, yearData, yearData2) => {
|
|
|
|
const dataSales = (tKey, rawData, yearData, yearData2) => {
|
|
|
|
const productTypeList = GHproductTypeListSetting[tKey];
|
|
|
|
const targetList = GHCountryListSetting[tKey];
|
|
|
|
const filterData = rawData.filter((ele) => productTypeList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1));
|
|
|
|
const tIndex = Object.keys(GHCountryListSetting).indexOf(tKey);
|
|
|
|
const filterDataYear = yearData.filter((ele) => productTypeList.some((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) !== -1));
|
|
|
|
const exceptTargetList = Object.keys(GHCountryListSetting).reduce((r, c, i) => r.concat(i < tIndex ? GHCountryListSetting[c] : []), []);
|
|
|
|
const rowYearData = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear.reduce((a, c) => a + price_to_number(c[key]), 0) }), {});
|
|
|
|
// 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 rowYearData2 = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear2.reduce((a, c) => a + price_to_number(c[key]), 0) }), {});
|
|
|
|
const rowYear = {
|
|
|
|
const rowYear = {
|
|
|
|
YJLY: price_to_number(rowYearData.YJLY), CJCount: rowYearData.CJCount,
|
|
|
|
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) }), {});
|
|
|
|
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);
|
|
|
|
// 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 dataSalesGHOther = (rawData, yearData, yearData2) => {
|
|
|
|
const exceptProduct = Object.values(GHproductTypeListSetting).reduce((r, c) => r.concat(c), []);
|
|
|
|
const exceptContry = Object.values(GHCountryListSetting).reduce((r, c) => r.concat(c), []);
|
|
|
|
const filterData = rawData.filter((ele) => exceptProduct.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1));
|
|
|
|
// console.log('OOoo rawData', rawData.map(e => e.destinationCountry_AsJOSN));
|
|
|
|
const filterDataYear = yearData.filter((ele) => exceptProduct.every((item) => ele.OrderType.toLocaleLowerCase().indexOf(item) === -1));
|
|
|
|
const filterData = rawData
|
|
|
|
const rowYearData = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear.reduce((a, c) => a + price_to_number(c[key]), 0) }), {});
|
|
|
|
.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 rowYearData2 = ['YJLY', 'CJCount'].reduce((r, key) => ({ ...r, [key]: filterDataYear2.reduce((a, c) => a + price_to_number(c[key]), 0) }), {});
|
|
|
|
|
|
|
|
|
|
|
|
const rowYear = {
|
|
|
|
const rowYear = {
|
|
|
@ -152,9 +182,8 @@ const dataSalesGHOther = (rawData, yearData, yearData2) => {
|
|
|
|
YJLY2: price_to_number(rowYearData2.YJLY), CJCount2: rowYearData2.CJCount,
|
|
|
|
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);
|
|
|
|
// 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 {
|
|
|
|
class MeetingData {
|
|
|
@ -234,13 +263,13 @@ class MeetingData {
|
|
|
|
const salesParam = { ...param, DateType: 'confirmDate', 'WebCode': 'All', };
|
|
|
|
const salesParam = { ...param, DateType: 'confirmDate', 'WebCode': 'All', };
|
|
|
|
// console.log(param);
|
|
|
|
// console.log(param);
|
|
|
|
const { total1: CHSalesDataWeek } = await getDepartmentOrderMLByType({...salesParam, DepartmentList: '1', OrderType:'ALL'});
|
|
|
|
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 yearStart = moment().startOf("year").format(DATE_FORMAT);
|
|
|
|
const yearEnd = moment().endOf("year").format(SMALL_DATETIME_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 { total1: CHDataYear } = await getDepartmentOrderMLByType({...salesParam, Date1: yearStart, DepartmentList: '1', OrderType:'ALL' });
|
|
|
|
const { ordercount1: ColLineClassDataYear } = await getOrderCountByType({ ...salesParam, Date1: yearStart,Date2:yearEnd, 'DepartmentList': '28,33', WebCode: 'All', OrderType: 'Product' });
|
|
|
|
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 { 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' });
|
|
|
|
const { ordercount1: GHStartDataYear } = await getOrderCountByType({ ...salesParam, Date1: yearStart,Date2:yearEnd, DepartmentList: '28,33', WebCode: 'All', OrderType: 'Product', DateType: 'startDate' });
|
|
|
|