wangxiaoming 7 vuotta sitten
vanhempi
commit
9172596d4f
18 muutettua tiedostoa jossa 455 lisäystä ja 153 poistoa
  1. 18 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineLogs.java
  2. 13 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java
  3. 21 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java
  4. 14 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java
  5. 103 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineMapper.xml
  6. 2 1
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  7. 129 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java
  8. 2 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java
  9. 4 10
      watero-rst-web/src/main/resources/dev-jdbc.properties
  10. 2 2
      watero-rst-web/src/main/resources/watero-rst-ioc.xml
  11. 1 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  12. 7 2
      watero-rst-web/src/main/webapp/WEB-INF/views/base/page_util.ftl
  13. 7 7
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_device.ftl
  14. 1 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl
  15. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/update_employee.ftl
  16. 3 1
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl
  17. 126 126
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/producedAbnormalityStatistics.ftl
  18. 1 1
      watero-rst-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/highcharts.js

+ 18 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineLogs.java

@@ -25,6 +25,8 @@ public class PtsMachineLogs  implements Serializable {
     private String logsProcessPrompt;  //工序异常状态提示
     private String logsProcessPrompt;  //工序异常状态提示
     private Date logsProcessTime; //工序执行时间
     private Date logsProcessTime; //工序执行时间
     private Date logsCreateTime; //创建时间
     private Date logsCreateTime; //创建时间
+    private Integer processNodeId;//工序节点id
+    private String processNodeName;//工序节点名称
 
 
     public Integer getLogsId() {
     public Integer getLogsId() {
         return logsId;
         return logsId;
@@ -145,4 +147,20 @@ public class PtsMachineLogs  implements Serializable {
     public void setLogsErrorType(Integer logsErrorType) {
     public void setLogsErrorType(Integer logsErrorType) {
         this.logsErrorType = logsErrorType;
         this.logsErrorType = logsErrorType;
     }
     }
+
+    public Integer getProcessNodeId() {
+        return processNodeId;
+    }
+
+    public void setProcessNodeId(Integer processNodeId) {
+        this.processNodeId = processNodeId;
+    }
+
+    public String getProcessNodeName() {
+        return processNodeName;
+    }
+
+    public void setProcessNodeName(String processNodeName) {
+        this.processNodeName = processNodeName;
+    }
 }
 }

+ 13 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java

@@ -7,6 +7,7 @@ import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
+import com.iamberry.rst.core.pts.PtsMachineStatistics;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -52,4 +53,16 @@ public interface MachineService {
 
 
     //批量修改打印状态
     //批量修改打印状态
     Integer batchUpdateMachineIsPring(String[] machineBarcodes);
     Integer batchUpdateMachineIsPring(String[] machineBarcodes);
+
+    //生产机器1-12月份统计
+    List<PtsMachineStatistics> monthStatistics(PtsMachineStatistics ptsMachineStatistics);
+
+    //生产机器最近七天生产份统计
+    List<PtsMachineStatistics> dayStatistics(PtsMachineStatistics ptsMachineStatistics);
+
+    //生产流程异常机器统计
+    PtsMachineStatistics flowAbnormality(PtsMachineStatistics ptsMachineStatistics);
+
+    //根据工序id统计生成机器时选项被选择的次数
+    List<PtsMachineStatistics> nodeNormalByPrduceId(Integer processId);
 }
 }

+ 21 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java

@@ -7,6 +7,7 @@ import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
+import com.iamberry.rst.core.pts.PtsMachineStatistics;
 import com.iamberry.rst.faces.pts.MachineService;
 import com.iamberry.rst.faces.pts.MachineService;
 import com.iamberry.rst.service.pts.mapper.MachineMapper;
 import com.iamberry.rst.service.pts.mapper.MachineMapper;
 import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.util.PageUtil;
@@ -95,4 +96,24 @@ public class MachineServiceImpl implements MachineService {
         return machineMapper.batchUpdateMachineIsPring(machineBarcodes);
         return machineMapper.batchUpdateMachineIsPring(machineBarcodes);
     }
     }
 
 
+    @Override
+    public List<PtsMachineStatistics> monthStatistics(PtsMachineStatistics ptsMachineStatistics) {
+        return machineMapper.monthStatistics(ptsMachineStatistics);
+    }
+
+    @Override
+    public List<PtsMachineStatistics> dayStatistics(PtsMachineStatistics ptsMachineStatistics) {
+        return machineMapper.dayStatistics(ptsMachineStatistics);
+    }
+
+    @Override
+    public PtsMachineStatistics flowAbnormality(PtsMachineStatistics ptsMachineStatistics) {
+        return machineMapper.flowAbnormality(ptsMachineStatistics);
+    }
+
+    @Override
+    public List<PtsMachineStatistics> nodeNormalByPrduceId(Integer processId) {
+        return machineMapper.nodeNormalByPrduceId(processId);
+    }
+
 }
 }

+ 14 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java

@@ -3,6 +3,7 @@ package com.iamberry.rst.service.pts.mapper;
 import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
+import com.iamberry.rst.core.pts.PtsMachineStatistics;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -42,4 +43,17 @@ public interface MachineMapper {
    Integer getMachineIsHave(PtsMachine ptsMachine);
    Integer getMachineIsHave(PtsMachine ptsMachine);
    //批量修改打印状态
    //批量修改打印状态
    Integer batchUpdateMachineIsPring(String[] machineBarcodes);
    Integer batchUpdateMachineIsPring(String[] machineBarcodes);
+
+   //生产机器1-12月份统计
+   List<PtsMachineStatistics> monthStatistics(PtsMachineStatistics ptsMachineStatistics);
+
+    //生产机器最近七天生产份统计
+    List<PtsMachineStatistics> dayStatistics(PtsMachineStatistics ptsMachineStatistics);
+
+    //生产流程异常机器统计
+   PtsMachineStatistics flowAbnormality(PtsMachineStatistics ptsMachineStatistics);
+
+
+    //根据工序id统计生成机器时选项被选择的次数
+    List<PtsMachineStatistics> nodeNormalByPrduceId(Integer processId);
 }
 }

+ 103 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineMapper.xml

@@ -188,4 +188,107 @@
         </foreach>)
         </foreach>)
     </update>
     </update>
 
 
+
+    <!-- 生产机器1-12月份统计 -->
+    <select id="monthStatistics" parameterType="PtsMachineStatistics" resultType="PtsMachineStatistics">
+        SELECT a.year,a.month,a.num from
+        (SELECT
+            YEAR (machine_produced_time) as year,
+            MONTH (machine_produced_time) as month,
+            count(machine_id) as num
+        FROM
+            tb_rst_pts_machine
+        where YEAR (machine_produced_time) = #{year}
+        AND machine_produce_type = #{machineType}
+        GROUP BY
+            YEAR (machine_produced_time),
+            MONTH (machine_produced_time)
+        UNION
+        SELECT #{year} as year,1 as month,'0' as num
+        UNION
+        SELECT #{year} as year,2 as month,'0' as num
+        UNION
+        SELECT #{year} as year,3 as month,'0' as num
+        UNION
+        SELECT #{year} as year,4 as month,'0' as num
+        UNION
+        SELECT #{year} as year,5 as month,'0' as num
+        UNION
+        SELECT #{year} as year,6 as month,'0' as num
+        UNION
+        SELECT #{year} as year,7 as month,'0' as num
+        UNION
+        SELECT #{year} as year,8 as month,'0' as num
+        UNION
+        SELECT #{year} as year,9 as month,'0' as num
+        UNION
+        SELECT #{year} as year,10 as month,'0' as num
+        UNION
+        SELECT #{year} as year,11 as month,'0' as num
+        UNION
+        SELECT #{year} as year,12 as month,'0' as num
+        ) as a group by a.month ORDER BY a.month ASC
+    </select>
+
+    <!-- 生产机器最近七天生产份统计 -->
+    <select id="dayStatistics" parameterType="PtsMachineStatistics" resultType="PtsMachineStatistics">
+        SELECT * from (SELECT
+        DAY (machine_produced_time) AS day,
+        date_format(machine_produced_time ,'%m.%d' )  AS date,
+
+        count(machine_id) as num
+        FROM
+        tb_rst_pts_machine
+        WHERE
+        DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt;= date(machine_produced_time)
+        and
+        machine_produce_type = #{machineType}
+        GROUP BY DAY(machine_produced_time)
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 7 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 7 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 6 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 6 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 5 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 5 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 4 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 4 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 3 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 3 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 2 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 2 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        UNION
+        SELECT DAY (DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AS day,date_format(DATE_SUB(CURDATE(), INTERVAL 1 DAY) ,'%m.%d' )  AS date,'0' as num FROM tb_rst_pts_machine
+        ) days GROUP BY days.day
+    </select>
+
+    <!-- 生产流程异常机器统计 -->
+    <select id="flowAbnormality" parameterType="PtsMachineStatistics" resultType="PtsMachineStatistics">
+        SELECT
+            COUNT(1) AS machineCount,
+            sum(
+                CASE
+                WHEN machine_process_state = 2 THEN
+                    1
+                ELSE
+                    0
+                END
+            ) AS machineAbnormality
+        FROM
+            tb_rst_pts_machine
+        where machine_produce_type = #{machineType}
+    </select>
+
+    <!--根据工序id统计生成机器时选项被选择的次数-->
+    <select id="nodeNormalByPrduceId" parameterType="Integer" resultType="PtsMachineStatistics">
+        SELECT
+            pn.node_des AS nodeDes,
+            COUNT(ml.process_node_id) AS num
+        FROM
+            tb_rst_pts_process_node pn
+        LEFT JOIN tb_rst_pts_machine_logs ml ON pn.node_id = ml.process_node_id
+        WHERE
+            pn.process_id = #{processId}
+        GROUP BY
+            ml.process_node_id
+    </select>
 </mapper>
 </mapper>

+ 2 - 1
watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java

@@ -17,7 +17,8 @@ public class ProduceNoUtil {
     //0-9,a-z,A-Z 62个编号
     //0-9,a-z,A-Z 62个编号
     private final static  String[] NUMBER = {"0","1","2","3","4","5","6","7","8","9",
     private final static  String[] NUMBER = {"0","1","2","3","4","5","6","7","8","9",
             "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
             "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
-            "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
+            "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"
+    };
 
 
     //已删除的产品,工序的编号为#
     //已删除的产品,工序的编号为#
     public final static  String NO_NUMBER = "#";
     public final static  String NO_NUMBER = "#";

+ 129 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java

@@ -5,22 +5,28 @@ import com.iamberry.rst.core.order.RentType;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.pts.PtsEmployee;
 import com.iamberry.rst.core.pts.PtsEmployee;
+import com.iamberry.rst.core.pts.ProduceProcess;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachine;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 import com.iamberry.rst.core.pts.PtsMachineLogs;
+import com.iamberry.rst.core.pts.PtsMachineStatistics;
 import com.iamberry.rst.faces.pts.*;
 import com.iamberry.rst.faces.pts.*;
+import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONObject;
 import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.ModelAndView;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import java.util.Iterator;
-import java.util.List;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 
 /**
 /**
  * Created by LJK on 2017/8/29.
  * Created by LJK on 2017/8/29.
@@ -31,6 +37,9 @@ public class AdminMachineController {
 
 
     @Autowired
     @Autowired
     private MachineService machineService;
     private MachineService machineService;
+
+    @Autowired
+    private ProduceService produceService;
     /**
     /**
      * 查询机器列表
      * 查询机器列表
      * @author LJK
      * @author LJK
@@ -212,4 +221,122 @@ public class AdminMachineController {
         String[] a = s.split(",");
         String[] a = s.split(",");
         return machineService.batchUpdateMachineIsPring(a);
         return machineService.batchUpdateMachineIsPring(a);
     }
     }
+    /**
+     * 查询机器打印列表
+     * @author LJK
+     * @date 2017年8月31日16:08:15
+     * @return
+     */
+    @RequiresPermissions("machine:abnormality:statistics")
+    @RequestMapping("/_produced_abnormality_statistics")
+    public ModelAndView producedAbnormalityStatistics(HttpServletRequest request,PtsMachine ptsMachine){
+        ModelAndView mv = new ModelAndView("pts/machine/producedAbnormalityStatistics");
+        String machineType = request.getParameter("machineType");//1.净水机 2.冲奶机
+        if(machineType == null || machineType.equals("")){
+            machineType = "1";
+        }
+        mv.addObject("machineType",machineType);
+        PtsMachineStatistics ptsMachineStatistics = new PtsMachineStatistics();
+        Calendar date = Calendar.getInstance();
+        String year = String.valueOf(date.get(Calendar.YEAR));//年
+        ptsMachineStatistics.setYear(year);
+        ptsMachineStatistics.setMachineType(Integer.valueOf(machineType));
+        //查询1-12月每月生产机器数
+        List<PtsMachineStatistics> ptsMachineStatisticsList = machineService.monthStatistics(ptsMachineStatistics);
+        if(ptsMachineStatisticsList.size() > 0){
+            StringBuffer yearBf = new StringBuffer();
+            for(int i=0;i< ptsMachineStatisticsList.size();i++){
+                yearBf.append(ptsMachineStatisticsList.get(i).getNum().toString()+",");
+            }
+            String yearString = yearBf.toString();
+            mv.addObject("years", "["+yearString.substring(0,yearString.length()-1)+"]");
+        }
+
+        //查询最近七天生产机器
+        List<PtsMachineStatistics> dayList = machineService.dayStatistics(ptsMachineStatistics);
+        if(dayList.size() > 0){
+            StringBuffer dayBf = new StringBuffer();
+            StringBuffer dateBf = new StringBuffer();
+            for(int i=0;i< dayList.size();i++){
+                dayBf.append(dayList.get(i).getNum().toString()+",");
+                dateBf.append(dayList.get(i).getDate()+",");
+            }
+            String dayString = dayBf.toString();
+            String monthDayString = dateBf.toString();
+            mv.addObject("days", "["+dayString.substring(0,dayString.length()-1)+"]");
+            mv.addObject("monthDay", "["+monthDayString.substring(0,monthDayString.length()-1)+"]");
+        }
+
+        /*机器总数及流程异常数*/
+        PtsMachineStatistics numbers = machineService.flowAbnormality(ptsMachineStatistics);
+        /*机器总数*/
+        mv.addObject("machineNum", numbers.getMachineCount());
+        /*机器异常总数*/
+        mv.addObject("machineAbnormality", numbers.getMachineAbnormality());
+        /*流程异常百分比*/
+        double percentage = (double)numbers.getMachineAbnormality() / (double)numbers.getMachineCount()*100;
+        NumberFormat nf=new DecimalFormat( "0.0 ");
+        percentage = Double.parseDouble(nf.format(percentage));
+        mv.addObject("abnormalityPercentage", percentage);
+        /*正常百分比*/
+        double normalPercentage = Double.parseDouble(nf.format(100.0 - percentage));
+        mv.addObject("normalPercentage",normalPercentage);
+        /*根据机器类型查询机器所有工序*/
+        ProduceProcess produceProcess = new ProduceProcess();
+        produceProcess.setProduceId(machineType.equals("1")? 1:2);
+        List<ProduceProcess> processList = produceService.listProduceProcess(produceProcess);
+        mv.addObject("processList",processList);
+        //查询第一条的工序值 默认选择第一条工序
+        List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(processList.get(0).getProcessId());
+        if(nodeCountList.size() > 0){
+            JSONObject json = new JSONObject();
+            StringBuffer nodeBf = new StringBuffer();
+            StringBuffer desBf = new StringBuffer();
+            for(int i=0;i< nodeCountList.size();i++){
+                nodeBf.append(nodeCountList.get(i).getNum().toString()+",");
+                desBf.append("\""+nodeCountList.get(i).getNodeDes()+"\"" + ",");
+
+            }
+            String nodeString = nodeBf.toString();
+            String desString = desBf.toString();
+            mv.addObject("nodeString", "["+nodeString.substring(0,nodeString.length()-1)+"]");
+            mv.addObject("desString", "["+desString.substring(0,desString.length()-1)+"]");
+        }
+
+        return mv;
+    }
+
+    /**
+     * 根据工序id统计选项数量
+     * @author LJK
+     * @date 2017年8月31日16:08:15
+     * @return
+     */
+    @RequiresPermissions("machine:abnormality:statistics")
+    @ResponseBody
+    @RequestMapping("/_node_normal")
+    public ModelMap nodeNormal(HttpServletRequest request){
+        String processId = request.getParameter("processId");//工序id
+        ModelMap mm = new ModelMap();
+        if(processId == null || processId.equals("")){
+            mm.put("returnCode",500);
+            return mm;
+        }
+        List<PtsMachineStatistics> nodeCountList = machineService.nodeNormalByPrduceId(Integer.valueOf(processId));
+        if(nodeCountList.size() > 0){
+            StringBuffer nodeBf = new StringBuffer();
+            StringBuffer desBf = new StringBuffer();
+            for(int i=0;i< nodeCountList.size();i++){
+                nodeBf.append(nodeCountList.get(i).getNum().toString()+",");
+                desBf.append("\""+nodeCountList.get(i).getNodeDes()+"\"" + ",");
+            }
+            String nodeString = nodeBf.toString();
+            String desString = desBf.toString();
+            mm.put("returnCode",200);
+            mm.put("nodeString","["+nodeString.substring(0,nodeString.length()-1)+"]");
+            mm.put("desString","["+desString.substring(0,desString.length()-1)+"]");
+        }
+        return mm;
+    }
 }
 }
+

+ 2 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -118,6 +118,8 @@ public class MachineController {
             ptsMachineLogs.setProduceName(produce.getProduceName());
             ptsMachineLogs.setProduceName(produce.getProduceName());
             ptsMachineLogs.setProcessName(produceProcess.getProcessName());
             ptsMachineLogs.setProcessName(produceProcess.getProcessName());
             ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
             ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
+            ptsMachineLogs.setProcessNodeId(processNode.getNodeId());
+            ptsMachineLogs.setProcessNodeName(processNode.getNodeDes());
             if(i == 0){//如果当前循环的是第一条数据则排序必须是1,否则为异常
             if(i == 0){//如果当前循环的是第一条数据则排序必须是1,否则为异常
                 if(produceProcess.getProcessSort() == 1){
                 if(produceProcess.getProcessSort() == 1){
                     if(processNode.getNodeStatus() == 0){//工序选项状态为异常则机器表状态也是异常
                     if(processNode.getNodeStatus() == 0){//工序选项状态为异常则机器表状态也是异常

+ 4 - 10
watero-rst-web/src/main/resources/dev-jdbc.properties

@@ -1,21 +1,15 @@
 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.driver=com.mysql.jdbc.Driver
-##### \uFFFD\uFFFD\u02BD\uFFFD\uFFFD\uFFFD\uFFFD ####
+##### Õýʽ»·¾³ ####
 #jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/rst?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
 #jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/rst?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
 #jdbc.username=watero_rst
 #jdbc.username=watero_rst
 #jdbc.password=watero_RST
 #jdbc.password=watero_RST
-##### \uFFFD\uFFFD\u02BD\uFFFD\uFFFD\uFFFD\uFFFD end #####
+##### Õýʽ»·¾³ end #####
 
 
-#\u6D4B\u8BD5
-#jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/test_rst?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-#jdbc.username=rst_test
-#jdbc.password=RST_test
-#
-
-### \uFFFD\uFFFD\uFFFD\u053B\uFFFD\uFFFD\uFFFD
+### ²âÊÔ»·¾³
 jdbc.url=jdbc:mysql://192.168.1.254/rst_test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
 jdbc.url=jdbc:mysql://192.168.1.254/rst_test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
 jdbc.username=root
 jdbc.username=root
 jdbc.password=root
 jdbc.password=root
-### \uFFFD\uFFFD\uFFFD\u053B\uFFFD\uFFFD\uFFFD end ######
+### ²âÊÔ»·¾³ end ######
 
 
 #pool settings
 #pool settings
 jdbc.pool.init=1
 jdbc.pool.init=1

+ 2 - 2
watero-rst-web/src/main/resources/watero-rst-ioc.xml

@@ -25,8 +25,8 @@
 	<!-- 使用CGLIB动态代理 -->
 	<!-- 使用CGLIB动态代理 -->
     <aop:aspectj-autoproxy proxy-target-class="true"/>
     <aop:aspectj-autoproxy proxy-target-class="true"/>
 
 
-	<!-- 开启注解启动定时器
-    <task:annotation-driven/> -->
+	<!-- 开启注解启动定时器 -->
+    <task:annotation-driven/>
 
 
 	<!-- DataSource -->
 	<!-- DataSource -->
 	<import resource="classpath:watero-rst-db.xml"/>
 	<import resource="classpath:watero-rst-db.xml"/>

+ 1 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -45,6 +45,7 @@
 		<typeAlias type="com.iamberry.rst.core.pts.PtsEmployee" alias="PtsEmployee"/>
 		<typeAlias type="com.iamberry.rst.core.pts.PtsEmployee" alias="PtsEmployee"/>
 		<typeAlias type="com.iamberry.rst.core.pts.PtsMachine" alias="PtsMachine"/>
 		<typeAlias type="com.iamberry.rst.core.pts.PtsMachine" alias="PtsMachine"/>
 		<typeAlias type="com.iamberry.rst.core.pts.PtsMachineLogs" alias="PtsMachineLogs"/>
 		<typeAlias type="com.iamberry.rst.core.pts.PtsMachineLogs" alias="PtsMachineLogs"/>
+		<typeAlias type="com.iamberry.rst.core.pts.PtsMachineStatistics" alias="PtsMachineStatistics"/>
 	</typeAliases>
 	</typeAliases>
 	<!-- PageHelper -->
 	<!-- PageHelper -->
 	<plugins>
 	<plugins>

+ 7 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/base/page_util.ftl

@@ -36,8 +36,13 @@
         </#if>
         </#if>
         </span>
         </span>
         <#if page.pages lte 5>
         <#if page.pages lte 5>
-            <#assign begin=1/>
-            <#assign end=page.pages/>
+            <#if (page.pages == 0)>
+                <#assign begin=0/>
+                <#assign end=0/>
+            <#else>
+                <#assign begin=1/>
+                <#assign end=page.pages/>
+            </#if>
         <#else>
         <#else>
             <#assign begin=(page.pageNo - 2)/>
             <#assign begin=(page.pageNo - 2)/>
             <#assign end=(page.pageNo + 3)/>
             <#assign end=(page.pageNo + 3)/>

+ 7 - 7
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_device.ftl

@@ -7,15 +7,15 @@
     <style>
     <style>
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
         .my-title{font-weight: 500;padding-left: 15px;position: relative;}
         .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
         .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
-        .my-input{padding: 5px 10px;width: 60%;}
-        .my-input-date{padding: 5px 10px;width: 60%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 80%;}
+        .my-input{padding: 8px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
         .input-box{margin: 18px 0;}
         .input-box{margin: 18px 0;}
         .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
         .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
         .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
         .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
         .add-list>li{margin: 10px 0;}
         .add-list>li{margin: 10px 0;}
-        .my-textarea{padding: 5px 10px;width: 60%;}
-        .my-btn-reset{padding: 6px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
-        .my-btn-submit{padding: 6px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
         .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;width: 60%; height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(http://s.iamberry.com/images/select-1.png) right center no-repeat #fff;background-size:auto 100%;}
         input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
         input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
         input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
         input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/rst/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
@@ -27,7 +27,7 @@
     <span class="c-gray en">&gt;</span> 修改设备
     <span class="c-gray en">&gt;</span> 修改设备
     <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
     <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
 </nav>
 </nav>
-<div style="padding: 10px;padding-left: 250px;">
+<div style="padding: 10px; width: 600px;margin: 0 auto;">
     <form class="form-horizontal" action="${path}/admin/equipment/update_device" id="form-admin-add">
     <form class="form-horizontal" action="${path}/admin/equipment/update_device" id="form-admin-add">
         <div class="my-title">设备信息</div>
         <div class="my-title">设备信息</div>
         <input class="my-input" type="hidden" value="${device.deviceId!}" name="deviceId" id="deviceId" placeholder="请输入设备编号"/>
         <input class="my-input" type="hidden" value="${device.deviceId!}" name="deviceId" id="deviceId" placeholder="请输入设备编号"/>
@@ -43,7 +43,7 @@
             <textarea rows="3" cols="20" name="deviceRemake" id="deviceRemake" class="my-textarea">${device.deviceRemake!}</textarea>
             <textarea rows="3" cols="20" name="deviceRemake" id="deviceRemake" class="my-textarea">${device.deviceRemake!}</textarea>
         </div>
         </div>
         <div>
         <div>
-            <button type="reset" class="my-btn-reset">重置</button><button type="button" class="my-btn-submit" onclick="update_value();">确认</button>
+            <#--<button type="reset" class="my-btn-reset">重置</button>--><button type="button" class="my-btn-submit" onclick="update_value();">确认</button>
         </div>
         </div>
     </form>
     </form>
 </div>
 </div>

+ 1 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/device/update_process.ftl

@@ -150,6 +150,7 @@
         .list-main >li :hover{
         .list-main >li :hover{
             background: #f0f0f0;
             background: #f0f0f0;
         }
         }
+        time > span{font-size: 13px;}
     </style>
     </style>
 <#include "/base/list_base.ftl">
 <#include "/base/list_base.ftl">
 </head>
 </head>

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/employee/update_employee.ftl

@@ -59,7 +59,7 @@
                 <textarea rows="3" cols="20" class="my-textarea" name="employeeDesc" id="employeeDesc" maxlength="200">${employee.employeeDesc!}</textarea>
                 <textarea rows="3" cols="20" class="my-textarea" name="employeeDesc" id="employeeDesc" maxlength="200">${employee.employeeDesc!}</textarea>
             </div>
             </div>
             <div>
             <div>
-                <button type="reset" class="my-btn-reset">重置</button><button type="submit" class="my-btn-submit">确认提交</button>
+                <#--<button type="reset" class="my-btn-reset">重置</button>--><button type="submit" class="my-btn-submit">确认提交</button>
             </div>
             </div>
         </div>
         </div>
     </form>
     </form>

+ 3 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl

@@ -135,7 +135,9 @@
 			</div>
 			</div>
 		</div>
 		</div>
 		<#include "/base/page_util.ftl">
 		<#include "/base/page_util.ftl">
-        <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery.PrintArea.js"></script>
+
+        <#--jquery.PrintArea 2.4-->
+        <script type="text/javascript" src="${path}/common/lib/jquery.PrintArea/jquery.PrintArea.js"></script>
         <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery-barcode.js"></script>
         <script type="text/javascript" src="${path}/common/lib/jquery/1.9.1/jquery-barcode.js"></script>
 
 
 		<script type="text/javascript">
 		<script type="text/javascript">

+ 126 - 126
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/producedAbnormalityStatistics.ftl

@@ -1,63 +1,63 @@
 <!DOCTYPE HTML>
 <!DOCTYPE HTML>
 <html>
 <html>
 <head>
 <head>
-    <meta charset="utf-8">
-    <meta name="renderer" content="webkit|ie-comp|ie-stand">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
-    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<meta charset="utf-8">
+<meta name="renderer" content="webkit|ie-comp|ie-stand">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+<meta http-equiv="Cache-Control" content="no-siteapp" />
 
 
-    <style>
-        .charts-box{width:700px;height:400px;display: inline-block;position: relative;margin-right: 40px;margin-bottom: 40px;}
-        .my-nav{width: 100%;height: 48px;background: #fff;display: table;text-align: center;}
-        .my-nav>a{display: table-cell;vertical-align: middle; border: 1px solid #32a3d8;font-size: 18px;border-left: 0;color: #32a3d8;}
-        .my-nav>a:first-child{border-left: 1px solid #32a3d8;}
-        .my-nav>a.active{background-color: #32a3d8;color:#fff;}
-    </style>
-    <title>生产统计</title>
+<style>
+	.charts-box{width:700px;height:400px;display: inline-block;position: relative;margin-right: 40px;margin-bottom: 40px;}
+	.my-nav{width: 100%;height: 48px;background: #fff;display: table;text-align: center;}
+	.my-nav>a{display: table-cell;vertical-align: middle; border: 1px solid #32a3d8;font-size: 18px;border-left: 0;color: #32a3d8;}
+	.my-nav>a:first-child{border-left: 1px solid #32a3d8;}
+	.my-nav>a.active{background-color: #32a3d8;color:#fff;}
+</style>
+<title>生产统计</title>
 <#include "/base/list_base.ftl">
 <#include "/base/list_base.ftl">
 </head>
 </head>
 <body>
 <body>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 统计管理 <span class="c-gray en">&gt;</span> 生产统计 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px;background-color: #32a3d8;border: 1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
 <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 统计管理 <span class="c-gray en">&gt;</span> 生产统计 <a class="btn btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px;background-color: #32a3d8;border: 1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
 <div class="pd-20">
 <div class="pd-20">
-    <div style="width: 250px;margin-bottom: 20px;">
-        <nav class="my-nav" id="tab-nav-menu">
-            <a <#if machineType == '1'>class="active" </#if> onclick="machineTypeNormal(1);">净水机</a><a <#if machineType == '2'>class="active" </#if> onclick="machineTypeNormal(2);">冲奶机</a>
-        </nav>
-    </div>
-    <div>
-        <div class="charts-box">
-            <div id="container" style="width:700px;height:400px;display: inline-block;"></div>
-        </div>
-        <div class="charts-box">
-            <div id="container1" style="width:700px;height:400px;display: inline-block;"></div>
-        </div>
-    </div>
-    <div>
-        <div class="charts-box" style="height: 478px;background-color: #f5f5f5;">
-            <div style="margin: 15px;">
-                <nav class="my-nav" id="tab-nav-map">
-                <#list processList as list>
-                    <a  name="${list.processId }" <#if list_index == 0>class="active"</#if> >${list.processName }</a>
-                </#list>
-                </nav>
-            </div>
-            <div id="container3" style="width:700px;height:400px;display: inline-block;"></div>
-        </div>
-        <div class="charts-box" style="height: 478px;">
-            <div id="container2" style="width:700px;height:478px;display: inline-block;"></div>
-        </div>
-
-    </div>
+	<div style="width: 250px;margin-bottom: 20px;">
+	<nav class="my-nav" id="tab-nav-menu">
+		<a <#if machineType == '1'>class="active" </#if> onclick="machineTypeNormal(1);">净水机</a><a <#if machineType == '2'>class="active" </#if> onclick="machineTypeNormal(2);">冲奶机</a>
+	</nav>
+	</div>
+	<div>
+		<div class="charts-box">
+	<div id="container" style="width:700px;height:400px;display: inline-block;"></div>
+	</div>
+		<div class="charts-box">
+	<div id="container1" style="width:700px;height:400px;display: inline-block;"></div>
+	</div>
+	</div>
+	<div>
+	<div class="charts-box" style="height: 478px;background-color: #f5f5f5;">
+		<div style="margin: 15px;">
+		<nav class="my-nav" id="tab-nav-map">
+            <#list processList as list>
+                <a  name="${list.processId }" <#if list_index == 0>class="active"</#if> >${list.processName }</a>
+            </#list>
+		</nav>
+		</div>
+	<div id="container3" style="width:700px;height:400px;display: inline-block;"></div>
+	</div>	
+		<div class="charts-box" style="height: 478px;">
+	<div id="container2" style="width:700px;height:478px;display: inline-block;"></div>
+	</div>
+	
+	</div>
 </div>
 </div>
 <script type="text/javascript" src="${path}/common/lib/hcharts/Highcharts/5.0.6/js/highcharts.js"></script>
 <script type="text/javascript" src="${path}/common/lib/hcharts/Highcharts/5.0.6/js/highcharts.js"></script>
 <!--<script type="text/javascript" src="lib/Highcharts/4.1.7/js/modules/exporting.js"></script>-->
 <!--<script type="text/javascript" src="lib/Highcharts/4.1.7/js/modules/exporting.js"></script>-->
 <script type="text/javascript">
 <script type="text/javascript">
-    $(function () {
-
-    });
+$(function () {
+	
+});	
 
 
-    var chart =new Highcharts.Chart('container', {
+ var chart =new Highcharts.Chart('container', {
         chart: {
         chart: {
             type: 'column',
             type: 'column',
             backgroundColor:'#f5f5f5'
             backgroundColor:'#f5f5f5'
@@ -96,7 +96,7 @@
         tooltip: {
         tooltip: {
             headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
             headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
             pointFormat: '<tr><td style="color:{series.color};padding:0"> </td>' +
             pointFormat: '<tr><td style="color:{series.color};padding:0"> </td>' +
-            '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
+                '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
             footerFormat: '</table>',
             footerFormat: '</table>',
             shared: true,
             shared: true,
             useHTML: true
             useHTML: true
@@ -113,8 +113,8 @@
 
 
         }]
         }]
     });
     });
-
-    var chart1 =new Highcharts.Chart('container1', {
+    
+    var chart1 =new Highcharts.Chart('container1', { 
         chart: {
         chart: {
             type: 'column',
             type: 'column',
             backgroundColor:'#f5f5f5'
             backgroundColor:'#f5f5f5'
@@ -140,7 +140,7 @@
         tooltip: {
         tooltip: {
             headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
             headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
             pointFormat: '<tr></td>' +
             pointFormat: '<tr></td>' +
-            '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
+                '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
             footerFormat: '</table>',
             footerFormat: '</table>',
             shared: true,
             shared: true,
             useHTML: true
             useHTML: true
@@ -157,8 +157,8 @@
 
 
         }]
         }]
     });
     });
-
-    var chart2 =new Highcharts.Chart('container2', {
+    
+  var chart2 =new Highcharts.Chart('container2', {
         chart: {
         chart: {
             plotBackgroundColor: null,
             plotBackgroundColor: null,
             plotBorderWidth: null,
             plotBorderWidth: null,
@@ -172,7 +172,7 @@
             text: '共生产台${machineNum!''}机器,${machineAbnormality!''}台流程异常<span style="color:#fba62e;">异常率${abnormalityPercentage!''}%</span>'
             text: '共生产台${machineNum!''}机器,${machineAbnormality!''}台流程异常<span style="color:#fba62e;">异常率${abnormalityPercentage!''}%</span>'
         },
         },
         tooltip: {
         tooltip: {
-            pointFormat: '<b>{point.percentage:.1f}%</b>'
+    	    pointFormat: '<b>{point.percentage:.1f}%</b>'
         },
         },
         plotOptions: {
         plotOptions: {
             pie: {
             pie: {
@@ -201,7 +201,7 @@
             ]
             ]
         }]
         }]
     });
     });
-    var chart3 =new Highcharts.Chart('container3', {
+  var chart3 =new Highcharts.Chart('container3', {
 
 
         chart: {
         chart: {
             type: 'column',
             type: 'column',
@@ -228,7 +228,7 @@
         tooltip: {
         tooltip: {
             headerFormat: '<span style="font-size:10px">{point.key} :</span><table>',
             headerFormat: '<span style="font-size:10px">{point.key} :</span><table>',
             pointFormat: '<tr>' +
             pointFormat: '<tr>' +
-            '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
+                '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
             footerFormat: '</table>',
             footerFormat: '</table>',
             shared: false,
             shared: false,
             useHTML: false
             useHTML: false
@@ -245,84 +245,84 @@
 
 
         }]
         }]
     });
     });
+    
+    
+//按钮切换    
+$(document).on('click', '#tab-nav-menu>a', function() {
+	$(this).addClass("active").siblings().removeClass("active");
+	//这里写更新1,2,3,4图数据的代码,逻辑自己判断
+});	
 
 
 
 
-    //按钮切换
-    $(document).on('click', '#tab-nav-menu>a', function() {
-        $(this).addClass("active").siblings().removeClass("active");
-        //这里写更新1,2,3,4图数据的代码,逻辑自己判断
-    });
-
-
-    $(document).on('click', '#tab-nav-map>a', function() {
-        $(this).addClass("active").siblings().removeClass("active");
-        var processId = $(this).attr("name");
-        $.ajax({
-            "type" : "post",
-            "url" : "${path}/admin/machine/_node_normal",
-            "dataType" : "json",
-            "data" :{processId : processId},
-            "success" : function(data) {
-                if(data.returnCode == 200){
-                    var desString = eval(data.desString);
-                    var nodeString = eval(data.nodeString);
-                    chart3.update({
-                        chart: {
-                            type: 'column',
-                            backgroundColor:'#f5f5f5'
-                        },
+$(document).on('click', '#tab-nav-map>a', function() {
+	$(this).addClass("active").siblings().removeClass("active");
+    var processId = $(this).attr("name");
+    $.ajax({
+        "type" : "post",
+        "url" : "${path}/admin/machine/_node_normal",
+        "dataType" : "json",
+        "data" :{processId : processId},
+        "success" : function(data) {
+            if(data.returnCode == 200){
+                var desString = eval(data.desString);
+                var nodeString = eval(data.nodeString);
+                chart3.update({
+                    chart: {
+                        type: 'column',
+                        backgroundColor:'#f5f5f5'
+                    },
+                    title: {
+                        text: ''
+                    },
+                    subtitle: {
+                        text: ''
+                    },
+                    xAxis: {
+                        categories: desString
+                    },
+                    legend: {
+                        enabled: false
+                    },
+                    yAxis: {
+                        min: 0,
                         title: {
                         title: {
-                            text: ''
-                        },
-                        subtitle: {
-                            text: ''
-                        },
-                        xAxis: {
-                            categories: desString
-                        },
-                        legend: {
-                            enabled: false
-                        },
-                        yAxis: {
-                            min: 0,
-                            title: {
-                                text: '类型'
-                            }
-                        },
-                        tooltip: {
-                            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
-                            pointFormat: '<tr><td style="color:{series.color};padding:0"> </td>' +
-                            '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
-                            footerFormat: '</table>',
-                            shared: false,
-                            useHTML: false
-                        },
-                        plotOptions: {
-                            column: {
-                                pointPadding: 0.2,
-                                borderWidth: 0
-                            }
-                        },
-                        series: [{
-                            name: ' ',
-                            data: nodeString
+                            text: '类型'
+                        }
+                    },
+                    tooltip: {
+                        headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
+                        pointFormat: '<tr><td style="color:{series.color};padding:0"> </td>' +
+                        '<td style="padding:0"><b>{point.y} 台</b></td></tr>',
+                        footerFormat: '</table>',
+                        shared: false,
+                        useHTML: false
+                    },
+                    plotOptions: {
+                        column: {
+                            pointPadding: 0.2,
+                            borderWidth: 0
+                        }
+                    },
+                    series: [{
+                        name: ' ',
+                        data: nodeString
 
 
-                        }]
-                    });
-                }else{
-                    layer.msg('查询失败', {icon: 2, time: 2000});
-                }
-            },
-            "error":function(data){
-                layer.msg('操作失败', {icon: 2, time: 2000});
+                    }]
+                });
+            }else{
+                layer.msg('查询失败', {icon: 2, time: 2000});
             }
             }
-        });
-
+        },
+        "error":function(data){
+            layer.msg('操作失败', {icon: 2, time: 2000});
+        }
     });
     });
 
 
-    function machineTypeNormal(machineType) {
-        window.location.href=root_path + '/admin/machine/_produced_abnormality_statistics?machineType='+machineType;
-    }
+});
+
+function machineTypeNormal(machineType) {
+    window.location.href=root_path + '/admin/machine/_produced_abnormality_statistics?machineType='+machineType;
+}
 </script>
 </script>
 </body>
 </body>
 </html>
 </html>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
watero-rst-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/highcharts.js