Преглед изворни кода

Merge remote-tracking branch 'origin/master'

chen пре 5 година
родитељ
комит
6cf664042f
1 измењених фајлова са 501 додато и 12 уклоњено
  1. 501 12
      app/service/tGovernmentStatistics.js

+ 501 - 12
app/service/tGovernmentStatistics.js

@@ -264,8 +264,7 @@ class TGovernmentStatisticsService extends CrudService {
         let dateType = payload.dateType || '2';
         let {startTime, endTime} = this.getTime(payload, dateType);
         let timeArray = this.getTimeArray(startTime, endTime, dateType);
-
-        const agg = [
+        const fAgg = [
             {
                 $project: {
                     orcredit: 1,
@@ -335,8 +334,79 @@ class TGovernmentStatisticsService extends CrudService {
             },
 
         ];
+        const iAgg = [
+            {
+                $project: {
+                    orcredit: '$creditStatus',
+                    money: {
+                        $toDouble: '$credit_money'
+                    },
+                    time: {
+                        $toLong: '$credit_time'
+                    },
+                    year: {
+                        $year: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+                    month: {
+                        $month: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+                    day: {
+                        $dayOfMonth: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+
+                },
+
+            },
+            {
+                $match: this.getTimeMatch("2", {startTime, endTime}, payload),
+
+            },
+            {
+                $group: this.getTimeGroup("2", dateType)
+            },
+            {
+                $sort: this.getTimeSort(dateType)
+            },
+            {
+                $project: {
+                    _id: 0,
+                    value: 1,
+                    label: this.getTimeLabel(dateType)
+                },
+
+            },
 
-        let tempData = await this.fModel.aggregate(agg);
+        ];
+        let fData = await this.fModel.aggregate(fAgg);
+        let iData = await this.intelligentFollowModel.aggregate(iAgg);
+        let tempData = [...fData, ...iData];
         let data = this.formatTimeData(timeArray, tempData);
         return data;
     }
@@ -619,7 +689,7 @@ class TGovernmentStatisticsService extends CrudService {
         let {startTime, endTime} = this.getTime(payload, dateType);
         let timeArray = this.getTimeArray(startTime, endTime, dateType);
 
-        const agg = [
+        const fAgg = [
             {
                 $project: {
                     orcredit: 1,
@@ -687,8 +757,77 @@ class TGovernmentStatisticsService extends CrudService {
             },
 
         ];
+        const iAgg = [
+            {
+                $project: {
+                    orcredit: '$creditStatus',
+                    time: {
+                        $toLong: '$credit_time'
+                    },
+                    year: {
+                        $year: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
 
-        let tempData = await this.fModel.aggregate(agg);
+                            },
+
+                        },
+
+                    },
+                    month: {
+                        $month: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+                    day: {
+                        $dayOfMonth: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$credit_time'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+
+                },
+
+            },
+            {
+                $match:this.getTimeMatch("4", {startTime, endTime}, payload),
+
+            },
+            {
+                $group: this.getTimeGroup("4", dateType)
+            },
+            {
+                $sort: this.getTimeSort(dateType)
+            },
+            {
+                $project: {
+                    _id: 0,
+                    value: 1,
+                    label: this.getTimeLabel(dateType)
+                },
+
+            },
+
+        ];
+
+        let fData = await this.fModel.aggregate(fAgg);
+        let iData = await this.intelligentFollowModel.aggregate(iAgg);
+        let tempData = [...fData, ...iData];
         let data = this.formatTimeData(timeArray, tempData);
         return data;
     }
@@ -855,10 +994,91 @@ class TGovernmentStatisticsService extends CrudService {
 
             },
 
+        ];
+        const iAgg = [
+            {
+                $project: {
+                    orcredit: '$creditStatus',
+                    objId: {
+                        $toObjectId: "$intelligentId"
+                    },
+                    time: {
+                        $toLong: '$credit_time'
+                    },
+
+                },
+
+            },
+           {
+               $match:this.getMatch("3", payload),
+
+           },
+            {
+                $lookup: {
+                    from: 'intelligent_docking',
+                    localField: 'objId',
+                    foreignField: '_id',
+                    as: 'intelligent_dockings',
+
+                },
+
+            },
+            {
+                $unwind: {
+                    path: '$intelligent_dockings',
+                    preserveNullAndEmptyArrays: false,
+
+                },
+
+            },
+            {
+                $lookup: {
+                    from: 'company_identify',
+                    localField: 'intelligent_dockings.uid',
+                    foreignField: 'uid',
+                    as: 'company_identifys',
+
+                },
+
+            },
+            {
+                $unwind: {
+                    path: '$company_identifys',
+                    preserveNullAndEmptyArrays: false,
+
+                },
+
+            },
+            {
+                $group: {
+                    _id: '$company_identifys.profession_one',
+                    value: {
+                        $sum: 1,
+
+                    },
+
+                }
+            },
+            {
+                $sort: {
+                    'value': - 1,
+
+                }
+            },
+            {
+                $project: {
+                    _id: 0,
+                    code: '$_id',
+                    value: 1
+                },
+
+            },
+
         ];
         let cData = await this.fModel.aggregate(cAgg);
         let sData = await this.fModel.aggregate(sAgg);
-        let tempData = [...cData, ...sData];
+        let iData = await this.intelligentFollowModel.aggregate(iAgg);
+        let tempData = [...cData, ...sData, ...iData];
 
         let professionArray = await this.pModel.find({pcode: '0'});
         //let professionTotal = await this.pModel.find({pcode:'0'}).countDocuments();
@@ -1033,10 +1253,91 @@ class TGovernmentStatisticsService extends CrudService {
 
             },
 
+        ];
+        const iAgg = [
+            {
+                $project: {
+                    orcredit: '$creditStatus',
+                    objId: {
+                        $toObjectId: "$intelligentId"
+                    },
+                    time: {
+                        $toLong: '$credit_time'
+                    },
+
+                },
+
+            },
+            {
+                $match:this.getMatch("4", payload),
+
+            },
+            {
+                $lookup: {
+                    from: 'intelligent_docking',
+                    localField: 'objId',
+                    foreignField: '_id',
+                    as: 'intelligent_dockings',
+
+                },
+
+            },
+            {
+                $unwind: {
+                    path: '$intelligent_dockings',
+                    preserveNullAndEmptyArrays: false,
+
+                },
+
+            },
+            {
+                $lookup: {
+                    from: 'company_identify',
+                    localField: 'intelligent_dockings.uid',
+                    foreignField: 'uid',
+                    as: 'company_identifys',
+
+                },
+
+            },
+            {
+                $unwind: {
+                    path: '$company_identifys',
+                    preserveNullAndEmptyArrays: false,
+
+                },
+
+            },
+            {
+                $group: {
+                    _id: '$company_identifys.belong_addr_city',
+                    value: {
+                        $sum: 1,
+
+                    },
+
+                }
+            },
+            {
+                $sort: {
+                    'value': - 1,
+
+                }
+            },
+            {
+                $project: {
+                    _id: 0,
+                    code: '$_id',
+                    value: 1
+                },
+
+            },
+
         ];
         let cData = await this.fModel.aggregate(cAgg);
         let sData = await this.fModel.aggregate(sAgg);
-        let tempData = [...cData, ...sData];
+        let iData = await this.intelligentFollowModel.aggregate(iAgg);
+        let tempData = [...cData, ...sData, ...iData];
 
         let regionArray = await this.dModel.find({type:'dz',pcode: '220000'});
         let regionTotal = await this.dModel.find({type:'dz',pcode: '220000'}).countDocuments();
@@ -1201,9 +1502,78 @@ class TGovernmentStatisticsService extends CrudService {
 
         ];
 
+        const iAgg = [
+
+            {
+                $project: {
+                    time: {
+                        $toLong: '$meta.createdAt'
+                    },
+                    year: {
+                        $year: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$meta.createdAt'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+                    month: {
+                        $month: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$meta.createdAt'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+                    day: {
+                        $dayOfMonth: {
+                            $toDate: {
+                                $add: [{
+                                    $toLong: '$meta.createdAt'
+                                }, 28800000],
+
+                            },
+
+                        },
+
+                    },
+
+                },
+
+            },
+            {
+                $match: this.getTimeMatch("10", {startTime, endTime}, payload),
+
+            },
+            {
+                $group: this.getTimeGroup("10", dateType)
+            },
+            {
+                $sort: this.getTimeSort(dateType)
+            },
+            {
+                $project: {
+                    _id: 0,
+                    value: 1,
+                    label: this.getTimeLabel(dateType)
+                },
+
+            },
+
+        ];
+
         let cData = await this.cModel.aggregate(cAgg);
         let sData = await this.sModel.aggregate(sAgg);
-        let tempData = [...cData, ...sData];
+        let iData = await this.intelligentDockingModel.aggregate(iAgg);
+        let tempData = [...cData, ...sData, ...iData];
         let data = this.formatTimeData(timeArray, tempData);
         return data;
     }
@@ -1470,9 +1840,11 @@ class TGovernmentStatisticsService extends CrudService {
         let financialProduct = temp1 + temp2 + temp3;
         let temp4 = await this.cModel.find({'status':'0'}).countDocuments();
         let temp5 = await this.sModel.find({'status':'0'}).countDocuments();
-        let demandCount = temp4 + temp5;
+        let tempAdd1 = await this.intelligentDockingModel.find().countDocuments();
+        let demandCount = temp4 + temp5 + tempAdd1;
         let temp6 = 0;
         let temp7 = 0;
+        let tempAdd2 = 0;
         let data6 = await this.cModel.aggregate([
 
             {
@@ -1561,9 +1933,36 @@ class TGovernmentStatisticsService extends CrudService {
         if(data7.length > 0){
             temp7 = data7[0].value;
         }
-        let demandMoney = temp6 + temp7;
-        let helpCompany = await this.fModel.find({'orcredit':'1'}).countDocuments();
+        let dataAdd2 = await this.intelligentDockingModel.aggregate([
+
+            {
+                $project: {
+                    money: {
+                        $toDouble: '$money'
+                    },
+                },
+
+            },
+            {
+                $group: {
+                    _id: null,
+                    value: {
+                        $sum: '$money',
+
+                    },
+
+                }
+            },
+        ]);
+        if(dataAdd2.length > 0){
+            tempAdd2 = dataAdd2[0].value;
+        }
+        let demandMoney = temp6 + temp7 + tempAdd2;
+        let tempAdd3 = await this.fModel.find({'orcredit':'1'}).countDocuments();
+        let tempAdd4 = await this.intelligentFollowModel.find({'creditStatus':'1'}).countDocuments();
+        let helpCompany = tempAdd3 + tempAdd4;
         let temp8 = 0;
+        let tempAdd5 = 0;
         let data8 = await this.fModel.aggregate([
             {
                 $project: {
@@ -1603,11 +2002,54 @@ class TGovernmentStatisticsService extends CrudService {
                 }
             },
 
+        ]);
+        let dataAdd5 = await this.intelligentFollowModel.aggregate([
+            {
+                $project: {
+                    orcredit: '$creditStatus',
+                    money: {
+                        $toDouble: '$credit_money'
+                    }
+                },
+
+            },
+            {
+                $match: {
+                    $expr:
+                        {
+                            $and:
+                                [
+                                    {
+                                        $eq: ['$orcredit', '1'],
+
+                                    },
+
+                                ],
+
+                        },
+
+                },
+
+            },
+            {
+                $group: {
+                    _id: null,
+                    value: {
+                        $sum: '$money',
+
+                    },
+
+                }
+            },
+
         ]);
         if(data8.length > 0){
             temp8 = data8[0].value;
         }
-        let solutionFinancing = temp8;
+        if(dataAdd5.length > 0){
+            tempAdd5 = dataAdd5[0].value;
+        }
+        let solutionFinancing = temp8 + tempAdd5;
 
         return {
             registerCompany,
@@ -1905,6 +2347,28 @@ class TGovernmentStatisticsService extends CrudService {
 
                         },
 
+                };
+            case '10':
+                let matchJ = [];
+                return {
+                    $expr:
+                        {
+                            $and:
+                                [
+                                    {
+                                        $gte: ['$time', reserve.startTime],
+
+                                    },
+                                    {
+                                        $lt: ['$time', reserve.endTime],
+
+                                    },
+                                    ...matchJ,
+
+                                ],
+
+                        },
+
                 };
         }
     }
@@ -2017,6 +2481,18 @@ class TGovernmentStatisticsService extends CrudService {
                         },
 
                     }
+                case '10':
+                    return {
+                        _id: {
+                            year: '$year',
+
+                        },
+                        value: {
+                            $sum: 1,
+
+                        },
+
+                    };
 
             }
 
@@ -2139,6 +2615,19 @@ class TGovernmentStatisticsService extends CrudService {
                         },
 
                     }
+                case '10':
+                    return {
+                        _id: {
+                            year: '$year',
+                            month: '$month',
+
+                        },
+                        value: {
+                            $sum: 1,
+
+                        },
+
+                    };
 
             }