chenc 4 years ago
parent
commit
188dcaa9aa

+ 1 - 0
src/app/entity/fbs/fbs-workshop-dispatch-list.ts

@@ -48,6 +48,7 @@ export class FbsWorkshopDispatchList extends Page{
 	standardWorkingHoursZ?:string
 	//剩余数量
 	remainingQuantity?:number;
+	state?:string;
 
 	latestCompletedQuantity?:string;
   manHoursCompleted?:string;

+ 59 - 35
src/app/routes/dashboard/analysis/analysis.component.html

@@ -64,17 +64,30 @@
 <th nzLeft="60px" nzWidth="100px"><strong>生产线</strong></th>
 <th nzLeft="160px" nzWidth="100px"><strong>生产订单号</strong></th> -->
 <nz-spin [nzSpinning]="saveLoading">
+  <!-- <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">
+              <nz-date-picker name="fbsWorkshopDispatchList.projectName" [(ngModel)]="fbsWorkshopDispatchList.projectName" nzPlaceHolder="请选择" >
+              </nz-date-picker>
+          </nz-form-control>
+        </nz-form-item>
+      </div>
+    </div>
+</form> -->
 <div nz-row [nzGutter]="24" class="pt-lg">
   <div nz-col nzXs="24" nzSm="24" nzMd="24" nzLg="24">
     <nz-table class="tableTdPadding"  nzSize="small" #columnTable nzBordered [nzData]="listOfData" 
       [nzScroll]="{ x: widthLength+'px', y:'550px'}" [nzShowPagination]="false" [nzFrontPagination]="false">
       <thead>
         <tr>
-          <th nzWidth="60px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>序号</strong></th>
-          <th nzWidth="100px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>项目名称</strong></th>
-          <th nzWidth="110px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>生产订单号</strong></th>
-          <th nzWidth="120px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>物料编码</strong></th>
-          <th nzWidth="200px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>物料名称</strong></th>
+          <th nzLeft="0px" nzWidth="60px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>序号</strong></th>
+          <th nzLeft="58px" nzWidth="100px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>项目名称</strong></th>
+          <th nzLeft="157px" nzWidth="110px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>生产订单号</strong></th>
+          <th nzLeft="265px" nzWidth="120px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>物料编码</strong></th>
+          <th nzLeft="383px" nzWidth="200px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>物料名称</strong></th>
           <th nzWidth="80px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>月度计划</strong></th>
           <th nzWidth="100px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>标准总工时</strong></th>
           <th nzWidth="110px" nzAlign="center" style="background-color:rgb(223, 223, 219)"><strong>累计完成数量</strong></th>
@@ -89,7 +102,8 @@
           </ng-container>
         </tr>
         <tr>
-          <th colspan="9"></th>
+          <th colspan="5" nzLeft="0px"></th>
+          <th colspan="4" ></th>
           <ng-container *ngFor="let date of dateList;let i=index">
             <th colspan="6" *ngIf="i%2===0" style="background-color:rgb(223, 223, 219)"><strong>{{date.finalTime|date:'y-MM-dd'}}</strong></th>
             <th colspan="6" *ngIf="i%2!==0" ><strong>{{date.finalTime|date:'y-MM-dd'}}</strong></th>
@@ -100,11 +114,11 @@
         <tr *ngFor="let data of columnTable.data;let i = index">
           <ng-container *ngIf="data.projectName!=='统计'">
           <!-- *ngIf="data.mergeLines!=0" [attr.rowSpan]="data.mergeLines" -->
-          <td *ngIf="data.mergeLines!=0" [attr.rowSpan]="data.mergeLines">{{ data.sort }}</td>
-          <td *ngIf="data.mergeLines!=0" [attr.rowSpan]="data.mergeLines">{{ data.projectName }}</td>
-          <td>{{ data.productionOrderNumberName }}</td>
-          <td>{{data.productId}}</td>
-          <td>{{data.product}}</td>
+          <td nzLeft="0px" *ngIf="data.mergeLines!=0" [attr.rowSpan]="data.mergeLines">{{ data.sort }}</td>
+          <td nzLeft="58px" *ngIf="data.mergeLines!=0" [attr.rowSpan]="data.mergeLines">{{ data.projectName }}</td>
+          <td nzLeft="157px">{{ data.productionOrderNumberName }}</td>
+          <td nzLeft="265px">{{data.productId}}</td>
+          <td nzLeft="383px">{{data.product}}</td>
           <td nzAlign="center">{{data.numberOfTasksTotal}}</td>
           <td nzAlign="center">{{data.standardWorkingHoursTotal}}</td>
           <td nzAlign="center">{{data.quantityCompletedTotal}}</td>
@@ -128,11 +142,11 @@
         <!-- 统计 -->
         <tr style="background-color:rgb(223, 223, 219)" *ngFor="let data of columnTable.data;let i = index">
           <ng-container *ngIf="data.projectName==='统计'">
-          <td style="background-color:rgb(223, 223, 219)"></td>
-          <td style="background-color:rgb(223, 223, 219)">统计</td>
-          <td style="background-color:rgb(223, 223, 219)"></td>
-          <td></td>
-          <td></td>
+          <td nzLeft="0px" style="background-color:rgb(223, 223, 219)"></td>
+          <td nzLeft="58px" style="background-color:rgb(223, 223, 219);font-weight:bolder" nzAlign="center">统计</td>
+          <td nzLeft="157px" style="background-color:rgb(223, 223, 219)"></td>
+          <td nzLeft="265px"></td>
+          <td nzLeft="383px"></td>
           <td nzAlign="center">{{data.numberOfTasksTotal}}</td>
           <td nzAlign="center">{{data.standardWorkingHoursTotal}}</td>
           <td nzAlign="center">{{data.quantityCompletedTotal}}</td>
@@ -158,11 +172,11 @@
       <!-- 异常工时 -->
       <tbody>
         <tr>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
+          <td nzLeft="0px"></td>
+          <td nzLeft="58px"></td>
+          <td nzLeft="157px"></td>
+          <td nzLeft="265px"></td>
+          <td nzLeft="383px"></td>
           <!-- <td>月计划达成率</td>
           <td>1.95%</td>
           <td>月生产效率</td>
@@ -178,11 +192,11 @@
           </ng-container>
         </tr>
         <tr>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
+          <td nzLeft="0px"></td>
+          <td nzLeft="58px"></td>
+          <td nzLeft="157px"></td>
+          <td nzLeft="265px"></td>
+          <td nzLeft="383px"></td>
           <td colSpan="4">加班记录</td>
           <ng-container *ngFor="let abnormalWorkingHours of abnormalWorkingHoursList">
             <td>加班工时</td>
@@ -192,11 +206,16 @@
           </ng-container>
         </tr>
         <tr>
+          <!-- <td rowSpan="2"></td>
           <td rowSpan="2"></td>
           <td rowSpan="2"></td>
           <td rowSpan="2"></td>
-          <td rowSpan="2"></td>
-          <td rowSpan="2"></td>
+          <td rowSpan="2"></td> -->
+          <td nzLeft="0px" rowSpan="2"></td>
+          <td nzLeft="58px" rowSpan="2"></td>
+          <td nzLeft="157px" rowSpan="2"></td>
+          <td nzLeft="265px" rowSpan="2"></td>
+          <td nzLeft="383px" rowSpan="2"></td>
           <td colSpan="4" rowSpan="2">其他工时统计</td>
           <ng-container *ngFor="let abnormalWorkingHours of abnormalWorkingHoursList">
             <td>培训</td>
@@ -218,11 +237,16 @@
           </ng-container>
         </tr>
         <tr>
+          <!-- <td rowSpan="3"></td>
           <td rowSpan="3"></td>
           <td rowSpan="3"></td>
           <td rowSpan="3"></td>
-          <td rowSpan="3"></td>
-          <td rowSpan="3"></td>
+          <td rowSpan="3"></td> -->
+          <td nzLeft="0px" rowSpan="3"></td>
+          <td nzLeft="58px" rowSpan="3"></td>
+          <td nzLeft="157px" rowSpan="3"></td>
+          <td nzLeft="265px" rowSpan="3"></td>
+          <td nzLeft="383px" rowSpan="3"></td>
           <td colSpan="4" rowSpan="3">异常工时统计</td>
           <ng-container *ngFor="let abnormalWorkingHours of abnormalWorkingHoursList">
             <td>质量</td>
@@ -255,11 +279,11 @@
         </tr>
 
         <tr>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
-          <td></td>
+          <td nzLeft="0px"></td>
+          <td nzLeft="58px"></td>
+          <td nzLeft="157px"></td>
+          <td nzLeft="265px"></td>
+          <td nzLeft="383px"></td>
           <td colSpan="4">异常原因描述</td>
           <ng-container *ngFor="let abnormalWorkingHours of abnormalWorkingHoursList">
             <td colSpan="6">

+ 3 - 0
src/app/routes/dashboard/analysis/analysis.component.ts

@@ -8,6 +8,7 @@ import { yuan } from '@shared';
 import { ProjectFileService } from 'app/services/projectFile/project-file.service';
 import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
 import { FbsAbnormalWorkingHoursService } from 'app/services/fbs/fbs-abnormal-working-hours.service';
+import { FbsWorkshopDispatchList } from 'app/entity/fbs/fbs-workshop-dispatch-list';
 
 @Component({
   selector: 'app-dashboard-analysis',
@@ -323,6 +324,8 @@ export class DashboardAnalysisComponent implements OnInit {
   }
 
 
+  fbsWorkshopDispatchList:FbsWorkshopDispatchList={};
+
 
   listOfData=[]
 

+ 19 - 1
src/app/routes/fbs-abnormal-working-hours/list/list.component.html

@@ -12,7 +12,7 @@
       <!-- 姓名 -->
       <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-label [nzSpan]="8">时间</nz-form-label>
           <nz-form-control [nzSpan]="16">
             <!-- <input [(ngModel)]="fbsWorkshopDispatchList.name" name="name" nz-input
               placeholder="请输入" /> -->
@@ -56,9 +56,18 @@
         <th>培训</th>
         <th>会议</th>
         <th>5S</th>
+        <th>研发</th>
         <th>质量</th>
         <th>设计</th>
         <th>返工</th>
+        <th>物料</th>
+        <th>能源</th>
+        <th>其他</th>
+        <th>设备</th>
+        <th>计划</th>
+        <th>配料</th>
+        <th>入库</th>
+        <th>打包</th>
         <th style="width:15%">{{ 'table.operation' | translate }}</th>
       </tr>
     </thead>
@@ -70,10 +79,19 @@
         <td>{{item.overtimeHours}}</td>
         <td>{{item.train}}</td>
         <td>{{item.meeting}}</td>
+        <td>{{item.researchAndDevelopment}}</td>
         <td>{{item.fiveS}}</td>
         <td>{{item.quality}}</td>
         <td>{{item.design}}</td>
         <td>{{item.rework}}</td>
+        <td>{{item.materiel}}</td>
+        <td>{{item.energy}}</td>
+        <td>{{item.other}}</td>
+        <td>{{item.equipment}}</td>
+        <td>{{item.plan}}</td>
+        <td>{{item.mixedIngredients}}</td>
+        <td>{{item.warehousing}}</td>
+        <td>{{item.pack}}</td>
         <td>
           <!-- 详情 -->
           <a (click)="view(item)">{{ 'table.view' | translate }}</a>

+ 37 - 3
src/app/routes/fbs-workshop-dispatch-list/list/list.component.html

@@ -11,7 +11,7 @@
       <!-- 派工时间 -->
       <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-label [nzSpan]="8">派工时间</nz-form-label>
           <nz-form-control [nzSpan]="16">
             <!-- <input [(ngModel)]="fbsWorkshopDispatchList.name" name="name" nz-input
               placeholder="请输入" /> -->
@@ -58,8 +58,28 @@
         <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="请输入" />
+            <nz-select [(ngModel)]="fbsWorkshopDispatchList.personnelIdU8" name="personnelIdU8" style="width: 100%" nzShowSearch
+              nzAllowClear nzPlaceHolder="请选择" >
+              <ng-container *ngFor="let proper of properList">
+                <nz-option [nzLabel]="proper.personnelName" [nzValue]="proper.personnelCode"> </nz-option>
+              </ng-container>
+            </nz-select>
+          </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]="8">状态</nz-form-label>
+          <nz-form-control [nzSpan]="16">
+            <nz-select [(ngModel)]="fbsWorkshopDispatchList.state" name="state" style="width: 100%" nzShowSearch nzAllowClear
+              nzPlaceHolder="请选择" [nzDropdownMatchSelectWidth]="false">
+              <nz-option nzLabel="派工" nzValue="0"> </nz-option>
+              <nz-option nzLabel="上岗" nzValue="1"> </nz-option>
+              <nz-option nzLabel="暂停" nzValue="2"> </nz-option>
+              <nz-option nzLabel="进行中" nzValue="4"> </nz-option>
+              <nz-option nzLabel="完工" nzValue="3"> </nz-option>
+              </nz-select>
           </nz-form-control>
         </nz-form-item>
       </div>
@@ -122,6 +142,20 @@
 
         </td>
       </tr>
+      <tr>
+        <td>总计</td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+        <td></td>
+      </tr>
     </tbody>
   </nz-table>
 </nz-card>

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

@@ -9,6 +9,7 @@ import { FbsWorkshopDispatchListUpdateComponent } from '../update/update.compone
 import { FbsWorkshopDispatchListViewComponent } from '../view/view.component';
 import { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';
 import { DatePipe } from '@angular/common';
+import { FbsPersonnelService } from 'app/services/fbs/fbs-personnel.service';
 
 @Component({
   selector: 'app-fbs-workshop-dispatch-list-list',
@@ -20,11 +21,13 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
     private fbsWorkshopDispatchListService: FbsWorkshopDispatchListService,
     private nzNotificationService: NzNotificationService,
     private datePipe: DatePipe,
-    private xlsx: XlsxService
+    private xlsx: XlsxService,
+    private fbsPersonnelService:FbsPersonnelService
   ) {}
 
   ngOnInit() {
     this.getList();
+    this.getProperList();
   }
 
   dataList = []; //表格数据
@@ -75,9 +78,9 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
   /**
    * 导出
    */
-  exportLoading=false;
+  exportLoading = false;
   export() {
-    this.exportLoading=true;
+    this.exportLoading = true;
     //时间格式化
     // this.fbsWorkshopDispatchList.start = this.datePipe.transform(this.fbsWorkshopDispatchList.start, 'yyyy-MM-dd');
     // this.fbsWorkshopDispatchList.end = this.datePipe.transform(this.fbsWorkshopDispatchList.end, 'yyyy-MM-dd');
@@ -85,11 +88,11 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
     fbsWorkshopDispatchList.pageSize = 20000;
     fbsWorkshopDispatchList.start = this.datePipe.transform(this.fbsWorkshopDispatchList.start, 'yyyy-MM-dd');
     fbsWorkshopDispatchList.end = this.datePipe.transform(this.fbsWorkshopDispatchList.end, 'yyyy-MM-dd');
-    fbsWorkshopDispatchList.productionOrderNumberName=this.fbsWorkshopDispatchList.productionOrderNumberName;
+    fbsWorkshopDispatchList.productionOrderNumberName = this.fbsWorkshopDispatchList.productionOrderNumberName;
     this.fbsWorkshopDispatchListService.list(fbsWorkshopDispatchList).then(response => {
       if (response.success) {
         //查询成功
-        let dataList= response.result.records; //表格数据
+        let dataList = response.result.records; //表格数据
         this.getEfficiency(dataList); //计算效率
         let data = [];
         let title = [
@@ -119,8 +122,8 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
           row.push(element.standardWorkingHours);
           row.push(element.latestCompletedQuantity);
           row.push(element.manHoursCompleted);
-          row.push(element.numberEfficiency+"%");
-          row.push(element.workingHoursEfficiency+"%");
+          row.push(element.numberEfficiency + '%');
+          row.push(element.workingHoursEfficiency + '%');
           data.push(row);
         });
         // 导出
@@ -133,7 +136,7 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
           ],
           filename: '派工单导出.xlsx',
         });
-        this.exportLoading=false;
+        this.exportLoading = false;
       }
     });
   }
@@ -146,20 +149,51 @@ export class FbsWorkshopDispatchListListComponent implements OnInit {
       let numberOfTasks = element.numberOfTasks; //任务数量
       let standardWorkingHours = element.standardWorkingHours; //标准工时
       let latestCompletedQuantity = element.latestCompletedQuantity; //完成数量
+      let standardWorkingHoursZ=element.standardWorkingHoursZ;//rep标准工时
       let manHoursCompleted = element.manHoursCompleted; //完成工时
       if (latestCompletedQuantity && Number(latestCompletedQuantity) !== 0) {
         element.numberEfficiency = ((Number(latestCompletedQuantity) / Number(numberOfTasks)) * 100).toFixed(0);
       } else {
         element.numberEfficiency = 0;
       }
-      if (manHoursCompleted && Number(manHoursCompleted) !== 0&&standardWorkingHours && Number(standardWorkingHours) !== 0) {
-        element.workingHoursEfficiency = (Number(standardWorkingHours) / (Number(manHoursCompleted)) * 100).toFixed(0);
-      } else {
+      //生产效率
+      if (latestCompletedQuantity <= 0) {
+        //完成数量为0 生产效率为0
         element.workingHoursEfficiency = 0;
+      } else {
+        if (
+          manHoursCompleted &&
+          Number(manHoursCompleted) !== 0 &&
+          latestCompletedQuantity &&
+          Number(latestCompletedQuantity) !== 0
+          &&
+          standardWorkingHoursZ &&
+          Number(standardWorkingHoursZ) !== 0
+        ) {
+          element.workingHoursEfficiency = ((Number(standardWorkingHoursZ)*Number(latestCompletedQuantity) / Number(manHoursCompleted)) * 100).toFixed(
+            0,
+          );
+        } else {
+          element.workingHoursEfficiency = 0;
+        }
       }
     });
   }
 
+  /**
+   * 初始化人员下拉数据集合
+   */
+  properList=[];
+  getProperList(){
+    // this.fbsWorkshopDispatchListService.getPerAndDerp().then((response)=>{
+    //   this.properList=response.result
+    // })
+    this.fbsPersonnelService.list({pageSize:1000}).then((response)=>{
+      this.properList=response.result.records
+    })
+  }
+
+
   /**
    * 新增页面
    */

+ 5 - 0
src/app/routes/fbs-workshop-dispatch-list/update/update.component.ts

@@ -196,6 +196,11 @@ export class FbsWorkshopDispatchListUpdateComponent implements OnInit {
     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');
+    //修改了派工数量如果与完成数量一样则自动完工
+    if(Number(this.fbsWorkshopDispatchList.numberOfTasks) ===Number(this.fbsWorkshopDispatchList.latestCompletedQuantity)){
+      this.fbsWorkshopDispatchList.state="3";
+      
+    }
     this.fbsWorkshopDispatchListService.edit(this.fbsWorkshopDispatchList).then((response)=>{
       if(response.success){//保存成功
         this.nzNotificationService.success("保存成功","");