Browse Source

生产指挥看板

oyq28 1 year ago
parent
commit
ee894f02c5

+ 6 - 0
src/main/java/com/imcs/admin/business/controller/BigScreenDetailController.java

@@ -35,4 +35,10 @@ public class BigScreenDetailController {
         Boolean isRefresh=Boolean.valueOf(redisTemplate.opsForValue().get(Constants.IS_REFRESH).toString());
         return new Result(isRefresh);
     }
+
+    //生产只会看板
+    @RequestMapping("/getBusinessData")
+    public Result getBusinessData(){
+        return new Result<>(bigScreenDetailService.getBusinessData());
+    }
 }

+ 11 - 0
src/main/java/com/imcs/admin/business/controller/BusinessController.java

@@ -158,4 +158,15 @@ public class BusinessController {
         businessService.scrapAmount(id,map);
         return Result.success();
     }
+
+    /**
+     * 关闭销售订单
+     * @param id
+     * @return
+     */
+    @GetMapping("/updateSales/{id}")
+    public Result updateSales(@PathVariable("id") Long id){
+        businessService.updateSales(id);
+        return Result.success();
+    }
 }

+ 2 - 0
src/main/java/com/imcs/admin/business/service/BigScreenDetailService.java

@@ -5,4 +5,6 @@ import com.imcs.admin.common.PageParam;
 
 public interface BigScreenDetailService {
     public JSONObject getBigScreenDetail(PageParam pageParam);
+
+    JSONObject getBusinessData();
 }

+ 2 - 0
src/main/java/com/imcs/admin/business/service/BusinessService.java

@@ -29,4 +29,6 @@ public interface BusinessService {
     void productIn(Long id);
 
     void scrapAmount(Long id, Map<String, Object> map);
+
+    void updateSales(Long id);
 }

+ 118 - 0
src/main/java/com/imcs/admin/business/service/impl/BigScreenDetailServiceImpl.java

@@ -113,6 +113,8 @@ public class BigScreenDetailServiceImpl implements BigScreenDetailService {
         return json;
     }
 
+
+
     /**
      * 本月设备主轴利用率
      * @param ip
@@ -180,4 +182,120 @@ public class BigScreenDetailServiceImpl implements BigScreenDetailService {
             json.put("actSpindle",parts[0]);
         }
     }
+
+
+    @Override
+    public JSONObject getBusinessData() {
+        JSONObject jsonObject=new JSONObject();
+        Map<String, Object> day = jdbcService.findOne("SELECT IFNULL(SUM(amount), 0) AS day_count\n" +
+                "FROM a_product_store_record \n" +
+                "WHERE DATE(created_at) = CURDATE();\n");
+
+        Map<String, Object> month = jdbcService.findOne("SELECT IFNULL(SUM(amount), 0) AS month_count" +
+                " FROM a_product_store_record " +
+                " WHERE MONTH(created_at) = MONTH(CURDATE())");
+
+        Map<String, Object> year = jdbcService.findOne("SELECT IFNULL(SUM(amount), 0) AS year_count\n" +
+                "FROM a_product_store_record \n" +
+                "WHERE YEAR(created_at) = YEAR(CURDATE())");
+
+        Map<String, Object> sales = jdbcService.findOne("select IFNULL(count(*), 0) as day_sales from b_sales_order where apply_status != -1 and is_issue = 1 and YEAR(created_at) = YEAR(CURDATE())\n");
+
+        List<String> previousMonths = DateUtils.getPreviousMonths(6);
+        String collect = previousMonths.stream()
+                .map(date -> "'" + date + "'")
+                .collect(Collectors.joining(", "));
+
+        //月度产量
+        String sql = "SELECT DATE_FORMAT(created_at, '%Y-%m') as month,SUM(amount) as amount FROM a_product_store_record WHERE DATE_FORMAT(created_at, '%Y-%m') IN ("+collect+") group by DATE_FORMAT(created_at, '%Y-%m') order by DATE_FORMAT(created_at, '%Y-%m')";
+        PageParam pageParam=new PageParam();
+        pageParam.put("openPage","NO");
+        Result<PageData<Map<String, Object>>> query = jdbcService.query(pageParam, sql);
+        List<Map<String, Object>> items = query.getData().getItems();
+
+        //报废
+        String scrapSql = "SELECT DATE_FORMAT(create_time, '%Y-%m') as month,SUM(scrap_amount) as amount FROM a_work_scrap WHERE DATE_FORMAT(create_time, '%Y-%m') IN ("+collect+") group by DATE_FORMAT(create_time, '%Y-%m') order by DATE_FORMAT(create_time, '%Y-%m')";
+        Result<PageData<Map<String, Object>>> scrapQuery = jdbcService.query(pageParam, scrapSql);
+        List<Map<String, Object>> scrapItems = scrapQuery.getData().getItems();
+
+
+        List<Integer> monthInt=new ArrayList<>();
+        List<Integer> scrapInt=new ArrayList<>();
+
+        previousMonths.forEach(vo -> {
+            boolean found = false;
+            for (Map<String, Object> item : items) {
+                String monthFromRecord = (String) item.get("month"); // 请将 "MONTH" 替换为你实际查询结果中月份对应的字段名
+                if (vo.equals(monthFromRecord)) {
+                    int sum = ((Number) item.getOrDefault("amount", 0)).intValue(); // 请将 "SUM_AMOUNT" 替换为你实际查询结果中总量对应的字段名
+                    monthInt.add(sum);
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                monthInt.add(0); // 如果没找到对应月份的记录,则将值设为0
+            }
+            boolean scrapFound = false;
+            for (Map<String, Object> item : scrapItems) {
+                String monthFromRecord = (String) item.get("month"); // 请将 "MONTH" 替换为你实际查询结果中月份对应的字段名
+                if (vo.equals(monthFromRecord)) {
+                    int sum = ((Number) item.getOrDefault("amount", 0)).intValue(); // 请将 "SUM_AMOUNT" 替换为你实际查询结果中总量对应的字段名
+                    scrapInt.add(sum);
+                    scrapFound = true;
+                    break;
+                }
+            }
+            if (!scrapFound) {
+                scrapInt.add(0); // 如果没找到对应月份的记录,则将值设为0
+            }
+        });
+
+
+        //生产令
+        String productionOrderSql="SELECT *\n" +
+                "FROM a_production_order\n" +
+                "WHERE status != -1\n" +
+                "ORDER BY\n" +
+                "  CASE \n" +
+                "    WHEN status = 1 THEN 0\n" +
+                "    WHEN status = 0 THEN 1\n" +
+                "    WHEN status = 2 THEN 2\n" +
+                "    ELSE 3  \n" +
+                "  END";
+        Result<PageData<Map<String, Object>>> query1 = jdbcService.query(new PageParam(), productionOrderSql);
+        List<Map<String, Object>> items1 = query1.getData().getItems();
+        items1.stream().forEach(vo->{
+            Integer status = Integer.valueOf(vo.get("status").toString());
+            Long id = Long.valueOf(vo.get("id").toString());
+            if(0 == status){
+                vo.put("width",0);
+            }else if(1 == status){
+                String queryWork="SELECT \n" +
+                        "ROUND((SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) / COUNT(*)) * 100, 1) AS ratio\n" +
+                        "FROM a_production_work_order \n" +
+                        "WHERE production_order_id = ?";
+                Map<String, Object> one = jdbcService.findOne(queryWork, id);
+                vo.put("width",one.get("ratio").toString());
+            } else if (2 == status) {
+                vo.put("width",100);
+            }
+        });
+
+        Integer dayCount = Integer.valueOf(day.get("dayCount").toString());
+        Integer monthCount = Integer.valueOf(month.get("monthCount").toString());
+        Integer yearCount = Integer.valueOf(year.get("yearCount").toString());
+        Integer daySales = Integer.valueOf(sales.get("daySales").toString());
+        jsonObject.put("dayCount",dayCount);
+        jsonObject.put("monthCount",monthCount);
+        jsonObject.put("yearCount",yearCount);
+        jsonObject.put("daySales",daySales);
+        jsonObject.put("monthList",previousMonths);
+        jsonObject.put("monthInt",monthInt);
+        jsonObject.put("scrapInt",scrapInt);
+        jsonObject.put("productionOrder",items1);
+
+
+        return jsonObject;
+    }
 }

+ 41 - 5
src/main/java/com/imcs/admin/business/service/impl/BusinessServiceImpl.java

@@ -81,8 +81,8 @@ public class BusinessServiceImpl implements BusinessService{
         String planAmount = one.get("planAmount").toString();
         String productionOrderCode = one.get("productionOrderCode").toString();
         Long salesOrderId = Long.valueOf(one.get("salesOrderId").toString());
-        String insertSql="INSERT INTO `imcs_platform`.`a_production_preparation_task` (`order_code`, `order_name`, `task_code`, `product_name`, `product_code`, `amount`,`status`, `created_at`,`production_order_code`, `production_order_id`,sales_order_id) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
-        jdbcService.insert("执行insert",insertSql,orderCode,orderName,generateSerial.generateSerialNumber("aProductionPreparationTask"),productName,productCode,planAmount,0,new Date(),productionOrderCode,id,salesOrderId);
+        String insertSql="INSERT INTO `imcs_platform`.`a_production_preparation_task` (`order_code`, `order_name`, `task_code`, `product_name`, `product_code`, `amount`,`status`, `created_at`,`production_order_code`, `production_order_id`,sales_order_id,is_design) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
+        jdbcService.insert("执行insert",insertSql,orderCode,orderName,generateSerial.generateSerialNumber("aProductionPreparationTask"),productName,productCode,planAmount,0,new Date(),productionOrderCode,id,salesOrderId,0);
         jdbcService.update("update a_production_order set is_issue = 1 where id = ?",id);
 
     }
@@ -112,7 +112,8 @@ public class BusinessServiceImpl implements BusinessService{
                     "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)";
             jdbcService.insert("执行insert",sql,orderCode,generateSerial.generateSerialNumber("aProductionOrder"),orderName,productName,productCode,planAmount - batchAmount,id,0,salesOrderId,productId,0,new Date(),0);
             jdbcService.insert("执行insert",sql,orderCode,generateSerial.generateSerialNumber("aProductionOrder"),orderName,productName,productCode,batchAmount,id,0,salesOrderId,productId,0,new Date(),0);
-            jdbcService.update("update a_production_order set status = 1 where id = ?",id);
+            //关闭原有生产令
+            jdbcService.update("update a_production_order set status = -1 where id = ?",id);
         }
     }
 
@@ -133,7 +134,7 @@ public class BusinessServiceImpl implements BusinessService{
         for (int i = 1 ;i <= serialMap.size() ; i++){
             jdbcService.insert("执行insert",sql,orderCode,orderName,generateSerial.generateSerialNumber(serialMap.get(i)),productName,productCode,amount,0,new Date(),productionOrderCode,productionOrderId,i,salesOrderId,id,2);
         }
-        jdbcService.update("update a_production_preparation_task set status = 1 where id = ?",id);
+        jdbcService.update("update a_production_preparation_task set is_design = 1 where id = ?",id);
     }
 
     @Override
@@ -226,6 +227,7 @@ public class BusinessServiceImpl implements BusinessService{
         Integer planAmount = Integer.valueOf(one.get("planAmount").toString());
         Integer taskType = Integer.valueOf(one.get("taskType").toString());
         Long processProcedureId = Long.valueOf(one.get("processProcedureId").toString());
+        Long productionOrderId = Long.valueOf(one.get("productionOrderId").toString());
         //校验上道工序是否完成  加工工序可以越过质检工序和外协工序,质检和外协不能跳跃任何工序
         //首道工序无须校验
         if(!"1".equals(seq)){
@@ -263,6 +265,7 @@ public class BusinessServiceImpl implements BusinessService{
                 jdbcService.insert("执行insert",insertInOutDetail.toString(),materialId,materialCode,materialName,planAmount*materialAmount,inOutId,i);
             }
             isRecevie=1;
+            jdbcService.update("update a_production_order set status=1 where id = ?",productionOrderId);
         }else{
             isRecevie=2;
         }
@@ -368,8 +371,9 @@ public class BusinessServiceImpl implements BusinessService{
             //入库记录
             String insert="INSERT INTO a_product_store_record (production_work_order_id, amount, work_code, created_at, apply_status) VALUES (?, ?, ?, ?, ?)";
             jdbcService.insert("执行sql",insert,id,reportAmount,workCode,new Date(),0);
+            jdbcService.update("update a_production_order set status=2 where id = ?",productionOrderId);
         }
-        jdbcService.update("update a_production_work_order set status=2 where id=?",id);
+        jdbcService.update("update a_production_work_order set status=2,real_end_date = now() where id=?",id);
     }
 
     @Override
@@ -429,4 +433,36 @@ public class BusinessServiceImpl implements BusinessService{
         }
         return previousRow;
     }
+
+    /**
+     * 工艺路径版本id
+     * @param id
+     */
+    public void updateProcessProcedure(Long id){
+        //关闭未开始的工单,进行中的继续
+        jdbcService.update("update a_production_work_order SET  status= -1 where status=0 and \n" +
+                "production_order_code in (select production_order_code from a_production_order where product_id = (select parent_id from a_process_version where id=? and status=1 ))",id);
+    }
+
+    /**
+     * 销售订单id
+     * @param id
+     */
+    public void updateSales(Long id){
+        //关闭销售订单
+        jdbcService.update("update b_sales_order set apply_status = -1 where id = ? ",id);
+
+        //关闭未下发的生产令
+        jdbcService.update("update a_production_order set status = -1 where is_issue=0 and sales_order_id = ? ",id);
+
+        //关闭未分发的设计分发任务
+        jdbcService.update("update a_production_preparation_task set status = -1 where status = 0 and sales_order_id = ? ",id);
+
+        //关闭未开始的设计任务
+        jdbcService.update("update a_production_design_preparation_task set status = -1 where status = 0 and sales_order_id = ? ",id);
+
+        //关闭未开始的生产任务
+        jdbcService.update("update a_production_work_order set status = -1 where status = 0 and sales_order_id = ? ",id);
+
+    }
 }

+ 15 - 4
src/main/java/com/imcs/admin/util/DateUtils.java

@@ -1,13 +1,11 @@
 package com.imcs.admin.util;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 public class DateUtils {
     public static String getCurrentDate(String dateFormat) {
@@ -66,6 +64,19 @@ public class DateUtils {
         return yearMonths;
     }
 
+    public static List<String> getPreviousMonths(int count) {
+        List<String> previousMonths = new ArrayList<>();
+        LocalDate currentDate = LocalDate.now();
+
+        for (int i = 0; i < count; i++) {
+            LocalDate previousMonth = currentDate.minusMonths(i);
+            String formattedMonth = previousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+            previousMonths.add(formattedMonth);
+        }
+        Collections.reverse(previousMonths);
+        return previousMonths;
+    }
+
 
     public static void main(String[] args) {
         System.out.println(getLastYearMonths());

BIN
src/main/resources/static/admin/images/dayCount.png


BIN
src/main/resources/static/admin/images/monthCount.png


BIN
src/main/resources/static/admin/images/yearCount.png


BIN
src/main/resources/static/admin/images/yearSales.png


+ 122 - 146
src/main/resources/static/admin/lyear_main.html

@@ -20,11 +20,10 @@
     <div class="col-sm-6 col-md-3">
       <div class="card bg-primary">
         <div class="card-body clearfix">
-          <div class="pull-right">
-            <p class="h6 text-white m-t-0">今年产量</p>
-            <p class="h3 text-white m-b-0 fa-1-5x">102,125.00</p>
+          <div class="pull-right" id="day">
+
           </div>
-          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-currency-cny fa-1-5x"></i></span> </div>
+          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><img src="images/dayCount.png"/></span> </div>
         </div>
       </div>
     </div>
@@ -32,11 +31,10 @@
     <div class="col-sm-6 col-md-3">
       <div class="card bg-danger">
         <div class="card-body clearfix">
-          <div class="pull-right">
-            <p class="h6 text-white m-t-0">当月产量</p>
-            <p class="h3 text-white m-b-0 fa-1-5x">920,000</p>
+          <div class="pull-right" id="month">
+
           </div>
-          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account fa-1-5x"></i></span> </div>
+          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><img src="images/monthCount.png"/></span> </div>
         </div>
       </div>
     </div>
@@ -44,11 +42,10 @@
     <div class="col-sm-6 col-md-3">
       <div class="card bg-success">
         <div class="card-body clearfix">
-          <div class="pull-right">
-            <p class="h6 text-white m-t-0">当日产量</p>
-            <p class="h3 text-white m-b-0 fa-1-5x">34,005,000</p>
+          <div class="pull-right" id="year">
+
           </div>
-          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-arrow-down-bold fa-1-5x"></i></span> </div>
+          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><img src="images/yearCount.png"/></span> </div>
         </div>
       </div>
     </div>
@@ -56,11 +53,10 @@
     <div class="col-sm-6 col-md-3">
       <div class="card bg-purple">
         <div class="card-body clearfix">
-          <div class="pull-right">
-            <p class="h6 text-white m-t-0">当月新增订单量</p>
-            <p class="h3 text-white m-b-0 fa-1-5x">153 </p>
+          <div class="pull-right" id="sales">
+
           </div>
-          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-comment-outline fa-1-5x"></i></span> </div>
+          <div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><img src="images/yearSales.png"></span> </div>
         </div>
       </div>
     </div>
@@ -71,7 +67,7 @@
     <div class="col-md-6">
       <div class="card">
         <div class="card-header">
-          <h4>产量</h4>
+          <h4>月度产量</h4>
         </div>
         <div class="card-body">
           <canvas class="js-chartjs-bars"></canvas>
@@ -105,110 +101,15 @@
               <thead>
                 <tr>
                   <th>#</th>
-                  <th>生产令名称</th>
+                  <th>生产令编号</th>
                   <th>开始日期</th>
                   <th>截止日期</th>
                   <th>状态</th>
                   <th>进度</th>
                 </tr>
               </thead>
-              <tbody>
-                <tr>
-                  <td>1</td>
-                  <td>生产令1</td>
-                  <td>10/02/2019</td>
-                  <td>12/05/2019</td>
-                  <td><span class="label label-warning">待定</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-warning" style="width: 45%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>2</td>
-                  <td>生产令2</td>
-                  <td>01/03/2019</td>
-                 <td>12/04/2019</td>
-                  <td><span class="label label-success">进行中</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-success" style="width: 30%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>3</td>
-                  <td>生产令3</td>
-                   <td>10/10/2019</td>
-                   <td>12/11/2019</td>
-                  <td><span class="label label-warning">待定</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-warning" style="width: 25%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>4</td>
-                  <td>生产令4</td>
-                  <td>25/01/2019</td>
-                  <td>09/05/2019</td>
-                  <td><span class="label label-success">进行中</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-success" style="width: 55%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>5</td>
-                  <td>生产令5</td>
-                  <td>10/10/2019</td>
-                  <td>12/12/2019</td>
-                  <td><span class="label label-danger">未开始</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-danger" style="width: 0%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>6</td>
-                  <td>生产令6</td>
-                  <td>10/01/2019</td>
-                  <td>29/03/2019</td>
-                  <td><span class="label label-success">进行中</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-success" style="width: 75%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>7</td>
-                  <td>生产令7</td>
-                  <td>25/02/2019</td>
-                  <td>12/05/2019</td>
-                  <td><span class="label label-danger">暂停</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-danger" style="width: 15%;"></div>
-                    </div>
-                  </td>
-                </tr>
-                <tr>
-                  <td>8</td>
-                  <td>生产令8</td>
-                  <td>10/02/2019</td>
-                  <td>01/03/2019</td>
-                  <td><span class="label label-warning">完成</span></td>
-                  <td>
-                    <div class="progress progress-striped progress-sm">
-                      <div class="progress-bar progress-bar-success" style="width: 100%;"></div>
-                    </div>
-                  </td>
-                </tr>
+              <tbody id="productionOrder">
+
               </tbody>
             </table>
           </div>
@@ -228,47 +129,122 @@
 <script type="text/javascript" src="js/Chart.js"></script>
 <script type="text/javascript">
 $(document).ready(function(e) {
+  const day = document.querySelector('#day');
+  const month = document.querySelector('#month');
+  const year = document.querySelector('#year');
+  const sales = document.querySelector('#sales');
+  const productionOrder = document.querySelector('#productionOrder');
+
+  init();
+  function init(){
+    all();
+  }
+
+  function all(){
+    $.ajax({
+      url: "/bigScreen/getBusinessData",
+      type: "POST", // 指定请求类型为 POST
+      contentType: "application/json", // 设置请求的内容类型为 JSON
+      dataType: "JSON",
+      success: function (resp) {
+        var data=resp.data;
+        top(data);
+        center(data);
+        button(data);
+      }
+    })
+  }
+
+  function top(data){
+    day.innerHTML=`<p class="h6 text-white m-t-0">日产量</p>
+            <p class="h3 text-white m-b-0 fa-1-5x">${data.dayCount}</p>`;
+    month.innerHTML=`<p class="h6 text-white m-t-0">月产量</p>
+            <p class="h3 text-white m-b-0 fa-1-5x">${data.monthCount}</p>`;
+    year.innerHTML=`<p class="h6 text-white m-t-0">年产量</p>
+            <p class="h3 text-white m-b-0 fa-1-5x">${data.yearCount}</p>`;
+    sales.innerHTML=`<p class="h6 text-white m-t-0">当月新增订单量</p>
+            <p class="h3 text-white m-b-0 fa-1-5x">${data.daySales}</p>`;
+
+  }
+  function center(data){
+
     var $dashChartBarsCnt  = jQuery( '.js-chartjs-bars' )[0].getContext( '2d' ),
-        $dashChartLinesCnt = jQuery( '.js-chartjs-lines' )[0].getContext( '2d' );
+            $dashChartLinesCnt = jQuery( '.js-chartjs-lines' )[0].getContext( '2d' );
 
     var $dashChartBarsData = {
-		labels: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
-		datasets: [
-			{
-				label: '周产量',
-                borderWidth: 1,
-                borderColor: 'rgba(0,0,0,0)',
-				backgroundColor: 'rgba(51,202,185,0.5)',
-                hoverBackgroundColor: "rgba(51,202,185,0.7)",
-                hoverBorderColor: "rgba(0,0,0,0)",
-				data: [2500, 1500, 1200, 3200, 4800, 3500, 1500]
-			}
-		]
-	};
+      labels: data.monthList,
+      datasets: [
+        {
+          label: '月度产量',
+          borderWidth: 1,
+          borderColor: 'rgba(0,0,0,0)',
+          backgroundColor: 'rgba(51,202,185,0.5)',
+          hoverBackgroundColor: "rgba(51,202,185,0.7)",
+          hoverBorderColor: "rgba(0,0,0,0)",
+          data: data.monthInt
+        }
+      ]
+    };
     var $dashChartLinesData = {
-		labels: ['2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014'],
-		datasets: [
-			{
-				label: '报废数量',
-				data: [20, 25, 40, 30, 45, 40, 55, 40, 48, 40, 42, 50],
-				borderColor: '#358ed7',
-				backgroundColor: 'rgba(53, 142, 215, 0.175)',
-                borderWidth: 1,
-                fill: false,
-                lineTension: 0.5
-			}
-		]
-	};
+      labels: data.monthList,
+      datasets: [
+        {
+          label: '报废数量',
+          data: data.scrapInt,
+          borderColor: '#358ed7',
+          backgroundColor: 'rgba(53, 142, 215, 0.175)',
+          borderWidth: 1,
+          fill: false,
+          lineTension: 0.5
+        }
+      ]
+    };
 
     new Chart($dashChartBarsCnt, {
-        type: 'bar',
-        data: $dashChartBarsData
+      type: 'bar',
+      data: $dashChartBarsData
     });
 
     var myLineChart = new Chart($dashChartLinesCnt, {
-        type: 'line',
-        data: $dashChartLinesData,
+      type: 'line',
+      data: $dashChartLinesData,
     });
+  }
+
+  function button(data) {
+    button.innerHTML = `<p class="h6 text-white m-t-0">日产量</p>
+            <p class="h3 text-white m-b-0 fa-1-5x">${data.dayCount}</p>`;
+
+    data.productionOrder.forEach(function (order, index) {
+      let status = order.status;
+      let classStatus="";
+      let strStatus="";
+      if(status === "0"){
+        classStatus="warning";
+        strStatus="未开始";
+      }else if(status === "1"){
+        classStatus="success";
+        strStatus="进行中";
+      }else if(status === "2"){
+        classStatus="success";
+        strStatus="完成";
+      }
+      productionOrder.innerHTML += `
+                <tr>
+                  <td>`+(index+1)+`</td>
+                  <td>${order.productionOrderCode}</td>
+                  <td>${order.startTime===null?"":order.startTime}</td>
+                  <td>${order.endTime===null?"":order.endTime}</td>
+                  <td><span class="label label-`+classStatus+`">`+strStatus+`</span></td>
+                  <td>
+                    <div class="progress progress-striped progress-sm">
+                      <div class="progress-bar progress-bar-`+classStatus+`" style="width: ${order.width}%;"></div>
+                    </div>
+                  </td>
+                </tr>`;
+
+    })
+  }
 });
 </script>
 </body>