From 7a4c218909936721fe281737491d10efc7378e09 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期五, 19 七月 2024 17:53:30 +0800 Subject: [PATCH] 优化工单信息页面 --- 代码管理/PCS/WCS_Server/WIDESEA_Core/BaseProvider/ServiceBase.cs | 2 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs | 21 + 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderModelBody.vue | 165 +++++++++++ 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs | 11 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/工单明细20240719175850.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs | 34 -- 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js | 40 ++ 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs | 5 代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/AutoUpdateWork.cs | 6 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs | 6 代码管理/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue | 405 ++++++++++++++++++++++------ 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderGridFooter.vue | 113 ++++++++ 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/工单信息20240719174950.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json | 4 14 files changed, 662 insertions(+), 150 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderGridFooter.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderGridFooter.vue" new file mode 100644 index 0000000..18ddcfb --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderGridFooter.vue" @@ -0,0 +1,113 @@ +<template> + <div style="padding: 0 4px; border-top: 10px solid #eee"> + <h3> + <i class="ivu-icon ivu-icon-ios-information-circle-outline"></i>宸ュ崟鏄庣粏 + </h3> + <div style="padding: 10px; background: white; padding-top: 0"> + <vol-table + ref="tableList" + :loadKey="true" + :columns="columns" + :pagination-hide="true" + :height="210" + :defaultLoadPage="false" + @loadBefore="loadBefore" + url="/api/dt_mes_head/getDetailPage" + :row-index="true" + :index="false" + ></vol-table> + </div> + </div> +</template> + +<script> +import VolTable from "@/components/basic/VolTable.vue"; +export default { + components: { + VolTable, + }, + methods: { + loadBefore(params, callback) { + return callback(true); + }, + }, + data() { + return { + tableData: [], + //浠庣敓鎴愮殑浠g爜sellorder2.vue閲岄潰鎶婃槑缁嗛厤缃鍒惰繃鏉ュ氨鑳界敤 + columns: [ + { + field: "mes_detail_id", + title: "宸ュ崟鏄庣粏ID", + type: "guid", + width: 110, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "jobID", + title: "宸ュ崟缂栧彿", + type: "string", + width: 110, + align: "left", + sort: true, + }, + { + field: "heatID", + title: "鐐変唬鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "billetID", + title: "閽㈠澂鍙�", + type: "int", + width: 110, + require: true, + align: "left", + }, + { + field: "SN", + title: "杞﹁疆SN鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "heatBatchID", + title: "鐑鐞嗘壒娆�", + type: "string", + width: 110, + align: "left", + }, + { + field: "Status", + title: "宸ュ崟鐘舵��", + type: "string", + width: 110, + align: "left", + }, + { + field: "FinishTime", + title: "瀹屾垚鏃堕棿", + type: "datetime", + width: 150, + align: "left", + }, + ], + }; + }, +}; +</script> +<style scoped> +h3 { + font-weight: 500; + padding-left: 10px; + background: white; + margin-top: 8px; + padding-bottom: 5px; +} +</style> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderModelBody.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderModelBody.vue" new file mode 100644 index 0000000..61fda58 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/WorkOrderModelBody.vue" @@ -0,0 +1,165 @@ +<template> + <VolBox v-model="model" title="閫夋嫨鏁版嵁" :lazy="true" :height="530" :width="1100" :padding="10"> + <!-- 璁剧疆鏌ヨ鏉′欢 --> + <div style="padding-bottom: 10px"> + <span style="margin-right: 20px">璇烽�夋嫨鏁版嵁</span> + <el-input placeholder="宸ュ崟缂栧彿" style="width: 200px" v-model="jobID" /> + <el-button type="primary" plain style="margin-left: 10px" icon="Search" @click="search">鎼滅储</el-button> + </div> + <!-- vol-table閰嶇疆鐨勮繖浜涘睘鎬цVolTable缁勪欢api鏂囦欢 --> + <vol-table ref="mytable" :loadKey="true" :columns="columns" :pagination="pagination" :pagination-hide="false" + :max-height="380" :url="url" :index="true" :single="false" :defaultLoadPage="false" + @loadBefore="loadTableBefore"></vol-table> + <template #footer> + <div> + <el-button plain type="primary" @click="addRow">閫夋嫨鏁版嵁</el-button> + <el-button @click="model = false">鍏抽棴</el-button> + </div> + </template> + </VolBox> +</template> +<script> +import VolBox from "@/components/basic/VolBox.vue"; +import VolTable from "@/components/basic/VolTable.vue"; +export default { + components: { + VolBox: VolBox, + VolTable: VolTable, + }, + data() { + return { + model: false, + jobID: "", + mes_headID:null, + //浠庡悗鍙版帴鍙e姞杞芥暟鎹�,杩欓噷鐨勬帴鍙g敤鐨勬鏋惰嚜甯︾殑鏌ヨ锛屼篃鍙互鑷畾涔夋帴鍙o紝瑙丄pp_ExpertModelBody.vue涓皟鐢ㄧ殑鍚庡彴getSelectorDemo鏂规硶 + url: "api/dt_mes_detail/getPageData", + columns: [ + { + field: "mes_detail_id", + title: "宸ュ崟鏄庣粏ID", + type: "guid", + width: 110, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "jobID", + title: "宸ュ崟缂栧彿", + type: "string", + width: 110, + align: "left", + sort: true, + }, + { + field: "heatID", + title: "鐐変唬鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "billetID", + title: "閽㈠澂鍙�", + type: "int", + width: 110, + require: true, + align: "left", + }, + { + field: "SN", + title: "杞﹁疆SN鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "heatBatchID", + title: "鐑鐞嗘壒娆�", + type: "string", + width: 110, + align: "left", + }, + // { + // field: "mes_headID", + // title: "宸ュ崟澶磋〃ID", + // type: "guid", + // width: 110, + // align: "left", + // }, + { + field: "Status", + title: "宸ュ崟鐘舵��", + type: "string", + width: 110, + align: "left", + }, + { + field: "FinishTime", + title: "瀹屾垚鏃堕棿", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + ], + pagination: {}, + row: {}, //鏄庣粏琛ㄩ�夋嫨鐨勮 + }; + }, + methods: { + open(row) { + // this.row = row; + this.model = true; + //鎵撳紑寮瑰嚭妗嗘椂锛屽姞杞絫able鏁版嵁 + this.$nextTick(() => { + this.$refs.mytable.load(); + }); + }, + search() { + this.$refs.mytable.load(); + }, + addRow() { + var rows = this.$refs.mytable.getSelected(); + if (!rows || rows.length == 0) { + return this.$Message.error("璇烽�夋嫨琛屾暟鎹�"); + } + + //鍥炲啓鏄庣粏琛ㄨ鏁版嵁锛岃鏂囨。瀛愮埗缁勪欢璋冪敤涓庤幏鍙栨槑缁嗚〃琛屾暟鎹�:http://v2.volcore.xyz/document/api + this.$emit('parentCall', $parent => { + + //杩欓噷鍙互鍐欎釜鍒ゆ柇鏄惁宸茬粡瀛樺湪鏄庣粏琛紝鎵惧埌涓嶅瓨鍦ㄧ殑鏁版嵁 + // rows = rows.filter(c => { + // return !$parent.$refs.detail.rowData.some(r => { return r.xx == c.xx }) + // }); + + //鐢熸垚鏂扮殑瀵硅薄 + rows = rows.map(c => { + return { + jobID: c.jobID, + heatID: c.heatID, + billetID: c.billetID, + SN: c.SN, + heatBatchID:c.heatBatchID + } + }) + + //鍙互娓呯┖鏄庣粏琛ㄦ暟鎹� + //$parent.$refs.detail.rowData.splice(0); + //鍥炲啓鍒版槑缁嗚〃鏍� + $parent.$refs.detail.rowData.unshift(...rows); + }) + this.model = false; + }, + loadTableBefore(params) { + //鏌ヨ鍓嶏紝璁剧疆鏌ヨ鏉′欢 + params.wheres = [ + { name: "jobID", value: this.jobID, displayType: "like" }, + { name: "mes_headID", value: this.mes_headID, displayType: "like" }, + ]; + return true; + }, + }, +}; +</script> \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js" index 82ca53f..2b809d1 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js" @@ -6,16 +6,17 @@ **鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev *****************************************************************************************/ //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜 - +import gridFooter from "./WorkOrderGridFooter.vue" +import modelBody from "./WorkOrderModelBody.vue" let extension = { components: { //鏌ヨ鐣岄潰鎵╁睍缁勪欢 gridHeader: '', gridBody: '', - gridFooter: '', + gridFooter: gridFooter, //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 modelHeader: '', - modelBody: '', + modelBody: modelBody, modelFooter: '' }, tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓) @@ -23,6 +24,10 @@ methods: { //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛� + //鐐瑰嚮鍗曞厓鏍肩紪杈戜笌缁撴潫缂栬緫(榛樿鏄偣鍑诲崟鍏冩牸缂栬緫锛岄紶鏍囩寮�缁撴潫缂栬緫) + this.detailOptions.clickEdit = true; + //璁剧疆涓昏〃鍚堣 + this.summary = true; //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽� // this.buttons.unshift({ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍 // name: '鎸夐挳', //鎸夐挳鍚嶇О @@ -136,6 +141,15 @@ // this.boxOptions.labelWidth = 150; }, onInited() { + //璋冩暣鐣岄潰table楂樺害 + this.height = this.height - 310; + this.detailOptions.buttons.unshift({ + 'name': '閫夋嫨鏁版嵁', + icon: "el-icon-plus", + onClick: () => { + this.$refs.modelBody.open(); + } + }) //妗嗘灦鍒濆鍖栭厤缃悗 //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔 //this.detailOptions.columns.forEach(column=>{ }); @@ -145,8 +159,16 @@ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ return true; }, - searchAfter(result) { + searchAfter(rows) { //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊� + if (rows.length) { + // this.$nextTick(() => { + this.$refs.gridFooter.$refs.tableList.load({ value: rows[0].mes_id }) + // }) + } else { + //娌℃湁鏁版嵁鏃讹紝娓呯┖鏄庣粏鏁版嵁 + this.$refs.gridFooter.$refs.tableList.rowData.splice(0) + } return true; }, addBefore(formData) { @@ -158,8 +180,14 @@ return true; }, rowClick({ row, column, event }) { - //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠� - // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�; + //鍙栨秷鍏朵粬琛岄�変腑 + this.$refs.table.$refs.table.clearSelection(); + //璁剧疆閫変腑褰撳墠琛� + this.$refs.table.$refs.table.toggleRowSelection(row); + if (this.$refs.gridFooter && this.$refs.gridFooter.$refs.tableList) { + //load鏂规硶鍙弬鐓oltable缁勪欢api鏂囨。 + this.$refs.gridFooter.$refs.tableList.load({ value: row.mes_id }) + } }, modelOpenAfter(row) { //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue" index 698401c..d6970cb 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue" @@ -5,94 +5,325 @@ *涓氬姟璇峰湪@/extension/widesea_wcs/tomes/dt_mes_head.js姝ゅ缂栧啓 --> <template> - <view-grid ref="grid" - :columns="columns" - :detail="detail" - :editFormFields="editFormFields" - :editFormOptions="editFormOptions" - :searchFormFields="searchFormFields" - :searchFormOptions="searchFormOptions" - :table="table" - :extend="extend"> - </view-grid> + <view-grid + ref="grid" + :columns="columns" + :detail="detail" + :editFormFields="editFormFields" + :editFormOptions="editFormOptions" + :searchFormFields="searchFormFields" + :searchFormOptions="searchFormOptions" + :table="table" + :extend="extend" + > + </view-grid> </template> <script> - import extend from "@/extension/widesea_wcs/tomes/dt_mes_head.js"; - import { ref, defineComponent } from "vue"; - export default defineComponent({ - setup() { - const table = ref({ - key: 'mes_id', - footer: "Foots", - cnName: '宸ュ崟澶磋〃', - name: 'tomes/dt_mes_head', - url: "/dt_mes_head/", - sortName: "CreateTime" - }); - const editFormFields = ref({"stackNoRange":"","skip_op_1":"","skip_op_2":"","skip_op_3":""}); - const editFormOptions = ref([ - [{"title":"鎵撳寘鏁伴噺","field":"stackNoRange","type":"number"}], - [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�1", "required": true, "field": "skip_op_1", "type": "select" }], - [{ "dataKey": "skip_op_Status", "data": [], "title": "瑙嗚妫�娴�2", "required": true, "field": "skip_op_2", "type": "select" }], - [{ "dataKey": "skip_op_Status", "data": [], "title": "鍠烽槻閿堟恫", "required": true, "field": "skip_op_3", "type": "select" }], - // [{ - // title: "鎸囧畾搴撳尯", field: "area", - // data: [ - // { key: 9, value: "澶栧崗鍖�" }, - // { key: 2, value: "搴撳尯2" }, - // { key: 3, value: "搴撳尯3" }, - // { key: 4, value: "搴撳尯4" }, - // //{ key: 3, value: "涓嶅厑璁�" }, - // ] - // , type: "radio"//type: "select" - // }], - ]); - const searchFormFields = ref({"jobID":"","processCode":"","CreateTime":""}); - const searchFormOptions = ref([ - [{"title":"宸ヤ綔浠ゅ彿","field":"workOrder","type":"like"},{"title":"宸ュ崟缂栧彿","field":"jobID","type":"like"},{"dataKey":"WorkTypes","data":[],"title":"宸ュ崟绫诲瀷","field":"processCode","type":"select"}], - [{"title":"鍥惧彿","field":"drawingNo","type":"like"},{"title":"鍒涘缓鏃堕棿","field":"CreateTime","type":"datetime"}] - ]); - const columns = ref([{field:'mes_id',title:'mes_id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'}, - {field:'workOrder',title:'宸ヤ綔浠ゅ彿',type:'string',width:110,align:'left',sort:true}, - {field:'jobID',title:'宸ュ崟缂栧彿',type:'string',width:110,align:'left'}, - // {field:'reqID',title:'闇�姹傚崟鍙�',type:'string',width:110,align:'left'}, - // {field:'reqIDLineNo',title:'闇�姹傚崟鍙疯鍙�',type:'string',width:110,align:'left'}, - // {field:'materialCode',title:'鐗╂枡缂栫爜',type:'string',width:110,align:'left'}, - {field:'drawingNo',title:'鍥惧彿',type:'string',width:110,align:'left'}, - {field:'drawingNoVer',title:'鎶�鏈姸鎬�',type:'string',width:110,align:'left'}, - // {field:'productName',title:'浜у搧鍚嶇О',type:'string',width:110,align:'left'}, - {field:'processCode',title:'宸ュ崟绫诲瀷',bind: { key: 'WorkTypes' },type:'string',width:110,align:'left'}, - {field:'quantity',title:'璁″垝鏁伴噺',type:'int',width:110,align:'left'}, - {field:'finishNum',title:'瀹屾垚鏁伴噺',type:'int',width:110,align:'left'}, - {field:'area',title:'鎸囧畾搴撳尯',type:'string',width:110,align:'left'}, - // {field:'typeID',title:'杞瀷浠g爜',type:'string',width:110,align:'left'}, - {field:'stackNoRange',title:'鎵撳寘鏁伴噺',type:'int',width:110,align:'left',sort:true}, - {field:'skip_op_1',title:'瑙嗚妫�娴�1',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'}, - {field:'skip_op_2',title:'瑙嗚妫�娴�2',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'}, - {field:'skip_op_3',title:'鍠烽槻閿堟恫',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'}, - // {field:'maxDiameterDiff',title:'杞緞鍋忓樊',type:'decimal',width:110,align:'left'}, - {field:'expectedStartTime',title:'璁″垝寮�濮嬫椂闂�',type:'datetime',width:150,align:'left',sort:true}, - {field:'expectedFinishTime',title:'璁″垝瀹屾垚鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, - {field:'CreateTime',title:'鍒涘缓鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, - {field:'creator',title:'鍒涘缓鑰�',type:'string',width:100,align:'left'}, - {field:'productDesc',title:'浜у搧鎻忚堪',type:'string',width:180,align:'left'}]); - const detail = ref({ - cnName: "#detailCnName", - table: "#detailTable", - columns: [], - sortName: "", - key: "" - }); - return { - table, - extend, - editFormFields, - editFormOptions, - searchFormFields, - searchFormOptions, - columns, - detail, - }; +import extend from "@/extension/widesea_wcs/tomes/dt_mes_head.js"; +var vueParam={ + data() { + return { + table: { + key: "mes_id", + footer: "Foots", + cnName: "宸ュ崟淇℃伅", + name: "work/dt_mes_head", + url: "/dt_mes_head/", + sortName: "CreateTime", + }, + extend: extend, + editFormFields: { + workOrder: "", + jobID: "", + drawingNo: "", + productDesc: "", + CreateTime:"", + quantity:"", + }, + editFormOptions: [ + [ + { title: "宸ヤ綔浠ゅ彿", field: "workOrder", readonly: true }, + { title: "宸ュ崟缂栧彿", field: "jobID", readonly: true }, + { title: "鍥惧彿", field: "drawingNo", readonly: true }, + ], + [ + { title: "鍒涘缓鏃堕棿", field: "CreateTime", disabled: true }, + { + title: "浜у搧鎻忚堪", + field: "productDesc", + colSize: 8, + type: "textarea", + }, + ], + ], + searchFormFields: { + workOrder: "", + jobID: "", + drawingNo: "", + productDesc: "", + processCode:"", + }, + searchFormOptions: [ + [ + { title: "宸ヤ綔浠ゅ彿", field: "workOrder" }, + { title: "宸ュ崟缂栧彿", field: "jobID" }, + { title: "鍥惧彿", field: "drawingNo" }, + ], + [ + { + dataKey: "WorkTypes", + data: [], + title: "宸ュ崟绫诲瀷", + field: "processCode", + type: "select", }, - }); + { title: "鍒涘缓鏃堕棿", field: "CreateTime", type: "datetime" }, + ] + ], + columns: [ + { + field: "mes_id", + title: "mes_id", + type: "guid", + width: 110, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "workOrder", + title: "宸ヤ綔浠ゅ彿", + type: "string", + width: 110, + align: "left", + sort: true, + }, + { + field: "jobID", + title: "宸ュ崟缂栧彿", + type: "string", + link: true, + width: 110, + align: "left", + }, + // { + // field: "reqID", + // title: "闇�姹傚崟鍙�", + // type: "string", + // width: 110, + // align: "left", + // }, + // { + // field: "reqIDLineNo", + // title: "闇�姹傚崟鍙疯鍙�", + // type: "string", + // width: 110, + // align: "left", + // }, + // { + // field: "materialCode", + // title: "鐗╂枡缂栫爜", + // type: "string", + // width: 110, + // align: "left", + // }, + { + field: "drawingNo", + title: "鍥惧彿", + type: "string", + width: 110, + align: "left", + }, + { + field: "drawingNoVer", + title: "鎶�鏈姸鎬�", + type: "string", + width: 110, + align: "left", + }, + // { + // field: "productName", + // title: "浜у搧鍚嶇О", + // type: "string", + // width: 110, + // align: "left", + // }, + { + field: "processCode", + title: "宸ュ崟绫诲瀷", + bind: { key: "WorkTypes" }, + type: "string", + width: 110, + align: "left", + }, + { + field: "quantity", + title: "璁″垝鏁伴噺", + type: "int", + width: 110, + require: true, + align: "left", + },{ + field: "finishNum", + title: "瀹屾垚鏁伴噺", + type: "int", + width: 110, + align: "left", + },{ + field: "area", + title: "鎸囧畾搴撳尯", + type: "string", + width: 110, + align: "left", + }, + // { + // field: "typeID", + // title: "杞瀷浠g爜", + // type: "string", + // width: 110, + // align: "left", + // }, + // { + // field: "stackNoRange", + // title: "鎵撳寘鏁伴噺", + // type: "int", + // width: 110, + // align: "left", + // }, + // { + // field: "maxDiameterDiff", + // title: "杞緞鍋忓樊", + // type: "decimal", + // width: 110, + // align: "left", + // }, + { + field: "expectedStartTime", + title: "璁″垝寮�濮嬫椂闂�", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + { + field: "expectedFinishTime", + title: "璁″垝瀹屾垚鏃堕棿", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + { + field: "CreateTime", + title: "鍒涘缓鏃堕棿", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + { + field: "creator", + title: "鍒涘缓鑰�", + type: "string", + width: 100, + align: "left", + }, + { + field: "productDesc", + title: "浜у搧鎻忚堪", + type: "string", + width: 180, + align: "left", + }, + { + field: "FinishTime", + title: "瀹屾垚鏃堕棿", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + ], + detail: { + cnName: "宸ュ崟鏄庣粏", + table: "dt_mes_detail", + columns: [ + { + field: "mes_detail_id", + title: "宸ュ崟鏄庣粏ID", + type: "guid", + width: 110, + hidden: true, + readonly: true, + require: true, + align: "left", + }, + { + field: "jobID", + title: "宸ュ崟缂栧彿", + type: "string", + width: 110, + align: "left", + sort: true, + }, + { + field: "heatID", + title: "鐐変唬鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "billetID", + title: "閽㈠澂鍙�", + type: "int", + width: 110, + require: true, + align: "left", + }, + { + field: "SN", + title: "杞﹁疆SN鍙�", + type: "string", + width: 110, + align: "left", + }, + { + field: "heatBatchID", + title: "鐑鐞嗘壒娆�", + type: "string", + width: 110, + align: "left", + }, + // { + // field: "mes_headID", + // title: "宸ュ崟澶磋〃ID", + // type: "guid", + // width: 110, + // align: "left", + // }, + { + field: "Status", + title: "宸ュ崟鐘舵��", + type: "string", + width: 110, + align: "left", + }, + { + field: "FinishTime", + title: "瀹屾垚鏃堕棿", + type: "datetime", + width: 150, + align: "left", + sort: true, + }, + ], + sortName: "jobID", + key: "mes_detail_id", + }, + }; + }, +}; +export default vueParam; </script> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Core/BaseProvider/ServiceBase.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Core/BaseProvider/ServiceBase.cs" index 7dc6819..366f5e1 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Core/BaseProvider/ServiceBase.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Core/BaseProvider/ServiceBase.cs" @@ -155,7 +155,7 @@ /// </summary> /// <param name="pageData"></param> /// <param name="propertyInfo"></param> - private Dictionary<string, QueryOrderBy> GetPageDataSort(PageDataOptions pageData, PropertyInfo[] propertyInfo) + public Dictionary<string, QueryOrderBy> GetPageDataSort(PageDataOptions pageData, PropertyInfo[] propertyInfo) { if (base.OrderByExpression != null) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs" index e5fe082..d775c0c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs" @@ -13,7 +13,8 @@ namespace WIDESEA_Entity.DomainModels { - [Entity(TableCnName = "宸ュ崟璇︾粏淇℃伅", TableName = "dt_mes_detail")] + [Table("dt_mes_detail")] + [Entity(TableCnName = "宸ュ崟鏄庣粏", TableName = "dt_mes_detail")] public partial class dt_mes_detail : BaseEntity { /// <summary> @@ -31,7 +32,7 @@ [Display(Name = "mes_headID")] [Column(TypeName = "uniqueidentifier")] [Required(AllowEmptyStrings = false)] - public Guid mes_headID { get; set; } + public Guid mes_id { get; set; } /// <summary> ///宸ュ崟鍗曞彿 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs" index 2b8afdb..e3be37b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs" @@ -13,7 +13,8 @@ namespace WIDESEA_Entity.DomainModels { - [Entity(TableCnName = "宸ュ崟淇℃伅", TableName = "dt_mes_head")] + [Table("dt_mes_head")] + [Entity(TableCnName = "宸ュ崟淇℃伅", TableName = "dt_mes_head", DetailTable = new Type[] { typeof(dt_mes_detail) }, DetailTableCnName = "宸ュ崟鏄庣粏")] public partial class dt_mes_head : BaseEntity { @@ -141,13 +142,6 @@ [Editable(true)] public string typeID { get; set; } - /// <summary> - ///鎵撳寘鏁伴噺 - /// </summary> - [Display(Name = "鎵撳寘鏁伴噺")] - [Column(TypeName = "int")] - [Editable(true)] - public int? stackNoRange { get; set; } /// <summary> ///杞緞鍋忓樊 @@ -202,30 +196,6 @@ [Column(TypeName = "nvarchar(15)")] public string area { get; set; } - /// <summary> - ///瑙嗚妫�娴嬭澶�1 - /// </summary> - [Display(Name = "瑙嗚妫�娴嬭澶�1")] - [Column(TypeName = "bit")] - [Editable(true)] - public bool skip_op_1 { get; set; } - - /// <summary> - ///瑙嗚妫�娴嬭澶�2 - /// </summary> - [Display(Name = "瑙嗚妫�娴嬭澶�2")] - [Column(TypeName = "bit")] - [Editable(true)] - public bool skip_op_2 { get; set; } - - /// <summary> - ///閾炬潯鏈� - /// </summary> - [Display(Name = "閾炬潯鏈�")] - [Column(TypeName = "bit")] - - [Editable(true)] - public bool skip_op_3 { get; set; } /// <summary> ///AGV瀹屾垚鏁伴噺 diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" index d56fee2..1d71ab5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs" @@ -207,19 +207,10 @@ //client.WriteByOrder("W_i_sourceheat", "", name); client.WriteByOrder("W_i_batch_id", Mes_Work.heatBatchID, name); - //灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补) - if (name != "杈婇亾涓婃枡鏌ヨ璁㈠崟") - { - client.WriteByOrder("W_i_skip_op_SJ1", name == "3鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟" ? true : mes_Head.skip_op_1, name);//灞忚斀瑙嗚妫�娴嬭澶�1 - client.WriteByOrder("W_i_skip_op_SJ2", name == "3鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟" ? true : mes_Head.skip_op_2, name);//灞忚斀瑙嗚妫�娴嬭澶�2 - client.WriteByOrder("W_i_skip_op_LT", mes_Head.skip_op_3, name);//灞忚斀閾炬潯鏈� - } client.WriteByOrder("R_oi_on", (byte)0, name); #region 鏃ュ織璁板綍 WriteLog.Write_Log(name, wp_id, "鍐欏叆淇℃伅锛�", $"璇诲彇妗佹灦淇℃伅锛歕n杞﹁疆SN锛歿wp_id}\n杞瀷ID锛歿wp_type}\n\n鍐欏叆妗佹灦淇℃伅锛歕nW_i_status锛�1" + - $"\nW_i_job_id锛歿Mes_Work.jobID}\nW_i_drawing_id锛歿Mes_Work.drawingNo}\nW_i_heat_id锛歿Mes_Work.heatID}\nW_i_batch_id锛歿Mes_Work.heatBatchID}" + - $"\nW_i_skip_op_SJ1锛歿(name == "3鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟" ? true : mes_Head.skip_op_1)}\nW_i_skip_op_SJ2锛歿(name == "3鍗曞厓杈婇亾涓嬫枡鏌ヨ璁㈠崟" ? true : mes_Head.skip_op_2)}" + - $"\nW_i_skip_op_LT锛歿mes_Head.skip_op_3}\nR_oi_on锛�0"); + $"\nW_i_job_id锛歿Mes_Work.jobID}\nW_i_drawing_id锛歿Mes_Work.drawingNo}\nW_i_heat_id锛歿Mes_Work.heatID}\nW_i_batch_id锛歿Mes_Work.heatBatchID}"); #endregion } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/AutoUpdateWork.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/AutoUpdateWork.cs" index 9854254..9c6a951 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/AutoUpdateWork.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/AutoUpdateWork.cs" @@ -148,7 +148,7 @@ heatID = mes_Detail.heatID, jobID = mes_Detail.jobID, mes_detail_id = mes_Detail.mes_detail_id, - mes_headID = mes_Detail.mes_headID, + mes_headID = mes_Detail.mes_id, operatetype = string.IsNullOrEmpty(mes_Detail.Status) ? "瓒呮椂娓呯悊" : operatetype, SN = mes_Detail.SN, Status = mes_Detail.Status, @@ -178,10 +178,6 @@ operatetype = operatetype, processCode = mes_Head.processCode, mes_id = mes_Head.mes_id, - skip_op_1 = mes_Head.skip_op_1, - skip_op_2 = mes_Head.skip_op_2, - skip_op_3 = mes_Head.skip_op_3, - stackNoRange = mes_Head.stackNoRange, productDesc = mes_Head.productDesc, productName = mes_Head.productName, reqID = mes_Head.reqID, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs" index 95767ad..8d636c7 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs" @@ -22,11 +22,14 @@ using WIDESEA_Core.ManageUser; using WIDESEA_Comm.LogInfo; using System.Collections.Generic; +using WIDESEA_Core.Enums; +using WIDESEA_WCS.Repositories; namespace WIDESEA_WCS.Services { public partial class dt_mes_headService { + WebResponseContent webResponse = new WebResponseContent(); private readonly IHttpContextAccessor _httpContextAccessor; private readonly Idt_mes_headRepository _repository;//璁块棶鏁版嵁搴� @@ -42,6 +45,24 @@ //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢� //base.Init(dbRepository); } + public override object GetDetailPage(PageDataOptions pageData) + { + pageData.Sort = pageData.Sort ?? typeof(dt_mes_detail).GetKeyName(); + Dictionary<string, QueryOrderBy> orderBy = GetPageDataSort(pageData, typeof(dt_mes_detail).GetProperties()); + ////鏄庣粏琛ㄨ嚜瀹氫箟鏌ヨ鏂瑰紡涓�锛欵F + var query = dt_mes_detailRepository.Instance.IQueryablePage<dt_mes_detail>( + pageData.Page, + pageData.Rows, + out int count, + x => x.mes_id == pageData.Value.GetGuid(), + orderBy: x => new Dictionary<object, QueryOrderBy>() { { x.heatID, QueryOrderBy.Desc } } + ); + PageGridData<dt_mes_detail> detailGrid = new PageGridData<dt_mes_detail>(); + detailGrid.rows = query.GetIQueryableOrderBy(orderBy).ToList(); + detailGrid.total = count; + + return detailGrid; + } /// <summary> /// 鍙栨秷宸ュ崟鍑哄簱澶栧崗 /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs" index 81c8f3a..2eabf1a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs" @@ -87,15 +87,11 @@ quantity = workInfo.quantity, reqID = workInfo.reqID, reqIDLineNo = workInfo.reqIDLineNo, - stackNoRange = 5, //stackNoRange = workInfo.stackNoRange, typeID = workInfo.typeID, workOrder = workInfo.workOrder, processCode = workInfo.processCode, finishNum = 0, - skip_op_1 = false, - skip_op_2 = false, - skip_op_3 = false, }; freeDB.Add(mes_Head); @@ -104,7 +100,7 @@ dt_mes_detail mes_Detail = new dt_mes_detail { mes_detail_id = Guid.NewGuid(), - mes_headID = head, + mes_id = head, jobID = item.jobID, billetID = item.billetID, heatBatchID = item.heatBatchID, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\344\277\241\346\201\25720240719174950.xlsx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\344\277\241\346\201\25720240719174950.xlsx" new file mode 100644 index 0000000..4eda48c --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\344\277\241\346\201\25720240719174950.xlsx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\346\230\216\347\273\20620240719175850.xlsx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\346\230\216\347\273\20620240719175850.xlsx" new file mode 100644 index 0000000..c120dc3 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Download/ExcelExport/20240719/\345\267\245\345\215\225\346\230\216\347\273\20620240719175850.xlsx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json" index c26c087..cc7ea3b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json" @@ -16,8 +16,8 @@ "Connection": { "DBType": "MsSql", //MySql/MsSql/PgSql //鏁版嵁搴撶被鍨嬶紝濡傛灉浣跨敤鐨勬槸sqlserver姝ゅ搴旇缃负MsSql //sqlserver杩炴帴瀛楃涓睵@ssw0rd - "DbConnectionString": "Data Source=192.168.12.101;Initial Catalog=WIDESEA_DB;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;", - //"DbConnectionString": "Data Source=.;Initial Catalog=WIDESEA_DB_TY_TY;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;", + //"DbConnectionString": "Data Source=192.168.12.101;Initial Catalog=WIDESEA_DB;Persist Security Info=True;User ID=sa;Password=123456;Connect Timeout=500;", + "DbConnectionString": "Data Source=.;Initial Catalog=WIDESEA_DB_TY_TY;Persist Security Info=True;User ID=sa;Password=P@ssw0rd;Connect Timeout=500;", //mysql杩炴帴瀛楃涓�(鍗囩骇EFCore3.1鍒版椂宸插皢mysql杩炴帴瀛楃涓蹭慨鏀�,2019-12-20) // "DbConnectionString": " Data Source=127.0.0.1;Database=netcoredev;AllowLoadLocalInfile=true;User ID=root;Password=123456;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;", -- Gitblit v1.9.3