package com.northglass.service.device;
|
|
import java.io.BufferedReader;
|
import java.io.DataOutputStream;
|
import java.io.File;
|
import java.io.FileOutputStream;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.io.OutputStream;
|
import java.io.OutputStreamWriter;
|
import java.io.UnsupportedEncodingException;
|
import java.net.HttpURLConnection;
|
import java.net.MalformedURLException;
|
import java.net.URL;
|
import java.net.URLConnection;
|
import java.net.URLDecoder;
|
import java.nio.charset.StandardCharsets;
|
import java.nio.file.Files;
|
import java.nio.file.Paths;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
import com.northglass.entity.OutTasks;
|
import com.northglass.entity.Telecoms;
|
import com.northglass.entity.LoadRack;
|
import com.northglass.entity.Machine;
|
import com.northglass.repository.MachineDisposeDao;
|
import com.northglass.repository.OutTasksDao;
|
import com.northglass.repository.LoadRackDao;
|
import com.northglass.repository.MachineDao;
|
import com.northglass.repository.TelecomsDao;
|
import com.northglass.service.TelecomsService.TelecomsService;
|
import com.northglass.service.message.MessageProcessor;
|
import com.northglass.util.HexUtil;
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
|
|
@Component
|
@Transactional
|
public class DeviceService {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(DeviceService.class);
|
@Autowired
|
private TelecomsService telecomsService;
|
|
@Autowired
|
private TelecomsDao telecomsDao;
|
@Autowired
|
private MessageProcessor MessageProcessor;
|
|
@Autowired
|
private MachineDao machineDao;
|
@Autowired
|
private LoadRackDao loadRackDao;
|
@Autowired
|
private MachineDisposeDao machineDisposeDao;
|
|
@Autowired
|
private OutTasksDao outTasksDao;
|
|
// public static Map<String,OutTasks> jsonArrayStatic;
|
|
public void testMainche() {
|
//List<Machine> Machine=machineDao.SelectMinchineFlag("1");
|
Telecoms telecoms=telecomsDao.findOne(1L);
|
String str="000100000000000000";
|
for(int i=0;i<45;i++){
|
// if(i==19){
|
// str+=HexUtil.intBinaryTo16("0000100000000000");
|
// continue;
|
// }
|
// if(i==34){
|
// str+=HexUtil.intBinaryTo16("0000100000000000");
|
// continue;
|
// }
|
|
if(i==5||i==9999){
|
str+="0001";
|
}else{
|
str+="0000";
|
}
|
}
|
String strss=MessageProcessor.generateReturnMessage(str,telecoms);
|
if(strss.length()>26){
|
System.out.println(telecoms.getNumber()+"写入内容:"+strss.substring(26));
|
}else{
|
System.out.println("无");
|
}
|
}
|
|
public void connect() {
|
//testMainche();
|
// ApiHttp ApiHttp= new ApiHttp("192.168.10.127",1);
|
// ApiHttp.handle();
|
|
|
//
|
// Telecoms telecoms=telecomsDao.findOne(10L);
|
// TaskChange(telecoms);
|
// Telecoms telecoms=telecomsDao.findOne(1L);
|
// telecomsService.connect(telecoms);
|
List<Telecoms> telecoms=telecomsDao.findAll();
|
for(Telecoms Telecom:telecoms){
|
telecomsService.connect(Telecom);
|
}
|
// Telecoms telecoms=telecomsDao.findOne(10L);
|
// String TasksStr=task(telecoms);
|
// System.out.println(TasksStr);
|
}
|
//任务领取以及汇报
|
public void TaskChange(Telecoms telecoms){
|
try {
|
String TasksStr=task(telecoms);
|
//String TasksStr=new String(Files.readAllBytes(Paths.get("D:\\haojingconfig\\json-format.json")),StandardCharsets.UTF_8);;
|
if(TasksStr==""||TasksStr==null){
|
if(!"离线".equals(telecoms.getConnState())){
|
telecoms.setConnState("离线");
|
telecoms.setModTime(new Date());
|
telecomsDao.save(telecoms);
|
}
|
return;
|
}else{
|
if(!"在线".equals(telecoms.getConnState())){
|
telecoms.setConnState("在线");
|
telecoms.setModTime(new Date());
|
telecomsDao.save(telecoms);
|
}
|
JSONObject jo = JSONObject.fromObject(TasksStr);
|
JSONArray jsonArray = jo.getJSONArray("ReturnValue");
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
|
String content="";
|
for(int j=0;j<jsonArray.size();j++){
|
content+="\r"+jsonArray.getJSONObject(j);
|
}
|
String Chexiao="";
|
WriteFile("D:","领取任务",df.format(new Date())+"\r任务情况:"+content,false);
|
//System.out.println(content);
|
String cancelText[]=telecoms.getInterprets().split(",");
|
List cancelList=new ArrayList<>();
|
for(String item:cancelText){
|
cancelList.add(item);
|
}
|
for(int j=0;j<jsonArray.size();j++){//找到是否有此目的地的补片任务
|
String Taskid=jsonArray.getJSONObject(j).get("TaskId").toString();
|
List<OutTasks> OutTaskss=outTasksDao.FindOutTasksTaskIds(Taskid);
|
//DeviceService.jsonArrayStatic.put(OutTasksadd.getTaskId(),OutTasksadd);
|
if(OutTaskss.isEmpty()){
|
//直接添加
|
OutTasks OutTasksadd=new OutTasks();
|
OutTasksadd.setTaskId(jsonArray.getJSONObject(j).get("TaskId").toString());
|
OutTasksadd.setTaskType(jsonArray.getJSONObject(j).get("TaskTypeName").toString());
|
OutTasksadd.setMesStatus("null".equals(jsonArray.getJSONObject(j).get("MESStatusName").toString())?"0":jsonArray.getJSONObject(j).get("MESStatusName").toString());
|
OutTasksadd.setMachineStatus("null".equals(jsonArray.getJSONObject(j).get("MachineStatusName").toString())?"0":jsonArray.getJSONObject(j).get("MachineStatusName").toString());
|
OutTasksadd.setWorkStatus("等待中");
|
OutTasksadd.setPkgId(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PkgId").toString())?"0":jsonArray.getJSONObject(j).get("PkgId").toString()));
|
OutTasksadd.setStockName("null".equals(jsonArray.getJSONObject(j).get("StockName").toString())?"0":jsonArray.getJSONObject(j).get("StockName").toString());
|
OutTasksadd.setDestination("null".equals(jsonArray.getJSONObject(j).get("Destination").toString())?"0":jsonArray.getJSONObject(j).get("Destination").toString());
|
OutTasksadd.setPlanLoadNum1(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum1").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum1").toString()));
|
OutTasksadd.setPlanLoadNum2(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum2").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum2").toString()));
|
OutTasksadd.setPlanLoadNum3(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum3").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum3").toString()));
|
OutTasksadd.setStockNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("StockNum").toString())?"0":jsonArray.getJSONObject(j).get("StockNum").toString()));
|
OutTasksadd.setLoadeNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("LoadedNum").toString())?"0":jsonArray.getJSONObject(j).get("LoadedNum").toString()));
|
OutTasksadd.setNewPkgId(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("NewPkgId").toString())?"0":jsonArray.getJSONObject(j).get("NewPkgId").toString()));
|
OutTasksadd.setNewPkgNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("NewPkgNum").toString())?"0":jsonArray.getJSONObject(j).get("NewPkgNum").toString()));
|
OutTasksadd.setBb(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("BB").toString())?"0":jsonArray.getJSONObject(j).get("BB").toString()));
|
OutTasksadd.setHh(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("HH").toString())?"0":jsonArray.getJSONObject(j).get("HH").toString()));
|
OutTasksadd.setColor("null".equals(jsonArray.getJSONObject(j).get("Color").toString())?"0":jsonArray.getJSONObject(j).get("Color").toString());
|
OutTasksadd.setThickness(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("Thickness").toString())?"0":jsonArray.getJSONObject(j).get("Thickness").toString()));
|
OutTasksadd.setPkgNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PkgNum").toString())?"0":jsonArray.getJSONObject(j).get("PkgNum").toString()));
|
OutTasksadd.setStockThickness(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("StockThickness").toString())?"0":jsonArray.getJSONObject(j).get("StockThickness").toString()));
|
OutTasksadd.setTaskIds(Long.valueOf(jsonArray.getJSONObject(j).get("TaskId").toString()));
|
OutTasksadd.setPosunCount(0);
|
OutTasksadd.setRackNumber("");
|
OutTasksadd.setInfoContent("");
|
OutTasksadd.setStartTime(new Date());
|
OutTasksadd.setFinshTime(new Date());
|
OutTasksadd.setFlag("正常");
|
OutTasksadd.setLoadTime(new Date());
|
if("在线库到上片台(补片)".equals(OutTasksadd.getTaskType())){
|
OutTasksadd.setPriority(1001);
|
}else{
|
OutTasksadd.setPriority(1000);
|
}
|
outTasksDao.save(OutTasksadd);
|
System.out.println("领取任务:[ "+jsonArray.getJSONObject(j).get("TaskId").toString()+" ]");
|
}else if(OutTaskss.size()==1){
|
String MESStatusName="null".equals(jsonArray.getJSONObject(j).get("MESStatusName").toString())?"0":jsonArray.getJSONObject(j).get("MESStatusName").toString();
|
OutTasks OutTasks=OutTaskss.get(0);
|
if("撤销任务".equals(MESStatusName)&&!cancelList.contains(OutTasks.getTaskId()))
|
{ //撤销任务
|
Chexiao+=OutTasks.getTaskId()+",";
|
// OutTasks.setMesStatus("撤销任务");
|
// outTasksDao.save(OutTasks);
|
System.out.println("撤销任务:[ "+jsonArray.getJSONObject(j).get("TaskId").toString()+" ]");
|
}else if(!"派尔确认任务完成".equals(OutTasks.getMesStatus())&&"任务完成".equals(OutTasks.getMachineStatus())){
|
boolean isFinsh=PaiFinsh(telecoms,OutTasks,"派尔确认任务完成","汇报派尔退库完成失败!","5");
|
System.out.println("任务id:["+OutTasks.getTaskId()+"]自动纠正汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
|
}
|
}
|
}
|
telecoms.setInterprets(Chexiao);
|
telecomsDao.save(telecoms);
|
List list=new ArrayList<>();
|
String s[]=Chexiao.split(",");
|
for(String item:s){
|
list.add(item);
|
}
|
List<OutTasks> OutTasksAll=outTasksDao.FindNoMesStatus("派尔确认任务完成");
|
try {
|
for(OutTasks OutTask:OutTasksAll){
|
if("上片任务已开始".equals(OutTask.getMesStatus())&&
|
"铁架已到上片位".equals(OutTask.getMachineStatus()))
|
{
|
|
if(list.contains(OutTask.getTaskId())){
|
//此任务已撤销
|
OutTask.setMesStatus("上片完成可退回");
|
OutTask.setMachineStatus("上片完成请求退回");
|
outTasksDao.save(OutTask);
|
System.out.println("任务id:["+OutTask.getTaskId()+"] 到达上片位 此任务已撤销");
|
}else{
|
boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认铁架已到位","汇报派尔铁架已到位失败!","3");
|
//上片任务到位汇报派尔到位 铁架已到位-3
|
System.out.println("任务id:["+OutTask.getTaskId()+"]汇报铁架到位:"+(isFinsh==true?"成功!":"失败!"));
|
if(isFinsh){
|
for(int i=0;i<jsonArray.size();i++){
|
if(OutTask.getTaskId().equals(jsonArray.getJSONObject(i).get("TaskId").toString())){
|
OutTask.setPlanLoadNum1(Integer.valueOf("null".equals(jsonArray.getJSONObject(i).get("PlanLoadNum1").toString())?"0":jsonArray.getJSONObject(i).get("PlanLoadNum1").toString()));
|
OutTask.setPlanLoadNum2(Integer.valueOf("null".equals(jsonArray.getJSONObject(i).get("PlanLoadNum2").toString())?"0":jsonArray.getJSONObject(i).get("PlanLoadNum2").toString()));
|
OutTask.setPlanLoadNum3(Integer.valueOf("null".equals(jsonArray.getJSONObject(i).get("PlanLoadNum3").toString())?"0":jsonArray.getJSONObject(i).get("PlanLoadNum3").toString()));
|
OutTask.setStockNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(i).get("StockNum").toString())?"0":jsonArray.getJSONObject(i).get("StockNum").toString()));
|
outTasksDao.save(OutTask);
|
break;
|
}
|
}
|
}
|
|
}
|
}
|
else if("上片任务已开始".equals(OutTask.getMesStatus())&&
|
"铁架已到吊装位".equals(OutTask.getMachineStatus()))
|
{
|
//上片任务到位汇报派尔到位 铁架已到位-3
|
boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认铁架已到位","汇报派尔铁架已到位失败!","3");
|
System.out.println("任务id:["+OutTask.getTaskId()+"]汇报吊装到位:"+(isFinsh==true?"成功!":"失败!"));
|
}
|
else if("派尔确认铁架已到位".equals(OutTask.getMesStatus())&&
|
"上片完成请求退回".equals(OutTask.getMachineStatus()))
|
{
|
//上片完成汇报派尔 上片完成-7
|
boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认上片完成","汇报派尔上片完成失败!","7");
|
System.out.println("任务id:["+OutTask.getTaskId()+"]汇报上片完成:"+(isFinsh==true?"成功!":"失败!"));
|
}
|
else if("派尔确认上片完成".equals(OutTask.getMesStatus())&&
|
"上片完成请求退回".equals(OutTask.getMachineStatus()))
|
{
|
for(int i=0;i<jsonArray.size();i++){
|
if(OutTask.getTaskId().equals(jsonArray.getJSONObject(i).get("TaskId").toString())&&
|
"上片完成可退回".equals(jsonArray.getJSONObject(i).get("MESStatusName").toString())){
|
OutTask.setMesStatus("上片完成可退回");
|
outTasksDao.save(OutTask);
|
System.out.println("任务id:["+OutTask.getTaskId()+"]派尔上片允许退回!");
|
}
|
}
|
}
|
else if("上片完成可退回".equals(OutTask.getMesStatus())&&
|
"上片完成请求退回".equals(OutTask.getMachineStatus()))
|
{
|
//上片派尔确认退回 //验证有没有补片任务
|
if(isPosunTaskLoad(OutTask,TasksStr)){
|
//有补片任务,暂停机器等待补片
|
List<Machine> machines=machineDao.FindNumber(OutTask.getDestination());
|
for(Machine machine:machines){
|
machine.setWorkState("等待补片");
|
OutTask.setMesStatus("派尔确认可退回");
|
OutTask.setMachineStatus("铁架退回二次接力");
|
OutTask.setInfoContent("");
|
OutTask.setWorkStatus("等待中");
|
OutTask.setInfoContent("");
|
machineDao.save(machine);
|
outTasksDao.save(OutTask);
|
break;
|
}
|
}else{
|
// 此线路下一任务是否还是此料架 此线路未完成的任务:OutTasksSameStokess
|
List<OutTasks> OutTasksSameStokess=outTasksDao.FindDestinationNoFinshTaskIdOderbyASC(OutTask.getDestination(),OutTask.getTaskId(),"任务完成");
|
if(!OutTasksSameStokess.isEmpty()){
|
OutTasks outTask=OutTasksSameStokess.get(0);
|
if(outTask.getStockName().equals(OutTask.getStockName())){
|
outTask.setMachineStatus("铁架已到上片位");
|
outTask.setInfoContent("");
|
outTasksDao.save(outTask);
|
System.out.println("此任务与下一任务料架相同:"+OutTask.getId()+"----1");
|
//找到当前任务所在料架
|
List<LoadRack> loadRacks=loadRackDao.findOutTasksId(OutTask.getId());
|
if(loadRacks.size()==1){
|
|
LoadRack loadRack=loadRacks.get(0);
|
loadRack.getOutTasks().setWorkStatus("");
|
loadRack.getOutTasks().setMesStatus("派尔确认可退回");
|
loadRack.getOutTasks().setInfoContent("");
|
loadRack.getOutTasks().setMachineStatus("任务完成");
|
loadRackDao.save(loadRack);
|
loadRack.setOutTasks(outTask);
|
loadRack.getMachineLoad().setWorkState("等待中");
|
loadRackDao.save(loadRack);
|
System.out.println("此任务与下一任务料架相同:"+OutTask.getId()+"----2");
|
}else{
|
System.out.println("同料架存在多个工位上:"+OutTask.getId());
|
}
|
}else{
|
List<LoadRack> loadRacks=loadRackDao.findOutTasksId(OutTask.getId());
|
if(loadRacks.size()==1){
|
LoadRack loadRack=loadRacks.get(0);
|
loadRack.getOutTasks().setMesStatus("派尔确认可退回");
|
loadRack.getOutTasks().setInfoContent("");
|
loadRack.getOutTasks().setMachineStatus("铁架退回二次接力");
|
loadRack.getOutTasks().setWorkStatus("等待中");
|
loadRack.getMachineLoad().setWorkState("等待中");
|
loadRackDao.save(loadRack);
|
System.out.println("此任务与下一任务料架不相同:"+OutTask.getId()+"----3");
|
}else{
|
System.out.println("此料架不存在某工位:"+OutTask.getId());
|
}
|
}
|
}else{
|
List<LoadRack> loadRacks=loadRackDao.findOutTasksId(OutTask.getId());
|
if(loadRacks.size()==1){
|
LoadRack loadRack=loadRacks.get(0);
|
loadRack.getOutTasks().setMesStatus("派尔确认可退回");
|
loadRack.getOutTasks().setInfoContent("");
|
loadRack.getOutTasks().setMachineStatus("铁架退回二次接力");
|
loadRack.getOutTasks().setWorkStatus("等待中");
|
loadRack.getMachineLoad().setWorkState("等待中");
|
loadRackDao.save(loadRack);
|
System.out.println("此任务为当前线路最后一个任务:"+OutTask.getId()+"----4");
|
}else{
|
System.out.println("此料架不存在某工位:"+OutTask.getId());
|
}
|
}
|
|
}
|
}
|
else if(!"派尔确认可退回".equals(OutTask.getMesStatus())&&
|
"铁架已到吊装位".equals(OutTask.getMachineStatus()))
|
{
|
|
boolean isExecute=false;
|
for(int i=0;i<jsonArray.size();i++){
|
if(OutTask.getTaskId().equals(jsonArray.getJSONObject(i).get("TaskId").toString())&&
|
"工人已将玻璃吊装到入料口铁架上".equals(jsonArray.getJSONObject(i).get("MESStatusName").toString())){
|
isExecute=true;
|
System.out.println("任务id:["+OutTask.getTaskId()+"]派尔吊装允许退回!");
|
}else if(OutTask.getTaskId().equals(jsonArray.getJSONObject(i).get("TaskId").toString())&&
|
"撤销任务".equals(jsonArray.getJSONObject(i).get("MESStatusName").toString())){
|
isExecute=true;
|
System.out.println("任务id:["+OutTask.getTaskId()+"]派尔吊装撤销任务退回!");
|
}
|
}
|
if(isExecute){
|
OutTask.setMesStatus("派尔确认可退回");
|
OutTask.setMachineStatus("等待退回库区");
|
outTasksDao.save(OutTask);
|
}
|
}
|
else if(list.contains(OutTask.getTaskId())&&"任务完成".equals(OutTask.getMachineStatus()))
|
{
|
//此任务已撤销 "9"
|
boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认任务完成","汇报派尔退库完成失败!","9");
|
System.out.println("撤销任务id:["+OutTask.getTaskId()+"]汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
|
}
|
else if(!"派尔确认任务完成".equals(OutTask.getMesStatus())&&"任务完成".equals(OutTask.getMachineStatus()))
|
{
|
//任务完成汇报派尔 退回库区-5
|
boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认任务完成","汇报派尔退库完成失败!","5");
|
System.out.println("任务id:["+OutTask.getTaskId()+"]汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
|
}
|
}
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
}
|
} catch (Exception e) {
|
System.out.println("领取任务异常!");
|
}
|
}
|
|
public boolean isPosunTaskLoad(OutTasks OutTasks,String TasksStr) {
|
try {
|
if(TasksStr==""||TasksStr==null){
|
//return true;
|
return false;
|
}else{
|
JSONObject jo = JSONObject.fromObject(TasksStr);
|
JSONArray jsonArray = jo.getJSONArray("ReturnValue");
|
boolean isexist=false;
|
for(int i=0;i<jsonArray.size();i++){
|
if(!OutTasks.getTaskId().equals(jsonArray.getJSONObject(i).get("TaskId").toString())&&
|
OutTasks.getDestination().equals(jsonArray.getJSONObject(i).get("Destination").toString())&&
|
"在线库到上片台(补片)".equals(jsonArray.getJSONObject(i).get("TaskTypeName").toString())){
|
isexist=true;
|
break;
|
}
|
}
|
return isexist;
|
}
|
|
} catch (Exception e) {
|
// TODO: handle exception
|
return false;
|
}
|
|
}
|
//调用领取任务接口
|
public String task(Telecoms telecoms){
|
try {
|
String methodUrlHead="http://";
|
String methodUrlBody=telecoms.getipAddress()+":"+telecoms.getPort();
|
String methodUrlFoot="/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";
|
String methodUrl=methodUrlHead+methodUrlBody+methodUrlFoot;
|
//String methodUrl ="http://192.168.3.200:9006/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";//获取任务列表
|
JSONObject obj = new JSONObject();
|
List content=new ArrayList();
|
content.add(1);
|
Map<String,Object> map = new HashMap<String,Object>();
|
map.put("Method", "GetTaskList");//获取任务
|
map.put("Params",content);
|
obj.putAll(map);
|
String json =obj.toString();
|
return httpapi(methodUrl,json);
|
} catch (Exception e) {
|
return "";
|
}
|
|
}
|
//汇报任务 汇报成功返回true 任务,汇报标志,错误信息,修改状态
|
public boolean PaiFinsh(Telecoms telecoms,OutTasks outTask,String MachineStatus,String InfoContent,String MachineStatusFlag) {
|
try {
|
String methodUrlHead="http://";
|
String methodUrlBody=telecoms.getipAddress()+":"+telecoms.getPort();
|
String methodUrlFoot="/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";
|
String methodUrl=methodUrlHead+methodUrlBody+methodUrlFoot;
|
//String methodUrl ="http://192.168.3.200:9006/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";//反馈任务
|
JSONObject obj = new JSONObject();
|
List Content=new ArrayList();
|
List LoadFinsh=new ArrayList();
|
Content.add(Integer.valueOf(outTask.getTaskId()));
|
Content.add(Integer.valueOf(MachineStatusFlag));
|
if("7".equals(MachineStatusFlag)){
|
LoadFinsh.add(outTask.getLoadeNum());
|
LoadFinsh.add(outTask.getPosunCount());
|
}
|
Content.add(LoadFinsh);
|
Map<String,Object> map = new HashMap<String,Object>();
|
map.put("Method", "ReturnTaskStatus");//汇报任务
|
map.put("Params",Content);
|
obj.putAll(map);
|
String json =obj.toString();
|
String TasksStr=httpapi(methodUrl,json);//返回结果
|
if(TasksStr==""||TasksStr==null){
|
//return true;
|
return false;
|
}else{
|
JSONObject jo = JSONObject.fromObject(TasksStr);
|
boolean Results="ok".equals(jo.get("ReturnValue").toString());
|
if(Results){
|
outTask.setMesStatus(MachineStatus);
|
//outTask.setMachineStatus(MachineStatus);
|
outTask.setInfoContent("");
|
outTasksDao.save(outTask);
|
}else{
|
if(!InfoContent.equals(outTask.getInfoContent())){
|
outTask.setInfoContent(InfoContent);
|
outTasksDao.save(outTask);
|
}
|
}
|
return Results;
|
}
|
} catch (Exception e) {
|
// TODO: handle exception
|
System.out.println("汇报异常!!288");
|
return false;
|
}
|
}
|
// // 汇报任务 汇报成功返回true 任务,汇报标志,错误信息,修改状态
|
// public boolean PaiFinsh(Telecoms telecoms, OutTasks outTask, String MachineStatus, String InfoContent,
|
// String MachineStatusFlag) {
|
// try {
|
// boolean Results = true;
|
// if (Results) {
|
// outTask.setMesStatus(MachineStatus);
|
// // outTask.setMachineStatus(MachineStatus);
|
// outTask.setInfoContent("");
|
// outTasksDao.save(outTask);
|
// } else {
|
// if (!InfoContent.equals(outTask.getInfoContent())) {
|
// outTask.setInfoContent(InfoContent);
|
// outTasksDao.save(outTask);
|
// }
|
// }
|
// return Results;
|
//
|
// } catch (Exception e) {
|
// // TODO: handle exception
|
// System.out.println("汇报异常!!288");
|
// return false;
|
// }
|
// }
|
//连接派尔http接口
|
public String httpapi(String methodUrl,String json){
|
try {
|
//String methodUrl = "http://mes.im2x.com:9012/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";校验接口
|
//String methodUrl ="http://192.168.3.200:9006/PalDW/Pal.E8.BusinessRulesLayer.MESAPI.RightMrg.remote";//获取任务列表
|
HttpURLConnection connection = null;
|
StringBuffer sb = new StringBuffer("");
|
try {
|
URL url = new URL(methodUrl);
|
connection = (HttpURLConnection) url.openConnection();// 根据URL生成HttpURLConnection
|
connection.setConnectTimeout(30000);
|
connection.setReadTimeout(30000);
|
connection.setRequestMethod("POST");// 默认GET请求
|
connection.setDoInput(true); // 设置该连接可输入
|
connection.setDoOutput(true); // 设置该连接可输出
|
connection.setUseCaches(false);
|
connection.setInstanceFollowRedirects(true);
|
connection.setRequestProperty("Charsert", "UTF-8");
|
//connection.setRequestProperty("Content-type", "application/json; charset=UTF-8");
|
connection.setRequestProperty("Content-Type", "cjq");
|
connection.connect();// 建立连接
|
// POST请求
|
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
|
out.writeBytes(json);
|
out.flush();
|
out.close();
|
// 读取响应
|
if(connection.getResponseCode()==200){
|
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
|
try {
|
String lines;
|
while ((lines = reader.readLine()) != null) {
|
sb.append(lines);
|
}
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
reader.close();
|
}
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
// 断开连接
|
connection.disconnect();
|
return sb.toString();
|
}catch(Exception e){
|
System.out.println("派尔掉线!");
|
return "";
|
}
|
|
}
|
public void resetState() {
|
|
}
|
//得到所有的45个字
|
public String[] ResultTexts(String Str) {
|
String []InfoTex =new String[45];
|
Str=Str.substring(18);
|
for(int i=0;i<45;i++){
|
InfoTex[i]=Str.substring(0,4);
|
Str=Str.substring(4);
|
}
|
return InfoTex;
|
}
|
//保存TEXT文本
|
public static void WriteFile(String URL,String FileName,String Content,boolean isappend){
|
try {
|
String FileUrl=URL+File.separator+FileName;
|
File file=new File(FileUrl);
|
if(file.exists()){
|
file.createNewFile();
|
}
|
OutputStream out =new FileOutputStream(file,isappend);
|
Content="\r"+Content;
|
byte[] b=Content.getBytes();
|
out.write(b);
|
out.close();
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
}
|
|
}
|