From e82830dc4a5b8ebff1f2cf8506c9c8ee06867760 Mon Sep 17 00:00:00 2001
From: hdy <1105738590@qq.com>
Date: 星期三, 10 一月 2024 10:56:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml                      |  124 ++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java    |  104 +++++
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/IBsOrderSchedulingService.java         |   61 +++
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java |   93 ++++
 jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js                                              |   44 ++
 jcdm-ui/src/views/main/bs/orderScheduling/index.vue                                                     |  409 +++++++++++++++++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java                  |  234 ++++++++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java            |   61 +++
 jcdm-admin/src/main/resources/application-druid.yml                                                     |    2 
 9 files changed, 1,131 insertions(+), 1 deletions(-)

diff --git a/jcdm-admin/src/main/resources/application-druid.yml b/jcdm-admin/src/main/resources/application-druid.yml
index a68ced9..038e666 100644
--- a/jcdm-admin/src/main/resources/application-druid.yml
+++ b/jcdm-admin/src/main/resources/application-druid.yml
@@ -16,7 +16,7 @@
         druid:
             # 涓诲簱鏁版嵁婧�
             master:
-                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=jcdm-mes
+                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm041-Mes
                 username: sa
                 password: JCDM@2023
             # 浠庡簱鏁版嵁婧�
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
new file mode 100644
index 0000000..5360a14
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java
@@ -0,0 +1,104 @@
+package com.jcdm.main.bs.orderScheduling.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.jcdm.common.annotation.Log;
+import com.jcdm.common.core.controller.BaseController;
+import com.jcdm.common.core.domain.AjaxResult;
+import com.jcdm.common.enums.BusinessType;
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.common.core.page.TableDataInfo;
+
+/**
+ * 璁㈠崟鎺掍骇Controller
+ * 
+ * @author jiang
+ * @date 2024-01-09
+ */
+@RestController
+@RequestMapping("/bs/orderScheduling")
+public class BsOrderSchedulingController extends BaseController
+{
+    @Autowired
+    private IBsOrderSchedulingService bsOrderSchedulingService;
+
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsOrderScheduling bsOrderScheduling)
+    {
+        startPage();
+        List<BsOrderScheduling> list = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭璁㈠崟鎺掍骇鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:export')")
+    @Log(title = "璁㈠崟鎺掍骇", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BsOrderScheduling bsOrderScheduling)
+    {
+        List<BsOrderScheduling> list = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
+        ExcelUtil<BsOrderScheduling> util = new ExcelUtil<BsOrderScheduling>(BsOrderScheduling.class);
+        util.exportExcel(response, list, "璁㈠崟鎺掍骇鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇璁㈠崟鎺掍骇璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:query')")
+    @GetMapping(value = "/{orderNumber}")
+    public AjaxResult getInfo(@PathVariable("orderNumber") String orderNumber)
+    {
+        return success(bsOrderSchedulingService.selectBsOrderSchedulingByOrderNumber(orderNumber));
+    }
+
+    /**
+     * 鏂板璁㈠崟鎺掍骇
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:add')")
+    @Log(title = "璁㈠崟鎺掍骇", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BsOrderScheduling bsOrderScheduling)
+    {
+        return toAjax(bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling));
+    }
+
+    /**
+     * 淇敼璁㈠崟鎺掍骇
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:edit')")
+    @Log(title = "璁㈠崟鎺掍骇", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BsOrderScheduling bsOrderScheduling)
+    {
+        return toAjax(bsOrderSchedulingService.updateBsOrderScheduling(bsOrderScheduling));
+    }
+
+    /**
+     * 鍒犻櫎璁㈠崟鎺掍骇
+     */
+    @PreAuthorize("@ss.hasPermi('bs:orderScheduling:remove')")
+    @Log(title = "璁㈠崟鎺掍骇", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{orderNumbers}")
+    public AjaxResult remove(@PathVariable String[] orderNumbers)
+    {
+        return toAjax(bsOrderSchedulingService.deleteBsOrderSchedulingByOrderNumbers(orderNumbers));
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java
new file mode 100644
index 0000000..2347f53
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java
@@ -0,0 +1,234 @@
+package com.jcdm.main.bs.orderScheduling.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.jcdm.common.annotation.Excel;
+import com.jcdm.common.core.domain.BaseEntity;
+
+/**
+ * 璁㈠崟鎺掍骇瀵硅薄 bs_order_scheduling
+ * 
+ * @author jiang
+ * @date 2024-01-09
+ */
+public class BsOrderScheduling extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 璁㈠崟缂栧彿 */
+    @Excel(name = "璁㈠崟缂栧彿")
+    private String orderNumber;
+
+    /** 鍙戝姩鏈哄彿 */
+    @Excel(name = "鍙戝姩鏈哄彿")
+    private String engineNo;
+
+    /** 浜у搧绫诲瀷 */
+    @Excel(name = "浜у搧绫诲瀷")
+    private String productType;
+
+    /** 鏈哄瀷 */
+    @Excel(name = "鏈哄瀷")
+    private String model;
+
+    /** 鐢熶骇鐘舵�� */
+    @Excel(name = "鐢熶骇鐘舵��")
+    private String productionStatus;
+
+    /** 宸ユ椂 */
+    @Excel(name = "宸ユ椂")
+    private String workingHours;
+
+    /** 褰撳墠宸ヤ綅 */
+    @Excel(name = "褰撳墠宸ヤ綅")
+    private String currentWorkstation;
+
+    /** 璐ㄩ噺鐘舵�� */
+    @Excel(name = "璐ㄩ噺鐘舵��")
+    private String qualityStatus;
+
+    /** 鏄惁鎵撳嵃 */
+    @Excel(name = "鏄惁鎵撳嵃")
+    private String whetherOrPrint;
+
+    /** 10鎶ュ伐 */
+    @Excel(name = "10鎶ュ伐")
+    private String report10;
+
+    /** 20鎶ュ伐 */
+    @Excel(name = "20鎶ュ伐")
+    private String report20;
+
+    /** 鍚堢涓婄嚎 */
+    @Excel(name = "鍚堢涓婄嚎")
+    private String combinedBoxLaunch;
+
+    /** 鎬昏涓嬬嚎 */
+    @Excel(name = "鎬昏涓嬬嚎")
+    private String finalAssemblyOffline;
+
+    /** 鎿嶄綔浜� */
+    @Excel(name = "鎿嶄綔浜�")
+    private String operator;
+
+    /** 鎿嶄綔鏃堕棿 */
+    @Excel(name = "鎿嶄綔鏃堕棿")
+    private String operateTime;
+
+    public void setOrderNumber(String orderNumber) 
+    {
+        this.orderNumber = orderNumber;
+    }
+
+    public String getOrderNumber() 
+    {
+        return orderNumber;
+    }
+    public void setEngineNo(String engineNo) 
+    {
+        this.engineNo = engineNo;
+    }
+
+    public String getEngineNo() 
+    {
+        return engineNo;
+    }
+    public void setProductType(String productType) 
+    {
+        this.productType = productType;
+    }
+
+    public String getProductType() 
+    {
+        return productType;
+    }
+    public void setModel(String model) 
+    {
+        this.model = model;
+    }
+
+    public String getModel() 
+    {
+        return model;
+    }
+    public void setProductionStatus(String productionStatus) 
+    {
+        this.productionStatus = productionStatus;
+    }
+
+    public String getProductionStatus() 
+    {
+        return productionStatus;
+    }
+    public void setWorkingHours(String workingHours) 
+    {
+        this.workingHours = workingHours;
+    }
+
+    public String getWorkingHours() 
+    {
+        return workingHours;
+    }
+    public void setCurrentWorkstation(String currentWorkstation) 
+    {
+        this.currentWorkstation = currentWorkstation;
+    }
+
+    public String getCurrentWorkstation() 
+    {
+        return currentWorkstation;
+    }
+    public void setQualityStatus(String qualityStatus) 
+    {
+        this.qualityStatus = qualityStatus;
+    }
+
+    public String getQualityStatus() 
+    {
+        return qualityStatus;
+    }
+    public void setWhetherOrPrint(String whetherOrPrint) 
+    {
+        this.whetherOrPrint = whetherOrPrint;
+    }
+
+    public String getWhetherOrPrint() 
+    {
+        return whetherOrPrint;
+    }
+    public void setReport10(String report10) 
+    {
+        this.report10 = report10;
+    }
+
+    public String getReport10() 
+    {
+        return report10;
+    }
+    public void setReport20(String report20) 
+    {
+        this.report20 = report20;
+    }
+
+    public String getReport20() 
+    {
+        return report20;
+    }
+    public void setCombinedBoxLaunch(String combinedBoxLaunch) 
+    {
+        this.combinedBoxLaunch = combinedBoxLaunch;
+    }
+
+    public String getCombinedBoxLaunch() 
+    {
+        return combinedBoxLaunch;
+    }
+    public void setFinalAssemblyOffline(String finalAssemblyOffline) 
+    {
+        this.finalAssemblyOffline = finalAssemblyOffline;
+    }
+
+    public String getFinalAssemblyOffline() 
+    {
+        return finalAssemblyOffline;
+    }
+    public void setOperator(String operator) 
+    {
+        this.operator = operator;
+    }
+
+    public String getOperator() 
+    {
+        return operator;
+    }
+    public void setOperateTime(String operateTime) 
+    {
+        this.operateTime = operateTime;
+    }
+
+    public String getOperateTime() 
+    {
+        return operateTime;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("orderNumber", getOrderNumber())
+            .append("engineNo", getEngineNo())
+            .append("productType", getProductType())
+            .append("model", getModel())
+            .append("productionStatus", getProductionStatus())
+            .append("workingHours", getWorkingHours())
+            .append("currentWorkstation", getCurrentWorkstation())
+            .append("qualityStatus", getQualityStatus())
+            .append("whetherOrPrint", getWhetherOrPrint())
+            .append("report10", getReport10())
+            .append("report20", getReport20())
+            .append("combinedBoxLaunch", getCombinedBoxLaunch())
+            .append("finalAssemblyOffline", getFinalAssemblyOffline())
+            .append("operator", getOperator())
+            .append("operateTime", getOperateTime())
+            .toString();
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java
new file mode 100644
index 0000000..4456fa7
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.bs.orderScheduling.mapper;
+
+import java.util.List;
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+
+/**
+ * 璁㈠崟鎺掍骇Mapper鎺ュ彛
+ * 
+ * @author jiang
+ * @date 2024-01-09
+ */
+public interface BsOrderSchedulingMapper 
+{
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 璁㈠崟鎺掍骇
+     */
+    public BsOrderScheduling selectBsOrderSchedulingByOrderNumber(String orderNumber);
+
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 璁㈠崟鎺掍骇闆嗗悎
+     */
+    public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 鏂板璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    public int insertBsOrderScheduling(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 淇敼璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    public int updateBsOrderScheduling(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 鍒犻櫎璁㈠崟鎺掍骇
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsOrderSchedulingByOrderNumber(String orderNumber);
+
+    /**
+     * 鎵归噺鍒犻櫎璁㈠崟鎺掍骇
+     * 
+     * @param orderNumbers 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsOrderSchedulingByOrderNumbers(String[] orderNumbers);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/IBsOrderSchedulingService.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/IBsOrderSchedulingService.java
new file mode 100644
index 0000000..ad26b5f
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/IBsOrderSchedulingService.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.bs.orderScheduling.service;
+
+import java.util.List;
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+
+/**
+ * 璁㈠崟鎺掍骇Service鎺ュ彛
+ * 
+ * @author jiang
+ * @date 2024-01-09
+ */
+public interface IBsOrderSchedulingService 
+{
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 璁㈠崟鎺掍骇
+     */
+    public BsOrderScheduling selectBsOrderSchedulingByOrderNumber(String orderNumber);
+
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 璁㈠崟鎺掍骇闆嗗悎
+     */
+    public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 鏂板璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    public int insertBsOrderScheduling(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 淇敼璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    public int updateBsOrderScheduling(BsOrderScheduling bsOrderScheduling);
+
+    /**
+     * 鎵归噺鍒犻櫎璁㈠崟鎺掍骇
+     * 
+     * @param orderNumbers 闇�瑕佸垹闄ょ殑璁㈠崟鎺掍骇涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsOrderSchedulingByOrderNumbers(String[] orderNumbers);
+
+    /**
+     * 鍒犻櫎璁㈠崟鎺掍骇淇℃伅
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsOrderSchedulingByOrderNumber(String orderNumber);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java
new file mode 100644
index 0000000..9b7dd5c
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java
@@ -0,0 +1,93 @@
+package com.jcdm.main.bs.orderScheduling.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper;
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
+
+/**
+ * 璁㈠崟鎺掍骇Service涓氬姟灞傚鐞�
+ * 
+ * @author jiang
+ * @date 2024-01-09
+ */
+@Service
+public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService 
+{
+    @Autowired
+    private BsOrderSchedulingMapper bsOrderSchedulingMapper;
+
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 璁㈠崟鎺掍骇
+     */
+    @Override
+    public BsOrderScheduling selectBsOrderSchedulingByOrderNumber(String orderNumber)
+    {
+        return bsOrderSchedulingMapper.selectBsOrderSchedulingByOrderNumber(orderNumber);
+    }
+
+    /**
+     * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 璁㈠崟鎺掍骇
+     */
+    @Override
+    public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling)
+    {
+        return bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling);
+    }
+
+    /**
+     * 鏂板璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertBsOrderScheduling(BsOrderScheduling bsOrderScheduling)
+    {
+        return bsOrderSchedulingMapper.insertBsOrderScheduling(bsOrderScheduling);
+    }
+
+    /**
+     * 淇敼璁㈠崟鎺掍骇
+     * 
+     * @param bsOrderScheduling 璁㈠崟鎺掍骇
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateBsOrderScheduling(BsOrderScheduling bsOrderScheduling)
+    {
+        return bsOrderSchedulingMapper.updateBsOrderScheduling(bsOrderScheduling);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎璁㈠崟鎺掍骇
+     * 
+     * @param orderNumbers 闇�瑕佸垹闄ょ殑璁㈠崟鎺掍骇涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsOrderSchedulingByOrderNumbers(String[] orderNumbers)
+    {
+        return bsOrderSchedulingMapper.deleteBsOrderSchedulingByOrderNumbers(orderNumbers);
+    }
+
+    /**
+     * 鍒犻櫎璁㈠崟鎺掍骇淇℃伅
+     * 
+     * @param orderNumber 璁㈠崟鎺掍骇涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsOrderSchedulingByOrderNumber(String orderNumber)
+    {
+        return bsOrderSchedulingMapper.deleteBsOrderSchedulingByOrderNumber(orderNumber);
+    }
+}
diff --git a/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml
new file mode 100644
index 0000000..2dd716d
--- /dev/null
+++ b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper">
+    
+    <resultMap type="BsOrderScheduling" id="BsOrderSchedulingResult">
+        <result property="orderNumber"    column="order_number"    />
+        <result property="engineNo"    column="engine_no"    />
+        <result property="productType"    column="product_type"    />
+        <result property="model"    column="model"    />
+        <result property="productionStatus"    column="production_status"    />
+        <result property="workingHours"    column="working_hours"    />
+        <result property="currentWorkstation"    column="current_workstation"    />
+        <result property="qualityStatus"    column="quality_status"    />
+        <result property="whetherOrPrint"    column="whether_or_print"    />
+        <result property="report10"    column="report_10"    />
+        <result property="report20"    column="report_20"    />
+        <result property="combinedBoxLaunch"    column="combined_box_launch"    />
+        <result property="finalAssemblyOffline"    column="final_assembly_offline"    />
+        <result property="operator"    column="operator"    />
+        <result property="operateTime"    column="operate_time"    />
+    </resultMap>
+
+    <sql id="selectBsOrderSchedulingVo">
+        select order_number, engine_no, product_type, model, production_status, working_hours, current_workstation, quality_status, whether_or_print, report_10, report_20, combined_box_launch, final_assembly_offline, operator, operate_time from bs_order_scheduling
+    </sql>
+
+    <select id="selectBsOrderSchedulingList" parameterType="BsOrderScheduling" resultMap="BsOrderSchedulingResult">
+        <include refid="selectBsOrderSchedulingVo"/>
+        <where>  
+            <if test="orderNumber != null  and orderNumber != ''"> and order_number = #{orderNumber}</if>
+            <if test="engineNo != null  and engineNo != ''"> and engine_no = #{engineNo}</if>
+            <if test="productType != null  and productType != ''"> and product_type = #{productType}</if>
+            <if test="model != null  and model != ''"> and model = #{model}</if>
+            <if test="productionStatus != null  and productionStatus != ''"> and production_status = #{productionStatus}</if>
+            <if test="workingHours != null  and workingHours != ''"> and working_hours = #{workingHours}</if>
+            <if test="currentWorkstation != null  and currentWorkstation != ''"> and current_workstation = #{currentWorkstation}</if>
+            <if test="qualityStatus != null  and qualityStatus != ''"> and quality_status = #{qualityStatus}</if>
+            <if test="whetherOrPrint != null  and whetherOrPrint != ''"> and whether_or_print = #{whetherOrPrint}</if>
+            <if test="report10 != null  and report10 != ''"> and report_10 = #{report10}</if>
+            <if test="report20 != null  and report20 != ''"> and report_20 = #{report20}</if>
+            <if test="combinedBoxLaunch != null  and combinedBoxLaunch != ''"> and combined_box_launch = #{combinedBoxLaunch}</if>
+            <if test="finalAssemblyOffline != null  and finalAssemblyOffline != ''"> and final_assembly_offline = #{finalAssemblyOffline}</if>
+            <if test="operator != null  and operator != ''"> and operator = #{operator}</if>
+            <if test="operateTime != null  and operateTime != ''"> and operate_time = #{operateTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectBsOrderSchedulingByOrderNumber" parameterType="String" resultMap="BsOrderSchedulingResult">
+        <include refid="selectBsOrderSchedulingVo"/>
+        where order_number = #{orderNumber}
+    </select>
+        
+    <insert id="insertBsOrderScheduling" parameterType="BsOrderScheduling">
+        insert into bs_order_scheduling
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orderNumber != null">order_number,</if>
+            <if test="engineNo != null">engine_no,</if>
+            <if test="productType != null">product_type,</if>
+            <if test="model != null">model,</if>
+            <if test="productionStatus != null">production_status,</if>
+            <if test="workingHours != null">working_hours,</if>
+            <if test="currentWorkstation != null">current_workstation,</if>
+            <if test="qualityStatus != null">quality_status,</if>
+            <if test="whetherOrPrint != null">whether_or_print,</if>
+            <if test="report10 != null">report_10,</if>
+            <if test="report20 != null">report_20,</if>
+            <if test="combinedBoxLaunch != null">combined_box_launch,</if>
+            <if test="finalAssemblyOffline != null">final_assembly_offline,</if>
+            <if test="operator != null">operator,</if>
+            <if test="operateTime != null">operate_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orderNumber != null">#{orderNumber},</if>
+            <if test="engineNo != null">#{engineNo},</if>
+            <if test="productType != null">#{productType},</if>
+            <if test="model != null">#{model},</if>
+            <if test="productionStatus != null">#{productionStatus},</if>
+            <if test="workingHours != null">#{workingHours},</if>
+            <if test="currentWorkstation != null">#{currentWorkstation},</if>
+            <if test="qualityStatus != null">#{qualityStatus},</if>
+            <if test="whetherOrPrint != null">#{whetherOrPrint},</if>
+            <if test="report10 != null">#{report10},</if>
+            <if test="report20 != null">#{report20},</if>
+            <if test="combinedBoxLaunch != null">#{combinedBoxLaunch},</if>
+            <if test="finalAssemblyOffline != null">#{finalAssemblyOffline},</if>
+            <if test="operator != null">#{operator},</if>
+            <if test="operateTime != null">#{operateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBsOrderScheduling" parameterType="BsOrderScheduling">
+        update bs_order_scheduling
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="engineNo != null">engine_no = #{engineNo},</if>
+            <if test="productType != null">product_type = #{productType},</if>
+            <if test="model != null">model = #{model},</if>
+            <if test="productionStatus != null">production_status = #{productionStatus},</if>
+            <if test="workingHours != null">working_hours = #{workingHours},</if>
+            <if test="currentWorkstation != null">current_workstation = #{currentWorkstation},</if>
+            <if test="qualityStatus != null">quality_status = #{qualityStatus},</if>
+            <if test="whetherOrPrint != null">whether_or_print = #{whetherOrPrint},</if>
+            <if test="report10 != null">report_10 = #{report10},</if>
+            <if test="report20 != null">report_20 = #{report20},</if>
+            <if test="combinedBoxLaunch != null">combined_box_launch = #{combinedBoxLaunch},</if>
+            <if test="finalAssemblyOffline != null">final_assembly_offline = #{finalAssemblyOffline},</if>
+            <if test="operator != null">operator = #{operator},</if>
+            <if test="operateTime != null">operate_time = #{operateTime},</if>
+        </trim>
+        where order_number = #{orderNumber}
+    </update>
+
+    <delete id="deleteBsOrderSchedulingByOrderNumber" parameterType="String">
+        delete from bs_order_scheduling where order_number = #{orderNumber}
+    </delete>
+
+    <delete id="deleteBsOrderSchedulingByOrderNumbers" parameterType="String">
+        delete from bs_order_scheduling where order_number in 
+        <foreach item="orderNumber" collection="array" open="(" separator="," close=")">
+            #{orderNumber}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js b/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
new file mode 100644
index 0000000..b2fbe62
--- /dev/null
+++ b/jcdm-ui/src/api/main/bs/orderScheduling/orderScheduling.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ璁㈠崟鎺掍骇鍒楄〃
+export function listOrderScheduling(query) {
+  return request({
+    url: '/bs/orderScheduling/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ璁㈠崟鎺掍骇璇︾粏
+export function getOrderScheduling(orderNumber) {
+  return request({
+    url: '/bs/orderScheduling/' + orderNumber,
+    method: 'get'
+  })
+}
+
+// 鏂板璁㈠崟鎺掍骇
+export function addOrderScheduling(data) {
+  return request({
+    url: '/bs/orderScheduling',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼璁㈠崟鎺掍骇
+export function updateOrderScheduling(data) {
+  return request({
+    url: '/bs/orderScheduling',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎璁㈠崟鎺掍骇
+export function delOrderScheduling(orderNumber) {
+  return request({
+    url: '/bs/orderScheduling/' + orderNumber,
+    method: 'delete'
+  })
+}
diff --git a/jcdm-ui/src/views/main/bs/orderScheduling/index.vue b/jcdm-ui/src/views/main/bs/orderScheduling/index.vue
new file mode 100644
index 0000000..f2bb687
--- /dev/null
+++ b/jcdm-ui/src/views/main/bs/orderScheduling/index.vue
@@ -0,0 +1,409 @@
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+          <el-form-item label="璁㈠崟缂栧彿" prop="orderNumber">
+            <el-input
+              v-model="queryParams.orderNumber"
+              placeholder="璇疯緭鍏ヨ鍗曠紪鍙�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鍙戝姩鏈哄彿" prop="engineNo">
+            <el-input
+              v-model="queryParams.engineNo"
+              placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鏈哄瀷" prop="model">
+            <el-input
+              v-model="queryParams.model"
+              placeholder="璇疯緭鍏ユ満鍨�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="宸ユ椂" prop="workingHours">
+            <el-input
+              v-model="queryParams.workingHours"
+              placeholder="璇疯緭鍏ュ伐鏃�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="褰撳墠宸ヤ綅" prop="currentWorkstation">
+            <el-input
+              v-model="queryParams.currentWorkstation"
+              placeholder="璇疯緭鍏ュ綋鍓嶅伐浣�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鏄惁鎵撳嵃" prop="whetherOrPrint">
+            <el-input
+              v-model="queryParams.whetherOrPrint"
+              placeholder="璇疯緭鍏ユ槸鍚︽墦鍗�"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="10鎶ュ伐" prop="report10">
+            <el-input
+              v-model="queryParams.report10"
+              placeholder="璇疯緭鍏�10鎶ュ伐"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="20鎶ュ伐" prop="report20">
+            <el-input
+              v-model="queryParams.report20"
+              placeholder="璇疯緭鍏�20鎶ュ伐"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鎿嶄綔浜�" prop="operator">
+            <el-input
+              v-model="queryParams.operator"
+              placeholder="璇疯緭鍏ユ搷浣滀汉"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item style="float: right">
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+    </el-card>
+
+    <el-card style="margin-top: 10px" class="box-card">
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['bs:orderScheduling:add']"
+            >鏂板</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['bs:orderScheduling:edit']"
+            >淇敼</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['bs:orderScheduling:remove']"
+            >鍒犻櫎</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="warning"
+              plain
+              icon="el-icon-download"
+              size="mini"
+              @click="handleExport"
+              v-hasPermi="['bs:orderScheduling:export']"
+            >瀵煎嚭</el-button>
+          </el-col>
+          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+        </el-row>
+
+        <el-table border v-loading="loading" :data="orderSchedulingList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="璁㈠崟缂栧彿" align="center" prop="orderNumber">
+          </el-table-column>
+          <el-table-column label="鍙戝姩鏈哄彿" align="center" prop="engineNo">
+          </el-table-column>
+          <el-table-column label="浜у搧绫诲瀷" align="center" prop="productType">
+<!--            <template slot-scope="scope">-->
+<!--              <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.productType"/>-->
+<!--            </template>-->
+          </el-table-column>
+          <el-table-column label="鏈哄瀷" align="center" prop="model">
+          </el-table-column>
+          <el-table-column label="鐢熶骇鐘舵��" align="center" prop="productionStatus">
+          </el-table-column>
+          <el-table-column label="宸ユ椂" align="center" prop="workingHours">
+          </el-table-column>
+          <el-table-column label="褰撳墠宸ヤ綅" align="center" prop="currentWorkstation">
+          </el-table-column>
+          <el-table-column label="璐ㄩ噺鐘舵��" align="center" prop="qualityStatus">
+          </el-table-column>
+          <el-table-column label="鏄惁鎵撳嵃" align="center" prop="whetherOrPrint">
+          </el-table-column>
+          <el-table-column label="10鎶ュ伐" align="center" prop="report10">
+          </el-table-column>
+          <el-table-column label="20鎶ュ伐" align="center" prop="report20">
+
+          </el-table-column>
+          <el-table-column label="鍚堢涓婄嚎" align="center" prop="combinedBoxLaunch">
+
+          </el-table-column>
+          <el-table-column label="鎬昏涓嬬嚎" align="center" prop="finalAssemblyOffline">
+
+          </el-table-column>
+          <el-table-column label="鎿嶄綔浜�" align="center" prop="operator">
+
+          </el-table-column>
+          <el-table-column label="鎿嶄綔鏃堕棿" align="center" prop="operateTime">
+
+          </el-table-column>
+          <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="success"
+                plain
+                style="width: 72px"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['bs:orderScheduling:edit']"
+              >淇敼</el-button>
+              <el-button
+                size="mini"
+                type="danger"
+                plain
+                style="width: 72px"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['bs:orderScheduling:remove']"
+              >鍒犻櫎</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+    </el-card>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀硅鍗曟帓浜у璇濇 -->
+    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body>
+      <span slot="title">
+        <i class="el-icon-s-order"></i>
+        {{titleName}}
+      </span>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="璁㈠崟缂栧彿" prop="orderNumber">
+          <el-input v-model="form.orderNumber" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" />
+        </el-form-item>
+        <el-form-item label="鍙戝姩鏈哄彿" prop="engineNo">
+          <el-input v-model="form.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�" />
+        </el-form-item>
+        <el-form-item label="鏈哄瀷" prop="model">
+          <el-input v-model="form.model" placeholder="璇疯緭鍏ユ満鍨�" />
+        </el-form-item>
+        <el-form-item label="宸ユ椂" prop="workingHours">
+          <el-input v-model="form.workingHours" placeholder="璇疯緭鍏ュ伐鏃�" />
+        </el-form-item>
+        <el-form-item label="褰撳墠宸ヤ綅" prop="currentWorkstation">
+          <el-input v-model="form.currentWorkstation" placeholder="璇疯緭鍏ュ綋鍓嶅伐浣�" />
+        </el-form-item>
+        <el-form-item label="鏄惁鎵撳嵃" prop="whetherOrPrint">
+          <el-input v-model="form.whetherOrPrint" placeholder="璇疯緭鍏ユ槸鍚︽墦鍗�" />
+        </el-form-item>
+        <el-form-item label="10鎶ュ伐" prop="report10">
+          <el-input v-model="form.report10" placeholder="璇疯緭鍏�10鎶ュ伐" />
+        </el-form-item>
+        <el-form-item label="20鎶ュ伐" prop="report20">
+          <el-input v-model="form.report20" placeholder="璇疯緭鍏�20鎶ュ伐" />
+        </el-form-item>
+        <el-form-item label="鎿嶄綔浜�" prop="operator">
+          <el-input v-model="form.operator" placeholder="璇疯緭鍏ユ搷浣滀汉" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling } from "@/api/main/bs/orderScheduling/orderScheduling";
+
+export default {
+  name: "OrderScheduling",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      titleName: "",
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 璁㈠崟鎺掍骇琛ㄦ牸鏁版嵁
+      orderSchedulingList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderNumber: null,
+        engineNo: null,
+        productType: null,
+        model: null,
+        productionStatus: null,
+        workingHours: null,
+        currentWorkstation: null,
+        qualityStatus: null,
+        whetherOrPrint: null,
+        report10: null,
+        report20: null,
+        combinedBoxLaunch: null,
+        finalAssemblyOffline: null,
+        operator: null,
+        operateTime: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ璁㈠崟鎺掍骇鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listOrderScheduling(this.queryParams).then(response => {
+        this.orderSchedulingList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        orderNumber: null,
+        engineNo: null,
+        productType: null,
+        model: null,
+        productionStatus: null,
+        workingHours: null,
+        currentWorkstation: null,
+        qualityStatus: null,
+        whetherOrPrint: null,
+        report10: null,
+        report20: null,
+        combinedBoxLaunch: null,
+        finalAssemblyOffline: null,
+        operator: null,
+        operateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.orderNumber)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.titleName = "娣诲姞璁㈠崟鎺掍骇";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const orderNumber = row.orderNumber || this.ids
+      getOrderScheduling(orderNumber).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.titleName = "淇敼璁㈠崟鎺掍骇";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.orderNumber != null) {
+            updateOrderScheduling(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addOrderScheduling(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const orderNumbers = row.orderNumber || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎璁㈠崟鎺掍骇缂栧彿涓�"' + orderNumbers + '"鐨勬暟鎹」锛�').then(function() {
+        return delOrderScheduling(orderNumbers);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('bs/orderScheduling/export', {
+        ...this.queryParams
+      }, `orderScheduling_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

--
Gitblit v1.9.3