loulijun2021
2022-11-25 610ddd8fd5f8adfedacff605af21f410161b207e
1.自动排程接口接入
已修改3个文件
402 ■■■■■ 文件已修改
src/api/scgl.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/scdd.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/zdpc.vue 390 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/scgl.js
@@ -364,6 +364,7 @@
    url: 'ProductionManagement/SubmitAlreadyScheduling',
    method: 'post',
    data
  })
}
// 生产管理、工单新增、编辑时,选择排程是时获取物料清单版本号
src/views/scgl/scdd.vue
@@ -250,6 +250,17 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="saleOrderDeliveryDate"
            label="预计交付时间"
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0,11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="createuser"
            label="创建人员"
            sortable="custom"
src/views/scgl/zdpc.vue
@@ -48,8 +48,9 @@
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
          @sort-change="sortChangeTop"
          @row-click="rowClick"
          @row-click="getCurrentRow"
        >
          <!--          @row-click="rowClick"-->
          <el-table-column
            width="50"
            fixed
@@ -59,7 +60,7 @@
                v-model="radioSelectedId"
                :label="row.AdvaScheId"
              />
              <!--              @change.native="getCurrentRowTop(row.id)"-->
            </template>
          </el-table-column>
          <el-table-column
@@ -185,7 +186,7 @@
            <div class="elForm">
              <el-form-item label-width="70px" label="排程日期" style=" display: flex;">
                <el-date-picker
                  v-model="formBottom.value1"
                  v-model="formBottom.scheDate"
                  type="daterange"
                  range-separator="~"
                  format="yyyy-MM-dd"
@@ -194,6 +195,7 @@
                  end-placeholder="结束日期"
                  size="small"
                  :picker-options="pickerOptions1"
                  :clearable="false"
                  @change="change_time"
                />
              </el-form-item>
@@ -284,11 +286,11 @@
                  {{ data.id }} {{ data.name }}
                </div>
                <div class="speed">
                  <el-tooltip class="item" effect="dark" content="查看" placement="top">
                    <el-button type="text" size="mini" @click="look(data)">
                      <i class="el-icon-document size i-color" />
                    </el-button>
                  </el-tooltip>
                  <!--                  <el-tooltip class="item" effect="dark" content="查看" placement="top">-->
                  <!--                    <el-button type="text" size="mini" @click="look(data)">-->
                  <!--                      <i class="el-icon-document size i-color"  />-->
                  <!--                    </el-button>-->
                  <!--                  </el-tooltip>-->
                </div>
              </div>
            </template>
@@ -310,7 +312,7 @@
import Pagination from '@/components/Pagination'
import Test from '@/components/Test'
import dayjs from 'dayjs'
import { AdvancedSchedulingSearch, OnclickAdvancedSchedulingDevice } from '@/api/scgl'
import { AdvancedSchedulingSearch, OnclickAdvancedSchedulingDevice, SubmitAlreadyScheduling } from '@/api/scgl'
import { handleDatetime } from '@/utils/global'
const scaleList = `30,60,240,360`.split(',').map(n => parseInt(n))
@@ -371,19 +373,19 @@
      showDialog: false,
      time_data: [],
      forms: {
        WorkCode: '',
        WorkShop: '',
        PartNumber: '',
        BotProceCode: '',
        StartTime: '',
        EndTime: ''
        wocode: '', // 工单编号
        wkshpcode: '', // 车间编码
        partcode: '', // 物料编码
        botproccode: '', // 瓶颈工序编码(首道工序)
        startdate: '', // 开始日期
        enddate: ''// 结束日期
      },
      click_one: 0,
      datasC: [],
      radio: '',
      formBottom: {
        value1: ['2022-11-24', '2022-11-30'], // 排程日期
        scheDate: [handleDatetime(new Date()), handleDatetime(new Date())], // 排程日期
        types: 'N', // 排程方式
        scale: 60, // 时间刻度
        times: 0, // 换型时间
@@ -453,125 +455,8 @@
        rows: 10,
        WorkTime: '',
        BotProceName: ''
      },
      testValue: {
        'rus': {
          'statusCode': '',
          'message': '',
          'MOD_S': '',
          'MAR_S': '',
          'EQP_S': '',
          'CUT_S': '',
          'FIXT_S': '',
          'HouseNumber': '',
          'navTabId': '',
          'dialogid': '',
          'rel': '',
          'dt': null,
          'list': {},
          'callbackType': '',
          'forwardUrl': ''
        },
        'rows': [
          {
            'YearDate': '2022-11-24',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '78',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          },
          {
            'YearDate': '2022-11-25',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '78',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          },
          {
            'YearDate': '2022-11-26',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '78',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          },
          {
            'YearDate': '2022-11-27',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '78',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          },
          {
            'YearDate': '2022-11-28',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '78',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          },
          {
            'YearDate': '2022-11-29',
            'children': [
              {
                'AdvaDevicNumber': 'LKFDL_SC-PC029',
                'AdvaDevicName': '金鼎数控车床029',
                'AdvaDevicCropMob': '30',
                'AdvaDevicRhythm': '10',
                'OneStartDate': '08:00~11:30',
                'TwoStartDate': '12:30~17:00',
                'ThreeStartDate': '',
                'FourStartDate': '',
                'FiveStartDate': ''
              }
            ]
          }
        ],
        'Cont': null
      }
    }
  },
  watch: {
@@ -585,17 +470,10 @@
  },
  created() {
    this.getAdvancedSchedulingSearch()
    this.getAdvancedSchedulingSearch2()
    // this.AdvancedSchedulingWorkShop()
    this.OnclickAdvancedSchedulingDevice()
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
    this.change_time()
    this.click_schedule()
  },
  methods: {
    async getAdvancedSchedulingSearch() {
@@ -628,10 +506,6 @@
      this.formTop.partname = ''
      this.getAdvancedSchedulingSearch()
    },
    // 单选框点击
    getCurrentRowTop(val) {
      console.log(val)
    },
    // 获取页面高度
    getHeight() {
      this.$nextTick(() => {
@@ -644,22 +518,23 @@
      return 'custom-row'
    },
    // 行点击事件
    async   rowClick(row, event, column) {
      this.radioSelectedId = row.AdvaScheId
      const data = {
        wocode: row.AdvaScheWorkCode,
        wkshpcode: row.AdvaScheWorkShopid,
        partcode: row.AdvaSchePartNumber,
        botproccode: row.AdvaScheBotProcid,
        startdate: handleDatetime(new Date()),
        enddate: row.AdvaScheEndDate
      }
      const res = await OnclickAdvancedSchedulingDevice(data)
      console.log(res)
      this.testValue = res
    },
    // async   rowClick(row, event, column) {
    //   this.radioSelectedId = row.AdvaScheId
    //
    //   // this.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 //可以做个数
    //
    //   const data = {
    //     wocode: row.AdvaScheWorkCode,
    //     wkshpcode: row.AdvaScheWorkShopid,
    //     partcode: row.AdvaSchePartNumber,
    //     botproccode: row.AdvaScheBotProcid,
    //     startdate: handleDatetime(new Date()),
    //     enddate: row.AdvaScheEndDate
    //   }
    //
    //   const res = await OnclickAdvancedSchedulingDevice(data)
    //   console.log(res)
    // },
    /*
     排程部分的方法
@@ -668,12 +543,6 @@
      // automaticScheduling.AdvancedSchedulingWorkShop().then(res => {
      //   this.list = res
      // })
    },
    Search() {
      this.form.page = 1
      this.show = false
      this.radio = ''
      this.getAdvancedSchedulingSearch2()
    },
    resetFormcx() {
      this.$nextTick(() => {
@@ -685,22 +554,11 @@
        this.formBottom.times = 0
      }
    },
    sortChange(column, prop, order) {
      this.radio = '';
      (this.form.prop = column.prop), (this.form.order = column.order)
      this.show = false
      this.getAdvancedSchedulingSearch2()
    },
    SeachKey() {
      this.form.page = 1
      this.getAdvancedSchedulingSearch2()
      this.show = false
      this.radio = ''
    },
    // 工位列表复选框操作
    changeLift() {
      if (this.all_status) {
        this.false_arr = []
        this.OnclickAdvancedSchedulingDevice()
        this.getOnclickAdvancedSchedulingDevice()
      } else {
        for (const i in this.bm_data) {
          this.bm_data[i].status = false
@@ -710,16 +568,17 @@
          this.facility_data[i].gtArray = []
        }
      }
      // this.click_schedule()
    },
    changeTypes() {
      this.OnclickAdvancedSchedulingDevice()
      this.getOnclickAdvancedSchedulingDevice()
    },
    change_time() {
      this.time_data[0] = this.formBottom.value1[0] + ' 00:00'
      this.time_data[1] = this.formBottom.value1[1] + ' 23:59'
      this.forms.StartTime = this.formBottom.value1[0]
      this.forms.EndTime = this.formBottom.value1[1]
      this.OnclickAdvancedSchedulingDevice()
      this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
      this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
      this.forms.startdate = this.formBottom.scheDate[0]
      this.forms.enddate = this.formBottom.scheDate[1]
      this.getOnclickAdvancedSchedulingDevice()
    },
    click_box(val) {
      if (!val.status) {
@@ -740,7 +599,7 @@
            this.false_arr.push(this.bm_data[i].id)
          }
        }
        this.OnclickAdvancedSchedulingDevice()
        this.getOnclickAdvancedSchedulingDevice()
      }
      if (!val.status) {
@@ -756,7 +615,7 @@
            this.false_arr.push(this.bm_data[i].id)
          }
        }
        this.OnclickAdvancedSchedulingDevice()
        this.getOnclickAdvancedSchedulingDevice()
      }
      for (const i in this.bm_data) {
        const arr = []
@@ -768,6 +627,7 @@
        this.bm_data[i].gtArray = arr
      }
      this.formBottom.real_num = 0
      this.click_schedule()
    },
    look(data) {
      this.showDialog = true
@@ -782,47 +642,25 @@
      //     this.look_total = res.total
      //   })
    },
    sizeChange_look(val) {
      this.search_from.rows = val
      this.AdvancedSchedulingEquipmenTask()
    },
    pageChange_look(val) {
      this.search_from.page = val
      this.AdvancedSchedulingEquipmenTask()
    },
    sizeChange(val) {
      this.form.rows = val
      this.show = false
      this.radio = ''
      this.getAdvancedSchedulingSearch2()
    },
    pageChange(val) {
      this.form.page = val
      this.show = false
      this.radio = ''
      this.getAdvancedSchedulingSearch2()
    },
    // 查询
    getAdvancedSchedulingSearch2() {
      // automaticScheduling.AdvancedSchedulingSearch2(this.form).then(res => {
      //   this.mn_data = res.rows
      //   this.total = res.total
      //   this.oneClick()
      // })
    },
    // sizeChange_look(val) {
    //   this.search_from.rows = val
    //   this.AdvancedSchedulingEquipmenTask()
    // },
    // pageChange_look(val) {
    //   this.search_from.page = val
    //   this.AdvancedSchedulingEquipmenTask()
    // },
    // 点击带出数据
    OnclickAdvancedSchedulingDevice() {
      // this.facility_top()
    async  getOnclickAdvancedSchedulingDevice() {
      await this.facility_top()
      // automaticScheduling
      //   .OnclickAdvancedSchedulingDevice(this.forms)
      //   .then(res => {
      const res = this.testValue
      if (res.rus.message) {
      const res = await OnclickAdvancedSchedulingDevice(this.forms)
      if (res.rus.Message) {
        this.$message({
          showClose: true,
          type: 'error',
          message: res.rus.message
          message: res.rus.Message
        })
      }
      this.submit_flag = false
@@ -830,6 +668,8 @@
      this.time_all = res
      const cont = res.Cont
      this.formBottom.real_num = 0
      console.log(this.time_all.rows)
      console.log(this.time_all.rows[0].children)
      for (const i in this.time_all.rows[0].children) {
        const obj = {
          id: '',
@@ -1019,7 +859,7 @@
          }
        }
      }
      console.log(newList, 321)
      // console.log(newList, 321)
      for (const i in list) {
        this.pushTiem(newList, list[i].id, list[i].gtArray)
      }
@@ -1112,27 +952,29 @@
      var currentdate = year + seperator1 + month + seperator1 + strDate
      return currentdate
    },
    // 行点击事件
    getCurrentRow(row) {
      this.radioSelectedId = row.AdvaScheId
      // this.show =true
      this.formBottom.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 可以做个数
      this.formBottom.value1 = []
      this.formBottom.scheDate = []
      this.cl_name = row.AdvaSchePartName
      this.cl_code = row.AdvaSchePartNumber
      this.AdvaScheUom = row.AdvaScheUom
      this.work_order = row.AdvaScheWorkCode
      this.formBottom.value1.push(this.getNowFormatDate())
      this.formBottom.value1.push(row.AdvaScheEndDate)
      if (this.formBottom.value1 != '') {
        this.time_data[0] = this.formBottom.value1[0] + ' 00:00'
        this.time_data[1] = this.formBottom.value1[1] + ' 23:59'
      this.formBottom.scheDate.push(this.getNowFormatDate())
      this.formBottom.scheDate.push(row.AdvaScheEndDate)
      if (this.formBottom.scheDate !== '') {
        this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
        this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
      }
      this.forms.WorkCode = row.AdvaScheWorkCode
      this.forms.WorkShop = row.AdvaScheWorkShopid
      this.forms.PartNumber = row.AdvaSchePartNumber
      this.forms.BotProceCode = row.AdvaScheBotProcid
      this.forms.StartTime = this.getNowFormatDate()
      this.forms.EndTime = row.AdvaScheEndDate
      this.OnclickAdvancedSchedulingDevice()
      this.forms.wocode = row.AdvaScheWorkCode
      this.forms.wkshpcode = row.AdvaScheWorkShopid
      this.forms.partcode = row.AdvaSchePartNumber
      this.forms.botproccode = row.AdvaScheBotProcid
      this.forms.startdate = this.getNowFormatDate()
      this.forms.enddate = row.AdvaScheEndDate
      this.getOnclickAdvancedSchedulingDevice()
      this.formUpdata.WorkCode = row.AdvaScheWorkCode
      this.formUpdata.BotProceCode = row.AdvaScheBotProcid
      this.search_from.WorkTime =
@@ -1140,7 +982,7 @@
      this.search_from.BotProceName = row.AdvaScheBotProcName
    },
    // 提交排程
    click_yes() {
    async  click_yes() {
      if (this.submit_flag) {
        this.$message({
          showClose: true,
@@ -1152,11 +994,11 @@
        for (const i in this.bm_data) {
          const arr = []
          for (const j in this.bm_data[i].gtArray) {
            if (this.bm_data[i].gtArray[j].type == 'schedule') {
            if (this.bm_data[i].gtArray[j].type === 'schedule') {
              arr.push(this.bm_data[i].gtArray[j])
            }
          }
          if (arr != '') {
          if (arr !== '') {
            for (const i in arr) {
              const data = {
                AlreDevicNumber: '',
@@ -1183,7 +1025,7 @@
        updata = JSON.stringify(updata)
        this.formUpdata.json = updata
        if (list == '') {
        if (list === '') {
          this.$message({
            showClose: true,
            message: '请先预排',
@@ -1191,34 +1033,28 @@
          })
          return false
        }
        automaticScheduling
          .SubmitAlreadyScheduling(this.formUpdata)
          .then(res => {
            if (res.statusCode == 300) {
              this.$message({
                showClose: true,
                message: res.message,
                type: 'error'
              })
            } else {
              this.$message({
                showClose: true,
                message: res.message,
                type: 'success'
              })
            }
            this.formBottom.meter = 0
            this.formBottom.real_num = 0
            this.OnclickAdvancedSchedulingDevice()
            this.getAdvancedSchedulingSearch2()
          })
        const formData = new FormData()
        formData.append('wocode', this.formUpdata.WorkCode)
        formData.append('botprocecode', this.formUpdata.BotProceCode)
        formData.append('json', this.formUpdata.json)
        const res = await SubmitAlreadyScheduling(formData)
        if (res.code === '200') {
          this.$message.success(res.Message)
        }
        this.formBottom.meter = 0
        this.formBottom.real_num = 0
        // await this.getOnclickAdvancedSchedulingDevice()
        await this.getAdvancedSchedulingSearch()
      }
    },
    // 时间/设备优先排程
    click_schedule() {
      const timestamp = new Date().toLocaleDateString()
      if (new Date(this.formBottom.value1[0]) < new Date(timestamp)) {
      if (new Date(this.formBottom.scheDate[0]) < new Date(timestamp)) {
        this.$message({
          showClose: true,
          type: 'error',
@@ -1227,12 +1063,12 @@
        return false
      }
      this.nitialize()
      // 设备优先
      if (this.bm_data != '' && this.formBottom.types == 'N') {
      this.nitialize()// 手动过滤所有设备已排程
      if (this.bm_data !== '' && this.formBottom.types === 'N') { // 设备优先
        this.fun_time()
        this.change_num(this.bm_data)
      } else if (this.facility_data != '' && this.formBottom.types == 'Y') {
      } else if (this.facility_data !== '' && this.formBottom.types === 'Y') { // 时间优先
        this.time_nitalize()
        this.fun_facility()
        this.dataTransition()
@@ -1243,10 +1079,9 @@
    // 手动过滤所有时间已排程
    time_nitalize() {
      for (const i in this.facility_data) {
        this.facility_data[i].gtArray = this.facility_data[i].gtArray.filter(item => item.type != 'schedule')
        this.facility_data[i].gtArray = this.facility_data[i].gtArray.filter(item => item.type !== 'schedule')
      }
    },
    // 手动过滤所有设备已排程
    nitialize() {
      for (const i in this.bm_data) {
@@ -1259,7 +1094,6 @@
        this.bm_data[i].gtArray = newArr
      }
    },
    // 给排程最后一个修改数量
    change_num(arr) {
      this.formBottom.real_num = 0 // 真实已排数量
@@ -1317,8 +1151,8 @@
        let capacity_arr = [] // 要排程的数组
        this.bm_data[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        // let capacity_end = ''
        end_arr = this.bm_data[i].gtArray.filter(item => item.type == 'h_schedule')
        nend_arr = this.bm_data[i].gtArray.filter(item => item.type == 'capacity')
        end_arr = this.bm_data[i].gtArray.filter(item => item.type === 'h_schedule')
        nend_arr = this.bm_data[i].gtArray.filter(item => item.type === 'capacity')
        if (end_arr && end_arr.length > 0) {
          capacity_arr = nend_arr.map(item => {
            // 排除掉已经排程的存在hshedule,start,end都相等的情况
@@ -1625,11 +1459,9 @@
      }
    },
    // 设备优先
    facility_top() {
      // automaticScheduling
      //   .OnclickAdvancedSchedulingDevice(this.forms)
      //   .then(res => {
      const res = this.testValue
    async  facility_top() {
      const res = await OnclickAdvancedSchedulingDevice(this.forms)
      this.show = true
      const data = res.rows
      const cont = res.Cont