From 40794786d0f01f02ea198c0bbe27b1e85eb5966c Mon Sep 17 00:00:00 2001
From: SHAOJIAHAO <55341701@qq.com>
Date: Tue, 23 Nov 2021 14:20:48 +0800
Subject: [PATCH] =?UTF-8?q?[=E5=AE=8C=E5=96=84]=E9=A2=84=E8=AD=A6=E8=AE=B0?=
 =?UTF-8?q?=E5=BD=95=E5=88=97=E8=A1=A8=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../criminal-records-admin.component.html     |  36 +++--
 .../criminal-records-admin.component.ts       |  89 +++++++++++--
 .../criminal-records.component.html           |  32 +++--
 .../criminal-records.component.ts             | 123 ++++++++++++++++--
 .../pages/plan-admin/plan-admin.component.ts  |   2 +-
 5 files changed, 229 insertions(+), 53 deletions(-)

diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html
index b74d32b..4783137 100644
--- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.html
+++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.html
@@ -101,7 +101,7 @@
       <div class="table">
         <div nz-row class="th">
           <div nz-col nzSpan="1" style="text-align: right;">
-           
+
           </div>
           <div nz-col nzSpan="2">
             预警级别
@@ -134,43 +134,53 @@
         <div class="tbody" id="tbody">
           <div nz-row class="tr" *ngFor="let item of list">
             <div nz-col nzSpan="1" style="text-align: right;">
-              <img style="width: 36px;" src="../../../assets/images/level1.png" alt="">
+              <img *ngIf="item.violation.level == 1" style="width: 36px;" src="../../../assets/images/level1.png"
+                alt="">
+              <img *ngIf="item.violation.level == 2" style="width: 36px;" src="../../../assets/images/level2.png"
+                alt="">
+              <img *ngIf="item.violation.level == 3" style="width: 36px;" src="../../../assets/images/level3.png"
+                alt="">
+              <img *ngIf="item.violation.level == 4" style="width: 36px;" src="../../../assets/images/level4.png"
+                alt="">
             </div>
             <div nz-col nzSpan="2">
-              Ⅰ级
+              <span *ngIf="item.violation.level == 1">Ⅰ级</span>
+              <span *ngIf="item.violation.level == 2">Ⅱ级</span>
+              <span *ngIf="item.violation.level == 3">Ⅲ级</span>
+              <span *ngIf="item.violation.level == 4">Ⅳ级</span>
             </div>
             <div nz-col nzSpan="3">
-              日常预警行为
+              {{item.violation.violationType}}
             </div>
             <div nz-col nzSpan="4">
-              中化某某省公司
+              {{item.gasStation.companyName}}
             </div>
             <div nz-col nzSpan="2">
-              山东-淄博
+              {{item.gasStation.locationName}}
             </div>
             <div nz-col nzSpan="1" style="text-align: right;box-sizing: border-box;padding-right: 8px;">
-              <span class="ziying">自营</span>  
+              <!-- <span class="ziying">自营</span>   -->
             </div>
             <div nz-col nzSpan="4">
-              中化山东省淄博市第6加油站
+              {{item.gasStation.stationName}}
             </div>
             <div nz-col nzSpan="3">
-              便利店
+              {{item.violateArea}}
             </div>
             <div nz-col nzSpan="3">
-              2021-10-12  09:28:13
+              {{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
             </div>
             <div nz-col nzSpan="1">
-              <span class="look" (click)="look()">查看</span>
+              <span class="look" (click)="look(item)">查看</span>
             </div>
           </div>
         </div>
       </div>
-      <div class="pagination">
+      <!-- <div class="pagination">
         <nz-pagination [nzPageIndex]="1" [nzTotal]="85" [nzPageSize]="20" [nzShowTotal]="totalTemplate"
           nzShowQuickJumper></nz-pagination>
         <ng-template #totalTemplate let-total> 16条/页,共100条 </ng-template>
-      </div>
+      </div> -->
     </div>
   </div>
 </div>
\ No newline at end of file
diff --git a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts
index 33eee80..0fe3c51 100644
--- a/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts
+++ b/src/app/pages/criminal-records-admin/criminal-records-admin.component.ts
@@ -1,11 +1,15 @@
 import { HttpClient } from '@angular/common/http';
-import { Component, ElementRef, OnInit } from '@angular/core';
+import { Component, ElementRef, OnInit, ViewContainerRef } from '@angular/core';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import { Router } from '@angular/router'
 import * as echarts from 'echarts';
 
 import { fromEvent } from 'rxjs';
 import { debounceTime } from 'rxjs/operators';
+
+import * as moment from 'moment';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component';
 @Component({
   selector: 'app-criminal-records-admin',
   templateUrl: './criminal-records-admin.component.html',
@@ -14,7 +18,7 @@ import { debounceTime } from 'rxjs/operators';
 export class CriminalRecordsAdminComponent implements OnInit {
 
   validateForm!: FormGroup;
-  constructor(private element: ElementRef, private http: HttpClient, private fb: FormBuilder, private router: Router) { }
+  constructor(private element: ElementRef, private http: HttpClient, private fb: FormBuilder, private router: Router, private modal: NzModalService, private viewContainerRef: ViewContainerRef) { }
   //饼图
   myChart
   option = {
@@ -303,13 +307,50 @@ export class CriminalRecordsAdminComponent implements OnInit {
     this.mybarChart.setOption(this.baroption);
 
     this.warningType()
+    this.getViolateRecordList()
+  }
+
+  //获得违规记录列表
+  SkipCount: string = '0'
+  MaxResultCount: string = '50'
+  list: any = []
+  totalCount: string
+  getViolateRecordList() {
+    let ViolationIds = []
+    if (this.validateForm.value.type) {
+      this.warningTypesDetails.forEach(item => {
+        item.id ? ViolationIds.push(item.id) : null
+      });
+    }
+    let params = {
+      Level: this.validateForm.value.level,
+      ViolationIds: ViolationIds,
+      ViolateArea: this.validateForm.value.site,
+      OrganizationUnitId: JSON.parse(sessionStorage.getItem('userdata')).organization.id,
+      IsContainsChildren: 'true',
+      ViolateTime: this.validateForm.value.datePicker ? [moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD'), moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD')] : null,
+      SkipCount: this.SkipCount,
+      MaxResultCount: this.MaxResultCount
+    }
+    this.http.get('/api/services/app/ViolateRecord/GetAll', {
+      params: params
+    }).subscribe((data: any) => {
+      this.list = this.list.concat(data.result.items);
+      this.list = [...this.list]
+      // this.list = data.result.items
+      this.totalCount = data.result.totalCount
+      console.log('违规记录列表', data)
+    })
   }
 
 
+
   ngAfterViewInit(): void {
     fromEvent(this.element.nativeElement.querySelector(`#tbody`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe((event: any) => { //监听 DOM 滚动事件
       if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) {
         console.log('需要加载数据了', event)
+        this.SkipCount = String(Number(this.SkipCount) + 50)
+        this.getViolateRecordList()
       }
     });
   }
@@ -352,15 +393,9 @@ export class CriminalRecordsAdminComponent implements OnInit {
       this.validateForm.controls[i].markAsDirty();
       this.validateForm.controls[i].updateValueAndValidity();
     }
-    console.log(this.validateForm.value)
-
-    
-    let ViolationIds = []
-    if (this.validateForm.value.type) {
-      this.warningTypesDetails.forEach(item => {
-        item.id ? ViolationIds.push(item.id) : null
-      });
-    }
+    this.list = []
+    this.SkipCount = '0'
+    this.getViolateRecordList()
   }
   resetForm(e: MouseEvent): void {
     e.preventDefault();
@@ -369,6 +404,12 @@ export class CriminalRecordsAdminComponent implements OnInit {
       this.validateForm.controls[key].markAsPristine();
       this.validateForm.controls[key].updateValueAndValidity();
     }
+    this.validateForm.patchValue({
+      datePicker: [this.startdate, this.enddate]
+    });
+    this.list = []
+    this.SkipCount = '0'
+    this.getViolateRecordList()
   }
 
   //预警类型接口
@@ -392,9 +433,29 @@ export class CriminalRecordsAdminComponent implements OnInit {
   }
 
 
-  list: any = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
-  look() {
-    this.router.navigate(['/records/petrolStation'])
+
+  look(item) {
+    const modal = this.modal.create({
+      nzContent: GetOutOfLineDetailsComponent,
+      nzViewContainerRef: this.viewContainerRef,
+      nzWidth: 1200,
+      nzBodyStyle: {
+        'border': '1px solid #6d9cc7',
+        'border-radius': '0px',
+        'padding': '0px',
+        'box-shadow': '0 0 8px 0 #fff',
+        'background': '#000D21',
+      },
+      nzComponentParams: {
+        data: item
+      },
+      nzFooter: null,
+      nzOnOk: async () => {
+
+      }
+    });
+    const instance = modal.getContentComponent();
+
   }
 
 
diff --git a/src/app/pages/criminal-records/criminal-records.component.html b/src/app/pages/criminal-records/criminal-records.component.html
index bc2ccf9..299ac75 100644
--- a/src/app/pages/criminal-records/criminal-records.component.html
+++ b/src/app/pages/criminal-records/criminal-records.component.html
@@ -14,7 +14,7 @@
 
       <nz-form-item class="searchParams">
         <nz-form-control>
-          <nz-select formControlName="type" nzPlaceHolder="请选择预警类型">
+          <nz-select formControlName="type" (ngModelChange)="typeChange($event)" nzPlaceHolder="请选择预警类型">
             <nz-option *ngFor="let item of warningTypes" [nzValue]="item.key" [nzLabel]="item.key"></nz-option>
           </nz-select>
         </nz-form-control>
@@ -121,37 +121,47 @@
             操作
           </div>
         </div>
-        <div class="tbody">
+        <div class="tbody" id="tbody">
           <div nz-row class="tr" *ngFor="let item of list">
             <div nz-col nzSpan="1" style="text-align: right;">
-              <img style="width: 36px;" src="../../../assets/images/level1.png" alt="">
+              <img *ngIf="item.violation.level == 1" style="width: 36px;" src="../../../assets/images/level1.png"
+                alt="">
+              <img *ngIf="item.violation.level == 2" style="width: 36px;" src="../../../assets/images/level2.png"
+                alt="">
+              <img *ngIf="item.violation.level == 3" style="width: 36px;" src="../../../assets/images/level3.png"
+                alt="">
+              <img *ngIf="item.violation.level == 4" style="width: 36px;" src="../../../assets/images/level4.png"
+                alt="">
             </div>
             <div nz-col nzSpan="3">
-              Ⅰ级
+              <span *ngIf="item.violation.level == 1">Ⅰ级</span>
+              <span *ngIf="item.violation.level == 2">Ⅱ级</span>
+              <span *ngIf="item.violation.level == 3">Ⅲ级</span>
+              <span *ngIf="item.violation.level == 4">Ⅳ级</span>
             </div>
             <div nz-col nzSpan="5">
-              日常预警行为
+              {{item.violation.violationType}}
             </div>
             <div nz-col nzSpan="5">
-              工作人员倚靠加油机或立柱
+              {{item.violation.violationName}}
             </div>
             <div nz-col nzSpan="4">
-              便利店
+              {{item.violateArea}}
             </div>
             <div nz-col nzSpan="4">
-              2021-10-12 09:28:13
+              {{item.violateTime | date:"yyyy-MM-dd HH:mm:ss"}}
             </div>
             <div nz-col nzSpan="2">
-              <span class="look">查看</span>
+              <span class="look" (click)="look(item)">查看</span>
             </div>
           </div>
         </div>
       </div>
-      <div class="pagination">
+      <!-- <div class="pagination">
         <nz-pagination [nzPageIndex]="1" [nzTotal]="85" [nzPageSize]="20" [nzShowTotal]="totalTemplate"
           nzShowQuickJumper></nz-pagination>
         <ng-template #totalTemplate let-total> 16条/页,共100条 </ng-template>
-      </div>
+      </div> -->
     </div>
   </div>
 </div>
\ No newline at end of file
diff --git a/src/app/pages/criminal-records/criminal-records.component.ts b/src/app/pages/criminal-records/criminal-records.component.ts
index 5f6eb7f..5972b59 100644
--- a/src/app/pages/criminal-records/criminal-records.component.ts
+++ b/src/app/pages/criminal-records/criminal-records.component.ts
@@ -1,7 +1,12 @@
 import { HttpClient } from '@angular/common/http';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, ViewContainerRef, ElementRef } from '@angular/core';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import * as echarts from 'echarts';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { GetOutOfLineDetailsComponent } from '../today-warning/get-out-of-line-details/get-out-of-line-details.component';
+import * as moment from 'moment';
+import { fromEvent } from 'rxjs';
+import { debounceTime } from 'rxjs/operators';
 @Component({
   selector: 'app-criminal-records',
   templateUrl: './criminal-records.component.html',
@@ -9,7 +14,7 @@ import * as echarts from 'echarts';
 })
 export class CriminalRecordsComponent implements OnInit {
   validateForm!: FormGroup;
-  constructor(private http: HttpClient, private fb: FormBuilder) { }
+  constructor(private http: HttpClient, private fb: FormBuilder, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private element: ElementRef) { }
 
   myChart: any //左侧饼图
   option = {
@@ -273,16 +278,30 @@ export class CriminalRecordsComponent implements OnInit {
     return dateList;
   }
 
-  isEcharts:boolean = true
-  isEchartsShow(){
+  isEcharts: boolean = true
+  isEchartsShow() {
     this.isEcharts = !this.isEcharts
   }
+  startdate
+  enddate
   ngOnInit(): void {
+    //当前日期
+    let myDate: any = new Date();
+    let nowY = myDate.getFullYear();
+    let nowM = myDate.getMonth() + 1;
+    let nowD = myDate.getDate();
+    this.enddate = nowY + "-" + (nowM < 10 ? "0" + nowM : nowM) + "-" + (nowD < 10 ? "0" + nowD : nowD);//当前日期
+    //获取三十天前日期
+    let lw = new Date(myDate - 1000 * 60 * 60 * 24 * 30);//最后一个数字30可改,30天的意思
+    let lastY = lw.getFullYear();
+    let lastM = lw.getMonth() + 1;
+    let lastD = lw.getDate();
+    this.startdate = lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//三十天之前日期
     this.validateForm = this.fb.group({
       level: [null],
       type: [null],
       site: [null],
-      datePicker: [null]
+      datePicker: [[this.startdate, this.enddate]]
     });
     // 饼图
     this.myChart = echarts.init(document.getElementById('piechart'));
@@ -292,14 +311,60 @@ export class CriminalRecordsComponent implements OnInit {
     this.mybarChart.setOption(this.baroption);
 
     this.warningType()
+    this.getViolateRecordList()
   }
+
+  //获得违规记录列表
+  SkipCount: string = '0'
+  MaxResultCount: string = '50'
+  list: any = []
+  totalCount: string
+  getViolateRecordList() {
+    let ViolationIds = []
+    if (this.validateForm.value.type) {
+      this.warningTypesDetails.forEach(item => {
+        item.id ? ViolationIds.push(item.id) : null
+      });
+    }
+    let params = {
+      Level: this.validateForm.value.level,
+      ViolationIds: ViolationIds,
+      ViolateArea: this.validateForm.value.site,
+      OrganizationUnitId: JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id,
+      IsContainsChildren: 'true',
+      ViolateTime: this.validateForm.value.datePicker ? [moment(this.validateForm.value.datePicker[0]).format('yyyy-MM-DD'), moment(this.validateForm.value.datePicker[1]).format('yyyy-MM-DD')] : null,
+      SkipCount: this.SkipCount,
+      MaxResultCount: this.MaxResultCount
+    }
+    this.http.get('/api/services/app/ViolateRecord/GetAll', {
+      params: params
+    }).subscribe((data: any) => {
+      this.list = this.list.concat(data.result.items);
+      this.list = [...this.list]
+      // this.list = data.result.items
+      this.totalCount = data.result.totalCount
+      console.log('违规记录列表', data)
+    })
+  }
+  ngAfterViewInit(): void {
+    fromEvent(this.element.nativeElement.querySelector(`#tbody`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe((event: any) => { //监听 DOM 滚动事件
+      if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) {
+        console.log('需要加载数据了', event)
+        this.SkipCount = String(Number(this.SkipCount) + 50)
+        this.getViolateRecordList()
+      }
+    });
+  }
+
   submitForm(): void {
     for (const i in this.validateForm.controls) {
       this.validateForm.controls[i].markAsDirty();
       this.validateForm.controls[i].updateValueAndValidity();
     }
 
-    console.log(this.validateForm)
+    this.list = []
+    this.SkipCount = '0'
+    this.getViolateRecordList()
   }
   resetForm(e: MouseEvent): void {
     e.preventDefault();
@@ -308,6 +373,12 @@ export class CriminalRecordsComponent implements OnInit {
       this.validateForm.controls[key].markAsPristine();
       this.validateForm.controls[key].updateValueAndValidity();
     }
+    this.validateForm.patchValue({
+      datePicker: [this.startdate, this.enddate]
+    });
+    this.list = []
+    this.SkipCount = '0'
+    this.getViolateRecordList()
   }
 
 
@@ -316,14 +387,17 @@ export class CriminalRecordsComponent implements OnInit {
   warningTypesDetails: any
   warningType() {
     this.http.get('/api/services/app/Violation/GetAllList').subscribe((data: any) => {
-      this.warningTypesDetails = data.result
+      // this.warningTypesDetails = data.result
       this.warningTypes = (data.result as any).groupBy((t) => { return t.violationType });
     })
   }
-
-
-  list: any = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
-
+  typeChange(e) {
+    this.warningTypes.forEach(element => {
+      if (element.key == e) {
+        this.warningTypesDetails = element
+      }
+    });
+  }
   selectedType = '分布'
   selectedRankingType = '站点排名'
   echartClick(type) {
@@ -337,7 +411,28 @@ export class CriminalRecordsComponent implements OnInit {
     }
 
   }
-  // echartClick2(type) {
-  //   this.selectedRankingType = type
-  // }
+
+  look(item) {
+    const modal = this.modal.create({
+      nzContent: GetOutOfLineDetailsComponent,
+      nzViewContainerRef: this.viewContainerRef,
+      nzWidth: 1200,
+      nzBodyStyle: {
+        'border': '1px solid #6d9cc7',
+        'border-radius': '0px',
+        'padding': '0px',
+        'box-shadow': '0 0 8px 0 #fff',
+        'background': '#000D21',
+      },
+      nzComponentParams: {
+        data: item
+      },
+      nzFooter: null,
+      nzOnOk: async () => {
+
+      }
+    });
+    const instance = modal.getContentComponent();
+
+  }
 }
diff --git a/src/app/pages/plan-admin/plan-admin.component.ts b/src/app/pages/plan-admin/plan-admin.component.ts
index ec73cbf..34ea1a2 100644
--- a/src/app/pages/plan-admin/plan-admin.component.ts
+++ b/src/app/pages/plan-admin/plan-admin.component.ts
@@ -32,7 +32,7 @@ export class PlanAdminComponent implements OnInit {
     fromEvent(this.element.nativeElement.querySelector(`.ant-table-body`) as HTMLCanvasElement, 'scroll').pipe(debounceTime(100)).subscribe(async (event: any) => { //监听 DOM 滚动事件
       if (event.target.scrollHeight - (event.target.scrollTop + event.target.clientHeight) <= 10) {
         console.log('需要加载数据了', event)
-        this.SkipCount += 100
+        this.SkipCount = String(Number(this.SkipCount) + 50)
         await this.getGasStation()
       }
     });