春风项目四线(合箱线、总装线)
yyt
2024-06-03 5030f3d30ccc1bd16db371c6970a48103aff9191
jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java
@@ -1,7 +1,17 @@
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.da.passingStationCollection.service.IDaPassingStationCollectionService;
import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl;
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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
 * 定时任务调度测试
@@ -11,6 +21,11 @@
@Component("ryTask")
public class RyTask
{
    @Autowired
    private DaPassingStationCollectionServiceImpl passingStationCollectionServiceImpl;
    @Autowired
    private IBsOrderSchedulingService bsOrderSchedulingService;
    private static final Logger logger = LoggerFactory.getLogger("sys-user");
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -23,6 +38,110 @@
    public void ryNoParams()
    {
        System.out.println("执行无参方法");
        String a=passingStationCollectionServiceImpl.SelectSN("88","OP010");
        System.out.println("执行过程返回:" + a);
    }
    String url = "http://podqapp.cfmoto.com.cn:50100/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);
        String status="";
        String ev_meassage="";
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
            try {
                String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0010"));
                ev_meassage=ReceivingServices.xmlToJSON1(xmlResult);
                status = ReceivingServices.xmlToJSON3(xmlResult);
            } catch (Exception e) {
                status="3";
            }
            if(status.equals("1")) {
                orderScheduling.setReport10("1");
                int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                logger.info("{}合箱报工成功",orderScheduling.getOrderNo());
            }else {
                if(StringUtils.isEmpty(orderScheduling.getSpareField1())){
                    orderScheduling.setSpareField1("1");
                    bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                }else{
                    if(Integer.valueOf(orderScheduling.getSpareField1())+1>=3) {
                        //累计报工异常超过3次
                        orderScheduling.setReport10("3");
                        orderScheduling.setSpareField1(String.valueOf(Integer.valueOf(orderScheduling.getSpareField1()) + 1));
                    }else {
                        orderScheduling.setSpareField1(String.valueOf(Integer.valueOf(orderScheduling.getSpareField1()) + 1));
                    }
                    bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                }
                if(status.equals("3"))
                    logger.info("{}合箱报工因为网络原因,报工失败!",orderScheduling.getOrderNo());
                else
                    logger.info("{}合箱报工失败,原因:{}",orderScheduling.getOrderNo(),ev_meassage);
            }
        }
    }
    public void report20(){
        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
        bsOrderScheduling.setReport20("0");
        List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
        String status="";
        String ev_meassage="";
        for (BsOrderScheduling orderScheduling : bsOrderSchedulings) {
            try {
                String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0020"));
                ev_meassage=ReceivingServices.xmlToJSON1(xmlResult);
                status = ReceivingServices.xmlToJSON3(xmlResult);
            } catch (Exception e) {
                status="3";
            }
            if(status.equals("1")){
                orderScheduling.setReport20("1");
                int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                logger.info("{}总装报工成功",orderScheduling.getOrderNo());
            }else {
                if(StringUtils.isEmpty(orderScheduling.getSpareField2())){
                    orderScheduling.setSpareField2("1");
                    bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                }else{
                    if(Integer.valueOf(orderScheduling.getSpareField2())+1>=3) {
                        //累计报工异常超过3次
                        orderScheduling.setReport20("3");
                        orderScheduling.setSpareField2(String.valueOf(Integer.valueOf(orderScheduling.getSpareField2()) + 1));
                    }else{
                        orderScheduling.setSpareField2(String.valueOf(Integer.valueOf(orderScheduling.getSpareField2()) + 1));
                    }
                    bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling);
                    if(status.equals("3"))
                        logger.info("{}总装报工因为网络原因,报工失败!",orderScheduling.getOrderNo());
                    else
                        logger.info("{}总装报工失败,原因:{}",orderScheduling.getOrderNo(),ev_meassage);
                }
            }
        }
    }
    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>";
        //logger.info("{}",content);
        return content;
    }
}