懒羊羊
2023-12-14 5d5153d85906d1f2181a69c55a42fdb5632c5ba7
优化
已修改2个文件
406 ■■■■ 文件已修改
jcdm-ui/src/views/main/bs/technologyRoute/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 405 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/technologyRoute/index.vue
@@ -282,6 +282,7 @@
    getList() {
      this.loading = true;
      listTechnologyRoute(this.queryParams).then(response => {
        console.log(response.rows)
        this.technologyRouteList = response.rows;
        console.log(this.technologyRouteList)
        this.total = response.total;
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -1,26 +1,11 @@
<template>
  <div class="app-container">
    <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="生产工单号" prop="workOrderNo">
      <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 label="订单编号" prop="salesOrderCode">
        <el-input
          v-model="queryParams.salesOrderCode"
          placeholder="请输入订单编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品编号" prop="productCode">
        <el-input
          v-model="queryParams.productCode"
          placeholder="请输入产品编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
@@ -29,6 +14,39 @@
        <el-input
          v-model="queryParams.productName"
          placeholder="请输入产品名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="工单状态" prop="orderStatus">
        <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable>
          <el-option
            v-for="dict in dict.type.order_state"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </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 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="salesOrderCode">
        <el-input
          v-model="queryParams.salesOrderCode"
          placeholder="请输入订单编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
@@ -49,6 +67,14 @@
          @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"
@@ -57,14 +83,7 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item 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="recipeCode">
        <el-input
          v-model="queryParams.recipeCode"
@@ -73,54 +92,10 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
<!--      <el-form-item label="工单状态" prop="orderStatus">-->
<!--        <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable>-->
<!--          <el-option-->
<!--            v-for="dict in dict.type.${dictType}"-->
<!--            :key="dict.value"-->
<!--            :label="dict.label"-->
<!--            :value="dict.value"-->
<!--          />-->
<!--        </el-select>-->
<!--      </el-form-item>-->
      <el-form-item label="客户" prop="custom">
        <el-input
          v-model="queryParams.custom"
          placeholder="请输入客户"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="市场区域编码" prop="marketAreaCode">
        <el-input
          v-model="queryParams.marketAreaCode"
          placeholder="请输入市场区域编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="软件版本编码" prop="softwareVersionCode">
        <el-input
          v-model="queryParams.softwareVersionCode"
          placeholder="请输入软件版本编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品公司编码" prop="productCompanyCode">
        <el-input
          v-model="queryParams.productCompanyCode"
          placeholder="请输入产品公司编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    </el-card>
    <el-card style="margin-top: 10px" class="box-card">
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
@@ -167,111 +142,109 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column width="400" label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <!--  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) -->
          <el-button @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '1'" type="text" size="mini">开始</el-button>
          <el-button @click="handleCommand('4',scope.row.id)" v-if="scope.row.orderStatus === '2'|| scope.row.orderStatus === '3'" type="text" size="mini">冻结</el-button>
          <el-button @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '4'" type="text" size="mini">解冻</el-button>
          <el-button @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'" type="text" size="mini">关闭</el-button>
          <el-button @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="text" size="mini">启用</el-button>
          <el-button @click="handleCommand('5',scope.row.id)" v-if="scope.row.orderStatus === '3' || scope.row.orderStatus === '1'" type="text" size="mini">完成</el-button>
          <el-button
            size="mini"
            type="text"
            v-if="scope.row.orderStatus === '1'"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['om:productionOrde:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            v-if="scope.row.orderStatus === '1'"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['om:productionOrde:remove']"
          >删除</el-button>
        </template>
      </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>-->
        <template slot-scope="scope">
          <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
        </template>
      </el-table-column>
      <el-table-column label="生产工单号" width="130" align="center">
        <template slot-scope="scope">
          <router-link :to="{path: '/main/workReport-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="订单编号" align="center" prop="salesOrderCode">
      </el-table-column>
      <el-table-column label="产品编号" align="center" prop="productCode">
      </el-table-column>
      <el-table-column label="产品名称" align="center" prop="productName">
      </el-table-column>
      <el-table-column label="车间编号" align="center" prop="workshopCode">
      </el-table-column>
      <el-table-column label="产线编号" align="center" prop="lineCode">
      </el-table-column>
      <el-table-column label="工艺流程" align="center" prop="routeCode">
      </el-table-column>
      <el-table-column label="产品BOM" align="center" prop="bomCode">
      </el-table-column>
      <el-table-column label="工艺配方" align="center" prop="recipeCode">
      </el-table-column>
      <el-table-column label="计划数量" align="center" prop="planQty">
      </el-table-column>
      <el-table-column label="实际数量" align="center" prop="actualQty">
      </el-table-column>
      <el-table-column label="不良数量" align="center" prop="badQty">
      </el-table-column>
      <el-table-column label="报废数量" align="center" prop="scrapQty">
      </el-table-column>
      <el-table-column label="返修数量" align="center" prop="repairQty">
      </el-table-column>
      <el-table-column label="实际上线数量" align="center" prop="actualOnlineQty">
      </el-table-column>
      <el-table-column label="需求日期" align="center" prop="demandDate" width="180">
      </el-table-column>
      <el-table-column label="计划开始时间" align="center" prop="planStartTime">
      </el-table-column>
      <el-table-column label="计划结束时间" align="center" prop="planEndTime">
      </el-table-column>
      <el-table-column label="实际开始时间" align="center" prop="actualStartTime">
      </el-table-column>
      <el-table-column label="实际结束时间" align="center" prop="actualEndTime">
      </el-table-column>
      <el-table-column label="顺序号" align="center" prop="serialNumber">
      </el-table-column>
      <el-table-column label="创建时间" align="center" prop="createTime">
      </el-table-column>
      <el-table-column label="更新时间" align="center" prop="updateTime">
      </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 label="流水号" align="center" prop="streamNumber">
      </el-table-column>
      <el-table-column label="客户" align="center" prop="custom">
      </el-table-column>
      <el-table-column label="市场区域编码" align="center" prop="marketAreaCode">
      </el-table-column>
      <el-table-column label="软件版本编码" align="center" prop="softwareVersionCode">
      </el-table-column>
      <el-table-column label="产品公司编码" align="center" prop="productCompanyCode">
      </el-table-column>
    </el-table>
      <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column width="500" label="操作" align="center" class-name="small-padding fixed-width">
          <template slot-scope="scope">
            <!--  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) -->
            <el-button type="success" style="width: 72px" plain @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '1'" size="mini">开始</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('4',scope.row.id)" v-if="scope.row.orderStatus === '2'|| scope.row.orderStatus === '3'" type="warning" size="mini">冻结</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '4'" type="warning" size="mini">解冻</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'" type="danger" size="mini">关闭</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button>
            <el-button style="width: 72px" @click="handleCommand('5',scope.row.id)" v-if="scope.row.orderStatus === '3' || scope.row.orderStatus === '1'" type="success" size="mini">完成</el-button>
            <el-button style="width: 72px" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>
            <el-button
              size="mini"
              type="success"
              style="width: 72px"
              v-if="scope.row.orderStatus === '1'"
              icon="el-icon-edit"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['om:productionOrde:edit']"
            >修改</el-button>
            <el-button
              size="mini"
              type="warning"
              style="width: 72px"
              v-if="scope.row.orderStatus === '1'"
              icon="el-icon-delete"
              @click="handleDelete(scope.row)"
              v-hasPermi="['om:productionOrde:remove']"
            >删除</el-button>
          </template>
        </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>-->
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
        <el-table-column label="生产工单号" width="130" align="center">
          <template slot-scope="scope">
            <router-link :to="{path: '/main/workReport-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="订单编号" align="center" prop="salesOrderCode">
        </el-table-column>
        <el-table-column label="产品编号" align="center" prop="productCode">
        </el-table-column>
        <el-table-column label="产品名称" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="车间编号" align="center" prop="workshopCode">
        </el-table-column>
        <el-table-column label="产线编号" align="center" prop="lineCode">
        </el-table-column>
        <el-table-column label="工艺流程" align="center" prop="routeCode">
        </el-table-column>
        <el-table-column label="产品BOM" align="center" prop="bomCode">
        </el-table-column>
        <el-table-column label="工艺配方" align="center" prop="recipeCode">
        </el-table-column>
        <el-table-column label="计划数量" align="center" prop="planQty">
        </el-table-column>
        <el-table-column label="实际数量" align="center" prop="actualQty">
        </el-table-column>
<!--        <el-table-column label="不良数量" align="center" prop="badQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="报废数量" align="center" prop="scrapQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="返修数量" align="center" prop="repairQty">-->
<!--        </el-table-column>-->
        <el-table-column label="实际上线数量" align="center" prop="actualOnlineQty">
        </el-table-column>
        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">
        </el-table-column>
        <el-table-column label="计划开始时间" align="center" prop="planStartTime">
        </el-table-column>
        <el-table-column label="计划结束时间" align="center" prop="planEndTime">
        </el-table-column>
        <el-table-column label="实际开始时间" align="center" prop="actualStartTime">
        </el-table-column>
        <el-table-column label="实际结束时间" align="center" prop="actualEndTime">
        </el-table-column>
        <el-table-column :show-overflow-tooltip='true' label="创建时间" align="center" prop="createTime">
        </el-table-column>
        <el-table-column :show-overflow-tooltip='true' label="更新时间" align="center" prop="updateTime">
        </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 label="流水号" align="center" prop="streamNumber">
        </el-table-column>
        <el-table-column label="客户" align="center" prop="custom">
        </el-table-column>
      </el-table>
    </el-card>
    <pagination
      v-show="total>0"
@@ -282,19 +255,25 @@
    />
    <!-- 添加或修改生产工单对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="生产工单号" prop="workOrderNo">
    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
      <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-form-item>
        <el-form-item label="订单编号" prop="salesOrderCode">
          <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
        </el-form-item>
<!--        <el-form-item label="产品编号" prop="productCode">-->
<!--          <el-input v-model="form.productCode" placeholder="请输入产品编号" />-->
<!--        </el-form-item>-->
        <el-form-item label="产品编号" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请输入产品编号" />
          <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-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" placeholder="请输入产品名称" />
          <el-input v-model="form.productName" disabled placeholder="请输入产品名称" />
        </el-form-item>
        <el-form-item label="车间编号" prop="workshopCode">
          <el-input v-model="form.workshopCode" placeholder="请输入车间编号" />
@@ -302,10 +281,10 @@
        <el-form-item label="产线编号" prop="lineCode">
          <el-input v-model="form.lineCode" placeholder="请输入产线编号" />
        </el-form-item>
        <el-form-item label="工艺流程" prop="routeCode">
        <el-form-item label="工艺流程" disabled prop="routeCode">
          <el-input v-model="form.routeCode" placeholder="请输入工艺流程" />
        </el-form-item>
        <el-form-item label="产品BOM" prop="bomCode">
        <el-form-item label="产品BOM" disabled prop="bomCode">
          <el-input v-model="form.bomCode" placeholder="请输入产品BOM" />
        </el-form-item>
        <el-form-item label="工艺配方" prop="recipeCode">
@@ -316,15 +295,6 @@
        </el-form-item>
        <el-form-item label="实际数量" prop="actualQty">
          <el-input v-model="form.actualQty" placeholder="请输入实际数量" />
        </el-form-item>
        <el-form-item label="不良数量" prop="badQty">
          <el-input v-model="form.badQty" placeholder="请输入不良数量" />
        </el-form-item>
        <el-form-item label="报废数量" prop="scrapQty">
          <el-input v-model="form.scrapQty" placeholder="请输入报废数量" />
        </el-form-item>
        <el-form-item label="返修数量" prop="repairQty">
          <el-input v-model="form.repairQty" placeholder="请输入返修数量" />
        </el-form-item>
        <el-form-item label="需求日期" prop="demandDate">
          <el-date-picker clearable
@@ -337,15 +307,6 @@
        <el-form-item label="顺序号" prop="serialNumber">
          <el-input v-model="form.serialNumber" placeholder="请输入顺序号" />
        </el-form-item>
<!--        <el-form-item label="工单状态" prop="orderStatus">-->
<!--          <el-radio-group v-model="form.orderStatus">-->
<!--            <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="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
@@ -355,36 +316,34 @@
        <el-form-item label="客户" prop="custom">
          <el-input v-model="form.custom" placeholder="请输入客户" />
        </el-form-item>
        <el-form-item label="市场区域编码" prop="marketAreaCode">
          <el-input v-model="form.marketAreaCode" placeholder="请输入市场区域编码" />
        </el-form-item>
        <el-form-item label="软件版本编码" prop="softwareVersionCode">
          <el-input v-model="form.softwareVersionCode" placeholder="请输入软件版本编码" />
        </el-form-item>
        <el-form-item label="产品公司编码" prop="productCompanyCode">
          <el-input v-model="form.productCompanyCode" placeholder="请输入产品公司编码" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
import { listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
export default {
  name: "ProductionOrde",
  dicts: ['order_state'],
  components: {
    ItemSelect ,
  },
  data() {
    return {
      showFlag:false,
      advancedShowSearch: false,
      workOrder: {
        status: 'ss'
        // ...
      },
      // 遮罩层
      loading: true,
@@ -441,6 +400,28 @@
    this.getList();
  },
  methods: {
    //物料选择弹出框
    onItemSelected(obj){
      if(obj !== undefined && obj !== null){
        let productCode = obj.materialCode;
        this.form.productCode = productCode;
        this.form.productName = obj.materialName;
        this.queryParams.productCode = productCode
        listTechnologyRoute(this.queryParams).then(response => {
          console.log(response.data)
        });
        listProductBom(this.queryParams).then(response => {
          console.log(response.row)
        });
      }
    },
    handleSelectProduct(){
      this.$refs.itemSelect.showFlag = true;
    },
    advancedQuery(){
      this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
    },
    handleCommand(status,id) {
      this.updateStatusParameter.id = id;
      this.updateStatusParameter.orderStatus = status;