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 { FbsWorkshopDispatchListService } from 'app/services/fbs/fbs-workshop-dispatch-list.service';

@Component({
  selector: 'app-fbs-abnormal-working-hours-add',
  templateUrl: './add.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 FbsAbnormalWorkingHoursAddComponent implements OnInit {

  constructor(
    private drawerRef:NzDrawerRef,
    private fbsAbnormalWorkingHoursService:FbsAbnormalWorkingHoursService,
    private nzNotificationService: NzNotificationService,
    private fbsWorkshopDispatchListService:FbsWorkshopDispatchListService,
    private datePipe:DatePipe
  ) { }

  ngOnInit(): void {
    this.getProperList();
    this.getProductList();
    this.getTypeList();
  }

  saveLoading=false;//加载效果
  fbsAbnormalWorkingHours:FbsAbnormalWorkingHours={
    date:new Date().toString()
  }
  properList=[];//人员下拉选择集合

  /**
   * 初始化人员下拉数据集合
   */
  getProperList(){
    this.fbsWorkshopDispatchListService.getPerAndDerp().then((response)=>{
      this.properList=response.result
    })
  }

  /**
   * 人员下拉款选择事件
   */
  personnelChange(personnelIdU8){
    //获取名称
    this.properList.forEach(element => {
      if(personnelIdU8===element.cpersoncode){
        this.fbsAbnormalWorkingHours.name=element.cpersonname;
        this.fbsAbnormalWorkingHours.personnelNameU8=element.cpersonname;
        this.fbsAbnormalWorkingHours.productionLineId=element.cdepcode;//生产线id
        this.fbsAbnormalWorkingHours.productionLineName=element.cdepname;//生产线名产
      }
    });
  }

  productList=[];//产品集合
  getProductList(){
    //时间格式化
    let date=this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss');
    // this.fbsAbnormalWorkingHoursService.getDispatchListByDate(date).then((response)=>{
    //   this.productList=response.result;
    // })
  }

  /**
   * 订单号输入事件 ( 产品选择事件(获取产品名称、派工id)--前期逻辑根据选择的产品匹配)
   */
  productChange(event,data){
    if(!event){
      this.nzNotificationService.warning("验证","请输入订单编号");
      return;
    }
    this.fbsAbnormalWorkingHoursService.getDispatchListByDate(null,event).then((response)=>{
      if(response.success){
        this.productList=response.result;
        if(this.productList==null||this.productList.length==0){
          this.nzNotificationService.warning("验证","派工单未找到订单编号");
          return;
        }
        let element=this.productList[0]
        data.workshopDispatchListId=element.id;//派工单id
        data.productId=element.productId;
        data.product=element.product;//产品名称
        data.plannedQuantity=element.plannedQuantity;//计划数量
        data.productionOrderNumberName=element.productionOrderNumberName;
        data.costItemCode=element.costItemCode;//项目编码
        data.projectName=element.projectName;//项目名称
        data.workCenter=element.workCenter;//工作中心
      }else{
        this.nzNotificationService.warning("搜索失败",response.message);
      }
      
    })


    // if(event){
    //   this.productList.forEach(element => {
    //     if(event===element.productId){
    //       data.workshopDispatchListId=element.id;//派工单id
    //       data.product=element.product;//产品名称
    //       data.plannedQuantity=element.plannedQuantity;//计划数量
    //       data.productionOrderNumberName=element.productionOrderNumberName;
    //       data.costItemCode=element.costItemCode;//项目编码
    //       data.projectName=element.projectName;//项目名称
    //       data.workCenter=element.workCenter;//工作中心
    //     }
    //   });
    // }
  }

  /**
   * 获取类型集合
   */
  typeListSelect=[];
  getTypeList(){
    let page={pageSize:1000}
    this.fbsAbnormalWorkingHoursService.typelist(page).then((response)=>{
      this.typeListSelect=response.result.records;
    })
  }

  /**
   * 类型选择事件 (获取类型名称)
   */
  typeChange(event,data){
    if(event){
      this.typeListSelect.forEach(element => {
        if(element.id===event){
          // this.fbsAbnormalWorkingHours.typeName=element.typeName;
          data.typeName=element.typeName;
        }
      });
    }
  }

  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.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() {
    //抽屉关闭
    this.drawerRef.close();
  }
}