From 42cfe3f13b09d8b06935fb371fe327387292abc9 Mon Sep 17 00:00:00 2001
From: 懒羊羊 <15939171744@163.com>
Date: 星期一, 08 四月 2024 12:44:49 +0800
Subject: [PATCH] 工单导入

---
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java         |    2 
 jcdm-ui/src/views/main/om/productionOrde/index.vue                                                        |  176 +++++++++++++++++++++++--------------------
 jcdm-ui/src/api/main/om/productionOrde/productionOrde.js                                                  |    7 +
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java |    9 ++
 jcdm-admin/src/main/resources/application-druid.yml                                                       |    3 
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java    |   27 ++++++
 6 files changed, 141 insertions(+), 83 deletions(-)

diff --git a/jcdm-admin/src/main/resources/application-druid.yml b/jcdm-admin/src/main/resources/application-druid.yml
index 7f10f22..f169701 100644
--- a/jcdm-admin/src/main/resources/application-druid.yml
+++ b/jcdm-admin/src/main/resources/application-druid.yml
@@ -16,7 +16,8 @@
         druid:
             # 涓诲簱鏁版嵁婧�
             master:
-                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm042-Mes
+#                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm042-Mes
+                url: jdbc:sqlserver://183.134.244.158:1433;DataBaseName=Jcdm042-Mes
                 username: sa
                 password: JCDM@2023
             # 浠庡簱鏁版嵁婧�
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 fb467e3..301c4c2 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
@@ -1,10 +1,16 @@
 package com.jcdm.main.om.productionOrde.controller;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.jcdm.common.core.domain.entity.SysUser;
+import com.jcdm.common.core.domain.model.LoginUser;
+import com.jcdm.common.utils.ServletUtils;
 import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
+import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfoExcelImport;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +28,7 @@
 import com.jcdm.common.enums.BusinessType;
 import com.jcdm.common.utils.poi.ExcelUtil;
 import com.jcdm.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 鐢熶骇宸ュ崟Controller
@@ -114,4 +121,24 @@
     {
         return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
     }
+
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
+        List<OmProductionOrdeInfo> ordeInfo = util.importExcel(file.getInputStream());
+        for (OmProductionOrdeInfo omProductionOrdeInfo : ordeInfo) {
+            omProductionOrdeInfo.setCreateTime(new Date());
+            omProductionOrdeInfo.setCreateBy("宸ュ巶MES");
+        }
+        omProductionOrdeInfoService.overrideSaveBatch(ordeInfo);
+        return AjaxResult.success();
+    }
+
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<OmProductionOrdeInfoExcelImport> util = new ExcelUtil<OmProductionOrdeInfoExcelImport>(OmProductionOrdeInfoExcelImport.class);
+        util.importTemplateExcel(response, "璁㈠崟鏁版嵁");
+    }
 }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
index 4b058fb..3d81a98 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/IOmProductionOrdeInfoService.java
@@ -63,4 +63,6 @@
     public int deleteOmProductionOrdeInfoById(Long id);
 
     AjaxResult upDownMove(OmProductionOrdeInfo omProductionOrdeInfo);
+
+    void overrideSaveBatch(List<OmProductionOrdeInfo> omProductionOrdeInfoList);
 }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
index 31601d7..93729ed 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/service/impl/OmProductionOrdeInfoServiceImpl.java
@@ -135,4 +135,13 @@
         omProductionOrdeInfoService.updateOmProductionOrdeInfo(currentOrdeInfos.get(0));
         return AjaxResult.success("绉诲姩鎴愬姛");
     }
+
+    @Override
+    public void overrideSaveBatch(List<OmProductionOrdeInfo> omProductionOrdeInfoList) {
+        try {
+            this.saveBatch(omProductionOrdeInfoList);
+        }catch (Exception e){
+            return;
+        }
+    }
 }
diff --git a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
index acff9ce..e9681b9 100644
--- a/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
+++ b/jcdm-ui/src/api/main/om/productionOrde/productionOrde.js
@@ -17,6 +17,13 @@
   })
 }
 
+export function importTemplate() {
+  return request({
+    url: '/om/productionOrde/importTemplate',
+    method: 'get',
+  })
+}
+
 // 鏌ヨ鐢熶骇宸ュ崟璇︾粏
 export function getProductionOrde(id) {
   return request({
diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue
index 56eb2ec..b053002 100644
--- a/jcdm-ui/src/views/main/om/productionOrde/index.vue
+++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -103,37 +103,23 @@
           @click="handleDelete"
           v-hasPermi="['om:productionOrde:remove']"
         >鍒犻櫎</el-button>
+        <el-button
+          type="info"
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+        >瀵煎叆</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:productionOrde:export']"-->
-<!--        >瀵煎嚭</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-upload2"-->
-<!--          :disabled="move"-->
-<!--          size="mini"-->
-<!--          @click="moveUp(val => val, 'up')"-->
-<!--        >涓婄Щ</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-download"-->
-<!--          size="mini"-->
-<!--          :disabled="move"-->
-<!--          @click="moveUp(val => val, 'down')"-->
-<!--        >涓嬬Щ</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:productionOrde:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -146,8 +132,8 @@
             </router-link>
           </template>
         </el-table-column>
-        <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">
-        </el-table-column>
+<!--        <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">-->
+<!--        </el-table-column>-->
         <el-table-column label="浜у搧缂栧彿" width="110" align="center" prop="productCode">
         </el-table-column>
         <el-table-column label="浜у搧鍚嶇О" width="120" align="center" prop="productName">
@@ -161,8 +147,8 @@
             <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
           </template>
         </el-table-column>
-        <el-table-column label="宸ュ巶缂栧彿" align="center" prop="siteCode">
-        </el-table-column>
+<!--        <el-table-column label="宸ュ巶缂栧彿" align="center" prop="siteCode">-->
+<!--        </el-table-column>-->
         <el-table-column label="宸ョ珯缂栧彿" align="center" prop="stationCode">
         </el-table-column>
         <el-table-column label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText">
@@ -179,40 +165,6 @@
         </el-table-column>
         <el-table-column label="澶囨敞" width="100" align="center" prop="remarks">
         </el-table-column>
-<!--        <el-table-column label="娴佹按鍙�" align="center" prop="streamNumber">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="瀹㈡埛" width="80" align="center" prop="custom">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column fixed="right" width="350" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">-->
-<!--          <template slot-scope="scope">-->
-<!--            &lt;!&ndash;  宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 &ndash;&gt;-->
-<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">寮�濮�</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">鍐荤粨</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">瑙e喕</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">鍏抽棴</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">鍚敤</el-button>-->
-<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
-<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
-<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
-<!--&lt;!&ndash;              type="success"&ndash;&gt;-->
-<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
-<!--&lt;!&ndash;              icon="el-icon-edit"&ndash;&gt;-->
-<!--&lt;!&ndash;              @click="handleUpdate(scope.row)"&ndash;&gt;-->
-<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:edit']"&ndash;&gt;-->
-<!--&lt;!&ndash;            >淇敼</el-button>&ndash;&gt;-->
-<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
-<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
-<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
-<!--&lt;!&ndash;              type="warning"&ndash;&gt;-->
-<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
-<!--&lt;!&ndash;              icon="el-icon-delete"&ndash;&gt;-->
-<!--&lt;!&ndash;              @click="handleDelete(scope.row)"&ndash;&gt;-->
-<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:remove']"&ndash;&gt;-->
-<!--&lt;!&ndash;            >鍒犻櫎</el-button>&ndash;&gt;-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">瀹屾垚</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">宸插畬宸�</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">鍚敤</el-button>-->
-<!--          </template>-->
-<!--        </el-table-column>-->
       </el-table>
     </el-card>
 
@@ -267,16 +219,48 @@
       </div>
     </el-dialog>
 
+    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px">
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          灏嗘枃浠舵嫋鍒版澶勶紝鎴�
+          <em>鐐瑰嚮涓婁紶</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+          <el-link type="info" style="font-size:12px" @click="importTemplate">涓嬭浇妯℃澘</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">鎻愮ず锛氫粎鍏佽瀵煎叆鈥渪ls鈥濇垨鈥渪lsx鈥濇牸寮忔枃浠讹紒</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
+        <el-button @click="upload.open = false">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
+import { getToken } from "@/utils/auth";
 import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
 import { listWorkshop } from "@/api/main/bs/workshop/workshop";
 import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
 import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
 import ItemSelect  from "@/components/itemSelect/single.vue";
-import { upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
+import { importTemplate, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
 
 export default {
   name: "ProductionOrde",
@@ -355,7 +339,22 @@
         id: [
           { required: true, message: "ID涓嶈兘涓虹┖", trigger: "blur" }
         ],
-      }
+      },
+      // 鐢ㄦ埛瀵煎叆鍙傛暟
+      upload: {
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+        open: false,
+        // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+        title: "",
+        // 鏄惁绂佺敤涓婁紶
+        isUploading: false,
+        // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+        updateSupport: 0,
+        // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+        headers: { Authorization: "Bearer " + getToken() },
+        // 涓婁紶鐨勫湴鍧�
+        url: process.env.VUE_APP_BASE_API + "/om/productionOrde/importData"
+      },
     };
   },
   created() {
@@ -363,18 +362,31 @@
     this.initWorkshop();
   },
   methods: {
-    moveUp(row, val){
-      console.log(val)
-      const ids = row.id || this.ids
-      let str = JSON.stringify(ids);
-      let num = BigInt(str.replace(/[\[\]]/g, ''));
-      this.queryParams.frontEndId = num
-      this.queryParams.idNums = ids
-      this.queryParams.flag = val
-      upDownMove(this.queryParams).then(response => {
-        this.$modal.msgSuccess("绉诲姩鎴愬姛");
-        this.getList();
-      });
+    /** 瀵煎叆鎸夐挳鎿嶄綔 */
+    handleImport() {
+      this.upload.title = "璁㈠崟淇℃伅瀵煎叆";
+      this.upload.open = true;
+    },
+    /** 涓嬭浇妯℃澘鎿嶄綔 */
+    importTemplate() {
+      this.download('om/productionOrde/importTemplate', {
+      }, `productionOrde_template_${new Date().getTime()}.xlsx`)
+    },
+// 鏂囦欢涓婁紶涓鐞�
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+// 鏂囦欢涓婁紶鎴愬姛澶勭悊
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+// 鎻愪氦涓婁紶鏂囦欢
+    submitFileForm() {
+      this.$refs.upload.submit();
     },
     initWorkshop(){
       listWorkshop(this.queryParams).then(response => {

--
Gitblit v1.9.3