春风项目四线(合箱线、总装线)
hdy
2024-01-22 822201dc84ee71bc47a3a4cb76a4aa1f5d9e77f2
Merge remote-tracking branch 'origin/master'

# Conflicts:
# jcdm-ui/src/views/main/kb/prepareOnline/index.vue
已修改16个文件
已添加1个文件
579 ■■■■ 文件已修改
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 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java 30 ●●●● 补丁 | 查看 | 原始文档 | 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-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/api/main/bs/orderScheduling/orderScheduling.js 8 ●●●● 补丁 | 查看 | 原始文档 | 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/kb/prepareOnline/index.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | 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
@@ -46,6 +46,15 @@
        return getDataTable(list);
    }
    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:list')")
    @GetMapping("/list2")
    public TableDataInfo list2(BsOrderScheduling bsOrderScheduling)
    {
//        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/da/opcuaconfig/cert/MethodName.java
@@ -6,6 +6,7 @@
import com.jcdm.main.da.opcuaconfig.domain.NodeEntity;
import com.jcdm.main.da.opcuaconfig.init.BeanUtils;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
@@ -18,6 +19,8 @@
@Slf4j
public class MethodName {
    private IDaCollectionParamConfService collectionParamConfService = BeanUtils.getBean(IDaCollectionParamConfService.class);
    private IDaParamCollectionService daParamCollectionService = BeanUtils.getBean(IDaParamCollectionService.class);
    private List<DataValue> s=null;
    public void getSn(String Node, String value) throws Exception {
        log.info(Node+":"+value);
        String[] parts = Node.split("[.]");
@@ -38,17 +41,21 @@
                DaCollectionParamConf daCollectionParamConf=new DaCollectionParamConf();
                daCollectionParamConf.setCollectParameterId(parts[0]+"."+parts[1]);
                b=collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
                List<String> ids = b.stream().map(e -> e.getCollectParameterId()).collect(Collectors.toList());
                Set<String> de=ListToSet(ids);
                List<DataValue> s=readValues(de);
//                s.forEach(element->{
//                    DaParamCollection Config=new DaParamCollection();
//                    String[] q = element.getIdentifier().split("[.]");
//                    Config.setParamCode(q[2]);
//                    Config.setLocationCode(q[1]);
//                    Config.setParamValue(element.getValue().toString());
//                    daParamCollectionService.insertDaParamCollection(Config);
//                });
                List<NodeId> nodeId = b.stream().map(info -> {
                    NodeId nodeid = new NodeId(2,info.getCollectParameterId());
                    return nodeid;
                }).collect(Collectors.toList());
                List<DataValue> s=readValues(nodeId);
                for(int i=0;i<nodeId.size();i++)
                {
                    DaParamCollection Config=new DaParamCollection();
                    Config.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]);
                    Config.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]);
                    Config.setParamValue(s.get(i).getValue().getValue().toString());
                    daParamCollectionService.insertDaParamCollection(Config);
                }
                NodeEntity node2= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("21").type("short").build();
                Boolean out2=clientHandler.write(node2);
                log.info("节点:{},响应结果:{}", node2.getIdentifier(),out2);
@@ -56,14 +63,5 @@
            default:
                break;
        }
    }
    public Set<String> ListToSet(List<String> list) {
        Object[] objects = list.toArray();// è¿”回Object数组
        String[] strings1 = new String[list.size()];
        list.toArray(strings1);// å°†è½¬åŒ–后的数组放入已经创建好的对象中
        String[] strings2 = list.toArray(new String[0]);// å°†è½¬åŒ–后的数组赋给新对象
        Set<String> set = new HashSet<String>(Arrays.asList(strings2));
        return set;
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
@@ -227,12 +227,30 @@
     * @return {@link List<DataValue>}
     * @throws
     */
    public static List<DataValue> readValues(Set<String> keys){
        List<NodeId> nodeIdList=new ArrayList<>(500);
        keys.forEach(e->{
            NodeId nodeId = new NodeId(2, e);
            nodeIdList.add(nodeId);
        });
//    public static List<DataValue> readValues2(Set<String> keys){
//        List<NodeId> nodeIdList=new ArrayList<>(500);
//        keys.forEach(e->{
//            NodeId nodeId = new NodeId(2, e);
//            nodeIdList.add(nodeId);
//        });
//        try {
//            List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get();
//            return dataValues;
//        } catch (InterruptedException | ExecutionException e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
    /**
     * æ–¹æ³•æè¿°: è¯»å–多个点位的值
     *
     * @param nodeIdList ç‚¹ä½é›†åˆ
     * @return {@link List<DataValue>}
     * @throws
     */
    public static List<DataValue> readValues(List<NodeId> nodeIdList){
        try {
            List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get();
            return dataValues;
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-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/api/main/bs/orderScheduling/orderScheduling.js
@@ -8,7 +8,13 @@
    params: query
  })
}
export function listOrderScheduling2(query) {
  return request({
    url: '/bs/orderScheduling/list2',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢è®¢å•æŽ’产详细
export function getOrderScheduling(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/kb/prepareOnline/index.vue
@@ -15,14 +15,14 @@
        </el-form-item>
        <el-form-item style="margin-left: 360px">
          <el-checkbox-group v-model="queryParams.isRepairFlag">
            <el-checkbox  name="type"></el-checkbox>
            <el-checkbox @change="cleanFlag" name="type"></el-checkbox>
          </el-checkbox-group>
        </el-form-item>
        <el-form-item label-width="120" label="返修发动机号:" prop="engineNo" style="margin-left: 5px">
        <el-form-item label-width="120" label="返修发动机号:" prop="repairEngineNo" style="margin-left: 5px">
          <el-input
            :disabled="!queryParams.isRepairFlag"
            v-model="queryParams.engineNo"
            v-model="queryParams.repairEngineNo"
            clearable
            @keyup.enter.native="handleQuery"
          />
@@ -92,7 +92,7 @@
</template>
<script>
import {listOrderScheduling} from "@/api/main/bs/orderScheduling/orderScheduling";
import {listOrderScheduling2} from "@/api/main/bs/orderScheduling/orderScheduling";
import VueQr from 'vue-qr'
export default {
  name: "index",
@@ -107,7 +107,7 @@
      queryParams: {
        orderNo: '',
        isRepairFlag: '',
        engineNo: ''
        repairEngineNo: ''
      },
      dataList: []
    }
@@ -118,7 +118,7 @@
      this.getList();
    },
    getList(){
      listOrderScheduling(this.queryParams).then(response => {
      listOrderScheduling2(this.queryParams).then(response => {
        console.log("--------------------"+response.rows)
        this.dataList = response.rows
        if (this.queryParams.orderNo === '' || this.queryParams.orderNo === null){
@@ -137,6 +137,11 @@
    filterTag(value, row) {
      return row.tag === value;
    },
    cleanFlag(){
      if (this.queryParams.isRepairFlag === false){
        this.queryParams.repairEngineNo = ''
      }
    },
    filterHandler(value, row, column) {
      const property = column['property'];
      return row[property] === value;