春风项目四线(合箱线、总装线)
wujian
2024-09-10 51b05b093fa15dd477981372f67ae7b3b2747733
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -1,12 +1,25 @@
<template>
  <div class="app-container">
    <div v-if="!showDetailFlag">
    <el-card class="box-card">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label-width="100" label="生产通知单" prop="productName">
      <el-form-item label-width="100" label="生产通知单" prop="productionNotice">
        <el-input v-model="queryParams.productionNotice" placeholder="请输入生产通知单" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label-width="100" label="工厂编号" prop="workshopCode">
        <el-select v-model="queryParams.workshopCode" placeholder="请选择工厂编号" clearable>
          <el-option
            v-for="dict in dict.type.factory_code"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label-width="80" label="生产订单" prop="workOrderNo">
        <el-input v-model="queryParams.workOrderNo" placeholder="请输入生产订单" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item style="margin-left: 14px" label="产品编号" prop="productCode">
        <el-input v-model="queryParams.productCode" placeholder="请输入产品编号" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
<!--      <el-form-item label="产品名称" prop="productName">-->
<!--        <el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter.native="handleQuery"/>-->
@@ -21,33 +34,23 @@
        </el-select>
      </el-form-item>
      <el-form-item style="float: right">
        <el-button type="warning" icon="el-icon-download" size="mini" @click="getProductionNotice">接收</el-button>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
      <el-form-item style="margin-left: 14px" label="产品编号" prop="productCode">
        <el-input v-model="queryParams.productCode" placeholder="请输入产品编号" clearable @keyup.enter.native="handleQuery"/>
      <el-form-item label="机型" prop="typeZ">
        <el-select v-model="queryParams.typeZ" placeholder="请选择机型" clearable>
          <el-option
            v-for="dict in typeSelectList"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label="订单编号" prop="salesOrderCode">
        <el-input v-model="queryParams.salesOrderCode" placeholder="请输入订单编号" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label="车间编号" prop="workshopCode">
        <el-input v-model="queryParams.workshopCode" placeholder="请输入车间编号" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label="产线编号" prop="lineCode">
        <el-input v-model="queryParams.lineCode" placeholder="请输入产线编号" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item style="margin-left: 7px" label-width="80" label="产品BOM" prop="bomCode">
        <el-input v-model="queryParams.bomCode" placeholder="请输入产品BOM" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label="工艺流程" prop="routeCode">
        <el-input v-model="queryParams.routeCode" placeholder="请输入工艺流程" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label="工艺配方" prop="recipeCode">
        <el-input v-model="queryParams.recipeCode" placeholder="请输入工艺配方" clearable @keyup.enter.native="handleQuery"/>
      <el-form-item label-width="130" label="发动机号" prop="engineNo">
        <el-input v-model="queryParams.engineNo" placeholder="请输入发动机号" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
    </el-form>
    </el-card>
@@ -56,21 +59,11 @@
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['om:productionOrde:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          :disabled="multiple"
          @click="handleUpdate"
          v-hasPermi="['om:productionOrde:edit']"
        >修改</el-button>
@@ -96,15 +89,25 @@
          v-hasPermi="['om:productionOrde:export']"
        >导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          type="success"
          plain
          icon="el-icon-upload2"
          :disabled="move"
          icon="el-icon-wind-power"
          size="mini"
          @click="moveUp(val => val, 'up')"
        >上移</el-button>
          @click="getProductionNotice"
        >接收</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="create"
          @click="CreatehandleUpdate"
        >生成</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
@@ -112,20 +115,9 @@
          plain
          icon="el-icon-download"
          size="mini"
          :disabled="move"
          @click="moveUp(val => val, 'down')"
        >下移</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-createUpdate"
          size="mini"
          :disabled="single"
          @click="CreatehandleUpdate"
          v-hasPermi="['om:productionOrde:createUpdate']"
        >生成</el-button>
          :disabled="!single"
          @click="goToPage"
        >开始作业</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -133,96 +125,42 @@
      <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column label="生产通知单号" width="160" align="center" prop="productionNotice">
        <el-table-column label="生产通知单" width="120" align="center" prop="productionNotice">
        </el-table-column>
        <el-table-column label="生产订单" width="160" align="center">
        <el-table-column label="生产订单" width="140" align="center">
          <template slot-scope="scope">
            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
            <router-link :to="{path: '/main/orderScheduling-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
              <span>{{ scope.row.workOrderNo }}</span>
            </router-link>
          </template>
        </el-table-column>
        <el-table-column label="机型" width="160" align="center" prop="typeZ">
        <el-table-column label="机型" width="100" align="center" prop="typeZ">
        </el-table-column>
        <el-table-column label="需求数量" align="center" prop="planQty">
        </el-table-column>
        <el-table-column label="产品编号" width="140" align="center" prop="productCode">
        <el-table-column label="产品编号" width="150" align="center" prop="productCode">
        </el-table-column>
<!--        <el-table-column label="实际数量" width="160" align="center" prop="actualQty">-->
<!--        </el-table-column>-->
        <el-table-column label="开工日期" width="120" align="center" prop="demandDate">
        </el-table-column>
        <el-table-column label="工单状态" align="center" prop="orderStatus">
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
<!--        <el-table-column label="工厂" align="center" prop="workshopCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="仓库" align="center">-->
<!--        </el-table-column>-->
        <el-table-column label="产线" align="center" prop="lineCode">
        <el-table-column label="工厂编号" align="center" prop="workshopCode">
        </el-table-column>
<!--        <el-table-column label="订单类型" align="center">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="ZWS" align="center">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="工艺流程" width="140" align="center" prop="routeCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="产品BOM" width="140" align="center" prop="bomCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际数量" align="center" prop="actualQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column width="160" label="更新时间" align="center" prop="updateTime">-->
<!--        </el-table-column>-->
        <el-table-column label="通知单制单人" width="80" align="center" prop="createUser">
        <el-table-column label="制单人" width="80" align="center" prop="createUser">
        </el-table-column>
        <el-table-column width="160" label="通知生成日期" align="center" prop="createTime">
        <el-table-column width="160" label="接收日期" align="center" prop="createTime">
        </el-table-column>
        <el-table-column label="成品描述" width="320" align="center" prop="productName">
        </el-table-column>
<!--        <el-table-column label="修改人" width="80" align="center" prop="updateUser">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="备注" width="100" align="center" prop="remarks">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="流水号" align="center" prop="streamNumber">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="客户" width="80" align="center" prop="custom">-->
<!--        </el-table-column>-->
<!--        <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width">-->
<!--          <template slot-scope="scope">-->
<!--            &lt;!&ndash;  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) &ndash;&gt;-->
<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">-->
<!--              开始</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">-->
<!--              冻结</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">-->
<!--              解冻</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">-->
<!--              关闭</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
<!--              启用</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">-->
<!--              完成</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
<!--            启用</el-button>-->
<!--          </template>-->
<!--        </el-table-column>-->
      </el-table>
    </el-card>
@@ -243,16 +181,13 @@
      </span>
      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="form.workOrderNo" placeholder="请输入生产订单" />
          <el-input v-model="form.workOrderNo" disabled placeholder="请输入生产订单" />
        </el-form-item>
        <el-form-item label="订单编号" prop="salesOrderCode">
          <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
        <el-form-item label="订单编号" prop="productionNotice">
          <el-input v-model="form.productionNotice" disabled placeholder="请输入订单编号" />
        </el-form-item>
        <el-form-item label="产品编号" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请选择产品" >
            <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
          </el-input>
          <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect>
          <el-input v-model="form.productCode" disabled placeholder="请输入产品编号" />
        </el-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" disabled placeholder="请输入产品名称" />
@@ -260,75 +195,17 @@
        <el-form-item label="种类" prop="productName">
          <el-input v-model="form.typeZ" disabled placeholder="请输入种类" />
        </el-form-item>
        <el-form-item label="实际数量" prop="actualQty">
          <el-input v-model="form.actualQty"  placeholder="请输入实际数量" />
        </el-form-item>
        <el-form-item label="车间编号" prop="workshopCode">
          <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号">
        <el-form-item label="工单状态" prop="orderStatus">
          <el-select style="width: 93%" v-model="form.orderStatus" placeholder="请选择工单状态">
            <el-option
              v-for="item in options"
              :key="item.workshopCode"
              :label="item.workshopName"
              :value="item.workshopCode">
              v-for="item in statuOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode">
          <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号">
            <el-option
              v-for="item in lineOptions"
              :key="item.lineCode"
              :label="item.lineName"
              :value="item.lineCode">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="工艺流程" prop="routeCode">
          <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" />
        </el-form-item>
        <el-form-item label="产品BOM" prop="bomCode">
          <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" />
        </el-form-item>
        <el-form-item label="工艺配方" prop="recipeCode">
          <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" />
        </el-form-item>
        <el-form-item label="计划数量" prop="planQty">
          <el-input v-model="form.planQty" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="需求日期" prop="demandDate">
          <el-date-picker style="width: 88%" clearable
            v-model="form.demandDate"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="请选择需求日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item style="margin-left: -30px" label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
        <el-row>
          <el-col :span="12">
            <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime">
              <el-date-picker clearable
                v-model="form.planStartTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择计划开始时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime">
              <el-date-picker clearable
                v-model="form.planEndTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="请选择计划结束时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -336,31 +213,31 @@
      </div>
    </el-dialog>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="500px" append-to-body>
       <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="form" inline  :model="form" :rules="CreateRules" label-width="80px">
        <el-form-item   label="种类" prop="typeZ">
          <el-input disabled v-model="form.typeZ"  placeholder="请输入种类" />
      <el-form ref="form" inline  :model="form" :rules="CreateRules" label-width="100px">
        <el-form-item   label="机型" prop="typeZ">
          <el-input disabled v-model="form.typeZ"  placeholder="请输入机型" />
        </el-form-item>
        <el-form-item  label="日期" prop="dateTime">
          <el-date-picker clearable
                          v-model="form.dateTime"
                          type="date"
                          value-format="yyyy-MM-dd"
                          placeholder="请选择日期" @input="handleCodeChange">
                          placeholder="请选择日期" @input="handleCodeChangeData">
          </el-date-picker>
        </el-form-item>
        <el-form-item class="hidden-form-item" label="日期规则" prop="dateTimeRule">
          <el-input v-model="form.dateTimeRule"/>
        </el-form-item>
        <el-form-item   label="起始编号" prop="startCode">
          <el-input type="number" v-model="form.startCode"  placeholder="请输入起始编号" @input="handleCodeChange"/>
          <el-input type="number"   :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="请输入起始编号" @input="handleCodeChangeStart"/>
        </el-form-item>
        <el-form-item   label="起止编号" prop="startEndCode">
          <el-input disabled v-model="form.startEndCode"/>
          <el-input type="textarea" disabled v-model="form.startEndCode"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
@@ -368,7 +245,8 @@
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
    </div>
    <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail>
  </div>
</template>
@@ -378,7 +256,7 @@
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde,getProductionOrdes, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import {
  listOrderScheduling,
  getOrderScheduling,
@@ -388,15 +266,41 @@
  generateNumbers
} from "@/api/main/bs/orderScheduling/orderScheduling";
import {listMaterial} from "@/api/main/bs/material/material";
import {listModelNumber} from "@/api/main/bs/modelNumber/modelNumber";
import Detail from "./detail.vue";
export default {
  name: "ProductionOrde",
  dicts: ['order_state','year','month','day'],
  dicts: ['order_state','year','month','day','subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable','factory_code'],
  components: {
    ItemSelect ,
    Detail
  },
  data() {
    return {
      statuOptions:[
        {
          label:"待下达",
          value:"1"
        },
        {
          label:"已下达",
          value:"2"
        }
      ],
      typeSelectList: [
        {
          label:"380",
          value:"380"
        },
        {
          label:"280",
          value:"280"
        }
      ],
      typeZDateRules: '',
      showDetailFlag: false,
      singleSelect:{},
      titleName: '',
      options: [],
      lineOptions: [],
@@ -412,6 +316,7 @@
      ids: [],
      // 非单个禁用
      single: true,
      create: false,
      // 非多个禁用
      multiple: true,
      move: true,
@@ -445,12 +350,14 @@
        marketAreaCode: null,
        softwareVersionCode: null,
        productCompanyCode: null,
        frontEndId: 0,
        frontEndId: null,
        idNums: null,
        typeZ: null,
        engineNo: null,
        flag: null,
        adds:null,
        productionNotice: null,
        dateConditions: [],
      },
      materialQueryParams: {
        pageNum: 1,
@@ -480,12 +387,6 @@
        year: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
        dateTime: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
        startCode: [
          { required: true, message: "不能为空", trigger: "blur" }
        ],
      },
      change: {
        day: '',
@@ -493,6 +394,33 @@
        year: '',
      },
      markNo: '',
      pickerOptions: {
        shortcuts: [{
          text: '最近一周',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近一个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近三个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
            picker.$emit('pick', [start, end]);
          }
        }]
      },
    };
  },
  created() {
@@ -500,22 +428,21 @@
    this.initWorkshop();
  },
  methods: {
    //日期或开始编号输入时
    handleCodeChange(data){
    reserveChild(){
      this.showDetailFlag = false
    },
    handleCodeChangeData(){
      console.log('1111111111111111')
      let dateTime = this.form.dateTime;
      let planQty = this.form.planQty;
      let startCode = this.form.startCode
      if(dateTime !== null && dateTime !== undefined
        && startCode !== null && startCode !== undefined) {
      let dateTimeRule = "";
      if(dateTime !== null && dateTime !== undefined){
        let dateTimes = dateTime.split("-");
        let year = dateTimes[0];
        let month = dateTimes[1];
        let day = dateTimes[2];
        let dictYear = this.dict.type.year;
        let dictMonth = this.dict.type.month;
        let startCode = this.form.startCode
        let dateTimeRule = "";
        //年
        for (let i = 0; i < dictYear.length; i++) {
          if (year === dictYear[i].label) {
@@ -532,16 +459,40 @@
        //日
        dateTimeRule = dateTimeRule + day;
        dateTimeRule = dateTimeRule + this.markNo;
        this.form.dateTimeRule = dateTimeRule;
        //赋值起始编码
        this.form.startEndCode = dateTimeRule +  startCode + "----" + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ;
        this.form.dateTimeRule = dateTimeRule;//此处赋值不加机型
        dateTimeRule = this.form.typeZ +" "+dateTimeRule;//此处加机型,顺序不能颠倒
      }
      if (this.form.typeZ !== null && this.form.typeZ !== '' && dateTimeRule !== null && dateTimeRule !== '' ){
        this.typeZDateRules = dateTimeRule
        console.log('222222222222')
        let queryParams = {
          model: this.form.typeZ,
          modelDate: this.form.dateTimeRule,
        }
        listModelNumber(queryParams).then(response => {
          if(response.rows.length === 0){
            this.form.startCode = 1
          }else {
            let max = response.rows[0].maxnumValue
            this.form.startCode = parseInt(max) + 1
          }
          this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
          });
      }
    },
    handleCodeChangeStart(){
      let planQty = this.form.planQty;
      console.log('planQty',planQty)
      //赋值起始编码
      this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
    },
    getProductionNotice(){
      getProductionNotice(this.queryParams).then(response => {
        this.$modal.msgSuccess("接收成功");
        this.queryParams = {}
        this.$modal.msgSuccess(response.msg);
        // this.queryParams = {}
        this.getList();
      });
    },
@@ -619,6 +570,7 @@
    /** 查询生产工单列表 */
    getList() {
      this.loading = true;
      console.log('this.queryParams',this.queryParams)
      listProductionOrde(this.queryParams).then(response => {
        this.productionOrdeList = response.rows;
        this.total = response.total;
@@ -673,7 +625,8 @@
        spareField3: null,
        typeZ: null,
        spareField4: null,
        adds:null
        adds:null,
        idNums:null
      };
      this.resetForm("form");
    },
@@ -685,23 +638,60 @@
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.queryParams.typeZ = ''
      this.queryParams.engineNo = ''
      this.handleQuery();
    },
    // 多选框选中数据
    /** 多选框选中数据 */
    handleSelectionChange(selection) {
      console.log('this.single1111',this.single)
      console.log('selecion',selection)
      this.ids = selection.map(item => item.id)
      this.move = selection.length!==1
      if(!selection.length){
      const statusList = selection.map(item => item.orderStatus)
      console.log('statusList',statusList)
      console.log('statusList.filter( x => x !== "1").length',statusList.filter( x => x !== "1").length)
      if (statusList.filter( x => x !== "1").length >0){
        this.create = true
      } else {
        this.create = false
      }
      if (selection.length >1){
        this.single = false
        this.multiple = true
      } else if (selection.length === 1){
        this.single = true
        this.multiple = false
        this.singleSelect = selection[0]
      } else {
        this.single = true
        this.multiple = true
      }else {
        if(selection[0].orderStatus === '1' && selection.length === 1){
          this.single = false
          this.multiple = false
        }
      }
      // let statusList = selection.filter(x => x.orderStatus === "1")
      // console.log('statusList',statusList)
      // if (selection.length === statusList.length){
      //   //待生成
      //   this.single = false
      // }
      // this.ids = selection.map(item => item.id)
      // this.move = selection.length!==1
      // if(!selection.length){
      //   console.log('1')
      //   this.single = true
      //   this.multiple = true
      // } else {
      //   if(selection[0].orderStatus === '1' && selection.length === 1){
      //     console.log('2')
      //     this.single = false
      //     this.multiple = false
      //   }
      //   if(selection[0].orderStatus === '2' && selection.length === 1){
      //     console.log('3',this.single)
      //     this.singleSelect = selection[0]
      //   }
      // }
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.initWorkshop();
@@ -710,22 +700,37 @@
      this.titleName = "添加生产订单";
    },
    /** 同步按钮操作 */
    CreatehandleUpdate(Row) {
      this.initWorkshop();
      this.reset();
      const id = Row.id || this.ids
      getProductionOrde(id).then(response => {
        console.log(response.data)
        console.log(response.data.productCode)
        this.materialQueryParams.materialCode = response.data.productCode;
        listMaterial(this.materialQueryParams).then(response => {
          this.markNo = response.rows[0].mark
    CreatehandleUpdate() {
      console.log('this.ids',this.ids)
      if (this.ids.length === 0){
        this.$message.error('请勾选数据');
      }else {
        this.initWorkshop();
        this.reset();
        const id = this.ids
        getProductionOrdes(id).then(response => {
          console.log(response.data)
          console.log(response.data.productCode)
          this.materialQueryParams.materialCode = response.data.productCode;
          listMaterial(this.materialQueryParams).then(response => {
            console.log("res2121",response)
            if (response.rows.length === 0){
              this.$message.error('未查找到物料编码对应编号!');
              this.cancel()
            } else {
              this.markNo = response.rows[0].mark
              this.form.typeL = response.rows[0].typeL;
            }
          });
          this.form = response.data;
          this.form.idNums=id;
          this.Createopen = true;
          this.titleName = "生成箱体条码";
          // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
        });
        this.form = response.data;
        this.Createopen = true;
        this.titleName = "生成箱体条码";
        // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
      });
      }
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
@@ -762,9 +767,41 @@
    /** 生成箱体条码提交按钮 */
    submitFormForBoxCode() {
      if (this.form.startCode === null || this.form.startCode === ''){
        this.$message.error('起始编号不能为空!');
        return;
      }
      let startCode = parseInt(this.form.startCode);
      let queryParams = {
        model: this.form.typeZ,
        modelDate: this.form.dateTimeRule,
      }
      if(startCode>999){
        this.$message.error('起始编号超出最大范围,请输入1-999的数字!');
        return;
      }else if(startCode<1){
        this.$message.error('请输入1-999的数字!');
        return;
      }
      listModelNumber(queryParams).then(response => {
        if(response.rows.length === 0){
          this.saveBoxCode()
        }else {
          let maxNumValue = response.rows[0].maxnumValue;
          if(startCode<=maxNumValue){
            this.$message.error('箱体条码重复,请重新输入起始编号!');
          }else {
            this.saveBoxCode()
          }
        }
      });
    },
    saveBoxCode(){
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
          if (this.form.idNums != null) {
            addOrderSchedulingForBoxCode(this.form).then(response => {
              this.$modal.msgSuccess("保存成功");
              this.Createopen = false;
@@ -791,7 +828,17 @@
        ...this.queryParams
      }, `productionOrde_${new Date().getTime()}.xlsx`)
    },
    goToPage() {
      if (this.ids.length === 0){
        this.$message.error('请勾选数据');
      }else {
        this.showDetailFlag=true
        console.log('this.showDetailFlag',this.showDetailFlag)
        //更新实际生产日期
        //updateOrderInfo(this.singleSelect)
      }
    },
  }
};
</script>
@@ -799,4 +846,20 @@
.hidden-form-item {
  display: none;
}
::v-deep .custom-size .el-checkbox__input .el-checkbox__inner {
  width: 20px;
  height: 20px;
}
/* 调整Checkbox的标签文字大小 */
::v-deep .custom-size .el-checkbox__inner::after {
  border: 3px solid #fff;
  border-left: 0;
  border-top: 0;
  left: 5px;
  top: 5px;
}
::v-deep .custom-size .el-checkbox__input.is-checked .el-checkbox__inner::after {
  transform: rotate(50deg) scaleY(1.3);}
</style>