春风项目四线(合箱线、总装线)
hdy
2024-01-15 80004530f9a99f3b423168700268bd265789d76d
Merge remote-tracking branch 'origin/master'
已修改6个文件
已添加3个文件
467 ■■■■ 文件已修改
jcdm-main/pom.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/domain/Item.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/domain/ItemList.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/pom.xml
@@ -74,6 +74,22 @@
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.4</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>
    </dependencies>
</project>
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -4,6 +4,7 @@
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.jcdm.main.webservice.service.ReceivingServices;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -111,4 +112,14 @@
    {
        return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
    }
    /**
     * table列上移下移
     */
    @GetMapping("/getProductionNotice")
    public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        ReceivingServices.insertWebserviceData(omProductionOrdeInfo.getProductionNotice());
        return AjaxResult.success();
    }
}
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/domain/OmProductionOrdeInfo.java
@@ -164,6 +164,18 @@
    private String flag;
    /** ç”Ÿäº§é€šçŸ¥å•å· */
    @Excel(name = "生产通知单号")
    private String productionNotice;
    public String getProductionNotice() {
        return productionNotice;
    }
    public void setProductionNotice(String productionNotice) {
        this.productionNotice = productionNotice;
    }
    public String getFlag() {
        return flag;
    }
jcdm-main/src/main/java/com/jcdm/main/webservice/domain/Item.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.jcdm.main.webservice.domain;
import lombok.Data;
import java.util.Date;
@Data
public class Item {
    private String MAKTX;
    private String FEVOR;
    private String WERKS;
    private String LGORT;
    private String ZHTH;
    private String GSTRP;
    private String AUFNR;
    private String PSMNG;
    private String DISPO;
    private String ZSCTZD;
    private String PLNBEZ;
    private String ZSTAT;
    private String DAUAT;
    private String ZWS;
    private String KDAUF;
    private String ZUSER;
    private Date ZDATE;
    private String FERTH;
}
jcdm-main/src/main/java/com/jcdm/main/webservice/domain/ItemList.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.jcdm.main.webservice.domain;
import java.util.List;
public class ItemList {
    private List<Item> item;
    // æ·»åŠ æž„造函数和getter/setter方法
    // æž„造函数
    public ItemList() {
    }
    // Getter和Setter方法
    public List<Item> getItem() {
        return item;
    }
    public void setItem(List<Item> item) {
        this.item = item;
    }
}
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,197 @@
package com.jcdm.main.webservice.service;
import cn.hutool.json.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
import com.jcdm.main.da.opcuaconfig.init.BeanUtils;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.jcdm.main.om.workReport.service.IOmWorkReportService;
import com.jcdm.main.webservice.domain.Item;
import com.jcdm.main.webservice.domain.ItemList;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.io.IOUtils;
import com.jcdm.main.om.productionOrde.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import javax.swing.border.Border;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
public class ReceivingServices {
    @Autowired
//    private static IOmProductionOrdeInfoService omProductionOrdeInfoService;
    private static IOmProductionOrdeInfoService omProductionOrdeInfoService = BeanUtils.getBean(IOmProductionOrdeInfoService.class);
    public static final String ProductionPlanInformationUrl = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_MES_005_SYN_OUT&interfaceNamespace=http://cfmoto.com/xi/MES";
    public static void main(String[] args) throws Exception {
//        getInterfaceInformationXml(ProductionPlanInformationUrl,getProductionPlanInformationXml("A0055577"));
//        test1();
//        String serviceUrl = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_MES_005_SYN_OUT&interfaceNamespace=http://cfmoto.com/xi/MES";
//
//        String content = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:rfc:functions\">\n" +
//                "   <soapenv:Header/>\n" +
//                "   <soapenv:Body>\n" +
//                "      <urn:ZPP_CF_MES_005>\n" +
//                "         <!--Optional:-->\n" +
//                "         <IV_WERKS>1000</IV_WERKS>\n" +
//                "         <!--Optional:-->\n" +
//                "         <IV_ZSCTZD>A0055577</IV_ZSCTZD>\n" +
//                "      </urn:ZPP_CF_MES_005>\n" +
//                "   </soapenv:Body>\n" +
//                "</soapenv:Envelope>";
//        // HttpClient发送SOAP请求
//        int timeout = 10000;
//        HttpClient client = new HttpClient();
//        //如果需要用户名密码验证;不需要验证登录则不需要以下4行
//        String username = "POMESUSER";
//        String password = "12345tgb";
//        UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
//        client.getState().setCredentials(AuthScope.ANY, creds);
//
//        PostMethod postMethod = new PostMethod(serviceUrl);
//        // è®¾ç½®è¿žæŽ¥è¶…æ—¶
//        client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout);
//        // è®¾ç½®è¯»å–时间超时
//        client.getHttpConnectionManager().getParams().setSoTimeout(timeout);
//        // ç„¶åŽæŠŠSoap请求数据添加到PostMethod中
//        RequestEntity requestEntity = new StringRequestEntity(content, "text/xml", "UTF-8");
//
//        // è®¾ç½®è¯·æ±‚头部,否则可能会报 â€œno SOAPAction header” çš„错误
//        postMethod.setRequestHeader("SOAPAction", "");
//        // è®¾ç½®è¯·æ±‚体
//        postMethod.setRequestEntity(requestEntity);
//        int status = client.executeMethod(postMethod);
//
//        if (status == 200) {// æˆåŠŸ
//            InputStream is = postMethod.getResponseBodyAsStream();
//            // èŽ·å–请求结果字符串
//            String result = IOUtils.toString(is);
//            String jsonStr = xmlToJSON2(result);
//            Gson gson = new Gson();
//            // å°†json字符串转换成对象
//            ItemList itemList = gson.fromJson(jsonStr, ItemList.class);
//            System.out.println("返回结果:" + result);
//        } else {
//            System.out.println("错误代码:" + status + ":" + postMethod.getResponseBodyAsString());
//        }
    }
    public static void insertWebserviceData(String str) {
        String result = getInterfaceInformationXml(ProductionPlanInformationUrl, getProductionPlanInformationXml(str));
        String jsonStr = xmlToJSON2(result);
        Gson gson = new Gson();
        // å°†json字符串转换成对象
        ItemList itemList = gson.fromJson(jsonStr, ItemList.class);
        for (Item item : itemList.getItem()) {
            OmProductionOrdeInfo ordeInfo = new OmProductionOrdeInfo();
            ordeInfo.setProductName(item.getMAKTX());
            ordeInfo.setLineCode(item.getFEVOR());
            ordeInfo.setWorkOrderNo(item.getAUFNR());
            ordeInfo.setPlanQty((long) Double.parseDouble(item.getPSMNG()));
            ordeInfo.setProductionNotice(item.getZSTAT());
            ordeInfo.setTypeZ(item.getFERTH());
            ordeInfo.setCreateUser(item.getZUSER());
            ordeInfo.setCreateTime(item.getZDATE());
            omProductionOrdeInfoService.insertOmProductionOrdeInfo(ordeInfo);
        }
    }
    public static String getInterfaceInformationXml(String url,String xml){
        int timeout = 10000;
        HttpClient client = new HttpClient();
        //如果需要用户名密码验证;不需要验证登录则不需要以下4行
        String username = "POMESUSER";
        String password = "12345tgb";
        UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
        client.getState().setCredentials(AuthScope.ANY, creds);
        PostMethod postMethod = new PostMethod(url);
        // è®¾ç½®è¿žæŽ¥è¶…æ—¶
        client.getHttpConnectionManager().getParams().setConnectionTimeout(timeout);
        // è®¾ç½®è¯»å–时间超时
        client.getHttpConnectionManager().getParams().setSoTimeout(timeout);
        // ç„¶åŽæŠŠSoap请求数据添加到PostMethod中
        RequestEntity requestEntity = null;
        try {
            requestEntity = new StringRequestEntity(xml, "text/xml", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        // è®¾ç½®è¯·æ±‚头部,否则可能会报 â€œno SOAPAction header” çš„错误
        postMethod.setRequestHeader("SOAPAction", "");
        // è®¾ç½®è¯·æ±‚体
        postMethod.setRequestEntity(requestEntity);
        int status = 0;
        try {
            status = client.executeMethod(postMethod);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        if (status == 200) {// æˆåŠŸ
            InputStream is = null;
            try {
                is = postMethod.getResponseBodyAsStream();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            // èŽ·å–请求结果字符串
            String result = null;
            try {
                result = IOUtils.toString(is);
                return result;
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return "接口调用错误";
    }
    public static String getProductionPlanInformationXml(String str){
        String content = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:rfc:functions\">\n" +
                "   <soapenv:Header/>\n" +
                "   <soapenv:Body>\n" +
                "      <urn:ZPP_CF_MES_005>\n" +
                "         <!--Optional:-->\n" +
                "         <IV_WERKS>1000</IV_WERKS>\n" +
                "         <!--Optional:-->\n" +
                "         <IV_ZSCTZD>"+str+"</IV_ZSCTZD>\n" +
                "      </urn:ZPP_CF_MES_005>\n" +
                "   </soapenv:Body>\n" +
                "</soapenv:Envelope>";
        return content;
    }
    /**
     * æ–¹å¼--è´°
     * ä½¿ç”¨hutool工具包中的工具转化
     * @param xmlStr
     * @return
     */
    public static String xmlToJSON2(String xmlStr){
        JSONObject jsonObject1 = cn.hutool.json.XML.toJSONObject(xmlStr, true);
        Gson gson = new Gson();
        JsonObject jsonObject2 = gson.fromJson(jsonObject1.toString(), JsonObject.class);
        JsonObject etData = jsonObject2
                .getAsJsonObject("SOAP:Envelope")
                .getAsJsonObject("SOAP:Body")
                .getAsJsonObject("n0:ZPP_CF_MES_005.Response")
                .getAsJsonObject("ET_DATA");
        return etData.toString();
    }
}
jcdm-main/src/main/resources/mapper/om/productionOrde/OmProductionOrdeInfoMapper.xml
@@ -44,10 +44,12 @@
        <result property="spareField3"    column="spare_field_3"    />
        <result property="spareField4"    column="spare_field_4"    />
        <result property="typeZ"    column="type_z"    />
        <result property="productionNotice"    column="production_notice"    />
    </resultMap>
    <sql id="selectOmProductionOrdeInfoVo">
        select id, work_order_no, sales_order_code,type_z,product_code, product_name, workshop_code, line_code, route_code, bom_code, recipe_code, plan_qty, actual_qty, bad_qty, scrap_qty, repair_qty, actual_online_qty, online_completion_mark, demand_date, plan_start_time, plan_end_time, actual_start_time, actual_end_time, serial_number, order_status, create_time, update_time, create_user, update_user, remarks, stream_number, custom, market_area_code, software_version_code, product_company_code, spare_field_1, spare_field_2, spare_field_3, spare_field_4 from om_production_orde_info
        select id, work_order_no, sales_order_code,type_z,product_code, product_name, workshop_code, line_code, route_code, bom_code, recipe_code, plan_qty, actual_qty, bad_qty, scrap_qty, repair_qty, actual_online_qty, online_completion_mark, demand_date, plan_start_time, plan_end_time, actual_start_time, actual_end_time, serial_number, order_status, create_time, update_time, create_user, update_user, remarks, stream_number, custom, market_area_code, software_version_code, product_company_code, spare_field_1, spare_field_2, spare_field_3, spare_field_4, production_notice from om_production_orde_info
    </sql>
    <select id="selectOmProductionOrdeInfoList" parameterType="OmProductionOrdeInfo" resultMap="OmProductionOrdeInfoResult">
@@ -69,6 +71,8 @@
            <if test="typeZ != null  and typeZ != ''"> and type_z like concat('%', #{typeZ}, '%')</if>
            <if test="softwareVersionCode != null  and softwareVersionCode != ''"> and software_version_code like concat('%', #{softwareVersionCode}, '%')</if>
            <if test="productCompanyCode != null  and productCompanyCode != ''"> and product_company_code like concat('%', #{productCompanyCode}, '%')</if>
            <if test="productionNotice != null  and productionNotice != ''"> and production_notice like concat('%', #{productionNotice}, '%')</if>
        </where>
        ORDER BY stream_number DESC
    </select>
@@ -120,7 +124,9 @@
            <if test="spareField2 != null">spare_field_2,</if>
            <if test="spareField3 != null">spare_field_3,</if>
            <if test="spareField4 != null">spare_field_4,</if>
         </trim>
            <if test="productionNotice != null">production_notice,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="workOrderNo != null">#{workOrderNo},</if>
@@ -161,7 +167,9 @@
            <if test="spareField2 != null">#{spareField2},</if>
            <if test="spareField3 != null">#{spareField3},</if>
            <if test="spareField4 != null">#{spareField4},</if>
         </trim>
            <if test="productionNotice != null">#{productionNotice},</if>
        </trim>
    </insert>
    <update id="updateOmProductionOrdeInfo" parameterType="OmProductionOrdeInfo">
@@ -205,6 +213,8 @@
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
            <if test="spareField4 != null">spare_field_4 = #{spareField4},</if>
            <if test="productionNotice != null">production_notice = #{productionNotice},</if>
        </trim>
        where id = #{id}
    </update>
jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -9,6 +9,14 @@
  })
}
export function getProductionNotice(query) {
  return request({
    url: '/om/productionOrde/getProductionNotice',
    method: 'get',
    params: query
  })
}
export function upDownMove(query) {
  return request({
    url: '/om/productionOrde/upDownMove',
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -2,12 +2,15 @@
  <div class="app-container">
    <el-card class="box-card">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label-width="80" label="生产工单号" prop="workOrderNo">
        <el-input v-model="queryParams.workOrderNo" placeholder="请输入生产工单号" clearable @keyup.enter.native="handleQuery"/>
      <el-form-item label-width="100" label="生产通知单" prop="productName">
        <el-input v-model="queryParams.productionNotice" placeholder="请输入生产通知单" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
      <el-form-item label="产品名称" prop="productName">
        <el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter.native="handleQuery"/>
      <el-form-item label-width="80" label="生产订单" prop="workOrderNo">
        <el-input v-model="queryParams.workOrderNo" placeholder="请输入生产订单" clearable @keyup.enter.native="handleQuery"/>
      </el-form-item>
<!--      <el-form-item label="产品名称" prop="productName">-->
<!--        <el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter.native="handleQuery"/>-->
<!--      </el-form-item>-->
      <el-form-item label="工单状态" prop="orderStatus">
        <el-select v-model="queryParams.orderStatus" placeholder="请选择工单状态" clearable>
          <el-option
@@ -18,6 +21,7 @@
        </el-select>
      </el-form-item>
      <el-form-item style="float: right">
        <el-button type="warning" icon="el-icon-download" size="mini" @click="getProductionNotice">接收</el-button>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -129,20 +133,20 @@
      <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column label="生产工单号" width="160" align="center">
        <el-table-column label="生产通知单号" width="160" align="center" prop="productionNotice">
        </el-table-column>
        <el-table-column label="生产订单" width="160" align="center">
          <template slot-scope="scope">
            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
              <span>{{ scope.row.workOrderNo }}</span>
            </router-link>
          </template>
        </el-table-column>
        <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">
        <el-table-column label="机型" width="160" align="center" prop="typeZ">
        </el-table-column>
        <el-table-column label="产品编号" width="140" align="center" prop="productCode">
        <el-table-column label="需求数量" align="center" prop="planQty">
        </el-table-column>
        <el-table-column label="产品名称" width="160" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="种类" width="160" align="center" prop="typeZ">
        <el-table-column label="物料类型" width="140" align="center" prop="productCode">
        </el-table-column>
        <el-table-column label="实际数量" width="160" align="center" prop="actualQty">
        </el-table-column>
@@ -151,65 +155,74 @@
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
        <el-table-column label="车间编号" align="center" prop="workshopCode">
        <el-table-column label="工厂" align="center" prop="workshopCode">
        </el-table-column>
        <el-table-column label="产线编号" align="center" prop="lineCode">
        <el-table-column label="仓库" align="center">
        </el-table-column>
        <el-table-column label="工艺流程" width="140" align="center" prop="routeCode">
        <el-table-column label="产线" align="center" prop="lineCode">
        </el-table-column>
        <el-table-column label="产品BOM" width="140" align="center" prop="bomCode">
        <el-table-column label="订单类型" align="center">
        </el-table-column>
        <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode">
        <el-table-column label="ZWS" align="center">
        </el-table-column>
        <el-table-column label="计划数量" align="center" prop="planQty">
<!--        <el-table-column label="工艺流程" width="140" align="center" prop="routeCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="产品BOM" width="140" align="center" prop="bomCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际数量" align="center" prop="actualQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column width="160" label="更新时间" align="center" prop="updateTime">-->
<!--        </el-table-column>-->
        <el-table-column label="通知单制单人" width="80" align="center" prop="createUser">
        </el-table-column>
        <el-table-column label="实际数量" align="center" prop="actualQty">
        <el-table-column width="160" label="通知生成日期" align="center" prop="createTime">
        </el-table-column>
        <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty">
        <el-table-column label="成品描述" width="160" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">
        </el-table-column>
        <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime">
        </el-table-column>
        <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime">
        </el-table-column>
        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">
        </el-table-column>
        <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime">
        </el-table-column>
        <el-table-column width="160" label="创建时间" align="center" prop="createTime">
        </el-table-column>
        <el-table-column width="160" label="更新时间" align="center" prop="updateTime">
        </el-table-column>
        <el-table-column label="创建人" width="80" align="center" prop="createUser">
        </el-table-column>
        <el-table-column label="修改人" width="80" align="center" prop="updateUser">
        </el-table-column>
        <el-table-column label="备注" width="100" align="center" prop="remarks">
        </el-table-column>
        <el-table-column label="流水号" align="center" prop="streamNumber">
        </el-table-column>
        <el-table-column label="客户" width="80" align="center" prop="custom">
        </el-table-column>
        <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width">
          <template slot-scope="scope">
            <!--  å·¥å•çŠ¶æ€ï¼ˆ1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) -->
            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">
              å¼€å§‹</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">
              å†»ç»“</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">
              è§£å†»</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">
              å…³é—­</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">
              å¯ç”¨</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">
              å®Œæˆ</el-button>
            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">
            å¯ç”¨</el-button>
          </template>
        </el-table-column>
<!--        <el-table-column label="修改人" width="80" align="center" prop="updateUser">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="备注" width="100" align="center" prop="remarks">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="流水号" align="center" prop="streamNumber">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="客户" width="80" align="center" prop="custom">-->
<!--        </el-table-column>-->
<!--        <el-table-column fixed="right" width="350" label="操作" align="center" class-name="small-padding fixed-width">-->
<!--          <template slot-scope="scope">-->
<!--            &lt;!&ndash;  å·¥å•çŠ¶æ€ï¼ˆ1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) &ndash;&gt;-->
<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">-->
<!--              å¼€å§‹</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">-->
<!--              å†»ç»“</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">-->
<!--              è§£å†»</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">-->
<!--              å…³é—­</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
<!--              å¯ç”¨</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">-->
<!--              å®Œæˆ</el-button>-->
<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
<!--            å¯ç”¨</el-button>-->
<!--          </template>-->
<!--        </el-table-column>-->
      </el-table>
    </el-card>
@@ -230,7 +243,7 @@
      </span>
      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="form.workOrderNo" placeholder="请输入生产工单号" />
          <el-input v-model="form.workOrderNo" placeholder="请输入生产订单" />
        </el-form-item>
        <el-form-item label="订单编号" prop="salesOrderCode">
          <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
@@ -378,7 +391,7 @@
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
import { upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import { getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling,generateNumbers } from "@/api/main/bs/orderScheduling/orderScheduling";
export default {
@@ -442,6 +455,7 @@
        typeZ: null,
        flag: null,
        adds:null,
        productionNotice: null,
      },
      // è¡¨å•å‚æ•°
@@ -479,10 +493,14 @@
    this.initWorkshop();
  },
  methods: {
    getProductionNotice(){
      getProductionNotice(this.queryParams).then(response => {
        this.$modal.msgSuccess("接收成功");
        this.queryParams = {}
        this.getList();
      });
    },
    //数组生成
    changeDay(day){
      this.change.day = day;
      let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty;
@@ -498,8 +516,6 @@
      let adds =this.form.typeZ+this.change.year+this.change.month+this.change.day+this.form.actualQty;
      this.form.adds = adds
    },
    moveUp(row, val){
      console.log(val)
      const ids = row.id || this.ids
@@ -646,7 +662,7 @@
      this.initWorkshop();
      this.reset();
      this.open = true;
      this.titleName = "添加生产工单";
      this.titleName = "添加生产订单";
    },
    /** åŒæ­¥æŒ‰é’®æ“ä½œ */
    CreatehandleUpdate(Row) {
@@ -673,7 +689,7 @@
        console.log(response.data)
        this.form = response.data;
        this.open = true;
        this.titleName = "修改生产工单";
        this.titleName = "修改生产订单";
      });
    },
    /** æäº¤æŒ‰é’® */
@@ -699,7 +715,7 @@
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除生产工单编号为"' + ids + '"的数据项?').then(function() {
      this.$modal.confirm('是否确认删除生产订单编号为"' + ids + '"的数据项?').then(function() {
        return delProductionOrde(ids);
      }).then(() => {
        this.getList();