春风项目四线(合箱线、总装线)
yyt
2024-01-23 d86d6a6dca39eff9cbd9073c9e23e58308864e51
Merge remote-tracking branch 'origin/master'
已修改15个文件
已添加2个文件
848 ■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReportingForWork.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/dashboard/PanelGroup.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/beatSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/bs/orderScheduling/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/cfkb/Instructions/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/paramCollection/index.vue 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/kb/engineCheck/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/pr/tightenReport/index.vue 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -51,20 +51,45 @@
            formulaChildInfo.setAddress(formulaChildInfo.getTechRequirement());
            formulaChildInfo.setImg(formulaChildInfo.getPicture());
        }
        return getDataTable(list);
    }
    /**
     * æŸ¥è¯¢å·¥è‰ºæµç¨‹
     * @param bsFormulaChildInfo query
     * @return list
     */
    @PostMapping("/getProductProcess")
    public TableDataInfo getProductProcess(@RequestBody BsFormulaChildInfo bsFormulaChildInfo)
    {
        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.selectBsFormulaChildInfoList(bsFormulaChildInfo);
        for (BsFormulaChildInfo formulaChildInfo : list) {
            formulaChildInfo.setSort(formulaChildInfo.getStepSort());
            formulaChildInfo.setAddress(formulaChildInfo.getTechRequirement());
            formulaChildInfo.setImg(formulaChildInfo.getPicture());
        }
        list = list.stream()
                .filter(x -> !ZERO.equals(x.getSort())).sorted(Comparator.comparing(BsFormulaChildInfo::getSort)).collect(Collectors.toList());
        return getDataTable(list);
    }
    /**
     * æŸ¥è¯¢å·¥è‰ºæµç¨‹
     * @param productProcessQuery query
     * æŸ¥è¯¢å·¥è‰ºæ–‡ä»¶
     * @param bsFormulaChildInfo query
     * @return list
     */
    @PostMapping("/getProductProcess")
    public TableDataInfo getProductProcess(@RequestBody ProductProcessQuery productProcessQuery)
    @PostMapping("/getMainProductProcess")
    public TableDataInfo getMainProductProcess(@RequestBody BsFormulaChildInfo bsFormulaChildInfo)
    {
        List<BsFormulaChildInfo> list = productProcessService.getProductProcess(productProcessQuery);
        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.selectBsFormulaChildInfoList(bsFormulaChildInfo);
        for (BsFormulaChildInfo formulaChildInfo : list) {
            formulaChildInfo.setSort(formulaChildInfo.getStepSort());
            formulaChildInfo.setAddress(formulaChildInfo.getTechRequirement());
            formulaChildInfo.setImg(formulaChildInfo.getPicture());
        }
        list = list.stream()
                .filter(x -> ZERO.equals(x.getSort())).sorted(Comparator.comparing(BsFormulaChildInfo::getSort)).collect(Collectors.toList());
        return getDataTable(list);
    }
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
@@ -41,7 +41,7 @@
    @GetMapping("/list")
    public TableDataInfo list(BsOrderScheduling bsOrderScheduling)
    {
        startPage();
//        startPage();
        List<BsOrderScheduling> list = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        return getDataTable(list);
    }
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java
@@ -5,6 +5,8 @@
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
import java.util.Date;
/**
 * è®¢å•æŽ’产对象 bs_order_scheduling
 * 
@@ -120,6 +122,78 @@
    private String endTime;
    /** åˆç®±ä¸Šçº¿æ—¶é—´ */
    @Excel(name = "合箱上线时间")
    private Date boxClosingOnlineTime;
    /** åˆç®±ä¸‹çº¿æ—¶é—´ */
    @Excel(name = "合箱下线时间")
    private Date closingBoxOfflineTime;
    /** æ€»è£…上线时间 */
    @Excel(name = "总装上线时间")
    private Date finalAssemblyLaunchTime;
    /** æ€»è£…下线时间 */
    @Excel(name = "总装下线时间")
    private Date finalAssemblyOfflineTime;
    /** CVT上线时间 */
    @Excel(name = "CVT上线时间")
    private Date cvtLaunchTime;
    /** CVT下线时间 */
    @Excel(name = "CVT下线时间")
    private Date cvtOfflineTime;
    public Date getBoxClosingOnlineTime() {
        return boxClosingOnlineTime;
    }
    public void setBoxClosingOnlineTime(Date boxClosingOnlineTime) {
        this.boxClosingOnlineTime = boxClosingOnlineTime;
    }
    public Date getClosingBoxOfflineTime() {
        return closingBoxOfflineTime;
    }
    public void setClosingBoxOfflineTime(Date closingBoxOfflineTime) {
        this.closingBoxOfflineTime = closingBoxOfflineTime;
    }
    public Date getFinalAssemblyLaunchTime() {
        return finalAssemblyLaunchTime;
    }
    public void setFinalAssemblyLaunchTime(Date finalAssemblyLaunchTime) {
        this.finalAssemblyLaunchTime = finalAssemblyLaunchTime;
    }
    public Date getFinalAssemblyOfflineTime() {
        return finalAssemblyOfflineTime;
    }
    public void setFinalAssemblyOfflineTime(Date finalAssemblyOfflineTime) {
        this.finalAssemblyOfflineTime = finalAssemblyOfflineTime;
    }
    public Date getCvtLaunchTime() {
        return cvtLaunchTime;
    }
    public void setCvtLaunchTime(Date cvtLaunchTime) {
        this.cvtLaunchTime = cvtLaunchTime;
    }
    public Date getCvtOfflineTime() {
        return cvtOfflineTime;
    }
    public void setCvtOfflineTime(Date cvtOfflineTime) {
        this.cvtOfflineTime = cvtOfflineTime;
    }
    public String[] getDateConditions() {
        return dateConditions;
    }
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java
@@ -2,6 +2,9 @@
import cn.hutool.json.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
@@ -40,16 +43,28 @@
//        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 serviceUrl = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_BC_001_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>";
//        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" +
//                "      <urn:ZPP_BC_001>\n" +
//                "         <IV_AUFNR>000010569212</IV_AUFNR>\n" +
//                "          <IV_VORNR>0010</IV_VORNR>\n" +
//                "           <IV_LMNGA>1</IV_LMNGA>\n" +
//                "           <IV_XMNGA>0</IV_XMNGA>   \n" +
//                "         <IV_STATU>1</IV_STATU>  \n" +
//                "      </urn:ZPP_BC_001>\n" +
//                "   </soapenv:Body>\n" +
//                "</soapenv:Envelope>";
//        // HttpClient发送SOAP请求
@@ -79,10 +94,10 @@
//            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);
////            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());
@@ -195,4 +210,33 @@
        return etData.toString();
    }
    /**
     * æ–¹å¼--è´°
     * ä½¿ç”¨hutool工具包中的工具转化
     * @param xmlStr
     * @return
     */
    public static String xmlToJSON3(String xmlStr){
        String status = "";
        if(xmlStr.contains("EV_STATUS")){
            JSONObject jsonObject1 = cn.hutool.json.XML.toJSONObject(xmlStr, true);
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode rootNode = null;
            try {
                rootNode = objectMapper.readTree(String.valueOf(jsonObject1));
            } catch (JsonProcessingException e) {
                throw new RuntimeException(e);
            }
            String evStatus = rootNode
                    .path("SOAP:Envelope")
                    .path("SOAP:Body")
                    .path("n0:ZPP_BC_001.Response")
                    .path("EV_STATUS")
                    .asText();
            status = evStatus;
        }
        return status;
    }
}
jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReportingForWork.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package com.jcdm.main.webservice.service;
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 java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
public class ReportingForWork {
    public static void main(String[] args) throws IOException {
        String serviceUrl = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_BC_001_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>";
        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_BC_001>\n" +
                "         <IV_AUFNR>000010569212</IV_AUFNR>\n" +
                "          <IV_VORNR>0010</IV_VORNR>\n" +
                "           <IV_LMNGA>1</IV_LMNGA>\n" +
                "           <IV_XMNGA>0</IV_XMNGA>   \n" +
                "         <IV_STATU>1</IV_STATU>  \n" +
                "      </urn:ZPP_BC_001>\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());
        }
    }
}
jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml
@@ -32,11 +32,17 @@
        <result property="updateTime"    column="update_time"    />
        <result property="remarks"    column="remarks"    />
        <result property="report30"    column="report_30"    />
        <result property="boxClosingOnlineTime"    column="box_closing_online_time"    />
        <result property="closingBoxOfflineTime"    column="closing_box_offline_time"    />
        <result property="finalAssemblyLaunchTime"    column="final_assembly_launch_time"    />
        <result property="finalAssemblyOfflineTime"    column="final_assembly_offline_time"    />
        <result property="cvtLaunchTime"    column="cvt_launch_time"    />
        <result property="cvtOfflineTime"    column="cvt_offline_time"    />
    </resultMap>
    <sql id="selectBsOrderSchedulingVo">
        select id, order_no, engine_no, product_type, model, production_status, working_hours, current_workstation, quality_status, whether_or_print, report_10, report_20, combined_box_time, final_assembly_time, operator, operate_time, status, spare_field_1, spare_field_2, spare_field_3, spare_field_4, create_user, create_time, update_user, update_time, remarks, report_30 from bs_order_scheduling
        select id, order_no, engine_no, product_type, model, production_status, working_hours, current_workstation, quality_status, whether_or_print, report_10, report_20, combined_box_time, final_assembly_time, operator, operate_time, status, spare_field_1, spare_field_2, spare_field_3, spare_field_4, create_user, create_time, update_user, update_time, remarks, report_30, box_closing_online_time, closing_box_offline_time, final_assembly_launch_time, final_assembly_offline_time, cvt_launch_time, cvt_offline_time from bs_order_scheduling
    </sql>
    <select id="selectBsOrderSchedulingList" parameterType="BsOrderScheduling" resultMap="BsOrderSchedulingResult">
@@ -67,6 +73,12 @@
            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
            <if test="report30 != null  and report30 != ''"> and report_30 = #{report30}</if>
            <if test="dateConditions != null  and dateConditions != ''"> and operate_time BETWEEN #{startTime} AND #{endTime}</if>
            <if test="boxClosingOnlineTime != null  and boxClosingOnlineTime != ''"> and box_closing_online_time = #{boxClosingOnlineTime}</if>
            <if test="closingBoxOfflineTime != null  and closingBoxOfflineTime != ''"> and closing_box_offline_time = #{closingBoxOfflineTime}</if>
            <if test="finalAssemblyLaunchTime != null  and finalAssemblyLaunchTime != ''"> and final_assembly_launch_time = #{finalAssemblyLaunchTime}</if>
            <if test="finalAssemblyOfflineTime != null  and finalAssemblyOfflineTime != ''"> and final_assembly_offline_time = #{finalAssemblyOfflineTime}</if>
            <if test="cvtLaunchTime != null  and cvtLaunchTime != ''"> and cvt_launch_time = #{cvtLaunchTime}</if>
            <if test="cvtOfflineTime != null  and cvtOfflineTime != ''"> and cvt_offline_time = #{cvtOfflineTime}</if>
        </where>
@@ -118,6 +130,12 @@
            <if test="updateTime != null">update_time,</if>
            <if test="remarks != null">remarks,</if>
            <if test="report30 != null">report_30,</if>
            <if test="boxClosingOnlineTime != null">box_closing_online_time,</if>
            <if test="closingBoxOfflineTime != null">closing_box_offline_time,</if>
            <if test="finalAssemblyLaunchTime != null">final_assembly_launch_time,</if>
            <if test="finalAssemblyOfflineTime != null">final_assembly_offline_time,</if>
            <if test="cvtLaunchTime != null">cvt_launch_time,</if>
            <if test="cvtOfflineTime != null">cvt_offline_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="orderNo != null">#{orderNo},</if>
@@ -146,6 +164,12 @@
            <if test="updateTime != null">#{updateTime},</if>
            <if test="remarks != null">#{remarks},</if>
            <if test="report30 != null">#{report30},</if>
            <if test="boxClosingOnlineTime != null">#{boxClosingOnlineTime},</if>
            <if test="closingBoxOfflineTime != null">#{closingBoxOfflineTime},</if>
            <if test="finalAssemblyLaunchTime != null">#{finalAssemblyLaunchTime},</if>
            <if test="finalAssemblyOfflineTime != null">#{finalAssemblyOfflineTime},</if>
            <if test="cvtLaunchTime != null">#{cvtLaunchTime},</if>
            <if test="cvtOfflineTime != null">#{cvtOfflineTime},</if>
        </trim>
    </insert>
@@ -179,6 +203,12 @@
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="remarks != null">remarks = #{remarks},</if>
            <if test="report30 != null">report_30 = #{report30},</if>
            <if test="boxClosingOnlineTime != null">box_closing_online_time = #{boxClosingOnlineTime},</if>
            <if test="closingBoxOfflineTime != null">closing_box_offline_time = #{closingBoxOfflineTime},</if>
            <if test="finalAssemblyLaunchTime != null">final_assembly_launch_time = #{finalAssemblyLaunchTime},</if>
            <if test="finalAssemblyOfflineTime != null">final_assembly_offline_time = #{finalAssemblyOfflineTime},</if>
            <if test="cvtLaunchTime != null">cvt_launch_time = #{cvtLaunchTime},</if>
            <if test="cvtOfflineTime != null">cvt_offline_time = #{cvtOfflineTime},</if>
        </trim>
        where id = #{id}
jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml
@@ -38,6 +38,7 @@
        <include refid="selectDaParamCollectionVo"/>
        <where>  
            <if test="workOrderNo != null  and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
            <if test="type != null  and type != ''"> and type = #{type}</if>
            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
            <if test="productionLine != null  and productionLine != ''"> and production_line = #{productionLine}</if>
jcdm-quartz/pom.xml
@@ -35,6 +35,11 @@
            <artifactId>jcdm-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.jcdm</groupId>
            <artifactId>jcdm-main</artifactId>
        </dependency>
    </dependencies>
</project>
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java
@@ -1,7 +1,13 @@
package com.jcdm.quartz.task;
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
import com.jcdm.main.webservice.service.ReceivingServices;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.jcdm.common.utils.StringUtils;
import java.util.List;
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æµ‹è¯•
@@ -25,4 +31,58 @@
    {
        System.out.println("执行无参方法");
    }
    @Autowired
    private IBsOrderSchedulingService bsOrderSchedulingService;
    String url = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_BC_001_SYN_OUT&interfaceNamespace=http://cfmoto.com/xi/MES";
    public void workReportingTasks(){
        report10();
        report20();
    }
    public void report10(){
        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
        bsOrderScheduling.setReport10("0");
        List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
            String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0010"));
            String status = ReceivingServices.xmlToJSON3(xmlResult);
            if(status.equals("1")){
                orderScheduling.setReport10("1");
                int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                System.out.println("更新状态成功");
            }
        }
    }
    public void report20(){
        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
        bsOrderScheduling.setReport20("0");
        List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
            String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0790"));
            String status = ReceivingServices.xmlToJSON3(xmlResult);
            if(status.equals("1")){
                orderScheduling.setReport10("1");
                int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                System.out.println("更新状态成功");
            }
        }
    }
    public static String getProductionPlanInformationXml(String orderNo,String location){
        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_BC_001>\n" +
                "         <IV_AUFNR>"+orderNo+"</IV_AUFNR>\n" +
                "          <IV_VORNR>"+location+"</IV_VORNR>\n" +
                "           <IV_LMNGA>1</IV_LMNGA>\n" +
                "           <IV_XMNGA>0</IV_XMNGA>   \n" +
                "         <IV_STATU>1</IV_STATU>  \n" +
                "      </urn:ZPP_BC_001>\n" +
                "   </soapenv:Body>\n" +
                "</soapenv:Envelope>";
        return content;
    }
}
jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js
@@ -18,6 +18,15 @@
  })
}
// æŸ¥è¯¢å·¥è‰ºæ–‡ä»¶
export function getMainProductProcess(query) {
  return request({
    url: '/bs/formulaChild/getMainProductProcess',
    method: 'post',
    data: query
  })
}
// æŸ¥è¯¢é…æ–¹é…ç½®å­ä¿¡æ¯è¯¦ç»†
export function getFormulaChild(id) {
  return request({
jcdm-ui/src/views/dashboard/PanelGroup.vue
@@ -1,6 +1,7 @@
<template>
  <el-row :gutter="40" class="panel-group">
    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
    <div class="top2">单日累计产量</div>
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
        <div class="card-panel-icon-wrapper icon-people">
          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
@@ -13,7 +14,7 @@
        </div>
      </div>
    </el-col>
    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('messages')">
        <div class="card-panel-icon-wrapper icon-message">
          <svg-icon icon-class="message" class-name="card-panel-icon" />
@@ -26,7 +27,7 @@
        </div>
      </div>
    </el-col>
    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('purchases')">
        <div class="card-panel-icon-wrapper icon-money">
          <svg-icon icon-class="money" class-name="card-panel-icon" />
@@ -39,7 +40,7 @@
        </div>
      </div>
    </el-col>
    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
@@ -52,7 +53,38 @@
        </div>
      </div>
    </el-col>
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            CVT上线
          </div>
          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
        </div>
      </div>
    </el-col>
    <el-col :xs="12" :sm="12" :lg="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            CVT下线
          </div>
          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
        </div>
      </div>
    </el-col>
  </el-row>
</template>
<script>
@@ -71,6 +103,12 @@
</script>
<style lang="scss" scoped>
.top2{
  font-size: 26px;
  font-weight: bold;
  margin-bottom: 16px;
}
.panel-group {
  margin-top: 18px;
jcdm-ui/src/views/main/bs/beatSetting/index.vue
@@ -78,7 +78,7 @@
          </el-table-column>
          <el-table-column label="产品名称" align="center" prop="productName">
          </el-table-column>
          <el-table-column label="节拍" align="center" prop="beat">
          <el-table-column label="节拍(S)" align="center" prop="beat">
          </el-table-column>
          <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">
            <template slot-scope="scope">
jcdm-ui/src/views/main/bs/orderScheduling/index.vue
@@ -194,12 +194,24 @@
          <el-table-column label="CVT报工" align="center" prop="report30">
          </el-table-column>
          <el-table-column label="合箱上线" align="center" prop="combinedBoxTime">
          <el-table-column label="合箱上线时间" align="center" prop="boxClosingOnlineTime" width="160">
          </el-table-column>
          <el-table-column label="总装下线" align="center" prop="finalAssemblyTime">
          <el-table-column label="合箱下线时间" align="center" prop="closingBoxOfflineTime" width="160">
          </el-table-column>
          <el-table-column label="总装上线时间" align="center" prop="finalAssemblyLaunchTime" width="160">
          </el-table-column>
          <el-table-column label="总装下线时间" align="center" prop="finalAssemblyOfflineTime" width="160">
          </el-table-column>
          <el-table-column label="CVT上线时间" align="center" prop="cvtLaunchTime" width="160">
          </el-table-column>
          <el-table-column label="CVT下线时间" align="center" prop="cvtOfflineTime" width="160">
          </el-table-column>
<!--          <el-table-column label="合箱上线" align="center" prop="combinedBoxTime">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="总装下线" align="center" prop="finalAssemblyTime">-->
<!--          </el-table-column>-->
          <el-table-column label="操作人" align="center" prop="operator">
          </el-table-column>
@@ -516,7 +528,13 @@
        updateUser: null,
        updateTime: null,
        remarks: null,
        report30: null
        report30: null,
        boxClosingOnlineTime: null,
        closingBoxOfflineTime: null,
        finalAssemblyLaunchTime: null,
        finalAssemblyOfflineTime: null,
        cvtLaunchTime: null,
        cvtOfflineTime: null
      };
      this.resetForm("form");
    },
jcdm-ui/src/views/main/cfkb/Instructions/index.vue
@@ -69,17 +69,36 @@
      </el-col>
    </el-row>
    <div>
      <el-dialog
        title="工艺文件"
        :visible.sync="dialogVisible"
        width="70%"
        lock-scroll="false"
        @close="closeMethod"
      >
        <div><el-image style="height: 1090px;width: 960px;margin-left: 33px" :src="mainProcessSrc"></el-image></div>
        <span slot="footer" class="dialog-footer">
    <el-button type="primary" @click="dialogVisible = false">ç¡® å®š</el-button>
  </span>
      </el-dialog>
    </div>
  </div>
</template>
<script>
import {listFormulaChild, getProductProcess} from "@/api/main/bs/formulaChild/formulaChild";
import {getMainProductProcess, getProductProcess} from "@/api/main/bs/formulaChild/formulaChild";
import {listStationConf,getIp} from "@/api/main/sc/stationConf";
export default {
  name: "index",
  data() {
    return {
      dialogVisible: false,
      mainProcessSrc: '',
      mainProcess: [],
      isClickd: '', // åˆå§‹åŒ–为未点击状态
      locationCode: "未配置",
      locationName: "未配置工位",
@@ -173,6 +192,9 @@
      });
    },
    closeMethod(){
      this.mainProcessSrc = ''
    },
    //获取当前时间
    getNowTime () {
      let speed = 1000
@@ -242,7 +264,13 @@
      this.getUpOrDown(1)
    },
    processDocuments(){
      getMainProductProcess(this.queryParams).then(res => {
        this.mainProcess = res.rows
        if (res.rows!=null && res.rows.length>0){
          this.mainProcessSrc = res.rows[0].img
        }
      })
      this.dialogVisible = true
    },
    changeProducts(val){
@@ -257,7 +285,7 @@
      /** æŸ¥è¯¢é…æ–¹é…ç½®å­ä¿¡æ¯åˆ—表 */
      this.queryParams.productCode = val;
      this.queryParams.processesCode = this.locationCode
      listFormulaChild(this.queryParams).then(response => {
      getProductProcess(this.queryParams).then(response => {
        this.tableData = [];
        this.cleanImg()
        this.tableData = response.rows;
@@ -340,6 +368,12 @@
.active {
  background-color: #31b431; /* ç‚¹å‡»åŽçš„背景色 */
}
::v-deep .el-dialog {
  height: 90%;
  overflow-y: auto;
}
::v-deep .el-dialog__footer{
  margin-top: 10px;
}
</style>
jcdm-ui/src/views/main/da/paramCollection/index.vue
@@ -74,86 +74,26 @@
    <el-table v-loading="loading" border :data="paramCollectionList" @selection-change="handleSelectionChange" v-if="paramCollectionList.length > 0">
      <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="workOrderNo">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.workOrderNo"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="总成序列号" align="center" width="100" prop="sfcCode">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.sfcCode"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="产品编号" align="center" prop="productCode">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.productCode"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="产线编号" align="center" prop="productionLine">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.productionLine"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="工位编号" align="center" prop="locationCode">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.locationCode"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="设备编号" align="center" prop="equipmentNo">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.equipmentNo"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="参数编码" align="center" prop="paramCode">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramCode"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="参数值" align="center" prop="paramValue">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramValue"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="参数上限" align="center" prop="paramUpper">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramUpper"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="参数下限" align="center" prop="paramLower">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramLower"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="标准值" align="center" prop="paramStandard">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramStandard"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="工单编号" align="center" prop="workOrderNo"></el-table-column>
      <el-table-column label="总成序列号" align="center" width="100" prop="sfcCode"></el-table-column>
      <el-table-column label="产品编号" align="center" prop="productCode"></el-table-column>
      <el-table-column label="产线编号" align="center" prop="productionLine"></el-table-column>
      <el-table-column label="工位编号" align="center" prop="locationCode"></el-table-column>
      <el-table-column label="设备编号" align="center" prop="equipmentNo"></el-table-column>
      <el-table-column label="参数编码" align="center" prop="paramCode"></el-table-column>
      <el-table-column label="参数值" align="center" prop="paramValue"></el-table-column>
      <el-table-column label="参数上限" align="center" prop="paramUpper"></el-table-column>
      <el-table-column label="参数下限" align="center" prop="paramLower"></el-table-column>
      <el-table-column label="标准值" align="center" prop="paramStandard"></el-table-column>
      <el-table-column label="采集时间" align="center" prop="collectionTime" width="180">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="状态" align="center" prop="state">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.state"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="参数名称" align="center" prop="paramName">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.paramName"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="单位" align="center" prop="unit">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.unit"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="类型" align="center" prop="type">
<!--        <template slot-scope="scope">-->
<!--          <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.type"/>-->
<!--        </template>-->
      </el-table-column>
      <el-table-column label="状态" align="center" prop="state"></el-table-column>
      <el-table-column label="参数名称" align="center" prop="paramName"></el-table-column>
      <el-table-column label="单位" align="center" prop="unit"></el-table-column>
      <el-table-column label="类型" align="center" prop="type"></el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
        <template slot-scope="scope">
          <el-button
@@ -230,18 +170,6 @@
            placeholder="请选择采集时间">
          </el-date-picker>
        </el-form-item>
<!--        <el-form-item label="预留字段1" prop="spareField1">-->
<!--          <el-input v-model="form.spareField1" type="textarea" placeholder="请输入内容" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="预留字段2" prop="spareField2">-->
<!--          <el-input v-model="form.spareField2" type="textarea" placeholder="请输入内容" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="创建用户" prop="createUser">-->
<!--          <el-input v-model="form.createUser" type="textarea" placeholder="请输入内容" />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="更改用户" prop="updateUser">-->
<!--          <el-input v-model="form.updateUser" type="textarea" placeholder="请输入内容" />-->
<!--        </el-form-item>-->
        <el-form-item label="状态" prop="state">
          <el-input v-model="form.state" placeholder="请输入状态" />
        </el-form-item>
@@ -253,12 +181,6 @@
        </el-form-item>
        <el-form-item label="类型" prop="type">
          <el-select v-model="form.type" placeholder="请选择类型">
<!--            <el-option-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.label"-->
<!--              :value="dict.value"-->
<!--            ></el-option>-->
          </el-select>
        </el-form-item>
      </el-form>
jcdm-ui/src/views/main/kb/engineCheck/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="app-container">
    <el-card  style="height: 70px;margin-bottom: 10px" class="box-card" >
    <el-card   class="box-card" >
      <template>
        <div class="container">
          <el-row type="flex" justify="center"  style="text-align: center" >
@@ -11,50 +11,41 @@
        </div>
      </template>
    </el-card>
   <el-row :gutter="5"  style="margin-top: 10px">
     <el-col :span="10" style=" height:600px;width:800px"  >
       <el-card class="bottom-card">
         <el-descriptions :column="1" >
           <el-descriptions-item>
   <el-row :gutter="0"  >
     <el-col :span="14">
       <el-card   class="box-card" >
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item prop="engineNo" >
               <span slot="label" style="font-size:45px;color:black"><strong>发动机号</strong></span>
               <span slot="label" style="font-size:40px;color:black"><strong>发动机号</strong></span>
                 <el-input style="font-size:30px" v-model="form.engineNo" placeholder="请输入发动机号" clearable  @keyup.enter.native="EngineNohandleChange" >
                   <el-button slot="append" plain type="info" @click="EngineNohandleChange(form.engineNo)" icon="el-icon-search"></el-button>
                 </el-input>
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="productType" >
                  <span slot="label" style="font-size:45px;color:black"><strong>机型</strong></span>
                  <span slot="label" style="font-size:40px;color:black"><strong>机型</strong></span>
                 <el-input disabled style="font-size:30px"  value="form.productType" v-model="form.productType" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="orderNo" >
               <span  slot="label" style="font-size:45px;color:black"><strong>工单编号</strong></span>
               <span  slot="label" style="font-size:40px;color:black"><strong>工单编号</strong></span>
                 <el-input disabled style="font-size:30px" v-model="form.orderNo" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
           <el-descriptions-item>
             <el-form ref="form" :model="form"  label-width="200px" style="height: 60px;margin-top: 20px" >
               <el-form-item   prop="currentWorkstation" >
               <span slot="label" style="font-size:45px;color:black"><strong>质量状态</strong></span>
               <span slot="label" style="font-size:40px;color:black"><strong>质量状态</strong></span>
                 <el-input disabled style="font-size:30px" v-model:value="form.add" placeholder="" />
               </el-form-item>
             </el-form>
           </el-descriptions-item>
         </el-descriptions>
         <el-divider></el-divider>
         <el-row :gutter="10" class="mb8" type="flex" justify="center"  style="text-align: center">
           <el-col :span="1.5">
             <el-button plain  :disabled="buttondisabled" type="primary" style="width:400px;height:160px" v-hasPermi="['bs:formula:add']" @click="forceOnline">
               <span   class="el-icon-thumb"   style="font-size:45px;color:black"></span>
               <span   class="el-icon-thumb"   style="font-size:40px;color:black"></span>
               <span style="font-size:45px;color:black"><strong>强制上线</strong></span>
             </el-button>
           </el-col>
@@ -62,17 +53,17 @@
       </el-card>
     </el-col>
     <el-col :span="14"  inline style="height:600px;width:600px  ">
     <el-col :span="10"  inline >
       <el-tabs type="border-card"  >
         <el-card>
         <el-col :span="14"style="height: 270px;width:800px  ">
         <el-col :span="14"style="height: 248px;width:800px  ">
           <span style="font-size:25px"><strong>质量状态</strong></span>
           <el-divider></el-divider>
           {{this.form.engineCheckList}}
         </el-col>
         </el-card>
         <el-card style="margin-top: 10px" >
         <el-col :span="14"style="height: 270px;width:800px  ">
         <el-col :span="14"style="height: 248px;width:800px  ">
           <span style="font-size:25px"><strong>最终结果</strong></span>
           <el-divider></el-divider>
           {{queryParams.productType}}
@@ -163,7 +154,6 @@
          else{
            this.reset();
            this.buttondisabled = true
            // this.$modal.msgError('输入的发动机号有误');
            const h = this.$createElement;
            this.$message({
              message: h('p',null, [
@@ -202,7 +192,6 @@
<style scoped>
::v-deep .el-input__inner{
  height: 50px;
  width: 450px;
}
::v-deep .el-form-item__label {
  line-height: 50px;
jcdm-ui/src/views/main/pr/tightenReport/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
<template>
  <div class="app-container">
    <el-card class="box-card" >
      <el-form :model="queryParams" ref="queryForm" :inline="true"  v-show="showSearch" label-width="68px" >
        <el-form-item label-width="120" label="箱体编码:" prop="sfcCode">
          <el-input clearable
            v-model="queryParams.sfcCode"
            placeholder="请输入箱体编码"
            @keyup.enter.native="handleQuery"/>
        </el-form-item>
        <el-form-item label-width="120" label="工位号:" prop="locationCode">
          <el-input clearable
            v-model="queryParams.locationCode"
            placeholder="请输入工位号"
            @keyup.enter.native="handleQuery"/>
        </el-form-item>
        <el-form-item label-width="120"  label="采集时间" prop="startDate">
            <el-date-picker
              v-model="dateRange"
              type="daterange"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期">
            </el-date-picker>
            <button @click="fetchData">查询</button>
        </el-form-item>
        <el-form-item style="float: right">
          <el-button type="primary" icon="el-icon-refresh" @click="handleQuery">查询</el-button>
          <el-button type=""    icon="el-icon-refresh"  @click="resetQuery">重置</el-button>
        </el-form-item>
      </el-form>
    </el-card>
    <el-card style="margin-top: 10px" class="box-card">
      <el-table v-loading="loading" border :data="tightenReportList" @selection-change="handleSelectionChange" v-if="tightenReportList.length > 0">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column label="箱体编码" align="center" width="200" prop="sfcCode"></el-table-column>
        <el-table-column label="工位" align="center" prop="locationCode"></el-table-column>
        <el-table-column label="参数编码" align="center" prop="paramCode"></el-table-column>
        <el-table-column label="参数名称" align="center" prop="paramName"></el-table-column>
        <el-table-column label="参数值" align="center" prop="paramValue"></el-table-column>
        <el-table-column label="采集时间" align="center" prop="collectionTime" width="180">
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d}') }}</span>
          </template>
        </el-table-column>
        <el-table-column label="状态" align="center" prop="state"></el-table-column>
        <el-table-column label="单位" align="center" prop="unit"></el-table-column>
      </el-table>
      <el-empty v-else>
        <span slot="description">暂无数据</span>
      </el-empty>
    </el-card>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
  </div>
</template>
<script>
import { listParamCollection, getParamCollection, delParamCollection, addParamCollection, updateParamCollection } from "@/api/main/da/paramCollection/paramCollection";
export default {
  name: "index",
  computed: {
  },
  dicts: ['sys_normal_disable','order_scheduling_produce_status','print_status'],
  components: {
  },
  data(){
    return{
      dateRange: '',
      // ç”¨äºŽå­˜å‚¨é€‰æ‹©çš„日期范围
      total: 0,
      ids: [],
      tightenReportList: [],
      loading: true,
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        workOrderNo: null,
        sfcCode: null,
        productCode: null,
        productionLine: null,
        locationCode: null,
        equipmentNo: null,
        paramCode: null,
        paramValue: null,
        paramUpper: null,
        paramLower: null,
        paramStandard: null,
        collectionTime: null,
        spareField1: null,
        spareField2: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        state: null,
        paramName: null,
        unit: null,
        type: '拧紧数据',
        startDate: null,
        endDate: null
      },
    }
  },
  created() {
    this.getList();
  },
  methods:{
    async fetchData() {
      // æž„建API请求的URL,使用选择的日期范围作为查询参数
      const url = `@/api/main/da/paramCollection/paramCollection?startDate=${this.dateRange[0]}&endDate=${this.dateRange[1]}`;
      try {
        // å‘送API请求,获取查询结果
        const response = await fetch(url);
        const data = await response.json();
        console.log(data); // å¤„理查询结果,比如在控制台输出或显示在页面上
      } catch (error) {
        console.error('Error fetching data:', error);
      }
    },
  },
  reset() {
      this.form = {
        id: null,
        workOrderNo: null,
        sfcCode: null,
        productCode: null,
        productionLine: null,
        locationCode: null,
        equipmentNo: null,
        paramCode: null,
        paramValue: null,
        paramUpper: null,
        paramLower: null,
        paramStandard: null,
        collectionTime: null,
        spareField1: null,
        spareField2: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        state: null,
        paramName: null,
        unit: null,
        type: '拧紧数据',
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    getList() {
      this.loading = true;
      // const startDate = new Date(this.queryParams.startDate);
      // const endDate = new Date(this.queryParams.endDate);
      // const resultList = [];
      // // æž„建查询条件,使用ParamCollection表的createtime作为判断条件
      // const query = {
      //   createTime: date // ä½¿ç”¨å½“前日期作为查询条件
      // };
      // for (let date = startDate; date <= endDate; date.setDate(date.getDate() + 1)) {
      //   // æ ¹æ®å½“前日期执行查询操作,并将结果添加到结果数组中
      //   listParamCollection(query).then(response => {
      //     resultList.push(...response.rows);
      //     // åˆ¤æ–­æ˜¯å¦æ˜¯æœ€åŽä¸€ä¸ªæ—¥æœŸï¼Œå¦‚果是,则更新页面数据
      //     if (date.getTime() === endDate.getTime()) {
      //       this.tightenReportList = resultList;
      //       this.total = resultList.length;
      //       this.loading = false;
      //     }
      //   });
      // }
      listParamCollection(this.queryParams).then(response => {
        this.tightenReportList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
}
</script>
<style scoped>
::v-deep .el-form-item__label{
  font-size: large;
}
::v-deep .el-card__body{
  padding: 15px 20px 0px 20px;
}
</style>