hdy
2025-03-14 0994009a6d6184839359505d99fdf7be68ee1b19
工单界面新增按钮
已修改10个文件
366 ■■■■ 文件已修改
billion-main/src/main/java/com/billion/main/constant/Constants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/domain/DaParamCollection.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/om/service/impl/OmOrderSchedulingServiceImpl.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/om/OmProductionOrderInfoMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/da/materialCollection/index.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/da/paramCollection/index.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/da/stationCollection/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/om/info/index.vue 153 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/constant/Constants.java
@@ -10,6 +10,7 @@
    public static final String TWO= "2";
    public static final String RecordData= "RecordData";
    public static final String WorkOrderRequest= "WorkOrderRequest";
//    public static final String TEST= "TEST";//缸盖上线工位
    public static final List<String> PLC1 = new ArrayList<>();
    public static final List<String> PLC2 = new ArrayList<>();
billion-main/src/main/java/com/billion/main/da/domain/DaParamCollection.java
@@ -38,11 +38,21 @@
    private String paramValue;
    /** 采集时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    /** 采集时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date stopTime;
    /** 参数名称 */
    @Excel(name = "参数名称")
billion-main/src/main/java/com/billion/main/om/service/impl/OmOrderSchedulingServiceImpl.java
@@ -1,17 +1,13 @@
package com.billion.main.om.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.exception.ServiceException;
import com.billion.common.utils.DateUtils;
import com.billion.main.om.domain.OmOrderScheduling;
import com.billion.main.om.mapper.OmOrderSchedulingMapper;
import com.billion.main.om.service.IOmOrderSchedulingService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
/**
@@ -59,17 +55,19 @@
    @Override
    public int insertOmOrderScheduling(OmOrderScheduling omOrderScheduling)
    {
        List<OmOrderScheduling> list = this.list(new LambdaQueryWrapper<OmOrderScheduling>().eq(OmOrderScheduling::getSfcCode, omOrderScheduling.getSfcCode()));
        if (CollUtil.isNotEmpty(list)){
            throw new ServiceException(MessageFormat.format("已存在总成序列号为{0}的数据",omOrderScheduling.getSfcCode()));
        }
        omOrderScheduling.setUpdateTime(DateUtils.getNowDate());
        return omOrderSchedulingMapper.updateOmOrderScheduling(omOrderScheduling);
//        List<OmOrderScheduling> list = this.list(new LambdaQueryWrapper<OmOrderScheduling>().eq(OmOrderScheduling::getSfcCode, omOrderScheduling.getSfcCode()));
//        if (CollUtil.isNotEmpty(list)){
//            throw new ServiceException(MessageFormat.format("已存在总成序列号为{0}的数据",omOrderScheduling.getSfcCode()));
//        }
//        LoginUser loginUser = SecurityUtils.getLoginUser();
//        SysUser user = loginUser.getUser();
        omOrderScheduling.setCreateTime(new Date());
        omOrderScheduling.setUpdateTime(new Date());
//        omOrderScheduling.setCreateTime(new Date());
//        omOrderScheduling.setUpdateTime(new Date());
//        omOrderScheduling.setCreateBy(user.getUserName());
//        omOrderScheduling.setUpdateBy(user.getUserName());
        return omOrderSchedulingMapper.insertOmOrderScheduling(omOrderScheduling);
//        return omOrderSchedulingMapper.insertOmOrderScheduling(omOrderScheduling);
    }
    /**
@@ -81,17 +79,19 @@
    @Override
    public int updateOmOrderScheduling(OmOrderScheduling omOrderScheduling)
    {
        List<OmOrderScheduling> list = this.list(new LambdaQueryWrapper<OmOrderScheduling>()
                .eq(OmOrderScheduling::getSfcCode, omOrderScheduling.getSfcCode())
                .notIn(OmOrderScheduling::getId,omOrderScheduling.getId()));
        if (CollUtil.isNotEmpty(list)){
            throw new ServiceException(MessageFormat.format("已存在总成序列号为{0}的数据",omOrderScheduling.getSfcCode()));
        }
        omOrderScheduling.setUpdateTime(DateUtils.getNowDate());
        return omOrderSchedulingMapper.updateOmOrderScheduling(omOrderScheduling);
//        List<OmOrderScheduling> list = this.list(new LambdaQueryWrapper<OmOrderScheduling>()
//                .eq(OmOrderScheduling::getSfcCode, omOrderScheduling.getSfcCode())
//                .notIn(OmOrderScheduling::getId,omOrderScheduling.getId()));
//        if (CollUtil.isNotEmpty(list)){
//            throw new ServiceException(MessageFormat.format("已存在总成序列号为{0}的数据",omOrderScheduling.getSfcCode()));
//        }
//        LoginUser loginUser = SecurityUtils.getLoginUser();
//        SysUser user = loginUser.getUser();
        omOrderScheduling.setUpdateTime(new Date());
//        omOrderScheduling.setUpdateTime(new Date());
//        omOrderScheduling.setUpdateBy(user.getUserName());
        return omOrderSchedulingMapper.updateOmOrderScheduling(omOrderScheduling);
//        return omOrderSchedulingMapper.updateOmOrderScheduling(omOrderScheduling);
    }
    /**
billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
@@ -55,7 +55,6 @@
        Constants.PLC2.add(Constants.OP045);
        Constants.PLC2.add(Constants.OP060);
        Constants.PLC2.add(Constants.OP070);
        Constants.PLC2.add(Constants.OP070_1);
        Constants.PLC2.add(Constants.OP075);
        Constants.PLC2.add(Constants.OP080);
        Constants.PLC2.add(Constants.OP090);
@@ -106,6 +105,7 @@
        Constants.PLC4.add(Constants.OP030);
        Constants.PLC4.add(Constants.OP050);
        Constants.PLC4.add(Constants.OP110);
        Constants.PLC4.add(Constants.OP070_1);
        Constants.PLC4.add(Constants.OP140);
        //上线工位
        Constants.ONLINE.add(Constants.C005);
@@ -208,19 +208,16 @@
        lists.add("PLC3.OP110.RecordData");
        lists.add("PLC3.OP140.RecordData");
        //TEST
        lists.add("TEST.C005.RecordData");
        lists.add("TEST.C005.WorkOrderRequest");
        lists.add("TEST.C060.RecordData");
        lists.add("TEST.OP005.RecordData");
        lists.add("TEST.OP005.WorkOrderRequest");
        lists.add("TEST.OP010.RecordData");
        lists.add("TEST.OP310.RecordData");
        lists.add("TEST.P010.RecordData");
        lists.add("TEST.P010.WorkOrderRequest");
//        //TEST
//        lists.add("TEST.C005.RecordData");
//        lists.add("TEST.C005.WorkOrderRequest");
//        lists.add("TEST.C060.RecordData");
//        lists.add("TEST.OP005.RecordData");
//        lists.add("TEST.OP005.WorkOrderRequest");
//        lists.add("TEST.OP010.RecordData");
//        lists.add("TEST.OP310.RecordData");
//        lists.add("TEST.P010.RecordData");
//        lists.add("TEST.P010.WorkOrderRequest");
        return lists;
    }
billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -134,6 +134,7 @@
                    OmOrderScheduling omOrderScheduling = new OmOrderScheduling();
                    Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue();
                    //上线工位
//                    if(Constants.ONLINE.contains(device) || Constants.TEST.equals(device) ){
                    if(Constants.ONLINE.contains(device)){
                        Object workOrderNumber = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue();
                        Object nowQty = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue();
@@ -158,7 +159,6 @@
                        ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
                        Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
                        omOrderScheduling.setOfflineTime(Time);
                        omOrderScheduling.setStatus("2");
                        if(Constants.C060.equals(device)){
                            omOrderScheduling.setRemarks("Head");
                            omOrderScheduling.setSfcCode(SFCCode.toString());
@@ -171,7 +171,7 @@
                            if (nowQty == headQty){
                                UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                                updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
                                updateWrapper.set("head_status", "3");
                                updateWrapper.set("head_status", "2");
                                omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
                            }
                        } else if (Constants.OP310.equals(device)) {
@@ -186,7 +186,7 @@
                            if (nowQty == bodyQty){
                                UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                                updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
                                updateWrapper.set("body_status", "3");
                                updateWrapper.set("body_status", "2");
                                omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
                            }
                        }
@@ -206,7 +206,7 @@
                        if (nowQty == preQty){
                            UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                            updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
                            updateWrapper.set("pre_status", "3");
                            updateWrapper.set("pre_status", "2");
                            omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
                        }
                    }
@@ -217,7 +217,13 @@
                    List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1);
                    for (DaCollectionParamConf conf : daCollectionParamConfList1) {
                        String gatherAddress = conf.getGatherAddress();
                        String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 获取原始值对象‌:ml-citation{ref="4" data="citationList"}
                        String valueObj = null;
                        ReadWriteEntity entity = miloService.readFromOpcUa(gatherAddress);
                        if (entity != null) {
                            Object value = entity.getValue();
                            if (value != null) {
                                valueObj = value.toString();  // 最终赋值
                        if (!Objects.equals(valueObj, "                                                  ")) {
                            DaMaterialCollection materialCollection = new DaMaterialCollection();
                            materialCollection.setSfcCode(SFCCode.toString());
@@ -232,6 +238,8 @@
                        }
                        else {
                            log.debug("采集项为空: {}", gatherAddress);
                                }
                            }
                        }
                    }
//                    查询descriptive字段等于2的采集项保存到扫码保存到da_param_collection表里
@@ -280,6 +288,7 @@
            log.error(e.getMessage());
        }
}
    //首工站下发工单,并生成SN码
    private static final String[] MONTH = {"A","B","C","D","E","F","G","H","I","J","K","L"};
    public void plackWorkOrder(String thoroughfare, String device, String tab, String valueString) {
@@ -334,7 +343,8 @@
                            if (Objects.equals(getBodyOrder2.getBodyQty(), getBodyOrder2.getPlanQty())){
                                omProductionOrderInfoService.updateBodyStatus2();
                            }
                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getBodyOrder2.getBodyQty()).build());
                            String PalletID = getBodyOrder2.getBodyQty().toString();
                            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                    }
                    else{
@@ -386,7 +396,8 @@
                        if (Objects.equals(getHeadOrder2.getHeadQty(), getHeadOrder2.getPlanQty())){
                            omProductionOrderInfoService.updateHeadStatus2();
                        }
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getHeadOrder2.getHeadQty()).build());
                        String PalletID = getHeadOrder2.getHeadQty().toString();
                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                    }
                    else{
@@ -437,7 +448,8 @@
                        if (Objects.equals(getPreOrder2.getPreQty(), getPreOrder2.getPlanQty())){
                            omProductionOrderInfoService.updatePreStatus2();
                        }
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getPreOrder2.getPreQty()).build());
                        String PalletID = getPreOrder2.getPreQty().toString();
                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                    }
                    else{
billion-main/src/main/resources/mapper/om/OmProductionOrderInfoMapper.xml
@@ -41,6 +41,7 @@
            SELECT TOP 1 *
            FROM om_production_order_info
            WHERE body_status IN (0,1)
            AND body_qty != plan_qty
            ORDER BY plan_start_time ASC
    </select>
    <select id="updateBodyStatus1" resultType="OmProductionOrderInfo">
@@ -68,6 +69,7 @@
        SELECT TOP 1 *
        FROM om_production_order_info
        WHERE head_status IN (0,1)
          AND head_qty != plan_qty
        ORDER BY plan_start_time ASC
    </select>
    <select id="updateHeadStatus1" resultType="OmProductionOrderInfo">
@@ -95,6 +97,7 @@
        SELECT TOP 1 *
        FROM om_production_order_info
        WHERE pre_status IN (0,1)
          AND pre_qty != plan_qty
        ORDER BY plan_start_time ASC
    </select>
    <select id="updatePreStatus1" resultType="OmProductionOrderInfo">
@@ -188,6 +191,12 @@
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="remarks != null">remarks = #{remarks},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="bodyQty != null">body_qty = #{bodyQty},</if>
            <if test="headQty != null">head_qty = #{headQty},</if>
            <if test="preQty != null">pre_qty = #{preQty},</if>
            <if test="bodyStatus != null">body_status = #{bodyStatus},</if>
            <if test="headStatus != null">head_status = #{headStatus},</if>
            <if test="preStatus != null">pre_status = #{preStatus},</if>
        </trim>
        where id = #{id}
    </update>
billion-ui/src/views/main/da/materialCollection/index.vue
@@ -19,30 +19,6 @@
          end-placeholder="结束日期">
        </el-date-picker>
      </el-form-item>
<!--      <el-form-item label="工位编码" prop="locationCode">-->
<!--        <el-input-->
<!--          v-model="queryParams.locationCode"-->
<!--          placeholder="请输入工位编码"-->
<!--          clearable-->
<!--          @keyup.enter.native="handleQuery"-->
<!--        />-->
<!--      </el-form-item>-->
<!--      <el-form-item label="参数编码" prop="paramCode">-->
<!--        <el-input-->
<!--          v-model="queryParams.paramCode"-->
<!--          placeholder="请输入参数编码"-->
<!--          clearable-->
<!--          @keyup.enter.native="handleQuery"-->
<!--        />-->
<!--      </el-form-item>-->
<!--      <el-form-item label="参数名称" prop="paramName">-->
<!--        <el-input-->
<!--          v-model="queryParams.paramName"-->
<!--          placeholder="请输入参数名称"-->
<!--          clearable-->
<!--          @keyup.enter.native="handleQuery"-->
<!--        />-->
<!--      </el-form-item>-->
      <el-form-item style="float: right">
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -50,38 +26,6 @@
    </el-form>
    <el-row :gutter="10" class="mb8">
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="primary"-->
<!--          plain-->
<!--          icon="el-icon-plus"-->
<!--          size="mini"-->
<!--          @click="handleAdd"-->
<!--          v-hasPermi="['da:materialCollection:add']"-->
<!--        >新增</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="success"-->
<!--          plain-->
<!--          icon="el-icon-edit"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="handleUpdate"-->
<!--          v-hasPermi="['da:materialCollection:edit']"-->
<!--        >修改</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="danger"-->
<!--          plain-->
<!--          icon="el-icon-delete"-->
<!--          size="mini"-->
<!--          :disabled="multiple"-->
<!--          @click="handleDelete"-->
<!--          v-hasPermi="['da:materialCollection:remove']"-->
<!--        >删除</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="warning"
@@ -99,7 +43,6 @@
<!--      <el-table-column label="主键id" align="center" prop="id" />-->
      <el-table-column label="总成序列号" align="center" prop="sfcCode" />
      <el-table-column label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="参数编码" align="center" prop="paramCode" />
      <el-table-column label="参数名称" align="center" prop="paramName" />
      <el-table-column label="参数值" align="center" prop="paramValue" />
      <el-table-column label="采集时间" align="center" prop="collectTime" width="180">
billion-ui/src/views/main/da/paramCollection/index.vue
@@ -9,9 +9,9 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
     <el-form-item label-width="120" label="采集时间" prop="timeQuery">
     <el-form-item label-width="120" label="采集时间" prop="collectTime">
        <el-date-picker
          v-model="queryParams.timeQuery"
          v-model="queryParams.collectTime"
          type="datetimerange"
          range-separator="至"
          value-format="yyyy-MM-dd HH:mm:ss"
@@ -61,38 +61,6 @@
    </el-form>
    <el-row :gutter="10" class="mb8">
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="primary"-->
<!--          plain-->
<!--          icon="el-icon-plus"-->
<!--          size="mini"-->
<!--          @click="handleAdd"-->
<!--          v-hasPermi="['da:paramCollection:add']"-->
<!--        >新增</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="success"-->
<!--          plain-->
<!--          icon="el-icon-edit"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="handleUpdate"-->
<!--          v-hasPermi="['da:paramCollection:edit']"-->
<!--        >修改</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="danger"-->
<!--          plain-->
<!--          icon="el-icon-delete"-->
<!--          size="mini"-->
<!--          :disabled="multiple"-->
<!--          @click="handleDelete"-->
<!--          v-hasPermi="['da:paramCollection:remove']"-->
<!--        >删除</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="warning"
@@ -108,10 +76,8 @@
    <el-table v-loading="loading" border :data="paramCollectionList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
<!--      <el-table-column label="主键id" align="center" prop="id" />-->
      <el-table-column label="总成序列号" align="center" prop="sfcCode" />
      <el-table-column label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="参数编码" align="center" prop="paramCode" />
      <el-table-column label="参数名称" align="center" prop="paramName" />
      <el-table-column label="参数值" align="center" prop="paramValue" />
      <el-table-column label="采集时间" align="center" prop="collectTime" width="180">
billion-ui/src/views/main/da/stationCollection/index.vue
@@ -94,14 +94,13 @@
    <el-table border v-loading="loading" :data="daStationCollectionList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="主键id" align="center" prop="id" />
      <el-table-column :show-overflow-tooltip="true" label="总成序列号" align="center" prop="sfcCode" />
      <el-table-column :show-overflow-tooltip="true" label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="进站时间" align="center" prop="inboundTime" width="180">
      </el-table-column>
      <el-table-column label="出站时间" align="center" prop="outboundTime" width="180">
      </el-table-column>
      <el-table-column :show-overflow-tooltip="true" label="状态" align="center" prop="status" />
      <el-table-column :show-overflow-tooltip="true" label="站状态" align="center" prop="status" />
      <el-table-column label="采集时间" align="center" prop="collectTime" width="180">
      </el-table-column>
    </el-table>
billion-ui/src/views/main/om/info/index.vue
@@ -26,16 +26,6 @@
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="工单状态" prop="orderStatus">
          <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable>
            <el-option
              v-for="dict in dict.type.order_status"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item style="float: right; margin-right: 90px">
          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -74,9 +64,31 @@
            icon="el-icon-edit"
            size="mini"
            :disabled="single"
            @click=""
            @click="bodyStatus"
            v-hasPermi="['main:info:edit']"
          >缸体暂停\启动</el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="primary"
            plain
            icon="el-icon-edit"
            size="mini"
            :disabled="single"
            @click="headStatus"
            v-hasPermi="['main:info:edit']"
          >缸盖暂停\启动</el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="info"
            plain
            icon="el-icon-edit"
            size="mini"
            :disabled="single"
            @click="preStatus"
            v-hasPermi="['main:info:edit']"
          >预装暂停\启动</el-button>
        </el-col>
        <!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
      </el-row>
@@ -103,14 +115,14 @@
          <span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="更新时间" align="center" prop="updateTime" >
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}') }}</span>
        </template>
      </el-table-column>
<!--      <el-table-column label="更新时间" align="center" prop="updateTime" >-->
<!--        <template slot-scope="scope">-->
<!--          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}') }}</span>-->
<!--        </template>-->
<!--      </el-table-column>-->
      <el-table-column label="缸体上线数量" align="center" prop="bodyQty" />
      <el-table-column label="缸盖上线数量" align="center" prop="head_qty" />
      <el-table-column label="预装上线数量" align="center" prop="pre_qty" />
      <el-table-column label="缸盖上线数量" align="center" prop="headQty" />
      <el-table-column label="预装上线数量" align="center" prop="preQty" />
      <el-table-column label="缸体工单状态" align="center" prop="bodyStatus" >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.status" :value="scope.row.bodyStatus"/>
@@ -150,7 +162,7 @@
          <el-input disabled v-model="form.productCode" placeholder="请输入产品编号" />
        </el-form-item>
        <el-form-item  label="计划数量" prop="planQty">
          <el-input disabled v-model="form.planQty" placeholder="请输入计划数量" />
          <el-input  v-model="form.planQty" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="计划开始时间" prop="planStartTime">
          <el-date-picker clearable
@@ -169,25 +181,22 @@
          </el-date-picker>
        </el-form-item>
        <el-form-item  label="缸体数量" prop="bodyQty">
          <el-input disabled v-model="form.bodyQty" placeholder="请输入计划数量" />
          <el-input  v-model="form.bodyQty" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="缸体工单状态" prop="bodyStatus" v-if = updateFlag>
          <el-radio-group v-model="form.bodyStatus">
            <el-radio
              v-for="dict in dict.type.status"
              :key="dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>
          </el-radio-group>
        </el-form-item>
<!--        <el-form-item label="缸体工单状态" prop="bodyStatus" v-if = updateFlag>-->
<!--          <el-radio-group v-model="form.bodyStatus">-->
<!--            <el-radio-->
<!--              v-for="dict in dict.type.status"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
<!--          </el-radio-group>-->
<!--        </el-form-item>-->
        <el-form-item  label="缸套数量" prop="headStatus">
          <el-input disabled v-model="form.headStatus" placeholder="请输入计划数量" />
          <el-input  v-model="form.headStatus" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item  label="预装数量" prop="preStatus">
          <el-input disabled v-model="form.preStatus" placeholder="请输入计划数量" />
          <el-input  v-model="form.preStatus" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="备注" prop="remarks">
          <el-input
@@ -393,6 +402,12 @@
        updateBy: null,
        remarks: null,
        delFlag: null,
        bodyQty: null,
        headQty: null,
        preQty: null,
        bodyStatus :null,
        headStatus :null,
        preStatus :null,
      };
      this.resetForm("form");
      this.addFlag = false
@@ -433,6 +448,76 @@
        this.title = "修改生产工单";
      });
    },
    /** 修改缸体状态按钮操作 */
    bodyStatus(row) {
      this.reset();
      const id = row.id || this.ids
      getInfo(id).then(response => {
        this.form = response.data;
        if(this.form.bodyStatus === "1"){
          this.form.bodyStatus = "3";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("暂停成功");
            this.getList();});
        }else if(this.form.bodyStatus === "2"){
          this.$message('订单已完成禁止修改');
        }else if(this.form.bodyStatus === "3"){
          this.form.bodyStatus = "1";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("重启成功");
            this.getList();});
        }else if(this.form.bodyStatus === "0"){
          this.$message('订单未开始');
        }
      });
    },
    /** 修改缸盖状态按钮操作 */
    headStatus(row) {
      this.reset();
      const id = row.id || this.ids
      getInfo(id).then(response => {
        this.form = response.data;
        if(this.form.headStatus === "1"){
          this.form.headStatus = "3";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("暂停成功");
            this.getList();});
        }else if(this.form.headStatus === "2"){
          this.$message('订单已完成禁止修改');
        }else if(this.form.headStatus === "3"){
          this.form.headStatus = "1";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("重启成功");
            this.getList();});
        }else if(this.form.headStatus === "0"){
          this.$message('订单未开始');
        }
      });
    },
    /** 修改预装状态按钮操作 */
    preStatus(row) {
      this.reset();
      const id = row.id || this.ids
      getInfo(id).then(response => {
        this.form = response.data;
        if(this.form.preStatus === "1"){
          this.form.preStatus = "3";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("暂停成功");
            this.getList();});
        }else if(this.form.preStatus === "2"){
          this.$message('订单已完成禁止修改');
        }else if(this.form.preStatus === "3"){
          this.form.preStatus = "1";
          updateInfo(this.form).then(response => {
            this.$modal.msgSuccess("重启成功");
            this.getList();});
        }else if(this.form.preStatus === "0"){
          this.$message('订单未开始');
        }
      });
    },
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate(valid => {