From 55b0cb49a929591ebb18df62aa5d68636d4c7e9c Mon Sep 17 00:00:00 2001 From: 懒羊羊 <15939171744@163.com> Date: 星期一, 22 一月 2024 16:22:23 +0800 Subject: [PATCH] 定时任务 --- jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java | 60 +++++++++++++++ jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReportingForWork.java | 78 +++++++++++++++++++ jcdm-quartz/pom.xml | 5 + jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java | 66 +++++++++++++-- 4 files changed, 198 insertions(+), 11 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java b/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java index af08e28..7bcd85e 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java +++ b/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鍙戦�丼OAP璇锋眰 @@ -79,10 +94,10 @@ // InputStream is = postMethod.getResponseBodyAsStream(); // // 鑾峰彇璇锋眰缁撴灉瀛楃涓� // String result = IOUtils.toString(is); -// String jsonStr = xmlToJSON2(result); -// Gson gson = new Gson(); -// // 灏唈son瀛楃涓茶浆鎹㈡垚瀵硅薄 -// ItemList itemList = gson.fromJson(jsonStr, ItemList.class); +//// String jsonStr = xmlToJSON2(result); +//// Gson gson = new Gson(); +//// // 灏唈son瀛楃涓茶浆鎹㈡垚瀵硅薄 +//// ItemList itemList = gson.fromJson(jsonStr, ItemList.class); // System.out.println("杩斿洖缁撴灉:" + result); // } else { // System.out.println("閿欒浠g爜锛�" + 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; + } + } diff --git a/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReportingForWork.java b/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReportingForWork.java new file mode 100644 index 0000000..9447ace --- /dev/null +++ b/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鍙戦�丼OAP璇锋眰 + 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); + // 鐒跺悗鎶奡oap璇锋眰鏁版嵁娣诲姞鍒癙ostMethod涓� + RequestEntity requestEntity = new StringRequestEntity(content, "text/xml", "UTF-8"); + + // 璁剧疆璇锋眰澶撮儴锛屽惁鍒欏彲鑳戒細鎶� 鈥渘o 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(); +// // 灏唈son瀛楃涓茶浆鎹㈡垚瀵硅薄 +// ItemList itemList = gson.fromJson(jsonStr, ItemList.class); + System.out.println("杩斿洖缁撴灉:" + result); + } else { + System.out.println("閿欒浠g爜锛�" + status + ":" + postMethod.getResponseBodyAsString()); + } + } +} + diff --git a/jcdm-quartz/pom.xml b/jcdm-quartz/pom.xml index 145876e..fd2d43a 100644 --- a/jcdm-quartz/pom.xml +++ b/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> \ No newline at end of file diff --git a/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java b/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java index d0f1e89..5752e5b 100644 --- a/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java +++ b/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; + } } -- Gitblit v1.9.3