From 35ae54320befb54df4dd7e8b2cf81680c951720b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <xltys1995>
Date: 星期一, 21 二月 2022 14:33:49 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/VersionUtils.java              |   85 +-
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |    8 
 src/main/java/com/zy/core/thread/MelsecCrnThread.java          |   17 
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |    1 
 src/main/resources/mapper/LocDetlMapper.xml                    |   21 
 src/main/webapp/static/css/pipeline.css                        |   10 
 src/main/webapp/views/pipeline.html                            |   45 
 src/main/java/com/zy/asrs/controller/CrnController.java        |    1 
 src/main/resources/mapper/WrkDetlMapper.xml                    |   17 
 src/main/webapp/views/crn.html                                 |   69 +-
 src/main/java/com/zy/asrs/entity/LocDetl.java                  |   63 +
 src/main/webapp/views/index.html                               |   70 +-
 src/main/webapp/static/css/crn.css                             |   12 
 src/main/java/com/zy/asrs/entity/WrkDetl.java                  |   79 +-
 src/main/webapp/static/css/console.css                         | 1001 +++++++++++++++++-----------------
 src/main/webapp/static/css/index.css                           |   78 +-
 src/main/java/com/zy/core/thread/SiemensDevpThread.java        |    6 
 src/main/resources/application.yml                             |   38 
 18 files changed, 832 insertions(+), 789 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 52fadad..6376556 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -420,6 +420,7 @@
                 crnCommand.setCrnNo(crn.getId()); // 鍫嗗灈鏈虹紪鍙�
                 crnCommand.setTaskMode(CrnTaskModeType.CLEAR);
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+                crnCommand.setCommand((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 // 寤舵椂鍙戦��
                 Thread.sleep(1000L);
                 if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, crnCommand))) {
diff --git a/src/main/java/com/zy/asrs/entity/LocDetl.java b/src/main/java/com/zy/asrs/entity/LocDetl.java
index 097ad3e..9899b48 100644
--- a/src/main/java/com/zy/asrs/entity/LocDetl.java
+++ b/src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -22,46 +22,53 @@
 
     private static final long serialVersionUID = 1L;
 
+
     @ApiModelProperty(value= "搴撲綅鍙�")
     @TableId(value = "loc_no", type = IdType.INPUT)
     @TableField("loc_no")
     private String locNo;
 
-    @ApiModelProperty(value= "鍟嗗搧缂栧彿")
-    @TableId(value = "matnr", type = IdType.INPUT)
-    private String matnr;
+    @ApiModelProperty(value= "浜у搧缂栫爜")
+    @TableId(value = "mat_no", type = IdType.INPUT)
+    @TableField("mat_no")
+    private String matNo;
 
-    @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
-    private String maktx;
+    @ApiModelProperty(value= "浜у搧鍚嶇О")
+    @TableId(value = "mat_name")
+    @TableField("mat_name")
+    private String matName;
 
     @ApiModelProperty(value= "瑙勬牸")
-    private String lgnum;
+    private String specs;
 
-    @ApiModelProperty(value= "鍨嬪彿")
-    private String type;
+    @ApiModelProperty(value= "灏哄")
+    private String size;
 
-    @ApiModelProperty(value= "鏉$爜")
+    @ApiModelProperty(value= "棰滆壊")
     private String color;
 
-    @ApiModelProperty(value= "鎵瑰彿")
+    @ApiModelProperty(value= "鍗曢噸")
+    private Double weight;
+
+    @ApiModelProperty(value= "渚涘簲鍟�")
     private String supplier;
 
-    @ApiModelProperty(value= "鍗曟嵁缂栧彿")
+    @ApiModelProperty(value= "浠撳簱")
     private String warehouse;
 
-    @ApiModelProperty(value= "鍝侀」鏁�")
+    @ApiModelProperty(value= "鍝佺墝")
     private String brand;
 
     @ApiModelProperty(value= "鏁伴噺")
-    private Double anfme;
+    private Double qty;
 
     @ApiModelProperty(value= "鍗曚綅")
-    private String altme;
+    private String unit;
 
     @ApiModelProperty(value= "鎵樼洏鏉$爜")
     private String zpallet;
 
-    @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
+    @ApiModelProperty(value= "鐢ㄦ埛ID")
     private String bname;
 
     @ApiModelProperty(value= "澶囨敞")
@@ -82,6 +89,31 @@
     @ApiModelProperty(value= "娣诲姞鏃堕棿")
     @TableField("appe_time")
     private Date appeTime;
+
+    @TableField("bill_no")
+    private String billNo;
+
+    @TableField("seq_no")
+    private int seqNo;
+
+    @TableField("bill_type")
+    private int billType;
+
+    @TableField("object_id")
+    private String objectId;
+
+    @TableField("object_name")
+    private String objectName;
+
+    @TableField("det_id")
+    private int detId;
+
+    @TableId(value = "Item_batch", type = IdType.INPUT)
+    @TableField("Item_batch")
+    private String itemBatch;
+
+    @TableField("order_no")
+    private String orderNo;
 
     public String getLocNo$(){
         LocMastService service = SpringUtils.getBean(LocMastService.class);
@@ -124,5 +156,4 @@
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
     }
-
 }
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 304a28c..37c368d 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -1,19 +1,24 @@
 package com.zy.asrs.entity;
 
 import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.zy.system.entity.User;
 import com.zy.system.service.UserService;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 @TableName("asr_wrk_detl")
 public class WrkDetl implements Serializable {
 
@@ -33,65 +38,59 @@
     @TableField("io_time")
     private Date ioTime;
 
-    /**
-     * 鐗╂枡
-     */
-    @ApiModelProperty(value= "鍟嗗搧缂栧彿")
-    private String matnr;
+    @ApiModelProperty(value= "浜у搧缂栫爜")
+    @TableId(value = "mat_no")
+    @TableField("mat_no")
+    private String matNo;
 
-    /**
-     * 鐗╂枡鎻忚堪
-     */
-    @ApiModelProperty(value= "鍟嗗搧鍚嶇О")
-    private String maktx;
+    @ApiModelProperty(value= "浜у搧鍚嶇О")
+    @TableId(value = "mat_name")
+    @TableField("mat_name")
+    private String matName;
 
-    /**
-     * 浠撳簱鍙�
-     */
     @ApiModelProperty(value= "瑙勬牸")
-    private String lgnum;
+    private String specs;
 
-    /**
-     * 浠撳簱鍙�
-     */
-    @ApiModelProperty(value= "鍨嬪彿")
-    private String type;
+    @ApiModelProperty(value= "灏哄")
+    private String size;
 
-    /**
-     * 鏉$爜
-     */
-    @ApiModelProperty(value= "鏉$爜")
+    @ApiModelProperty(value= "棰滆壊")
     private String color;
 
-    /**
-     * 鎵瑰彿
-     */
-    @ApiModelProperty(value= "鎵瑰彿")
-    private String supplier;
+    @ApiModelProperty(value= "鍗曢噸")
+    private Double weight;
 
     /**
      * 鍗曟嵁缂栧彿
      */
     @ApiModelProperty(value= "鍗曟嵁缂栧彿")
-    private String warehouse;
+    @TableField("bill_no")
+    private String billNo;
 
     /**
-     * 鍝侀」鏁�
+     * 搴忓彿
      */
-    @ApiModelProperty(value= "鍝侀」鏁�")
+    @ApiModelProperty(value= "搴忓彿")
+    @TableField("seq_no")
+    private Integer seqNo;
+
+    /**
+     * 浠撳簱鍙�
+     */
+    @ApiModelProperty(value= "鍝佺墝")
     private String brand;
 
     /**
      * 鏁伴噺
      */
     @ApiModelProperty(value= "鏁伴噺")
-    private Double anfme;
+    private Double qty;
 
     /**
      * 鍗曚綅
      */
     @ApiModelProperty(value= "鍗曚綅")
-    private String altme;
+    private String unit;
 
     /**
      * 鎵樼洏鏉$爜
@@ -100,9 +99,9 @@
     private String zpallet;
 
     /**
-     * 瀹㈡埛鍚嶇О
+     * 鐢ㄦ埛ID
      */
-    @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
+    @ApiModelProperty(value= "鐢ㄦ埛ID")
     private String bname;
 
     /**
@@ -139,6 +138,16 @@
     @TableField("appe_time")
     private Date appeTime;
 
+    @ApiModelProperty(value= "搴撲綅鍙�")
+    @TableField(exist = false)
+    private String locNo;
+
+    @TableField("Item_batch")
+    private String itemBatch;
+
+    @TableField("order_no")
+    private String orderNo;
+
     public String getIoTime$(){
         if (Cools.isEmpty(this.ioTime)){
             return "";
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 7d19570..e753cd9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -111,6 +111,8 @@
                     if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
                         continue;
                     }
+                } else {
+                    continue;
                 }
 
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
@@ -662,7 +664,7 @@
                             wrkMast.setUpdMk("Y");
                             wrkMastMapper.updateById(wrkMast);
                             // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
-//                            moveLocForDeepLoc(slave, shallowLoc);
+                            moveLocForDeepLoc(slave, shallowLoc);
                         }
                         log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
                         continue;
@@ -1098,7 +1100,7 @@
                 ledCommand.setStaNo(wrkMast.getStaNo());
                 if (wrkMast.getIoType() != 110) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatNo(), wrkDetl.getMatName(), wrkDetl.getQty())));
                 }
                 commands.add(ledCommand);
             }
@@ -1228,7 +1230,7 @@
                 WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.setWrkNo(workNo);
                 wrkDetl.setIoTime(new Date());
-                wrkDetl.setAnfme(locDetl.getAnfme());
+                wrkDetl.setQty(locDetl.getQty());
                 VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
                 wrkDetl.setAppeTime(new Date());
                 wrkDetl.setModiTime(new Date());
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index cd839d0..61db131 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -38,7 +38,6 @@
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.setWrkNo(workNo);
             wrkDetl.setIoTime(new Date());
-            wrkDetl.setAnfme(waitPakin.getAnfme()); // 鏁伴噺
             VersionUtils.setWrkDetl(wrkDetl, matCode); // 鐗堟湰鎺у埗
             wrkDetl.setZpallet(barcode); // 鎵樼洏鏉$爜
             wrkDetl.setAppeTime(new Date());
diff --git a/src/main/java/com/zy/asrs/utils/VersionUtils.java b/src/main/java/com/zy/asrs/utils/VersionUtils.java
index 6236494..bb6afba 100644
--- a/src/main/java/com/zy/asrs/utils/VersionUtils.java
+++ b/src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -15,56 +15,50 @@
     // 涓氬姟 ----------------------------------------------------------------------
 
     public static void setWrkDetl(WrkDetl wrkDetl, MatCode matCode) {
-        wrkDetl.setMatnr(matCode.getMatNo()); // 鐗╂枡缂栧彿
-        wrkDetl.setMaktx(matCode.getMatName()); // 鐗╂枡鎻忚堪
-        wrkDetl.setLgnum(matCode.getStr2()); // 瑙勬牸
-        wrkDetl.setType(matCode.getStr5()); // 鍨嬪彿
-        wrkDetl.setColor(matCode.getBarcode()); // 鏉$爜
-        wrkDetl.setSupplier(matCode.getStr6()); // 鎵瑰彿
-        wrkDetl.setWarehouse(matCode.getStr7()); // 鍗曟嵁缂栧彿
-        wrkDetl.setBrand(matCode.getStr3()); // 鍝侀」鏁�
-        wrkDetl.setAltme(matCode.getStr1()); // 鍗曚綅
-        wrkDetl.setBname(matCode.getStr4()); // 瀹㈡埛鍚嶇О
+//        wrkDetl.setMatNo(matCode.getMatNo()); // 鐗╂枡缂栧彿
+//        wrkDetl.setMatName(matCode.getMatName()); // 鐗╂枡鎻忚堪
+//        wrkDetl.setLgnum(matCode.getStr2()); // 瑙勬牸
+//        wrkDetl.setType(matCode.getStr5()); // 鍨嬪彿
+//        wrkDetl.setColor(matCode.getBarcode()); // 鏉$爜
+//        wrkDetl.setSupplier(matCode.getStr6()); // 鎵瑰彿
+//        wrkDetl.setWarehouse(matCode.getStr7()); // 鍗曟嵁缂栧彿
+//        wrkDetl.setBrand(matCode.getStr3()); // 鍝侀」鏁�
+//        wrkDetl.setAltme(matCode.getStr1()); // 鍗曚綅
+//        wrkDetl.setBname(matCode.getStr4()); // 瀹㈡埛鍚嶇О
     }
 
     public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) {
-        wrkDetl.setMatnr(locDetl.getMatnr()); // 鐗╂枡缂栧彿
-        wrkDetl.setMaktx(locDetl.getMaktx()); // 鐗╂枡鎻忚堪
-        wrkDetl.setLgnum(locDetl.getLgnum()); // 瑙勬牸
-        wrkDetl.setType(locDetl.getType()); // 鍨嬪彿
-        wrkDetl.setColor(locDetl.getColor()); // 鏉$爜
-        wrkDetl.setSupplier(locDetl.getSupplier()); // 鎵瑰彿
-        wrkDetl.setWarehouse(locDetl.getWarehouse()); // 鍗曟嵁缂栧彿
-        wrkDetl.setBrand(locDetl.getBrand()); // 鍝侀」鏁�
-        wrkDetl.setAltme(locDetl.getAltme()); // 鍗曚綅
-        wrkDetl.setBname(locDetl.getBname()); // 瀹㈡埛鍚嶇О
+        wrkDetl.setMatNo(locDetl.getMatNo()); // 浜у搧缂栧彿
+        wrkDetl.setMatName(locDetl.getMatName()); // 浜у搧鎻忚堪
+        wrkDetl.setSpecs(locDetl.getSpecs()); // 瑙勬牸
+        wrkDetl.setUnit(locDetl.getUnit()); // 鍗曚綅
+        wrkDetl.setSize(locDetl.getSize()); // 灏哄
+        wrkDetl.setColor(locDetl.getColor()); // 棰滆壊
+        wrkDetl.setWeight(locDetl.getWeight()); // 鍗曢噸
         wrkDetl.setZpallet(locDetl.getZpallet()); // 鎵樼洏鏉$爜
     }
 
     public static void setLocDetl(LocDetl locDetl, MatCode matCode) {
-        locDetl.setMatnr(matCode.getMatNo()); // 鐗╂枡缂栧彿
-        locDetl.setMaktx(matCode.getMatName()); // 鐗╂枡鎻忚堪
-        locDetl.setLgnum(matCode.getStr2()); // 瑙勬牸
-        locDetl.setType(matCode.getStr5()); // 鍨嬪彿
-        locDetl.setColor(matCode.getBarcode()); // 鏉$爜
-        locDetl.setSupplier(matCode.getStr6()); // 鎵瑰彿
-        locDetl.setWarehouse(matCode.getStr7()); // 鍗曟嵁缂栧彿
-        locDetl.setBrand(matCode.getStr3()); // 鍝侀」鏁�
-        locDetl.setAltme(matCode.getStr1()); // 鍗曚綅
-        locDetl.setBname(matCode.getStr4()); // 瀹㈡埛鍚嶇О
+//        locDetl.setMatNo(matCode.getMatNo()); // 鐗╂枡缂栧彿
+//        locDetl.setMatName(matCode.getMatName()); // 鐗╂枡鎻忚堪
+//        locDetl.setLgnum(matCode.getStr2()); // 瑙勬牸
+//        locDetl.setType(matCode.getStr5()); // 鍨嬪彿
+//        locDetl.setColor(matCode.getBarcode()); // 鏉$爜
+//        locDetl.setSupplier(matCode.getStr6()); // 鎵瑰彿
+//        locDetl.setWarehouse(matCode.getStr7()); // 鍗曟嵁缂栧彿
+//        locDetl.setBrand(matCode.getStr3()); // 鍝侀」鏁�
+//        locDetl.setAltme(matCode.getStr1()); // 鍗曚綅
+//        locDetl.setBname(matCode.getStr4()); // 瀹㈡埛鍚嶇О
     }
 
     public static void setLocDetl(LocDetl locDetl, WrkDetl wrkDetl) {
-        locDetl.setMatnr(wrkDetl.getMatnr()); // 鐗╂枡缂栧彿
-        locDetl.setMaktx(wrkDetl.getMaktx()); // 鐗╂枡鎻忚堪
-        locDetl.setLgnum(wrkDetl.getLgnum()); // 瑙勬牸
-        locDetl.setType(wrkDetl.getType()); // 鍨嬪彿
-        locDetl.setColor(wrkDetl.getColor()); // 鏉$爜
-        locDetl.setSupplier(wrkDetl.getSupplier()); // 鎵瑰彿
-        locDetl.setWarehouse(wrkDetl.getWarehouse()); // 鍗曟嵁缂栧彿
-        locDetl.setBrand(wrkDetl.getBrand()); // 鍝侀」鏁�
-        locDetl.setAltme(wrkDetl.getAltme()); // 鍗曚綅
-        locDetl.setBname(wrkDetl.getBname()); // 瀹㈡埛鍚嶇О
+        locDetl.setMatNo(wrkDetl.getMatNo()); // 浜у搧缂栧彿
+        locDetl.setMatName(wrkDetl.getMatName()); // 浜у搧鎻忚堪
+        locDetl.setSpecs(wrkDetl.getSpecs()); // 瑙勬牸
+        locDetl.setUnit(wrkDetl.getUnit()); // 鍗曚綅
+        locDetl.setSize(wrkDetl.getSize()); // 灏哄
+        locDetl.setColor(wrkDetl.getColor()); // 棰滆壊
+        locDetl.setQty(wrkDetl.getQty()); // 鏁伴噺
         locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
     }
 
@@ -73,19 +67,16 @@
      **/
     public static void locMoveCheckLocType(LocMast sourceLoc, LocMast loc){
         // 濡傛灉婧愬簱浣嶆槸楂樺簱浣嶏紝鐩爣搴撲綅鏄綆搴撲綅
-        if (sourceLoc.getLocType1() == 2 && loc.getLocType1() == 1) {
-            throw new CoolException("楂樺簱浣嶄笉鑳界Щ杞嚦浣庡簱浣�");
-        }
+//        if (sourceLoc.getLocType1() == 2 && loc.getLocType1() == 1) {
+//            throw new CoolException("楂樺簱浣嶄笉鑳界Щ杞嚦浣庡簱浣�");
+//        }
     }
 
     /**
      *  搴撲綅绉昏浆鏃剁被鍨嬫娴�
      **/
     public static boolean locMoveCheckLocType(LocMast loc, LocTypeDto dto){
-        // 濡傛灉婧愬簱浣嶆槸楂樺簱浣嶏紝鐩爣搴撲綅鏄綆搴撲綅
-        if (dto.getLocType1() == 2 && loc.getLocType1() == 1) {
-            return false;
-        }
+
         return true;
     }
 
diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 2b96a94..9c8ca3b 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -24,6 +24,7 @@
 import com.zy.core.model.protocol.CrnProtocol;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.text.MessageFormat;
 import java.util.Date;
@@ -50,6 +51,11 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         this.connect();
+//        try {
+//            Thread.sleep(2000);
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
         while (true) {
             try {
                 int step = 1;
@@ -137,7 +143,7 @@
             log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             initCrn();
         }
-        melsecMcNet.ConnectClose();
+//        melsecMcNet.ConnectClose();
         return result;
     }
 
@@ -146,9 +152,11 @@
      */
     private void readStatus(){
         try {
-            if (this.slave.getId() == 1) {
-                System.out.println("===");
-            }
+//            if (this.slave.getId() == 1 && flag1.equals(0)) {
+//                Thread.sleep(3000);
+//                flag1=1;
+//                System.out.println("===");
+//            }
             OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
             if (result.IsSuccess) {
                 if (null == crnProtocol) {
@@ -190,6 +198,7 @@
                     }
                 }
 
+
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
                 BasCrnp basCrnp = new BasCrnp();
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 60b6f46..b4d912f 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -123,7 +123,7 @@
                 staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2));     // 宸ヤ綔鍙�
             }
         }
-        Thread.sleep(50);
+        Thread.sleep(200);
         OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 166);
         if (result0.IsSuccess) {
             for (int i = 0; i < 83; i++) {
@@ -137,7 +137,7 @@
                 staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2));   // 鐩爣绔�
             }
         }
-        Thread.sleep(50);
+        Thread.sleep(200);
         OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) 166);
         if (result1.IsSuccess) {
             for (int i = 0; i < 83; i++) {
@@ -181,7 +181,7 @@
 
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-            log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+//            log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
         }
     }
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 062f812..65187d2 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,10 +8,10 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-#    url: jdbc:sqlserver://47.97.1.152:51433;databasename=xgmasrs
-#    username: sa
-#    password: Zoneyung@zy56$
-    url: jdbc:sqlserver://localhost:1433;databasename=xgmasrs
+    #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=xgmasrs
+    #    username: sa
+    #    password: Zoneyung@zy56$
+    url: jdbc:sqlserver://10.10.10.238:1433;databasename=xgmasrs
     username: sa
     password: sa@123
   mvc:
@@ -37,7 +37,8 @@
   enable: false
 
 wms:
-  url: localhost:8080/xgmwms
+  # url: 10.10.10.238:8080/xgmwms
+  url: localhost:8082/xgmwms
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
@@ -185,34 +186,17 @@
     id: 1
     ip: 10.10.10.52
     port: 51236
-  # LED1
+   # LED1
   led[0]:
     id: 1
-    ip: 192.168.10.211
+    ip: 10.10.10.60
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 170
+    staArr: 173
   # LED2
   led[1]:
     id: 2
-    ip: 192.168.10.221
+    ip: 10.10.10.61
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 180
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+    staArr: 182
\ No newline at end of file
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 26dabee..d66d35c 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -5,16 +5,17 @@
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl">
         <result column="loc_no" property="locNo" />
-        <result column="matnr" property="matnr" />
-        <result column="maktx" property="maktx" />
-        <result column="lgnum" property="lgnum" />
-        <result column="type" property="type" />
+        <result column="mat_no" property="matNo" />
+        <result column="mat_name" property="matName" />
+        <result column="specs" property="specs" />
+        <result column="size" property="size" />
         <result column="color" property="color" />
+        <result column="weight" property="weight" />
         <result column="supplier" property="supplier" />
         <result column="warehouse" property="warehouse" />
         <result column="brand" property="brand" />
-        <result column="anfme" property="anfme" />
-        <result column="altme" property="altme" />
+        <result column="qty" property="qty" />
+        <result column="unit" property="unit" />
         <result column="zpallet" property="zpallet" />
         <result column="bname" property="bname" />
         <result column="memo" property="memo" />
@@ -28,11 +29,11 @@
         <if test="loc_no!=null and loc_no!='' ">
             and a.loc_no like '%' + #{loc_no} + '%'
         </if>
-        <if test="matnr!=null and matnr!='' ">
-            and a.matnr like '%' + #{matnr} + '%'
+        <if test="matNo!=null and matNo!='' ">
+            and a.mat_no like '%' + #{matNo} + '%'
         </if>
-        <if test="maktx!=null and maktx!='' ">
-            and a.maktx like '%' + #{maktx} + '%'
+        <if test="matName!=null and matName!='' ">
+            and a.mat_name like '%' + #{matName} + '%'
         </if>
         <if test="anfme!=null and anfme!='' ">
             and a.anfme like '%' + #{anfme} + '%'
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index a7ca8f0..4377db6 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -6,16 +6,17 @@
     <resultMap id="BaseResultMap" type="com.zy.asrs.entity.WrkDetl">
         <result column="wrk_no" property="wrkNo" />
         <result column="io_time" property="ioTime" />
-        <result column="matnr" property="matnr" />
-        <result column="maktx" property="maktx" />
-        <result column="lgnum" property="lgnum" />
-        <result column="type" property="type" />
+        <result column="mat_no" property="matNo" />
+        <result column="mat_name" property="matName" />
+        <result column="specs" property="specs" />
+        <result column="size" property="size" />
         <result column="color" property="color" />
-        <result column="supplier" property="supplier" />
-        <result column="warehouse" property="warehouse" />
+        <result column="weight" property="weight" />
+        <result column="bill_no" property="billNo" />
+        <result column="seq_no" property="seqNo" />
         <result column="brand" property="brand" />
-        <result column="anfme" property="anfme" />
-        <result column="altme" property="altme" />
+        <result column="qty" property="qty" />
+        <result column="unit" property="unit" />
         <result column="zpallet" property="zpallet" />
         <result column="bname" property="bname" />
         <result column="memo" property="memo" />
diff --git a/src/main/webapp/static/css/console.css b/src/main/webapp/static/css/console.css
index 06cb7ce..16f6eae 100644
--- a/src/main/webapp/static/css/console.css
+++ b/src/main/webapp/static/css/console.css
@@ -1,512 +1,513 @@
-		* {
-			margin: 0;
-			overflow: hidden;
-		}
-		html,body {
-			height: 100%;
-		}
-		#root {
-			width: 100%;
-			height: 100%;
-			background-color: rgb(108,167,168);
-		}
-		.head {
-			height: 10%;
-			width: 20%;
-			padding-top: 1%;
-			padding-left: 1%;
-			color: #FFFFFF;
-		}
-		.head h1 {
-			font-weight: 400;
-			letter-spacing:3px;
-		}
-		.head h6 {
-			font-weight: 400;
-		}
-		#body {
-			width: 100%;
-			height: 23%	;
-			position: absolute;
-			bottom: 1%;
-		}
-		/* 鎺у埗寮�鍏� */
-		.system-state {
-			display: inline-block;
-			width: 15%;
-			height: 100%;
-			background-color: rgba(0, 0, 0, 0.3);
-			border-radius: 15px;
-			margin-left: 1%;
-		}
-		/* 鍫嗗灈鏈虹姸鎬� */
-		.machine-status {
-			display: inline-block;
-			width: 15%;
-			height: 100%;
-			background-color: rgba(0, 0, 0, 0.3);
-			border-radius: 15px;
-			margin-left: 1%;
-		}
-		.state-ss {
-			margin-left: 60px;
+* {
+	margin: 0;
+	overflow: hidden;
+}
+html,body {
+	height: 100%;
+}
+#root {
+	width: 100%;
+	height: 100%;
+	background-color: rgb(108,167,168);
+}
+.head {
+	height: 10%;
+	width: 20%;
+	padding-top: 1%;
+	padding-left: 1%;
+	color: #FFFFFF;
+}
+.head h1 {
+	font-weight: 400;
+	letter-spacing:3px;
+}
+.head h6 {
+	font-weight: 400;
+}
+#body {
+	width: 100%;
+	height: 23%	;
+	position: absolute;
+	bottom: 1%;
+}
+/* 鎺у埗寮�鍏� */
+.system-state {
+	display: inline-block;
+	width: 15%;
+	height: 100%;
+	background-color: rgba(0, 0, 0, 0.3);
+	border-radius: 15px;
+	margin-left: 1%;
+}
+/* 鍫嗗灈鏈虹姸鎬� */
+.machine-status {
+	display: inline-block;
+	width: 15%;
+	height: 100%;
+	background-color: rgba(0, 0, 0, 0.3);
+	border-radius: 15px;
+	margin-left: 1%;
+}
+.state-ss {
+	margin-left: 60px;
 
-		}
+}
 
 
 
 
 
-		/* 杈撻�佺嚎鐘舵�� */
-		.line-status {
-			display: inline-block;
-			width: 15%;
-			height: 100%;
-			background-color: rgba(0, 0, 0, 0.3);
-			border-radius: 15px;
-			margin-left: 1%;
-		}
-		.line-ss {
-			display: inline-block;
-			float: right;
-			height: 15px;
-			width: 40px;
-			margin-top: 10px;
-			margin-right: 15px;
-			line-height: 15px;
-			text-align: center;
-			background-color: rgba(5, 5, 5, 0.3);
-			color: #ffdd00;
-		}
-		/* 鏉$爜鎵弿鍣� */
-		.bar-code {
-			display: inline-block;
-			width: 49%;
-			height: 100%;
-			background-color: rgba(0, 0, 0, 0.3);
-			border-radius: 15px;
-			margin-left: 1%;
-		}
-		/*鎵爜琛ㄥ崟*/
-		.tablebox {
-			display: inline-block;
-			width: 290px;
-			height: 162px;
-			margin-left: 1.5%;
-			color: white;
-			font-size: 14px;
-			list-style: none;
-			line-height: 27px;
-			text-indent: 10px;
-		}
-		.table-head {
-			width: 100%;
-			height: 27px;
-			background:linear-gradient(to right, rgb(94, 193, 184),rgb(12,71,63));
-		}
-		.right {
-			float: right;
-			text-indent: 10px;
-			padding-right: 10px;
-		}
-		.table-body li {
-			background-color: #5D7677;
-		}
-		.table-body li:nth-child(even) {
-			background-color: #4A6565;
-		}
+/* 杈撻�佺嚎鐘舵�� */
+.line-status {
+	display: inline-block;
+	width: 15%;
+	height: 100%;
+	background-color: rgba(0, 0, 0, 0.3);
+	border-radius: 15px;
+	margin-left: 1%;
+}
+.line-ss {
+	display: inline-block;
+	float: right;
+	height: 15px;
+	width: 40px;
+	margin-top: 10px;
+	margin-right: 15px;
+	line-height: 15px;
+	text-align: center;
+	background-color: rgba(5, 5, 5, 0.3);
+	color: #ffdd00;
+}
+/* 鏉$爜鎵弿鍣� */
+.bar-code {
+	display: inline-block;
+	width: 49%;
+	height: 100%;
+	background-color: rgba(0, 0, 0, 0.3);
+	border-radius: 15px;
+	margin-left: 1%;
+}
+/*鎵爜琛ㄥ崟*/
+.tablebox {
+	display: inline-block;
+	width: 290px;
+	height: 162px;
+	margin-left: 1.5%;
+	color: white;
+	font-size: 14px;
+	list-style: none;
+	line-height: 27px;
+	text-indent: 10px;
+}
+.table-head {
+	width: 100%;
+	height: 27px;
+	background:linear-gradient(to right, rgb(94, 193, 184),rgb(12,71,63));
+}
+.right {
+	float: right;
+	text-indent: 10px;
+	padding-right: 10px;
+}
+.table-body li {
+	background-color: #5D7677;
+}
+.table-body li:nth-child(even) {
+	background-color: #4A6565;
+}
 
 
 
-		/* 鎺у埗琛ㄥご */
-		.body-head {
-			height: 35px;
-			width: 100%;
-			background-image: url(../images/status_bar_1.png);
-			background-repeat: no-repeat;
-			margin-left: 5%;
-			margin-top: 20px;
-			text-indent: 25px;
-			color: white;
-		}
-		
-		
-		.system-icon-open {
-			width: 153px;
-			height: 153px;
-			background-image: url(../images/start48.png);
-			display: inline-block;
-		}
-		.system-icon-close {
-			width: 153px;
-			height: 153px;
-			background-image: url(../images/stop48.png);
-			display: inline-block;
-		}
-		.switch_r {
-			color: #FFFFFF;
-			font-size: 14px;
-			width: 130px;
-			height: 153px;
-			float: right;
-			padding-top: 30px;
-		}
-		#system-run-desc {
-			font-size: 20px;
-			margin-top: 15px;
-		}
-		.state {
-			height: 34px;
-			width: 200px;
-			background-color: rgba(255,255,255,0.1);
-			background-image: url(../images/stacker.png);
-			background-repeat: no-repeat;
-			border-radius: 17px 0 0 17px;
-			padding-left: 50px;
-			line-height: 34px;
-			margin-bottom: 10px;
-			margin-left: 5%;
-			color: #FFFFFF;
-			font-size: 10px;
-		}
-		.states {
-			background-image: url(../images/line.png);
-			margin-bottom:54px;
-		}
-		.button {
-			margin-left: 5%;
-			font-size: 14px;
-			color: #FFFFFF;
-		}
-		/* 鍏ュ簱 */
-		.machine-put-flag {
-			padding: 0 10px;
-			background-color: rgb(163,214,242);
-		}
-		/* 鍑哄簱 */
-		.machine-take-flag {
-			padding: 0 10px;
-			background-color: rgb(151,180,0);
-		}
-		/* 搴撳埌搴� */
-		.machine-stock-move-flag {
-			padding: 0 10px;
-			background-color: rgb(58,77,249);
-		}
-		/* 绔欏埌绔� */
-		.machine-site-move-flag {
-			padding: 0 10px;
-			background-color: rgb(240,140,10);
-		}
-		/* PToP */
-		.machine-p-move-flag {
-			padding: 0 10px;
-			background-color: rgb(29,152,23);
-		}
-		/* 寮傚父 */
-		.machine-error-flag {
-			padding: 0 10px;
-			background-color: rgb(252,48,48);
-		}
-		/* 鑷姩 */
-		.machine-auto-flag {
-			padding: 0 10px;
-			background-color: rgb(132,255,115);
-		}
-		/* 闈炶嚜鍔�/鎵嬪姩 */
-		.machine-unauto-flag {
-			padding: 0 10px;
-			background-color: rgb(184,184,184);
-		}
-		/* 鑷姩+鏈夌墿+ID */
-		.site-auto-run-id {
-			padding: 0 25px;
-			background-color: rgb(252,48,48);
-		}
-		/* 鑷姩+鏈夌墿 */
-		.site-auto-run {
-			padding: 0 25px;
-			background-color: rgb(250,81,246);
-		}
-		/* 鑷姩+ID */
-		.site-auto-id {
-			padding: 0 10px;
-			background-color: rgb(196,196,0);
-		}
-		.site-auto {
-			padding: 0 10px;
-			background-color: rgb(120,255,129);
-		}
-		/* 闈炶嚜鍔�/鎵嬪姩 */
-		.site-unauto {
-			padding: 0 10px;
-			background-color: rgb(184,184,184);
-		}
-		#code {
-			background-image: url(../images/status_bar_2.png);
-			background-repeat: no-repeat;
-			margin-left: 2%;
-		}
-		/* 绔欑偣 */
-		.site {
-		    color: #333;
-		    height: 18px;
-		    border: 1px solid rgb(108,167,168);
-		    cursor: pointer;
-		    width: 50px;
-		    text-align: center;
-		    background-color: rgb(120,255,129);
-		    font-size: 13px;
-		}
-		/*绌虹珯鐐�*/
-		/* ------------------ 杈撻�佺嚎鎬绘垚 ------------------ */
-		.site-row {
-		    position: absolute;
-		    top: 122px;
-		}
-		/* 杈撻�佺嚎绗竴鍒� */
-		.site-row-1 {
-		    top: 205px;
-		    left: 172px;
-		}
-		.site-row-1 .site {
-		    width: 70px;
-		}
-		
-		/* 杈撻�佺嚎绗簩鍒� */
-		.site-row-2 {
-		    top: 205px;
-		    left: 243px;
-		}
-		.site-row-2 .site {
-		    width: 70px;
-		}	
-		.site-row-3 {
-		    top: 246px;
-		    left: 314px;
-		}
-		.site-row-3 .site {
-		    width: 70px;
-		}
-		.site-row-4 {
-		    top: 205px;
-		    left: 314px;
-		}
-		
-		.site-row-5 {
-		    top: 71px;
-		    left: 456px;
-		}
-		.site-row-5 .site {
-		    width: 70px;
-		}
-		.site-row-6 {
-		    top: 71px;
-		    left: 528px;
-		}
-		.site-row-6 .site {
-		    width: 70px;
-		}
-		
-		
-		/* ------------------ 璐ф灦鎬绘垚 ------------------ */
-		.main-part {
-		    position: absolute;
-			top: 20px;
-			left: 600px;
-		}
-		.main-part .lane {
-		    margin-top: 30px;
-		}
-		/* 搴撲綅缁� */
-		.stock-group .item {
-		    float: left;
-		    border-top: 1px solid rgb(194,76,65);
-		    border-bottom: 1px solid rgb(194,76,65);
-		    border-left: 1px solid rgb(194,76,65);
-		    border-right: 1px solid rgb(194,76,65);
-		    border-right: none;
-		    cursor: inherit;
-			color: rgb(194,76,65);
-		}
-		.stock-group .site {
-		    width: 80px;
-		    float: left;
-		}
-		.stock-group::after, .stock-group::before {
-		    content: "";
-		    display: table;
-		    clear: both;
-		}
-		/* 鍫嗗灈鏈鸿建閬� */
-		.pathway {
-		    margin-left: 30px;
-		    border: 1px solid #333;
-		    position: absolute;
-		    background-color:#333!important;
-		    color: #333 !important;
-		    width: 100%;
-		    margin-top: 10px;
-		}
-		/* 鍫嗗灈鏈� */
-		.machine {
-		    margin-left: 30px;
-		    position: relative;
-		    background-color: rgb(108,167,168);
-		    height: 20px;
-		    width: 80px;
-		    background-image: url("../images/Crane_auto.png");
-		    background-repeat: no-repeat;
-		    background-size:100% 100%;
-		    background-position: top center;
-		    cursor: pointer;
-		}
-		/* 鍏ュ簱 */
-		.machine-pakin {
-			background-image: url("../images/Crane_store.png");
-		}
-		/* 鍑哄簱 */
-		.machine-pakout {
-			background-image: url("../images/Crane_retrieve.png");
-		}
-		/* 搴撳埌搴� */
-		.machine-stock-move {
-			background-image: url("../images/Crane_loctoloc.png");
-		}
-		/* 绔欏埌绔� */
-		.machine-site-move {
-			background-image: url("../images/Crane_stntostn.png");
-		}
-		/* p to p */
-		.machine-p-move {
-			background-image: url("../images/Crane_hptoohp.png");
-		}
-		/* 寮傚父 */
-		.machine-error {
-			background-image: url("../images/Crane_error.png");
-		}
-		/* 鑷姩 */
-		.machine-auto {
-			background-image: url("../images/Crane_auto.png");
-		}
-		/* 闈炶嚜鍔�/鏀跺埌 */
-		.machine-un-auto {
-			background-image: url("../images/Crane_manual.png");
-		}
+/* 鎺у埗琛ㄥご */
+.body-head {
+	height: 35px;
+	width: 100%;
+	background-image: url(../images/status_bar_1.png);
+	background-repeat: no-repeat;
+	margin-left: 5%;
+	margin-top: 20px;
+	text-indent: 25px;
+	color: white;
+}
 
 
-		/* 鍫嗗灈鏈哄脊绐� */
-		#crnWindow {
-			width: 291px;
-			height: 365px;
-			background-image: url(../images/Popup-yellow.png);
-		
-			position: fixed;
-			color:white;
-			left: 50%;
-			top: 50%;
-			transform: translate(-50%,-50%);
-		}
-		/* 杈撻�佽澶囧脊绐� */
-		#siteWindow {
-			width: 291px;
-			height: 336px;
-			background-image: url(../images/Popup-green.png);
-			position: fixed;
-			color:white;
-			left: 50%;
-			top: 50%;
-			transform: translate(-50%,-50%);
-		}
-		#siteWindow-head {
-			width: 291px;
-			height: 55px;
-			line-height: 55px;
-			margin-left: 25px;
-			color: #000000;
-			font-weight: 700;
-			letter-spacing: 2px;
-		}
-		#siteWindow-head .detailed {
-			display: inline-block;
-		}
-		#siteWindow-head button {
-			width: 25px;
-			height: 25px;
-			padding: 0px;
-			border: none;
-			border-radius: 25px;
-			background-image: url(../images/siteclose.png);
-			display: inline-block;
-			float: right;
-			margin-top: 15px;
-			margin-right: 50px;
-		}
-		#crnWindow-head {
-			width: 291px;
-			height: 55px;
-			line-height: 55px;
-			margin-left: 55px;
-			color: #000000;
-			font-weight: 700;
-			letter-spacing: 2px;
-			
-		}
-		#crnWindow-head .detailed {
-			display: inline-block;
-		}
-		#crnWindow-head button {
-			width: 25px;
-			height: 25px;
-			padding: 0px;
-			border: none;
-			border-radius: 25px;
-			background-image: url(../images/siteclose.png);
-			display: inline-block;
-			float: right;
-			margin-top: 15px;
-			margin-right: 80px;
-		}
-		
-		
-		
-		/* 寮圭獥 */
-		form .form-item {
-			display: inline-block;
-			padding-left: 10px;
-		}
-		form .form-item-label {
-			display: inline-block;
-			width: 90px;
-			font-size: 10px;
-		}
-		form .form-item-input {
-			display: inline-block;
-			width: 180px;
-			
-		}
-		form .form-item-input input {
-			background-color: rgba(255,255,255,.3);
-			color: #FFFFFF;
-			padding: 0;
-			border: none;
-			border-radius: 2px;
-			height: 18px;
-			padding-left: 10px;
-		}
-		/* checkbox */
-		form .form-item-checkbox {
-			display: inline-block;
-			padding-left: 10px;
-			width: 20%;
-		}
-		form .form-item-label-checkbox {
-			display: inline-block;
-			width: auto;
-			font-size: 14px;
-		}
-		form .form-item-input-checkbox {
-			display: inline-block;
-			width: auto;
+.system-icon-open {
+	width: 153px;
+	height: 153px;
+	background-image: url(../images/start48.png);
+	display: inline-block;
+}
+.system-icon-close {
+	width: 153px;
+	height: 153px;
+	background-image: url(../images/stop48.png);
+	display: inline-block;
+}
+.switch_r {
+	color: #FFFFFF;
+	font-size: 14px;
+	width: 130px;
+	height: 153px;
+	float: right;
+	padding-top: 30px;
+}
+#system-run-desc {
+	font-size: 20px;
+	margin-top: 15px;
+}
+.state {
+	height: 34px;
+	width: 200px;
+	background-color: rgba(255,255,255,0.1);
+	background-image: url(../images/stacker.png);
+	background-repeat: no-repeat;
+	border-radius: 17px 0 0 17px;
+	padding-left: 50px;
+	line-height: 34px;
+	margin-bottom: 10px;
+	margin-left: 5%;
+	color: #FFFFFF;
+	font-size: 10px;
+}
+.states {
+	background-image: url(../images/line.png);
+	margin-bottom:54px;
+}
+.button {
+	margin-left: 5%;
+	font-size: 14px;
+	color: #FFFFFF;
+}
+/* 鍏ュ簱 */
+.machine-put-flag {
+	padding: 0 10px;
+	background-color: rgb(163,214,242);
+}
+/* 鍑哄簱 */
+.machine-take-flag {
+	padding: 0 10px;
+	background-color: rgb(151,180,0);
+}
+/* 搴撳埌搴� */
+.machine-stock-move-flag {
+	padding: 0 10px;
+	background-color: rgb(58,77,249);
+}
+/* 绔欏埌绔� */
+.machine-site-move-flag {
+	padding: 0 10px;
+	background-color: rgb(240,140,10);
+}
+/* PToP */
+.machine-p-move-flag {
+	padding: 0 10px;
+	background-color: rgb(29,152,23);
+}
+/* 寮傚父 */
+.machine-error-flag {
+	padding: 0 10px;
+	background-color: rgb(252,48,48);
+}
+/* 鑷姩 */
+.machine-auto-flag {
+	padding: 0 10px;
+	background-color: rgb(132,255,115);
+}
+/* 闈炶嚜鍔�/鎵嬪姩 */
+.machine-unauto-flag {
+	padding: 0 10px;
+	background-color: rgb(184,184,184);
+}
+/* 鑷姩+鏈夌墿+ID */
+.site-auto-run-id {
+	background-color: rgb(252,48,48);
+}
+/* 鑷姩+鏈夌墿 */
+.site-auto-run {
+	background-color: rgb(250,81,246);
+}
+/* 鑷姩+ID */
+.site-auto-id {
+	background-color: rgb(196,196,0);
+}
+/* 鑷姩 */
+.site-auto {
+	background-color: rgb(120,255,129);
+}
+/* 闈炶嚜鍔�/鎵嬪姩 */
+.site-unauto {
+	background-color: rgb(184,184,184);
+}
+#code {
+	background-image: url(../images/status_bar_2.png);
+	background-repeat: no-repeat;
+	margin-left: 2%;
+}
+/* 绔欑偣 */
+.site {
+	color: #333;
+	height: 18px;
+	border: 1px solid rgb(108,167,168);
+	cursor: pointer;
+	width: 50px;
+	text-align: center;
+	background-color: rgb(120,255,129);
+	font-size: 13px;
+}
+.site-k {
+	border: 1px solid rgb(108,167,168);
+	background-color: rgb(108, 167, 168);
+}
+/*绌虹珯鐐�*/
+/* ------------------ 杈撻�佺嚎鎬绘垚 ------------------ */
+.site-row {
+	position: absolute;
+	top: 122px;
+}
+/* 杈撻�佺嚎绗竴鍒� */
+.site-row-1 {
+	top: 205px;
+	left: 128px;
+}
+.site-row-1 .site {
+	width: 90px;
+}
 
-		}
\ No newline at end of file
+/* 杈撻�佺嚎绗簩鍒� */
+.site-row-2 {
+	top: 205px;
+	left: 230px;
+}
+.site-row-2 .site {
+	width: 90px;
+}
+.site-row-3 {
+	top: 205px;
+	left: 302px;
+	width: 144px;
+}
+.site-row-3 .site {
+	width: 90px;
+}
+.site-row-4 {
+	top: 246px;
+	left: 374px;
+}
+
+.site-row-5 {
+	top: 71px;
+	left: 446px;
+}
+.site-row-5 .site {
+	width: 90px;
+}
+.site-row-6 {
+	top: 71px;
+	left: 518px;
+}
+.site-row-6 .site {
+	width: 90px;
+}
+
+
+/* ------------------ 璐ф灦鎬绘垚 ------------------ */
+.main-part {
+	position: absolute;
+	top: 20px;
+	left: 590px;
+}
+.main-part .lane {
+	margin-top: 30px;
+}
+/* 搴撲綅缁� */
+.stock-group .item {
+	float: left;
+	border-top: 1px solid rgb(194,76,65);
+	border-bottom: 1px solid rgb(194,76,65);
+	border-left: 1px solid rgb(194,76,65);
+	border-right: 1px solid rgb(194,76,65);
+	border-right: none;
+	cursor: inherit;
+	color: rgb(194,76,65);
+}
+.stock-group .site {
+	width: 80px;
+	float: left;
+}
+.stock-group::after, .stock-group::before {
+	content: "";
+	display: table;
+	clear: both;
+}
+/* 鍫嗗灈鏈鸿建閬� */
+.pathway {
+	margin-left: 30px;
+	border: 1px solid #333;
+	position: absolute;
+	background-color:#333!important;
+	color: #333 !important;
+	width: 100%;
+	margin-top: 10px;
+}
+/* 鍫嗗灈鏈� */
+.machine {
+	margin-left: 30px;
+	position: relative;
+	background-color: rgb(108,167,168);
+	height: 20px;
+	width: 80px;
+	background-image: url("../images/Crane_auto.png");
+	background-repeat: no-repeat;
+	background-size:100% 100%;
+	background-position: top center;
+	cursor: pointer;
+}
+/* 鍏ュ簱 */
+.machine-pakin {
+	background-image: url("../images/Crane_store.png");
+}
+/* 鍑哄簱 */
+.machine-pakout {
+	background-image: url("../images/Crane_retrieve.png");
+}
+/* 搴撳埌搴� */
+.machine-stock-move {
+	background-image: url("../images/Crane_loctoloc.png");
+}
+/* 绔欏埌绔� */
+.machine-site-move {
+	background-image: url("../images/Crane_stntostn.png");
+}
+/* p to p */
+.machine-p-move {
+	background-image: url("../images/Crane_hptoohp.png");
+}
+/* 寮傚父 */
+.machine-error {
+	background-image: url("../images/Crane_error.png");
+}
+/* 鑷姩 */
+.machine-auto {
+	background-image: url("../images/Crane_auto.png");
+}
+/* 闈炶嚜鍔�/鏀跺埌 */
+.machine-un-auto {
+	background-image: url("../images/Crane_manual.png");
+}
+
+
+/* 鍫嗗灈鏈哄脊绐� */
+#crnWindow {
+	width: 291px;
+	height: 365px;
+	background-image: url(../images/Popup-yellow.png);
+
+	position: fixed;
+	color:white;
+	left: 50%;
+	top: 50%;
+	transform: translate(-50%,-50%);
+}
+/* 杈撻�佽澶囧脊绐� */
+#siteWindow {
+	width: 291px;
+	height: 336px;
+	background-image: url(../images/Popup-green.png);
+	position: fixed;
+	color:white;
+	left: 50%;
+	top: 50%;
+	transform: translate(-50%,-50%);
+}
+#siteWindow-head {
+	width: 291px;
+	height: 55px;
+	line-height: 55px;
+	margin-left: 25px;
+	color: #000000;
+	font-weight: 700;
+	letter-spacing: 2px;
+}
+#siteWindow-head .detailed {
+	display: inline-block;
+}
+#siteWindow-head button {
+	width: 25px;
+	height: 25px;
+	padding: 0px;
+	border: none;
+	border-radius: 25px;
+	background-image: url(../images/siteclose.png);
+	display: inline-block;
+	float: right;
+	margin-top: 15px;
+	margin-right: 50px;
+}
+#crnWindow-head {
+	width: 291px;
+	height: 55px;
+	line-height: 55px;
+	margin-left: 55px;
+	color: #000000;
+	font-weight: 700;
+	letter-spacing: 2px;
+
+}
+#crnWindow-head .detailed {
+	display: inline-block;
+}
+#crnWindow-head button {
+	width: 25px;
+	height: 25px;
+	padding: 0px;
+	border: none;
+	border-radius: 25px;
+	background-image: url(../images/siteclose.png);
+	display: inline-block;
+	float: right;
+	margin-top: 15px;
+	margin-right: 80px;
+}
+
+
+
+/* 寮圭獥 */
+form .form-item {
+	display: inline-block;
+	padding-left: 10px;
+}
+form .form-item-label {
+	display: inline-block;
+	width: 90px;
+	font-size: 10px;
+}
+form .form-item-input {
+	display: inline-block;
+	width: 180px;
+
+}
+form .form-item-input input {
+	background-color: rgba(255,255,255,.3);
+	color: #FFFFFF;
+	padding: 0;
+	border: none;
+	border-radius: 2px;
+	height: 18px;
+	padding-left: 10px;
+}
+/* checkbox */
+form .form-item-checkbox {
+	display: inline-block;
+	padding-left: 10px;
+	width: 20%;
+}
+form .form-item-label-checkbox {
+	display: inline-block;
+	width: auto;
+	font-size: 14px;
+}
+form .form-item-input-checkbox {
+	display: inline-block;
+	width: auto;
+
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/css/crn.css b/src/main/webapp/static/css/crn.css
index 43289ac..4ff0c57 100644
--- a/src/main/webapp/static/css/crn.css
+++ b/src/main/webapp/static/css/crn.css
@@ -2,7 +2,11 @@
     padding: 10px;
     background-color: #f1f1f1;
 }
-
+.button-window {
+    float: left;
+    width: 5%;
+    height: 100%;
+}
 /* -------------------- 绗竴妯″潡 -------------------- */
 .log-board {
     background-color: #fff;
@@ -15,7 +19,7 @@
 .command-log {
     float: left;
     height: 100%;
-    width: 20%;
+    width: 19%;
     text-align: center;
 }
 .command-log h2 {
@@ -47,7 +51,7 @@
 .crn-state {
     float: left;
     height: 100%;
-    width: 80%;
+    width: 76%;
     overflow: auto;
 }
 /* 鍫嗗灈鏈虹姸鎬佽〃 */
@@ -75,7 +79,7 @@
 
 /* -------------------- 绗簩妯″潡 -------------------- */
 .crn-msg {
-    overflow: auto;
+    /*overflow: auto;*/
     margin-top: 10px;
     height: 23%;
     background-color: #fff;
diff --git a/src/main/webapp/static/css/index.css b/src/main/webapp/static/css/index.css
index 4416c24..15641b0 100644
--- a/src/main/webapp/static/css/index.css
+++ b/src/main/webapp/static/css/index.css
@@ -1,63 +1,65 @@
 * {
-	margin: 0;
-	overflow: hidden;
+    margin: 0;
+    overflow: hidden;
 }
 html,body {
-	height: 100%;
+    height: 100%;
 }
 .nav {
-	width: 100%;
-	height: 90px;
-	line-height: 90px;
-	list-style: none;
-	color: #fff;
-	position: fixed;
-	text-align: center;
-	letter-spacing:3px;
-	
+    width: 100%;
+    height: 90px;
+    line-height: 90px;
+    list-style: none;
+    color: #fff;
+    position: fixed;
+    text-align: center;
+    letter-spacing:3px;
+
 }
 .right {
-	float: right;
-	margin-right: 1%;
-	margin-top: 1%;
-	
+    float: right;
+    margin-right: 1%;
+    margin-top: 1%;
+
 }
 #about {
-	width: 47px;
-	height: 47px;
-	display: inline-block;
-	background-image: url(../images/cancellation.png);
+    width: 47px;
+    height: 47px;
+    display: inline-block;
+    background-image: url(../images/cancellation.png);
 }
 
 .sidebar {
-	width: 7%;
-	height: 40%;
-	line-height: 90px;
-	position: fixed;
-	top: 50%;
-	transform: translateY(-50%);
-	
+    width: 7%;
+    height: 40%;
+    line-height: 90px;
+    position: fixed;
+    top: 50%;
+    transform: translateY(-50%);
+
+
 }
 .sidebar ul {
-	font-size: 20px;
-	font-weight: 500;
-	padding-left: 15%;
+    font-size: 20px;
+    font-weight: 700;
+    padding-left: 15%;
+
 }
 .sidebar a {
-	text-decoration: none;
-	/* color: #fff; */
+    text-decoration: none;
+    /*color: #cbcbcb;*/
 }
 
 .sidebar a:hover {
-	color: rgb(87,214,201);
+    color: rgb(87,214,201);
 }
 
 
 
 .nav-unselect {
-    color: #fff;
+    color: #5D7677;
 }
-.nav-select {	
+.nav-select {
     color: rgb(87,214,201);
 }
 
@@ -66,9 +68,9 @@
 
 /* 涓讳綋 */
 iframe {
-	width: 100%;
-	height: 100%;
-	border-width: 0;
+    width: 100%;
+    height: 100%;
+    border-width: 0;
 }
 /* 搴曢儴 */
 footer {
diff --git a/src/main/webapp/static/css/pipeline.css b/src/main/webapp/static/css/pipeline.css
index 6b47392..3ab1456 100644
--- a/src/main/webapp/static/css/pipeline.css
+++ b/src/main/webapp/static/css/pipeline.css
@@ -9,9 +9,15 @@
     box-shadow: 0 0 3px rgba(0,0,0,.3);
     margin-bottom: 8px;
 }
-.main-board {
+.button-window {
     float: left;
-    width: 50%;
+    width: 5%;
+    height: 100%;
+}
+.main-board {
+    padding-left: 1%;
+    float: left;
+    width: 47.5%;
     height: 100%;
     overflow: auto;
 }
diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html
index e4db383..f4ed572 100644
--- a/src/main/webapp/views/crn.html
+++ b/src/main/webapp/views/crn.html
@@ -41,6 +41,7 @@
     </style>
 </head>
 <body>
+<div class="button-window"></div>
 <!-- 鏃ュ織鐩戞帶鏉� -->
 <div class="log-board">
     <!-- 鎵ц鍛戒护 -->
@@ -83,19 +84,19 @@
     <div class="crn-state">
         <table id="crn-state-table">
             <thead>
-                <tr>
-                    <th>鍫嗗灈鏈�</th>
-                    <th>妯″紡</th>
-                    <th>鐘舵��</th>
-                    <th>鏈夌墿</th>
-                    <th>鍒�</th>
-                    <th>灞�</th>
-                    <th>璐у弶瀹氫綅</th>
-                    <th>杞借揣鍙板畾浣�</th>
-                    <th>璧拌鍦ㄥ畾浣�</th>
-                    <th>鏁呴殰浠g爜</th>
-                    <th>鏁呴殰鎻忚堪</th>
-                </tr>
+            <tr>
+                <th>鍫嗗灈鏈�</th>
+                <th>妯″紡</th>
+                <th>鐘舵��</th>
+                <th>鏈夌墿</th>
+                <th>鍒�</th>
+                <th>灞�</th>
+                <th>璐у弶瀹氫綅</th>
+                <th>杞借揣鍙板畾浣�</th>
+                <th>璧拌鍦ㄥ畾浣�</th>
+                <th>鏁呴殰浠g爜</th>
+                <th>鏁呴殰鎻忚堪</th>
+            </tr>
             </thead>
             <tbody>
             </tbody>
@@ -106,22 +107,22 @@
 <div class="crn-msg">
     <table id="crn-msg-table">
         <thead>
-            <tr>
-                <th>鍫嗗灈鏈�</th>
-                <th>宸ヤ綔鍙�</th>
-                <th>鐘舵��</th>
-                <th>婧愮珯</th>
-                <th>鐩爣绔�</th>
-                <th>婧愬簱浣�</th>
-                <th>鐩爣搴撲綅</th>
-                <th>璧拌閫熷害锛坢/min)</th>
-                <th>鍗囬檷閫熷害锛坢/min)</th>
-                <th>鍙夌墮閫熷害锛坢/min)</th>
-                <th>璧拌璺濈(m)</th>
-                <th>鍗囬檷璺濈(m)</th>
-                <th>璧拌鏃堕暱(s)</th>
-                <th>鍗囬檷鏃堕暱(s)</th>
-            </tr>
+        <tr>
+            <th>鍫嗗灈鏈�</th>
+            <th>宸ヤ綔鍙�</th>
+            <th>鐘舵��</th>
+            <th>婧愮珯</th>
+            <th>鐩爣绔�</th>
+            <th>婧愬簱浣�</th>
+            <th>鐩爣搴撲綅</th>
+            <th>璧拌閫熷害锛坢/min)</th>
+            <th>鍗囬檷閫熷害锛坢/min)</th>
+            <th>鍙夌墮閫熷害锛坢/min)</th>
+            <th>璧拌璺濈(m)</th>
+            <th>鍗囬檷璺濈(m)</th>
+            <th>璧拌鏃堕暱(s)</th>
+            <th>鍗囬檷鏃堕暱(s)</th>
+        </tr>
         </thead>
         <tbody>
         </tbody>
@@ -205,12 +206,12 @@
                 <button class="item" onclick="take()">鍑哄簱</button>
                 <button class="item" onclick="stockMove()">搴撲綅杞Щ</button>
                 <button class="item" onclick="siteMove()">绔欏埌绔�</button>
-<!--                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
-<!--                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
-<!--                <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
+                <!--                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
+                <!--                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
+                <!--                <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
                 <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
-<!--                <button class="item" onclick="pause()">鏆傚仠</button>-->
-<!--                <button class="item" onclick="boot()">鍚姩</button>-->
+                <!--                <button class="item" onclick="pause()">鏆傚仠</button>-->
+                <!--                <button class="item" onclick="boot()">鍚姩</button>-->
                 <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>
                 <button class="item" onclick="handleReset()">澶嶄綅</button>
             </div>
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 3ba29a8..c37f3b0 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -1,43 +1,43 @@
 <!DOCTYPE html>
 <html>
-	<head>
-		<meta charset="utf-8">
-		<title>鑷姩浠撳簱WCS绯荤粺</title>
-		<link rel="stylesheet" href="../static/css/index.css">
-		<script src="../static/js/jquery/jquery-3.3.1.min.js"></script>
-	</head>
-	<body>
-		<!-- 瀵艰埅鏍� -->
+<head>
+    <meta charset="utf-8">
+    <title>鑷姩浠撳簱WCS绯荤粺</title>
+    <link rel="stylesheet" href="../static/css/index.css">
+    <script src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+</head>
+<body>
+<!-- 瀵艰埅鏍� -->
 <!--		<div class="nav">-->
 <!--			<li class="right">娉ㄩ攢<a id="about" class="nav-unselect" onclick="logout()" href="#"></a></li>-->
 <!--		</div>-->
-		<div class="sidebar">
-			<ul>
-				<li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
-				<li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
-				<li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
-			</ul>
-		</div>
-		<!-- 涓讳綋鍐呭 -->
-		<iframe id="content" src="console.html"></iframe>
-		<footer class="footer">
-		    Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�</a>  淇濈暀鎵�鏈夋潈鍒�
-		</footer>
-	</body>
-	<script>
-	// 瀵艰埅鏍�
-	  function nav(id) {
-	      $('.nav-select').attr("class", "nav-unselect");
-	      $('#'+id).attr("class", "nav-select");
-	      $('#content').attr("src", id+".html");
-	  }
+<div class="sidebar">
+    <ul>
+        <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
+        <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
+        <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
+    </ul>
+</div>
+<!-- 涓讳綋鍐呭 -->
+<iframe id="content" src="console.html"></iframe>
+<footer class="footer">
+    Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�</a>  淇濈暀鎵�鏈夋潈鍒�
+</footer>
+</body>
+<script>
+    // 瀵艰埅鏍�
+    function nav(id) {
+        $('.nav-select').attr("class", "nav-unselect");
+        $('#'+id).attr("class", "nav-select");
+        $('#content').attr("src", id+".html");
+    }
 
-	  function logout() {
-	      localStorage.removeItem("token");
-	      window.location.href = baseUrl + "/login";
-	  }
+    function logout() {
+        localStorage.removeItem("token");
+        window.location.href = baseUrl + "/login";
+    }
 
-	  // 绯荤粺杩愯鐘舵��
-	  var systemRunning = true;
-	</script>
+    // 绯荤粺杩愯鐘舵��
+    var systemRunning = true;
+</script>
 </html>
diff --git a/src/main/webapp/views/pipeline.html b/src/main/webapp/views/pipeline.html
index 9dd0be1..1835d67 100644
--- a/src/main/webapp/views/pipeline.html
+++ b/src/main/webapp/views/pipeline.html
@@ -18,16 +18,17 @@
 </head>
 <body>
 <main>
+    <div class="button-window"></div>
     <!-- plc寮傚父鏃ュ織鐩戞帶鐗� -->
     <div id="plc-error" class="main-board" style="padding-left: 10px">
         <!-- 澶撮儴 -->
         <div class="plc-log-header">
-<!--            <div style="height: 40%">-->
-<!--                <span>涓滀晶PLC鎵ц鎸囦护</span>-->
-<!--            </div>-->
-<!--            <div style="height: 40%">-->
-<!--                <span>瑗夸晶PLC鎵ц鎸囦护</span>-->
-<!--            </div>-->
+            <!--            <div style="height: 40%">-->
+            <!--                <span>涓滀晶PLC鎵ц鎸囦护</span>-->
+            <!--            </div>-->
+            <!--            <div style="height: 40%">-->
+            <!--                <span>瑗夸晶PLC鎵ц鎸囦护</span>-->
+            <!--            </div>-->
             <div>
                 <span style="color: #1E9FFF">PLC寮傚父淇℃伅琛�:</span>
             </div>
@@ -36,11 +37,11 @@
         <div class="plc-log-body">
             <table id="plc-error-table">
                 <thead>
-                    <tr>
-                        <th style="width: 200px">搴忓彿</th>
-                        <th style="width: 400px">PLC閿欒鎻忚堪</th>
-                        <th style="width: 400px">寮傚父</th>
-                    </tr>
+                <tr>
+                    <th style="width: 200px">搴忓彿</th>
+                    <th style="width: 400px">PLC閿欒鎻忚堪</th>
+                    <th style="width: 400px">寮傚父</th>
+                </tr>
                 </thead>
                 <tbody>
 
@@ -55,17 +56,17 @@
         <table id="site-table">
             <!-- 琛ㄥご -->
             <thead>
-                <tr>
-                    <th>绔欏彿</th>
-                    <th>宸ヤ綔鍙�</th>
-                    <th>鑷姩</th>
-                    <th>鏈夌墿</th>
-                    <th>鍙叆</th>
-                    <th>鍙嚭</th>
-                    <th>鍏ュ簱鏍囪</th>
-                    <th>绌烘澘淇″彿</th>
-                    <th>鐩爣绔�</th>
-                </tr>
+            <tr>
+                <th>绔欏彿</th>
+                <th>宸ヤ綔鍙�</th>
+                <th>鑷姩</th>
+                <th>鏈夌墿</th>
+                <th>鍙叆</th>
+                <th>鍙嚭</th>
+                <th>鍏ュ簱鏍囪</th>
+                <th>绌烘澘淇″彿</th>
+                <th>鐩爣绔�</th>
+            </tr>
             </thead>
             <!-- 琛ㄦ牸鍐呭 -->
             <tbody></tbody>

--
Gitblit v1.9.1