| | |
| | | package com.jcdm.quartz.task; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | 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.om.productionOrde.domain.OmProductionOrdeInfo; |
| | | import com.jcdm.main.om.productionOrde.service.impl.OmProductionOrdeInfoServiceImpl; |
| | | 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 javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 定时任务调度测试 |
| | |
| | | @Component("ryTask") |
| | | public class RyTask |
| | | { |
| | | @Autowired |
| | | private DaPassingStationCollectionServiceImpl passingStationCollectionServiceImpl; |
| | | @Autowired |
| | | private IBsOrderSchedulingService bsOrderSchedulingService; |
| | | |
| | | @Resource |
| | | private OmProductionOrdeInfoServiceImpl omProductionOrdeInfoService; |
| | | |
| | | |
| | | 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)); |
| | |
| | | |
| | | public void ryNoParams() |
| | | { |
| | | System.out.println("执行无参方法"); |
| | | logger.info("执行定时任务开始"); |
| | | String a=passingStationCollectionServiceImpl.SelectSN("88","OP010"); |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | bsOrderScheduling.setRemarks("1"); |
| | | List<BsOrderScheduling> bsOrderSchedulingList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); |
| | | if (CollUtil.isNotEmpty(bsOrderSchedulingList)){ |
| | | Map<String, List<BsOrderScheduling>> map = bsOrderSchedulingList.stream().collect(Collectors.groupingBy(BsOrderScheduling::getOrderNo)); |
| | | OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); |
| | | for (String s : map.keySet()) { |
| | | List<BsOrderScheduling> bsOrderSchedulings = map.get(s); |
| | | if (CollUtil.isNotEmpty(bsOrderSchedulings)){ |
| | | BsOrderScheduling scheduling = bsOrderSchedulings.get(0); |
| | | int size = bsOrderSchedulings.size(); |
| | | omProductionOrdeInfo.setPlanQty((long)size); |
| | | omProductionOrdeInfo.setActualQty((long)0); |
| | | omProductionOrdeInfo.setWorkOrderNo(s); |
| | | omProductionOrdeInfo.setProductCode(scheduling.getModel()); |
| | | omProductionOrdeInfo.setOrderStatus("2"); |
| | | omProductionOrdeInfo.setTypeZ(scheduling.getModel()); |
| | | omProductionOrdeInfoService.insertOmProductionOrdeInfo(omProductionOrdeInfo); |
| | | logger.info("插入工单,{}",s); |
| | | } |
| | | } |
| | | for (BsOrderScheduling scheduling : bsOrderSchedulingList) { |
| | | scheduling.setRemarks("0"); |
| | | scheduling.setProductionStatus("1"); |
| | | bsOrderSchedulingService.updateBsOrderScheduling(scheduling); |
| | | } |
| | | |
| | | } |
| | | System.out.println("执行过程返回:" + a); |
| | | logger.info("定时任务执行结束"); |
| | | } |
| | | |
| | | 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=""; |
| | | if (CollUtil.isNotEmpty(bsOrderSchedulings)){ |
| | | BsOrderScheduling orderScheduling = bsOrderSchedulings.get(0); |
| | | 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=""; |
| | | if (CollUtil.isNotEmpty(bsOrderSchedulings)){ |
| | | BsOrderScheduling orderScheduling = bsOrderSchedulings.get(0); |
| | | 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; |
| | | } |
| | | } |