春风项目四线(合箱线、总装线)
wujian
2024-01-31 c74dcb8dca7b9e3eded0d20299f19a26a6b70974
jcdm-ui/src/views/main/bs/orderScheduling/index.vue
@@ -10,15 +10,6 @@
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="发动机号" prop="engineNo">
            <el-input
              v-model="queryParams.engineNo"
              placeholder="请输入发动机号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="机型" prop="model">
            <el-input
              v-model="queryParams.model"
@@ -27,119 +18,87 @@
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="工时" prop="workingHours">
            <el-input
              v-model="queryParams.workingHours"
              placeholder="请输入工时"
              clearable
              @keyup.enter.native="handleQuery"
            />
          <el-form-item label="生产状态" prop="productionStatus">
            <el-select v-model="queryParams.productionStatus" placeholder="请选择工单状态" clearable>
              <el-option
                v-for="dict in dict.type.order_scheduling_produce_status"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"/>
            </el-select>
          </el-form-item>
          <el-form-item label="当前工位" prop="currentWorkstation">
            <el-input
              v-model="queryParams.currentWorkstation"
              placeholder="请输入当前工位"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="是否打印" prop="whetherOrPrint">
            <el-input
              v-model="queryParams.whetherOrPrint"
              placeholder="请输入是否打印"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="10报工" prop="report10">
            <el-input
              v-model="queryParams.report10"
              placeholder="请输入10报工"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="20报工" prop="report20">
            <el-input
              v-model="queryParams.report20"
              placeholder="请输入20报工"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="操作人" prop="operator">
            <el-input
              v-model="queryParams.operator"
              placeholder="请输入操作人"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
<!--          <el-form-item label="预留字段1" prop="spareField1">-->
<!--            <el-input-->
<!--              v-model="queryParams.spareField1"-->
<!--              placeholder="请输入预留字段1"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="预留字段2" prop="spareField2">-->
<!--            <el-input-->
<!--              v-model="queryParams.spareField2"-->
<!--              placeholder="请输入预留字段2"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="预留字段3" prop="spareField3">-->
<!--            <el-input-->
<!--              v-model="queryParams.spareField3"-->
<!--              placeholder="请输入预留字段3"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="预留字段4" prop="spareField4">-->
<!--            <el-input-->
<!--              v-model="queryParams.spareField4"-->
<!--              placeholder="请输入预留字段4"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="创建用户" prop="createUser">-->
<!--            <el-input-->
<!--              v-model="queryParams.createUser"-->
<!--              placeholder="请输入创建用户"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="更改用户" prop="updateUser">-->
<!--            <el-input-->
<!--              v-model="queryParams.updateUser"-->
<!--              placeholder="请输入更改用户"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
<!--          <el-form-item label="备注" prop="remarks">-->
<!--            <el-input-->
<!--              v-model="queryParams.remarks"-->
<!--              placeholder="请输入备注"-->
<!--              clearable-->
<!--              @keyup.enter.native="handleQuery"-->
<!--            />-->
<!--          </el-form-item>-->
          <el-form-item style="float: right">
            <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 label="发动机号" prop="engineNo">
          <el-input
            v-model="queryParams.engineNo"
            placeholder="请输入发动机号"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="质量状态" prop="qualityStatus">
          <el-select v-model="queryParams.qualityStatus" placeholder="请选择质量状态" clearable>
            <el-option
              v-for="dict in dict.type.quality_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"/>
          </el-select>
        </el-form-item>
        <el-form-item label="是否打印" prop="whetherOrPrint">
          <el-select v-model="queryParams.whetherOrPrint" placeholder="请选择是否打印" clearable>
            <el-option
              v-for="dict in dict.type.print_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"/>
          </el-select>
        </el-form-item>
        <br/>
        <el-form-item label="合箱报工" prop="report10">
          <el-input
            v-model="queryParams.report10"
            placeholder="请输入合箱报工"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="总装报工" prop="report20">
          <el-input
            v-model="queryParams.report20"
            placeholder="请输入总装报工"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="CVT报工" prop="report30">
          <el-input
            v-model="queryParams.report30"
            placeholder="请输入CVT报工"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <br/>
        <el-form-item label="操作时间" prop="operateTime">
          <el-date-picker
            v-model="queryParams.dateConditions"
            type="datetimerange"
            :picker-options="pickerOptions"
            value-format="yyyy-MM-dd HH:mm:ss"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            align="right">
          </el-date-picker>
        </el-form-item>
      </el-form>
    </el-card>
    <el-card style="margin-top: 10px" class="box-card">
@@ -186,19 +145,30 @@
              v-hasPermi="['bs:orderScheduling:export']"
            >导出</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button
              type="warning"
              plain
              icon="el-icon-close"
              size="mini"
              @click="handleClose"
            >关闭</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <el-table border v-loading="loading" :data="orderSchedulingList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="订单编号" align="center" prop="orderNo" width="130">
          <el-table-column label="生产订单" align="center" prop="orderNo" width="130">
          </el-table-column>
          <el-table-column label="发动机号" align="center" prop="engineNo" width="150">
          </el-table-column>
          <el-table-column label="产品类型" align="center" prop="productType">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.material_type" :value="scope.row.productType"/>
            </template>
          </el-table-column>
          <el-table-column label="机型" align="center" prop="model">
@@ -215,75 +185,62 @@
          </el-table-column>
          <el-table-column label="质量状态" align="center" prop="qualityStatus">
          </el-table-column>
          <el-table-column label="是否打印" align="center" prop="whetherOrPrint">
          </el-table-column>
          <el-table-column label="10报工" align="center" prop="report10">
          </el-table-column>
          <el-table-column label="20报工" align="center" prop="report20">
          </el-table-column>
          <el-table-column label="合箱上线" align="center" prop="combinedBoxTime">
          </el-table-column>
          <el-table-column label="总装下线" align="center" prop="finalAssemblyTime">
          </el-table-column>
          <el-table-column label="操作人" align="center" prop="operator">
          </el-table-column>
          <el-table-column label="操作时间" align="center" prop="operateTime" width="160">
          </el-table-column>
<!--          <el-table-column label="状态" align="center" prop="status">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="预留字段1" align="center" prop="spareField1">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="预留字段2" align="center" prop="spareField2">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="预留字段3" align="center" prop="spareField3">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="预留字段4" align="center" prop="spareField4">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="创建用户" align="center" prop="createUser">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="更改用户" align="center" prop="updateUser">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="备注" align="center" prop="remarks">-->
<!--          </el-table-column>-->
          <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="success"
                plain
                style="width: 72px"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row)"
                v-hasPermi="['bs:orderScheduling:edit']"
              >修改</el-button>
              <el-button
                size="mini"
                type="danger"
                plain
                style="width: 72px"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['bs:orderScheduling:remove']"
              >删除</el-button>
              <dict-tag :options="dict.type.quality_status" :value="scope.row.qualityStatus"/>
            </template>
          </el-table-column>
          <el-table-column label="是否打印" align="center" prop="whetherOrPrint">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.print_status" :value="scope.row.whetherOrPrint"/>
            </template>
          </el-table-column>
          <el-table-column label="合箱报工" align="center" prop="report10">
          </el-table-column>
          <el-table-column label="总装报工" align="center" prop="report20">
          </el-table-column>
          <el-table-column label="CVT报工" align="center" prop="report30">
          </el-table-column>
          <el-table-column label="合箱上线时间" align="center" prop="boxClosingOnlineTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.boxClosingOnlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="合箱下线时间" align="center" prop="closingBoxOfflineTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.closingBoxOfflineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="总装上线时间" align="center" prop="finalAssemblyLaunchTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.finalAssemblyLaunchTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="总装下线时间" align="center" prop="finalAssemblyOfflineTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.finalAssemblyOfflineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="CVT上线时间" align="center" prop="cvtLaunchTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.cvtLaunchTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="CVT下线时间" align="center" prop="cvtOfflineTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.cvtOfflineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
          <el-table-column label="操作人" align="center" prop="operator">
          </el-table-column>
          <el-table-column label="操作时间" align="center" prop="operateTime" width="160">
            <template slot-scope="scope">
              <span>{{ parseTime(scope.row.operateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
            </template>
          </el-table-column>
        </el-table>
    </el-card>
@@ -296,12 +253,12 @@
    />
    <!-- 添加或修改订单排产对话框 -->
    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body>
    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="700px" append-to-body>
      <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
        <el-form-item label="订单编号" prop="orderNo">
          <el-input v-model="form.orderNo" placeholder="请输入订单编号" />
        </el-form-item>
@@ -310,49 +267,32 @@
        </el-form-item>
        <el-form-item label="产品类型" prop="productType">
          <el-select v-model="form.productType" placeholder="请选择产品类型">
<!--            <el-option-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.label"-->
<!--              :value="dict.value"-->
<!--            ></el-option>-->
          </el-select>
        </el-form-item>
        <el-form-item label="机型" prop="model">
          <el-input v-model="form.model" placeholder="请输入机型" />
        </el-form-item>
        <el-form-item label="生产状态" prop="productionStatus">
          <el-radio-group v-model="form.productionStatus">
<!--            <el-radio-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
          </el-radio-group>
        </el-form-item>
        <el-form-item label="工时" prop="workingHours">
          <el-input v-model="form.workingHours" placeholder="请输入工时" />
        </el-form-item>
        <el-form-item label="当前工位" prop="currentWorkstation">
          <el-input v-model="form.currentWorkstation" placeholder="请输入当前工位" />
        </el-form-item>
        <el-form-item label="质量状态" prop="qualityStatus">
          <el-radio-group v-model="form.qualityStatus">
<!--            <el-radio-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
          </el-radio-group>
        </el-form-item>
        <el-form-item label="是否打印" prop="whetherOrPrint">
          <el-input v-model="form.whetherOrPrint" placeholder="请输入是否打印" />
        </el-form-item>
        <el-form-item label="10报工" prop="report10">
          <el-input v-model="form.report10" placeholder="请输入10报工" />
        <el-form-item label="合箱报工" prop="report10">
          <el-input v-model="form.report10" placeholder="请输入合箱报工" />
        </el-form-item>
        <el-form-item label="20报工" prop="report20">
          <el-input v-model="form.report20" placeholder="请输入20报工" />
        <el-form-item label="总装报工" prop="report20">
          <el-input v-model="form.report20" placeholder="请输入总装报工" />
        </el-form-item>
        <el-form-item label="30报工" prop="report20">
          <el-input v-model="form.report30" placeholder="请输入30报工" />
        </el-form-item>
        <el-form-item label="操作人" prop="operator">
          <el-input v-model="form.operator" placeholder="请输入操作人" />
@@ -366,27 +306,7 @@
<!--            >{{dict.label}}</el-radio>-->
          </el-radio-group>
        </el-form-item>
<!--        <el-form-item label="预留字段1" prop="spareField1">-->
<!--          <el-input v-model="form.spareField1" placeholder="请输入预留字段1" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="预留字段2" prop="spareField2">-->
<!--          <el-input v-model="form.spareField2" placeholder="请输入预留字段2" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="预留字段3" prop="spareField3">-->
<!--          <el-input v-model="form.spareField3" placeholder="请输入预留字段3" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="预留字段4" prop="spareField4">-->
<!--          <el-input v-model="form.spareField4" placeholder="请输入预留字段4" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="创建用户" prop="createUser">-->
<!--          <el-input v-model="form.createUser" placeholder="请输入创建用户" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="更改用户" prop="updateUser">-->
<!--          <el-input v-model="form.updateUser" placeholder="请输入更改用户" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="备注" prop="remarks">-->
<!--          <el-input v-model="form.remarks" placeholder="请输入备注" />-->
<!--        </el-form-item>-->
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -401,7 +321,7 @@
export default {
  name: "OrderScheduling",
  dicts: ['order_scheduling_produce_status'],
  dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type'],
  data() {
    return {
      // 遮罩层
@@ -413,6 +333,7 @@
      single: true,
      // 非多个禁用
      multiple: true,
      advancedShowSearch: false,
      // 显示搜索条件
      showSearch: true,
      // 总条数
@@ -449,7 +370,8 @@
        spareField4: null,
        createUser: null,
        updateUser: null,
        remarks: null
        remarks: null,
        dateConditions: [],
      },
      // 表单参数
      form: {},
@@ -458,16 +380,51 @@
        id: [
          { required: true, message: "ID不能为空", trigger: "blur" }
        ],
      }
      },
      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]);
          }
        }]
      },
      value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
      value2: ''
    };
  },
  created() {
    let workOrderNo = this.$route.query.workOrderNo;
    this.queryParams.orderNo = workOrderNo
    this.getList();
  },
  methods: {
    advancedQuery(){
      this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
    },
    /** 查询订单排产列表 */
    getList() {
      this.loading = true;
      console.log(this.queryParams)
      listOrderScheduling(this.queryParams).then(response => {
        this.orderSchedulingList = response.rows;
        this.total = response.total;
@@ -507,7 +464,14 @@
        createTime: null,
        updateUser: null,
        updateTime: null,
        remarks: null
        remarks: null,
        report30: null,
        boxClosingOnlineTime: null,
        closingBoxOfflineTime: null,
        finalAssemblyLaunchTime: null,
        finalAssemblyOfflineTime: null,
        cvtLaunchTime: null,
        cvtOfflineTime: null
      };
      this.resetForm("form");
    },
@@ -578,6 +542,11 @@
      this.download('bs/orderScheduling/export', {
        ...this.queryParams
      }, `orderScheduling_${new Date().getTime()}.xlsx`)
    },
    /** 返回按钮操作 */
    handleClose() {
      const obj = { path: "/main/om/productionOrde" };
      this.$tab.closeOpenPage(obj);
    }
  }
};