package com.northglass.web.configuration;
|
|
import java.io.BufferedReader;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.io.UnsupportedEncodingException;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
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 javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.ws.rs.core.Request;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import com.northglass.entity.LoadRack;
|
import com.northglass.entity.Machine;
|
import com.northglass.entity.MachineDispose;
|
import com.northglass.entity.MachineType;
|
import com.northglass.entity.OutTasks;
|
import com.northglass.entity.Telecoms;
|
import com.northglass.repository.LoadRackDao;
|
import com.northglass.repository.MachineDao;
|
import com.northglass.repository.MachineDisposeDao;
|
import com.northglass.repository.MachinesTypeDao;
|
import com.northglass.repository.OutTasksDao;
|
import com.northglass.repository.TelecomsDao;
|
import com.northglass.service.TelecomsService.TelecomsService;
|
import com.northglass.service.device.DeviceService;
|
|
import net.sf.json.JSONObject;
|
|
@Controller
|
@RequestMapping(value="/Config")
|
public class ConfigController {
|
@Autowired
|
private TelecomsService telecomsService;
|
@Autowired
|
private MachineDao machineDao;
|
@Autowired
|
private MachinesTypeDao machineTypeDao;
|
@Autowired
|
private MachineDisposeDao machineDisposeDao;
|
@Autowired
|
private TelecomsDao telecomsDao;
|
@Autowired
|
private OutTasksDao outTasksDao;
|
@Autowired
|
private LoadRackDao loadRackDao;
|
@Autowired
|
private DeviceService deviceService;
|
//机器界面 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.GET,value="/manualOperation")
|
public String manualOperation(Model model) {
|
model.addAttribute("MachineCount",1);
|
return "configuration/manualOperation";
|
}
|
|
//机器界面 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.GET,value="/taskInfo")
|
public String taskInfo(Model model) {
|
return "configuration/taskInfos";
|
}
|
//机器界面 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.GET,value="/minche")
|
public String minche(Model model) {
|
String MachineOutTaskhtmls="";
|
List<Machine> Machines=machineDao.findAll();
|
Telecoms telecoms=telecomsDao.findOne(10L);
|
Telecoms telecomsShel=telecomsDao.findOne(1L);
|
String outTasksTasks="";
|
String InfoStats="您的软件将于"+telecomsShel.getInterprets()+" 过期,请与供应商联系";
|
if(telecomsShel.getInterprets().equals("")){
|
InfoStats="";
|
}
|
for(Machine machine:Machines){
|
String machineid=machine.getId().toString();
|
String machineName=machine.getNumber().toString();
|
String OutTasksid="";
|
String OutTasksWorkStatus="等待中";
|
String OutTasksStockName="";
|
String OutTasksMesStatus="";
|
String OutTasksMachineStatus="";
|
String OutTasksInfoContent="";
|
String OutTasksCount="0";
|
String MachineStatus="";
|
int warning=0;
|
String FlagButton="";
|
if(machine.getFlag().equals("启用")){
|
FlagButton="<button class=\"btn\" style=\"margin-left:10px;\" onclick=\"EnableDisablesReset('启用','"+machine.getId()+"')\">启用</button>";
|
}else{
|
FlagButton="<button class=\"btn\" style=\"background-color: #fd5f56;margin-left:10px;\" onclick=\"EnableDisablesReset('禁用','"+machine.getId()+"')\">禁用</button>";
|
}
|
if("shelf".equals(machine.getTypeId().getTypesName())){
|
try {
|
String Texts[]=deviceService.ResultTexts(machine.getTelecoms().getMessage());
|
if("0001".equals(Texts[0])&&"0000".equals(Texts[10])){
|
MachineStatus="请求任务";
|
}else if("0001".equals(Texts[0])&&"0001".equals(Texts[10])){
|
MachineStatus="收到任务";
|
}else if("0001".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求完成任务";
|
}else if("0001".equals(Texts[5])&&"0001".equals(Texts[20])){
|
MachineStatus="收到完成任务";
|
}else if("0002".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求完成失败";
|
}else if("0002".equals(Texts[5])&&"0002".equals(Texts[20])){
|
MachineStatus="收到完成失败";
|
}else if("0003".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求手动完成";
|
}else if("0003".equals(Texts[5])&&"0003".equals(Texts[20])){
|
MachineStatus="收到手动完成";
|
}
|
warning=Integer.parseInt(Texts[31]);
|
//warning=texs==0?"":" ("+texs+")";
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
List<OutTasks> OutTasksTasking=outTasksDao.FindMachineStatusWorkStatus("等待开始","等待退回库区","正在工作","正常");
|
List<OutTasks> OutTasksAll=outTasksDao.FindMachineStatusWorkStatus("等待开始","等待退回库区","等待中","正常");
|
|
for(OutTasks OutTasks:OutTasksTasking){
|
outTasksTasks+="<tr style='background-color: #a3f4ab;'>"+
|
"<td>"+OutTasks.getTaskId()+"</td>"+
|
"<td>"+OutTasks.getStockName()+"</td>"+
|
"<td>"+OutTasks.getDestination()+"</td>"+
|
"<td>"+OutTasks.getRackNumber()+"</td>"+
|
"<td>"+(OutTasks.getPlanLoadNum1()+OutTasks.getPlanLoadNum2()+OutTasks.getPlanLoadNum3())+"</td>"+
|
"<td>"+OutTasks.getStockNum()+"</td>"+
|
"<td>"+(OutTasks.getMachineStatus().equals("等待开始")?"出库":"退库")+"</td>"+
|
"</tr>";
|
OutTasksid=OutTasks.getId().toString();
|
OutTasksWorkStatus=OutTasks.getWorkStatus().toString();
|
OutTasksStockName=OutTasks.getStockName().toString();
|
OutTasksMesStatus=OutTasks.getMesStatus().toString();
|
OutTasksMachineStatus=OutTasks.getMachineStatus().toString();
|
OutTasksInfoContent=OutTasks.getInfoContent().toString();
|
break;
|
}
|
for(OutTasks OutTasks:OutTasksAll){
|
outTasksTasks+="<tr>"+
|
"<td>"+OutTasks.getTaskId()+"</td>"+
|
"<td>"+OutTasks.getStockName()+"</td>"+
|
"<td>"+OutTasks.getDestination()+"</td>"+
|
"<td>"+OutTasks.getRackNumber()+"</td>"+
|
"<td>"+(OutTasks.getPlanLoadNum1()+OutTasks.getPlanLoadNum2()+OutTasks.getPlanLoadNum3())+"</td>"+
|
"<td>"+OutTasks.getStockNum()+"</td>"+
|
"<td>"+(OutTasks.getMachineStatus().equals("等待开始")?"出库":"退库")+"</td>"+
|
"</tr>";
|
}
|
OutTasksCount=(OutTasksAll.isEmpty()?"0":OutTasksAll.size()).toString();
|
}else if("load".equals(machine.getTypeId().getTypesName())){
|
try {
|
String Texts[]=deviceService.ResultTexts(machine.getTelecoms().getMessage());
|
if("0001".equals(Texts[0])&&"0000".equals(Texts[10])){
|
MachineStatus="请求任务";
|
}else if("0001".equals(Texts[0])&&"0001".equals(Texts[10])){
|
MachineStatus="收到任务";
|
}else if("0001".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求完成任务";
|
}else if("0001".equals(Texts[5])&&"0001".equals(Texts[20])){
|
MachineStatus="收到完成任务";
|
}else if("0002".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求完成失败";
|
}else if("0002".equals(Texts[5])&&"0002".equals(Texts[20])){
|
MachineStatus="收到完成失败";
|
}else if("0003".equals(Texts[5])&&"0000".equals(Texts[20])){
|
MachineStatus="请求完成破损";
|
}else if("0003".equals(Texts[5])&&"0003".equals(Texts[20])){
|
MachineStatus="收到完成破损";
|
}
|
warning=Integer.parseInt(Texts[33]);
|
//warning=(texs==0?"":" ("+texs+")");
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
OutTasksWorkStatus=machine.getWorkState().toString();
|
List<LoadRack> LoadRackTasking=loadRackDao.findLoadMachineTaskWorkStatus(machine.getId(),"正在工作");
|
for(LoadRack loadRack:LoadRackTasking){
|
OutTasksid=loadRack.getOutTasks().getId().toString();
|
OutTasksStockName=loadRack.getOutTasks().getStockName().toString();
|
OutTasksMesStatus=loadRack.getOutTasks().getMesStatus().toString();
|
OutTasksMachineStatus=loadRack.getOutTasks().getMachineStatus().toString();
|
OutTasksInfoContent=loadRack.getOutTasks().getInfoContent().toString();
|
int LoadNum1=loadRack.getOutTasks().getPlanLoadNum1();
|
int LoadNum2=loadRack.getOutTasks().getPlanLoadNum2();
|
int LoadNum3=loadRack.getOutTasks().getPlanLoadNum3();
|
int LoadeNum=loadRack.getOutTasks().getLoadeNum();
|
int PosunCount=loadRack.getOutTasks().getPosunCount();
|
int StockNum=loadRack.getOutTasks().getStockNum();
|
int Result1=LoadNum1+LoadNum2+LoadNum3-LoadeNum;//还需要的片数
|
int Result2=StockNum-LoadeNum-PosunCount;//还剩下片数
|
OutTasksCount=(Result2>Result1?Result1:Result2)+"";
|
break;
|
}
|
|
}else if("secondrelay".equals(machine.getTypeId().getTypesName())){
|
try {
|
String Texts[]=deviceService.ResultTexts(machine.getTelecoms().getMessage());
|
String Disposes[]=machine.getKeyLog().split("-");
|
String Contents[]=Disposes[0].split(",");//实际位置
|
int PLC=Integer.valueOf(Contents[0]);
|
int MES=Integer.valueOf(Contents[1]);
|
if("0000".equals(Texts[PLC])&&"0000".equals(Texts[MES])){
|
MachineStatus="请求任务";
|
}else if("0000".equals(Texts[PLC])&&"0001".equals(Texts[MES])){
|
MachineStatus="收到任务1 <<";
|
}else if("0001".equals(Texts[PLC])&&"0001".equals(Texts[MES])){
|
MachineStatus="请求完成1 <<";
|
}else if("0000".equals(Texts[PLC])&&"0002".equals(Texts[MES])){
|
MachineStatus="收到任务1 >>";
|
}else if("0002".equals(Texts[PLC])&&"0002".equals(Texts[MES])){
|
MachineStatus="请求完成1 >>";
|
}else if("0000".equals(Texts[PLC])&&"0003".equals(Texts[MES])){
|
MachineStatus="收到任务2 <<";
|
}else if("0003".equals(Texts[PLC])&&"0003".equals(Texts[MES])){
|
MachineStatus="请求完成2 <<";
|
}else if("0000".equals(Texts[PLC])&&"0004".equals(Texts[MES])){
|
MachineStatus="收到任务2 >>";
|
}else if("0004".equals(Texts[PLC])&&"0004".equals(Texts[MES])){
|
MachineStatus="请求完成2 >>";
|
}
|
warning=Integer.parseInt(Texts[26]);
|
//warning=(texs==0?"":" ("+texs+")");
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
List<LoadRack> LoadRackTasking=loadRackDao.findSecondRelayTasking(machine.getId());
|
List<LoadRack> LoadRackAll=loadRackDao.findSecondRelayTasksa(machine.getId());
|
for(LoadRack loadRack:LoadRackTasking){
|
OutTasksid=loadRack.getOutTasks().getId().toString();
|
OutTasksWorkStatus=loadRack.getOutTasks().getWorkStatus().toString();
|
OutTasksStockName=loadRack.getOutTasks().getStockName().toString();
|
OutTasksMesStatus=loadRack.getOutTasks().getMesStatus().toString();
|
OutTasksMachineStatus=loadRack.getOutTasks().getMachineStatus().toString();
|
OutTasksInfoContent=loadRack.getOutTasks().getInfoContent().toString();
|
break;
|
}
|
OutTasksCount=(LoadRackAll.isEmpty()?"0":LoadRackAll.size()).toString();
|
}
|
MachineOutTaskhtmls+="<tr>";
|
MachineOutTaskhtmls+="<td>"+ machineid +"</td>";
|
MachineOutTaskhtmls+="<td>"+ machineName +"</td>";
|
MachineOutTaskhtmls+="<td>"+ OutTasksid +"</td>";
|
MachineOutTaskhtmls+="<td>"+ OutTasksStockName +"</td>";
|
if("离线".equals(telecoms.getConnState())){
|
MachineOutTaskhtmls+="<td style=\"background-color:red;\">"+ OutTasksMesStatus +"</td>";
|
}else{
|
MachineOutTaskhtmls+="<td>"+ OutTasksMesStatus +"</td>";
|
}
|
MachineOutTaskhtmls+="<td>"+ OutTasksMachineStatus +"</td>";
|
MachineOutTaskhtmls+="<td>"+ OutTasksWorkStatus +"</td>";
|
if(warning==0){
|
MachineOutTaskhtmls+="<td>"+ MachineStatus+ "</td>";
|
}else{
|
MachineOutTaskhtmls+="<td style=\"background-color:red\">"+ MachineStatus+ "</td>";
|
}
|
MachineOutTaskhtmls+="<td>"+ OutTasksCount +"</td>";
|
MachineOutTaskhtmls+="<td>"+ OutTasksInfoContent +"</td>";
|
MachineOutTaskhtmls+="<td>"
|
+ "<button class=\"btn\" onclick=\"EnableDisablesReset('重新下发','"+machine.getId()+"')\">重新下发</button>"
|
+ FlagButton
|
+ "</td>";
|
MachineOutTaskhtmls+="</tr>";
|
}
|
model.addAttribute("InfoStats",InfoStats);
|
model.addAttribute("outTasksTasks",outTasksTasks);
|
model.addAttribute("MachineOutTaskhtmls",MachineOutTaskhtmls);
|
model.addAttribute("MachineCount",Machines.size());
|
return "configuration/minche";
|
}
|
|
//*启用Enable */ /*禁用Disables */ /*重置Reset */
|
@RequestMapping(method=RequestMethod.POST, value="/EnableDisablesReset")
|
@ResponseBody
|
public String EnableDisablesReset(HttpServletRequest request,HttpServletResponse response){
|
try {
|
String MachineId=request.getParameter("MachineId");
|
String flag=request.getParameter("flag");
|
System.out.println(MachineId+":"+flag);
|
Machine machine=machineDao.findOne(Long.valueOf(MachineId));
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
|
deviceService.WriteFile("D:","机器",df.format(new Date())+" "+machine.getNumber()+":"+flag,true);
|
if("重新下发".equals(flag)){
|
if("shelf".equals(machine.getTypeId().getTypesName())){
|
List<OutTasks> OutTasksTasking=outTasksDao.FindMachineStatusWorkStatus("等待开始","等待退回库区","正在工作","正常");
|
for(OutTasks OutTasks:OutTasksTasking){
|
OutTasks.setWorkStatus("等待中");
|
outTasksDao.save(OutTasks);
|
return "成功!";
|
}
|
}else if("load".equals(machine.getTypeId().getTypesName())){
|
List<LoadRack> LoadRackTasking=loadRackDao.findLoadMachineTaskWorkStatus(machine.getId(),"正在工作");
|
for(LoadRack loadRack:LoadRackTasking){
|
if(loadRack.getMachineLoad().getWorkState().equals("正在工作")){
|
loadRack.getMachineLoad().setWorkState("等待中");
|
loadRackDao.save(loadRack);
|
return "成功!";
|
}
|
return "无需重新下发任务!";
|
}
|
machine.setWorkState("等待中");
|
machineDao.save(machine);
|
}else if("secondrelay".equals(machine.getTypeId().getTypesName())){
|
List<LoadRack> LoadRackTasking=loadRackDao.findSecondRelayTasking(machine.getId());
|
for(LoadRack loadRack:LoadRackTasking){
|
loadRack.getOutTasks().setWorkStatus("等待中");
|
loadRackDao.save(loadRack);
|
return "成功!";
|
}
|
}
|
return "无可重发任务!";
|
}else if("禁用".equals(flag)){
|
machine.setFlag("启用");
|
machineDao.save(machine);
|
return "成功!";
|
}else if("启用".equals(flag)){
|
machine.setFlag("禁用");
|
machineDao.save(machine);
|
return "成功!";
|
}
|
return "无效操作!";
|
} catch (Exception e) {
|
// TODO: handle exception
|
}
|
return "无效操作!";
|
}
|
// 手动页面 未完成的仓储任务
|
@RequestMapping(method = RequestMethod.POST, value = "/selectOutTasks")
|
@ResponseBody
|
public List<OutTasks> selectOutTasks(HttpServletRequest request, Model model) {
|
List<OutTasks> list=outTasksDao.findWaitTask();
|
return list;
|
}
|
// 手动页面 添加手动任务
|
@RequestMapping(method = RequestMethod.POST, value = "/addTask")
|
public String addTask(HttpServletRequest request, Model model) {
|
String start=request.getParameter("start");
|
String end=request.getParameter("end");
|
String stock=request.getParameter("stock");
|
OutTasks OutTasksadd=new OutTasks();
|
OutTasksadd.setId(2L);
|
OutTasksadd.setTaskId("1");
|
OutTasksadd.setTaskType("手动任务");
|
OutTasksadd.setMesStatus("");
|
OutTasksadd.setMachineStatus("");
|
OutTasksadd.setWorkStatus("等待中");
|
OutTasksadd.setPkgId(1);
|
OutTasksadd.setStockName("1");
|
OutTasksadd.setDestination("上片台1");
|
OutTasksadd.setPlanLoadNum1(0);
|
OutTasksadd.setPlanLoadNum2(0);
|
OutTasksadd.setPlanLoadNum3(0);
|
OutTasksadd.setStockNum(0);
|
OutTasksadd.setLoadeNum(0);
|
OutTasksadd.setNewPkgId(1);
|
OutTasksadd.setNewPkgNum(0);
|
OutTasksadd.setBb(0);
|
OutTasksadd.setHh(0);
|
OutTasksadd.setColor("");
|
OutTasksadd.setThickness(0);
|
OutTasksadd.setPkgNum(0);
|
OutTasksadd.setStockThickness(0);
|
OutTasksadd.setTaskIds(1L);
|
OutTasksadd.setPosunCount(0);
|
OutTasksadd.setRackNumber("");
|
OutTasksadd.setInfoContent("");
|
OutTasksadd.setStartTime(new Date());
|
OutTasksadd.setFinshTime(new Date());
|
OutTasksadd.setFlag("正常");
|
OutTasksadd.setLoadTime(new Date());
|
OutTasksadd.setPriority(900);
|
outTasksDao.save(OutTasksadd);
|
return "redirect:/Config/manualOperation";
|
}
|
// 手动页面 任务操作:【取消/完成】
|
@RequestMapping(method = RequestMethod.POST, value = "/updateTask")
|
public String updateTask(HttpServletRequest request, Model model) {
|
String taskid=request.getParameter("taskid");
|
String Controls=request.getParameter("Controls");
|
// OutTasks OutTasks=outTasksDao.findOne(Long.valueOf(taskid));
|
// OutTasks.setMesStatus("");
|
// OutTasks.setMachineStatus("");
|
// OutTasks.setWorkStatus("");
|
// outTasksDao.save(OutTasks);
|
return "redirect:/Config/manualOperation";
|
}
|
//大屏展示
|
@RequestMapping(method = RequestMethod.GET,value="/infomathion")
|
public String infomathion(Model model) {
|
return "configuration/infomathion";
|
}
|
// 机器界面 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.POST, value = "/addminche")
|
public String addminche(HttpServletRequest request, Model model) {
|
return "redirect:/Config/minche";
|
}
|
// 机器逻辑配置添加 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.POST, value = "/addconfig")
|
public String addconfig(HttpServletRequest request, Model model) {
|
|
return "redirect:/Config/config";
|
}
|
//机器逻辑配置
|
@RequestMapping(method = RequestMethod.GET,value="/config")
|
public String config(Model model) {
|
String Machinehtml="";
|
String MachineDisposeshtml="";
|
model.addAttribute("Machinehtml",Machinehtml);
|
model.addAttribute("MachineDisposeshtml",MachineDisposeshtml);
|
return "configuration/config";
|
}
|
|
// 机器添加字
|
@RequestMapping(method = RequestMethod.GET, value = "/addFont")
|
public String addFont(Model model) {
|
String Machinehtml = "";
|
String MachineFontshtml = "";
|
model.addAttribute("Machinehtml", Machinehtml);
|
model.addAttribute("MachineFontshtml", MachineFontshtml);
|
return "configuration/addFont";
|
}
|
|
// 机器界面 (可添加,修改,删除)
|
@RequestMapping(method = RequestMethod.GET, value = "/minchesend")
|
public String minchesend(Model model) {
|
String Minchesendhtml = "";
|
|
model.addAttribute("Minchesendhtml", Minchesendhtml);
|
return "configuration/minchesend";
|
}
|
}
|
|