From 5c23e5e00a823fc50564ff31f97babad69246271 Mon Sep 17 00:00:00 2001
From: hdy <1105738590@qq.com>
Date: 星期二, 12 十二月 2023 16:18:39 +0800
Subject: [PATCH] 生产工单优化

---
 jcdm-main/src/main/java/com/jcdm/main/om/workReport/domain/OmWorkReport.java                           |  223 ++++++
 jcdm-ui/src/views/main/bs/lineInfo/index.vue                                                           |  374 ++++++++++
 jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/mapper/BsLineInfoMapper.java                         |   61 +
 jcdm-main/src/main/java/com/jcdm/main/om/workReport/controller/OmWorkReportController.java             |  104 ++
 jcdm-main/src/main/resources/mapper/om/workReport/OmWorkReportMapper.xml                               |  128 +++
 jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/impl/BsLineInfoServiceImpl.java              |   96 ++
 jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/controller/BsLineInfoController.java                 |  104 ++
 jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/IBsLineInfoService.java                      |   61 +
 jcdm-main/src/main/java/com/jcdm/main/om/workReport/mapper/OmWorkReportMapper.java                     |   61 +
 jcdm-ui/src/api/main/om/workReport/workReport.js                                                       |   44 +
 jcdm-ui/src/api/main/bs/lineInfo/lineInfo.js                                                           |   44 +
 jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/impl/OmWorkReportServiceImpl.java          |   96 ++
 jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/domain/BsLineInfo.java                               |  165 ++++
 jcdm-main/src/main/resources/mapper/bs/lineInfo/BsLineInfoMapper.xml                                   |   99 ++
 jcdm-ui/src/views/main/om/workReport/index.vue                                                         |  373 ++++++++++
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java |    1 
 jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/IOmWorkReportService.java                  |   61 +
 17 files changed, 2,094 insertions(+), 1 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/controller/BsLineInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/controller/BsLineInfoController.java
new file mode 100644
index 0000000..70d8edb
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/controller/BsLineInfoController.java
@@ -0,0 +1,104 @@
+package com.jcdm.main.bs.lineInfo.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.lineInfo.domain.BsLineInfo;
+import com.jcdm.main.bs.lineInfo.service.IBsLineInfoService;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.common.core.page.TableDataInfo;
+
+/**
+ * 浜х嚎淇℃伅Controller
+ *
+ * @author Yi
+ * @date 2023-12-09
+ */
+@RestController
+@RequestMapping("/main/lineInfo")
+public class BsLineInfoController extends BaseController
+{
+    @Autowired
+    private IBsLineInfoService bsLineInfoService;
+
+    /**
+     * 鏌ヨ浜х嚎淇℃伅鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsLineInfo bsLineInfo)
+    {
+        startPage();
+        List<BsLineInfo> list = bsLineInfoService.selectBsLineInfoList(bsLineInfo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭浜х嚎淇℃伅鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:export')")
+    @Log(title = "浜х嚎淇℃伅", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, BsLineInfo bsLineInfo)
+    {
+        List<BsLineInfo> list = bsLineInfoService.selectBsLineInfoList(bsLineInfo);
+        ExcelUtil<BsLineInfo> util = new ExcelUtil<BsLineInfo>(BsLineInfo.class);
+        util.exportExcel(response, list, "浜х嚎淇℃伅鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇浜х嚎淇℃伅璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(bsLineInfoService.selectBsLineInfoById(id));
+    }
+
+    /**
+     * 鏂板浜х嚎淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:add')")
+    @Log(title = "浜х嚎淇℃伅", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BsLineInfo bsLineInfo)
+    {
+        return toAjax(bsLineInfoService.insertBsLineInfo(bsLineInfo));
+    }
+
+    /**
+     * 淇敼浜х嚎淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:edit')")
+    @Log(title = "浜х嚎淇℃伅", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BsLineInfo bsLineInfo)
+    {
+        return toAjax(bsLineInfoService.updateBsLineInfo(bsLineInfo));
+    }
+
+    /**
+     * 鍒犻櫎浜х嚎淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('main:lineInfo:remove')")
+    @Log(title = "浜х嚎淇℃伅", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(bsLineInfoService.deleteBsLineInfoByIds(ids));
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/domain/BsLineInfo.java b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/domain/BsLineInfo.java
new file mode 100644
index 0000000..1cfbdb3
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/domain/BsLineInfo.java
@@ -0,0 +1,165 @@
+package com.jcdm.main.bs.lineInfo.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_line_info
+ *
+ * @author Yi
+ * @date 2023-12-09
+ */
+public class BsLineInfo extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭id */
+    private Long id;
+
+    /** 浜х嚎缂栧彿 */
+    @Excel(name = "浜х嚎缂栧彿")
+    private String lineCode;
+
+    /** 浜х嚎鍚嶇О */
+    @Excel(name = "浜х嚎鍚嶇О")
+    private String lineName;
+
+    /** 杞﹂棿缂栧彿 */
+    @Excel(name = "杞﹂棿缂栧彿")
+    private String workshopCode;
+
+    /** 宸ヤ綔鏃ュ巻 */
+    @Excel(name = "宸ヤ綔鏃ュ巻")
+    private String workCalendar;
+
+    /** 棰勭暀瀛楁1 */
+    @Excel(name = "棰勭暀瀛楁1")
+    private String spareField1;
+
+    /** 棰勭暀瀛楁2 */
+    @Excel(name = "棰勭暀瀛楁2")
+    private String spareField2;
+
+    /** 澶囨敞 */
+    @Excel(name = "澶囨敞")
+    private String remarks;
+
+    /** 鍒涘缓鐢ㄦ埛 */
+    @Excel(name = "鍒涘缓鐢ㄦ埛")
+    private String createUser;
+
+    /** 鏇存敼鐢ㄦ埛 */
+    @Excel(name = "鏇存敼鐢ㄦ埛")
+    private String updateUser;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setLineCode(String lineCode)
+    {
+        this.lineCode = lineCode;
+    }
+
+    public String getLineCode()
+    {
+        return lineCode;
+    }
+    public void setLineName(String lineName)
+    {
+        this.lineName = lineName;
+    }
+
+    public String getLineName()
+    {
+        return lineName;
+    }
+    public void setWorkshopCode(String workshopCode)
+    {
+        this.workshopCode = workshopCode;
+    }
+
+    public String getWorkshopCode()
+    {
+        return workshopCode;
+    }
+    public void setWorkCalendar(String workCalendar)
+    {
+        this.workCalendar = workCalendar;
+    }
+
+    public String getWorkCalendar()
+    {
+        return workCalendar;
+    }
+    public void setSpareField1(String spareField1)
+    {
+        this.spareField1 = spareField1;
+    }
+
+    public String getSpareField1()
+    {
+        return spareField1;
+    }
+    public void setSpareField2(String spareField2)
+    {
+        this.spareField2 = spareField2;
+    }
+
+    public String getSpareField2()
+    {
+        return spareField2;
+    }
+    public void setRemarks(String remarks)
+    {
+        this.remarks = remarks;
+    }
+
+    public String getRemarks()
+    {
+        return remarks;
+    }
+    public void setCreateUser(String createUser)
+    {
+        this.createUser = createUser;
+    }
+
+    public String getCreateUser()
+    {
+        return createUser;
+    }
+    public void setUpdateUser(String updateUser)
+    {
+        this.updateUser = updateUser;
+    }
+
+    public String getUpdateUser()
+    {
+        return updateUser;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("lineCode", getLineCode())
+            .append("lineName", getLineName())
+            .append("workshopCode", getWorkshopCode())
+            .append("workCalendar", getWorkCalendar())
+            .append("spareField1", getSpareField1())
+            .append("spareField2", getSpareField2())
+            .append("remarks", getRemarks())
+            .append("createUser", getCreateUser())
+            .append("createTime", getCreateTime())
+            .append("updateUser", getUpdateUser())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/mapper/BsLineInfoMapper.java b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/mapper/BsLineInfoMapper.java
new file mode 100644
index 0000000..40c3c7d
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/mapper/BsLineInfoMapper.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.bs.lineInfo.mapper;
+
+import java.util.List;
+import com.jcdm.main.bs.lineInfo.domain.BsLineInfo;
+
+/**
+ * 浜х嚎淇℃伅Mapper鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2023-12-09
+ */
+public interface BsLineInfoMapper 
+{
+    /**
+     * 鏌ヨ浜х嚎淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 浜х嚎淇℃伅
+     */
+    public BsLineInfo selectBsLineInfoById(Long id);
+
+    /**
+     * 鏌ヨ浜х嚎淇℃伅鍒楄〃
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 浜х嚎淇℃伅闆嗗悎
+     */
+    public List<BsLineInfo> selectBsLineInfoList(BsLineInfo bsLineInfo);
+
+    /**
+     * 鏂板浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    public int insertBsLineInfo(BsLineInfo bsLineInfo);
+
+    /**
+     * 淇敼浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    public int updateBsLineInfo(BsLineInfo bsLineInfo);
+
+    /**
+     * 鍒犻櫎浜х嚎淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsLineInfoById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎浜х嚎淇℃伅
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsLineInfoByIds(Long[] ids);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/IBsLineInfoService.java b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/IBsLineInfoService.java
new file mode 100644
index 0000000..d96dc2d
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/IBsLineInfoService.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.bs.lineInfo.service;
+
+import java.util.List;
+import com.jcdm.main.bs.lineInfo.domain.BsLineInfo;
+
+/**
+ * 浜х嚎淇℃伅Service鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2023-12-09
+ */
+public interface IBsLineInfoService 
+{
+    /**
+     * 鏌ヨ浜х嚎淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 浜х嚎淇℃伅
+     */
+    public BsLineInfo selectBsLineInfoById(Long id);
+
+    /**
+     * 鏌ヨ浜х嚎淇℃伅鍒楄〃
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 浜х嚎淇℃伅闆嗗悎
+     */
+    public List<BsLineInfo> selectBsLineInfoList(BsLineInfo bsLineInfo);
+
+    /**
+     * 鏂板浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    public int insertBsLineInfo(BsLineInfo bsLineInfo);
+
+    /**
+     * 淇敼浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    public int updateBsLineInfo(BsLineInfo bsLineInfo);
+
+    /**
+     * 鎵归噺鍒犻櫎浜х嚎淇℃伅
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑浜х嚎淇℃伅涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteBsLineInfoByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎浜х嚎淇℃伅淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteBsLineInfoById(Long id);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/impl/BsLineInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/impl/BsLineInfoServiceImpl.java
new file mode 100644
index 0000000..8641fca
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/lineInfo/service/impl/BsLineInfoServiceImpl.java
@@ -0,0 +1,96 @@
+package com.jcdm.main.bs.lineInfo.service.impl;
+
+import java.util.List;
+import com.jcdm.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.jcdm.main.bs.lineInfo.mapper.BsLineInfoMapper;
+import com.jcdm.main.bs.lineInfo.domain.BsLineInfo;
+import com.jcdm.main.bs.lineInfo.service.IBsLineInfoService;
+
+/**
+ * 浜х嚎淇℃伅Service涓氬姟灞傚鐞�
+ * 
+ * @author Yi
+ * @date 2023-12-09
+ */
+@Service
+public class BsLineInfoServiceImpl implements IBsLineInfoService 
+{
+    @Autowired
+    private BsLineInfoMapper bsLineInfoMapper;
+
+    /**
+     * 鏌ヨ浜х嚎淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 浜х嚎淇℃伅
+     */
+    @Override
+    public BsLineInfo selectBsLineInfoById(Long id)
+    {
+        return bsLineInfoMapper.selectBsLineInfoById(id);
+    }
+
+    /**
+     * 鏌ヨ浜х嚎淇℃伅鍒楄〃
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 浜х嚎淇℃伅
+     */
+    @Override
+    public List<BsLineInfo> selectBsLineInfoList(BsLineInfo bsLineInfo)
+    {
+        return bsLineInfoMapper.selectBsLineInfoList(bsLineInfo);
+    }
+
+    /**
+     * 鏂板浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertBsLineInfo(BsLineInfo bsLineInfo)
+    {
+        bsLineInfo.setCreateTime(DateUtils.getNowDate());
+        return bsLineInfoMapper.insertBsLineInfo(bsLineInfo);
+    }
+
+    /**
+     * 淇敼浜х嚎淇℃伅
+     * 
+     * @param bsLineInfo 浜х嚎淇℃伅
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateBsLineInfo(BsLineInfo bsLineInfo)
+    {
+        bsLineInfo.setUpdateTime(DateUtils.getNowDate());
+        return bsLineInfoMapper.updateBsLineInfo(bsLineInfo);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎浜х嚎淇℃伅
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑浜х嚎淇℃伅涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsLineInfoByIds(Long[] ids)
+    {
+        return bsLineInfoMapper.deleteBsLineInfoByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎浜х嚎淇℃伅淇℃伅
+     * 
+     * @param id 浜х嚎淇℃伅涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteBsLineInfoById(Long id)
+    {
+        return bsLineInfoMapper.deleteBsLineInfoById(id);
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
index d471d88..9e23738 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -2,7 +2,6 @@
 
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
-
 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
 import org.springframework.security.access.prepost.PreAuthorize;
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/workReport/controller/OmWorkReportController.java b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/controller/OmWorkReportController.java
new file mode 100644
index 0000000..11f853b
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/controller/OmWorkReportController.java
@@ -0,0 +1,104 @@
+package com.jcdm.main.om.workReport.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.om.workReport.domain.OmWorkReport;
+import com.jcdm.main.om.workReport.service.IOmWorkReportService;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.common.core.page.TableDataInfo;
+
+/**
+ * 鎶ュ伐璁板綍 琛–ontroller
+ * 
+ * @author Yi
+ * @date 2023-12-12
+ */
+@RestController
+@RequestMapping("/om/workReport")
+public class OmWorkReportController extends BaseController
+{
+    @Autowired
+    private IOmWorkReportService omWorkReportService;
+
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(OmWorkReport omWorkReport)
+    {
+        startPage();
+        List<OmWorkReport> list = omWorkReportService.selectOmWorkReportList(omWorkReport);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎶ュ伐璁板綍 琛ㄥ垪琛�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:export')")
+    @Log(title = "鎶ュ伐璁板綍 琛�", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, OmWorkReport omWorkReport)
+    {
+        List<OmWorkReport> list = omWorkReportService.selectOmWorkReportList(omWorkReport);
+        ExcelUtil<OmWorkReport> util = new ExcelUtil<OmWorkReport>(OmWorkReport.class);
+        util.exportExcel(response, list, "鎶ュ伐璁板綍 琛ㄦ暟鎹�");
+    }
+
+    /**
+     * 鑾峰彇鎶ュ伐璁板綍 琛ㄨ缁嗕俊鎭�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(omWorkReportService.selectOmWorkReportById(id));
+    }
+
+    /**
+     * 鏂板鎶ュ伐璁板綍 琛�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:add')")
+    @Log(title = "鎶ュ伐璁板綍 琛�", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody OmWorkReport omWorkReport)
+    {
+        return toAjax(omWorkReportService.insertOmWorkReport(omWorkReport));
+    }
+
+    /**
+     * 淇敼鎶ュ伐璁板綍 琛�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:edit')")
+    @Log(title = "鎶ュ伐璁板綍 琛�", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody OmWorkReport omWorkReport)
+    {
+        return toAjax(omWorkReportService.updateOmWorkReport(omWorkReport));
+    }
+
+    /**
+     * 鍒犻櫎鎶ュ伐璁板綍 琛�
+     */
+    @PreAuthorize("@ss.hasPermi('om:workReport:remove')")
+    @Log(title = "鎶ュ伐璁板綍 琛�", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(omWorkReportService.deleteOmWorkReportByIds(ids));
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/workReport/domain/OmWorkReport.java b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/domain/OmWorkReport.java
new file mode 100644
index 0000000..35d9223
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/domain/OmWorkReport.java
@@ -0,0 +1,223 @@
+package com.jcdm.main.om.workReport.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;
+
+/**
+ * 鎶ュ伐璁板綍 琛ㄥ璞� om_work_report
+ * 
+ * @author Yi
+ * @date 2023-12-12
+ */
+public class OmWorkReport extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 涓婚敭id */
+    private Long id;
+
+    /** 宸ュ崟缂栧彿 */
+    @Excel(name = "宸ュ崟缂栧彿")
+    private String workOrderCode;
+
+    /** SFC鎬绘垚搴忓垪鍙� */
+    @Excel(name = "SFC鎬绘垚搴忓垪鍙�")
+    private String sfcCode;
+
+    /** 浜у搧缂栧彿 */
+    @Excel(name = "浜у搧缂栧彿")
+    private String productCode;
+
+    /** 浜у搧鍚嶇О */
+    @Excel(name = "浜у搧鍚嶇О")
+    private String productName;
+
+    /** 涓婄嚎鏃堕棿 */
+    @Excel(name = "涓婄嚎鏃堕棿")
+    private String upTime;
+
+    /** 涓嬬嚎鏃堕棿 */
+    @Excel(name = "涓嬬嚎鏃堕棿")
+    private String offlineTime;
+
+    /** 鏄惁鍚堟牸 */
+    @Excel(name = "鏄惁鍚堟牸")
+    private String status;
+
+    /** 鍒涘缓鐢ㄦ埛 */
+    @Excel(name = "鍒涘缓鐢ㄦ埛")
+    private String createUser;
+
+    /** 鏇存敼鐢ㄦ埛 */
+    @Excel(name = "鏇存敼鐢ㄦ埛")
+    private String updateUser;
+
+    /** 棰勭暀瀛楁1 */
+    @Excel(name = "棰勭暀瀛楁1")
+    private String spareField1;
+
+    /** 棰勭暀瀛楁2 */
+    @Excel(name = "棰勭暀瀛楁2")
+    private String spareField2;
+
+    /** 棰勭暀瀛楁3 */
+    @Excel(name = "棰勭暀瀛楁3")
+    private String spareField3;
+
+    /** 棰勭暀瀛楁4 */
+    @Excel(name = "棰勭暀瀛楁4")
+    private String spareField4;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setWorkOrderCode(String workOrderCode) 
+    {
+        this.workOrderCode = workOrderCode;
+    }
+
+    public String getWorkOrderCode() 
+    {
+        return workOrderCode;
+    }
+    public void setSfcCode(String sfcCode) 
+    {
+        this.sfcCode = sfcCode;
+    }
+
+    public String getSfcCode() 
+    {
+        return sfcCode;
+    }
+    public void setProductCode(String productCode) 
+    {
+        this.productCode = productCode;
+    }
+
+    public String getProductCode() 
+    {
+        return productCode;
+    }
+    public void setProductName(String productName) 
+    {
+        this.productName = productName;
+    }
+
+    public String getProductName() 
+    {
+        return productName;
+    }
+    public void setUpTime(String upTime) 
+    {
+        this.upTime = upTime;
+    }
+
+    public String getUpTime() 
+    {
+        return upTime;
+    }
+    public void setOfflineTime(String offlineTime) 
+    {
+        this.offlineTime = offlineTime;
+    }
+
+    public String getOfflineTime() 
+    {
+        return offlineTime;
+    }
+    public void setStatus(String status) 
+    {
+        this.status = status;
+    }
+
+    public String getStatus() 
+    {
+        return status;
+    }
+    public void setCreateUser(String createUser) 
+    {
+        this.createUser = createUser;
+    }
+
+    public String getCreateUser() 
+    {
+        return createUser;
+    }
+    public void setUpdateUser(String updateUser) 
+    {
+        this.updateUser = updateUser;
+    }
+
+    public String getUpdateUser() 
+    {
+        return updateUser;
+    }
+    public void setSpareField1(String spareField1) 
+    {
+        this.spareField1 = spareField1;
+    }
+
+    public String getSpareField1() 
+    {
+        return spareField1;
+    }
+    public void setSpareField2(String spareField2) 
+    {
+        this.spareField2 = spareField2;
+    }
+
+    public String getSpareField2() 
+    {
+        return spareField2;
+    }
+    public void setSpareField3(String spareField3) 
+    {
+        this.spareField3 = spareField3;
+    }
+
+    public String getSpareField3() 
+    {
+        return spareField3;
+    }
+    public void setSpareField4(String spareField4) 
+    {
+        this.spareField4 = spareField4;
+    }
+
+    public String getSpareField4() 
+    {
+        return spareField4;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("workOrderCode", getWorkOrderCode())
+            .append("sfcCode", getSfcCode())
+            .append("productCode", getProductCode())
+            .append("productName", getProductName())
+            .append("upTime", getUpTime())
+            .append("offlineTime", getOfflineTime())
+            .append("status", getStatus())
+            .append("createUser", getCreateUser())
+            .append("createTime", getCreateTime())
+            .append("updateUser", getUpdateUser())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .append("spareField1", getSpareField1())
+            .append("spareField2", getSpareField2())
+            .append("spareField3", getSpareField3())
+            .append("spareField4", getSpareField4())
+            .toString();
+    }
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/workReport/mapper/OmWorkReportMapper.java b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/mapper/OmWorkReportMapper.java
new file mode 100644
index 0000000..210b189
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/mapper/OmWorkReportMapper.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.om.workReport.mapper;
+
+import java.util.List;
+import com.jcdm.main.om.workReport.domain.OmWorkReport;
+
+/**
+ * 鎶ュ伐璁板綍 琛∕apper鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2023-12-12
+ */
+public interface OmWorkReportMapper 
+{
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 鎶ュ伐璁板綍 琛�
+     */
+    public OmWorkReport selectOmWorkReportById(Long id);
+
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 鎶ュ伐璁板綍 琛ㄩ泦鍚�
+     */
+    public List<OmWorkReport> selectOmWorkReportList(OmWorkReport omWorkReport);
+
+    /**
+     * 鏂板鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    public int insertOmWorkReport(OmWorkReport omWorkReport);
+
+    /**
+     * 淇敼鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    public int updateOmWorkReport(OmWorkReport omWorkReport);
+
+    /**
+     * 鍒犻櫎鎶ュ伐璁板綍 琛�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 缁撴灉
+     */
+    public int deleteOmWorkReportById(Long id);
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ュ伐璁板綍 琛�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteOmWorkReportByIds(Long[] ids);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/IOmWorkReportService.java b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/IOmWorkReportService.java
new file mode 100644
index 0000000..3b0e18a
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/IOmWorkReportService.java
@@ -0,0 +1,61 @@
+package com.jcdm.main.om.workReport.service;
+
+import java.util.List;
+import com.jcdm.main.om.workReport.domain.OmWorkReport;
+
+/**
+ * 鎶ュ伐璁板綍 琛⊿ervice鎺ュ彛
+ * 
+ * @author Yi
+ * @date 2023-12-12
+ */
+public interface IOmWorkReportService 
+{
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 鎶ュ伐璁板綍 琛�
+     */
+    public OmWorkReport selectOmWorkReportById(Long id);
+
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 鎶ュ伐璁板綍 琛ㄩ泦鍚�
+     */
+    public List<OmWorkReport> selectOmWorkReportList(OmWorkReport omWorkReport);
+
+    /**
+     * 鏂板鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    public int insertOmWorkReport(OmWorkReport omWorkReport);
+
+    /**
+     * 淇敼鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    public int updateOmWorkReport(OmWorkReport omWorkReport);
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ュ伐璁板綍 琛�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鎶ュ伐璁板綍 琛ㄤ富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteOmWorkReportByIds(Long[] ids);
+
+    /**
+     * 鍒犻櫎鎶ュ伐璁板綍 琛ㄤ俊鎭�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 缁撴灉
+     */
+    public int deleteOmWorkReportById(Long id);
+}
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/impl/OmWorkReportServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/impl/OmWorkReportServiceImpl.java
new file mode 100644
index 0000000..8155095
--- /dev/null
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/workReport/service/impl/OmWorkReportServiceImpl.java
@@ -0,0 +1,96 @@
+package com.jcdm.main.om.workReport.service.impl;
+
+import java.util.List;
+import com.jcdm.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.jcdm.main.om.workReport.mapper.OmWorkReportMapper;
+import com.jcdm.main.om.workReport.domain.OmWorkReport;
+import com.jcdm.main.om.workReport.service.IOmWorkReportService;
+
+/**
+ * 鎶ュ伐璁板綍 琛⊿ervice涓氬姟灞傚鐞�
+ * 
+ * @author Yi
+ * @date 2023-12-12
+ */
+@Service
+public class OmWorkReportServiceImpl implements IOmWorkReportService 
+{
+    @Autowired
+    private OmWorkReportMapper omWorkReportMapper;
+
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 鎶ュ伐璁板綍 琛�
+     */
+    @Override
+    public OmWorkReport selectOmWorkReportById(Long id)
+    {
+        return omWorkReportMapper.selectOmWorkReportById(id);
+    }
+
+    /**
+     * 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 鎶ュ伐璁板綍 琛�
+     */
+    @Override
+    public List<OmWorkReport> selectOmWorkReportList(OmWorkReport omWorkReport)
+    {
+        return omWorkReportMapper.selectOmWorkReportList(omWorkReport);
+    }
+
+    /**
+     * 鏂板鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertOmWorkReport(OmWorkReport omWorkReport)
+    {
+        omWorkReport.setCreateTime(DateUtils.getNowDate());
+        return omWorkReportMapper.insertOmWorkReport(omWorkReport);
+    }
+
+    /**
+     * 淇敼鎶ュ伐璁板綍 琛�
+     * 
+     * @param omWorkReport 鎶ュ伐璁板綍 琛�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateOmWorkReport(OmWorkReport omWorkReport)
+    {
+        omWorkReport.setUpdateTime(DateUtils.getNowDate());
+        return omWorkReportMapper.updateOmWorkReport(omWorkReport);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ュ伐璁板綍 琛�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteOmWorkReportByIds(Long[] ids)
+    {
+        return omWorkReportMapper.deleteOmWorkReportByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鎶ュ伐璁板綍 琛ㄤ俊鎭�
+     * 
+     * @param id 鎶ュ伐璁板綍 琛ㄤ富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteOmWorkReportById(Long id)
+    {
+        return omWorkReportMapper.deleteOmWorkReportById(id);
+    }
+}
diff --git a/jcdm-main/src/main/resources/mapper/bs/lineInfo/BsLineInfoMapper.xml b/jcdm-main/src/main/resources/mapper/bs/lineInfo/BsLineInfoMapper.xml
new file mode 100644
index 0000000..6e362c0
--- /dev/null
+++ b/jcdm-main/src/main/resources/mapper/bs/lineInfo/BsLineInfoMapper.xml
@@ -0,0 +1,99 @@
+<?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.lineInfo.mapper.BsLineInfoMapper">
+
+    <resultMap type="BsLineInfo" id="BsLineInfoResult">
+        <result property="id"    column="id"    />
+        <result property="lineCode"    column="line_code"    />
+        <result property="lineName"    column="line_name"    />
+        <result property="workshopCode"    column="workshop_code"    />
+        <result property="workCalendar"    column="work_calendar"    />
+        <result property="spareField1"    column="spare_field_1"    />
+        <result property="spareField2"    column="spare_field_2"    />
+        <result property="remarks"    column="remarks"    />
+        <result property="createUser"    column="create_user"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateUser"    column="update_user"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectBsLineInfoVo">
+        select id, line_code, line_name, workshop_code, work_calendar, spare_field_1, spare_field_2, remarks, create_user, create_time, update_user, update_time from bs_line_info
+    </sql>
+
+    <select id="selectBsLineInfoList" parameterType="BsLineInfo" resultMap="BsLineInfoResult">
+        <include refid="selectBsLineInfoVo"/>
+        <where>  
+            <if test="lineCode != null  and lineCode != ''"> and line_code like concat('%', #{lineCode}, '%')</if>
+            <if test="lineName != null  and lineName != ''"> and line_name like concat('%', #{lineName}, '%')</if>
+            <if test="workshopCode != null  and workshopCode != ''"> and workshop_code like concat('%', #{workshopCode}, '%')</if>
+            <if test="workCalendar != null  and workCalendar != ''"> and work_calendar = #{workCalendar}</if>
+        </where>
+    </select>
+    
+    <select id="selectBsLineInfoById" parameterType="Long" resultMap="BsLineInfoResult">
+        <include refid="selectBsLineInfoVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertBsLineInfo" parameterType="BsLineInfo" useGeneratedKeys="true" keyProperty="id">
+        insert into bs_line_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="lineCode != null and lineCode != ''">line_code,</if>
+            <if test="lineName != null and lineName != ''">line_name,</if>
+            <if test="workshopCode != null and workshopCode != ''">workshop_code,</if>
+            <if test="workCalendar != null">work_calendar,</if>
+            <if test="spareField1 != null">spare_field_1,</if>
+            <if test="spareField2 != null">spare_field_2,</if>
+            <if test="remarks != null">remarks,</if>
+            <if test="createUser != null">create_user,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateUser != null">update_user,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="lineCode != null and lineCode != ''">#{lineCode},</if>
+            <if test="lineName != null and lineName != ''">#{lineName},</if>
+            <if test="workshopCode != null and workshopCode != ''">#{workshopCode},</if>
+            <if test="workCalendar != null">#{workCalendar},</if>
+            <if test="spareField1 != null">#{spareField1},</if>
+            <if test="spareField2 != null">#{spareField2},</if>
+            <if test="remarks != null">#{remarks},</if>
+            <if test="createUser != null">#{createUser},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateUser != null">#{updateUser},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBsLineInfo" parameterType="BsLineInfo">
+        update bs_line_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="lineCode != null and lineCode != ''">line_code = #{lineCode},</if>
+            <if test="lineName != null and lineName != ''">line_name = #{lineName},</if>
+            <if test="workshopCode != null and workshopCode != ''">workshop_code = #{workshopCode},</if>
+            <if test="workCalendar != null">work_calendar = #{workCalendar},</if>
+            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
+            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
+            <if test="remarks != null">remarks = #{remarks},</if>
+            <if test="createUser != null">create_user = #{createUser},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateUser != null">update_user = #{updateUser},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBsLineInfoById" parameterType="Long">
+        delete from bs_line_info where id = #{id}
+    </delete>
+
+    <delete id="deleteBsLineInfoByIds" parameterType="String">
+        delete from bs_line_info where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/jcdm-main/src/main/resources/mapper/om/workReport/OmWorkReportMapper.xml b/jcdm-main/src/main/resources/mapper/om/workReport/OmWorkReportMapper.xml
new file mode 100644
index 0000000..c50fcd1
--- /dev/null
+++ b/jcdm-main/src/main/resources/mapper/om/workReport/OmWorkReportMapper.xml
@@ -0,0 +1,128 @@
+<?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.om.workReport.mapper.OmWorkReportMapper">
+    
+    <resultMap type="OmWorkReport" id="OmWorkReportResult">
+        <result property="id"    column="id"    />
+        <result property="workOrderCode"    column="work_order_code"    />
+        <result property="sfcCode"    column="sfc_code"    />
+        <result property="productCode"    column="product_code"    />
+        <result property="productName"    column="product_name"    />
+        <result property="upTime"    column="up_time"    />
+        <result property="offlineTime"    column="offline_time"    />
+        <result property="status"    column="status"    />
+        <result property="createUser"    column="create_user"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateUser"    column="update_user"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="spareField1"    column="spare_field_1"    />
+        <result property="spareField2"    column="spare_field_2"    />
+        <result property="spareField3"    column="spare_field_3"    />
+        <result property="spareField4"    column="spare_field_4"    />
+    </resultMap>
+
+    <sql id="selectOmWorkReportVo">
+        select id, work_order_code, sfc_code, product_code, product_name, up_time, offline_time, status, create_user, create_time, update_user, update_time, remark, spare_field_1, spare_field_2, spare_field_3, spare_field_4 from om_work_report
+    </sql>
+
+    <select id="selectOmWorkReportList" parameterType="OmWorkReport" resultMap="OmWorkReportResult">
+        <include refid="selectOmWorkReportVo"/>
+        <where>  
+            <if test="workOrderCode != null  and workOrderCode != ''"> and work_order_code = #{workOrderCode}</if>
+            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
+            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
+            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
+            <if test="upTime != null  and upTime != ''"> and up_time = #{upTime}</if>
+            <if test="offlineTime != null  and offlineTime != ''"> and offline_time = #{offlineTime}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="createUser != null  and createUser != ''"> and create_user = #{createUser}</if>
+            <if test="updateUser != null  and updateUser != ''"> and update_user = #{updateUser}</if>
+            <if test="spareField1 != null  and spareField1 != ''"> and spare_field_1 = #{spareField1}</if>
+            <if test="spareField2 != null  and spareField2 != ''"> and spare_field_2 = #{spareField2}</if>
+            <if test="spareField3 != null  and spareField3 != ''"> and spare_field_3 = #{spareField3}</if>
+            <if test="spareField4 != null  and spareField4 != ''"> and spare_field_4 = #{spareField4}</if>
+        </where>
+    </select>
+    
+    <select id="selectOmWorkReportById" parameterType="Long" resultMap="OmWorkReportResult">
+        <include refid="selectOmWorkReportVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertOmWorkReport" parameterType="OmWorkReport" useGeneratedKeys="true" keyProperty="id">
+        insert into om_work_report
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="workOrderCode != null">work_order_code,</if>
+            <if test="sfcCode != null">sfc_code,</if>
+            <if test="productCode != null">product_code,</if>
+            <if test="productName != null">product_name,</if>
+            <if test="upTime != null">up_time,</if>
+            <if test="offlineTime != null">offline_time,</if>
+            <if test="status != null">status,</if>
+            <if test="createUser != null">create_user,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateUser != null">update_user,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+            <if test="spareField1 != null">spare_field_1,</if>
+            <if test="spareField2 != null">spare_field_2,</if>
+            <if test="spareField3 != null">spare_field_3,</if>
+            <if test="spareField4 != null">spare_field_4,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="workOrderCode != null">#{workOrderCode},</if>
+            <if test="sfcCode != null">#{sfcCode},</if>
+            <if test="productCode != null">#{productCode},</if>
+            <if test="productName != null">#{productName},</if>
+            <if test="upTime != null">#{upTime},</if>
+            <if test="offlineTime != null">#{offlineTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="createUser != null">#{createUser},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateUser != null">#{updateUser},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="spareField1 != null">#{spareField1},</if>
+            <if test="spareField2 != null">#{spareField2},</if>
+            <if test="spareField3 != null">#{spareField3},</if>
+            <if test="spareField4 != null">#{spareField4},</if>
+         </trim>
+    </insert>
+
+    <update id="updateOmWorkReport" parameterType="OmWorkReport">
+        update om_work_report
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="workOrderCode != null">work_order_code = #{workOrderCode},</if>
+            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
+            <if test="productCode != null">product_code = #{productCode},</if>
+            <if test="productName != null">product_name = #{productName},</if>
+            <if test="upTime != null">up_time = #{upTime},</if>
+            <if test="offlineTime != null">offline_time = #{offlineTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="createUser != null">create_user = #{createUser},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateUser != null">update_user = #{updateUser},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="spareField1 != null">spare_field_1 = #{spareField1},</if>
+            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
+            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
+            <if test="spareField4 != null">spare_field_4 = #{spareField4},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteOmWorkReportById" parameterType="Long">
+        delete from om_work_report where id = #{id}
+    </delete>
+
+    <delete id="deleteOmWorkReportByIds" parameterType="String">
+        delete from om_work_report where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/jcdm-ui/src/api/main/bs/lineInfo/lineInfo.js b/jcdm-ui/src/api/main/bs/lineInfo/lineInfo.js
new file mode 100644
index 0000000..6110ea9
--- /dev/null
+++ b/jcdm-ui/src/api/main/bs/lineInfo/lineInfo.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ浜х嚎淇℃伅鍒楄〃
+export function listLineInfo(query) {
+  return request({
+    url: '/main/lineInfo/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ浜х嚎淇℃伅璇︾粏
+export function getLineInfo(id) {
+  return request({
+    url: '/main/lineInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板浜х嚎淇℃伅
+export function addLineInfo(data) {
+  return request({
+    url: '/main/lineInfo',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼浜х嚎淇℃伅
+export function updateLineInfo(data) {
+  return request({
+    url: '/main/lineInfo',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎浜х嚎淇℃伅
+export function delLineInfo(id) {
+  return request({
+    url: '/main/lineInfo/' + id,
+    method: 'delete'
+  })
+}
diff --git a/jcdm-ui/src/api/main/om/workReport/workReport.js b/jcdm-ui/src/api/main/om/workReport/workReport.js
new file mode 100644
index 0000000..168f7a8
--- /dev/null
+++ b/jcdm-ui/src/api/main/om/workReport/workReport.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛�
+export function listWorkReport(query) {
+  return request({
+    url: '/om/workReport/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鎶ュ伐璁板綍 琛ㄨ缁�
+export function getWorkReport(id) {
+  return request({
+    url: '/om/workReport/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板鎶ュ伐璁板綍 琛�
+export function addWorkReport(data) {
+  return request({
+    url: '/om/workReport',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鎶ュ伐璁板綍 琛�
+export function updateWorkReport(data) {
+  return request({
+    url: '/om/workReport',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鎶ュ伐璁板綍 琛�
+export function delWorkReport(id) {
+  return request({
+    url: '/om/workReport/' + id,
+    method: 'delete'
+  })
+}
diff --git a/jcdm-ui/src/views/main/bs/lineInfo/index.vue b/jcdm-ui/src/views/main/bs/lineInfo/index.vue
new file mode 100644
index 0000000..939b421
--- /dev/null
+++ b/jcdm-ui/src/views/main/bs/lineInfo/index.vue
@@ -0,0 +1,374 @@
+<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="lineCode">
+          <el-input
+            v-model="queryParams.lineCode"
+            placeholder="璇疯緭鍏ヤ骇绾跨紪鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="浜х嚎鍚嶇О" prop="lineName">
+          <el-input
+            v-model="queryParams.lineName"
+            placeholder="璇疯緭鍏ヤ骇绾垮悕绉�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+          <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+      <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
+        <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode">
+          <el-input
+            v-model="queryParams.workshopCode"
+            placeholder="璇疯緭鍏ヨ溅闂寸紪鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="宸ヤ綔鏃ュ巻" prop="workCalendar">
+          <el-input
+            v-model="queryParams.workCalendar"
+            placeholder="璇疯緭鍏ュ伐浣滄棩鍘�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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="['main:lineInfo: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="['main:lineInfo: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="['main:lineInfo: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="['main:lineInfo:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+      <el-table v-loading="loading" border :data="lineInfoList" @selection-change="handleSelectionChange" v-if="lineInfoList.length > 0">
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="浜х嚎缂栧彿" align="center" prop="lineCode">
+        </el-table-column>
+        <el-table-column label="浜х嚎鍚嶇О" align="center" prop="lineName">
+      </el-table-column>
+        <el-table-column label="杞﹂棿缂栫爜" align="center" prop="workshopCode">
+        </el-table-column>
+        <el-table-column label="杞﹂棿鍚嶇О" align="center" prop="workshopName">
+        </el-table-column>
+        <el-table-column label="澶囨敞" align="center" prop="remarks">
+        </el-table-column>
+        <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser" width="80">
+        </el-table-column>
+        <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="170">
+        </el-table-column>
+        <el-table-column label="鏇存柊浜�" align="center" prop="updateUser" width="80">
+        </el-table-column>
+        <el-table-column label="鏇存柊鏃堕棿" align="center" prop="updateTime" width="170">
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['bs:lineInfo:edit']"
+            >淇敼</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['bs:lineInfo:remove']"
+            >鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-empty v-else>
+        <span slot="description">鏆傛棤鏁版嵁</span>
+      </el-empty>
+    </el-card>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+<!--    <el-table v-loading="loading" :data="lineInfoList" @selection-change="handleSelectionChange">-->
+<!--      <el-table-column type="selection" width="55" align="center" />-->
+<!--      <el-table-column label="涓婚敭id" align="center" prop="id" />-->
+<!--      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">-->
+<!--        <template slot-scope="scope">-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-edit"-->
+<!--            @click="handleUpdate(scope.row)"-->
+<!--            v-hasPermi="['main:lineInfo:edit']"-->
+<!--          >淇敼</el-button>-->
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-delete"-->
+<!--            @click="handleDelete(scope.row)"-->
+<!--            v-hasPermi="['main:lineInfo:remove']"-->
+<!--          >鍒犻櫎</el-button>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+<!--    </el-table>-->
+
+
+
+    <!-- 娣诲姞鎴栦慨鏀逛骇绾夸俊鎭璇濇 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="浜х嚎缂栧彿" prop="lineCode">
+          <el-input v-model="form.lineCode" placeholder="璇疯緭鍏ヤ骇绾跨紪鍙�" />
+        </el-form-item>
+        <el-form-item label="浜х嚎鍚嶇О" prop="lineName">
+          <el-input v-model="form.lineName" placeholder="璇疯緭鍏ヤ骇绾垮悕绉�" />
+        </el-form-item>
+        <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode">
+          <el-input v-model="form.workshopCode" placeholder="璇疯緭鍏ヨ溅闂寸紪鍙�" />
+        </el-form-item>
+<!--        <el-form-item label="宸ヤ綔鏃ュ巻" prop="workCalendar">-->
+<!--          <el-input v-model="form.workCalendar" placeholder="璇疯緭鍏ュ伐浣滄棩鍘�" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="棰勭暀瀛楁1" prop="spareField1">-->
+<!--          <el-input v-model="form.spareField1" placeholder="璇疯緭鍏ラ鐣欏瓧娈�1" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="棰勭暀瀛楁2" prop="spareField2">-->
+<!--          <el-input v-model="form.spareField2" placeholder="璇疯緭鍏ラ鐣欏瓧娈�2" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="澶囨敞" prop="remarks">
+          <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" />
+        </el-form-item>
+<!--        <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser">-->
+<!--          <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤虹敤鎴�" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser">-->
+<!--          <el-input v-model="form.updateUser" 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 { listLineInfo, getLineInfo, delLineInfo, addLineInfo, updateLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
+
+export default {
+  name: "LineInfo",
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 浜х嚎淇℃伅琛ㄦ牸鏁版嵁
+      lineInfoList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      advancedShowSearch: false,
+      // 鏌ヨ鍙傛暟
+
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        lineCode: null,
+        lineName: null,
+        workshopCode: null,
+        workCalendar: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        lineCode: [
+          { required: true, message: "浜х嚎缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        lineName: [
+          { required: true, message: "浜х嚎鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        workshopCode: [
+          { required: true, message: "杞﹂棿缂栧彿涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    advancedQuery(){
+      this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
+    },
+    /** 鏌ヨ浜х嚎淇℃伅鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listLineInfo(this.queryParams).then(response => {
+        this.lineInfoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        lineCode: null,
+        lineName: null,
+        workshopCode: null,
+        workCalendar: null,
+        spareField1: null,
+        spareField2: null,
+        remarks: null,
+        createUser: null,
+        createTime: null,
+        updateUser: null,
+        updateTime: 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.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞浜х嚎淇℃伅";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getLineInfo(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼浜х嚎淇℃伅";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateLineInfo(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addLineInfo(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎浜х嚎缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delLineInfo(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('main/lineInfo/export', {
+        ...this.queryParams
+      }, `lineInfo_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/jcdm-ui/src/views/main/om/workReport/index.vue b/jcdm-ui/src/views/main/om/workReport/index.vue
new file mode 100644
index 0000000..fc9db6a
--- /dev/null
+++ b/jcdm-ui/src/views/main/om/workReport/index.vue
@@ -0,0 +1,373 @@
+<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="workOrderCode">
+          <el-input
+            v-model="queryParams.workOrderCode"
+            placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="SFC鎬绘垚搴忓垪鍙�" prop="sfcCode" label-width="110px">
+          <el-input
+            v-model="queryParams.sfcCode"
+            placeholder="璇疯緭鍏FC鎬绘垚搴忓垪鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+          <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+      <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
+        <el-form-item label="浜у搧缂栧彿" prop="productCode">
+          <el-input
+            v-model="queryParams.productCode"
+            placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="浜у搧鍚嶇О" prop="productName">
+          <el-input
+            v-model="queryParams.productName"
+            placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="鏄惁鍚堟牸" prop="status">
+          <el-input
+            v-model="queryParams.status"
+            placeholder="璇疯緭鍏ユ槸鍚﹀悎鏍�"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </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="['om:workReport: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="['om:' +
+           '']"
+        >淇敼</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="['om:workReport: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="['om:workReport:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="workReportList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+<!--      <el-table-column label="宸ュ崟缂栧彿" align="center" prop="workOrderCode" />-->
+      <el-table-column label="宸ュ崟缂栧彿" width="130" align="center">
+        <template slot-scope="scope">
+          <router-link :to="{path: '/main/route-data/index/', query: {workOrderCode: scope.row.workOrderCode} }" class="link-type">
+            <span>{{ scope.row.workOrderCode }}</span>
+          </router-link>
+        </template>
+      </el-table-column>
+      <el-table-column label="SFC鎬绘垚搴忓垪鍙�" align="center" prop="sfcCode" />
+      <el-table-column label="浜у搧缂栧彿" align="center" prop="productCode" />
+      <el-table-column label="浜у搧鍚嶇О" align="center" prop="productName" />
+      <el-table-column label="涓婄嚎鏃堕棿" align="center" prop="upTime" />
+      <el-table-column label="涓嬬嚎鏃堕棿" align="center" prop="offlineTime" />
+      <el-table-column label="鏄惁鍚堟牸" align="center" prop="status">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.status"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="澶囨敞" align="center" prop="remark" />
+
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['om:workReport:edit']"
+          >淇敼</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['om:workReport: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 :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="宸ュ崟缂栧彿" prop="workOrderCode">
+          <el-input v-model="form.workOrderCode" placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�" />
+        </el-form-item>
+        <el-form-item label="SFC鎬绘垚搴忓垪鍙�" prop="sfcCode">
+          <el-input v-model="form.sfcCode" placeholder="璇疯緭鍏FC鎬绘垚搴忓垪鍙�" />
+        </el-form-item>
+        <el-form-item label="浜у搧缂栧彿" prop="productCode">
+          <el-input v-model="form.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" />
+        </el-form-item>
+        <el-form-item label="浜у搧鍚嶇О" prop="productName">
+          <el-input v-model="form.productName" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" />
+        </el-form-item>
+<!--        <el-form-item label="鏄惁鍚堟牸" prop="status">-->
+<!--          <el-input v-model="form.status" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" />-->
+<!--        </el-form-item>-->
+        <el-form-item label="鏄惁鍚堟牸" prop="status">
+          <el-radio-group v-model="form.status">
+            <el-radio
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.value"
+            >{{dict.label}}</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input v-model="form.remark" 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 { listWorkReport, getWorkReport, delWorkReport, addWorkReport, updateWorkReport } from "@/api/main/om/workReport/workReport";
+
+export default {
+  name: "WorkReport",
+  dicts: ['sys_yes_no'],
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鎶ュ伐璁板綍 琛ㄨ〃鏍兼暟鎹�
+      workReportList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      advancedShowSearch: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        workOrderCode: null,
+        sfcCode: null,
+        productCode: null,
+        productName: null,
+        upTime: null,
+        offlineTime: null,
+        status: null,
+        createUser: null,
+        updateUser: null,
+        spareField1: null,
+        spareField2: null,
+        spareField3: null,
+        spareField4: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        id: [
+          { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+        workOrderCode: [
+          { required: true, message: "璇疯緭鍏ュ伐鍗曠紪鍙�", trigger: "blur" }
+        ],
+        sfcCode: [
+          { required: true, message: "璇疯緭鍏FC鎬绘垚搴忓垪鍙�", trigger: "blur" }
+        ],
+        productCode: [
+          { required: true, message: "璇疯緭鍏ヤ骇鍝佺紪鍙�", trigger: "blur" }
+        ],
+        productName: [
+          { required: true, message: "璇疯緭鍏ヤ骇鍝佸悕绉�", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    advancedQuery(){
+      this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
+    },
+    /** 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛� */
+    getList() {
+      this.loading = true;
+      listWorkReport(this.queryParams).then(response => {
+        this.workReportList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        workOrderCode: null,
+        sfcCode: null,
+        productCode: null,
+        productName: null,
+        upTime: null,
+        offlineTime: null,
+        status: null,
+        createUser: null,
+        createTime: null,
+        updateUser: null,
+        updateTime: null,
+        remark: null,
+        spareField1: null,
+        spareField2: null,
+        spareField3: null,
+        spareField4: 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.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鎶ュ伐璁板綍琛�";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getWorkReport(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鎶ュ伐璁板綍琛�";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateWorkReport(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addWorkReport(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鎶ュ伐璁板綍琛ㄧ紪鍙蜂负"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delWorkReport(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('om/workReport/export', {
+        ...this.queryParams
+      }, `workReport_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

--
Gitblit v1.9.3