8.26-8.29售后维护升级
1.增加逻辑:料架退回二次接力后,当仓储车准备送回库内时先查询此料架是否有其他线需要使用,有则直接从当前上片位送至下一上片位(省去中间退库,再从库内送至下一上片位的动作)
2.增加逻辑:当派尔开工下发任务料架顺序为,2,4,2类型时,上片机吸完2号架后退回二次接力但不能退库,等待4号架吸片完成退回二次接力后,2号架再从二次接力推进上片位然后亮灯(此时料架任务自动切换成下第二个2号架任务)
3.增加页面弹窗:仓储待执行任务
4.增加汇报逻辑:除原先仓储完成后汇报派尔料架已回库外,另外增加检索只要北玻系统完成但派尔未确认的都进行汇报直至派尔确认
5.修改页面查询:已完成任务仅查询一百条
6.定期删除完成数据
18个文件已修改
12个文件已添加
4473 ■■■■■ 已修改文件
江苏皓晶项目/Haojing/.project 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/entity/OutTasks.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/repository/LoadRackDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/repository/OutTasksDao.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/service/TelecomsService/TelecomsService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/service/device/DeviceService.java 282 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/service/message/MessageProcessor.java 242 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/service/task/LoadTaskService.java 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/web/alltasks/loadTaskController.java 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/web/alltasks/tasksController.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/web/configuration/ConfigController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/java/com/northglass/web/manage/CutManageController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/layouts/left.jsp 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/alltasks/tasks2.jsp 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/configuration/manualOperation.jsp 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/configuration/minche.jsp 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/configuration/taskInfos.jsp 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/loadtask/loadMachine.jsp 391 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/src/main/webapp/WEB-INF/views/loadtask/loadTask.jsp 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/layouts/left.jsp 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/alltasks/tasks2.jsp 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/manualOperation.jsp 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/minche.jsp 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/taskInfos.jsp 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/loadtask/loadMachine.jsp 391 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/loadtask/loadTask.jsp 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/m2e-wtp/web-resources/META-INF/maven/com.northglass/gmms2/pom.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/maven-archiver/pom.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
江苏皓晶项目/Haojing/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
½­ËÕ𩾧ÏîÄ¿/Haojing/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>Haojing</name>
    <name>Haojing7-20</name>
    <comment></comment>
    <projects>
    </projects>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/entity/OutTasks.java
@@ -7,6 +7,7 @@
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name="gmms_out_tasks")
@@ -40,6 +41,7 @@
    private String infoContent;
    private String rackNumber;
    private Long taskIds;
    private int priority;
    public OutTasks() {
        
    }   
@@ -87,6 +89,12 @@
        this.thickness=thickness;
        this.pkgNum=pkgNum;
        this.stockThickness=stockThickness;
    }
    public int getPriority() {
        return priority;
    }
    public void setPriority(int priority) {
        this.priority = priority;
    }
    public Long getTaskIds() {
        return taskIds;
@@ -270,6 +278,16 @@
    public void setStockThickness(double stockThickness) {
        this.stockThickness = stockThickness;
    }
    public void Finsh() {
        this.infoContent="";
        this.workStatus="";
        this.machineStatus="任务完成";
    }
    /*@Transient
    public void LoadFinsh() {
        this.stockThickness = stockThickness;
    }*/
}
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/repository/LoadRackDao.java
@@ -9,6 +9,9 @@
public interface LoadRackDao extends JpaRepository<LoadRack, Long>{
    
    @Query("select t from LoadRack t where t.machineLoad!=null and t.rackName=?1")
    public List<LoadRack> findRackName(String rackName);
    //查找  ä¸Šç‰‡å·¥ä½
    @Query("select t from LoadRack t where t.machineLoad!=null")
    public List<LoadRack> findLoads();
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/repository/OutTasksDao.java
@@ -3,10 +3,21 @@
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import com.northglass.entity.OutTasks;
public interface OutTasksDao extends JpaRepository<OutTasks, Long>{
    //查询  æœ€ç»ˆä»»åŠ¡çŠ¶æ€
    @Query("select t from OutTasks t order by t.taskIds desc")
    public List<OutTasks> FindAll100();
    @Query("select t from OutTasks t where t.mesStatus=?1 and t.destination=?2 order by t.taskIds asc")
    public List<OutTasks> FindTaskLine(String mesStatus,String destination);
    @Query("select t from OutTasks t where t.mesStatus!=?1 and t.destination=?2 order by t.taskIds asc")
    public List<OutTasks> FindNotTaskLine(String mesStatus,String destination);
    
    //查询  æœ€ç»ˆä»»åŠ¡çŠ¶æ€
    @Query("select t from OutTasks t where t.mesStatus=?1 order by t.finshTime desc")
@@ -57,11 +68,15 @@
    public List<OutTasks> FindOutTasksTaskIds(String taskid);
    
    //查询 machineStatus, workStatus , flag      æœºå™¨ï¼Œå·¥ä½œçŠ¶æ€ï¼Œä»»åŠ¡çŠ¶æ€
    @Query("select t from OutTasks t where t.machineStatus=?1 and t.workStatus=?2 and t.flag=?3 order by t.taskIds asc")
    @Query("select t from OutTasks t where t.machineStatus=?1 and t.workStatus=?2 and t.flag=?3 order by t.priority desc,t.taskIds asc")
    public List<OutTasks> FindMachineStatusWorkStatus(String machineStatus,String workStatus,String flag);
    
    //查询 æœªå®Œæˆä»»åŠ¡
    @Query("select t from OutTasks t where t.machineStatus!='任务完成' and t.flag='正常' order by t.priority desc,t.taskIds asc")
    public List<OutTasks> findWaitTask();
    //查询 machineStatus1,machineStatus2 workStatus
    @Query("select t from OutTasks t where (t.machineStatus=?1 or t.machineStatus=?2) and t.workStatus=?3 and t.flag=?4")
    @Query("select t from OutTasks t where (t.machineStatus=?1 or t.machineStatus=?2) and t.workStatus=?3 and t.flag=?4 order by t.taskIds asc")
    public List<OutTasks> FindMachineStatusWorkStatus(String machineStatus1,String machineStatus2,String workStatus,String flag);
    
    
@@ -69,4 +84,12 @@
    @Query("select t from OutTasks t where t.taskType=?1 and t.machineStatus=?2 and t.workStatus=?3")
    public List<OutTasks> FindTaskTypeTasking(String taskType,String machineStatus,String workStatus);
    
    //查询此料架  æœªå¼€å§‹çš„任务
    @Query("select t from OutTasks t where t.stockName=?1 and t.machineStatus='等待开始' and t.workStatus='等待中' order by t.taskIds asc")
    public List<OutTasks> FindStockName(String stockName);
    //查询此目的地的 æœªå®Œæˆçš„任务
    @Query("select t from OutTasks t where t.destination=?1 and t.machineStatus='等待开始' and t.workStatus='等待中' order by t.taskIds asc")
    public List<OutTasks> FindDestination(String destination);
}
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/service/TelecomsService/TelecomsService.java
@@ -53,6 +53,7 @@
    private MessageProcessor processor;
    
    private static final Logger LOGGER = LoggerFactory.getLogger(TelecomsService.class);
    public static JSONObject jsonObj = new JSONObject();
    
    public void connect(Telecoms telecoms) {
        try {
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/service/device/DeviceService.java
@@ -14,6 +14,9 @@
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;
@@ -64,24 +67,28 @@
    
    @Autowired
    private OutTasksDao outTasksDao;
    public void CeshiMainche() {
//    public static Map<String,OutTasks> jsonArrayStatic;
    public void testMainche() {
        //List<Machine> Machine=machineDao.SelectMinchineFlag("1");
        Telecoms telecoms=telecomsDao.findOne(10L);
        String str="000000000000000000";
        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==2||i==12){
                str+="0002";
//            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){
@@ -91,19 +98,30 @@
        }        
    }
    public void connect() {
        //CeshiMainche();
    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 {
        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("离线");
@@ -126,70 +144,90 @@
                }
                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 OutTasks=new OutTasks();
                        OutTasks.setTaskId(jsonArray.getJSONObject(j).get("TaskId").toString());
                        OutTasks.setTaskType(jsonArray.getJSONObject(j).get("TaskTypeName").toString());
                        OutTasks.setMesStatus("null".equals(jsonArray.getJSONObject(j).get("MESStatusName").toString())?"0":jsonArray.getJSONObject(j).get("MESStatusName").toString());
                        OutTasks.setMachineStatus("null".equals(jsonArray.getJSONObject(j).get("MachineStatusName").toString())?"0":jsonArray.getJSONObject(j).get("MachineStatusName").toString());
                        OutTasks.setWorkStatus("等待中");
                        OutTasks.setPkgId(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PkgId").toString())?"0":jsonArray.getJSONObject(j).get("PkgId").toString()));
                        OutTasks.setStockName("null".equals(jsonArray.getJSONObject(j).get("StockName").toString())?"0":jsonArray.getJSONObject(j).get("StockName").toString());
                        OutTasks.setDestination("null".equals(jsonArray.getJSONObject(j).get("Destination").toString())?"0":jsonArray.getJSONObject(j).get("Destination").toString());
                        OutTasks.setPlanLoadNum1(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum1").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum1").toString()));
                        OutTasks.setPlanLoadNum2(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum2").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum2").toString()));
                        OutTasks.setPlanLoadNum3(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PlanLoadNum3").toString())?"0":jsonArray.getJSONObject(j).get("PlanLoadNum3").toString()));
                        OutTasks.setStockNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("StockNum").toString())?"0":jsonArray.getJSONObject(j).get("StockNum").toString()));
                        OutTasks.setLoadeNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("LoadedNum").toString())?"0":jsonArray.getJSONObject(j).get("LoadedNum").toString()));
                        OutTasks.setNewPkgId(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("NewPkgId").toString())?"0":jsonArray.getJSONObject(j).get("NewPkgId").toString()));
                        OutTasks.setNewPkgNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("NewPkgNum").toString())?"0":jsonArray.getJSONObject(j).get("NewPkgNum").toString()));
                        OutTasks.setBb(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("BB").toString())?"0":jsonArray.getJSONObject(j).get("BB").toString()));
                        OutTasks.setHh(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("HH").toString())?"0":jsonArray.getJSONObject(j).get("HH").toString()));
                        OutTasks.setColor("null".equals(jsonArray.getJSONObject(j).get("Color").toString())?"0":jsonArray.getJSONObject(j).get("Color").toString());
                        OutTasks.setThickness(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("Thickness").toString())?"0":jsonArray.getJSONObject(j).get("Thickness").toString()));
                        OutTasks.setPkgNum(Integer.valueOf("null".equals(jsonArray.getJSONObject(j).get("PkgNum").toString())?"0":jsonArray.getJSONObject(j).get("PkgNum").toString()));
                        OutTasks.setStockThickness(Double.valueOf("null".equals(jsonArray.getJSONObject(j).get("StockThickness").toString())?"0":jsonArray.getJSONObject(j).get("StockThickness").toString()));
                        OutTasks.setTaskIds(Long.valueOf(jsonArray.getJSONObject(j).get("TaskId").toString()));
                        OutTasks.setPosunCount(0);
                        OutTasks.setRackNumber("");
                        OutTasks.setInfoContent("");
                        OutTasks.setStartTime(new Date());
                        OutTasks.setFinshTime(new Date());
                        OutTasks.setFlag("正常");
                        OutTasks.setLoadTime(new Date());
                        outTasksDao.save(OutTasks);
                        System.out.println("领取任务:"+jsonArray.getJSONObject(j).get("TaskId").toString());
                        //直接添加
                        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))
                        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()))
                        {
                            List list=new ArrayList<>();
                            String s[]=Chexiao.split(",");
                            for(String item:s){
                                list.add(item);
                            }
                            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    
@@ -205,7 +243,8 @@
                                            break;
                                        }                        
                                    }                                
                                }
                                }
                            }
                        }
                        else if("上片任务已开始".equals(OutTask.getMesStatus())&&
@@ -236,8 +275,8 @@
                        }
                        else if("上片完成可退回".equals(OutTask.getMesStatus())&&
                                "上片完成请求退回".equals(OutTask.getMachineStatus()))
                        {
                            //上片派尔确认退回   //验证有没有补片任务
                        {
                            //上片派尔确认退回   //验证有没有补片任务
                            if(isPosunTaskLoad(OutTask,TasksStr)){
                                //有补片任务,暂停机器等待补片
                                List<Machine> machines=machineDao.FindNumber(OutTask.getDestination());
@@ -252,34 +291,47 @@
                                    outTasksDao.save(OutTask);
                                    break;
                                }
                            }else{
                            }else{
                                //  æ­¤çº¿è·¯ä¸‹ä¸€ä»»åŠ¡æ˜¯å¦è¿˜æ˜¯æ­¤æ–™æž¶     æ­¤çº¿è·¯æœªå®Œæˆçš„任务:OutTasksSameStokess
                                List<OutTasks> OutTasksSameStokess=outTasksDao.FindDestinationNoFinshTaskIdOderbyASC(OutTask.getDestination(),OutTask.getTaskId(),"任务完成");
                                for(OutTasks outTask:OutTasksSameStokess){
                                if(!OutTasksSameStokess.isEmpty()){
                                    OutTasks outTask=OutTasksSameStokess.get(0);
                                    if(outTask.getStockName().equals(OutTask.getStockName())){
                                       outTask.setMachineStatus("铁架已到上片位");
                                       outTask.setInfoContent("");
                                       outTasksDao.save(OutTask);
                                       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{
                                        break;
                                    }
                                }
                                //没有补片任务,查看有没有此料架除此任务   å·²åˆ°ä½çš„任务
                                List<OutTasks> OutTasksSameStoke=outTasksDao.FindDestinationNoTaskIdstockName(OutTask.getDestination(),OutTask.getTaskId(),"铁架已到上片位",OutTask.getStockName());
                                if(!OutTasksSameStoke.isEmpty()){
                                    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(OutTasksSameStoke.get(0));
                                        loadRack.getMachineLoad().setWorkState("等待中");
                                        loadRackDao.save(loadRack);
                                    }else{
                                        System.out.println(OutTask.getId()+":1");
                                        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());                                            
@@ -291,8 +343,9 @@
                                        loadRack.getOutTasks().setWorkStatus("等待中");
                                        loadRack.getMachineLoad().setWorkState("等待中");
                                        loadRackDao.save(loadRack);
                                        System.out.println("此任务为当前线路最后一个任务:"+OutTask.getId()+"----4");
                                    }else{
                                        System.out.println(OutTask.getId()+":2");
                                        System.out.println("此料架不存在某工位:"+OutTask.getId());
                                    }
                                }
                                            
@@ -302,41 +355,35 @@
                                "铁架已到吊装位".equals(OutTask.getMachineStatus()))
                        {
                            
                            boolean abc=false;
                            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())){
                                    abc=true;
                                    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())){
                                    abc=true;
                                    isExecute=true;
                                    System.out.println("任务id:["+OutTask.getTaskId()+"]派尔吊装撤销任务退回!");
                                }                        
                            }
                            if(abc){
                            if(isExecute){
                                OutTask.setMesStatus("派尔确认可退回");
                                OutTask.setMachineStatus("等待退回库区");
                                outTasksDao.save(OutTask);
                            }                                
                        }
                        else if("派尔确认可退回".equals(OutTask.getMesStatus())&&
                                "任务完成".equals(OutTask.getMachineStatus()))
                        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
                            List list=new ArrayList<>();
                            String s[]=Chexiao.split(",");
                            for(String item:s){
                                list.add(item);
                            }
                            if(list.contains(OutTask.getTaskId())){
                                //此任务已撤销
                                boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认任务完成","汇报派尔退库完成失败!","9");
                                System.out.println("任务id:["+OutTask.getTaskId()+"]汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
                            }else{
                                boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认任务完成","汇报派尔退库完成失败!","5");
                                System.out.println("任务id:["+OutTask.getTaskId()+"]汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
                            }
                            //任务完成汇报派尔   é€€å›žåº“区-5
                            boolean isFinsh=PaiFinsh(telecoms,OutTask,"派尔确认任务完成","汇报派尔退库完成失败!","5");
                            System.out.println("任务id:["+OutTask.getTaskId()+"]汇报任务退回在线库:"+(isFinsh==true?"成功!":"失败!"));
                        }
                    }
                } catch (Exception e) {
@@ -444,8 +491,31 @@
                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 {
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/service/message/MessageProcessor.java
@@ -58,9 +58,44 @@
    private TelecomsDao telecomsDao;
    @Autowired
    private MachineDao machineDao;
    public String generateReturnMessage(String sendMessageHex, Telecoms telecoms) {//1101-1114
    //日志打印
    public void printLogs(String... str) {
        try {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
            String reuslt="";
            for(String item:str){
                reuslt+="  ,  "+item;
            }
            reuslt=df.format(new Date())+":  "+reuslt;
            System.out.println(reuslt);
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("记录异常"+str);
        }
        
    }
    //时间验证
    public boolean verifyTime(Telecoms telecoms) {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if(!telecoms.getInterprets().isEmpty()){
                Date newdate = sdf.parse(telecoms.getInterprets());
                Date newdate2 = sdf.parse("2021-12-20");
                Date nowdate = sdf.parse(sdf.format(new Date()));
                if(newdate.compareTo(nowdate)==-1||nowdate.compareTo(newdate2)==-1){
                    printLogs("软件已过期!");
                    return false;
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            printLogs("verifyTime");
            return false;
        }
        return true;
    }
    public String generateReturnMessage(String sendMessageHex, Telecoms telecoms) {//1101-1114
        //输出交互数据
        try {            
            //LOGGER.debug(Logs);
@@ -79,14 +114,9 @@
                }
            }else if (sendMessageHex.length() == telecom.getFontSize()*4+18) {    
                try {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    Date newdate = sdf.parse(telecoms.getInterprets());
                    Date newdate2 = sdf.parse("2021-12-20");
                    Date nowdate = sdf.parse(sdf.format(new Date()));
                    if(newdate.compareTo(nowdate)==-1||nowdate.compareTo(newdate2)==-1){
                        System.out.println("软件已过期!");
                    if(!verifyTime(telecom)){
                        return "";
                    }
                    }
                    if(!"0001".equals(sendMessageHex.substring(0, 4))){
                        //System.out.println("无效信息");
                        try {
@@ -103,6 +133,7 @@
                    telecomsDao.save(telecom);
                    String Texts[]=ResultTexts(sendMessageHex);    
                    String TextsByte[]=ResultTextsByte(sendMessageHex);//读取内容  ä½ æ ¼å¼
                    //拿到此PLC下的所有机器
                    List<Machine> Machines=machineDao.FindTelecomsId(telecom.getId());
                    for(Machine machine:Machines){
@@ -118,16 +149,17 @@
                    }                                            
                } catch (Exception e) {
                    // TODO: handle exception
                    System.out.println("异常数据!检查!!!"+telecoms.getId());
                    printLogs("通讯数据异常,检查!!!"+telecoms.getId()+sendMessageHex);
                    //System.out.println("异常数据!检查!!!"+telecoms.getId());
                }            
            }
            return "";
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("异常!检查网络!"+telecoms.getId());
            return"";
            // TODO: handle exception
            printLogs("检查网络,检查!!!"+telecoms.getId()+sendMessageHex);
            //System.out.println("异常!检查网络!"+telecoms.getId());
            return "";
        }
    }
    public String Shelf(Machine machine,String sendMessageHex){
        try {            
@@ -144,7 +176,7 @@
                List<MachineDispose> machineDisposes=machineDisposeDao.findMachineDisposeMachineType(machine.getTypeId().getId(),Dispose,values);
                if(machineDisposes.size()==1){                    
                    MachineDispose machineDispose=machineDisposes.get(0);
                    if("任务发送".equals(machineDispose.getExeLogic())){
                    if("任务发送".equals(machineDispose.getExeLogic())){
                         return ShelfSend(machine);
                    }else if("发送清除".equals(machineDispose.getExeLogic())){
                        String date = "0000" + "0000" + "0000" + "0000"+"0000";
@@ -160,7 +192,7 @@
                    }
                    return "";
                }else if(machineDisposes.size()>=1){
                    System.out.println("多逻辑匹配");
                    printLogs("多逻辑匹配,检查!!!"+machine.getId()+sendMessageHex);
                    return "";
                }                
            }            
@@ -204,48 +236,57 @@
                            outTasksDao.save(OutTask);
                            continue;
                        }                    
                        List<LoadRack> LoadRackss= loadRackDao.findLoadRacksTasksRacks(OutTask.getStockName());
                        List<LoadRack> LoadRackss= loadRackDao.findLoadRacksTasksRacks(OutTask.getStockName());//此料架是否已经存在某工位
                        List<LoadRack> loadRacks=loadRackDao.findRackNames(OutTask.getDestination());//目的地线路是否有空闲工位
                        //验证料架是否在库内
                        if(!LoadRackss.isEmpty()){
                            SetInfoContent(OutTask,"此料架不在库内!");
                            SetInfoContent(OutTask,"此料架其他工位正在使用!");
                        }else if(!loadRacks.isEmpty()){
                            LoadRack loadRack=loadRacks.get(0);
                            startnumber = HexUtil.intTo2ByteHex(Integer.valueOf(OutTask.getStockName()));
                            endnumber = HexUtil.intTo2ByteHex(Integer.valueOf(loadRack.getNumber()));
                            OutTask.setWorkStatus("正在工作");
                            OutTask.setRackNumber(loadRack.getNumber());
                            OutTask.setInfoContent("");
                            outTasksDao.save(OutTask);
                        }else{
                            if("在线库到上片台(补片)".equals(OutTask.getTaskType())){
                                List<LoadRack> loadRacks=loadRackDao.findRackNames(OutTask.getDestination());
                                if(!loadRacks.isEmpty()){
                                    LoadRack loadRack=loadRacks.get(0);
                                    startnumber = HexUtil.intTo2ByteHex(Integer.valueOf(OutTask.getStockName()));
                                    endnumber = HexUtil.intTo2ByteHex(Integer.valueOf(loadRack.getNumber()));
                            SetInfoContent(OutTask,"此线路无空工位!");
                        }
                    }else if("等待退回库区".equals(OutTask.getMachineStatus())){
                        //2024-6-25 æ·»åŠ èŠ‚ç‚¹  é€€åº“时发现其他线需要则直接转线
                        List<OutTasks> FisrtStockNameTasks =outTasksDao.FindStockName(OutTask.getStockName());//所有未完成但跟此任务相同的架号
                        //退库--》转线
                        if(!FisrtStockNameTasks.isEmpty()&&!OutTask.getDestination().equals(FisrtStockNameTasks.get(0).getDestination())){
                            //有其他线需要此任务
                            OutTasks FistoutTasks=FisrtStockNameTasks.get(0);
                            List<OutTasks> FisrtDestination =outTasksDao.FindDestination(FistoutTasks.getDestination());
                            if(!FisrtDestination.isEmpty()
                                    &&FistoutTasks.getTaskIds()==FisrtDestination.get(0).getTaskIds()){
                                //此时可以从  æ­¤å·¥ä½  ç›´æŽ¥é€åˆ°å¦ä¸€çº¿è·¯
                                List<LoadRack> loadRackStart=loadRackDao.findOutTasksId(OutTask.getId());//料架当前位置
                                List<LoadRack> loadRackEnd=loadRackDao.findRackNames(FistoutTasks.getDestination());//料架目标位置
                                if(!loadRackStart.isEmpty()&&!loadRackEnd.isEmpty()){
                                    LoadRack Start=loadRackStart.get(0);
                                    LoadRack End=loadRackEnd.get(0);
                                    startnumber = HexUtil.intTo2ByteHex(Integer.valueOf(Start.getNumber()));
                                    endnumber = HexUtil.intTo2ByteHex(Integer.valueOf(End.getNumber()));
                                    OutTask.setWorkStatus("正在工作");
                                    OutTask.setRackNumber(loadRack.getNumber());
                                    OutTask.setRackNumber(End.getNumber());
                                    OutTask.setInfoContent("");
                                    outTasksDao.save(OutTask);
                                    //OutTask.Finsh();
                                    //FistoutTasks.setWorkStatus("正在工作");
                                    //FistoutTasks.setRackNumber(End.getNumber());
                                    //FistoutTasks.setInfoContent("");
                                    //outTasksDao.save(OutTask);
                                    //outTasksDao.save(FistoutTasks);
                                }else{
                                    SetInfoContent(OutTask,"此线路无空工位!");
                                }
                            }else{
                                List<OutTasks> FisrtTasks =outTasksDao.FindNoFinshDestinationAsc(OutTask.getDestination(),"等待开始");
                                for(OutTasks Fist:FisrtTasks){
                                    if(Fist.getTaskId().equals(OutTask.getTaskId())){
                                        List<LoadRack> loadRacks=loadRackDao.findRackNames(OutTask.getDestination());
                                        if(!loadRacks.isEmpty()){
                                            LoadRack loadRack=loadRacks.get(0);
                                            startnumber = HexUtil.intTo2ByteHex(Integer.valueOf(OutTask.getStockName()));
                                            endnumber = HexUtil.intTo2ByteHex(Integer.valueOf(loadRack.getNumber()));
                                            OutTask.setWorkStatus("正在工作");
                                            OutTask.setRackNumber(loadRack.getNumber());
                                            OutTask.setInfoContent("");
                                            outTasksDao.save(OutTask);
                                        }else{
                                            SetInfoContent(OutTask,"此线路无空工位!");
                                        }
                                    }
                                    break;
                                }
                                }
                            }
                        }
                    }else if("等待退回库区".equals(OutTask.getMachineStatus())){
                        }
                        //正常退库
                        List<LoadRack> loadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                        if(loadRacks.size()==1){
                        if(loadRacks.size()==1&&startnumber==""&&endnumber==""){
                            startnumber = HexUtil.intTo2ByteHex(Integer.valueOf(loadRacks.get(0).getNumber()));
                            endnumber = HexUtil.intTo2ByteHex(Integer.valueOf(OutTask.getStockName()));
                            OutTask.setRackNumber(loadRacks.get(0).getNumber());
@@ -309,8 +350,10 @@
                    return message(machineDispose.getReturnValue(),"0014");
                }
                if("等待开始".equals(OutTask.getMachineStatus())){
                    //料架目标位置
                    List<LoadRack> loadRacks=loadRackDao.findNumber(OutTask.getRackNumber());
                    if(loadRacks.size()==1){
                        String NewMachineStatus=("在线库到离线库".equals(OutTask.getTaskType())||
                                                 "离线库到在线库".equals(OutTask.getTaskType()))?"铁架已到吊装位":"铁架已到二次接力";
                        LoadRack LoadRack=loadRacks.get(0);
@@ -340,6 +383,34 @@
                }else if("等待退回库区".equals(OutTask.getMachineStatus())){
                    List<LoadRack> loadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                    if(loadRacks.size()==1){
                        List<LoadRack> endRacks=loadRackDao.findNumber(OutTask.getRackNumber());
                        if(endRacks.size()==1){//转移任务
                            LoadRack endRack=endRacks.get(0);
                            List<OutTasks> lineTask=outTasksDao.FindDestination(endRack.getRackName());//此线未开始任务
                            if(lineTask.size()>0){
                                OutTasks frist=lineTask.get(0);
                                if(frist!=null&&frist.getStockName().equals(OutTask.getStockName())){
                                    String NewMachineStatus=("在线库到离线库".equals(frist.getTaskType())||
                                             "离线库到在线库".equals(frist.getTaskType()))?"铁架已到吊装位":"铁架已到二次接力";
                                    frist.setMachineStatus(NewMachineStatus);
                                    frist.setWorkStatus("等待中");
                                    frist.setInfoContent("");
                                    endRack.setState("使用中");
                                    endRack.setOutTasks(frist);
                                    outTasksDao.save(frist);
                                    loadRackDao.save(endRack);
                                    try {
                                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                                        String content="仓储工位-工位:[铁架号:"+OutTask.getStockName()+" èµ·å§‹åœ°: "+loadRacks.get(0).getNumber()+"  ç›®çš„地:"+endRack.getNumber()+"]";
                                        deviceService.WriteFile("D:",machine.getNumber()+"记录",df.format(new Date())+"\r"+content,true);
                                        System.out.println(content);
                                    } catch (Exception e) {
                                        // TODO: handle exception
                                    }
                                }
                            }
                        }
                        LoadRack LoadRack=loadRacks.get(0);
                        LoadRack.ResetLoadRack();
                        OutTask.setWorkStatus("");
@@ -350,20 +421,6 @@
                        try {
                            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                            String content="plc仓储写入内容:[ MES收到仓储完成  ä»»åŠ¡ID:"+OutTask.getTaskId()+",铁架号:"+OutTask.getStockName()+" å·²é€€å›žåœ¨çº¿åº“ ]";
                            deviceService.WriteFile("D:",machine.getNumber()+"记录",df.format(new Date())+"\r"+content,true);
                            System.out.println(content);
                        } catch (Exception e) {
                            // TODO: handle exception
                        }
                        return message(machineDispose.getReturnValue(),"0014");
                    }else{
                        OutTask.setWorkStatus("");
                        OutTask.setMachineStatus("任务完成");
                        OutTask.setInfoContent("");
                        outTasksDao.save(OutTask);
                        try {
                            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                            String content="plc仓储写入内容:[ MES收到仓储完成  ä»»åŠ¡ID:"+OutTask.getTaskId()+",铁架号:"+OutTask.getStockName()+"  å·²é€€å›žåœ¨çº¿åº“ ]";
                            deviceService.WriteFile("D:",machine.getNumber()+"记录",df.format(new Date())+"\r"+content,true);
                            System.out.println(content);
                        } catch (Exception e) {
@@ -439,7 +496,11 @@
                if(!"铁架已到二次接力".equals(loadRack.getOutTasks().getMachineStatus())&&
                   !"等待退回库区".equals(loadRack.getOutTasks().getMachineStatus()))
                {    
                    if("等待中".equals(loadRack.getMachineLoad().getWorkState())&&
                    //System.out.println(loadRack.getId()+","+loadRack.getOutTasks().getTaskId()+","+loadRack.getMachineLoad().getWorkState()+","+loadRack.getOutTasks().getMesStatus()+","+loadRack.getOutTasks().getMachineStatus()+","+loadRack.getState()+","+loadRack.getFlag());
                    if("等待吸片".equals(loadRack.getState())){
                        loadRack.setState("亮灯");
                        loadRackDao.save(loadRack);
                    }else if("等待中".equals(loadRack.getMachineLoad().getWorkState())&&
                       "派尔确认铁架已到位".equals(loadRack.getOutTasks().getMesStatus())&&
                       "铁架已到上片位".equals(loadRack.getOutTasks().getMachineStatus())&&
                       "使用中".equals(loadRack.getState())&&
@@ -472,6 +533,7 @@
                            String pgknum=HexUtil.intTo2ByteHex(Sum);
                            String locknum=HexUtil.intTo2ByteHex(StockNum);
                            String date="000100000000"+bb+hh+pgknum+locknum;
                            try {
                                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                                String content="plc"+machine.getNumber()+"写入内容:[ å¼€å§‹å¸ç‰‡,宽:"+loadRack.getOutTasks().getBb()+"   é«˜ï¼š"+loadRack.getOutTasks().getHh()+"   æ€»ä»»åŠ¡æ•°ï¼š"+Sum+"   æž¶ä¸Šæ•°é‡ï¼š"+StockNum+"   å·²ä¸Šæ•°é‡ï¼š"+loadRack.getOutTasks().getLoadeNum()+"   ç ´æŸæ•°é‡ï¼š"+loadRack.getOutTasks().getPosunCount()+"]";
@@ -882,7 +944,7 @@
                    if("等待补片".equals(loadRack1.getMachineLoad().getWorkState())&&
                       "在线库到上片台(补片)".equals(loadRack1.getOutTasks().getTaskType()))
                    {
                        loadRack1.setState("使用中");
                        loadRack1.setState("等待吸片");
                        loadRack1.getOutTasks().setWorkStatus("等待中");
                        loadRack1.getOutTasks().setMachineStatus("铁架已到上片位");
                        loadRack1.getMachineLoad().setWorkState("等待中");
@@ -897,7 +959,7 @@
                        }
                        return machineDispose.getReturnValue();
                    }else{
                        loadRack1.setState("使用中");
                        loadRack1.setState("等待吸片");
                        loadRack1.getOutTasks().setWorkStatus("等待中");
                        loadRack1.getOutTasks().setMachineStatus("铁架已到上片位");
                        loadRackDao.save(loadRack1);
@@ -918,11 +980,49 @@
                        loadRack1.getMachineLoad().setWorkState("等待中");
                        loadRackDao.save(loadRack1);
                    }*/
                    loadRack1.setState("使用中");
                    loadRack1.getOutTasks().setWorkStatus("等待中");
                    loadRack1.getOutTasks().setMachineStatus("等待退回库区");
                    SetInfoContent(loadRack1.getOutTasks(),"");
                    loadRackDao.save(loadRack1);
                    //退回验证:如果后续两个任务存在此料架则不退库,如不存在则退库
                    List<OutTasks> OutTasksSameStokess=outTasksDao.FindDestinationNoFinshTaskIdOderbyASC(loadRack1.getOutTasks().getDestination(),loadRack1.getOutTasks().getTaskId(),"任务完成");
                    if(OutTasksSameStokess.isEmpty()){
                        loadRack1.setState("使用中");
                        loadRack1.getOutTasks().setWorkStatus("等待中");
                        loadRack1.getOutTasks().setMachineStatus("等待退回库区");
                        SetInfoContent(loadRack1.getOutTasks(),"");
                        loadRackDao.save(loadRack1);
                    }else{
                        boolean tui=false;
                        for(int i=0;i<OutTasksSameStokess.size()&&i<2;i++){
                            OutTasks outTasks=OutTasksSameStokess.get(i);
                            if(outTasks.getStockName().equals(loadRack1.getOutTasks().getStockName())){
                                tui=true;
                                //当前任务后两个任务中存在同料架
                                //当前任务标记完成
                                loadRack1.setState("使用中");
                                loadRack1.getOutTasks().setWorkStatus("");
                                loadRack1.getOutTasks().setMachineStatus("任务完成");
                                loadRack1.getOutTasks().setInfoContent("");
                                loadRackDao.save(loadRack1);
                                //下一任务标记到达上片位
                                outTasks.setWorkStatus("等待中");
                                outTasks.setMachineStatus("铁架已到二次接力");
                                outTasks.setInfoContent("");
                                outTasksDao.save(outTasks);
                                loadRack1.setState("使用中");
                                loadRack1.setOutTasks(outTasks);
                                loadRackDao.save(loadRack1);
                                break;
                            }
                        }
                        if(!tui){
                            loadRack1.setState("使用中");
                            loadRack1.getOutTasks().setWorkStatus("等待中");
                            loadRack1.getOutTasks().setMachineStatus("等待退回库区");
                            SetInfoContent(loadRack1.getOutTasks(),"");
                            loadRackDao.save(loadRack1);
                        }
                    }
                    try {
                        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                        String content="plc"+machine.getNumber()+"写入内容:[ æ”¶åˆ°   å·¥ä½ï¼š"+loadRack1.getNumber()+"  å·²é€€å›žäºŒæ¬¡æŽ¥åŠ›  ]";
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/service/task/LoadTaskService.java
New file
@@ -0,0 +1,153 @@
/*******************************************************************************
 * Copyright (c) 2005, 2014 springside.github.io
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package com.northglass.service.task;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import com.northglass.entity.LoadRack;
import com.northglass.entity.OutTasks;
import com.northglass.entity.Task;
import com.northglass.repository.LoadRackDao;
import com.northglass.repository.OutTasksDao;
import com.northglass.repository.TaskDao;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
import org.springside.modules.persistence.SearchFilter.Operator;
// Spring Bean的标识.
@Component
// ç±»ä¸­æ‰€æœ‰public函数都纳入事务管理的标识.
@Transactional
public class LoadTaskService {
    @Autowired
    private OutTasksDao outTasksDao;
    @Autowired
    private LoadRackDao loadRackDao;
    //上片任务
    public List<LoadRack> loadRackLine(String line) {
        List<LoadRack> loadRacks=loadRackDao.findRackName(line);//上片工位
        return loadRacks;
    }
    public List<OutTasks> notFinshTask(String line) {
        List<OutTasks> OutTasks=outTasksDao.FindNotTaskLine("派尔确认任务完成",line);
        for(OutTasks item:OutTasks){
            System.out.println(item.getId());
            System.out.println(item.getMachineStatus());
        }
        System.out.println("----");
        return OutTasks;
    }
    public List<OutTasks> updateTask(String taskId,String Stusts) {
        List<OutTasks> ResultOutTasks=new ArrayList<OutTasks>();
        List<OutTasks> OutTasks=outTasksDao.FindOutTasksTaskIds(taskId);
        System.out.println("1:"+taskId+"   "+Stusts);
        for(OutTasks OutTask:OutTasks){
            ResultOutTasks.add(OutTask);
            if(Stusts.equals("铁架已到二次接力")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("等待开始")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
                System.out.println("---"+Stusts);
            }else if(Stusts.equals("铁架已到上片位")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("上片完成请求退回")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认铁架已到位");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("铁架退回二次接力")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("铁架已到吊装位")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("任务完成")){
                List<LoadRack> LoadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                for(LoadRack lloadRack:LoadRacks){
                    lloadRack.setOutTasks(null);
                    lloadRack.setState("空闲");
                    loadRackDao.save(lloadRack);
                }
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
                System.out.println("---"+Stusts);
            }else if(Stusts.equals("等待退回库区")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("派尔确认任务完成")){
                List<LoadRack> LoadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                for(LoadRack lloadRack:LoadRacks){
                    lloadRack.setOutTasks(null);
                    lloadRack.setState("空闲");
                    loadRackDao.save(lloadRack);
                }
                OutTask.setMesStatus(Stusts);
                OutTask.setMachineStatus("任务完成");
                OutTask.setInfoContent("");
                OutTask.setWorkStatus("");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("派尔确认铁架已到位")){
                if("铁架已到上片位".equals(OutTask.getMachineStatus())||
                   "铁架已到吊装位".equals(OutTask.getMachineStatus())){
                    OutTask.setMesStatus(Stusts);
                    OutTask.setWorkStatus("等待中");
                    outTasksDao.save(OutTask);
                }else{
                    if(!"此任务不在上片位或吊装位无法标记!".equals(OutTask.getInfoContent())){
                        OutTask.setInfoContent("此任务不在上片位或吊装位无法标记!");
                        outTasksDao.save(OutTask);
                    }
                }
            }else{
                OutTask.setMachineStatus(Stusts);
                outTasksDao.save(OutTask);
            }
        }
        List<OutTasks> OutTasks2=outTasksDao.FindOutTasksTaskIds(taskId);
        for(OutTasks item:OutTasks2){
            ResultOutTasks.add(item);
            //System.out.println("1:"+item.getId()+"   "+item.getMachineStatus());
            break;
        }
        return ResultOutTasks;
    }
}
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/web/alltasks/loadTaskController.java
New file
@@ -0,0 +1,220 @@
package com.northglass.web.alltasks;
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.Calendar;
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 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.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.OutTasksDao;
import com.northglass.repository.TelecomsDao;
import com.northglass.service.device.DeviceService;
import net.sf.json.JSONObject;
@Controller
@RequestMapping(value="/loadTask")
public class loadTaskController {
    @Autowired
    private OutTasksDao outTasksDao;
    @Autowired
    private LoadRackDao loadRackDao;
    @Autowired
    private com.northglass.service.task.LoadTaskService loadTaskService;
    //上片页面
    @RequestMapping(method = RequestMethod.GET,value="/loadHtml")
    public String loadHtml(Model model,HttpServletRequest request,HttpServletResponse response) {
        return "loadtask/loadMachine";
    }
    //任务页面
    @RequestMapping(method = RequestMethod.GET,value="/taskHtml")
    public String taskHtml(Model model,HttpServletRequest request,HttpServletResponse response) {
        return "loadtask/loadTask";
    }
    //上片工位数据     ä¼ çº¿è·¯
    @RequestMapping(method = RequestMethod.POST,value="/loadRackLine")
    @ResponseBody
    public List<LoadRack> loadRackLine(Model model,HttpServletRequest request) {
        String line="上片台"+request.getParameter("line");//线路
        List<LoadRack> loadRacks=loadRackDao.findRackName(line);//上片工位
        for(LoadRack item:loadRacks){
            System.out.println(item.getOutTasks()==null);
        }
        System.out.println();
        return loadRacks;
    }
    //上片工位数据     ä¼ çº¿è·¯
    @RequestMapping(method = RequestMethod.GET,value="/loadRackLine2")
    @ResponseBody
    public List<LoadRack> loadRackLine2(Model model,HttpServletRequest request) {
        String line="上片台"+request.getParameter("line");//线路
        List<LoadRack> loadRacks=loadRackDao.findRackName(line);//上片工位
        return loadRacks;
    }
    //未完成任务数据      ä¼ çº¿è·¯
    @RequestMapping(method = RequestMethod.POST,value="/notFinshTask")
    @ResponseBody
    public List<OutTasks> notFinshTask(Model model,HttpServletRequest request) {
        String line="上片台"+request.getParameter("line");//线路
        List<OutTasks> OutTasks=outTasksDao.FindNotTaskLine("派尔确认任务完成",line);
        return OutTasks;
    }
    //已完成任务数据      ä¼ çº¿è·¯
    @RequestMapping(method = RequestMethod.POST,value="/finshTask")
    @ResponseBody
    public List<OutTasks> finshTask(Model model,HttpServletRequest request) {
        String line="上片台"+request.getParameter("line");//线路
        List<OutTasks> OutTasks=outTasksDao.FindTaskLine("派尔确认任务完成",line);
        return OutTasks;
    }
    //修改料架任务  ç»‘定/解除      taskId,Status
    @RequestMapping(method = RequestMethod.POST,value="/updateLoad")
    @ResponseBody
    public List<OutTasks> updateLoad(Model model,HttpServletRequest request) {
        String RackId=request.getParameter("RackId");//料架号
        String TaskIdHtml=request.getParameter("TaskIdHtml");//任务号
        try {
            LoadRack loadRack=loadRackDao.findOne(Long.valueOf(RackId));
            if(!TaskIdHtml.equals("")){
                OutTasks OutTask=outTasksDao.FindOutTasksTaskId(TaskIdHtml);
                loadRack.setOutTasks(OutTask);
                loadRack.setState("使用中");
                loadRackDao.save(loadRack);
            }
        } catch (Exception e) {
            System.out.println("料架修改失败!");
            // TODO: handle exception
        }
        return new ArrayList<OutTasks>();
    }
    //修改任务 çŠ¶æ€      taskId,Status
    @RequestMapping(method = RequestMethod.POST,value="/updateTask")
    @ResponseBody
    public List<OutTasks> updateTask(Model model,HttpServletRequest request) {
        List<OutTasks> ResultOutTasks=new ArrayList<OutTasks>();
        String taskId=request.getParameter("TaskIdHtml");//任务号
        String Stusts=request.getParameter("Stusts");//状态
        List<OutTasks> OutTasks=outTasksDao.FindOutTasksTaskIds(taskId);
        for(OutTasks OutTask:OutTasks){
            ResultOutTasks.add(OutTask);
            if(Stusts.equals("铁架已到二次接力")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("等待开始")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("铁架已到上片位")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("上片完成请求退回")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认铁架已到位");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("铁架退回二次接力")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("铁架已到吊装位")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("上片任务已开始");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("任务完成")){
                List<LoadRack> LoadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                for(LoadRack lloadRack:LoadRacks){
                    lloadRack.setOutTasks(null);
                    lloadRack.setState("空闲");
                    loadRackDao.save(lloadRack);
                }
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("等待退回库区")){
                OutTask.setMachineStatus(Stusts);
                OutTask.setMesStatus("派尔确认可退回");
                OutTask.setWorkStatus("等待中");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("派尔确认任务完成")){
                List<LoadRack> LoadRacks=loadRackDao.findOutTasksId(OutTask.getId());
                for(LoadRack lloadRack:LoadRacks){
                    lloadRack.setOutTasks(null);
                    lloadRack.setState("空闲");
                    loadRackDao.save(lloadRack);
                }
                OutTask.setMesStatus(Stusts);
                OutTask.setMachineStatus("任务完成");
                OutTask.setInfoContent("");
                OutTask.setWorkStatus("");
                outTasksDao.save(OutTask);
            }else if(Stusts.equals("派尔确认铁架已到位")){
                if("铁架已到上片位".equals(OutTask.getMachineStatus())||
                   "铁架已到吊装位".equals(OutTask.getMachineStatus())){
                    OutTask.setMesStatus(Stusts);
                    OutTask.setWorkStatus("等待中");
                    outTasksDao.save(OutTask);
                }else{
                    if(!"此任务不在上片位或吊装位无法标记!".equals(OutTask.getInfoContent())){
                        OutTask.setInfoContent("此任务不在上片位或吊装位无法标记!");
                        outTasksDao.save(OutTask);
                    }
                }
            }else{
                OutTask.setMachineStatus(Stusts);
                outTasksDao.save(OutTask);
            }
        }
        List<OutTasks> OutTasks2=outTasksDao.FindOutTasksTaskIds(taskId);
        for(OutTasks item:OutTasks2){
            ResultOutTasks.add(item);
            //System.out.println("1:"+item.getId()+"   "+item.getMachineStatus());
            break;
        }
        return ResultOutTasks;
    }
}
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/web/alltasks/tasksController.java
@@ -73,13 +73,19 @@
        //System.out.println(taskstate);
        List<OutTasks> OutTasks=new ArrayList<OutTasks>();
        if("2".equals(taskstate)){
            OutTasks=outTasksDao.FindMesStatus("派尔确认任务完成");
            List<OutTasks> lists=outTasksDao.FindMesStatus("派尔确认任务完成");
            if(lists.size()>0&&lists.size()<=100){
                OutTasks=lists.subList(0, lists.size());
            }
            PageHeads="已完成任务";
        }else if("1".equals(taskstate)){
            OutTasks=outTasksDao.FindNoMesStatus("派尔确认任务完成");
            PageHeads="未完成任务";
        }else if("0".equals(taskstate)){
            OutTasks=outTasksDao.findAll();
            List<OutTasks> lists=outTasksDao.FindAll100();
            if(lists.size()>0&&lists.size()<=100){
                OutTasks=lists.subList(0, lists.size());
            }
            PageHeads="全部任务";
        }
        int sumcount=OutTasks.size()%ContentCount!=0?OutTasks.size()/ContentCount+1:OutTasks.size()/ContentCount;
@@ -89,8 +95,39 @@
        model.addAttribute("ContentCountHtml",ContentCountHtml);
        model.addAttribute("OutTaskshtml",OutTaskshtml(OutTasks,count,ContentCount));
        model.addAttribute("Buttonshtml",Buttonshtml(OutTasks.size(),count,ContentCount));
        return "alltasks/tasks";
        return "alltasks/tasks2";
    }
    //全部任务界面
    @RequestMapping(method = RequestMethod.GET,value="/loadMachine")
    public String loadMachine(Model model,HttpServletRequest request,HttpServletResponse response) {
        return "alltasks/loadMachine";
    }
    //此线路的 ä¸Šç‰‡å·¥ä½
    @RequestMapping(method = RequestMethod.POST,value="/loadRackLine")
    @ResponseBody
    public List<LoadRack> loadRackLine(Model model,HttpServletRequest request) {
        String line="上片台"+request.getParameter("line");//线路
        List<LoadRack> loadRacks=loadRackDao.findRackName(line);//上片工位
        return loadRacks;
    }
    @RequestMapping(method = RequestMethod.POST,value="/alltasksdata")
    @ResponseBody
    public List<OutTasks> alltasksdata(Model model,HttpServletRequest request) {
        String state=request.getParameter("state");//任务状态
        List<OutTasks> OutTasks=new ArrayList<OutTasks>();
        if("2".equals(state)){
            OutTasks=outTasksDao.FindMesStatus("派尔确认任务完成");
        }else if("1".equals(state)){
            OutTasks=outTasksDao.FindNoMesStatus("派尔确认任务完成");
        }else if("0".equals(state)){
            OutTasks=outTasksDao.findAll();
        }
        return OutTasks;
    }
    //一共多少数据,第多少页,一页多少行   50,2,10
    public String Buttonshtml(int Size,int Count,int ContentCount){
        String Buttonhtmls="";
@@ -221,7 +258,7 @@
                String WorkStatus="";//是否在工作
                String LoadWorkStatus=(loadRack.getMachineLoad()==null?"":loadRack.getMachineLoad().getWorkState());//是否在工作;
                String FlagButton=loadRack.getFlag();//启用状态
                String StatsButton=loadRack.getFlag();//料架状态
                String StatsButton="";//料架状态
                int Loade=0;//待上数量
                int sum1=0;
                int sum2=0;
@@ -253,11 +290,15 @@
                }else{
                    FlagButton="<button class=\"Rowbtn\" style=\"background-color: #fd5f56;margin-left:5px;\" onclick=\"EnableDisables('启用','"+loadRack.getId()+"')\">禁用</button>";
                }
                if(!loadRack.getState().equals("使用中")){
                    StatsButton="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('使用中','"+loadRack.getId()+"')\">空闲</button>";
                }else{
                    StatsButton="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('空闲','"+loadRack.getId()+"')\">使用中</button>";
                }
//                if(!loadRack.getState().equals("使用中")){
//                    StatsButton="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('使用中','"+loadRack.getId()+"')\">空闲</button>";
//                }else{
//                    StatsButton="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('空闲','"+loadRack.getId()+"')\">使用中</button>";
//                }
                StatsButton+="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('使用中','"+loadRack.getId()+"')\">使用中</button>";
                StatsButton+="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('空闲','"+loadRack.getId()+"')\">空闲</button>";
                StatsButton+="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('亮灯','"+loadRack.getId()+"')\">亮灯</button>";
                StatsButton+="<button class=\"Rowbtn\" style=\"margin-left:5px;\" onclick=\"EnableDisables('已亮灯','"+loadRack.getId()+"')\">已亮灯</button>";
                LoadRackshtml+="<tr>";
                LoadRackshtml+="<td style=\"text-align: center;\"><input class=\"checkboxs\" type=\"checkbox\" /></td>";
                LoadRackshtml+="<td class=\"RackId\">"+Id+"</td>";
@@ -440,6 +481,7 @@
        String Types=request.getParameter("Types");
        String Stusts=request.getParameter("Stusts");
        String TaskIdHtml=request.getParameter("TaskIdHtml");
        System.out.println(Types+","+Stusts+","+TaskIdHtml);
        try {
            List<OutTasks> OutTasks=outTasksDao.FindOutTasksTaskIds(TaskIdHtml);
            for(OutTasks OutTask:OutTasks){
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/web/configuration/ConfigController.java
@@ -62,12 +62,25 @@
    @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="";
@@ -117,7 +130,17 @@
                }
                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();
@@ -125,6 +148,17 @@
                    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())){
@@ -242,6 +276,7 @@
            MachineOutTaskhtmls+="</tr>";
        }
        model.addAttribute("InfoStats",InfoStats);
        model.addAttribute("outTasksTasks",outTasksTasks);
        model.addAttribute("MachineOutTaskhtmls",MachineOutTaskhtmls);
        model.addAttribute("MachineCount",Machines.size());
        return "configuration/minche";
@@ -302,7 +337,66 @@
        }
        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) {
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/java/com/northglass/web/manage/CutManageController.java
@@ -9,6 +9,9 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.northglass.service.TelecomsService.TelecomsService;
import net.sf.json.JSONObject;
@Controller
@@ -24,6 +27,10 @@
        jsonObj.putAll(map);
        return jsonObj;
    }
    @RequestMapping(method=RequestMethod.GET, value="/paiText")
    @ResponseBody
    public JSONObject paiText(HttpServletRequest request,HttpServletResponse response){
        return TelecomsService.jsonObj;
    }
}
    
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/layouts/left.jsp
@@ -21,12 +21,30 @@
                        </span> 
                    </a>
                    <ul class="treeview-menu">
                        <li><a href="${ctx }/tasks/alltasks?taskstate=0&count=1">&nbsp;&nbsp;&nbsp;&nbsp;任务详情</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=1&count=1">&nbsp;&nbsp;&nbsp;&nbsp;未完成任务</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=2&count=1">&nbsp;&nbsp;&nbsp;&nbsp;已完成任务</a></li><!--
                        <%-- <li><a href="${ctx }/tasks/alltasks?taskstate=0">&nbsp;&nbsp;&nbsp;&nbsp;任务详情</a></li> --%>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=1">&nbsp;&nbsp;&nbsp;&nbsp;未完成任务</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=2">&nbsp;&nbsp;&nbsp;&nbsp;已完成任务</a></li><!--
                        <li><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;昨日统计</a></li>     -->                
                    </ul>
                </li>
                <%-- <li class="treeview">
                    <a href="#">
                        <img src="${ctx }/static/images/8.png" width="20px;" height="20px;">&nbsp;
                        <span>上片管理</span>
                        <span class="pull-right-container">
                            <i class="fa fa-angle-left pull-right"></i>
                        </span>
                    </a>
                    <ul class="treeview-menu">
                        <li><a href="${ctx }/loadTask/loadHtml?line=1">&nbsp;&nbsp;&nbsp;&nbsp;上片台1</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=2">&nbsp;&nbsp;&nbsp;&nbsp;上片台2</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=3">&nbsp;&nbsp;&nbsp;&nbsp;上片台3</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=4">&nbsp;&nbsp;&nbsp;&nbsp;上片台4</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=5">&nbsp;&nbsp;&nbsp;&nbsp;上片台5</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=6">&nbsp;&nbsp;&nbsp;&nbsp;上片台6</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=7">&nbsp;&nbsp;&nbsp;&nbsp;上片台7</a></li>
                    </ul>
                </li> --%>
                <li class="treeview">
                    <a href="#">
                        <img src="${ctx }/static/images/8.png" width="20px;" height="20px;">&nbsp;
@@ -39,7 +57,8 @@
                        <li><a href="${ctx }/Config/infomathion">&nbsp;&nbsp;&nbsp;&nbsp;交互信息</a></li> --%>
                        <li><a href="${ctx }/tasks/loadrackinfo">&nbsp;&nbsp;&nbsp;&nbsp;上片工位</a></li>
                        <li><a href="${ctx }/tasks/loadrackinfo2">&nbsp;&nbsp;&nbsp;&nbsp;吊装工位</a></li>            
                        <li><a href="${ctx }/Config/minche">&nbsp;&nbsp;&nbsp;&nbsp;设备状态</a></li>
                        <li><a href="${ctx }/Config/minche">&nbsp;&nbsp;&nbsp;&nbsp;设备状态</a></li>
                        <%-- <li><a href="${ctx }/Config/manualOperation">&nbsp;&nbsp;&nbsp;&nbsp;手动页面</a></li>         --%>
                    </ul>
                </li>
                
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/alltasks/tasks2.jsp
New file
@@ -0,0 +1,227 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
    <script>
    /* setInterval(function(){
        window.location.reload();
    },3000); */
    <%String state = request.getParameter("taskstate");
      String lines = request.getParameter("line");
        if (state == null)
            state = "null";
        out.print("var state='" + state + "';\r\n");
        out.print("var line='" + lines + "';\r\n");
    %>
    function newPage(Count) {
        var PageHeads=document.getElementById("PageHeads").innerHTML;
        if(PageHeads=="已完成任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=2&count="+Count+"";
        }else if(PageHeads=="未完成任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=1&count="+Count+"";
        }else if(PageHeads=="全部任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=0&count="+Count+"";
        }
    }
    function checkAll() {
        var checkedAll=document.getElementById("checkall");
        var ischeked=false;
        if(checkedAll.checked){
            ischeked=true;
        }
        var checkboxs=document.getElementsByClassName("checkboxs");
        for(var i=0;i<checkboxs.length;i++){
            checkboxs[i].checked=ischeked;
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function TaskStusts(Types,Stusts,taskstate){
        var checkboxs=document.getElementsByClassName("checkboxs");
        for(var i=0;i<checkboxs.length;i++){
            var checkbox=checkboxs[i];
            if(checkbox.checked){
                var RowHtml=checkbox.parentNode.parentNode;
                 var TaskIdHtml=RowHtml.getElementsByClassName("OutTaskId")[0].innerHTML;
                 $.ajax({
                    cache:false,
                    type:"POST",
                    dataType : "json",
                     url:"${ctx}/tasks/TaskStusts",
                     data:{
                         "Types":Types,
                         "Stusts":Stusts,
                         "TaskIdHtml":TaskIdHtml,
                     },success:function(data){
                         location.reload();
                    }
                });
            }
        }
    }
    Initialize();
    function Initialize(){
        if(state=="0"||state=="1"||state=="2"){
            loadData(state);
        }else{
            loadData("1");
        }
    }
    function loadData(state){
        $.ajax({
            cache:false,
            type:"POST",
            dataType : "json",
             url:"${ctx}/tasks/alltasksdata",
             data:{
                 "state":state,
                 "line":line
             },
             success:function(data){
                 var OutTaskshtml="";
                 var dataheml=$('#taskdata');
                 $('#taskdata').remove();
                 $('#Table_Minche').append("<tbody id='taskdata'></tbody>");
                 for(var i=0;i<data.length;i++){
                     var row=data[i];
                     var dataheml=$('taskdata').append();
                    if(("等待开始"==row.machineStatus||"等待退回库区"==row.machineStatus)&&"正在工作"==row.machineStatus){
                        OutTaskshtml+="<tr style=\"background-color:#0dc316\">";
                    }else{
                        OutTaskshtml+="<tr>";
                    }
                    OutTaskshtml+="<td style=\"text-align: center;\"><input class=\"checkboxs\" type=\"checkbox\" /></td>";
                    OutTaskshtml+="<td>"+row.id+"</td>";
                    OutTaskshtml+="<td class=\"OutTaskId\">"+row.taskId+"</td>";
                    OutTaskshtml+="<td>"+row.taskType+"</td>";
                    OutTaskshtml+="<td>"+row.mesStatus+"</td>";
                    OutTaskshtml+="<td>"+row.machineStatus+"</td>";
                    OutTaskshtml+="<td>"+row.workStatus+"</td>";
                    OutTaskshtml+="<td>"+row.infoContent+"</td>";
                    OutTaskshtml+="<td>"+row.pkgId+"</td>";
                    OutTaskshtml+="<td>"+row.stockName+"</td>";
                    OutTaskshtml+="<td>"+row.destination+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum1+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum2+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum3+"</td>";
                    OutTaskshtml+="<td>"+row.stockNum+"</td>";
                    OutTaskshtml+="<td>"+row.loadeNum+"</td>";
                    OutTaskshtml+="<td>"+row.posunCount+"</td>";
                    OutTaskshtml+="<td>"+row.bb+"</td>";
                    OutTaskshtml+="<td>"+row.hh+"</td>";
                    OutTaskshtml+="<td>"+row.color+"</td>";
                    OutTaskshtml+="<td>"+row.thickness+"</td>";
                    OutTaskshtml+="<td>"+row.stockNum+"</td></tr>";
                 }
                 $('#taskdata').append(OutTaskshtml);
            }
        });
    }
    </script>
<title>任务管理</title>
<style type="text/css">
*{
    padding:0px;
    margin:0px;
    font-family: "microsoft yahei","Helvetica Neue", Helvetica, Arial, sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn{
    height:35px;
    line-height:35px;
    background-color: #0dc316;
    padding:0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn{
    height:20px;
    line-height:20px;
    background-color: #0dc316;
    padding:0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr{
    background-color:#00BFFF;
    font-weight:800;
}
#Table_Minche thead td{
    border:1px solid #00BFFF;
}
#Table_Minche td{
    border:1px solid #f2f2f2;
    height:20px;
    line-height:20px;
    padding:3px 6px 3px 6px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
<!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top"><!--
                <button class="btn" onclick="TaskStusts('Pai','上片任务已开始')">上片任务已开始</button> -->
                <button class="btn" onclick="TaskStusts('MES','等待开始')">等待开始</button>
                <!-- <button class="btn" onclick="taskurl('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" onclick="taskurl('铁架已到吊装位')">铁架已到吊装位</button>
                <button class="btn" onclick="taskurl('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" onclick="taskurl('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" onclick="taskurl('上片完成允许退回')">上片完成允许退回</button>
                <button class="btn" onclick="taskurl('吊装完成请求退回')">吊装完成允许退回</button>-->
                <button class="btn" onclick="TaskStusts('MES','任务完成')">任务完成</button>
                <button class="btn" onclick="TaskStusts('Pai','派尔确认任务完成')">派尔确认任务完成</button>
            </div>
            <div>
                <div id="PageHeads" style="text-align: center;background-color:#0dc316;color:white;font-size:25px; line-height: 50px;height: 50px;">${PageHeads}</div>
                <table id="Table_Minche" style="width: 100%; border-collapse: collapse;min-width:1200px; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td style="text-align: center;"><input id="checkall" onclick="checkAll()" type="checkbox" /></td>
                            <td>ID</td>
                            <td>任务ID</td>
                            <td>任务类型</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>提示信息</td>
                            <td>原片包ID</td>
                            <td>铁架号</td>
                            <td>目的地</td>
                            <td>计划上片数量1</td>
                            <td>计划上片数量2</td>
                            <td>计划上片数量3</td>
                            <td>架上总数量</td>
                            <td>已上片数量</td>
                            <td>破损数量</td>
                            <td>原片宽</td>
                            <td>原片高</td>
                            <td>原片颜色</td>
                            <td>原片厚度</td>
                            <td>原片数量</td>
                        </tr>
                    </thead>
                    <tbody id="taskdata"></tbody>
                </table>
            </div><!--
            <div style="text-align: center;margin-top:50px;"></div> -->
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/configuration/manualOperation.jsp
New file
@@ -0,0 +1,325 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<title>手动页面</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    margin-bottom: 10px;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
table thead tr {
    background-color: #f2f2f2;
}
table {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
table th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.One td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
/*弹窗-手动添加*/
function modifyraw(){
     $("#add-fix-info").modal('show');
     initializeData();
}
/*初始化加载表格*/
initialize();
function initialize(){
    initializeTable();
}
function initializeData(){
    $('#station').empty();
    var row="<tr><td>1</td>";
    var stationOption="";
    for(var i = 1; i < 10; i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åº“位</option>";
    }
    for(var i=1101;i<=1114;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·ä¸Šç‰‡ä½</option>";
    }
    for(var i=990;i<=993;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åŠè£…位</option>";
    }
    row+="<td><select name='start'>"+stationOption+"</select></td>"+
         "<td><select name='end'>"+stationOption+"</select></td></tr>";
    $('#station').append(row);
}
var Tb={
    id:"tb1",
    style:"margin-top: 20px;",
    className:null,
    positionId:"contents",
    columns:[
            {
                text:"任务顺序",
                calssName:"id",
                index:0
            },
            {
                text:"ID",
                calssName:"id",
                index:1
            },
            {
                text:"起始地址",
                calssName:"stockName",
                index:2
            },
            {
                text:"目的地址",
                calssName:"destination",
                index:3
            },
            {
                text:"料架号",
                calssName:"stockName",
                index:4
            },
            {
                text:"任务类型",
                calssName:"taskType",
                index:5
            },
            {
                text:"操作",
                calssName:"",
                index:6
            }
    ]
}
function createTable(model,data){
    var columns=model.columns;
    var positionid=model.positionId;
    var position=document.getElementById(positionid);
    var tablehtml=document.createElement("table");
    console.log(data[0]);
    console.log(data[0][columns[0].calssName]);
    tablehtml.style=model.style;
    //头部
    var theadhtml=document.createElement("thead");
    var thRowhtml=document.createElement("tr");
    for(var thj = 0; thj < columns.length; thj++){
        var thColhtml=document.createElement("th");
        var thtext=document.createTextNode(columns[thj].text);
        thColhtml.appendChild(thtext);
        thRowhtml.appendChild(thColhtml);
    }
    theadhtml.appendChild(thRowhtml);
    //内容
    var tbodyhtml=document.createElement("tbody");
    for(var i = 0; i < data.length; i++){
        var row=data[i];
        var rowhtml=document.createElement("tr");
        for(var j = 0; j < columns.length; j++){
            var colhtml=document.createElement("td");
            var text=document.createTextNode("");
            if(!(columns[j].calssName==null||columns[j].calssName=="")){
                text=document.createTextNode(row[columns[j].calssName]);
            }
            colhtml.appendChild(text);
            rowhtml.appendChild(colhtml);
        }
        tbodyhtml.appendChild(rowhtml);
    }
    console.log(tablehtml);
    tablehtml.appendChild(theadhtml);
    tablehtml.appendChild(tbodyhtml);
    position.appendChild(tablehtml);
}
function initializeTable(){
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
             console.log(data);
             console.log(data[0][0]);
             /* for(var i = 0; i < data.length; i++){
                 data[i][0]
             }
             createTable(Tb,data); */
         }
     });
}
function initializeTable2(){
    //$('#OneContent').empty();
    /* var tablehteml="<table class='One'><thead><tr><th>任务顺序</th><th>ID</th><th>起始地址</th><th>目的地址</th><th>料架号</th><th>任务类型</th><th>操作</th></tr></thead>";
    tablehteml+="<tbody id='station'></tbody>";
    $('#Content').append(tablehteml); */
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
              console.log(data);
              var html="";
              for(var i = 0; i < data.length; i++){
                  var row=data[i];
                  html+="<tr>";
                  html+="<td>"+(i+1)+"</td>";
                  html+="<td class='taskid'>"+row.id+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.destination+row.rackNumber+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.taskType+"</td>";
                  html+="<td>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>失败</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>完成</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>取消</button>";
                  html+="</td>";
                  html+="</tr>";
              }
              $('#OneContent').append(html);
         }
     });
}
/*操作【取消/重新发送/完成】*/
function taskCancel(oneself){
    var Controls=oneself.innerHTML;
    var row=oneself.parentNode.parentNode;
    var taskid=row.getElementsByClassName("taskid")[0].innerHTML;
    console.log(Controls);
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
          url:"${ctx}/Config/updateTask",
          data:{
              "taskid":taskid,
              "Controls":Controls
          },success:function(data){
             // åˆ·æ–°å½“前页面
              //window.location.href="${ctx }/Config/updateTask;";
         }
     });
    location.reload();
}
</script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <section class="content-header">
            <div id="Top">
                <!-- <button class="btn" style="background-color: #fd5f56;" onclick="delAll()">批量删除</button> -->
                <button class="btn" onclick="modifyraw()">添加手动任务</button>
                <span style="float: right; line-height: 40px"></span>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">添加手动任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- æœºå™¨é€»è¾‘配置添加 -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>起始地址</th>
                                            <th>目标地址</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody id="station">
                                    </tbody>
                                </table>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default btn-lg" data-dismiss="modal">关闭</button>
                                <button type="submit" class="btn btn-primary btn-lg" id="addbtnsubmit">提交</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
        <section class="content container-fluid">
            <div id="contents">
                <!-- <table class="One">
                    <thead>
                        <tr>
                            <th>任务顺序</th>
                            <th>ID</th>
                            <th>起始地址</th>
                            <th>目的地址</th>
                            <th>料架号</th>
                            <th>任务类型</th>
                            <th>操作</th>
                        </tr>
                    </thead>
                    <tbody id='OneContent'>
                    </tbody> -->
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/configuration/minche.jsp
@@ -36,28 +36,65 @@
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight:800;
    font-weight: 800;
}
#Table_Minche thead td{
    border:1px solid #00BFFF;
#Table_Minche thead td {
    border: 1px solid #00BFFF;
    padding: 5px 10px 5px 10px;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    text-align:center;
    text-align: center;
    padding: 2px 10px 2px 10px;
}
.two thead tr {
    background-color: #f2f2f2;
}
.two {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
.two th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    setInterval(function(){
    window.location.reload();
      },3000);
    //启动定时器,func是参数,所以不能使用括号
    var interval = setInterval(func,3000);  //启动,func不能使用括号
    function func(){
        window.location.reload();
      }
    function start(){
        //重新启动
        interval = setInterval(func, 3000);
      }
    function modifyraw(){
         disableAutoRefresh()
         $("#add-fix-info").modal('show');
        // åœæ­¢å®šæ—¶å™¨
        clearInterval(interval);
         $("#add-fix-info").modal('show');
    }
    function checkAll() {
        var checkedAll=document.getElementById("checkall");
@@ -92,34 +129,75 @@
        }
    }
    </script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!-- å†…容 -->
        <section class="content container-fluid">
            <div>
                <table id="Table_Minche" style="width: 100%;min-width:1200px; border-collapse: collapse; border-spacing: 0;">
                <button class="btn" onclick="modifyraw()">仓储任务</button>
                <table id="Table_Minche"
                    style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td>ID</td>
                            <td>机器名称</td>
                            <td>任务ID</td>
                            <td>任务ID</td>
                            <td>铁架号</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>机器状态</td>
                            <td>等待数量</td>
                            <td>报警信息</td>
                            <td style="width:200px;">操作</td>
                            <td style="width: 200px;">操作</td>
                        </tr>
                    </thead>
                    <tbody>
                        ${MachineOutTaskhtmls}
                    <tbody>${MachineOutTaskhtmls}
                    </tbody>
                </table>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" onclick="start()" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">仓储待执行任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- ä»»åŠ¡æ˜¾ç¤º -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>任务ID</th>
                                            <th>料架号</th>
                                            <th>目的线路</th>
                                            <th>目标工位</th>
                                            <th>计划上片数量</th>
                                            <th>料架上玻璃数量</th>
                                            <th>类型</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody>${outTasksTasks}
                                    </tbody>
                                </table>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/configuration/taskInfos.jsp
New file
@@ -0,0 +1,325 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<title></title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    margin-bottom: 10px;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
table thead tr {
    background-color: #f2f2f2;
}
table {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
table th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.One td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
/*弹窗-手动添加*/
function modifyraw(){
     $("#add-fix-info").modal('show');
     initializeData();
}
/*初始化加载表格*/
initialize();
function initialize(){
    initializeTable();
}
function initializeData(){
    $('#station').empty();
    var row="<tr><td>1</td>";
    var stationOption="";
    for(var i = 1; i < 10; i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åº“位</option>";
    }
    for(var i=1101;i<=1114;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·ä¸Šç‰‡ä½</option>";
    }
    for(var i=990;i<=993;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åŠè£…位</option>";
    }
    row+="<td><select name='start'>"+stationOption+"</select></td>"+
         "<td><select name='end'>"+stationOption+"</select></td></tr>";
    $('#station').append(row);
}
var Tb={
    id:"tb1",
    style:"margin-top: 20px;",
    className:null,
    positionId:"contents",
    columns:[
            {
                text:"任务顺序",
                calssName:"id",
                index:0
            },
            {
                text:"ID",
                calssName:"id",
                index:1
            },
            {
                text:"起始地址",
                calssName:"stockName",
                index:2
            },
            {
                text:"目的地址",
                calssName:"destination",
                index:3
            },
            {
                text:"料架号",
                calssName:"stockName",
                index:4
            },
            {
                text:"任务类型",
                calssName:"taskType",
                index:5
            },
            {
                text:"操作",
                calssName:"",
                index:6
            }
    ]
}
function createTable(model,data){
    var columns=model.columns;
    var positionid=model.positionId;
    var position=document.getElementById(positionid);
    var tablehtml=document.createElement("table");
    console.log(data[0]);
    console.log(data[0][columns[0].calssName]);
    tablehtml.style=model.style;
    //头部
    var theadhtml=document.createElement("thead");
    var thRowhtml=document.createElement("tr");
    for(var thj = 0; thj < columns.length; thj++){
        var thColhtml=document.createElement("th");
        var thtext=document.createTextNode(columns[thj].text);
        thColhtml.appendChild(thtext);
        thRowhtml.appendChild(thColhtml);
    }
    theadhtml.appendChild(thRowhtml);
    //内容
    var tbodyhtml=document.createElement("tbody");
    for(var i = 0; i < data.length; i++){
        var row=data[i];
        var rowhtml=document.createElement("tr");
        for(var j = 0; j < columns.length; j++){
            var colhtml=document.createElement("td");
            var text=document.createTextNode("");
            if(!(columns[j].calssName==null||columns[j].calssName=="")){
                text=document.createTextNode(row[columns[j].calssName]);
            }
            colhtml.appendChild(text);
            rowhtml.appendChild(colhtml);
        }
        tbodyhtml.appendChild(rowhtml);
    }
    console.log(tablehtml);
    tablehtml.appendChild(theadhtml);
    tablehtml.appendChild(tbodyhtml);
    position.appendChild(tablehtml);
}
function initializeTable(){
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
             console.log(data);
             console.log(data[0][0]);
             /* for(var i = 0; i < data.length; i++){
                 data[i][0]
             }
             createTable(Tb,data); */
         }
     });
}
function initializeTable2(){
    //$('#OneContent').empty();
    /* var tablehteml="<table class='One'><thead><tr><th>任务顺序</th><th>ID</th><th>起始地址</th><th>目的地址</th><th>料架号</th><th>任务类型</th><th>操作</th></tr></thead>";
    tablehteml+="<tbody id='station'></tbody>";
    $('#Content').append(tablehteml); */
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
              console.log(data);
              var html="";
              for(var i = 0; i < data.length; i++){
                  var row=data[i];
                  html+="<tr>";
                  html+="<td>"+(i+1)+"</td>";
                  html+="<td class='taskid'>"+row.id+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.destination+row.rackNumber+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.taskType+"</td>";
                  html+="<td>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>失败</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>完成</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>取消</button>";
                  html+="</td>";
                  html+="</tr>";
              }
              $('#OneContent').append(html);
         }
     });
}
/*操作【取消/重新发送/完成】*/
function taskCancel(oneself){
    var Controls=oneself.innerHTML;
    var row=oneself.parentNode.parentNode;
    var taskid=row.getElementsByClassName("taskid")[0].innerHTML;
    console.log(Controls);
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
          url:"${ctx}/Config/updateTask",
          data:{
              "taskid":taskid,
              "Controls":Controls
          },success:function(data){
             // åˆ·æ–°å½“前页面
              //window.location.href="${ctx }/Config/updateTask;";
         }
     });
    location.reload();
}
</script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <section class="content-header">
            <div id="Top">
                <!-- <button class="btn" style="background-color: #fd5f56;" onclick="delAll()">批量删除</button> -->
                <button class="btn" onclick="modifyraw()">添加手动任务</button>
                <span style="float: right; line-height: 40px"></span>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">添加手动任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- æœºå™¨é€»è¾‘配置添加 -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>起始地址</th>
                                            <th>目标地址</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody id="station">
                                    </tbody>
                                </table>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default btn-lg" data-dismiss="modal">关闭</button>
                                <button type="submit" class="btn btn-primary btn-lg" id="addbtnsubmit">提交</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
        <section class="content container-fluid">
            <div id="contents">
                <!-- <table class="One">
                    <thead>
                        <tr>
                            <th>任务顺序</th>
                            <th>ID</th>
                            <th>起始地址</th>
                            <th>目的地址</th>
                            <th>料架号</th>
                            <th>任务类型</th>
                            <th>操作</th>
                        </tr>
                    </thead>
                    <tbody id='OneContent'>
                    </tbody> -->
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/loadtask/loadMachine.jsp
New file
@@ -0,0 +1,391 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    /* setInterval(function(){
        window.location.reload();
    },3000); */
<%String state = request.getParameter("taskstate");
            String lines = request.getParameter("line");
            if (state == null)
                state = "null";
            out.print("var state='" + state + "';\r\n");
            out.print("var line='" + lines + "';\r\n");%>
    function checkAll() {
        var checkedAll = document.getElementsByClassName("checkall")[0];
        var ischeked = false;
        if (checkedAll.checked) {
            ischeked = true;
        }
        var checkboxs = document.getElementById(tablename).getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            checkboxs[i].checked = ischeked;
        }
    }
    function loadcheckAll() {
        var checkedAll = document.getElementsByClassName("loadcheckall")[0];
        var ischeked = false;
        if (checkedAll.checked) {
            ischeked = true;
        }
        var checkboxs = document.getElementById(tablename).getElementsByClassName("loadcheckboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            checkboxs[i].checked = ischeked;
        }
    }
    /*修改保存  */
    function Updates(){
        var checkboxs=document.getElementsByClassName("loadcheckboxs");
/*         var RowHtml="";
        var RackIdHtml="";
         var TaskIdHtml=""; */
        for(var i=0;i<checkboxs.length;i++){
            var checkbox=checkboxs[i];
            if(checkbox.checked){
                var RowHtml=checkbox.parentNode.parentNode;
                var RackIdHtml=RowHtml.getElementsByClassName("RackId")[0].innerHTML;
                 var TaskIdHtml=RowHtml.getElementsByClassName("OutTaskId")[0].value;
                 $.ajax({
                    cache:false,
                    type:"POST",
                    dataType : "json",
                     url:"${ctx}/tasks/Updates",
                     data:{
                         "RackId":RackIdHtml,
                         "TaskIdHtml":TaskIdHtml,
                     },success:function(data){
                         window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                    }
                });
                 break;
            }
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function TaskStusts(Stusts) {
        var table=document.getElementById("Table_Minche");
        var checkboxs = table.getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            var checkbox = checkboxs[i];
            if (checkbox.checked) {
                var RowHtml = checkbox.parentNode.parentNode;
                var TaskIdHtml = RowHtml.getElementsByClassName("OutTaskId")[0].innerHTML;
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/updateTask",
                    data : {
                        "Stusts" : Stusts,
                        "TaskIdHtml" : TaskIdHtml,
                    },
                    success : function(data) {
                        window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                        //console.log(data);
                        /* location.reload(); */
                    }
                });
            }
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function loadTaskStusts(Stusts) {
        var table=document.getElementById("Table_Load");
        var checkboxs = table.getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            var checkbox = checkboxs[i];
            if (checkbox.checked) {
                var RowHtml = checkbox.parentNode.parentNode;
                var TaskIdHtml = RowHtml.getElementsByClassName("OutTaskId")[0].value;
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/updateTask",
                    data : {
                        "Stusts" : Stusts,
                        "TaskIdHtml" : TaskIdHtml,
                    },
                    success : function(data) {
                        window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                        //console.log(data);
                        /* location.reload(); */
                    }
                });
            }
        }
    }
    Initialize();
    function Initialize() {
        loadData();
        loadDataRack();
    }
    function loadDataRack() {
        $.ajax({
            cache : false,
            type : "POST",
            dataType : "json",
            url : "${ctx}/loadTask/loadRackLine",
            data : {
                "line" : line
            },
            success : function(data) {
                console.log(data);
                var LoadRackshtml = "";
                $('#loaddata').remove();
                $('#Table_Load').append("<tbody id='loaddata'></tbody>");
                for (var i = 0; i < data.length; i++) {
                    var row = data[i];
                    LoadRackshtml+="<tr><td style=\"text-align: center;\"><input class=\"loadcheckboxs\" type=\"checkbox\" /></td>";
                    LoadRackshtml+="<td class=\"RackId\">"+row.id+"</td>";
                    if(row.id%2!=0){
                        LoadRackshtml+="<td rowspan='2'>"+row.rackName+"</td>";
                        LoadRackshtml+="<td rowspan='2'>"+row.machineLoad.workState+"</td>";
                    }
                    LoadRackshtml+="<td>"+row.number+"</td>";
                    LoadRackshtml+="<td>"+row.state+"</td>";
                    if(row.outTasks==undefined||row.outTasks==null){
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value=''/></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                    }else{
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value='"+row.outTasks.taskId+"'/></td>";
                        LoadRackshtml+="<td>"+row.outTasks.stockName+"</td>";
                        LoadRackshtml+="<td>"+(row.outTasks.planLoadNum1+row.outTasks.planLoadNum2+row.outTasks.planLoadNum3)+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.stockNum+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.posunCount+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.machineStatus+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.workStatus+"</td>";
                    }
                    LoadRackshtml+="<td>"+"</td>";
                    LoadRackshtml+="<td>"+"</td>"
                             + "</tr>";
                }
                $('#loaddata').append(LoadRackshtml);
            }
        });
}
    function loadData() {
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/notFinshTask",
                    data : {
                        "line" : line
                    },
                    success : function(data) {
                        console.log(data);
                        var OutTaskshtml = "";
                        $('#taskdata').remove();
                        $('#Table_Minche').append(
                                "<tbody id='taskdata'></tbody>");
                        for (var i = 0; i < data.length; i++) {
                            var row = data[i];
                            if (("等待开始" == row.machineStatus || "等待退回库区" == row.machineStatus)
                                    && "正在工作" == row.machineStatus) {
                                OutTaskshtml += "<tr style=\"background-color:#0dc316\">";
                            } else {
                                OutTaskshtml += "<tr>";
                            }
                            OutTaskshtml += "<td style=\"text-align: center;\"><input class=\"checkboxs\" type=\"checkbox\" /></td>";
                            OutTaskshtml += "<td>" + row.id + "</td>";
                            OutTaskshtml += "<td class=\"OutTaskId\">"
                                    + row.taskId + "</td>";
                            OutTaskshtml += "<td>" + row.taskType + "</td>";
                            OutTaskshtml += "<td>" + row.mesStatus + "</td>";
                            OutTaskshtml += "<td>" + row.machineStatus
                                    + "</td>";
                            OutTaskshtml += "<td>" + row.workStatus + "</td>";
                            OutTaskshtml += "<td>" + row.infoContent + "</td>";
                            OutTaskshtml += "<td>" + row.pkgId + "</td>";
                            OutTaskshtml += "<td>" + row.stockName + "</td>";
                            OutTaskshtml += "<td>" + row.destination + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum1 + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum2 + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum3 + "</td>";
                            OutTaskshtml += "<td>" + row.stockNum + "</td>";
                            OutTaskshtml += "<td>" + row.loadeNum + "</td>";
                            OutTaskshtml += "<td>" + row.posunCount + "</td>";
                            OutTaskshtml += "<td>" + row.bb + "</td>";
                            OutTaskshtml += "<td>" + row.hh + "</td>";
                            OutTaskshtml += "<td>" + row.color + "</td>";
                            OutTaskshtml += "<td>" + row.thickness + "</td>";
                            OutTaskshtml += "<td>" + row.stockNum
                                    + "</td></tr>";
                        }
                        $('#taskdata').append(OutTaskshtml);
                    }
                });
    }
</script>
<title>上片任务管理</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn {
    height: 20px;
    line-height: 20px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
#Table_Minche thead td {
    border: 1px solid #00BFFF;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 3px 6px 3px 6px;
}
.dtable thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
.dtable thead td {
    border: 1px solid #00BFFF;
}
.dtable td {
    border:1px solid #f2f2f2;
    text-align:center;
    padding:5px 5px 5px 5px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top">
                <button class="btn" onclick="Updates()">绑定任务</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架退回二次接力')">铁架退回二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('等待退回库区')">等待退回库区</button>
            </div>
            <div>
                <div id="PageHeads" style="text-align: center; background-color: #0dc316; color: white; font-size: 25px; line-height: 50px; height: 50px;"></div>
                <div style="margin-top: 10px;margin-bottom: 30px;">
                    <table id="Table_Load" class="dtable"
                        style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                        <thead>
                            <tr>
                                <td style="text-align: center;"><input type="checkbox"
                                    class="loadcheckall" onclick="loadcheckAll()" /></td>
                                <td>ID</td>
                                <td>机器</td>
                                <td>上片机状态</td>
                                <td>工位编号</td>
                                <td>状态</td>
                                <td>任务ID</td>
                                <td>架号</td>
                                <td>待上数量</td>
                                <td>已上片数量</td>
                                <td>破损数量</td>
                                <td>MES状态</td>
                                <td>任务状态</td>
                                <td>启用状态</td>
                                <td>操作</td>
                            </tr>
                        </thead>
                        <tbody id="loaddata">
                        </tbody>
                    </table>
                </div>
                <div id="Top">
                    <button class="btn" onclick="TaskStusts('等待开始')">等待开始</button>
                    <button class="btn" onclick="TaskStusts('任务完成')">任务完成</button>
                    <button class="btn" onclick="TaskStusts('派尔确认任务完成')">派尔确认任务完成</button>
                </div>
                <table id="Table_Minche"
                    style="width: 100%; border-collapse: collapse; min-width: 1200px; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td style="text-align: center;"><input class="checkall"
                                onclick="checkAll('Table_Minche')" type="checkbox" /></td>
                            <td>ID</td>
                            <td>任务ID</td>
                            <td>任务类型</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>提示信息</td>
                            <td>原片包ID</td>
                            <td>铁架号</td>
                            <td>目的地</td>
                            <td>计划上片数量1</td>
                            <td>计划上片数量2</td>
                            <td>计划上片数量3</td>
                            <td>架上总数量</td>
                            <td>已上片数量</td>
                            <td>破损数量</td>
                            <td>原片宽</td>
                            <td>原片高</td>
                            <td>原片颜色</td>
                            <td>原片厚度</td>
                            <td>原片数量</td>
                        </tr>
                    </thead>
                    <tbody id="taskdata"></tbody>
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/src/main/webapp/WEB-INF/views/loadtask/loadTask.jsp
New file
@@ -0,0 +1,190 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    setInterval(function(){
        Initialize();
    },1000);
<%String lines = request.getParameter("line");
out.print("var line='" + lines + "';\r\n");%>
    Initialize();
    function Initialize() {
        loadDataRack();
    }
    function loadDataRack() {
        $.ajax({
            cache : false,
            type : "POST",
            dataType : "json",
            url : "${ctx}/loadTask/loadRackLine",
            data : {
                "line" : line
            },
            success : function(data) {
                console.log(data);
                var LoadRackshtml = "";
                $('#loaddata').remove();
                $('#Table_Load').append("<tbody id='loaddata'></tbody>");
                for (var i = 0; i < data.length; i++) {
                    var row = data[i];
                    LoadRackshtml+="<tr><td style=\"text-align: center;\"><input class=\"loadcheckboxs\" type=\"checkbox\" /></td>";
                    LoadRackshtml+="<td class=\"RackId\">"+row.id+"</td>";
                    if(row.id%2!=0){
                        LoadRackshtml+="<td rowspan='2'>"+row.rackName+"</td>";
                        LoadRackshtml+="<td rowspan='2'>"+row.machineLoad.workState+"</td>";
                    }
                    LoadRackshtml+="<td>"+row.number+"</td>";
                    LoadRackshtml+="<td>"+row.state+"</td>";
                    if(row.outTasks==undefined||row.outTasks==null){
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value=''/></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                    }else{
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value='"+row.outTasks.taskId+"'/></td>";
                        LoadRackshtml+="<td>"+row.outTasks.stockName+"</td>";
                        LoadRackshtml+="<td>"+(row.outTasks.planLoadNum1+row.outTasks.planLoadNum2+row.outTasks.planLoadNum3)+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.stockNum+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.posunCount+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.machineStatus+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.workStatus+"</td>";
                    }
                    LoadRackshtml+="<td>"+"</td>";
                    LoadRackshtml+="<td>"+"</td>"
                             + "</tr>";
                }
                $('#loaddata').append(LoadRackshtml);
            }
        });
}
</script>
<title>上片任务管理</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn {
    height: 20px;
    line-height: 20px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
#Table_Minche thead td {
    border: 1px solid #00BFFF;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 3px 6px 3px 6px;
}
.dtable thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
.dtable thead td {
    border: 1px solid #00BFFF;
}
.dtable td {
    border:1px solid #f2f2f2;
    text-align:center;
    padding:5px 5px 5px 5px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top">
                <button class="btn" onclick="Updates()">绑定任务</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架退回二次接力')">铁架退回二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('等待退回库区')">等待退回库区</button>
            </div>
            <div>
                <div style="margin-top: 10px;margin-bottom: 30px;">
                    <table id="Table_Load" class="dtable"
                        style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                        <thead>
                            <tr>
                                <td style="text-align: center;">选择</td>
                                <td>ID</td>
                                <td>机器</td>
                                <td>上片机状态</td>
                                <td>工位编号</td>
                                <td>状态</td>
                                <td>任务ID</td>
                                <td>架号</td>
                                <td>待上数量</td>
                                <td>已上片数量</td>
                                <td>破损数量</td>
                                <td>MES状态</td>
                                <td>任务状态</td>
                                <td>启用状态</td>
                                <td>操作</td>
                            </tr>
                        </thead>
                        <tbody id="loaddata">
                        </tbody>
                    </table>
                </div>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/layouts/left.jsp
@@ -21,12 +21,30 @@
                        </span> 
                    </a>
                    <ul class="treeview-menu">
                        <li><a href="${ctx }/tasks/alltasks?taskstate=0&count=1">&nbsp;&nbsp;&nbsp;&nbsp;任务详情</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=1&count=1">&nbsp;&nbsp;&nbsp;&nbsp;未完成任务</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=2&count=1">&nbsp;&nbsp;&nbsp;&nbsp;已完成任务</a></li><!--
                        <%-- <li><a href="${ctx }/tasks/alltasks?taskstate=0">&nbsp;&nbsp;&nbsp;&nbsp;任务详情</a></li> --%>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=1">&nbsp;&nbsp;&nbsp;&nbsp;未完成任务</a></li>
                        <li><a href="${ctx }/tasks/alltasks?taskstate=2">&nbsp;&nbsp;&nbsp;&nbsp;已完成任务</a></li><!--
                        <li><a href="#">&nbsp;&nbsp;&nbsp;&nbsp;昨日统计</a></li>     -->                
                    </ul>
                </li>
                <%-- <li class="treeview">
                    <a href="#">
                        <img src="${ctx }/static/images/8.png" width="20px;" height="20px;">&nbsp;
                        <span>上片管理</span>
                        <span class="pull-right-container">
                            <i class="fa fa-angle-left pull-right"></i>
                        </span>
                    </a>
                    <ul class="treeview-menu">
                        <li><a href="${ctx }/loadTask/loadHtml?line=1">&nbsp;&nbsp;&nbsp;&nbsp;上片台1</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=2">&nbsp;&nbsp;&nbsp;&nbsp;上片台2</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=3">&nbsp;&nbsp;&nbsp;&nbsp;上片台3</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=4">&nbsp;&nbsp;&nbsp;&nbsp;上片台4</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=5">&nbsp;&nbsp;&nbsp;&nbsp;上片台5</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=6">&nbsp;&nbsp;&nbsp;&nbsp;上片台6</a></li>
                        <li><a href="${ctx }/loadTask/loadHtml?line=7">&nbsp;&nbsp;&nbsp;&nbsp;上片台7</a></li>
                    </ul>
                </li> --%>
                <li class="treeview">
                    <a href="#">
                        <img src="${ctx }/static/images/8.png" width="20px;" height="20px;">&nbsp;
@@ -39,7 +57,8 @@
                        <li><a href="${ctx }/Config/infomathion">&nbsp;&nbsp;&nbsp;&nbsp;交互信息</a></li> --%>
                        <li><a href="${ctx }/tasks/loadrackinfo">&nbsp;&nbsp;&nbsp;&nbsp;上片工位</a></li>
                        <li><a href="${ctx }/tasks/loadrackinfo2">&nbsp;&nbsp;&nbsp;&nbsp;吊装工位</a></li>            
                        <li><a href="${ctx }/Config/minche">&nbsp;&nbsp;&nbsp;&nbsp;设备状态</a></li>
                        <li><a href="${ctx }/Config/minche">&nbsp;&nbsp;&nbsp;&nbsp;设备状态</a></li>
                        <%-- <li><a href="${ctx }/Config/manualOperation">&nbsp;&nbsp;&nbsp;&nbsp;手动页面</a></li>         --%>
                    </ul>
                </li>
                
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/alltasks/tasks2.jsp
New file
@@ -0,0 +1,227 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
    <script>
    /* setInterval(function(){
        window.location.reload();
    },3000); */
    <%String state = request.getParameter("taskstate");
      String lines = request.getParameter("line");
        if (state == null)
            state = "null";
        out.print("var state='" + state + "';\r\n");
        out.print("var line='" + lines + "';\r\n");
    %>
    function newPage(Count) {
        var PageHeads=document.getElementById("PageHeads").innerHTML;
        if(PageHeads=="已完成任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=2&count="+Count+"";
        }else if(PageHeads=="未完成任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=1&count="+Count+"";
        }else if(PageHeads=="全部任务"){
            window.location.href="${ctx }/tasks/alltasks?taskstate=0&count="+Count+"";
        }
    }
    function checkAll() {
        var checkedAll=document.getElementById("checkall");
        var ischeked=false;
        if(checkedAll.checked){
            ischeked=true;
        }
        var checkboxs=document.getElementsByClassName("checkboxs");
        for(var i=0;i<checkboxs.length;i++){
            checkboxs[i].checked=ischeked;
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function TaskStusts(Types,Stusts,taskstate){
        var checkboxs=document.getElementsByClassName("checkboxs");
        for(var i=0;i<checkboxs.length;i++){
            var checkbox=checkboxs[i];
            if(checkbox.checked){
                var RowHtml=checkbox.parentNode.parentNode;
                 var TaskIdHtml=RowHtml.getElementsByClassName("OutTaskId")[0].innerHTML;
                 $.ajax({
                    cache:false,
                    type:"POST",
                    dataType : "json",
                     url:"${ctx}/tasks/TaskStusts",
                     data:{
                         "Types":Types,
                         "Stusts":Stusts,
                         "TaskIdHtml":TaskIdHtml,
                     },success:function(data){
                         location.reload();
                    }
                });
            }
        }
    }
    Initialize();
    function Initialize(){
        if(state=="0"||state=="1"||state=="2"){
            loadData(state);
        }else{
            loadData("1");
        }
    }
    function loadData(state){
        $.ajax({
            cache:false,
            type:"POST",
            dataType : "json",
             url:"${ctx}/tasks/alltasksdata",
             data:{
                 "state":state,
                 "line":line
             },
             success:function(data){
                 var OutTaskshtml="";
                 var dataheml=$('#taskdata');
                 $('#taskdata').remove();
                 $('#Table_Minche').append("<tbody id='taskdata'></tbody>");
                 for(var i=0;i<data.length;i++){
                     var row=data[i];
                     var dataheml=$('taskdata').append();
                    if(("等待开始"==row.machineStatus||"等待退回库区"==row.machineStatus)&&"正在工作"==row.machineStatus){
                        OutTaskshtml+="<tr style=\"background-color:#0dc316\">";
                    }else{
                        OutTaskshtml+="<tr>";
                    }
                    OutTaskshtml+="<td style=\"text-align: center;\"><input class=\"checkboxs\" type=\"checkbox\" /></td>";
                    OutTaskshtml+="<td>"+row.id+"</td>";
                    OutTaskshtml+="<td class=\"OutTaskId\">"+row.taskId+"</td>";
                    OutTaskshtml+="<td>"+row.taskType+"</td>";
                    OutTaskshtml+="<td>"+row.mesStatus+"</td>";
                    OutTaskshtml+="<td>"+row.machineStatus+"</td>";
                    OutTaskshtml+="<td>"+row.workStatus+"</td>";
                    OutTaskshtml+="<td>"+row.infoContent+"</td>";
                    OutTaskshtml+="<td>"+row.pkgId+"</td>";
                    OutTaskshtml+="<td>"+row.stockName+"</td>";
                    OutTaskshtml+="<td>"+row.destination+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum1+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum2+"</td>";
                    OutTaskshtml+="<td>"+row.planLoadNum3+"</td>";
                    OutTaskshtml+="<td>"+row.stockNum+"</td>";
                    OutTaskshtml+="<td>"+row.loadeNum+"</td>";
                    OutTaskshtml+="<td>"+row.posunCount+"</td>";
                    OutTaskshtml+="<td>"+row.bb+"</td>";
                    OutTaskshtml+="<td>"+row.hh+"</td>";
                    OutTaskshtml+="<td>"+row.color+"</td>";
                    OutTaskshtml+="<td>"+row.thickness+"</td>";
                    OutTaskshtml+="<td>"+row.stockNum+"</td></tr>";
                 }
                 $('#taskdata').append(OutTaskshtml);
            }
        });
    }
    </script>
<title>任务管理</title>
<style type="text/css">
*{
    padding:0px;
    margin:0px;
    font-family: "microsoft yahei","Helvetica Neue", Helvetica, Arial, sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn{
    height:35px;
    line-height:35px;
    background-color: #0dc316;
    padding:0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn{
    height:20px;
    line-height:20px;
    background-color: #0dc316;
    padding:0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr{
    background-color:#00BFFF;
    font-weight:800;
}
#Table_Minche thead td{
    border:1px solid #00BFFF;
}
#Table_Minche td{
    border:1px solid #f2f2f2;
    height:20px;
    line-height:20px;
    padding:3px 6px 3px 6px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
<!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top"><!--
                <button class="btn" onclick="TaskStusts('Pai','上片任务已开始')">上片任务已开始</button> -->
                <button class="btn" onclick="TaskStusts('MES','等待开始')">等待开始</button>
                <!-- <button class="btn" onclick="taskurl('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" onclick="taskurl('铁架已到吊装位')">铁架已到吊装位</button>
                <button class="btn" onclick="taskurl('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" onclick="taskurl('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" onclick="taskurl('上片完成允许退回')">上片完成允许退回</button>
                <button class="btn" onclick="taskurl('吊装完成请求退回')">吊装完成允许退回</button>-->
                <button class="btn" onclick="TaskStusts('MES','任务完成')">任务完成</button>
                <button class="btn" onclick="TaskStusts('Pai','派尔确认任务完成')">派尔确认任务完成</button>
            </div>
            <div>
                <div id="PageHeads" style="text-align: center;background-color:#0dc316;color:white;font-size:25px; line-height: 50px;height: 50px;">${PageHeads}</div>
                <table id="Table_Minche" style="width: 100%; border-collapse: collapse;min-width:1200px; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td style="text-align: center;"><input id="checkall" onclick="checkAll()" type="checkbox" /></td>
                            <td>ID</td>
                            <td>任务ID</td>
                            <td>任务类型</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>提示信息</td>
                            <td>原片包ID</td>
                            <td>铁架号</td>
                            <td>目的地</td>
                            <td>计划上片数量1</td>
                            <td>计划上片数量2</td>
                            <td>计划上片数量3</td>
                            <td>架上总数量</td>
                            <td>已上片数量</td>
                            <td>破损数量</td>
                            <td>原片宽</td>
                            <td>原片高</td>
                            <td>原片颜色</td>
                            <td>原片厚度</td>
                            <td>原片数量</td>
                        </tr>
                    </thead>
                    <tbody id="taskdata"></tbody>
                </table>
            </div><!--
            <div style="text-align: center;margin-top:50px;"></div> -->
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/manualOperation.jsp
New file
@@ -0,0 +1,325 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<title>手动页面</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    margin-bottom: 10px;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
table thead tr {
    background-color: #f2f2f2;
}
table {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
table th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.One td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
/*弹窗-手动添加*/
function modifyraw(){
     $("#add-fix-info").modal('show');
     initializeData();
}
/*初始化加载表格*/
initialize();
function initialize(){
    initializeTable();
}
function initializeData(){
    $('#station').empty();
    var row="<tr><td>1</td>";
    var stationOption="";
    for(var i = 1; i < 10; i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åº“位</option>";
    }
    for(var i=1101;i<=1114;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·ä¸Šç‰‡ä½</option>";
    }
    for(var i=990;i<=993;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åŠè£…位</option>";
    }
    row+="<td><select name='start'>"+stationOption+"</select></td>"+
         "<td><select name='end'>"+stationOption+"</select></td></tr>";
    $('#station').append(row);
}
var Tb={
    id:"tb1",
    style:"margin-top: 20px;",
    className:null,
    positionId:"contents",
    columns:[
            {
                text:"任务顺序",
                calssName:"id",
                index:0
            },
            {
                text:"ID",
                calssName:"id",
                index:1
            },
            {
                text:"起始地址",
                calssName:"stockName",
                index:2
            },
            {
                text:"目的地址",
                calssName:"destination",
                index:3
            },
            {
                text:"料架号",
                calssName:"stockName",
                index:4
            },
            {
                text:"任务类型",
                calssName:"taskType",
                index:5
            },
            {
                text:"操作",
                calssName:"",
                index:6
            }
    ]
}
function createTable(model,data){
    var columns=model.columns;
    var positionid=model.positionId;
    var position=document.getElementById(positionid);
    var tablehtml=document.createElement("table");
    console.log(data[0]);
    console.log(data[0][columns[0].calssName]);
    tablehtml.style=model.style;
    //头部
    var theadhtml=document.createElement("thead");
    var thRowhtml=document.createElement("tr");
    for(var thj = 0; thj < columns.length; thj++){
        var thColhtml=document.createElement("th");
        var thtext=document.createTextNode(columns[thj].text);
        thColhtml.appendChild(thtext);
        thRowhtml.appendChild(thColhtml);
    }
    theadhtml.appendChild(thRowhtml);
    //内容
    var tbodyhtml=document.createElement("tbody");
    for(var i = 0; i < data.length; i++){
        var row=data[i];
        var rowhtml=document.createElement("tr");
        for(var j = 0; j < columns.length; j++){
            var colhtml=document.createElement("td");
            var text=document.createTextNode("");
            if(!(columns[j].calssName==null||columns[j].calssName=="")){
                text=document.createTextNode(row[columns[j].calssName]);
            }
            colhtml.appendChild(text);
            rowhtml.appendChild(colhtml);
        }
        tbodyhtml.appendChild(rowhtml);
    }
    console.log(tablehtml);
    tablehtml.appendChild(theadhtml);
    tablehtml.appendChild(tbodyhtml);
    position.appendChild(tablehtml);
}
function initializeTable(){
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
             console.log(data);
             console.log(data[0][0]);
             /* for(var i = 0; i < data.length; i++){
                 data[i][0]
             }
             createTable(Tb,data); */
         }
     });
}
function initializeTable2(){
    //$('#OneContent').empty();
    /* var tablehteml="<table class='One'><thead><tr><th>任务顺序</th><th>ID</th><th>起始地址</th><th>目的地址</th><th>料架号</th><th>任务类型</th><th>操作</th></tr></thead>";
    tablehteml+="<tbody id='station'></tbody>";
    $('#Content').append(tablehteml); */
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
              console.log(data);
              var html="";
              for(var i = 0; i < data.length; i++){
                  var row=data[i];
                  html+="<tr>";
                  html+="<td>"+(i+1)+"</td>";
                  html+="<td class='taskid'>"+row.id+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.destination+row.rackNumber+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.taskType+"</td>";
                  html+="<td>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>失败</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>完成</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>取消</button>";
                  html+="</td>";
                  html+="</tr>";
              }
              $('#OneContent').append(html);
         }
     });
}
/*操作【取消/重新发送/完成】*/
function taskCancel(oneself){
    var Controls=oneself.innerHTML;
    var row=oneself.parentNode.parentNode;
    var taskid=row.getElementsByClassName("taskid")[0].innerHTML;
    console.log(Controls);
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
          url:"${ctx}/Config/updateTask",
          data:{
              "taskid":taskid,
              "Controls":Controls
          },success:function(data){
             // åˆ·æ–°å½“前页面
              //window.location.href="${ctx }/Config/updateTask;";
         }
     });
    location.reload();
}
</script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <section class="content-header">
            <div id="Top">
                <!-- <button class="btn" style="background-color: #fd5f56;" onclick="delAll()">批量删除</button> -->
                <button class="btn" onclick="modifyraw()">添加手动任务</button>
                <span style="float: right; line-height: 40px"></span>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">添加手动任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- æœºå™¨é€»è¾‘配置添加 -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>起始地址</th>
                                            <th>目标地址</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody id="station">
                                    </tbody>
                                </table>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default btn-lg" data-dismiss="modal">关闭</button>
                                <button type="submit" class="btn btn-primary btn-lg" id="addbtnsubmit">提交</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
        <section class="content container-fluid">
            <div id="contents">
                <!-- <table class="One">
                    <thead>
                        <tr>
                            <th>任务顺序</th>
                            <th>ID</th>
                            <th>起始地址</th>
                            <th>目的地址</th>
                            <th>料架号</th>
                            <th>任务类型</th>
                            <th>操作</th>
                        </tr>
                    </thead>
                    <tbody id='OneContent'>
                    </tbody> -->
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/minche.jsp
@@ -36,28 +36,65 @@
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight:800;
    font-weight: 800;
}
#Table_Minche thead td{
    border:1px solid #00BFFF;
#Table_Minche thead td {
    border: 1px solid #00BFFF;
    padding: 5px 10px 5px 10px;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    text-align:center;
    text-align: center;
    padding: 2px 10px 2px 10px;
}
.two thead tr {
    background-color: #f2f2f2;
}
.two {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
.two th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    setInterval(function(){
    window.location.reload();
      },3000);
    //启动定时器,func是参数,所以不能使用括号
    var interval = setInterval(func,3000);  //启动,func不能使用括号
    function func(){
        window.location.reload();
      }
    function start(){
        //重新启动
        interval = setInterval(func, 3000);
      }
    function modifyraw(){
         disableAutoRefresh()
         $("#add-fix-info").modal('show');
        // åœæ­¢å®šæ—¶å™¨
        clearInterval(interval);
         $("#add-fix-info").modal('show');
    }
    function checkAll() {
        var checkedAll=document.getElementById("checkall");
@@ -92,34 +129,75 @@
        }
    }
    </script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!-- å†…容 -->
        <section class="content container-fluid">
            <div>
                <table id="Table_Minche" style="width: 100%;min-width:1200px; border-collapse: collapse; border-spacing: 0;">
                <button class="btn" onclick="modifyraw()">仓储任务</button>
                <table id="Table_Minche"
                    style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td>ID</td>
                            <td>机器名称</td>
                            <td>任务ID</td>
                            <td>任务ID</td>
                            <td>铁架号</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>机器状态</td>
                            <td>等待数量</td>
                            <td>报警信息</td>
                            <td style="width:200px;">操作</td>
                            <td style="width: 200px;">操作</td>
                        </tr>
                    </thead>
                    <tbody>
                        ${MachineOutTaskhtmls}
                    <tbody>${MachineOutTaskhtmls}
                    </tbody>
                </table>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" onclick="start()" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">仓储待执行任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- ä»»åŠ¡æ˜¾ç¤º -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>任务ID</th>
                                            <th>料架号</th>
                                            <th>目的线路</th>
                                            <th>目标工位</th>
                                            <th>计划上片数量</th>
                                            <th>料架上玻璃数量</th>
                                            <th>类型</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody>${outTasksTasks}
                                    </tbody>
                                </table>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/configuration/taskInfos.jsp
New file
@@ -0,0 +1,325 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<title></title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    margin-bottom: 10px;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
table thead tr {
    background-color: #f2f2f2;
}
table {
    width: 100%;
    border-collapse: collapse;
    text-align:center;
}
table th {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
    text-align:center;
}
.One td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
.two td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 9px 15px 9px 15px;
}
</style>
<script type="text/javascript" src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
/*弹窗-手动添加*/
function modifyraw(){
     $("#add-fix-info").modal('show');
     initializeData();
}
/*初始化加载表格*/
initialize();
function initialize(){
    initializeTable();
}
function initializeData(){
    $('#station').empty();
    var row="<tr><td>1</td>";
    var stationOption="";
    for(var i = 1; i < 10; i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åº“位</option>";
    }
    for(var i=1101;i<=1114;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·ä¸Šç‰‡ä½</option>";
    }
    for(var i=990;i<=993;i++){
        stationOption+="<option value='"+i+"'>"+i+" å·åŠè£…位</option>";
    }
    row+="<td><select name='start'>"+stationOption+"</select></td>"+
         "<td><select name='end'>"+stationOption+"</select></td></tr>";
    $('#station').append(row);
}
var Tb={
    id:"tb1",
    style:"margin-top: 20px;",
    className:null,
    positionId:"contents",
    columns:[
            {
                text:"任务顺序",
                calssName:"id",
                index:0
            },
            {
                text:"ID",
                calssName:"id",
                index:1
            },
            {
                text:"起始地址",
                calssName:"stockName",
                index:2
            },
            {
                text:"目的地址",
                calssName:"destination",
                index:3
            },
            {
                text:"料架号",
                calssName:"stockName",
                index:4
            },
            {
                text:"任务类型",
                calssName:"taskType",
                index:5
            },
            {
                text:"操作",
                calssName:"",
                index:6
            }
    ]
}
function createTable(model,data){
    var columns=model.columns;
    var positionid=model.positionId;
    var position=document.getElementById(positionid);
    var tablehtml=document.createElement("table");
    console.log(data[0]);
    console.log(data[0][columns[0].calssName]);
    tablehtml.style=model.style;
    //头部
    var theadhtml=document.createElement("thead");
    var thRowhtml=document.createElement("tr");
    for(var thj = 0; thj < columns.length; thj++){
        var thColhtml=document.createElement("th");
        var thtext=document.createTextNode(columns[thj].text);
        thColhtml.appendChild(thtext);
        thRowhtml.appendChild(thColhtml);
    }
    theadhtml.appendChild(thRowhtml);
    //内容
    var tbodyhtml=document.createElement("tbody");
    for(var i = 0; i < data.length; i++){
        var row=data[i];
        var rowhtml=document.createElement("tr");
        for(var j = 0; j < columns.length; j++){
            var colhtml=document.createElement("td");
            var text=document.createTextNode("");
            if(!(columns[j].calssName==null||columns[j].calssName=="")){
                text=document.createTextNode(row[columns[j].calssName]);
            }
            colhtml.appendChild(text);
            rowhtml.appendChild(colhtml);
        }
        tbodyhtml.appendChild(rowhtml);
    }
    console.log(tablehtml);
    tablehtml.appendChild(theadhtml);
    tablehtml.appendChild(tbodyhtml);
    position.appendChild(tablehtml);
}
function initializeTable(){
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
             console.log(data);
             console.log(data[0][0]);
             /* for(var i = 0; i < data.length; i++){
                 data[i][0]
             }
             createTable(Tb,data); */
         }
     });
}
function initializeTable2(){
    //$('#OneContent').empty();
    /* var tablehteml="<table class='One'><thead><tr><th>任务顺序</th><th>ID</th><th>起始地址</th><th>目的地址</th><th>料架号</th><th>任务类型</th><th>操作</th></tr></thead>";
    tablehteml+="<tbody id='station'></tbody>";
    $('#Content').append(tablehteml); */
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
         url:"${ctx}/Config/selectOutTasks",
         success:function(data){
              console.log(data);
              var html="";
              for(var i = 0; i < data.length; i++){
                  var row=data[i];
                  html+="<tr>";
                  html+="<td>"+(i+1)+"</td>";
                  html+="<td class='taskid'>"+row.id+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.destination+row.rackNumber+"</td>";
                  html+="<td>"+row.stockName+"</td>";
                  html+="<td>"+row.taskType+"</td>";
                  html+="<td>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>失败</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>完成</button>";
                  html+="<button class='btn btn-default btn-lg' style='margin-right:10px;' onclick='taskCancel(this)'>取消</button>";
                  html+="</td>";
                  html+="</tr>";
              }
              $('#OneContent').append(html);
         }
     });
}
/*操作【取消/重新发送/完成】*/
function taskCancel(oneself){
    var Controls=oneself.innerHTML;
    var row=oneself.parentNode.parentNode;
    var taskid=row.getElementsByClassName("taskid")[0].innerHTML;
    console.log(Controls);
    $.ajax({
         cache:false,
         type:"POST",
         dataType : "json",
          url:"${ctx}/Config/updateTask",
          data:{
              "taskid":taskid,
              "Controls":Controls
          },success:function(data){
             // åˆ·æ–°å½“前页面
              //window.location.href="${ctx }/Config/updateTask;";
         }
     });
    location.reload();
}
</script>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <section class="content-header">
            <div id="Top">
                <!-- <button class="btn" style="background-color: #fd5f56;" onclick="delAll()">批量删除</button> -->
                <button class="btn" onclick="modifyraw()">添加手动任务</button>
                <span style="float: right; line-height: 40px"></span>
            </div>
            <div class="modal fade" id="add-fix-info" tabindex="-1" role="dialog"
                aria-labelledby="myModalLabel" aria-hidden="true">
                <div class="modal-dialog" style="width: 100%; height: 100%;">
                    <div class="modal-content"
                        style="width: 1000px; margin: auto;">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal"
                                aria-hidden="true" data-backdrop="static">&times;</button>
                            <h3 class="modal-title" id="myModalLabel" style="font-weight: bolder;">添加手动任务</h3>
                        </div>
                        <!--提交-->
                        <form class="form-horizontal" role="form" id="category_add" action="${ctx}/Config/addTask" method="post">
                            <div style="margin-top: 20px;">
                                <!-- æœºå™¨é€»è¾‘配置添加 -->
                                <table class="two" id="addManualOperation">
                                    <thead>
                                        <tr>
                                            <th>序号</th>
                                            <th>起始地址</th>
                                            <th>目标地址</th>
                                            <!-- <th>操作</th> -->
                                        </tr>
                                    </thead>
                                    <tbody id="station">
                                    </tbody>
                                </table>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default btn-lg" data-dismiss="modal">关闭</button>
                                <button type="submit" class="btn btn-primary btn-lg" id="addbtnsubmit">提交</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </section>
        <section class="content container-fluid">
            <div id="contents">
                <!-- <table class="One">
                    <thead>
                        <tr>
                            <th>任务顺序</th>
                            <th>ID</th>
                            <th>起始地址</th>
                            <th>目的地址</th>
                            <th>料架号</th>
                            <th>任务类型</th>
                            <th>操作</th>
                        </tr>
                    </thead>
                    <tbody id='OneContent'>
                    </tbody> -->
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/loadtask/loadMachine.jsp
New file
@@ -0,0 +1,391 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    /* setInterval(function(){
        window.location.reload();
    },3000); */
<%String state = request.getParameter("taskstate");
            String lines = request.getParameter("line");
            if (state == null)
                state = "null";
            out.print("var state='" + state + "';\r\n");
            out.print("var line='" + lines + "';\r\n");%>
    function checkAll() {
        var checkedAll = document.getElementsByClassName("checkall")[0];
        var ischeked = false;
        if (checkedAll.checked) {
            ischeked = true;
        }
        var checkboxs = document.getElementById(tablename).getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            checkboxs[i].checked = ischeked;
        }
    }
    function loadcheckAll() {
        var checkedAll = document.getElementsByClassName("loadcheckall")[0];
        var ischeked = false;
        if (checkedAll.checked) {
            ischeked = true;
        }
        var checkboxs = document.getElementById(tablename).getElementsByClassName("loadcheckboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            checkboxs[i].checked = ischeked;
        }
    }
    /*修改保存  */
    function Updates(){
        var checkboxs=document.getElementsByClassName("loadcheckboxs");
/*         var RowHtml="";
        var RackIdHtml="";
         var TaskIdHtml=""; */
        for(var i=0;i<checkboxs.length;i++){
            var checkbox=checkboxs[i];
            if(checkbox.checked){
                var RowHtml=checkbox.parentNode.parentNode;
                var RackIdHtml=RowHtml.getElementsByClassName("RackId")[0].innerHTML;
                 var TaskIdHtml=RowHtml.getElementsByClassName("OutTaskId")[0].value;
                 $.ajax({
                    cache:false,
                    type:"POST",
                    dataType : "json",
                     url:"${ctx}/tasks/Updates",
                     data:{
                         "RackId":RackIdHtml,
                         "TaskIdHtml":TaskIdHtml,
                     },success:function(data){
                         window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                    }
                });
                 break;
            }
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function TaskStusts(Stusts) {
        var table=document.getElementById("Table_Minche");
        var checkboxs = table.getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            var checkbox = checkboxs[i];
            if (checkbox.checked) {
                var RowHtml = checkbox.parentNode.parentNode;
                var TaskIdHtml = RowHtml.getElementsByClassName("OutTaskId")[0].innerHTML;
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/updateTask",
                    data : {
                        "Stusts" : Stusts,
                        "TaskIdHtml" : TaskIdHtml,
                    },
                    success : function(data) {
                        window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                        //console.log(data);
                        /* location.reload(); */
                    }
                });
            }
        }
    }
    /* æ ‡è®°   ç±»åž‹ ï¼Œ çŠ¶æ€ */
    function loadTaskStusts(Stusts) {
        var table=document.getElementById("Table_Load");
        var checkboxs = table.getElementsByClassName("checkboxs");
        for (var i = 0; i < checkboxs.length; i++) {
            var checkbox = checkboxs[i];
            if (checkbox.checked) {
                var RowHtml = checkbox.parentNode.parentNode;
                var TaskIdHtml = RowHtml.getElementsByClassName("OutTaskId")[0].value;
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/updateTask",
                    data : {
                        "Stusts" : Stusts,
                        "TaskIdHtml" : TaskIdHtml,
                    },
                    success : function(data) {
                        window.location.href="${ctx }/loadTask/loadHtml?line="+line;
                        //console.log(data);
                        /* location.reload(); */
                    }
                });
            }
        }
    }
    Initialize();
    function Initialize() {
        loadData();
        loadDataRack();
    }
    function loadDataRack() {
        $.ajax({
            cache : false,
            type : "POST",
            dataType : "json",
            url : "${ctx}/loadTask/loadRackLine",
            data : {
                "line" : line
            },
            success : function(data) {
                console.log(data);
                var LoadRackshtml = "";
                $('#loaddata').remove();
                $('#Table_Load').append("<tbody id='loaddata'></tbody>");
                for (var i = 0; i < data.length; i++) {
                    var row = data[i];
                    LoadRackshtml+="<tr><td style=\"text-align: center;\"><input class=\"loadcheckboxs\" type=\"checkbox\" /></td>";
                    LoadRackshtml+="<td class=\"RackId\">"+row.id+"</td>";
                    if(row.id%2!=0){
                        LoadRackshtml+="<td rowspan='2'>"+row.rackName+"</td>";
                        LoadRackshtml+="<td rowspan='2'>"+row.machineLoad.workState+"</td>";
                    }
                    LoadRackshtml+="<td>"+row.number+"</td>";
                    LoadRackshtml+="<td>"+row.state+"</td>";
                    if(row.outTasks==undefined||row.outTasks==null){
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value=''/></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                    }else{
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value='"+row.outTasks.taskId+"'/></td>";
                        LoadRackshtml+="<td>"+row.outTasks.stockName+"</td>";
                        LoadRackshtml+="<td>"+(row.outTasks.planLoadNum1+row.outTasks.planLoadNum2+row.outTasks.planLoadNum3)+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.stockNum+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.posunCount+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.machineStatus+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.workStatus+"</td>";
                    }
                    LoadRackshtml+="<td>"+"</td>";
                    LoadRackshtml+="<td>"+"</td>"
                             + "</tr>";
                }
                $('#loaddata').append(LoadRackshtml);
            }
        });
}
    function loadData() {
                $.ajax({
                    cache : false,
                    type : "POST",
                    dataType : "json",
                    url : "${ctx}/loadTask/notFinshTask",
                    data : {
                        "line" : line
                    },
                    success : function(data) {
                        console.log(data);
                        var OutTaskshtml = "";
                        $('#taskdata').remove();
                        $('#Table_Minche').append(
                                "<tbody id='taskdata'></tbody>");
                        for (var i = 0; i < data.length; i++) {
                            var row = data[i];
                            if (("等待开始" == row.machineStatus || "等待退回库区" == row.machineStatus)
                                    && "正在工作" == row.machineStatus) {
                                OutTaskshtml += "<tr style=\"background-color:#0dc316\">";
                            } else {
                                OutTaskshtml += "<tr>";
                            }
                            OutTaskshtml += "<td style=\"text-align: center;\"><input class=\"checkboxs\" type=\"checkbox\" /></td>";
                            OutTaskshtml += "<td>" + row.id + "</td>";
                            OutTaskshtml += "<td class=\"OutTaskId\">"
                                    + row.taskId + "</td>";
                            OutTaskshtml += "<td>" + row.taskType + "</td>";
                            OutTaskshtml += "<td>" + row.mesStatus + "</td>";
                            OutTaskshtml += "<td>" + row.machineStatus
                                    + "</td>";
                            OutTaskshtml += "<td>" + row.workStatus + "</td>";
                            OutTaskshtml += "<td>" + row.infoContent + "</td>";
                            OutTaskshtml += "<td>" + row.pkgId + "</td>";
                            OutTaskshtml += "<td>" + row.stockName + "</td>";
                            OutTaskshtml += "<td>" + row.destination + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum1 + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum2 + "</td>";
                            OutTaskshtml += "<td>" + row.planLoadNum3 + "</td>";
                            OutTaskshtml += "<td>" + row.stockNum + "</td>";
                            OutTaskshtml += "<td>" + row.loadeNum + "</td>";
                            OutTaskshtml += "<td>" + row.posunCount + "</td>";
                            OutTaskshtml += "<td>" + row.bb + "</td>";
                            OutTaskshtml += "<td>" + row.hh + "</td>";
                            OutTaskshtml += "<td>" + row.color + "</td>";
                            OutTaskshtml += "<td>" + row.thickness + "</td>";
                            OutTaskshtml += "<td>" + row.stockNum
                                    + "</td></tr>";
                        }
                        $('#taskdata').append(OutTaskshtml);
                    }
                });
    }
</script>
<title>上片任务管理</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn {
    height: 20px;
    line-height: 20px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
#Table_Minche thead td {
    border: 1px solid #00BFFF;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 3px 6px 3px 6px;
}
.dtable thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
.dtable thead td {
    border: 1px solid #00BFFF;
}
.dtable td {
    border:1px solid #f2f2f2;
    text-align:center;
    padding:5px 5px 5px 5px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top">
                <button class="btn" onclick="Updates()">绑定任务</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架退回二次接力')">铁架退回二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('等待退回库区')">等待退回库区</button>
            </div>
            <div>
                <div id="PageHeads" style="text-align: center; background-color: #0dc316; color: white; font-size: 25px; line-height: 50px; height: 50px;"></div>
                <div style="margin-top: 10px;margin-bottom: 30px;">
                    <table id="Table_Load" class="dtable"
                        style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                        <thead>
                            <tr>
                                <td style="text-align: center;"><input type="checkbox"
                                    class="loadcheckall" onclick="loadcheckAll()" /></td>
                                <td>ID</td>
                                <td>机器</td>
                                <td>上片机状态</td>
                                <td>工位编号</td>
                                <td>状态</td>
                                <td>任务ID</td>
                                <td>架号</td>
                                <td>待上数量</td>
                                <td>已上片数量</td>
                                <td>破损数量</td>
                                <td>MES状态</td>
                                <td>任务状态</td>
                                <td>启用状态</td>
                                <td>操作</td>
                            </tr>
                        </thead>
                        <tbody id="loaddata">
                        </tbody>
                    </table>
                </div>
                <div id="Top">
                    <button class="btn" onclick="TaskStusts('等待开始')">等待开始</button>
                    <button class="btn" onclick="TaskStusts('任务完成')">任务完成</button>
                    <button class="btn" onclick="TaskStusts('派尔确认任务完成')">派尔确认任务完成</button>
                </div>
                <table id="Table_Minche"
                    style="width: 100%; border-collapse: collapse; min-width: 1200px; border-spacing: 0;">
                    <thead>
                        <tr>
                            <td style="text-align: center;"><input class="checkall"
                                onclick="checkAll('Table_Minche')" type="checkbox" /></td>
                            <td>ID</td>
                            <td>任务ID</td>
                            <td>任务类型</td>
                            <td>派尔状态</td>
                            <td>MES状态</td>
                            <td>工作状态</td>
                            <td>提示信息</td>
                            <td>原片包ID</td>
                            <td>铁架号</td>
                            <td>目的地</td>
                            <td>计划上片数量1</td>
                            <td>计划上片数量2</td>
                            <td>计划上片数量3</td>
                            <td>架上总数量</td>
                            <td>已上片数量</td>
                            <td>破损数量</td>
                            <td>原片宽</td>
                            <td>原片高</td>
                            <td>原片颜色</td>
                            <td>原片厚度</td>
                            <td>原片数量</td>
                        </tr>
                    </thead>
                    <tbody id="taskdata"></tbody>
                </table>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/gmms2-1.0-SNAPSHOT/WEB-INF/views/loadtask/loadTask.jsp
New file
@@ -0,0 +1,190 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<html>
<head>
<script type="text/javascript"
    src="${ctx}/static/jquery/jquery-3.1.0.min.js"></script>
<script>
    setInterval(function(){
        Initialize();
    },1000);
<%String lines = request.getParameter("line");
out.print("var line='" + lines + "';\r\n");%>
    Initialize();
    function Initialize() {
        loadDataRack();
    }
    function loadDataRack() {
        $.ajax({
            cache : false,
            type : "POST",
            dataType : "json",
            url : "${ctx}/loadTask/loadRackLine",
            data : {
                "line" : line
            },
            success : function(data) {
                console.log(data);
                var LoadRackshtml = "";
                $('#loaddata').remove();
                $('#Table_Load').append("<tbody id='loaddata'></tbody>");
                for (var i = 0; i < data.length; i++) {
                    var row = data[i];
                    LoadRackshtml+="<tr><td style=\"text-align: center;\"><input class=\"loadcheckboxs\" type=\"checkbox\" /></td>";
                    LoadRackshtml+="<td class=\"RackId\">"+row.id+"</td>";
                    if(row.id%2!=0){
                        LoadRackshtml+="<td rowspan='2'>"+row.rackName+"</td>";
                        LoadRackshtml+="<td rowspan='2'>"+row.machineLoad.workState+"</td>";
                    }
                    LoadRackshtml+="<td>"+row.number+"</td>";
                    LoadRackshtml+="<td>"+row.state+"</td>";
                    if(row.outTasks==undefined||row.outTasks==null){
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value=''/></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td style=\"width:100px;\"></td>";
                        LoadRackshtml+="<td></td>";
                        LoadRackshtml+="<td></td>";
                    }else{
                        LoadRackshtml+="<td><input style=\"width:70px;\" class=\"OutTaskId\" type=\"text\" value='"+row.outTasks.taskId+"'/></td>";
                        LoadRackshtml+="<td>"+row.outTasks.stockName+"</td>";
                        LoadRackshtml+="<td>"+(row.outTasks.planLoadNum1+row.outTasks.planLoadNum2+row.outTasks.planLoadNum3)+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.stockNum+"</td>";
                        LoadRackshtml+="<td style=\"width:100px;\">"+row.outTasks.posunCount+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.machineStatus+"</td>";
                        LoadRackshtml+="<td>"+row.outTasks.workStatus+"</td>";
                    }
                    LoadRackshtml+="<td>"+"</td>";
                    LoadRackshtml+="<td>"+"</td>"
                             + "</tr>";
                }
                $('#loaddata').append(LoadRackshtml);
            }
        });
}
</script>
<title>上片任务管理</title>
<style type="text/css">
* {
    padding: 0px;
    margin: 0px;
    font-family: "microsoft yahei", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
}
#Top {
    display: block;
    padding: 5px;
    padding-left: 6px;
    padding-right: 15px;
    line-height: 22px;
    /* border-left: 5px solid #15c142; */
    border-radius: 0 2px 2px 0;
    background-color: #f2f2f2;
}
.btn {
    height: 35px;
    line-height: 35px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
.Rowbtn {
    height: 20px;
    line-height: 20px;
    background-color: #0dc316;
    padding: 0 15px;
    color: #fff;
    border: none;
    border-radius: 2px;
}
#Table_Minche thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
#Table_Minche thead td {
    border: 1px solid #00BFFF;
}
#Table_Minche td {
    border: 1px solid #f2f2f2;
    height: 20px;
    line-height: 20px;
    padding: 3px 6px 3px 6px;
}
.dtable thead tr {
    background-color: #00BFFF;
    font-weight: 800;
}
.dtable thead td {
    border: 1px solid #00BFFF;
}
.dtable td {
    border:1px solid #f2f2f2;
    text-align:center;
    padding:5px 5px 5px 5px;
}
</style>
</head>
<body>
    <div class="content-wrapper" style="background-color: white;">
        <!--         <section class="content-header"></section> -->
        <section class="content container-fluid">
            <div id="Top">
                <button class="btn" onclick="Updates()">绑定任务</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到二次接力')">铁架已到二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架已到上片位')">铁架已到上片位</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('上片完成请求退回')">上片完成请求退回</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('铁架退回二次接力')">铁架退回二次接力</button>
                <button class="btn" style="margin-left:10px;" onclick="loadTaskStusts('等待退回库区')">等待退回库区</button>
            </div>
            <div>
                <div style="margin-top: 10px;margin-bottom: 30px;">
                    <table id="Table_Load" class="dtable"
                        style="width: 100%; min-width: 1200px; border-collapse: collapse; border-spacing: 0;">
                        <thead>
                            <tr>
                                <td style="text-align: center;">选择</td>
                                <td>ID</td>
                                <td>机器</td>
                                <td>上片机状态</td>
                                <td>工位编号</td>
                                <td>状态</td>
                                <td>任务ID</td>
                                <td>架号</td>
                                <td>待上数量</td>
                                <td>已上片数量</td>
                                <td>破损数量</td>
                                <td>MES状态</td>
                                <td>任务状态</td>
                                <td>启用状态</td>
                                <td>操作</td>
                            </tr>
                        </thead>
                        <tbody id="loaddata">
                        </tbody>
                    </table>
                </div>
            </div>
        </section>
    </div>
</body>
</html>
½­ËÕ𩾧ÏîÄ¿/Haojing/target/m2e-wtp/web-resources/META-INF/maven/com.northglass/gmms2/pom.properties
@@ -1,7 +1,7 @@
#Generated by Maven Integration for Eclipse
#Mon Jan 17 08:08:31 CST 2022
#Thu Aug 29 16:29:41 CST 2024
version=1.0-SNAPSHOT
groupId=com.northglass
m2e.projectName=Haojing
m2e.projectLocation=D\:\\workeclipse\\Haojing
m2e.projectName=Haojing7-20
m2e.projectLocation=D\:\\workeclipse\\Haojing7-20
artifactId=gmms2
½­ËÕ𩾧ÏîÄ¿/Haojing/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven
#Tue Jan 04 22:54:39 CST 2022
#Thu Aug 29 10:31:24 CST 2024
version=1.0-SNAPSHOT
groupId=com.northglass
artifactId=gmms2
½­ËÕ𩾧ÏîÄ¿/Haojing/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -2,6 +2,7 @@
com\northglass\constants\StateConstants$GlassArrangeState.class
com\northglass\entity\OutTasks.class
com\northglass\listener\ClientListener.class
com\northglass\service\device\ToolService.class
com\northglass\constants\StateConstants$RawPackageTxtState.class
com\northglass\constants\FunctionNumber$GrindFaceMachineFunctionNumber.class
com\northglass\util\CRCUtil.class
@@ -23,9 +24,11 @@
com\northglass\service\common\AbstractMessageProcessor.class
com\northglass\log\GLoggerFactory.class
com\northglass\constants\MachineState.class
com\northglass\web\alltasks\loadTaskController.class
com\northglass\constants\StateConstants$ManufactureBatchState.class
com\northglass\constants\StateConstants$ArrangeMachineTaskState.class
com\northglass\constants\StateConstants$LoadMachineState.class
com\northglass\service\device\ApiHttp.class
com\northglass\constants\StateConstants$CountMachineState.class
com\northglass\constants\StateConstants$GrindFaceMachineState.class
com\northglass\repository\UserDao.class
@@ -51,6 +54,7 @@
com\northglass\web\alltasks\tasksController.class
com\northglass\repository\MachinesTypeDao.class
com\northglass\entity\LoadRack.class
com\northglass\service\task\LoadTaskService.class
com\northglass\util\ExcelUtil.class
com\northglass\rest\RestExceptionHandler.class
com\northglass\constants\StateConstants$LightTaskState.class
½­ËÕ𩾧ÏîÄ¿/Haojing/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,72 +1,76 @@
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\WebColor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\TelecomsService\TelecomsService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\device\Device.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\ShelfTaskType.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\account\UserAdminController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\MessageType.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\ExcelUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\ServiceException.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\account\ProfileController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\ConnectState.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\StateConstants.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\UserDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\LoadRackDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\account\RegisterController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\common\AbstractMessageService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\CRCUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\manage\ManageController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\common\AbstractMachineService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\OutTasksDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\IdEntity.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\Machine.java
D:\workeclipse\Haojing\src\main\java\com\northglass\rest\RestException.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\MachineType.java
D:\workeclipse\Haojing\src\main\java\com\northglass\rest\TaskRestController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\home\HomeController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\common\ServiceInterface.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\AbstractMachineClient.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\GlassColor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\applicationListener\InitializeSystemApplicationListener.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\ShelfTaskFlag.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\JbarcodeUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\message\MessageProcessor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\configuration\ConfigController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\MachinesTypeDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\HexUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\AbstractMachine.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\common\AbstractMessageProcessor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\MachineDispose.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\SetupUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\AbstractMessage.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\Task.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\account\AccountService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\ArrangeMachineTaskType.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\task\TaskService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\listener\MachineClientListener.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\system\SystemService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\User.java
D:\workeclipse\Haojing\src\main\java\com\northglass\listener\ServerListener.java
D:\workeclipse\Haojing\src\main\java\com\northglass\rest\RestExceptionHandler.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\FunctionNumber.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\MachineDisposeDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\manage\CutManageController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\log\GLoggerConstants.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\account\ShiroDbRealm.java
D:\workeclipse\Haojing\src\main\java\com\northglass\constants\MachineState.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\Telecoms.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\message\AbstractMessageProcessor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\alltasks\tasksController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\json\JsonTimeValueProcessor.java
D:\workeclipse\Haojing\src\main\java\com\northglass\util\FolderUtil.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\account\LoginController.java
D:\workeclipse\Haojing\src\main\java\com\northglass\web\home\Test.java
D:\workeclipse\Haojing\src\main\java\com\northglass\service\device\DeviceService.java
D:\workeclipse\Haojing\src\main\java\com\northglass\log\GLoggerFactory.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\TelecomsDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\MachineDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\LoadRack.java
D:\workeclipse\Haojing\src\main\java\com\northglass\listener\AbstractServerListener.java
D:\workeclipse\Haojing\src\main\java\com\northglass\listener\ClientListener.java
D:\workeclipse\Haojing\src\main\java\com\northglass\repository\TaskDao.java
D:\workeclipse\Haojing\src\main\java\com\northglass\entity\OutTasks.java
D:\workeclipse\Haojing\src\main\java\com\northglass\listener\ServerConnection.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\task\TaskService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\TelecomsDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\task\LoadTaskService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\home\Test.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\User.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\CRCUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\JbarcodeUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\applicationListener\InitializeSystemApplicationListener.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\Machine.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\configuration\ConfigController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\MachineType.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\Task.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\GlassColor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\log\GLoggerFactory.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\listener\ClientListener.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\ShelfTaskType.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\MachineDispose.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\TaskDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\common\ServiceInterface.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\rest\RestException.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\device\DeviceService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\ExcelUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\TelecomsService\TelecomsService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\device\Device.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\MachineState.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\message\MessageProcessor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\MachineDisposeDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\account\LoginController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\json\JsonTimeValueProcessor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\UserDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\WebColor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\listener\ServerConnection.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\alltasks\tasksController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\IdEntity.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\listener\ServerListener.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\ConnectState.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\ShelfTaskFlag.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\account\UserAdminController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\HexUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\MachineDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\SetupUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\system\SystemService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\ServiceException.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\account\ShiroDbRealm.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\FunctionNumber.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\home\HomeController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\util\FolderUtil.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\listener\MachineClientListener.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\rest\TaskRestController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\manage\ManageController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\alltasks\loadTaskController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\device\ToolService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\message\AbstractMessageProcessor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\StateConstants.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\rest\RestExceptionHandler.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\manage\CutManageController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\common\AbstractMessageProcessor.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\account\RegisterController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\MessageType.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\OutTasks.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\listener\AbstractServerListener.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\web\account\ProfileController.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\log\GLoggerConstants.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\LoadRackDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\AbstractMessage.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\device\ApiHttp.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\LoadRack.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\AbstractMachine.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\Telecoms.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\OutTasksDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\constants\ArrangeMachineTaskType.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\common\AbstractMessageService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\common\AbstractMachineService.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\entity\AbstractMachineClient.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\repository\MachinesTypeDao.java
D:\workeclipse\Haojing7-20\src\main\java\com\northglass\service\account\AccountService.java