loulijun2021
2023-11-02 09bc0a81c166562bc4523f3a3d3fc86203f64b1e
src/views/produceManager/produceStartOrder.vue
@@ -15,7 +15,20 @@
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <!--                @keyup.native="e=>judgeIsScanning(e,'produceCode')"-->
              <div style="width: 90px;margin-left: 20px">生产设备:</div>
              <el-select
                v-model="form.SelectType"
                style="width: 200px;"
                placeholder="请选择"
                @change="selectTypeChange"
              >
                <el-option
                  v-for="item in ZZeqpArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
              <el-button v-waves @click="ZZstart">
@@ -63,6 +76,17 @@
                  <div v-if="row.status==='CLOSED'">完工</div>
                  <div v-if="row.status==='NOSCHED'">待排程</div>
                  <div v-if="row.status==='SCHED'">已排程</div>
                </template>
              </el-table-column>
              <el-table-column
                prop="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
@@ -266,6 +290,17 @@
                </template>
              </el-table-column>
              <el-table-column
                prop="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
                prop="wo_code"
                label="工单号"
                width="160"
@@ -430,6 +465,17 @@
                fixed
              />
              <el-table-column
                prop="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
                show-tooltip-when-overflow
                prop="wo_code"
                label="工单号"
@@ -520,7 +566,7 @@
      :visible.sync="dialogVisible"
      width="850px"
      class="dialogVisible"
      :top="dialogTitle==='自制报工'?'5vh':'15vh'"
      :top="dialogTitle==='自制报工'?'10vh':'15vh'"
      :close-on-click-modal="false"
      @close="handleClose"
      @closed="handleClose"
@@ -532,6 +578,9 @@
        :model="dialogForm"
        label-width="110px"
      >
        <el-form-item label="销售单号:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.saleOrderCode?dialogForm.saleOrderCode:'/' }}</div>
        </el-form-item>
        <el-form-item label="工单编号:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.wo_code }}</div>
        </el-form-item>
@@ -542,7 +591,7 @@
          <div style="width: 200px">{{ dialogForm.partname }}</div>
        </el-form-item>
        <el-form-item label="产品规格:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.partspec }}</div>
          <div style="width: 200px">{{ dialogForm.partspec?dialogForm.partspec:'/' }}</div>
        </el-form-item>
        <el-form-item label="当前工序:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.stepname }}</div>
@@ -575,23 +624,32 @@
          <div style="width: 200px">{{ dialogForm.startqty }}</div>
          <!--          <div style="width: 200px">{{  dialogForm.noreportqty }}</div>-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制开始'" prop="eqpcode" label="生产设备:">
          <el-select
            v-model="dialogForm.eqpcode"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in ZZeqpArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        <el-form-item v-if="dialogTitle==='自制开始'" label="生产设备:">
          <div style="width: 200px">{{ form.SelectType? ZZeqpArr.find(i=>i.code===form.SelectType).name:'' }}</div>
          <!--          <el-select-->
          <!--            v-model="dialogForm.eqpcode"-->
          <!--            style="width: 200px;"-->
          <!--            placeholder="请选择"-->
          <!--          >-->
          <!--            <el-option-->
          <!--              v-for="item in ZZeqpArr"-->
          <!--              :key="item.code"-->
          <!--              :label="item.name"-->
          <!--              :value="item.code"-->
          <!--            />-->
          <!--          </el-select>-->
        </el-form-item>
        <!--     自制报工   -->
        <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.nextstepname }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="车间名称:">
          <div style="width: 200px">{{ dialogForm.wkshopname }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.eqpname }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" prop="reckway" label="计件方式:">
@@ -634,44 +692,121 @@
          </el-select>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" prop="eqpcode">
          <el-select
            v-model="dialogForm.eqpcode"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in ZZeqpArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" prop="eqpcode">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.eqpcode"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in ZZeqpArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="合格数量:" prop="startqty">
          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
          <!--          <el-input v-model="dialogForm.noreportqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:">
          <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
          <!--          <el-input-->
          <!--            v-model="dialogForm.noputqty"-->
          <!--            readonly-->
          <!--            oninput="value=value.replace(/[^0-9.]/g,'')"-->
          <!--            style="width: 200px;"-->
          <!--          />-->
          <div style="width:200px">
            {{ dialogForm.noputqty }}
          </div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">
          <el-select
            v-model="dialogForm.badcode"
            style="width: 200px;"
            placeholder="请选择"
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            multiple
            collapse-tags
        <el-form-item v-if="dialogTitle==='自制报工'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.badcode"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"-->
        <!--            multiple-->
        <!--            collapse-tags-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in badArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:">
          <el-input
            v-model="badInput"
            placeholder="请输入数量"
            class="input-with-select"
            style="width: 300px;"
            oninput="value=value.replace(/[^0-9]/g,'')"
          >
            <el-option
              v-for="item in badArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            <el-select
              slot="prepend"
              v-model="badSelected"
              multiple
              placeholder="请选择"
              clearable
              style="width: 150px"
              collapse-tags
            >
              <el-option
                v-for="item in badArr"
                :key="item.code"
                :label="item.name"
                :value="item.code"
              />
            </el-select>
            <el-button
              slot="append"
              icon="el-icon-plus"
              @click="plusClick"
            />
          </el-select>
          </el-input>
        </el-form-item>
        <div
          v-for="(item,index) in BADNAME"
          v-if="dialogTitle==='自制报工'"
          :key="item+index"
          style="margin-left: 25px;display: flex;  line-height: 24px;"
        >
          <div
            style="
                   width: 22px;height: 22px;background: #42b983;
                   display: flex;
                   justify-content: center;
                   align-content: center;
                   color: #fff;
                   line-height: 22px;
                   border-radius: 50%;
                   "
          >{{ index+1 }}</div>
          <div style="margin: 0 20px">{{ item.name }}</div>
          <div>{{ item.badqty }}</div>
          <div style="margin-left: 20px">
            <i
              class="el-icon-delete"
              style="color:#42b983;cursor: pointer"
              @click="deleteClick(item,index)"
            />
          </div>
        </div>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="报工人员:">-->
        <!--          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />-->
        <!--        </el-form-item>-->
@@ -690,9 +825,7 @@
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
        <div v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'">
          <div style="display: flex;align-items:center;height: 40px;margin-bottom: 10px">
            <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" />
@@ -779,15 +912,15 @@
            </el-table-column>
          </el-table>
          <!--分页-->
          <pagination
            :total="UserTotal"
            :page.sync="Userform.page"
            :limit.sync="Userform.rows"
            align="right"
            layout="total,prev, pager, next,sizes,jumper"
            popper-class="select_bottom"
            @pagination="getMesOrderStepSearch"
          />
          <!--          <pagination-->
          <!--            :total="UserTotal"-->
          <!--            :page.sync="Userform.page"-->
          <!--            :limit.sync="Userform.rows"-->
          <!--            align="right"-->
          <!--            layout="total,prev, pager, next,sizes"-->
          <!--            popper-class="select_bottom"-->
          <!--            @pagination="getMesOrderStepSearch"-->
          <!--          />-->
        </div>
        <!--     外协发料-->
        <el-form-item
@@ -851,12 +984,13 @@
            v-model="dialogForm.wxcode"
            style="width: 200px;"
            placeholder="请选择"
            @change="wxCodeChange"
          >
            <el-option
              v-for="item in WXouterprovide"
              :key="item.code"
              :label="item.name"
              :value="item.code"
              v-for="item in WXouterprovide2"
              :key="item.Name"
              :label="item.tp"
              :value="item.Name"
            />
          </el-select>
        </el-form-item>
@@ -886,41 +1020,84 @@
          <el-input
            v-model="dialogForm.sqty"
            style="width: 200px"
            :disabled="dialogForm.wxcode===''"
            oninput="value=value.replace(/[^0-9.]/g,'')"
          />
        </el-form-item>
        <el-form-item
          v-if="dialogTitle==='外协收料'"
          label="不良数量:"
          prop="noputqty"
        >
          <div style="width: 200px;">
            {{ dialogForm.noputqty }}
          </div>
          <!--                  <el-input-->
          <!--                    v-model="dialogForm.noputqty"-->
          <!--                    style="width: 200px"-->
          <!--                    oninput="value=value.replace(/[^0-9.]/g,'')"-->
          <!--                  />-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='外协收料'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
        <el-form-item v-if="dialogTitle==='外协收料'" label="不良数量:">
          <el-input
            v-model="dialogForm.noputqty"
            style="width: 200px"
            oninput="value=value.replace(/[^0-9.]/g,'')"
          />
        </el-form-item>
        <el-form-item
          v-if="dialogTitle==='外协收料'"
          label="不良原因:"
        >
          <!--          prop="badcode"-->
          <el-select
            v-model="dialogForm.badcode"
            style="width: 200px;"
            multiple
            collapse-tags
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            placeholder="请选择"
            v-model="badInput"
            placeholder="请输入数量"
            class="input-with-select"
            style="width: 300px;"
            oninput="value=value.replace(/[^0-9]/g,'')"
          >
            <el-option
              v-for="item in badArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            <el-select
              slot="prepend"
              v-model="badSelected"
              multiple
              placeholder="请选择"
              clearable
              style="width: 150px"
              collapse-tags
            >
              <el-option
                v-for="item in badArr"
                :key="item.code"
                :label="item.name"
                :value="item.code"
              />
            </el-select>
            <el-button
              slot="append"
              icon="el-icon-plus"
              @click="plusClick"
            />
          </el-select>
          </el-input>
        </el-form-item>
        <!--        <el-form-item-->
        <!--          v-if="dialogTitle==='外协收料'"-->
        <!--          label="不良原因:"-->
        <!--        >-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.badcode"-->
        <!--            style="width: 200px;"-->
        <!--            multiple-->
        <!--            collapse-tags-->
        <!--            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in badArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.operation"-->
@@ -935,10 +1112,70 @@
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='外协收料'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
      </el-form>
      <div
        v-if="dialogTitle==='外协收料'&&BADNAME.length>0"
        style="height: 30px;margin-left:30px;"
      >
        不良数量明细:
      </div>
      <div
        v-for="(item,index) in BADNAME"
        v-if="dialogTitle==='外协收料'"
        :key="item+index"
        style="margin-left: 30px;display: flex;  line-height: 24px;"
      >
        <div
          style="
                   width: 22px;height: 22px;background: #42b983;
                   display: flex;
                   justify-content: center;
                   align-content: center;
                   color: #fff;
                   line-height: 22px;
                   border-radius: 50%;
                   "
        >{{ index+1 }}</div>
        <div style="margin: 0 20px">{{ item.name }}</div>
        <div>{{ item.badqty }}</div>
        <div style="margin-left: 20px">
          <i
            class="el-icon-delete"
            style="color:#42b983;cursor: pointer"
            @click="deleteClick(item,index)"
          />
        </div>
      </div>
      <div v-if="dialogTitle==='外协收料'" style="margin-top: 20px;;display: flex;flex-direction: column">
        <div style="height: 30px;margin-left:30px;">
          可收料供应商:
        </div>
        <div
          v-for="(item,index) in dialogForm.list"
          v-if="item.acceptQty>0"
          :key="item.Name"
          style="display: flex;line-height: 26px;height: 26px;margin-left:30px;align-items: center"
        >
          <div
            style="color: #fff;width: 22px;height: 22px;display: flex;justify-content: center;align-items: center;border-radius: 50%"
            :style="{backgroundColor:$store.state.settings.theme}"
          >{{ index+1 }}</div>
          <div style="margin-left:30px;width: 160px;" class="ellipsis">
            {{ item.tp }}
          </div>
          <div style="margin-left:30px;">
            可收数量:{{ item.acceptQty }}
          </div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button v-waves @click="dialogVisibleCancel">取 消</el-button>
@@ -957,7 +1194,8 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交/打印</el-button>
          >提 交</el-button>
          <!--          /打印-->
          <el-button
            v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname!==''"
            v-waves
@@ -965,7 +1203,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交</el-button>
          >提 交</el-button>
          <el-button
            v-if="dialogTitle==='外协发料'"
            v-waves
@@ -973,7 +1211,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >发料</el-button>
          >发 料</el-button>
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname===''"
            v-waves
@@ -981,7 +1219,8 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料/打印</el-button>
          >收 料</el-button>
          <!--          /打印-->
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname!==''"
            v-waves
@@ -989,7 +1228,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料</el-button>
          >收 料</el-button>
        </div>
      </span>
    </el-dialog>
@@ -1088,6 +1327,9 @@
        :model="badDialogForm"
        label-width="110px"
      >
        <el-form-item label="销售单号:">
          <div style="width: 200px">{{ badDialogForm.saleOrderCode? badDialogForm.saleOrderCode:'/' }}</div>
        </el-form-item>
        <el-form-item label="工单编号:">
          <div style="width: 200px">{{ badDialogForm.wo_code }}</div>
        </el-form-item>
@@ -1098,7 +1340,7 @@
          <div style="width: 200px">{{ badDialogForm.partname }}</div>
        </el-form-item>
        <el-form-item label="产品规格:">
          <div style="width: 200px">{{ badDialogForm.partspec }}</div>
          <div style="width: 200px">{{ badDialogForm.partspec?badDialogForm.partspec:'/' }}</div>
        </el-form-item>
        <el-form-item label="当前工序:">
          <div style="width: 200px">{{ badDialogForm.stepname }}</div>
@@ -1236,9 +1478,10 @@
            v-waves
            type="primary"
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            @click="badDialogVisibleConfirm "
          >保 存/打 印</el-button>
            :disabled="$store.state.app.buttonIsDisabled||badTableDataDialog.length===0||badTableDataDialog.find(i=>i.isVisible===1)"
            @click="badDialogVisibleConfirm"
          >保 存</el-button>
          <!--          /打 印-->
        </div>
      </span>
    </el-dialog>
@@ -1308,6 +1551,7 @@
      WXradioSelected: '', // 工序选中
      form: {
        orderstepqrcode: '', // 扫描的二维码信息
        SelectType: '', // 设备编码
        prop: 'lm_date', // 排序字段
        order: 'desc', // 排序字段
        page: 1, // 第几页
@@ -1333,6 +1577,7 @@
      dialogVisible: false,
      dialogTitle: '', // 自制开始、自制报工、外协发料、外协收料
      dialogForm: {
        saleOrderCode: '',
        wo_code: '', // 工单编号
        partcode: '', // 产品编码
        partname: '', // 产品名称
@@ -1367,7 +1612,7 @@
        startqtySum: '', // 不能超过的数值
        reckway: 'group', // 计件方式
        reckway: 'person', // 计件方式
        operation: getCookie('navTabId'), // 报工人(收料人)
        remarks: '', // 备注
@@ -1375,11 +1620,18 @@
        inbarcode: ''// 末道工序时 打印的入库码
      },
      badSelected: [], // 已选的不良原因数组
      badInput: '',
      BAD: [],
      BADNAME: [],
      ZZuserArr: [], // 自制用户所有
      ZZtreams: [], // 自制生产班组数组
      ZZeqpArr: [], // 自制设备名称
      badArr: [], // 不良原因数组
      WXouterprovide: [], // 外协供方数组
      WXouterprovide2: [], // 外协供方收料数组
      WXoutuser: [], // 发料人员数组
      userTableData: [], // 人员列表
      UserTotal: 0,
@@ -1718,6 +1970,10 @@
    },
    // 扫码键盘回车事件
    async enterNative(val, belong) {
      if (getCookie('description') !== 'W') {
        return this.$message.info('该角色无此操作权限!')
      }
      console.log(val, belong, 89898989)
      // 开工:code="200"  count=0
      // 报工:code="200"  count=1
@@ -1725,25 +1981,30 @@
      // 收料:code="200"  count=3
      // 走列表形式 code="200"  count=4
      if (belong === 'produceCode') {
        const orderstepqrcode = this.form.orderstepqrcode
        const data = {
          OperType: 'ZZ',
          orderstepqrcode: orderstepqrcode,
          SelectType: ''
        }
        const res = await MesOrderStepStart(data)
        if (res.code === '200' && res.count === 0) {
          await this.ZZstart(res.data)
        }
        if (res.code === '200' && res.count === 1) {
          await this.ZZreport(res.data)
        }
        await this.getMesOrderStepStartSelectEqp()
        // const orderstepqrcode = this.form.orderstepqrcode
        // const data = {
        //   OperType: 'ZZ',
        //   orderstepqrcode: orderstepqrcode,
        //   SelectType: this.form.SelectType,
        //   stu_torgcode: getCookie('stu_torgcode')
        // }
        // const res = await MesOrderStepStart(data)
        // if (res.code === '200' && res.count === 0) {
        //   await this.ZZstart(res.data)
        // }
        // if (res.code === '200' && res.count === 1) {
        //   await this.ZZreport(res.data)
        // }
      }
      if (belong === 'WXproduceCode') {
        const orderstepqrcode = this.WXform.orderstepqrcode
        const data = {
          OperType: 'WX',
          orderstepqrcode: orderstepqrcode,
          stu_torgcode: getCookie('stu_torgcode'),
          SelectType: this.WXSelected// OUT、IN
        }
        const res = await MesOrderStepStart(data)
@@ -1775,6 +2036,7 @@
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.saleOrderCode = obj.saleOrderCode
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
@@ -1790,7 +2052,7 @@
        this.dialogForm.startqty = obj.noreportqty
      })
      await this.getMesOrderStepStartSelectEqp()
      // await this.getMesOrderStepStartSelectEqp()
    },
    // 自制报工
    async ZZreport(obj) {
@@ -1799,32 +2061,38 @@
      // }
      this.dialogTitle = '自制报工'
      this.dialogVisible = true
      this.dialogForm.saleOrderCode = obj.saleOrderCode
      this.dialogForm.wo_code = obj.wo_code
      this.dialogForm.partcode = obj.partnumber
      this.dialogForm.partname = obj.partname
      this.dialogForm.partspec = obj.partspec
      this.dialogForm.stepseq = obj.seq
      this.dialogForm.stepcode = obj.stepcode
      this.dialogForm.stepname = obj.stepname
      this.dialogForm.stepdesc = obj.stepdesc
      this.dialogForm.planqty = obj.planqty
      this.dialogForm.reportqty = obj.reportqty
      this.dialogForm.noputqty = obj.noputqty
      this.dialogForm.noreportqty = obj.noreportqty
      // this.dialogForm.startqty = obj.startqty
      this.dialogForm.startqty = obj.noreportqty
      this.dialogForm.nextstepname = obj.nextstepname
      this.dialogForm.nextstepcode = obj.nextstepcode
      this.dialogForm.startqtySum = obj.noreportqty
      this.dialogForm.eqpname = obj.eqpname
      this.dialogForm.eqpcode = obj.eqpcode
      console.log(obj.wkshopcode, 7)
      this.dialogForm.wkshopcode = obj.wkshopcode
      this.dialogForm.wkshopname = obj.wkshopname
      this.$nextTick(() => {
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
        this.dialogForm.partspec = obj.partspec
        this.dialogForm.stepseq = obj.seq
        this.dialogForm.stepcode = obj.stepcode
        this.dialogForm.stepname = obj.stepname
        this.dialogForm.stepdesc = obj.stepdesc
        this.dialogForm.planqty = obj.planqty
        this.dialogForm.reportqty = obj.reportqty
        this.dialogForm.noputqty = obj.noputqty
        this.dialogForm.noreportqty = obj.noreportqty
        // this.dialogForm.startqty = obj.startqty
        this.dialogForm.startqty = obj.noreportqty
        this.dialogForm.nextstepname = obj.nextstepname
        this.dialogForm.nextstepcode = obj.nextstepcode
        this.dialogForm.startqtySum = obj.noreportqty
        this.$refs.userTableDataRef.doLayout()
      })
      await this.getMesOrderStepStartSelectEqp()
      // await this.getMesOrderStepStartSelectEqp()
      await this.getMesOrderStepReportSelectUserGroup()
      await this.getMesOrderStepSelectCause('ZZ')
      await this.getMesOrderSelectUserZZ()
@@ -1842,6 +2110,7 @@
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.saleOrderCode = obj.saleOrderCode
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
@@ -1859,15 +2128,29 @@
      await this.getMesOrderStepSelectWX()
      await this.getMesOrderSelectUser()
    },
    wxCodeChange(val) {
      this.dialogForm.sqty = this.WXouterprovide2.find(i => i.Name === val).acceptQty
    },
    // 外协收料
    async WXback(obj) {
      // if (this.WXform.orderstepqrcode === '') {
      //   return this.$message.info('请先输入工序!')
      // }
      this.WXouterprovide2 = []
      obj.list.forEach(i => {
        i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.bad_qty)
        if (i.acceptQty > 0) {
          this.WXouterprovide2.push(i)
        }
      })
      // console.log(this.WXouterprovide2, 2)
      this.dialogTitle = '外协收料'
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.saleOrderCode = obj.saleOrderCode
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
@@ -1887,6 +2170,8 @@
        this.dialogForm.sqty = obj.startqty
        this.dialogForm.startqtySum = obj.startqty
        this.dialogForm.list = obj.list
      })
      await this.getMesOrderStepSelectWX()
      await this.getMesOrderSelectUser()
@@ -1899,7 +2184,9 @@
    },
    // 获取自制报工生产班组下拉列表
    async getMesOrderStepReportSelectUserGroup() {
      const { data: res } = await MesOrderStepReportSelectUserGroup()
      // this.dialogForm.wkshopcode
      const { data: res } = await MesOrderStepReportSelectUserGroup({ wkshopcode: this.dialogForm.wkshopcode })
      this.ZZtreams = res
    },
    // 获取自制报工表格user所有
@@ -1939,6 +2226,31 @@
      const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode })
      this.badArr = res
    },
    // 开工选择设备改变时
    selectTypeChange(val) {
      this.form.SelectType = val
      const orderstepqrcode = this.form.orderstepqrcode
      const data = {
        OperType: 'ZZ',
        orderstepqrcode: orderstepqrcode,
        SelectType: this.form.SelectType,
        stu_torgcode: getCookie('stu_torgcode')
      }
      MesOrderStepStart(data).then(res => {
        if (res.code === '200' && res.count === 0) {
          this.ZZstart(res.data)
        }
        if (res.code === '200' && res.count === 1) {
          this.ZZreport(res.data)
        }
      }).catch(e => {
        this.form.orderstepqrcode = ''
        this.form.SelectType = ''
      })
    },
    // 报工查询用户表
    async getUserTableData() {
      const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode })
@@ -1963,11 +2275,12 @@
    calculatedValue() {
      const total = 100
      let value = 0
      this.userTableData.forEach(item => {
        item.ratio = parseFloat((100 / this.userTableData.length).toFixed(2))
        value += item.ratio
      })
      console.log(value, 1)
      this.UserTotal = this.userTableData.length
      if (value !== total) {
        // let temp = this.userTableData
@@ -1994,6 +2307,43 @@
      })
    },
    plusClick() {
      // console.log(this.badSelected, this.badInput)
      if (this.badSelected.length < 1) {
        return this.$message.info('请选择不良原因!')
      }
      if (this.badInput.toString().trim().length < 1) {
        return this.$message.info('请输入不良数量!')
      }
      this.BAD.push({
        defect_code: this.badSelected.sort().join(','),
        badqty: this.badInput
      })
      const NAME = []
      this.badSelected.forEach(item => {
        const name = this.badArr.find(it => it.code === item).name
        NAME.push(name)
      })
      this.BADNAME.push({
        name: NAME.join(','), badqty: this.badInput
      })
      // console.log(typeof this.dialogForm.noputqty)
      this.dialogForm.noputqty += parseFloat(this.badInput)
      this.badSelected = []
      this.badInput = ''
    },
    deleteClick(val, index) {
      console.log(val, 2)
      this.dialogForm.noputqty -= parseFloat(val.badqty)
      this.BADNAME.splice(index, 1)
      this.BAD.splice(index, 1)
    },
    // 用户添加
    userAdd() {
      if (this.userTableData.find(i => i.isVisible === 1)) {
@@ -2001,7 +2351,6 @@
      }
      let number = Math.random() * Math.random()// 作为删除时的标识符
      number = number === 0 ? (10 + Math.random()) : number
      console.log(this.userTableData, 6)
      this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number, ratio: 0 })
      this.calculatedValue()
    },
@@ -2067,41 +2416,46 @@
    },
    // 对话框关闭事件
    handleClose() {
      this.BAD = []
      this.BADNAME = []
      this.badSelected = []
      this.badInput = ''
      this.judgeIsScanningArr = []
      this.form.orderstepqrcode = ''
      this.WXform.orderstepqrcode = ''
      this.badForm.orderstepqrcode = ''
      this.dialogForm.wo_code = '', // 工单编号
      this.dialogForm.partcode = '', // 产品编码
      this.dialogForm.partname = '', // 产品名称
      this.dialogForm.partspec = '', // 产品规格
      this.dialogForm.stepseq = '', // 工序序号
      this.dialogForm.stepcode = '', // 工序编码
      this.dialogForm.stepname = '', // 当前工序名
      this.dialogForm.nextstepname = '', // 下一道工序名
      this.dialogForm.stepdesc = '', // 工序描述
      this.dialogForm.planqty = '', // 任务数量
      this.dialogForm.reportqty = '', // 已报数量
      this.dialogForm.noreportqty = '', // 未报数量
      this.dialogForm.startqty = '', // 开(报)工数量
      this.dialogForm.wo_code = '' // 工单编号
      this.dialogForm.partcode = '' // 产品编码
      this.dialogForm.partname = '' // 产品名称
      this.dialogForm.partspec = '' // 产品规格
      this.dialogForm.stepseq = ''// 工序序号
      this.dialogForm.stepcode = '' // 工序编码
      this.dialogForm.stepname = '' // 当前工序名
      this.dialogForm.nextstepname = ''// 下一道工序名
      this.dialogForm.stepdesc = '' // 工序描述
      this.dialogForm.planqty = '' // 任务数量
      this.dialogForm.reportqty = '' // 已报数量
      this.dialogForm.noreportqty = '' // 未报数量
      this.dialogForm.startqty = '' // 开(报)工数量
      this.dialogForm.wxcode = '', // 外协供应商编码
      this.dialogForm.outuser = '', // 发料人员
      this.dialogForm.taskqty = '', // 任务数量
      this.dialogForm.fqty = '', // 发料数量
      this.dialogForm.wxcode = '' // 外协供应商编码
      this.dialogForm.outuser = '' // 发料人员
      this.dialogForm.taskqty = '' // 任务数量
      this.dialogForm.fqty = '' // 发料数量
      this.dialogForm.inuser = getCookie('navTabId'), // 收料人员  默认登录人员
      this.dialogForm.sqty = '', // 收料数量
      this.dialogForm.ngqty = '', // 不良数量
      this.dialogForm.badcode = '', // 不良原因编码
      this.dialogForm.inuser = getCookie('navTabId') // 收料人员  默认登录人员
      this.dialogForm.sqty = '' // 收料数量
      this.dialogForm.ngqty = '' // 不良数量
      this.dialogForm.badcode = '' // 不良原因编码
      this.dialogForm.noputqty = '', // 不良数量
      this.dialogForm.noputqty = '' // 不良数量
      this.dialogForm.eqpcode = '', // 生产设备编码
      this.dialogForm.eqpcode = '' // 生产设备编码
      this.dialogForm.usergroupcode = '', // 班组编码
      this.dialogForm.reportuser = '', // 报工人员
      this.dialogForm.usergroupcode = '' // 班组编码
      this.dialogForm.reportuser = '' // 报工人员
      this.dialogForm.startqtySum = '' // 不能超过的数值
@@ -2111,11 +2465,14 @@
      // this.dialogForm.inbarcode = '' // 入库码
      this.dialogForm.reckway = 'group'
      this.dialogForm.reckway = 'person'
      this.dialogForm.remarks = '' // 备注
      this.dialogForm.operation = getCookie('navTabId') // 报工人(收料人)
      this.userTableData = [] // 人员列表
      this.form.SelectType = ''
      this.ZZeqpArr = []
      this.$refs.dialogForm.clearValidate()
    },
@@ -2160,26 +2517,30 @@
              return this.$message.info('收料数量加不良数量不能大于了未收数量!')
            }
            if (parseFloat(this.dialogForm.noputqty) > 0) {
              if (this.dialogForm.badcode.length < 1) {
                return this.$message.info('请选择不良原因!')
              }
            if (this.WXouterprovide2.find(i => i.Name === this.dialogForm.wxcode).acceptQty < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
              return this.$message.info('收料数量加不良数量不能大于该供应商可收数量!')
            }
            // if (parseFloat(this.dialogForm.noputqty) > 0) {
            //   if (this.dialogForm.badcode.length < 1) {
            //     return this.$message.info('请选择不良原因!')
            //   }
            // }
            this.dialogForm.inbarcode = ''
            // 当为末道的时候
            if (this.dialogForm.nextstepcode === '') {
              const D = {
                rightcode: '1078',
                partcode: this.dialogForm.partcode,
                qty: this.dialogForm.sqty,
                onelabqty: this.dialogForm.sqty
              }
              const r = await LabelBarCode(D)
              this.dialogForm.inbarcode = r.data[0].labcode
              this.qrForm.partspec = this.dialogForm.partspec
            }
            // if (this.dialogForm.nextstepcode === '') {
            //   const D = {
            //     rightcode: '1078',
            //     partcode: this.dialogForm.partcode,
            //     qty: this.dialogForm.sqty,
            //     onelabqty: this.dialogForm.sqty
            //   }
            //   const r = await LabelBarCode(D)
            //   this.dialogForm.inbarcode = r.data[0].labcode
            //
            //   this.qrForm.partspec = this.dialogForm.partspec
            // }
            const data = {
              mesordercode: this.dialogForm.wo_code, // 工单编号
@@ -2192,18 +2553,19 @@
              sqty: this.dialogForm.sqty, // 收料数量
              remarks: this.dialogForm.remarks, // 备注
              inbarcode: this.dialogForm.inbarcode, // 生产入库条码
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
              defectlist: this.BAD
              // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            // console.log(JSON.stringify(data), 2)
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepIn(data).then(res => {
              if (res.code === '200') {
                this.dialogVisible = false
                this.$message.success('收料成功!')
                // if (this.dialogForm.nextstepcode === '') {
                // this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.inuser).username)
                this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                this.dialogVisible2 = true
                // this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                // this.dialogVisible2 = true
                // }
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
@@ -2219,7 +2581,7 @@
              partcode: this.dialogForm.partcode, // 产品编码
              stepseq: this.dialogForm.stepseq, // 工序序号   暂时缺
              stepcode: this.dialogForm.stepcode, // 工序编码
              eqpcode: this.dialogForm.eqpcode, // 生产设备
              eqpcode: this.form.SelectType, // 生产设备
              taskqty: this.dialogForm.planqty, // 任务数量
              startqty: this.dialogForm.startqty// 开始数量
            }
@@ -2255,16 +2617,17 @@
              this.userTableData.forEach(item => {
                sum += parseFloat(item.ratio)
              })
              console.log(sum, 4)
              if (Math.round(sum * 100) / 100 !== 100) {
                return this.$message.info('分配比例总和必须为100!')
              }
            }
            if (parseFloat(this.dialogForm.noputqty) > 0) {
              if (this.dialogForm.badcode.length < 1) {
                return this.$message.info('请选择不良原因!')
              }
            }
            // if (parseFloat(this.dialogForm.noputqty) > 0) {
            //   if (this.dialogForm.badcode.length < 1) {
            //     return this.$message.info('请选择不良原因!')
            //   }
            // }
            // console.log(this.userTableData, 1)
            // const reportuser = this.userTableData.map(item => item.usercode).join(';')// 主要改的是这里的格式
@@ -2307,13 +2670,15 @@
              inbarcode: this.dialogForm.inbarcode, // 生产入库条码
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
              defectlist: this.BAD
              // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            // console.log(JSON.stringify(data), 'data')
            console.log(data, 'data')
            this.$store.state.app.buttonIsDisabled = true
            console.log(JSON.parse(JSON.stringify(data)), 'data')
            console.log(JSON.stringify(data), 'data')
            // this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepReport(data).then(res => {
              if (res.code === '200') {
@@ -2321,8 +2686,8 @@
                this.$message.success('报工成功!')
                // this.dialogForm.nextstepcode===''  //当为空的时候  代表是末道工序
                // if (this.dialogForm.nextstepcode !== '') {
                this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                this.dialogVisible2 = true
                // this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                // this.dialogVisible2 = true
                // }
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
@@ -2426,8 +2791,8 @@
        if (res.code === '200' || res.code === '301') {
          this.getBadList()
          this.badDialogVisible = false
          this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
          this.dialogVisible2 = true
          // this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
          // this.dialogVisible2 = true
          this.$message.success('保存成功!')
          this.$store.state.app.buttonIsDisabled = false
@@ -2475,6 +2840,7 @@
      const { data: res } = await MesOrderNgSubStepSearch(data)
      this.$nextTick(() => {
        this.badDialogForm.saleOrderCode = res.data1.saleOrderCode
        this.badDialogForm.wo_code = res.data1.wo_code
        this.badDialogForm.partcode = res.data1.partnumber
        this.badDialogForm.partname = res.data1.partname