cuilei
18 小时以前 7edd931aa33aa0f4fff9a89e1bc1a064c3709035
src/views/mes/MesProductionWorkOrderListView.vue
@@ -82,31 +82,54 @@
          </template>
          <span slot="action" slot-scope="text, record">
            <a @click="handleDetail(record)">详情</a>
          <span v-if="record.workOrderStatus === 'PUBLISHED'">
            <a-divider type="vertical" />
            <a @click="handleRePublish(record)">重发布</a>
          </span>
          <span v-if="record.workOrderStatus === 'NEW'">
            <a-divider type="vertical" />
            <a-popconfirm title="确定发布吗?" @confirm="() => handlePublish(record.id)">
                <a>发布</a>
            </a-popconfirm>
            <a-divider type="vertical" />
            <span v-if="record.workOrderStatus === 'NEW'">
              <a-popconfirm title="确定发布吗?" @confirm="() => handlePublish(record.id)">
                  <a>发布</a>
              </a-popconfirm>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' || record.workOrderStatus === 'EXECUTING'">
              <a-divider type="vertical" />
              <a @click="handleRePublish(record)">重发布</a>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '0'">
              <a-divider type="vertical" />
              <a @click="handleCompletenessCheck(record)">齐套性检查</a>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.equipmentInspectionFlag === '0'">
              <a-divider type="vertical" />
              <a @click="handleCompletenessCheck(record)">设备点检</a>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.processInspectionFlag === '0'">
              <a-divider type="vertical" />
              <a @click="handleCompletenessCheck(record)">工艺点检</a>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '1'">
              <a-divider type="vertical" />
              <a-popconfirm title="确定开始执行吗?" @confirm="() => handleExecute(record.id)">
                  <a>执行</a>
              </a-popconfirm>
            </span>
            <span v-if="record.workOrderStatus === 'EXECUTING'">
              <a-divider type="vertical" />
              <a @click="handleWorkReport(record)">报工</a>
            </span>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <a-menu-item v-if="record.workOrderStatus === 'NEW'">
                <a @click="handleEdit(record)">编辑</a>
              </a-menu-item>
              <a-menu-item>
              <a-menu-item v-if="record.workOrderStatus === 'NEW'">
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
          </span>
        </span>
        </a-table>
@@ -128,26 +151,6 @@
            <template slot="showDetail" slot-scope="{row}">
              <a-button type="primary" @click="handleOrderDetail(row)" size="small">
                <a-icon type="eye" />订单详情
              </a-button>
            </template>
          </j-vxe-table>
        </a-tab-pane>
        <a-tab-pane tab="物料拉动申请" :key="refKeys2[0]" :forceRender="true">
          <div style="display: flex; align-items: center; margin-bottom: 10px;">
          </div>
          <j-vxe-table
            keep-source
            :ref="refKeys2[0]"
            :loading="mesMaterialTransferRequest.loading"
            :columns="mesMaterialTransferRequest.columns"
            :dataSource="mesMaterialTransferRequest.dataSource"
            :maxHeight="300"
            :rowNumber="true"
            :rowSelection="true"
            :toolbar="false">
            <template slot="showTransferDetail" slot-scope="{row}">
              <a-button type="primary" @click="handleTransferDetail(row)" size="small">
                <a-icon type="eye" />物料拉动明细
              </a-button>
            </template>
          </j-vxe-table>
@@ -192,9 +195,10 @@
    <mes-production-work-order-modal ref="modalForm" @ok="modalFormOk"></mes-production-work-order-modal>
    <mes-production-order-modal ref="MesProductionOrderModal"></mes-production-order-modal>
    <MesMaterialUnloadingList ref="MesMaterialUnloadingList"></MesMaterialUnloadingList>
    <MesMaterialTransferDetailList ref="MesMaterialTransferDetailList"></MesMaterialTransferDetailList>
    <MesProductionWorkOrderScheduleModal ref="MesProductionWorkOrderScheduleModal"></MesProductionWorkOrderScheduleModal>
    <MesProductionWorkOrderScheduleModal ref="MesProductionWorkOrderScheduleModal" @ok="modalFormOk"></MesProductionWorkOrderScheduleModal>
    <MesProductionWorkOrderRepublishModal ref="MesProductionWorkOrderRepublishModal" @ok="modalFormOk"></MesProductionWorkOrderRepublishModal>
    <MesProductionWorkOrderReportModal ref="MesProductionWorkOrderReportModal" @ok="modalFormOk"></MesProductionWorkOrderReportModal>
    <MesProductionWorkOrderCompletenessCheckModal ref="MesProductionWorkOrderCompletenessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderCompletenessCheckModal>
  </a-card>
</template>
@@ -210,9 +214,10 @@
import { getAction, requestPut } from '@api/manage'
import MesProductionOrderModal from '@views/mes/modules/MesProductionOrderModal.vue'
import MesMaterialUnloadingList from '@views/mes/MesMaterialUnloadingList.vue'
import MesMaterialTransferDetailList from '@views/mes/MesMaterialTransferDetailList.vue'
import MesProductionWorkOrderScheduleModal from '@views/mes/modules/MesProductionWorkOrderScheduleModal.vue'
import MesProductionWorkOrderRepublishModal from '@views/mes/modules/MesProductionWorkOrderRepublishModal.vue'
import MesProductionWorkOrderReportModal from '@views/mes/modules/MesProductionWorkOrderReportModal.vue'
import MesProductionWorkOrderCompletenessCheckModal from '@views/mes/modules/MesProductionWorkOrderCompletenessCheckModal.vue'
export default {
  name: 'MesProductionWorkOrderList',
@@ -221,9 +226,10 @@
    MesProductionWorkOrderModal,
    MesProductionOrderModal,
    MesMaterialUnloadingList,
    MesMaterialTransferDetailList,
    MesProductionWorkOrderScheduleModal,
    MesProductionWorkOrderRepublishModal
    MesProductionWorkOrderRepublishModal,
    MesProductionWorkOrderReportModal,
    MesProductionWorkOrderCompletenessCheckModal
  },
  data() {
    return {
@@ -232,9 +238,6 @@
      // 工单报工
      refKeys1: ['mesWorkReporting'],
      tableKeys1: ['mesWorkReporting'],
      //物料拉动申请
      refKeys2: ['mesMaterialTransferRequest'],
      tableKeys2: ['mesMaterialTransferRequest'],
      //上料
      refKeys3: ['mesMaterialLoading'],
      tableKeys3: ['mesMaterialLoading'],
@@ -274,7 +277,7 @@
          dataIndex: 'planQuantity'
        },
        {
          title: '产线(冗余)',
          title: '产线',
          align: 'center',
          dataIndex: 'factoryId_dictText'
        },
@@ -284,7 +287,7 @@
          dataIndex: 'groupId_dictText'
        },
        {
          title: '班次(冗余)',
          title: '班次',
          align: 'center',
          dataIndex: 'shiftId_dictText'
        },
@@ -419,101 +422,6 @@
          {
            title: '成品下线打印状态',
            key: 'printStatus',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
        ]
      },
      mesMaterialTransferRequest: {
        loading: false,
        dataSource: [],
        columns: [
          {
            title: '操作',
            key: 'action',
            type: JVXETypes.slot,
            slotName: 'showTransferDetail',
            width: '120px',
            align: 'center'
          },
          {
            title: '拉动单号',
            key: 'requestCode',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '工单号',
            key: 'workOrderCode',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: 'SAP预留号',
            key: 'reservationCode',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '发布状态',
            key: 'publishStatus',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '请求状态',
            key: 'requestStatus',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '请求时间',
            key: 'requestTime',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '原库存地',
            key: 'originalWarehouseName',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '目标库存地',
            key: 'targetWarehouseName',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '优先级',
            key: 'priority',
            type: JVXETypes.select,
            dictCode: 'priority',
            width: '200px',
            placeholder: '请输入${title}',
            defaultValue: ''
          },
          {
            title: '最晚配送时间',
            key: 'latestDeliveryTime',
            type: JVXETypes.input,
            width: '200px',
            placeholder: '请输入${title}',
@@ -662,19 +570,18 @@
        ]
      },
      url: {
        list: '/mesproductionworkorder/mesProductionWorkOrder/list',
        delete: '/mesproductionworkorder/mesProductionWorkOrder/delete',
        deleteBatch: '/mesproductionworkorder/mesProductionWorkOrder/deleteBatch',
        exportXlsUrl: '/mesproductionworkorder/mesProductionWorkOrder/exportXls',
        importExcelUrl: 'mesproductionworkorder/mesProductionWorkOrder/importExcel',
        queryWorkReportingByWorkOrderId:'/mesworkreporting/mesWorkReporting/queryWorkReportingByWorkOrderId',
        queryMaterialTransferRequestByWorkOrderId:'/mesmaterialtransferrequest/mesMaterialTransferRequest/queryMaterialTransferRequestByWorkOrderId',
        list: '/mes/mesProductionWorkOrder/list',
        delete: '/mes/mesProductionWorkOrder/delete',
        deleteBatch: '/mes/mesProductionWorkOrder/deleteBatch',
        exportXlsUrl: '/mes/mesProductionWorkOrder/exportXls',
        importExcelUrl: 'mes/mesProductionWorkOrder/importExcel',
        queryWorkReportingByWorkOrderId:'/mes/mesWorkReporting/queryWorkReportingByWorkOrderId',
        queryLoadingByWorkOrderId:'/mes/mesMaterialLoading/queryLoadingByWorkOrderId',
        queryCompletenessCheckByWorkOrderId:'/meskittingcompletenesscheck/mesKittingCompletenessCheck/queryCompletenessCheckByWorkOrderId',
        queryOrderById:'/mesproductionwork/mesProductionOrder/queryById',
        queryCompletenessCheckByWorkOrderId:'/mes/mesKittingCompletenessCheck/queryCompletenessCheckByWorkOrderId',
        queryOrderById:'/mes/productionOrder/queryById',
        queryUnloadingByLoadingId:'/mes/mesMaterialUnloading/queryUnloadingByLoadingId',
        queryTransferDetailBy:'/mes/mesMaterialTransferDetail/queryTransferDetailBy',
        publish: '/mesproductionworkorder/mesProductionWorkOrder/publish'
        publish: '/mes/mesProductionWorkOrder/publish',
        execute: '/mes/mesProductionWorkOrder/execute',
      },
      dictOptions: {},
      superFieldList: []
@@ -702,14 +609,24 @@
        }
      })
    },
    handleExecute(id) {
      getAction(this.url.execute, { id: id }).then((res) => {
        if (res.success) {
          this.$message.success(res.message)
          this.loadData()
        } else {
          this.$message.warning(res.message)
        }
      })
    },
    handleRePublish(record) {
      this.$refs.MesProductionWorkOrderRepublishModal.add(record)
    },
    async handleTransferDetail(row){
      console.log('row---->',row)
      const transferDetailResult = await getAction(this.url.queryTransferDetailBy,{'requestId':row.id})
      this.$refs.MesMaterialTransferDetailList.visible = true
      this.$refs.MesMaterialTransferDetailList.dataSource = transferDetailResult.result.records
    handleWorkReport(record) {
      this.$refs.MesProductionWorkOrderReportModal.add(record)
    },
    handleCompletenessCheck(record) {
      this.$refs.MesProductionWorkOrderCompletenessCheckModal.check(record)
    },
    async handleUnLoadingDetail(row){
      console.log('row---->',row)
@@ -724,15 +641,13 @@
      this.$refs.MesProductionOrderModal.disableSubmit = true;
    },
    async onSelectChange(selectedRowKeys){
      //mesWorkReporting,mesMaterialTransferRequest,mesMaterialLoading,mesKittingCompletenessCheck
      //mesWorkReporting,·,mesMaterialLoading,mesKittingCompletenessCheck
      this.mesWorkReporting.loading = true
      this.mesMaterialTransferRequest.loading = true
      this.mesMaterialLoading.loading = true
      this.mesKittingCompletenessCheck.loading = true
      this.selectedRowKeys = selectedRowKeys
      this.mesWorkReporting.dataSource=[]
      this.mesMaterialTransferRequest.dataSource=[]
      this.mesMaterialLoading.dataSource=[]
      this.mesKittingCompletenessCheck.dataSource=[]
      if (selectedRowKeys.length > 0) {
@@ -741,15 +656,12 @@
          'workOrderId':selectedId
        }
        const mesWorkReportingResult = await getAction(this.url.queryWorkReportingByWorkOrderId, parm)
        const mesMaterialTransferRequestResult = await getAction(this.url.queryMaterialTransferRequestByWorkOrderId, parm)
        const mesMaterialLoadingResult = await getAction(this.url.queryLoadingByWorkOrderId, parm)
        const mesKittingCompletenessCheckResult = await getAction(this.url.queryCompletenessCheckByWorkOrderId, parm)
        this.mesWorkReporting.dataSource = mesWorkReportingResult.result
        this.mesMaterialTransferRequest.dataSource = mesMaterialTransferRequestResult.result
        this.mesMaterialLoading.dataSource = mesMaterialLoadingResult.result
        this.mesKittingCompletenessCheck.dataSource = mesKittingCompletenessCheckResult.result
        this.mesWorkReporting.loading = false
        this.mesMaterialTransferRequest.loading = false
        this.mesMaterialLoading.loading = false
        this.mesKittingCompletenessCheck.loading = false
      }