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;
|
|
/**
|
* 定时任务调度测试
|
*
|
* @author jc
|
*/
|
@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 ryParams(String params)
|
{
|
System.out.println("执行有参方法:" + params);
|
}
|
|
public void ryNoParams()
|
{
|
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="";
|
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;
|
}
|
}
|