|
|
|
@ -18,5 +18,350 @@ export function formatToDate(date?: dayjs.ConfigType, format = DATE_FORMAT): str
|
|
|
|
|
export function getDateByPrevMonth(date?: dayjs.ConfigType, format = DATE_FORMAT): string {
|
|
|
|
|
return dayjs(date).subtract(1, 'month').endOf('month').format(format)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const dateUtil = dayjs
|
|
|
|
|
|
|
|
|
|
//获取reportDate
|
|
|
|
|
export function getReportDateOfValue(row,field){
|
|
|
|
|
let resultDate = row.paramDate;
|
|
|
|
|
//上期值
|
|
|
|
|
if(field == 'prevPeriodValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
//日报 : 上期取前一天数据
|
|
|
|
|
case '0':
|
|
|
|
|
var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length);
|
|
|
|
|
var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/")));
|
|
|
|
|
dateTime.setDate(dateTime.getDate() - 1);
|
|
|
|
|
var year = dateTime.getFullYear();
|
|
|
|
|
var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1;
|
|
|
|
|
var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate();
|
|
|
|
|
resultDate = year + "" + month + "" + day;
|
|
|
|
|
break;
|
|
|
|
|
//旬报:上期取上月同一期
|
|
|
|
|
case '1':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var partOfMonth = resultDate.substring(6,resultDate.length);
|
|
|
|
|
if(parseInt(month) == 1){
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "12" + partOfMonth;
|
|
|
|
|
}else{
|
|
|
|
|
var stringMonth = parseInt(month) - 1;
|
|
|
|
|
resultDate = stringYear + '' + stringMonth + '' + partOfMonth;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
//月报:上期取上个月
|
|
|
|
|
case '2':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var stringMonth = parseInt(month) - 1;
|
|
|
|
|
if(stringMonth == 0){
|
|
|
|
|
stringYear = parseInt(stringYear) - 1;
|
|
|
|
|
stringMonth = "12";
|
|
|
|
|
}
|
|
|
|
|
if (stringMonth < 10) {
|
|
|
|
|
stringMonth = '0' + stringMonth;
|
|
|
|
|
}
|
|
|
|
|
resultDate = stringYear + '' + stringMonth + "00";
|
|
|
|
|
break;
|
|
|
|
|
//季报:上期取上季度
|
|
|
|
|
case '3':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
if(parseInt(month) <= 3){
|
|
|
|
|
var stringYear = parseInt(year)-1;
|
|
|
|
|
resultDate = stringYear + "1200";
|
|
|
|
|
}else if(parseInt(month) > 3 && parseInt(month) <= 6){
|
|
|
|
|
resultDate = year + "0300";
|
|
|
|
|
}else if(parseInt(month) > 6 && parseInt(month) <= 9){
|
|
|
|
|
resultDate = year + "0600";
|
|
|
|
|
}else if(parseInt(month) > 9 && parseInt(month) <= 12){
|
|
|
|
|
resultDate = year + "0900";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
//半年报:上期取
|
|
|
|
|
case '4':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
if(parseInt(month) <= 6 ){
|
|
|
|
|
var stringYear = parseInt(year)-1;
|
|
|
|
|
resultDate = stringYear + "1200";
|
|
|
|
|
}else if(parseInt(month) > 6 && parseInt(month) <= 12){
|
|
|
|
|
resultDate = year + "0600";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
//年报:上期取上一年
|
|
|
|
|
case '5':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
var stringYear = parseInt(year)-1;
|
|
|
|
|
resultDate = stringYear + '' + resultDate.substring(4,resultDate.length);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//年初值
|
|
|
|
|
if(field == 'yearAtFirstValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
case '0':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
case '1':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
case '5':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "1200";
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//上年同期
|
|
|
|
|
if(field == 'prevYearValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
//日报:上年同期取上年同一天
|
|
|
|
|
case '0':
|
|
|
|
|
// var year = resultDate.substring(0,4);
|
|
|
|
|
// var month = resultDate.substring(4,6);
|
|
|
|
|
// var day = resultDate.substring(6,resultDate.length);
|
|
|
|
|
// var stringYear = parseInt(year) - 1;
|
|
|
|
|
// resultDate = stringYear + month + day;
|
|
|
|
|
var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length);
|
|
|
|
|
var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/")));
|
|
|
|
|
dateTime.setFullYear(dateTime.getFullYear() - 1);
|
|
|
|
|
var year = dateTime.getFullYear();
|
|
|
|
|
var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1;
|
|
|
|
|
var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate();
|
|
|
|
|
resultDate = year + "" + month + "" + day;
|
|
|
|
|
break;
|
|
|
|
|
//旬报;上年同期取上年同月
|
|
|
|
|
case '1':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + '' + resultDate.substring(4,resultDate.length);
|
|
|
|
|
break;
|
|
|
|
|
//月报:上年同期取上年同月
|
|
|
|
|
case '2':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var stringYear = parseInt(year) - 1;
|
|
|
|
|
resultDate = stringYear + '' + month + "00";
|
|
|
|
|
break;
|
|
|
|
|
//季报:上年同期取上年同季度
|
|
|
|
|
case '3':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var stringYear = parseInt(year) - 1;
|
|
|
|
|
resultDate = stringYear + '' + month + "00";
|
|
|
|
|
break;
|
|
|
|
|
//半年报:上年同期取
|
|
|
|
|
case '4':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
// var month = resultDate.substring(4,6);
|
|
|
|
|
var stringYear = parseInt(year) - 1;
|
|
|
|
|
// resultDate = stringYear + month + "00";
|
|
|
|
|
resultDate = stringYear + '' + resultDate.substring(4,resultDate.length);
|
|
|
|
|
break;
|
|
|
|
|
//年报:
|
|
|
|
|
case '5':
|
|
|
|
|
var year = resultDate.substring(0,4);
|
|
|
|
|
// var month = resultDate.substring(4,6);
|
|
|
|
|
var stringYear = parseInt(year)-1;
|
|
|
|
|
// resultDate = stringYear + month + "00";
|
|
|
|
|
resultDate = stringYear + '' + resultDate.substring(4,resultDate.length);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//上日值
|
|
|
|
|
if(field == 'cprevDayValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
//日报:
|
|
|
|
|
case '0':
|
|
|
|
|
var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length);
|
|
|
|
|
var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/")));
|
|
|
|
|
dateTime.setDate(dateTime.getDate() - 1);
|
|
|
|
|
var year = dateTime.getFullYear();
|
|
|
|
|
var month = dateTime.getMonth() + 1 < 10 ? "0" + (dateTime.getMonth() + 1) : dateTime.getMonth() + 1;
|
|
|
|
|
var day = dateTime.getDate() < 10 ? "0" + dateTime.getDate() : dateTime.getDate();
|
|
|
|
|
resultDate = year + "" + month + "" + day;
|
|
|
|
|
break;
|
|
|
|
|
case '1':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '5':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//上月值
|
|
|
|
|
if(field == 'cprevMonthValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
//日报:
|
|
|
|
|
case '0':
|
|
|
|
|
//上月值取上月月末最后一日数据(保持跟后台一致)
|
|
|
|
|
var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length);
|
|
|
|
|
var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/")));
|
|
|
|
|
var year = dateTime.getFullYear();
|
|
|
|
|
var month = dateTime.getMonth();
|
|
|
|
|
if (month == 0) {
|
|
|
|
|
month = 12;
|
|
|
|
|
year = year - 1;
|
|
|
|
|
}
|
|
|
|
|
if (month < 10) {
|
|
|
|
|
month = '0' + month;
|
|
|
|
|
}
|
|
|
|
|
var myDate = new Date(year, month, 0);
|
|
|
|
|
resultDate = year + "" + month + "" + myDate.getDate();
|
|
|
|
|
//上月值取上月同一天
|
|
|
|
|
// var dateString = resultDate.substring(0,4) + "-" + resultDate.substring(4,6) + "-" +resultDate.substring(6,resultDate.length);
|
|
|
|
|
// var dateTime = new Date(Date.parse(dateString.replace(/-/g, "/")));
|
|
|
|
|
// var year = dateTime.getFullYear();
|
|
|
|
|
// var month = dateTime.getMonth() + 1;
|
|
|
|
|
// var day = dateTime.getDate();
|
|
|
|
|
// if(parseInt(month) < 10){
|
|
|
|
|
// month = "0" + month;
|
|
|
|
|
// }
|
|
|
|
|
// if(parseInt(day) < 10){
|
|
|
|
|
// day = "0" + day;
|
|
|
|
|
// }
|
|
|
|
|
// resultDate = year + month + day;
|
|
|
|
|
// var preMonth = parseInt(month) - 1;
|
|
|
|
|
// preMonth = preMonth < 10 ? "0" + preMonth : preMonth;
|
|
|
|
|
// var preMonthDays = new Date(year, parseInt(month) - 1, 0).getDate();
|
|
|
|
|
// if(preMonthDays < parseInt(day)){
|
|
|
|
|
// resultDate = year + preMonth + preMonthDays;
|
|
|
|
|
// }
|
|
|
|
|
// if(parseInt(month) == 1){
|
|
|
|
|
// resultDate = parseInt(year) + "12" + day;
|
|
|
|
|
// }
|
|
|
|
|
break;
|
|
|
|
|
//旬报
|
|
|
|
|
case '1':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var partOfMonth = resultDate.substring(6,resultDate.length);
|
|
|
|
|
if(parseInt(month) == 1){
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "12" + partOfMonth;
|
|
|
|
|
}else{
|
|
|
|
|
var stringMonth = parseInt(month) - 1;
|
|
|
|
|
resultDate = stringYear + '' + stringMonth + '' + partOfMonth;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
//月报
|
|
|
|
|
case '2':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
var stringMonth = parseInt(month) - 1;
|
|
|
|
|
if(stringMonth == 0){
|
|
|
|
|
stringYear = parseInt(stringYear) - 1;
|
|
|
|
|
stringMonth = "12";
|
|
|
|
|
}
|
|
|
|
|
if (stringMonth < 10) {
|
|
|
|
|
stringMonth = '0' + stringMonth;
|
|
|
|
|
}
|
|
|
|
|
resultDate = stringYear + '' + stringMonth + "00";
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '5':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//上季值
|
|
|
|
|
if(field == 'cprevQuarterValue'){
|
|
|
|
|
switch (row.frequency) {
|
|
|
|
|
//日报:取上季度末最后一天值
|
|
|
|
|
case '0':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
if((parseInt(month)) <= 3){
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "12"+"31";
|
|
|
|
|
}else if((parseInt(month)) > 3 && (parseInt(month)) <= 6){
|
|
|
|
|
resultDate = stringYear + "03"+"31";
|
|
|
|
|
}else if((parseInt(month)) > 6 && (parseInt(month)) <= 9){
|
|
|
|
|
resultDate = stringYear + "06"+"30";
|
|
|
|
|
}else if((parseInt(month)) > 9 && (parseInt(month)) <= 12){
|
|
|
|
|
resultDate = stringYear + "09"+"30";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '1':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '2':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '3':
|
|
|
|
|
var stringYear = resultDate.substring(0,4);
|
|
|
|
|
var month = resultDate.substring(4,6);
|
|
|
|
|
if((parseInt(month)) <= 3){
|
|
|
|
|
var year = parseInt(stringYear) - 1;
|
|
|
|
|
resultDate = year + "12"+"00";
|
|
|
|
|
}else if((parseInt(month)) > 3 && (parseInt(month)) <= 6){
|
|
|
|
|
resultDate = stringYear + "03"+"00";
|
|
|
|
|
}else if((parseInt(month)) > 6 && (parseInt(month)) <= 9){
|
|
|
|
|
resultDate = stringYear + "06"+"00";
|
|
|
|
|
}else if((parseInt(month)) > 9 && (parseInt(month)) <= 12){
|
|
|
|
|
resultDate = stringYear + "09"+"00";
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case '4':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
case '5':
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
resultDate = row.paramDate;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return resultDate;
|
|
|
|
|
}
|
|
|
|
|