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">--> -<!-- <!– 宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 –>--> -<!-- <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>--> -<!--<!– <el-button–>--> -<!--<!– :disabled="scope.row.orderStatus !== '1'"–>--> -<!--<!– size="mini"–>--> -<!--<!– type="success"–>--> -<!--<!– style="width: 72px"–>--> -<!--<!– icon="el-icon-edit"–>--> -<!--<!– @click="handleUpdate(scope.row)"–>--> -<!--<!– v-hasPermi="['om:productionOrde:edit']"–>--> -<!--<!– >淇敼</el-button>–>--> -<!--<!– <el-button–>--> -<!--<!– :disabled="scope.row.orderStatus !== '1'"–>--> -<!--<!– size="mini"–>--> -<!--<!– type="warning"–>--> -<!--<!– style="width: 72px"–>--> -<!--<!– icon="el-icon-delete"–>--> -<!--<!– @click="handleDelete(scope.row)"–>--> -<!--<!– v-hasPermi="['om:productionOrde:remove']"–>--> -<!--<!– >鍒犻櫎</el-button>–>--> -<!-- <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