Browse Source

异常工时统计

chenc 4 years ago
parent
commit
5dd8ca88ff
27 changed files with 1399 additions and 123 deletions
  1. 15 0
      src/app/entity/fbs/fbs-abnormal-working-hours-describe.ts
  2. 15 0
      src/app/entity/fbs/fbs-abnormal-working-hours-type.ts
  3. 7 1
      src/app/entity/fbs/fbs-abnormal-working-hours.ts
  4. 6 1
      src/app/layout/default/header/header.component.html
  5. 3 1
      src/app/layout/passport/passport.component.html
  6. 17 12
      src/app/routes/fbs-abnormal-working-hours/add/add.component.html
  7. 64 5
      src/app/routes/fbs-abnormal-working-hours/add/add.component.ts
  8. 5 1
      src/app/routes/fbs-abnormal-working-hours/fbs-abnormal-working-hours.module.ts
  9. 41 14
      src/app/routes/fbs-abnormal-working-hours/list/list.component.html
  10. 88 14
      src/app/routes/fbs-abnormal-working-hours/list/list.component.ts
  11. 179 0
      src/app/routes/fbs-abnormal-working-hours/update/update.component.html
  12. 24 0
      src/app/routes/fbs-abnormal-working-hours/update/update.component.spec.ts
  13. 203 0
      src/app/routes/fbs-abnormal-working-hours/update/update.component.ts
  14. 150 0
      src/app/routes/fbs-abnormal-working-hours/view/view.component.html
  15. 24 0
      src/app/routes/fbs-abnormal-working-hours/view/view.component.spec.ts
  16. 113 0
      src/app/routes/fbs-abnormal-working-hours/view/view.component.ts
  17. 22 15
      src/app/routes/fbs-workshop-dispatch-list/add/add.component.html
  18. 74 7
      src/app/routes/fbs-workshop-dispatch-list/add/add.component.ts
  19. 33 8
      src/app/routes/fbs-workshop-dispatch-list/list/list.component.html
  20. 65 11
      src/app/routes/fbs-workshop-dispatch-list/list/list.component.ts
  21. 22 15
      src/app/routes/fbs-workshop-dispatch-list/update/update.component.html
  22. 85 4
      src/app/routes/fbs-workshop-dispatch-list/update/update.component.ts
  23. 10 9
      src/app/routes/fbs-workshop-dispatch-list/view/view.component.html
  24. 20 5
      src/app/routes/fbs-workshop-dispatch-list/view/view.component.ts
  25. 68 0
      src/app/services/fbs/fbs-abnormal-working-hours.service.ts
  26. 46 0
      src/app/services/fbs/fbs-workshop-dispatch-list.service.ts
  27. BIN
      src/assets/logo_fbs_b.png

+ 15 - 0
src/app/entity/fbs/fbs-abnormal-working-hours-describe.ts

@@ -0,0 +1,15 @@
+import { Page } from '../page';
+
+/**
+ * 异常工时描述
+ */
+export class FbsAbnormalWorkingHoursDescribe extends Page {
+  /**异常原因描述主键*/
+  id?: string;
+  /**异常工时主键id*/
+  abnormalWorkingHoursId?: string;
+  /**描述*/
+  describes?: string;
+  /**备注*/
+  memo?: string;
+}

+ 15 - 0
src/app/entity/fbs/fbs-abnormal-working-hours-type.ts

@@ -0,0 +1,15 @@
+import { Page } from '../page';
+
+/**
+ * 异常类别
+ */
+export class FbsAbnormalWorkingHoursType  extends Page{
+  /**异常类型主键*/
+	 id?:string;
+	/**异常工时主键id*/
+	 abnormalWorkingHoursId?:string;
+	/**类型名称*/
+	 typeName?:string;
+	/**备注*/
+	 memo?:string;
+}

+ 7 - 1
src/app/entity/fbs/fbs-abnormal-working-hours.ts

@@ -50,6 +50,12 @@ export class FbsAbnormalWorkingHours extends Page{
 	/**备注*/
   memo?:string;
   /**生产线名称*/
-  productionLineName?:string;
+	productionLineName?:string;
+	
+	//异常工时描述集合
+	fbsAbnormalWorkingHoursDescribeList?:any[];
+
+	//异常类别
+	fbsAbnormalWorkingHoursTypeList?:any[];
 }
 

+ 6 - 1
src/app/layout/default/header/header.component.html

@@ -1,8 +1,13 @@
 <div class="alain-default__header-logo">
   <a [routerLink]="['/']" class="alain-default__header-logo-link">
-    <img class="alain-default__header-logo-expanded" src="./assets/fbs.png" alt="{{settings.app.name}}"
+    <!-- <img class="alain-default__header-logo-expanded" src="./assets/fangda_logo.png" alt="{{settings.app.name}}"
       style="max-height:40px;" />
     <img class="alain-default__header-logo-collapsed" src="./assets/fangda_logo_b.png" alt="{{settings.app.name}}"
+      style="max-height:30px;" /> -->
+
+      <img class="alain-default__header-logo-expanded" src="./assets/fbs.png" alt="{{settings.app.name}}"
+      style="max-height:40px;" />
+    <img class="alain-default__header-logo-collapsed" src="./assets/logo_fbs_b.png" alt="{{settings.app.name}}"
       style="max-height:30px;" />
   </a>
 </div>

+ 3 - 1
src/app/layout/passport/passport.component.html

@@ -3,9 +3,11 @@
   <div class="wrap">
     <div class="top">
       <div class="head">
-        <img class="logo" src="./assets/fangda_logo_b.png">
+        <!-- <img class="logo" src="./assets/fangda_logo_b.png"> -->
         <!-- <span class="title">{{'app.login.title' | translate}}</span><span
           style="margin-left: 10px;"><strong>(v20.0924)</strong></span> -->
+          
+          <img class="logo" src="./assets/logo_fbs_b.png">
           <span class="title">福玻斯</span><span
           style="margin-left: 10px;"><strong>(v20.1013)</strong></span>
         <!-- 测试包才有 -->

+ 17 - 12
src/app/routes/fbs-abnormal-working-hours/add/add.component.html

@@ -14,15 +14,15 @@
         <td style="width: 25%;">姓名</td>
         <td style="width: 25%;" colSpan="2">
           <nz-select [(ngModel)]="fbsAbnormalWorkingHours.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
-            nzPlaceHolder="请选择">
+            nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
             <ng-container *ngFor="let proper of properList">
               <nz-option [nzLabel]="proper.id" [nzValue]="proper.name"> </nz-option>
             </ng-container>
           </nz-select>
         </td>
-        <td style="width: 25%;">日期</td>
-        <td style="width: 25%;" colspan="3">
-          <nz-date-picker [(ngModel)]="fbsAbnormalWorkingHours.date" nzPlaceHolder="请选择">
+        <td style="width: 25%;" colSpan="2">日期</td>
+        <td style="width: 25%;" colspan="2">
+          <nz-date-picker [(ngModel)]="fbsAbnormalWorkingHours.date" nzPlaceHolder="请选择" nzDisabled>
           </nz-date-picker>
         </td>
       </tr>
@@ -100,6 +100,7 @@
           <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.plan" [nzMin]="0" [nzStep]="1"></nz-input-number>
         </td>
       </tr>
+      <tr></tr>
     </tbody>
   </nz-table>
 
@@ -115,17 +116,19 @@
           </div>
         </div>
         <!-- 表格 -->
-        <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false">
+        <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false" [nzFrontPagination]=false>
           <thead>
             <tr>
-              <th>序号</th>
-              <th>异常原因描述</th>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="80%">异常原因描述</th>
+              <th nzWidth="10%">操作</th>
             </tr>
           </thead>
           <tbody>
             <tr *ngFor="let data of editRowTable.data">
               <td>{{data.sort}}</td>
-              <td>{{data.describe}}</td>
+              <td><textarea rows="1" nz-input [(ngModel)]="data.describes"></textarea></td>
+              <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="describeDeleteRow(data.sort)">删除</a></td>
             </tr>
           </tbody>
         </nz-table>
@@ -142,17 +145,19 @@
           </div>
         </div>
         <!-- 表格 -->
-        <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false">
+        <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false" [nzFrontPagination]=false>
           <thead>
             <tr>
-              <th>序号</th>
-              <th>异常类型</th>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="80%">异常类型</th>
+              <th nzWidth="10%">操作</th>
             </tr>
           </thead>
           <tbody>
             <tr *ngFor="let data of typeTable.data">
               <td>{{data.sort}}</td>
-              <td>{{data.typeName}}</td>
+              <td><input nz-input placeholder="请输入" [(ngModel)]="data.typeName" /></td>
+              <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="typeDeleteRow(data.sort)">删除</a></td>
             </tr>
           </tbody>
         </nz-table>

+ 64 - 5
src/app/routes/fbs-abnormal-working-hours/add/add.component.ts

@@ -1,7 +1,9 @@
 import { Component, OnInit } from '@angular/core';
-import { NzModalRef, NzMessageService, NzDrawerRef } from 'ng-zorro-antd';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
 import { _HttpClient } from '@delon/theme';
 import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hours';
+import { FbsAbnormalWorkingHoursService } from 'app/services/fbs/fbs-abnormal-working-hours.service';
+import { DatePipe } from '@angular/common';
 
 @Component({
   selector: 'app-fbs-abnormal-working-hours-add',
@@ -26,17 +28,46 @@ import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hou
 export class FbsAbnormalWorkingHoursAddComponent implements OnInit {
 
   constructor(
-    private drawerRef:NzDrawerRef
+    private drawerRef:NzDrawerRef,
+    private fbsAbnormalWorkingHoursService:FbsAbnormalWorkingHoursService,
+    private nzNotificationService: NzNotificationService,
+    private datePipe:DatePipe
   ) { }
 
   ngOnInit(): void {
-
+    this.getProperList();
   }
 
   saveLoading=false;//加载效果
-  fbsAbnormalWorkingHours:FbsAbnormalWorkingHours={}
+  fbsAbnormalWorkingHours:FbsAbnormalWorkingHours={
+    date:new Date().toString()
+  }
   properList=[];//人员下拉选择集合
 
+  /**
+   * 初始化人员下拉数据集合
+   */
+  getProperList(){
+    this.properList=[
+      {id:"张三",name:"张三"}
+    ]
+  }
+
+   /**
+   * 人员下拉款选择事件
+   */
+  personnelChange(personnelIdU8){
+    //获取名称
+    this.properList.forEach(element => {
+      if(personnelIdU8===element.id){
+        this.fbsAbnormalWorkingHours.name=element.name;
+        this.fbsAbnormalWorkingHours.personnelNameU8=element.name;
+        this.fbsAbnormalWorkingHours.productionLineName="电器组装";
+      }
+    });
+  }
+
+
   describeList=[];//异常描述集合表格数据
   /**
    * 描述增加行按钮
@@ -53,6 +84,13 @@ export class FbsAbnormalWorkingHoursAddComponent implements OnInit {
     this.describeSort++;
   }
 
+  /**
+   * 删除行
+   */
+  describeDeleteRow(sort){
+    this.describeList = this.describeList.filter(d => d.sort !== sort);
+  }
+
   typeList=[];//异常类型集合表格数据
   /**
    * 异常类型增加行按钮
@@ -69,12 +107,33 @@ export class FbsAbnormalWorkingHoursAddComponent implements OnInit {
     this.typeSort++;
   }
 
+  /**
+   * 删除行
+   */
+  typeDeleteRow(sort){
+    this.typeList = this.typeList.filter(d => d.sort !== sort);
+  }
+
 
   /**
    * 保存按钮
    */
   save(){
-
+    this.saveLoading=true;
+    //时间格式化
+    this.fbsAbnormalWorkingHours.date=this.datePipe.transform(this.fbsAbnormalWorkingHours.date, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsAbnormalWorkingHours.fbsAbnormalWorkingHoursDescribeList=this.describeList;//获取异常工时描述
+    this.fbsAbnormalWorkingHours.fbsAbnormalWorkingHoursTypeList=this.typeList;//获取异常工时类别
+    this.fbsAbnormalWorkingHoursService.addAndChild(this.fbsAbnormalWorkingHours).then((response)=>{
+      if(response.success){//保存成功
+        this.nzNotificationService.success("保存成功","");
+        this.saveLoading=false;//加载效果关闭
+        this.drawerRef.close(true);//关闭抽屉 启动主页面的回调
+      }else{//保存失败
+        this.nzNotificationService.error("保存失败",response.message);
+        this.saveLoading=false;//加载效果关闭
+      }
+    })
   }
 
   close() {

+ 5 - 1
src/app/routes/fbs-abnormal-working-hours/fbs-abnormal-working-hours.module.ts

@@ -3,11 +3,15 @@ import { SharedModule } from '@shared';
 import { FbsAbnormalWorkingHoursRoutingModule } from './fbs-abnormal-working-hours-routing.module';
 import { FbsAbnormalWorkingHoursListComponent } from './list/list.component';
 import { FbsAbnormalWorkingHoursAddComponent } from './add/add.component';
+import { FbsAbnormalWorkingHoursUpdateComponent } from './update/update.component';
+import { FbsAbnormalWorkingHoursViewComponent } from './view/view.component';
 
 const COMPONENTS = [
   FbsAbnormalWorkingHoursListComponent];
 const COMPONENTS_NOROUNT = [
-  FbsAbnormalWorkingHoursAddComponent];
+  FbsAbnormalWorkingHoursAddComponent,
+  FbsAbnormalWorkingHoursUpdateComponent,
+  FbsAbnormalWorkingHoursViewComponent];
 
 @NgModule({
   imports: [

+ 41 - 14
src/app/routes/fbs-abnormal-working-hours/list/list.component.html

@@ -4,6 +4,31 @@
   </ng-template>
 </page-header>
 <nz-card>
+  <form nz-form>
+    <!-- 查询条件 -->
+    <div nz-row [nzGutter]="{xs:12,sm:15,md:29,lg: 36, xl: 40}">
+      <!-- 姓名 -->
+      <div nz-col nzXs="24" nzSm="4" nzLg="8">
+        <nz-form-item class="nz-form-item">
+          <nz-form-label [nzSpan]="8">姓名</nz-form-label>
+          <nz-form-control [nzSpan]="16">
+            <input [(ngModel)]="fbsAbnormalWorkingHours.name" name="name" nz-input
+              placeholder="{{'clinical.protocol.number'|translate}}" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <!-- 按钮 -->
+      <div nz-col nzXs="24" nzSm="4" nzLg="8">
+        <nz-form-item class="nz-form-item">
+          <nz-form-label [nzSpan]="2" [nzNoColon]="true"></nz-form-label>
+          <nz-form-control [nzSpan]="16">
+            <!-- 查询 -->
+            <button nz-button nzType="primary" (click)="query()">查询</button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+    </div>
+  </form>
   <!-- 数据表 -->
   <nz-table nzSize="small" class="buttonDistance" [nzData]="dataList" [nzLoading]="isLoading"
     [nzFrontPagination]="false" #borderedTable [nzTotal]="page.total" [nzPageIndex]="page.current"
@@ -12,26 +37,28 @@
       <tr>
         <th>姓名</th>
         <th>日期</th>
-        <th>生产订单号</th>
-        <th>产品</th>
-        <th>任务数量</th>
-        <th>标准工时</th>
-        <th>计划开工时间</th>
-        <th>计划完工时间</th>
+        <th>加班工时</th>
+        <th>培训</th>
+        <th>会议</th>
+        <th>5S</th>
+        <th>质量</th>
+        <th>设计</th>
+        <th>返工</th>
         <th style="width:15%">{{ 'table.operation' | translate }}</th>
       </tr>
     </thead>
     <tbody>
       <tr *ngFor="let item of  borderedTable.data">
         <!-- <td >{{item.milestoneCode}}</td> -->
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
+        <td>{{item.name}}</td>
+        <td>{{item.date}}</td>
+        <td>{{item.overtimeHours}}</td>
+        <td>{{item.train}}</td>
+        <td>{{item.meeting}}</td>
+        <td>{{item.fiveS}}</td>
+        <td>{{item.quality}}</td>
+        <td>{{item.design}}</td>
+        <td>{{item.rework}}</td>
         <td>
           <!-- 详情 -->
           <a (click)="view(item)">{{ 'table.view' | translate }}</a>

+ 88 - 14
src/app/routes/fbs-abnormal-working-hours/list/list.component.ts

@@ -4,20 +4,25 @@ import { STColumn, STComponent } from '@delon/abc';
 import { SFSchema } from '@delon/form';
 import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hours';
 import { FbsAbnormalWorkingHoursAddComponent } from '../add/add.component';
-import { NzDrawerService } from 'ng-zorro-antd';
+import { NzDrawerService, NzNotificationService } from 'ng-zorro-antd';
+import { FbsAbnormalWorkingHoursUpdateComponent } from '../update/update.component';
+import { FbsAbnormalWorkingHoursViewComponent } from '../view/view.component';
+import { FbsAbnormalWorkingHoursService } from 'app/services/fbs/fbs-abnormal-working-hours.service';
 
 @Component({
   selector: 'app-fbs-abnormal-working-hours-list',
   templateUrl: './list.component.html',
 })
 export class FbsAbnormalWorkingHoursListComponent implements OnInit {
- 
+  constructor(private nzDrawerService: NzDrawerService,
+    private fbsAbnormalWorkingHoursService:FbsAbnormalWorkingHoursService,
+    private nzNotificationService: NzNotificationService) {}
 
-  constructor(private nzDrawerService:NzDrawerService) { }
-
-  ngOnInit() { }
+  ngOnInit() {
+    this.getList();
+  }
 
-  dataList = [{}]; //表格数据
+  dataList = []; //表格数据
   isLoading = false; //表格加载
   page = {
     total: 0,
@@ -25,13 +30,37 @@ export class FbsAbnormalWorkingHoursListComponent implements OnInit {
     size: 0,
   };
 
-  fbsAbnormalWorkingHours:FbsAbnormalWorkingHours={}
+  fbsAbnormalWorkingHours: FbsAbnormalWorkingHours = {};
   // 按页码查询
   pageIndexChange(event) {
     this.fbsAbnormalWorkingHours.pageNo = event;
     //主数据刷新
   }
 
+  /**
+   * 主数据查询
+   */
+  getList(){
+    this.isLoading=true;
+    this.fbsAbnormalWorkingHoursService.list(this.fbsAbnormalWorkingHours).then((response)=>{
+      if(response.success){//查询成功
+        this.dataList=response.result.records;//表格数据
+        this.page=response.result;//分页数据
+        this.isLoading=false;
+      }
+    })
+  }
+
+  /**
+   * 查询按钮
+   */
+  query(){
+    this.fbsAbnormalWorkingHours.pageNo=1;
+    //主数据刷新
+    this.getList();
+  }
+
+
   /**
    * 新增按钮
    */
@@ -49,21 +78,66 @@ export class FbsAbnormalWorkingHoursListComponent implements OnInit {
     drawerRef.afterClose.subscribe(isRefresh => {
       if (isRefresh) {
         //刷新list列表
-        // this.getPreList();
+        this.getList();
       }
     });
   }
 
-  view(){
-
+  /**
+   * 详情按钮
+   */
+  view(item) {
+    //打开详情抽屉
+    const drawerRef = this.nzDrawerService.create<FbsAbnormalWorkingHoursViewComponent>({
+      nzTitle: '详情生产异常信息统计单',
+      nzContent: FbsAbnormalWorkingHoursViewComponent,
+      nzWidth: window.innerWidth,
+      nzBodyStyle: { height: 'calc(100% - 55px)', overflow: 'auto', 'padding-bottom': '53px' },
+      nzContentParams: {
+        id:item.id
+      },
+    });
   }
 
-  update(){
+  /**
+   * 修改按钮
+   */
+  update(item) {
+    //打开修改抽屉
+    const drawerRef = this.nzDrawerService.create<FbsAbnormalWorkingHoursUpdateComponent>({
+      nzTitle: '修改生产异常信息统计单',
+      nzContent: FbsAbnormalWorkingHoursUpdateComponent,
+      nzWidth: window.innerWidth,
+      nzBodyStyle: { height: 'calc(100% - 55px)', overflow: 'auto', 'padding-bottom': '53px' },
+      nzContentParams: {
+        id:item.id
+      },
+    });
 
+    //关闭抽屉的回调
+    drawerRef.afterClose.subscribe(isRefresh => {
+      if (isRefresh) {
+        //刷新list列表
+        this.getList();
+      }
+    });
   }
 
-  delete(){
-
+  /**
+   * 删除按钮
+   */
+  delete(item) {
+    this.isLoading=true;
+    this.fbsAbnormalWorkingHoursService.deleteAndChild(item.id).then((response)=>{
+      if(response.success){
+        this.nzNotificationService.success("删除成功","");
+        //刷新list列表
+        this.getList();
+        this.isLoading=false;
+      }else{
+        this.nzNotificationService.success("删除失败",response.message);
+        this.isLoading=false;
+      }
+    })
   }
-
 }

+ 179 - 0
src/app/routes/fbs-abnormal-working-hours/update/update.component.html

@@ -0,0 +1,179 @@
+<nz-spin [nzSpinning]="saveLoading">
+  <!-- 主数据 -->
+  <nz-table nzSize="small" [nzNoResult]="' '" nzBordered #basicTable [nzShowPagination]="false" style="margin-bottom: 5px;">
+    <thead>
+      <tr>
+        <!-- 异常工时信息统计单 -->
+        <th colspan="7">
+          <h2><strong>异常工时信息统计单</strong></h2>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td style="width: 25%;">姓名</td>
+        <td style="width: 25%;" colSpan="2">
+          <nz-select [(ngModel)]="fbsAbnormalWorkingHours.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
+            nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
+            <ng-container *ngFor="let proper of properList">
+              <nz-option [nzLabel]="proper.id" [nzValue]="proper.name"> </nz-option>
+            </ng-container>
+          </nz-select>
+        </td>
+        <td style="width: 25%;" colSpan="2">日期</td>
+        <td style="width: 25%;" colspan="2">
+          <nz-date-picker [(ngModel)]="fbsAbnormalWorkingHours.date" nzPlaceHolder="请选择">
+          </nz-date-picker>
+        </td>
+      </tr>
+      <tr>
+        <td>加班记录</td>
+        <td>加班工时</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.overtimeHours" [nzMin]="0" [nzStep]="1">
+          </nz-input-number>
+        </td>
+        <td>加班原因</td>
+        <td colspan="3">
+          <textarea rows="2" nz-input [(ngModel)]="fbsAbnormalWorkingHours.overtimeReason"></textarea>
+        </td>
+      </tr>
+      <tr>
+        <td style="width: 25%;" rowSpan="2">其他工时统计</td>
+        <td style="width: 10%;">培训</td>
+        <td style="width: 15%;">
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.train" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td style="width: 10%;">会议</td>
+        <td style="width: 15%;">
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.meeting" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td style="width: 10%;">5S</td>
+        <td style="width: 15%;">
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.fiveS" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+      </tr>
+      <tr>
+        <td>研发</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.researchAndDevelopment" [nzMin]="0" [nzStep]="1">
+          </nz-input-number>
+        </td>
+        <td colSpan="5"></td>
+      </tr>
+      <tr>
+        <td rowSpan="3">异常工时统计</td>
+        <td>质量</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.quality" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td>设计</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.design" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td>返工</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.rework" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+      </tr>
+      <tr>
+        <td>物料</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.materiel" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td>能源</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.energy" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td>其他</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.other" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+      </tr>
+      <tr>
+        <td>设备</td>
+        <td>
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.equipment" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+        <td>计划</td>
+        <td colSpan="4">
+          <nz-input-number [(ngModel)]="fbsAbnormalWorkingHours.plan" [nzMin]="0" [nzStep]="1"></nz-input-number>
+        </td>
+      </tr>
+      <tr></tr>
+    </tbody>
+  </nz-table>
+
+  <!-- 子表数据 -->
+  <div nz-row nzGutter="24">
+    <!-- 异常原因描述 -->
+    <div nz-col nzMd="24" nzLg="12">
+      <nz-card nzTitle="异常原因描述">
+        <!-- 按钮 -->
+        <div nz-row [nzGutter]="24">
+          <div nz-col nzMd="24" nzLg="24">
+            <button (click)="describeAddRow()" nz-button nzType="primary">新增</button>
+          </div>
+        </div>
+        <!-- 表格 -->
+        <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false" [nzFrontPagination]=false>
+          <thead>
+            <tr>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="80%">异常原因描述</th>
+              <th nzWidth="10%">操作</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of editRowTable.data">
+              <td>{{data.sort}}</td>
+              <td><textarea rows="1" nz-input [(ngModel)]="data.describes"></textarea></td>
+              <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="describeDeleteRow(data.sort)">删除</a></td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </nz-card>
+    </div>
+
+    <!-- 异常类型 -->
+    <div nz-col nzMd="24" nzLg="12">
+      <nz-card nzTitle="异常类别">
+        <!-- 按钮 -->
+        <div nz-row [nzGutter]="24">
+          <div nz-col nzMd="24" nzLg="24">
+            <button (click)="typeAddRow()" nz-button nzType="primary">新增</button>
+          </div>
+        </div>
+        <!-- 表格 -->
+        <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false" [nzFrontPagination]=false>
+          <thead>
+            <tr>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="80%">异常类型</th>
+              <th nzWidth="10%">操作</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of typeTable.data">
+              <td>{{data.sort}}</td>
+              <td><input nz-input placeholder="请输入" [(ngModel)]="data.typeName" /></td>
+              <td><a nz-popconfirm nzTitle="是否删除?" (nzOnConfirm)="typeDeleteRow(data.sort)">删除</a></td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </nz-card>
+    </div>
+
+  </div>
+</nz-spin>
+
+<!-- 底部按钮 -->
+<div class="base">
+  <!-- 底部关闭按钮 -->
+  <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)" (nzOnConfirm)="close()">
+    <button nz-button class="ant-btn buttonDistance"><span>关闭
+      </span></button>
+  </a>
+  <!-- 底部保存按钮 -->
+  <button nzbutton (click)="save()" nz-button nzType="primary" [nzLoading]="saveLoading"><span>保存</span></button>
+</div>

+ 24 - 0
src/app/routes/fbs-abnormal-working-hours/update/update.component.spec.ts

@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { FbsAbnormalWorkingHoursUpdateComponent } from './update.component';
+
+describe('FbsAbnormalWorkingHoursUpdateComponent', () => {
+  let component: FbsAbnormalWorkingHoursUpdateComponent;
+  let fixture: ComponentFixture<FbsAbnormalWorkingHoursUpdateComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ FbsAbnormalWorkingHoursUpdateComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(FbsAbnormalWorkingHoursUpdateComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 203 - 0
src/app/routes/fbs-abnormal-working-hours/update/update.component.ts

@@ -0,0 +1,203 @@
+import { Component, OnInit } from '@angular/core';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
+import { _HttpClient } from '@delon/theme';
+import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hours';
+import { FbsAbnormalWorkingHoursService } from 'app/services/fbs/fbs-abnormal-working-hours.service';
+import { DatePipe } from '@angular/common';
+import { FbsAbnormalWorkingHoursDescribe } from 'app/entity/fbs/fbs-abnormal-working-hours-describe';
+import { FbsAbnormalWorkingHoursType } from 'app/entity/fbs/fbs-abnormal-working-hours-type';
+
+@Component({
+  selector: 'app-fbs-abnormal-working-hours-update',
+  templateUrl: './update.component.html',
+  styles: [
+    `
+      .base {
+        position: absolute;
+        bottom: 0px;
+        width: 100%;
+        border-top: 1px solid rgb(232, 232, 232);
+        padding: 10px 16px;
+        text-align: right;
+        left: 0px;
+        background: #fff;
+        z-index: 99;
+      }
+    `,
+  ],
+})
+export class FbsAbnormalWorkingHoursUpdateComponent implements OnInit {
+  constructor(
+    private drawerRef: NzDrawerRef,
+    private fbsAbnormalWorkingHoursService: FbsAbnormalWorkingHoursService,
+    private nzNotificationService: NzNotificationService,
+    private datePipe: DatePipe,
+  ) {}
+
+  ngOnInit(): void {
+    this.getProperList();
+    this.getById().then(()=>{
+      return this.getDescribeListById()
+    }).then(()=>{
+      return this.getTypeById();
+    }).then(()=>{
+      this.saveLoading=false;
+    })
+  }
+
+  saveLoading = false; //加载效果
+  fbsAbnormalWorkingHours: FbsAbnormalWorkingHours = {};
+  properList = []; //人员下拉选择集合
+  /**
+   * 初始化人员下拉数据集合
+   */
+  getProperList() {
+    this.properList = [{ id: '张三', name: '张三' }];
+  }
+
+   /**
+   * 人员下拉款选择事件
+   */
+  personnelChange(personnelIdU8){
+    //获取名称
+    this.properList.forEach(element => {
+      if(personnelIdU8===element.id){
+        this.fbsAbnormalWorkingHours.name=element.name;
+        this.fbsAbnormalWorkingHours.personnelNameU8=element.name;
+        this.fbsAbnormalWorkingHours.productionLineName="电器组装";
+      }
+    });
+  }
+
+  /**
+   * 根据id查询主表数据
+   */
+  id = '';
+  getById() {
+    return new Promise(resolve => {
+      this.saveLoading=true;
+      this.fbsAbnormalWorkingHoursService.getById(this.id).then(response => {
+        if(response.success){//查询成功
+          this.fbsAbnormalWorkingHours=response.result;
+          resolve();
+        }else{
+          this.nzNotificationService.error("查询失败",response.message)
+          this.saveLoading=false;
+        }
+      });
+    });
+  }
+
+  /**
+   * 查询异常工时描述
+   */
+  getDescribeListById(){
+    return new Promise((resolve)=>{
+      //查询条件
+      let fbsAbnormalWorkingHoursDescribe=new FbsAbnormalWorkingHoursDescribe();
+      fbsAbnormalWorkingHoursDescribe.pageSize=1000;
+      fbsAbnormalWorkingHoursDescribe.abnormalWorkingHoursId=this.fbsAbnormalWorkingHours.id;//主表id
+      //查询
+      this.fbsAbnormalWorkingHoursService.getDescribeList(fbsAbnormalWorkingHoursDescribe).then((response)=>{
+        this.describeList=response.result.records;
+        this.describeSort=this.describeList.length+1;
+        resolve();
+      })
+    })
+  }
+
+  /**
+   * 查询异常工时类别
+   */
+  getTypeById(){
+    return new Promise((resolve)=>{
+      //查询条件
+      let fbsAbnormalWorkingHoursType=new FbsAbnormalWorkingHoursType();
+      fbsAbnormalWorkingHoursType.pageSize=1000;
+      fbsAbnormalWorkingHoursType.abnormalWorkingHoursId=this.fbsAbnormalWorkingHours.id;//主表id
+      //查询
+      this.fbsAbnormalWorkingHoursService.getTypeList(fbsAbnormalWorkingHoursType).then((response)=>{
+        this.typeList=response.result.records;
+        this.typeSort=this.typeList.length+1;
+        resolve();
+      })
+    })
+  }
+
+  describeList = []; //异常描述集合表格数据
+  /**
+   * 描述增加行按钮
+   */
+  describeSort = 1;
+  describeAddRow() {
+    this.describeList = [
+      ...this.describeList,
+      {
+        describe: '',
+        sort: this.describeSort,
+      },
+    ];
+    this.describeSort++;
+  }
+
+  /**
+   * 删除行
+   */
+  describeDeleteRow(sort) {
+    this.describeList = this.describeList.filter(d => d.sort !== sort);
+  }
+
+  typeList = []; //异常类型集合表格数据
+  /**
+   * 异常类型增加行按钮
+   */
+  typeSort = 1;
+  typeAddRow() {
+    this.typeList = [
+      ...this.typeList,
+      {
+        typeName: '',
+        sort: this.typeSort,
+      },
+    ];
+    this.typeSort++;
+  }
+
+  /**
+   * 删除行
+   */
+  typeDeleteRow(sort) {
+    this.typeList = this.typeList.filter(d => d.sort !== sort);
+  }
+
+  /**
+   * 保存按钮
+   */
+  save() {
+    this.saveLoading=true;
+    //时间格式化
+    this.fbsAbnormalWorkingHours.date = this.datePipe.transform(
+      this.fbsAbnormalWorkingHours.date,
+      'yyyy-MM-dd HH:mm:ss',
+    );
+    this.fbsAbnormalWorkingHours.fbsAbnormalWorkingHoursDescribeList = this.describeList; //获取异常工时描述
+    this.fbsAbnormalWorkingHours.fbsAbnormalWorkingHoursTypeList = this.typeList; //获取异常工时类别
+    this.fbsAbnormalWorkingHoursService.updateAndChild(this.fbsAbnormalWorkingHours).then(response => {
+      if (response.success) {
+        //保存成功
+        this.nzNotificationService.success('保存成功', '');
+        this.saveLoading = false; //加载效果关闭
+        this.drawerRef.close(true); //关闭抽屉 启动主页面的回调
+      } else {
+        //保存失败
+        this.nzNotificationService.error('保存失败',response.message);
+        this.saveLoading = false; //加载效果关闭
+      }
+    });
+  }
+
+  close() {
+    //抽屉关闭
+    this.drawerRef.close();
+  }
+}

+ 150 - 0
src/app/routes/fbs-abnormal-working-hours/view/view.component.html

@@ -0,0 +1,150 @@
+<nz-spin [nzSpinning]="saveLoading">
+  <!-- 主数据 -->
+  <nz-table nzSize="small"  [nzNoResult]="' '" nzBordered #basicTable [nzShowPagination]="false" style="margin-bottom: 5px;">
+    <thead>
+      <tr>
+        <!-- 异常工时信息统计单 -->
+        <th colspan="7">
+          <h2><strong>异常工时信息统计单</strong></h2>
+        </th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td style="width: 25%;">姓名</td>
+        <td style="width: 25%;" colSpan="2">
+          {{fbsAbnormalWorkingHours.name}}
+        </td>
+        <td style="width: 25%;" colSpan="2">日期</td>
+        <td style="width: 25%;" colspan="2">
+          {{fbsAbnormalWorkingHours.date}}
+        </td>
+      </tr>
+      <tr>
+        <td>加班记录</td>
+        <td>加班工时</td>
+        <td>
+          {{fbsAbnormalWorkingHours.overtimeHours}}
+        </td>
+        <td>加班原因</td>
+        <td colspan="3">
+          {{fbsAbnormalWorkingHours.overtimeReason}}
+        </td>
+      </tr>
+      <tr>
+        <td style="width: 25%;" rowSpan="2">其他工时统计</td>
+        <td style="width: 10%;">培训</td>
+        <td style="width: 15%;">
+          {{fbsAbnormalWorkingHours.train}}
+        </td>
+        <td style="width: 10%;">会议</td>
+        <td style="width: 15%;">
+          {{fbsAbnormalWorkingHours.meeting}}
+        </td>
+        <td style="width: 10%;">5S</td>
+        <td style="width: 15%;">
+          {{fbsAbnormalWorkingHours.fiveS}}
+        </td>
+      </tr>
+      <tr>
+        <td>研发</td>
+        <td>
+          {{fbsAbnormalWorkingHours.researchAndDevelopment}}
+        </td>
+        <td colSpan="5"></td>
+      </tr>
+      <tr>
+        <td rowSpan="3">异常工时统计</td>
+        <td>质量</td>
+        <td>
+          {{fbsAbnormalWorkingHours.quality}}
+        </td>
+        <td>设计</td>
+        <td>
+          {{fbsAbnormalWorkingHours.design}}
+        </td>
+        <td>返工</td>
+        <td>
+          {{fbsAbnormalWorkingHours.rework}}
+        </td>
+      </tr>
+      <tr>
+        <td>物料</td>
+        <td>
+          {{fbsAbnormalWorkingHours.materiel}}
+        </td>
+        <td>能源</td>
+        <td>
+          {{fbsAbnormalWorkingHours.energy}}
+        </td>
+        <td>其他</td>
+        <td>
+          {{fbsAbnormalWorkingHours.other}}
+        </td>
+      </tr>
+      <tr>
+        <td>设备</td>
+        <td>
+          {{fbsAbnormalWorkingHours.equipment}}
+        </td>
+        <td>计划</td>
+        <td colSpan="4">
+          {{fbsAbnormalWorkingHours.plan}}
+        </td>
+      </tr>
+      <tr></tr>
+    </tbody>
+  </nz-table>
+
+  <!-- 子表数据 -->
+  <div nz-row nzGutter="24">
+    <!-- 异常原因描述 -->
+    <div nz-col nzMd="24" nzLg="12">
+      <nz-card nzTitle="异常原因描述">
+        <!-- 表格 -->
+        <nz-table style="margin-top: 5px;" nzSize="small" #editRowTable nzBordered [nzData]="describeList" [nzShowPagination]="false" [nzFrontPagination]=false>
+          <thead>
+            <tr>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="90%">异常原因描述</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of editRowTable.data">
+              <td>{{data.sort}}</td>
+              <td>{{data.describes}}</td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </nz-card>
+    </div>
+
+    <!-- 异常类型 -->
+    <div nz-col nzMd="24" nzLg="12">
+      <nz-card nzTitle="异常类别">
+        <!-- 表格 -->
+        <nz-table style="margin-top: 5px;" nzSize="small" #typeTable nzBordered [nzData]="typeList" [nzShowPagination]="false" [nzFrontPagination]=false>
+          <thead>
+            <tr>
+              <th nzWidth="10%">序号</th>
+              <th nzWidth="90%">异常类型</th>
+            </tr>
+          </thead>
+          <tbody>
+            <tr *ngFor="let data of typeTable.data">
+              <td>{{data.sort}}</td>
+              <td>{{data.typeName}}</td>
+            </tr>
+          </tbody>
+        </nz-table>
+      </nz-card>
+    </div>
+
+  </div>
+</nz-spin>
+
+<!-- 底部按钮 -->
+<div class="base">
+  <!-- 底部关闭按钮 -->
+    <button (click)="close()" nz-button class="ant-btn buttonDistance"><span>关闭</span></button>
+</div>

+ 24 - 0
src/app/routes/fbs-abnormal-working-hours/view/view.component.spec.ts

@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { FbsAbnormalWorkingHoursViewComponent } from './view.component';
+
+describe('FbsAbnormalWorkingHoursViewComponent', () => {
+  let component: FbsAbnormalWorkingHoursViewComponent;
+  let fixture: ComponentFixture<FbsAbnormalWorkingHoursViewComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ FbsAbnormalWorkingHoursViewComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(FbsAbnormalWorkingHoursViewComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 113 - 0
src/app/routes/fbs-abnormal-working-hours/view/view.component.ts

@@ -0,0 +1,113 @@
+import { Component, OnInit } from '@angular/core';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
+import { _HttpClient } from '@delon/theme';
+import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hours';
+import { FbsAbnormalWorkingHoursDescribe } from 'app/entity/fbs/fbs-abnormal-working-hours-describe';
+import { FbsAbnormalWorkingHoursService } from 'app/services/fbs/fbs-abnormal-working-hours.service';
+import { FbsAbnormalWorkingHoursType } from 'app/entity/fbs/fbs-abnormal-working-hours-type';
+
+@Component({
+  selector: 'app-fbs-abnormal-working-hours-view',
+  templateUrl: './view.component.html',
+  styles: [
+    `
+    .base{
+      position: absolute;
+      bottom: 0px;
+      width: 100%;
+      border-top: 1px solid rgb(232, 232, 232);
+      padding: 10px 16px;
+      text-align: right;
+      left: 0px;
+      background: #fff;
+      z-index:99;
+    }
+
+    `
+  ]
+})
+export class FbsAbnormalWorkingHoursViewComponent implements OnInit {
+  
+  constructor(
+    private drawerRef:NzDrawerRef,
+    private fbsAbnormalWorkingHoursService: FbsAbnormalWorkingHoursService,
+    private nzNotificationService: NzNotificationService
+  ) { }
+
+  ngOnInit(): void {
+    this.getById().then(()=>{
+      return this.getDescribeListById()
+    }).then(()=>{
+      return this.getTypeById();
+    }).then(()=>{
+      this.saveLoading=false;
+    })
+  }
+
+  saveLoading=false;//加载效果
+  fbsAbnormalWorkingHours:FbsAbnormalWorkingHours={}
+  properList=[];//人员下拉选择集合
+
+  describeList=[];//异常描述集合表格数据
+  typeList=[];//异常类型集合表格数据
+  
+
+  /**
+   * 根据id查询主表数据
+   */
+  id = '';
+  getById() {
+    return new Promise(resolve => {
+      this.saveLoading=true;
+      this.fbsAbnormalWorkingHoursService.getById(this.id).then(response => {
+        if(response.success){//查询成功
+          this.fbsAbnormalWorkingHours=response.result;
+          resolve();
+        }else{
+          this.nzNotificationService.error("查询失败",response.message)
+          this.saveLoading=false;
+        }
+      });
+    });
+  }
+
+  /**
+   * 查询异常工时描述
+   */
+  getDescribeListById(){
+    return new Promise((resolve)=>{
+      //查询条件
+      let fbsAbnormalWorkingHoursDescribe=new FbsAbnormalWorkingHoursDescribe();
+      fbsAbnormalWorkingHoursDescribe.pageSize=1000;
+      fbsAbnormalWorkingHoursDescribe.abnormalWorkingHoursId=this.fbsAbnormalWorkingHours.id;//主表id
+      //查询
+      this.fbsAbnormalWorkingHoursService.getDescribeList(fbsAbnormalWorkingHoursDescribe).then((response)=>{
+        this.describeList=response.result.records;
+        resolve();
+      })
+    })
+  }
+
+  /**
+   * 查询异常工时类别
+   */
+  getTypeById(){
+    return new Promise((resolve)=>{
+      //查询条件
+      let fbsAbnormalWorkingHoursType=new FbsAbnormalWorkingHoursType();
+      fbsAbnormalWorkingHoursType.pageSize=1000;
+      fbsAbnormalWorkingHoursType.abnormalWorkingHoursId=this.fbsAbnormalWorkingHours.id;//主表id
+      //查询
+      this.fbsAbnormalWorkingHoursService.getTypeList(fbsAbnormalWorkingHoursType).then((response)=>{
+        this.typeList=response.result.records;
+        resolve();
+      })
+    })
+  }
+
+
+  close() {
+    //抽屉关闭
+    this.drawerRef.close();
+  }
+}

+ 22 - 15
src/app/routes/fbs-workshop-dispatch-list/add/add.component.html

@@ -3,7 +3,9 @@
     <thead>
       <tr>
         <!-- 派工单 -->
-        <th colspan="4"><h2><strong>派工单</strong></h2></th>
+        <th colspan="4">
+          <h2><strong>派工单</strong></h2>
+        </th>
       </tr>
     </thead>
     <tbody>
@@ -11,7 +13,7 @@
         <td style="width: 25%;">姓名</td>
         <td style="width: 25%;">
           <nz-select [(ngModel)]="fbsWorkshopDispatchList.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
-            nzPlaceHolder="请选择">
+            nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
             <ng-container *ngFor="let proper of properList">
               <nz-option [nzLabel]="proper.id" [nzValue]="proper.name"> </nz-option>
             </ng-container>
@@ -19,15 +21,15 @@
         </td>
         <td style="width: 25%;">日期</td>
         <td style="width: 25%;">
-          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.date" nzPlaceHolder="请选择">
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.date" nzPlaceHolder="请选择" nzDisabled>
           </nz-date-picker>
         </td>
       </tr>
       <tr>
         <td>生产订单号</td>
         <td>
-          <nz-select [(ngModel)]="fbsWorkshopDispatchList.productionOrderNumberId" style="width: 100%;" nzShowSearch nzAllowClear
-            nzPlaceHolder="请选择">
+          <nz-select [(ngModel)]="fbsWorkshopDispatchList.productionOrderNumberId" style="width: 100%;" nzShowSearch
+            nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="productionOrderNumberChange($event)">
             <ng-container *ngFor="let productionOrderNumber of productionOrderNumberList">
               <nz-option [nzLabel]="productionOrderNumber.id" [nzValue]="productionOrderNumber.name"> </nz-option>
             </ng-container>
@@ -35,23 +37,30 @@
         </td>
         <td>产品</td>
         <td>
-          
+          {{fbsWorkshopDispatchList.product}}
         </td>
       </tr>
       <tr>
         <td>任务数量</td>
-        <td></td>
+        <td><nz-input-number [(ngModel)]="fbsWorkshopDispatchList.numberOfTasks" [nzMin]="0" [nzStep]="1"></nz-input-number></td>
         <td>标准工时</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.standardWorkingHours}}</td>
       </tr>
       <tr>
         <td>计划开工时间</td>
-        <td></td>
+        <td>
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.plannedStartTime" nzPlaceHolder="请选择" >
+          </nz-date-picker>
+        </td>
         <td>计划完工时间</td>
-        <td></td>
+        <td>
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.plannedEndTime" nzPlaceHolder="请选择">
+          </nz-date-picker>
+        </td>
       </tr>
       <tr>
-        <td colSpan="4">备注</td>
+        <td>备注</td>
+        <td colSpan="3"><textarea rows="2" nz-input [(ngModel)]="fbsWorkshopDispatchList.memo"></textarea></td>
       </tr>
     </tbody>
   </nz-table>
@@ -59,12 +68,10 @@
 <!-- 底部按钮 -->
 <div class="base">
   <!-- 底部关闭按钮 -->
-  <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)"
-    (nzOnConfirm)="close()">
+  <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)" (nzOnConfirm)="close()">
     <button nz-button class="ant-btn buttonDistance"><span>关闭
       </span></button>
   </a>
   <!-- 底部保存按钮 -->
-  <button nzbutton (click)="save()" nz-button nzType="primary"
-    [nzLoading]="saveLoading"><span>保存</span></button>
+  <button nzbutton (click)="save()" nz-button nzType="primary" [nzLoading]="saveLoading"><span>保存</span></button>
 </div>

+ 74 - 7
src/app/routes/fbs-workshop-dispatch-list/add/add.component.ts

@@ -1,7 +1,9 @@
 import { Component, OnInit } from '@angular/core';
-import { NzModalRef, NzMessageService, NzDrawerRef } from 'ng-zorro-antd';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
 import { _HttpClient } from '@delon/theme';
 import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
+import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
+import { DatePipe } from '@angular/common';
 
 @Component({
   selector: 'app-fbs-workshop-dispatch-list-add',
@@ -26,25 +28,90 @@ import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-li
 export class FbsWorkshopDispatchListAddComponent implements OnInit {
 
   constructor(
-    private drawerRef:NzDrawerRef
+    private drawerRef:NzDrawerRef,
+    private fbsWorkshopDispatchListService: FbsWorkshopDispatchListService,
+    private nzNotificationService: NzNotificationService,
+    private datePipe:DatePipe
   ) { 
-    
+    this.getProperList();
+    this.getProductionOrderNumberList();
   }
 
   ngOnInit(): void {
+    //计划开工时间:默认同派工日期
+    //计划完工时间:默认同派工日期
+    this.fbsWorkshopDispatchList.plannedStartTime=this.fbsWorkshopDispatchList.date;
+    this.fbsWorkshopDispatchList.plannedEndTime=this.fbsWorkshopDispatchList.date;
   }
 
   saveLoading=false;//加载动态
-  properList=[{id:"张三",name:"张三"}]
-  productionOrderNumberList=[]
-  fbsWorkshopDispatchList:FbsWorkshopDispatchList={}
+  properList=[];//人员数据下拉集合
+  productionOrderNumberList=[];//生产订单号下拉数据集合
+  fbsWorkshopDispatchList:FbsWorkshopDispatchList={
+    date:new Date().toString()
+  }
 
+  /**
+   * 初始化人员下拉数据集合
+   */
+  getProperList(){
+    this.properList=[
+      {id:"张三",name:"张三"}
+    ]
+  }
+
+  /**
+   * 人员下拉款选择事件
+   */
+  personnelChange(personnelIdU8){
+    //获取名称
+    this.properList.forEach(element => {
+      if(personnelIdU8===element.id){
+        this.fbsWorkshopDispatchList.name=element.name;
+        this.fbsWorkshopDispatchList.personnelNameU8=element.name;
+      }
+    });
+  }
+
+  /**
+   * 初始化生产订单号下拉数据集合
+   */
+  getProductionOrderNumberList(){
+    this.productionOrderNumberList=[
+      {id:"SC001",name:"SC001"}
+    ]
+  }
+
+  /**
+   * 生产订单号选中事件
+   */
+  productionOrderNumberChange(productionOrderNumberId){
+    this.fbsWorkshopDispatchList.productionLineName="电器组装"
+    this.fbsWorkshopDispatchList.productionOrderNumberName="SC001"
+    this.fbsWorkshopDispatchList.product="产品001"
+    this.fbsWorkshopDispatchList.standardWorkingHours="8";
+  }
 
   /**
    * 保存
    */
   save(){
-
+    //加载效果打开
+    this.saveLoading=true;
+    //时间格式化
+    this.fbsWorkshopDispatchList.date=this.datePipe.transform(this.fbsWorkshopDispatchList.date, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchList.plannedStartTime=this.datePipe.transform(this.fbsWorkshopDispatchList.plannedStartTime, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchList.plannedEndTime=this.datePipe.transform(this.fbsWorkshopDispatchList.plannedEndTime, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchListService.add(this.fbsWorkshopDispatchList).then((response)=>{
+      if(response.success){//保存成功
+        this.nzNotificationService.success("保存成功","");
+        this.saveLoading=false;//加载效果关闭
+        this.drawerRef.close(true);//关闭抽屉 启动主页面的回调
+      }else{//保存失败
+        this.nzNotificationService.error("保存失败",response.message);
+        this.saveLoading=false;//加载效果关闭
+      }
+    })
   }
 
   close() {

+ 33 - 8
src/app/routes/fbs-workshop-dispatch-list/list/list.component.html

@@ -4,6 +4,31 @@
   </ng-template>
 </page-header>
 <nz-card>
+  <form nz-form>
+    <!-- 查询条件 -->
+    <div nz-row [nzGutter]="{xs:12,sm:15,md:29,lg: 36, xl: 40}">
+      <!-- 姓名 -->
+      <div nz-col nzXs="24" nzSm="4" nzLg="8">
+        <nz-form-item class="nz-form-item">
+          <nz-form-label [nzSpan]="8">姓名</nz-form-label>
+          <nz-form-control [nzSpan]="16">
+            <input [(ngModel)]="fbsWorkshopDispatchList.name" name="name" nz-input
+              placeholder="{{'clinical.protocol.number'|translate}}" />
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+      <!-- 按钮 -->
+      <div nz-col nzXs="24" nzSm="4" nzLg="8">
+        <nz-form-item class="nz-form-item">
+          <nz-form-label [nzSpan]="2" [nzNoColon]="true"></nz-form-label>
+          <nz-form-control [nzSpan]="16">
+            <!-- 查询 -->
+            <button nz-button nzType="primary" (click)="query()">查询</button>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+    </div>
+  </form>
   <!-- 数据表 -->
   <nz-table nzSize="small" class="buttonDistance" [nzData]="dataList" [nzLoading]="isLoading"
     [nzFrontPagination]="false" #borderedTable [nzTotal]="page.total" [nzPageIndex]="page.current"
@@ -24,14 +49,14 @@
     <tbody>
       <tr *ngFor="let item of  borderedTable.data">
         <!-- <td >{{item.milestoneCode}}</td> -->
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
-        <td></td>
+        <td>{{item.name}}</td>
+        <td>{{item.date}}</td>
+        <td>{{item.productionOrderNumberName}}</td>
+        <td>{{item.product}}</td>
+        <td>{{item.numberOfTasks}}</td>
+        <td>{{item.standardWorkingHours}}</td>
+        <td>{{item.plannedStartTime}}</td>
+        <td>{{item.plannedEndTime}}</td>
         <td>
           <!-- 详情 -->
           <a (click)="view(item)">{{ 'table.view' | translate }}</a>

+ 65 - 11
src/app/routes/fbs-workshop-dispatch-list/list/list.component.ts

@@ -2,23 +2,31 @@ import { Component, OnInit, ViewChild } from '@angular/core';
 import { _HttpClient, ModalHelper } from '@delon/theme';
 import { STColumn, STComponent } from '@delon/abc';
 import { SFSchema } from '@delon/form';
-import { NzDrawerService } from 'ng-zorro-antd';
+import { NzDrawerService, NzNotificationService } from 'ng-zorro-antd';
 import { FbsWorkshopDispatchListAddComponent } from '../add/add.component';
 import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
 import { FbsWorkshopDispatchListUpdateComponent } from '../update/update.component';
 import { FbsWorkshopDispatchListViewComponent } from '../view/view.component';
+import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
 
 @Component({
   selector: 'app-fbs-workshop-dispatch-list-list',
   templateUrl: './list.component.html',
 })
 export class FbsWorkshopDispatchListListComponent implements OnInit {
-  constructor(private nzDrawerService: NzDrawerService) {}
+  constructor(
+    private nzDrawerService: NzDrawerService,
+    private fbsWorkshopDispatchListService: FbsWorkshopDispatchListService,
+    private nzNotificationService: NzNotificationService
+  ) {}
 
-  ngOnInit() {}
+  ngOnInit() {
+    this.getList();
+  }
 
-  dataList = [{}]; //表格数据
+  dataList = []; //表格数据
   isLoading = false; //表格加载
+  //分页参数
   page = {
     total: 0,
     current: 0,
@@ -26,10 +34,34 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
   };
   fbsWorkshopDispatchList: FbsWorkshopDispatchList = {}; //派工单对象
 
+  /**
+   * 查询按钮
+   */
+  query(){
+    this.fbsWorkshopDispatchList.pageNo=1;
+    //主数据刷新
+    this.getList();
+  }
+
   // 按页码查询
   pageIndexChange(event) {
     this.fbsWorkshopDispatchList.pageNo = event;
     //主数据刷新
+    this.getList();
+  }
+
+  /**
+   * 主数据查询
+   */
+  getList(){
+    this.isLoading=true
+    this.fbsWorkshopDispatchListService.list(this.fbsWorkshopDispatchList).then((response)=>{
+      if(response.success){//查询成功
+        this.dataList=response.result.records;//表格数据
+        this.page=response.result;//分页数据
+        this.isLoading=false;
+      }
+    })
   }
 
   /**
@@ -49,40 +81,62 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
     drawerRef.afterClose.subscribe(isRefresh => {
       if (isRefresh) {
         //刷新list列表
-        // this.getPreList();
+        this.getList();
       }
     });
   }
 
-  view() {
+  /**
+   * 详情按钮
+   */
+  view(item) {
     //打开详情抽屉
     const drawerRef = this.nzDrawerService.create<FbsWorkshopDispatchListViewComponent>({
       nzTitle: '详情车间派工单',
       nzContent: FbsWorkshopDispatchListViewComponent,
       nzWidth: window.innerWidth,
       nzBodyStyle: { height: 'calc(100% - 55px)', overflow: 'auto', 'padding-bottom': '53px' },
-      nzContentParams: {},
+      nzContentParams: {
+        id:item.id
+      },
     });
   }
 
-  update() {
+  /**
+   * 修改按钮
+   */
+  update(item) {
     //打开修改抽屉
     const drawerRef = this.nzDrawerService.create<FbsWorkshopDispatchListUpdateComponent>({
       nzTitle: '修改车间派工单',
       nzContent: FbsWorkshopDispatchListUpdateComponent,
       nzWidth: window.innerWidth,
       nzBodyStyle: { height: 'calc(100% - 55px)', overflow: 'auto', 'padding-bottom': '53px' },
-      nzContentParams: {},
+      nzContentParams: {
+        id:item.id
+      },
     });
 
     //关闭抽屉的回调
     drawerRef.afterClose.subscribe(isRefresh => {
       if (isRefresh) {
         //刷新list列表
-        // this.getPreList();
+        this.getList();
       }
     });
   }
 
-  delete() {}
+  /**
+   * 删除按钮
+   */
+  delete(item) {
+    this.fbsWorkshopDispatchListService.deleteAndChild(item.id).then((response)=>{
+      if(response.success){
+        this.nzNotificationService.success("删除成功","");
+        this.getList();//刷新
+      }else{
+        this.nzNotificationService.warning("删除失败","");
+      }
+    })
+  }
 }

+ 22 - 15
src/app/routes/fbs-workshop-dispatch-list/update/update.component.html

@@ -3,7 +3,9 @@
     <thead>
       <tr>
         <!-- 派工单 -->
-        <th colspan="4"><h2><strong>派工单</strong></h2></th>
+        <th colspan="4">
+          <h2><strong>派工单</strong></h2>
+        </th>
       </tr>
     </thead>
     <tbody>
@@ -11,7 +13,7 @@
         <td style="width: 25%;">姓名</td>
         <td style="width: 25%;">
           <nz-select [(ngModel)]="fbsWorkshopDispatchList.personnelIdU8" style="width: 100%;" nzShowSearch nzAllowClear
-            nzPlaceHolder="请选择">
+            nzPlaceHolder="请选择" (ngModelChange)="personnelChange($event)">
             <ng-container *ngFor="let proper of properList">
               <nz-option [nzLabel]="proper.id" [nzValue]="proper.name"> </nz-option>
             </ng-container>
@@ -19,15 +21,15 @@
         </td>
         <td style="width: 25%;">日期</td>
         <td style="width: 25%;">
-          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.date" nzPlaceHolder="请选择">
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.date" nzPlaceHolder="请选择" nzDisabled>
           </nz-date-picker>
         </td>
       </tr>
       <tr>
         <td>生产订单号</td>
         <td>
-          <nz-select [(ngModel)]="fbsWorkshopDispatchList.productionOrderNumberId" style="width: 100%;" nzShowSearch nzAllowClear
-            nzPlaceHolder="请选择">
+          <nz-select [(ngModel)]="fbsWorkshopDispatchList.productionOrderNumberId" style="width: 100%;" nzShowSearch
+            nzAllowClear nzPlaceHolder="请选择" (ngModelChange)="productionOrderNumberChange($event)">
             <ng-container *ngFor="let productionOrderNumber of productionOrderNumberList">
               <nz-option [nzLabel]="productionOrderNumber.id" [nzValue]="productionOrderNumber.name"> </nz-option>
             </ng-container>
@@ -35,23 +37,30 @@
         </td>
         <td>产品</td>
         <td>
-          
+          {{fbsWorkshopDispatchList.product}}
         </td>
       </tr>
       <tr>
         <td>任务数量</td>
-        <td></td>
+        <td><nz-input-number [(ngModel)]="fbsWorkshopDispatchList.numberOfTasks" [nzMin]="0" [nzStep]="1"></nz-input-number></td>
         <td>标准工时</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.standardWorkingHours}}</td>
       </tr>
       <tr>
         <td>计划开工时间</td>
-        <td></td>
+        <td>
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.plannedStartTime" nzPlaceHolder="请选择" >
+          </nz-date-picker>
+        </td>
         <td>计划完工时间</td>
-        <td></td>
+        <td>
+          <nz-date-picker [(ngModel)]="fbsWorkshopDispatchList.plannedEndTime" nzPlaceHolder="请选择">
+          </nz-date-picker>
+        </td>
       </tr>
       <tr>
-        <td colSpan="4">备注</td>
+        <td>备注</td>
+        <td colSpan="3"><textarea rows="2" nz-input [(ngModel)]="fbsWorkshopDispatchList.memo"></textarea></td>
       </tr>
     </tbody>
   </nz-table>
@@ -59,12 +68,10 @@
 <!-- 底部按钮 -->
 <div class="base">
   <!-- 底部关闭按钮 -->
-  <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)"
-    (nzOnConfirm)="close()">
+  <a nz-popconfirm style="margin-right: 2%" nzTitle="确认关闭吗(关闭前请确认数据已保存)" (nzOnConfirm)="close()">
     <button nz-button class="ant-btn buttonDistance"><span>关闭
       </span></button>
   </a>
   <!-- 底部保存按钮 -->
-  <button nzbutton (click)="save()" nz-button nzType="primary"
-    [nzLoading]="saveLoading"><span>保存</span></button>
+  <button nzbutton (click)="save()" nz-button nzType="primary" [nzLoading]="saveLoading"><span>保存</span></button>
 </div>

+ 85 - 4
src/app/routes/fbs-workshop-dispatch-list/update/update.component.ts

@@ -1,7 +1,9 @@
 import { Component, OnInit } from '@angular/core';
-import { NzModalRef, NzMessageService, NzDrawerRef } from 'ng-zorro-antd';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
 import { _HttpClient } from '@delon/theme';
 import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
+import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
+import { DatePipe } from '@angular/common';
 
 @Component({
   selector: 'app-fbs-workshop-dispatch-list-update',
@@ -26,25 +28,104 @@ import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-li
 export class FbsWorkshopDispatchListUpdateComponent implements OnInit {
   
   constructor(
-    private drawerRef:NzDrawerRef
+    private drawerRef:NzDrawerRef,
+    private fbsWorkshopDispatchListService: FbsWorkshopDispatchListService,
+    private nzNotificationService: NzNotificationService,
+    private datePipe:DatePipe
   ) { 
     
   }
 
   ngOnInit(): void {
+    this.getProperList();
+    this.getProductionOrderNumberList();
+    this.getById();
   }
 
   saveLoading=false;//加载动态
-  properList=[{id:"张三",name:"张三"}]
+  properList=[]
   productionOrderNumberList=[]
   fbsWorkshopDispatchList:FbsWorkshopDispatchList={}
 
+  /**
+   * 初始化人员下拉数据集合
+   */
+  getProperList(){
+    this.properList=[
+      {id:"张三",name:"张三"}
+    ]
+  }
+
+  /**
+   * 人员下拉款选择事件
+   */
+  personnelChange(personnelIdU8){
+    //获取名称
+    this.properList.forEach(element => {
+      if(personnelIdU8===element.id){
+        this.fbsWorkshopDispatchList.name=element.name;
+        this.fbsWorkshopDispatchList.personnelNameU8=element.name;
+      }
+    });
+  }
+
+  /**
+   * 初始化生产订单号下拉数据集合
+   */
+  getProductionOrderNumberList(){
+    this.productionOrderNumberList=[
+      {id:"SC001",name:"SC001"}
+    ]
+  }
+
+  /**
+   * 生产订单号选中事件
+   */
+  productionOrderNumberChange(productionOrderNumberId){
+    this.fbsWorkshopDispatchList.productionLineName="电器组装"
+    this.fbsWorkshopDispatchList.productionOrderNumberName="SC001"
+    this.fbsWorkshopDispatchList.product="产品001"
+    this.fbsWorkshopDispatchList.standardWorkingHours="8";
+  }
+
+  id="";
+  /**
+   * 根据id查询车间派工单
+   */
+  getById(){
+    this.saveLoading=true;
+    this.fbsWorkshopDispatchListService.getById(this.id).then((response)=>{
+      if(response.success){
+        this.fbsWorkshopDispatchList=response.result;
+        this.saveLoading=false;
+      }else{
+        this.nzNotificationService.error("查询失败",response.message);
+        this.saveLoading=false;
+      }
+    })
+  }
+
 
   /**
    * 保存
    */
   save(){
-
+    //加载效果打开
+    this.saveLoading=true;
+    //时间格式化
+    this.fbsWorkshopDispatchList.date=this.datePipe.transform(this.fbsWorkshopDispatchList.date, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchList.plannedStartTime=this.datePipe.transform(this.fbsWorkshopDispatchList.plannedStartTime, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchList.plannedEndTime=this.datePipe.transform(this.fbsWorkshopDispatchList.plannedEndTime, 'yyyy-MM-dd HH:mm:ss');
+    this.fbsWorkshopDispatchListService.edit(this.fbsWorkshopDispatchList).then((response)=>{
+      if(response.success){//保存成功
+        this.nzNotificationService.success("保存成功","");
+        this.saveLoading=false;//加载效果关闭
+        this.drawerRef.close(true);//关闭抽屉 启动主页面的回调
+      }else{//保存失败
+        this.nzNotificationService.error("保存失败",response.message);
+        this.saveLoading=false;//加载效果关闭
+      }
+    })
   }
 
   close() {

+ 10 - 9
src/app/routes/fbs-workshop-dispatch-list/view/view.component.html

@@ -10,37 +10,38 @@
       <tr>
         <td style="width: 25%;">姓名</td>
         <td style="width: 25%;">
-
+          {{fbsWorkshopDispatchList.personnelNameU8}}
         </td>
         <td style="width: 25%;">日期</td>
         <td style="width: 25%;">
-
+          {{fbsWorkshopDispatchList.date}}
         </td>
       </tr>
       <tr>
         <td>生产订单号</td>
         <td>
-
+          {{fbsWorkshopDispatchList.productionOrderNumberName}}
         </td>
         <td>产品</td>
         <td>
-
+          {{fbsWorkshopDispatchList.product}}
         </td>
       </tr>
       <tr>
         <td>任务数量</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.numberOfTasks}}</td>
         <td>标准工时</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.standardWorkingHours}}</td>
       </tr>
       <tr>
         <td>计划开工时间</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.plannedStartTime}}</td>
         <td>计划完工时间</td>
-        <td></td>
+        <td>{{fbsWorkshopDispatchList.plannedEndTime}}</td>
       </tr>
       <tr>
-        <td colSpan="4">备注</td>
+        <td >备注</td>
+        <td colSpan="3">{{fbsWorkshopDispatchList.memo}}</td>
       </tr>
     </tbody>
   </nz-table>

+ 20 - 5
src/app/routes/fbs-workshop-dispatch-list/view/view.component.ts

@@ -1,7 +1,8 @@
 import { Component, OnInit } from '@angular/core';
-import { NzModalRef, NzMessageService, NzDrawerRef } from 'ng-zorro-antd';
+import { NzModalRef, NzMessageService, NzDrawerRef, NzNotificationService } from 'ng-zorro-antd';
 import { _HttpClient } from '@delon/theme';
 import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
+import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
 
 @Component({
   selector: 'app-fbs-workshop-dispatch-list-view',
@@ -26,25 +27,39 @@ import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-li
 export class FbsWorkshopDispatchListViewComponent implements OnInit {
   
   constructor(
-    private drawerRef:NzDrawerRef
+    private drawerRef:NzDrawerRef,
+    private fbsWorkshopDispatchListService: FbsWorkshopDispatchListService,
+    private nzNotificationService: NzNotificationService
   ) { 
     
   }
 
   ngOnInit(): void {
+    this.getById();
   }
 
   saveLoading=false;//加载动态
   fbsWorkshopDispatchList:FbsWorkshopDispatchList={}
 
 
+  id="";
   /**
-   * 保存
+   * 根据id查询车间派工单
    */
-  save(){
-
+  getById(){
+    this.saveLoading=true;
+    this.fbsWorkshopDispatchListService.getById(this.id).then((response)=>{
+      if(response.success){
+        this.fbsWorkshopDispatchList=response.result;
+        this.saveLoading=false;
+      }else{
+        this.nzNotificationService.error("查询失败",response.message);
+        this.saveLoading=false;
+      }
+    })
   }
 
+ 
   close() {
      //抽屉关闭
      this.drawerRef.close();

+ 68 - 0
src/app/services/fbs/fbs-abnormal-working-hours.service.ts

@@ -0,0 +1,68 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { BaseResponse } from 'app/entity/baseResponse';
+import { Result } from 'app/entity/Result';
+import { FbsAbnormalWorkingHours } from 'app/entity/fbs/fbs-abnormal-working-hours';
+import { FbsAbnormalWorkingHoursDescribe } from 'app/entity/fbs/fbs-abnormal-working-hours-describe';
+import { FbsAbnormalWorkingHoursType } from 'app/entity/fbs/fbs-abnormal-working-hours-type';
+
+@Injectable({
+  providedIn: 'root'
+})
+/**
+ * 异常工时统计
+ */
+export class FbsAbnormalWorkingHoursService {
+
+  constructor(private http:HttpClient) { }
+
+  // 查询
+  async list(body:any): Promise<BaseResponse<Result<FbsAbnormalWorkingHours[]>>> {
+    return await this.http.get<BaseResponse<Result<FbsAbnormalWorkingHours[]>>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/list',{params:body}).toPromise();
+  }
+
+  // 新增
+  async add(body: FbsAbnormalWorkingHours): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.post<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/add', body).toPromise();
+  }
+
+  // 修改
+  async edit(body: FbsAbnormalWorkingHours): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.put<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/edit', body).toPromise();
+  }
+
+  // 通过id删除
+  async delete(id: string): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.delete<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/delete', { params: { id: id } }).toPromise();
+  }
+
+  // 根据id查询
+  async getById(id: string): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.get<BaseResponse<FbsAbnormalWorkingHours>>("/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/queryById", { params: { id: id } }).toPromise();
+  }
+
+  // 新增主表和子表
+  async addAndChild(body: FbsAbnormalWorkingHours): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.post<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/addAndChild', body).toPromise();
+  }
+
+  // 修改主表和子表
+  async updateAndChild(body: FbsAbnormalWorkingHours): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.put<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/updateAndChild', body).toPromise();
+  }
+
+  // 物理删除主表和子表
+  async deleteAndChild(id: string): Promise<BaseResponse<FbsAbnormalWorkingHours>> {
+    return await this.http.delete<BaseResponse<FbsAbnormalWorkingHours>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHours/deleteAndChild', { params: { id: id } }).toPromise();
+  }
+  
+  // 查询异常工时描述
+  async getDescribeList(body:any): Promise<BaseResponse<Result<FbsAbnormalWorkingHoursDescribe[]>>> {
+    return await this.http.get<BaseResponse<Result<FbsAbnormalWorkingHoursDescribe[]>>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHoursDescribe/list',{params:body}).toPromise();
+  }
+
+  // 查询异常类别
+  async getTypeList(body:any): Promise<BaseResponse<Result<FbsAbnormalWorkingHoursType[]>>> {
+    return await this.http.get<BaseResponse<Result<FbsAbnormalWorkingHoursType[]>>>('/fbsAbnormalWorkingHours/fbsAbnormalWorkingHoursType/list',{params:body}).toPromise();
+  }
+}

+ 46 - 0
src/app/services/fbs/fbs-workshop-dispatch-list.service.ts

@@ -0,0 +1,46 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { BaseResponse } from 'app/entity/baseResponse';
+import { Result } from 'app/entity/Result';
+import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
+
+@Injectable({
+  providedIn: 'root'
+})
+/**
+ * 车间派工单
+ */
+export class FbsWorkshopDispatchListService {
+
+  constructor(private http:HttpClient) { }
+
+  // 查询
+  async list(body:any): Promise<BaseResponse<Result<FbsWorkshopDispatchList[]>>> {
+    return await this.http.get<BaseResponse<Result<FbsWorkshopDispatchList[]>>>('/fbsWorkshopDispatchList/fbsWorkshopDispatchList/list',{params:body}).toPromise();
+  }
+
+  // 新增
+  async add(body: FbsWorkshopDispatchList): Promise<BaseResponse<FbsWorkshopDispatchList>> {
+    return await this.http.post<BaseResponse<FbsWorkshopDispatchList>>('/fbsWorkshopDispatchList/fbsWorkshopDispatchList/add', body).toPromise();
+  }
+
+  // 修改
+  async edit(body: FbsWorkshopDispatchList): Promise<BaseResponse<FbsWorkshopDispatchList>> {
+    return await this.http.put<BaseResponse<FbsWorkshopDispatchList>>('/fbsWorkshopDispatchList/fbsWorkshopDispatchList/edit', body).toPromise();
+  }
+
+  // 通过id删除
+  async delete(id: string): Promise<BaseResponse<FbsWorkshopDispatchList>> {
+    return await this.http.delete<BaseResponse<FbsWorkshopDispatchList>>('/fbsWorkshopDispatchList/fbsWorkshopDispatchList/delete', { params: { id: id } }).toPromise();
+  }
+
+  // 根据id查询
+  async getById(id: string): Promise<BaseResponse<FbsWorkshopDispatchList>> {
+    return await this.http.get<BaseResponse<FbsWorkshopDispatchList>>("/fbsWorkshopDispatchList/fbsWorkshopDispatchList/queryById", { params: { id: id } }).toPromise();
+  }
+
+  // 物理删除主表和子表
+  async deleteAndChild(id: string): Promise<BaseResponse<FbsWorkshopDispatchList>> {
+    return await this.http.delete<BaseResponse<FbsWorkshopDispatchList>>('/fbsWorkshopDispatchList/fbsWorkshopDispatchList/deleteAndChild', { params: { id: id } }).toPromise();
+  }
+}

BIN
src/assets/logo_fbs_b.png