小小儁爺
8 天以前 4a2c6fb2773adf8b5e28351021b79aebaf2af5e4
src/views/workOrder/workOrderList.vue
@@ -476,7 +476,7 @@
                    v-if="mesSetting.workOrder"
                    class="el-icon-files"
                    style="cursor: pointer;color:#42b983;margin-right: 15px"
                    @click.stop="pre(row,1)"
                    @click="pre(row,1)"
                  />
                </el-tooltip>
@@ -484,7 +484,7 @@
                  <i
                    class="el-icon-edit-outline"
                    :style="{color:$store.state.settings.theme}"
                    @click.stop="edit('edit',row)"
                    @click="edit('edit',row)"
                  />
                </el-tooltip>
@@ -502,7 +502,7 @@
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-printer"
                    style="cursor: pointer;margin-right: 15px"
                    @click.stop="handlePrint(row.wo_code,row.saleOrderCod,row)"
                    @click="handlePrint(row.wo_code,row.saleOrderCod,row)"
                  />
                </el-tooltip>
@@ -511,7 +511,7 @@
                    class="el-icon-view"
                    style="cursor: pointer;"
                    :style="{color:$store.state.settings.theme}"
                    @click.stop="edit('view',row)"
                    @click="edit('view',row)"
                  />
                </el-tooltip>
@@ -533,6 +533,7 @@
      <div class="elTableDiv">
        <el-table
          ref="tableDataRef2"
          :data="tableDataDetail"
          border
          height="210px"
@@ -856,7 +857,13 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item label="销售订单" prop="">
          <el-input
            v-model="dialogForm.saleordercode"
            style="width: 200px"
            :disabled="!(dialogForm.mesorderstus==='NEW'&&dialogForm.data_sources==='MES')"
          />
        </el-form-item>
        <el-form-item label="预计交付日期" prop="deliverydate">
          <el-date-picker
            v-model="dialogForm.deliverydate"
@@ -1581,6 +1588,7 @@
            </div>
            <div
              id="qrCode0"
              :key="formApprove.mesordercode"
              style="width: 22%;height:90px;
                        margin-top: 20px;
                        overflow-y: scroll;display: flex;
@@ -1717,6 +1725,7 @@
            </div>
            <div
              id="qrCode1"
              :key="formApprove.mesordercode"
              style="width: 22%;height:90px;
                        margin-top: 20px;
                        overflow-y: scroll;display: flex;
@@ -1803,7 +1812,7 @@
          <el-button v-waves @click="dialogVisibleBackPreview">返 回</el-button>
          <!--            <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">确 定</el-button>-->
          <!--            <el-button v-waves type="primary" @click="dialogVisibleConfirm">确 定/打 印</el-button>-->
          <el-button v-waves v-print="printObj" type="primary">打 印</el-button>
          <el-button v-waves v-print="printObj" type="primary" @click="sendMesOrderDistribution">打 印</el-button>
        </div>
      </span>
    </el-dialog>
@@ -2489,9 +2498,8 @@
      </div>
      <div v-for="(i,index) in formData3" :key="index" class="customDiv">
        <!--        ref="dialogForm"-->
        <el-form
          ref="dialogForm"
          inline
          :model="i"
          label-width="110px"
@@ -2572,7 +2580,13 @@
              />
            </el-select>
          </el-form-item>
          <el-form-item label="销售订单" prop="">
            <el-input
              v-model="i.saleordercode"
              style="width: 200px"
              :disabled="!(i.mesorderstus==='NEW'&&i.data_sources==='MES')"
            />
          </el-form-item>
          <el-form-item label="预计交付日期" prop="deliverydate">
            <el-date-picker
              v-model="i.deliverydate"
@@ -2743,7 +2757,7 @@
  AddUpdateMesOrder, AddUpdateMesOrderList, DeleteMesOrder,
  MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent, MesOrderProcessSopSearch,
  MesOrderSearch, MesOrderSopSearch, UpdateMesOrderStepListSearch,
  UpdateMesOrderStepSearch
  UpdateMesOrderStepSearch, MesOrderNewStepListContent
} from '@/api/WorkOrder'
import { PartSelect } from '@/api/ProductModel'
import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
@@ -2751,7 +2765,12 @@
import ElDragSelect from '@/components/DragSelect'
import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
import DateType from '@/components/DateType'
import { PartSelectRpute, PartSelectRputeList, RouteSelectStep, RouteSelectStepList } from '@/api/basicSettings'
import {
  PartSelectRpute,
  PartSelectRputeList,
  RouteSelectStep,
  RouteSelectStepList
} from '@/api/basicSettings'
import { DeviceSopSearch } from '@/api/DeviceManager'
export default {
@@ -2783,7 +2802,7 @@
        // createdate: '', // 创建时间
        datatype: 'ED', // 日期类型(计划开工(PS)、计划完工(PE)、预计交付(ED)、创建日期(CT))
        timeValue: [], // 查询日期
        prop: 'lm_date', // 排序字段
        prop: 'partspec', // 排序字段  lm_date
        order: 'desc', // 排序字段
        page: 1, // 第几页
        rows: 20 // 每页多少条
@@ -2808,6 +2827,8 @@
        ordertype: 'PO', // 工单类型
        sourceorderid: '', // 源单id
        sourceorder: '', // 源单单号
        saleordercode: '', // 销售订单号
        partcode: '', // 产品编码
        partname: '', // 产品名称
@@ -2906,7 +2927,7 @@
          console.log('执行了打印')
        }
      },
      sendMesOrderWoCode: '',
      formApprove: {
        m_po: '', // 源单单号
        mesordercode: '',
@@ -3031,7 +3052,7 @@
      routecodeArr: [], //
      sourceType: false, // 工序的数据来源
      sourceType: true, // 工序的数据来源
      mesSetting: JSON.parse(localStorage.getItem('mesSetting')),
@@ -3091,6 +3112,16 @@
    // })
  },
  methods: {
    // 打印的时候执行派发事件
    sendMesOrderDistribution() {
      MesOrderDistribution([this.sendMesOrderWoCode]).then(res => {
        if (res.code === '200') {
          this.$notify.success('派发成功!')
          this.getMesOrderSearch()
        }
      })
    },
    mesqtyInputChange(val) {
      if (this.stepTableData && this.stepTableData.length > 0) {
        this.stepTableData.forEach(i => {
@@ -3150,6 +3181,7 @@
          ordertype: i.wotype, // 工单类型
          sourceorderid: i.sourceid, // 源单id
          sourceorder: i.m_po, // 源单单号
          saleordercode: i.saleOrderCode,
          partcode: i.partcode, // 产品编码
          partname: i.partname, // 产品名称
          partspec: i.partspec, // 产品规格
@@ -3165,6 +3197,8 @@
          stepTableData: []// 工序表值
        })
      })
      const tempArr = []
      const { data: res3 } = await UpdateMesOrderStepListSearch(data3)
      console.log(res3, 321)
      res3.forEach((i, index) => {
@@ -3175,40 +3209,61 @@
          })
          this.formData3[index].stepTableData = i.stepdata
          this.formData3[index].stepSelectedValue = i.stepdata.map(j => j.stepcode)
        } else {
          tempArr.push({
            'wkshopcode': this.formData3[index].wkshopcode,
            'routecode': this.formData3[index].routecode,
            'partcode': this.formData3[index].partcode
          })
        }
      })
      const { data: res } = await PartSelectRputeList(partcodeArr)
      if (this.mesSetting.route) {
        res.forEach((i, index) => {
          if (i.routedata.length > 0) {
            this.formData3[index].routecodeArr = i.routedata
          }
        })
      } else {
      console.log(this.sourceType, '执行1', this.formData3)
      const tempArr2 = tempArr.filter((item, index) => {
        return tempArr.findIndex(i => i.partcode === item.partcode) === index
      })
      if (this.sourceType) { // 为true时,调用MesOrderNewStepListContent
        const { data: res } = await MesOrderNewStepListContent(tempArr2)
        this.formData3.forEach((i, index) => {
          if (i.stepTableData.length === 0) {
            i.stepTableData = res[index].stepdata
            i.stepSelectedValue = res[index].stepdata.length > 0 ? res[index].stepdata.map(j => j.stepcode) : []
          }
        })
      }
      // i.stepdata.forEach(j => {
      //   j.ratio = parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) : 0
      //   j.sumqty = Math.round(parseFloat(i.canupdate_qty) * (1 + (parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) / 100 : 0)))
      // })
      if (this.mesSetting.route) {
        const { data: res2 } = await RouteSelectStepList(data2)
        this.formData3.forEach((i, index) => {
          if (i.stepTableData.length === 0) {
            res2[index].stepdata.forEach(j => {
            const ind = res.findIndex(j => j.partcode === this.formData3[index].partcode)
            res[ind].stepdata.forEach(j => {
              j.ratio = parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) : 0
              j.sumqty = Math.round(parseFloat(i.mesqty) * (1 + (parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) / 100 : 0)))
            })
            i.stepTableData = res2[index].stepdata
            i.stepSelectedValue = res2[index].stepdata.length > 0 ? res2[index].stepdata.map(j => j.stepcode) : []
            this.formData3[index].stepTableData = res[ind].stepdata
            this.formData3[index].stepSelectedValue = res[ind].stepdata.length > 0 ? res[ind].stepdata.map(j => j.stepcode) : []
          }
        })
      } else { // 调用PartSelectRputeList
        const { data: res } = await PartSelectRputeList(partcodeArr)
        if (this.mesSetting.route) {
          res.forEach((i, index) => {
            if (i.routedata.length > 0) {
              this.formData3[index].routecodeArr = i.routedata
            }
          })
        } else {
          this.formData3.forEach((i, index) => {
            if (i.stepTableData.length === 0) {
              i.stepTableData = res[index].stepdata
              i.stepSelectedValue = res[index].stepdata.length > 0 ? res[index].stepdata.map(j => j.stepcode) : []
            }
          })
        }
        if (this.mesSetting.route) {
          const { data: res2 } = await RouteSelectStepList(data2)
          this.formData3.forEach((i, index) => {
            if (i.stepTableData.length === 0) {
              res2[index].stepdata.forEach(j => {
                j.ratio = parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) : 0
                j.sumqty = Math.round(parseFloat(i.mesqty) * (1 + (parseFloat(j.ratio) > 0 ? parseFloat(j.ratio) / 100 : 0)))
              })
              i.stepTableData = res2[index].stepdata
              i.stepSelectedValue = res2[index].stepdata.length > 0 ? res2[index].stepdata.map(j => j.stepcode) : []
            }
          })
        }
      }
      // this.formData3 = this.multipleSelection
@@ -3264,6 +3319,7 @@
          sourceid: i.sourceorderid, // 源单id
          sourcewo: i.sourceorder, // 源单单号
          partcode: i.partcode, // 产品编号
          saleordercode: i.saleordercode, // 销售单号
          wkshopcode: i.wkshopcode,
          woqty: i.mesqty, // 工单数量
          deliverydate: i.deliverydate, // 交付时间
@@ -3615,6 +3671,8 @@
      this.form.ordertype = ''
      // this.form.createdate = ''
      this.form.saleordercode = ''
      this.form.timeValue = []
      this.cycleTime = null
      this.$refs.DateTypeRef.clearValue()
@@ -3728,6 +3786,7 @@
      this.dialogForm.ordertype = row.wotype
      this.dialogForm.sourceorderid = row.sourceid
      this.dialogForm.sourceorder = row.m_po
      this.dialogForm.saleordercode = row.saleOrderCode
      this.dialogForm.partcode = row.partcode
      this.dialogForm.partname = row.partname
      this.dialogForm.partspec = row.partspec
@@ -3812,7 +3871,9 @@
          this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
        } else {
          await this.getBasicProcessData()
          // await this.getBasicProcessData()
          console.log('执行')
          this.sourceTypeChange(this.sourceType)
        }
      }
@@ -3942,7 +4003,7 @@
        ordertype: 'PO', // 工单类型
        sourceorderid: '', // 源单id
        sourceorder: '', // 源单单号
        saleordercode: '', // 销售订单号
        partcode: '', // 产品编码
        partname: '', // 产品名称
        partspec: '', // 产品规格
@@ -3959,11 +4020,13 @@
      this.dialogForm.routecode = ''
      this.sourceType = false
      this.sourceType = true
      this.stepSelectedValue = []
      this.stepTableData = []
      this.$refs.dialogForm.clearValidate()
      this.$refs.tableDataRef.doLayout()
      this.$refs.tableDataRef2.doLayout()
    },
    // 对话框取消
    dialogVisibleCancel() {
@@ -4021,6 +4084,7 @@
            wotype: this.dialogForm.ordertype, // 工单类型
            sourceid: this.dialogForm.sourceorderid, // 源单id
            sourcewo: this.dialogForm.sourceorder, // 源单单号
            saleordercode: this.dialogForm.saleordercode, // 销售订单号
            partcode: this.dialogForm.partcode, // 产品编号
            wkshopcode: this.dialogForm.wkshopcode,
            woqty: this.dialogForm.mesqty, // 工单数量
@@ -4115,6 +4179,7 @@
      const data2 = {
        mesordercode: wo_code || this.dialogForm.mesordercode
      }
      this.sendMesOrderWoCode = wo_code || this.dialogForm.mesordercode
      MesOrderPrintSearch(data2).then(res2 => {
        if (res2.code === '200') {
          this.dialogVisibleApprove = true