From 00ad010a45f2f58807eb0f4f70e2dcf66ef35085 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期四, 20 六月 2024 12:26:29 +0800 Subject: [PATCH] 车轮信息追溯 --- 代码管理/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs | 2 代码管理/PCS/WCS_Client/src/api/http.js | 2 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK4Job.cs | 7 代码管理/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_info_trace.vue | 89 ++++++++ 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/equipment/Wheel_info_trace.cs | 256 +++++++++++++++++++++++++ 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK5Job.cs | 7 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_info_trace.js | 75 +++++++ 代码管理/PCS/WCS_Client/src/router/viewGird.js | 6 代码管理/PCS/WCS_Server/WIDESEA_Comm/PLCDBItem/Wheel_trace.cs | 102 ++++++++++ 9 files changed, 543 insertions(+), 3 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js" index f6b7a14..a3bcc6a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/api/http.js" @@ -12,7 +12,7 @@ let loadingInstance; let loadingStatus = false; if (process.env.NODE_ENV == 'development') { - axios.defaults.baseURL = 'http://192.168.12.101:8099/'; + axios.defaults.baseURL = 'http://192.168.12.118:8099/'; } else if (process.env.NODE_ENV == 'debug') { axios.defaults.baseURL = 'http://192.168.12.101:8099/'; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_info_trace.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_info_trace.js" new file mode 100644 index 0000000..8935403 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_info_trace.js" @@ -0,0 +1,75 @@ +/***************************************************************************************** +** Author:jxx 2022 +** QQ:283591387 +**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆� +**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev +**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev +*****************************************************************************************/ +//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜 + +let extension = { + components: { + //鏌ヨ鐣岄潰鎵╁睍缁勪欢 + gridHeader: '', + gridBody: '', + gridFooter: '', + //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢 + modelHeader: '', + modelBody: '', + modelFooter: '' + }, + tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓) + buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽� + methods: { + //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄� + onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛� + //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽� + // this.buttons.unshift({ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍 + // name: '鎸夐挳', //鎸夐挳鍚嶇О + // icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。) + // type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button + // onClick: function () { + // this.$Message.success('鐐瑰嚮浜嗘寜閽�'); + // } + // }); + + //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴� + // this.boxOptions.labelWidth = 150; + }, + onInited() { + //妗嗘灦鍒濆鍖栭厤缃悗 + //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔 + //this.detailOptions.columns.forEach(column=>{ }); + }, + searchBefore(param) { + //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟 + //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ + return true; + }, + searchAfter(result) { + //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊� + return true; + }, + addBefore(formData) { + //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫�� + return true; + }, + updateBefore(formData) { + //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d + return true; + }, + rowClick({ row, column, event }) { + //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠� + // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�; + }, + modelOpenAfter(row) { + //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁 + //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add'; + //(2)缁欏脊鍑烘璁剧疆榛樿鍊� + //(3)this.editFormFields.瀛楁='xxx'; + //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊� + //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions) + } + } +}; +export default extension; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js" index 6cbf1d0..9d3747c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/router/viewGird.js" @@ -225,6 +225,10 @@ path: '/VV_Workinfo_hty', name: 'VV_Workinfo_hty', component: () => import('@/views/widesea_wcs/tomes/VV_Workinfo_hty.vue') - }] + } ,{ + path: '/dt_info_trace', + name: 'dt_info_trace', + component: () => import('@/views/widesea_wcs/wcs/dt_info_trace.vue') + }] export default viewgird diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_info_trace.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_info_trace.vue" new file mode 100644 index 0000000..5b3cb82 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_info_trace.vue" @@ -0,0 +1,89 @@ +<!-- +*Author锛歫xx + *Contact锛�283591387@qq.com + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *涓氬姟璇峰湪@/extension/widesea_wcs/wcs/dt_info_trace.js姝ゅ缂栧啓 + --> +<template> + <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/wcs/dt_info_trace.js"; + import { ref, defineComponent } from "vue"; + export default defineComponent({ + setup() { + const table = ref({ + key: 'trace_id', + footer: "Foots", + cnName: '杞﹁疆淇℃伅杩芥函', + name: 'wcs/dt_info_trace', + url: "/dt_info_trace/", + sortName: "trace_online_time" + }); + const editFormFields = ref({}); + const editFormOptions = ref([]); + const searchFormFields = ref({"trace_SN":"","trace_status":"","trace_workOrder":"","trace_drawingNo":"","trace_heatID":"","trace_billetID":"","trace_line_number":"","trace_mach_number":"","trace_mach_statu":"","trace_process":"","trace_operator":"","trace_tcvm_number":""}); + const searchFormOptions = ref([[{"title":"杞﹁疆SN鍙�","field":"trace_SN","type":"like"},{"title":"宸ヤ綔浠ゅ彿","field":"trace_workOrder","type":"like"},{"title":"浜у搧鍥惧彿","field":"trace_drawingNo","type":"like"}],[{"dataKey":"trace_status","data":[],"title":"鐘舵��","field":"trace_status","type":"select"},{"title":"鐐変唬鍙�","field":"trace_heatID","type":"like"},{"title":"閽㈠澂鍙�","field":"trace_billetID","type":"like"}],[{"title":"鐢熶骇绾跨紪鍙�","field":"trace_line_number","type":"like"},{"title":"鏈哄簥缂栧彿","field":"trace_mach_number","type":"like"},{"title":"瑙嗚妫�娴嬬紪鍙�","field":"trace_tcvm_number","type":"like"}],[{"title":"鍔犲伐璐ㄩ噺鐘舵��","field":"trace_mach_statu","type":"like"},{"title":"瀹屾垚鎯呭喌","field":"trace_process","type":"like"},{"title":"鎿嶄綔浜哄憳","field":"trace_operator","type":"like"}]]); + const columns = ref([{field:'ID',title:'ID',type:'int',width:80,hidden:true,readonly:true,require:true,align:'left'}, + {field:'trace_id',title:'涓婚敭',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'}, + {field:'trace_SN',title:'杞﹁疆SN鍙�',type:'string',width:110,require:true,align:'left',sort:true}, + {field:'trace_status',title:'鐘舵��',type:'string',bind:{ key:'trace_status',data:[]},width:80,align:'left'}, + {field:'trace_workOrder',title:'宸ヤ綔浠ゅ彿',type:'string',width:120,align:'left'}, + {field:'trace_productName',title:'浜у搧鍚嶇О',type:'string',width:80,align:'left'}, + {field:'trace_drawingNo',title:'浜у搧鍥惧彿',type:'string',width:80,align:'left'}, + {field:'trace_heatBatchID',title:'鐔旂偧鐐夊彿',type:'string',width:100,align:'left'}, + {field:'trace_heatID',title:'鐐変唬鍙�',type:'string',width:60,align:'left'}, + {field:'trace_billetID',title:'閽㈠澂鍙�',type:'string',width:60,align:'left'}, + {field:'trace_line_number',title:'鐢熶骇绾跨紪鍙�',type:'string',width:100,align:'left'}, + {field:'trace_online_time',title:'涓婄嚎鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, + {field:'trace_mach_number',title:'鏈哄簥缂栧彿',type:'string',sort:true,width:110,align:'left'}, + {field:'trace_mach_start_time',title:'鍔犲伐寮�濮嬫椂闂�',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_mach_finish_time',title:'鍔犲伐瀹屾垚鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_mach_statu',title:'鍔犲伐璐ㄩ噺鐘舵��',type:'int',width:80,align:'left'}, + {field:'trace_process',title:'瀹屾垚鎯呭喌',type:'int',width:80,align:'left'}, + {field:'trace_operator',title:'鎿嶄綔浜哄憳',type:'string',width:110,align:'left'}, + {field:'trace_shift',title:'鐝粍',type:'string',width:110,align:'left'}, + {field:'trace_manufacturer',title:'閽㈤敪鍘傚',type:'string',width:120,align:'left'}, + {field:'trace_offline_time',title:'涓嬬嚎鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_tcvm_number',title:'瑙嗚妫�娴嬬紪鍙�',type:'string',width:110,align:'left'}, + {field:'trace_tcvm_start_time',title:'瑙嗚妫�娴嬪紑濮嬫椂闂�',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_tcvm_finish_time',title:'瑙嗚妫�娴嬪畬鎴愭椂闂�',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_tcvm_statu',title:'妫�娴嬭川閲忕姸鎬�',type:'int',width:80,align:'left'}, + {field:'trace_liquoring_time',title:'鍠烽槻閿堟恫鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, + {field:'trace_bait_number',title:'涓嬫枡浣嶇紪鍙�',type:'string',width:110,align:'left'}, + {field:'trace_baiting_time',title:'涓嬫枡鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_direction',title:'鍘诲悜(寰呮搴�,澶栧崗搴�)',type:'string',width:110,align:'left'}, + {field:'trace_in_time',title:'鍏ュ簱鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_load_number',title:'涓婃枡浣嶇紪鍙�',type:'string',width:110,align:'left'}, + {field:'trace_loading_time',title:'涓婃枡鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true}, + {field:'trace_defect',title:'缂洪櫡鎻忚堪',type:'string',width:110,align:'left'}, + {field:'trace_remark',title:'澶囨敞锛氭敞鎰忎簨椤�',type:'string',width:110,align:'left'}]); + const detail = ref({ + cnName: "#detailCnName", + table: "#detailTable", + columns: [], + sortName: "", + key: "" + }); + return { + table, + extend, + editFormFields, + editFormOptions, + searchFormFields, + searchFormOptions, + columns, + detail, + }; + }, + }); +</script> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/PLCDBItem/Wheel_trace.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/PLCDBItem/Wheel_trace.cs" new file mode 100644 index 0000000..c46a571 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/PLCDBItem/Wheel_trace.cs" @@ -0,0 +1,102 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WIDESEA_Comm +{ + public class Wheel_trace + { + /// <summary> + /// 杞﹁疆涓婄嚎锛圖B610锛� + /// </summary> + public class Wheel_online + { + /// <summary> + /// 鍚嶇О + /// </summary> + public string Name { get; set; } + /// <summary> + /// 杞﹁疆SN鍙� + /// </summary> + public string o_wp_id { get; set; } + /// <summary> + /// 涓婄嚎鏃堕棿 + /// </summary> + public string o_online_time { get; set; } + /// <summary> + /// 鐢宠 + /// </summary> + public byte oi_on { get; set; } + } + /// <summary> + /// 杞﹁疆鍔犲伐锛圖B611锛� + /// </summary> + public class Wheel_Machine + { + /// <summary> + /// 鍚嶇О + /// </summary> + public string Name { get; set; } + /// <summary> + /// 杞﹁疆SN鍙� + /// </summary> + public string o_wp_id { get; set; } + /// <summary> + /// 鍔犲伐寮�濮嬫椂闂� + /// </summary> + public string o_mach_start_time { get; set; } + /// <summary> + /// 鍔犲伐瀹屾垚鏃堕棿 + /// </summary> + public string o_mach_finish_time { get; set; } + /// <summary> + /// 鎿嶄綔浜� + /// </summary> + public string o_operator { get; set; } + /// <summary> + /// 鐝粍 + /// </summary> + public string o_shift { get; set; } + /// <summary> + /// 鍔犲伐璐ㄩ噺鐘舵�� + /// </summary> + public Int16 o_wp_status { get; set; } + /// <summary> + /// 瀹屾垚鎯呭喌 + /// </summary> + public Int16 o_wp_process { get; set; } + /// <summary> + /// 鐢宠 + /// </summary> + public byte oi_on { get; set; } + } + /// <summary> + /// 杞﹁疆涓嬬嚎锛圖B612锛� + /// </summary> + public class Wheel_offline + { + /// <summary> + /// 鍚嶇О + /// </summary> + public string Name { get; set; } + /// <summary> + /// 杞﹁疆SN鍙� + /// </summary> + public string o_wp_id { get; set; } + /// <summary> + /// 涓嬬嚎鏃堕棿 + /// </summary> + public string o_offline_time { get; set; } + /// <summary> + /// 鍘诲悜 + /// </summary> + public byte o_direction { get; set; } + /// <summary> + /// 鐢宠 + /// </summary> + public byte oi_on { get; set; } + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/equipment/Wheel_info_trace.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/equipment/Wheel_info_trace.cs" new file mode 100644 index 0000000..b9cc677 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/equipment/Wheel_info_trace.cs" @@ -0,0 +1,256 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Comm; +using WIDESEA_Core.EFDbContext; +using WIDESEA_Entity.DomainModels; +using WIDESEA_WCS.IRepositories; +using WIDESEA_WCS.Repositories; +using WIDESEA_WCS.WCSClient; +using WIDESEA_WMS.IRepositories; +using WIDESEA_WMS.Repositories; +using static WIDESEA_Comm.Wheel_trace; + +namespace WIDESEA_WCS +{ + public class Wheel_info_trace + { + /// <summary> + /// 鏌ヨ杞﹁疆涓婄嚎 + /// </summary> + /// <param name="client"></param> + public static void Wheel_online(PLCClient client) + { + VOLContext context = new VOLContext(); + Idt_info_traceRepository traceRepository = new dt_info_traceRepository(context); + IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); + PropertyInfo[] propertyInfos = typeof(Wheel_online).GetProperties(); + var groups = client.itemGroups.Where(x => x.opratortype == "trace_online").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList(); + foreach (var key in groups) + { + try + { + Wheel_online StackerDBItem = new Wheel_online(); + foreach (var propertyInfo in propertyInfos) + { + if (propertyInfo.Name == "Name") + { + StackerDBItem.Name = key.Key; + } + else + { + DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name); + if (group != null) + { + var readData = DBExtension.Read(group, client); + switch (propertyInfo.Name) + { + case "oi_on": + StackerDBItem.oi_on = Convert.ToByte(readData); + break; + case "o_wp_id": + StackerDBItem.o_wp_id = Convert.ToString(readData); + break; + case "o_online_time": + StackerDBItem.o_online_time = readData.ToString(); + break; + } + } + } + } + #region 鏇挎崲鑰丳CS鏃朵娇鐢� + if (/*StackerDBItem.oi_on == 1*/true) + { + if (string.IsNullOrEmpty(StackerDBItem.o_wp_id)) throw new Exception($"{StackerDBItem.Name}锛歋N鍙蜂负绌�"); + if (string.IsNullOrEmpty(StackerDBItem.o_online_time)) throw new Exception($"{StackerDBItem.Name}锛氫笂绾挎椂闂翠负绌�"); + var info = traceRepository.Find(x => x.trace_SN == StackerDBItem.o_wp_id).FirstOrDefault(); + if (info != null) throw new Exception(); + info = new dt_info_trace(); + info.trace_SN = StackerDBItem.o_wp_id; + var time = DateTime.ParseExact(StackerDBItem.o_online_time, "yyyyMMddHHmmss", CultureInfo.CurrentCulture); + //var time1 = DateTime.ParseExact(StackerDBItem.o_online_time, "yyyyMMddHHmmss", new CultureInfo("zh-CN", true)); + info.trace_status = "寰呭姞宸�"; + info.trace_online_time = time; + info.trace_line_number = StackerDBItem.Name; + var Work = workinfoRepository.Find(x => x.SN == info.trace_SN && x.processCode == "17").FirstOrDefault(); + if (Work != null) + { + info.trace_workOrder = Work.workOrder; + info.trace_productName = Work.productName; + info.trace_drawingNo = Work.drawingNo; + info.trace_heatBatchID = Work.heatBatchID; + info.trace_heatID = Work.heatID; + info.trace_billetID = Work.billetID.ToString(); + } + traceRepository.Add(info, true); + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + #endregion + } + catch (Exception ex) + { + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + } + } + /// <summary> + /// 鏌ヨ杞﹁疆鍔犲伐 + /// </summary> + /// <param name="client"></param> + public static void Wheel_machine(PLCClient client) + { + VOLContext context = new VOLContext(); + Idt_info_traceRepository traceRepository = new dt_info_traceRepository(context); + PropertyInfo[] propertyInfos = typeof(Wheel_Machine).GetProperties(); + var groups = client.itemGroups.Where(x => x.opratortype == "trace_Machine").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList(); + foreach (var key in groups) + { + try + { + Wheel_Machine StackerDBItem = new Wheel_Machine(); + foreach (var propertyInfo in propertyInfos) + { + if (propertyInfo.Name == "Name") + { + StackerDBItem.Name = key.Key; + } + else + { + DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name); + if (group != null) + { + var readData = DBExtension.Read(group, client); + switch (propertyInfo.Name) + { + case "oi_on": + StackerDBItem.oi_on = Convert.ToByte(readData); + break; + case "o_wp_id": + StackerDBItem.o_wp_id = Convert.ToString(readData); + break; + case "o_mach_start_time": + StackerDBItem.o_mach_start_time = readData.ToString(); + break; + case "o_mach_finish_time": + StackerDBItem.o_mach_finish_time = readData.ToString(); + break; + case "o_operator": + StackerDBItem.o_operator = readData.ToString(); + break; + case "o_shift": + StackerDBItem.o_shift = readData.ToString(); + break; + case "o_wp_status": + StackerDBItem.o_wp_status = Convert.ToInt16(readData); + break; + case "o_wp_process": + StackerDBItem.o_wp_process = Convert.ToInt16(readData); + break; + } + } + } + } + #region 鏇挎崲鑰丳CS鏃朵娇鐢� + if (/*StackerDBItem.oi_on == 1*/true) + { + if (string.IsNullOrEmpty(StackerDBItem.o_wp_id)) throw new Exception($"{StackerDBItem.Name}锛歋N鍙蜂负绌�"); + var info = traceRepository.Find(x => x.trace_SN == StackerDBItem.o_wp_id).FirstOrDefault(); + if (info != null) + { + if (!string.IsNullOrEmpty(StackerDBItem.o_mach_start_time)) + info.trace_mach_start_time = DateTime.ParseExact(StackerDBItem.o_mach_start_time, "yyyyMMddHHmmss", CultureInfo.CurrentCulture); + if (!string.IsNullOrEmpty(StackerDBItem.o_mach_finish_time)) + info.trace_mach_finish_time = DateTime.ParseExact(StackerDBItem.o_mach_finish_time, "yyyyMMddHHmmss", CultureInfo.CurrentCulture); + if (!string.IsNullOrEmpty(StackerDBItem.o_operator)) info.trace_operator = StackerDBItem.o_operator; + if (!string.IsNullOrEmpty(StackerDBItem.o_shift)) info.trace_shift = info.trace_shift; + info.trace_mach_statu = StackerDBItem.o_wp_status; + info.trace_process = StackerDBItem.o_wp_process; + info.trace_mach_number = StackerDBItem.Name; + traceRepository.Update(info, x => new { x.trace_mach_start_time, x.trace_mach_finish_time, x.trace_operator, x.trace_shift, x.trace_mach_statu, x.trace_process, x.trace_mach_number }, true); + } + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + #endregion + } + catch (Exception ex) + { + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + } + } + /// <summary> + /// 鏌ヨ杞﹁疆涓嬬嚎 + /// </summary> + /// <param name="client"></param> + public static void Wheel_offline(PLCClient client) + { + VOLContext context = new VOLContext(); + Idt_info_traceRepository traceRepository = new dt_info_traceRepository(context); + PropertyInfo[] propertyInfos = typeof(Wheel_offline).GetProperties(); + var groups = client.itemGroups.Where(x => x.opratortype == "trace_offline").OrderBy(x => x.Methods).ThenBy(x => x.name).GroupBy(x => x.Methods).ToList(); + foreach (var key in groups) + { + try + { + Wheel_offline StackerDBItem = new Wheel_offline(); + foreach (var propertyInfo in propertyInfos) + { + if (propertyInfo.Name == "Name") + { + StackerDBItem.Name = key.Key; + } + else + { + DBItemGroup group = key.FirstOrDefault(x => x.name == propertyInfo.Name); + if (group != null) + { + var readData = DBExtension.Read(group, client); + switch (propertyInfo.Name) + { + case "oi_on": + StackerDBItem.oi_on = Convert.ToByte(readData); + break; + case "o_wp_id": + StackerDBItem.o_wp_id = Convert.ToString(readData); + break; + case "o_offline_time": + StackerDBItem.o_offline_time = readData.ToString(); + break; + case "o_direction": + StackerDBItem.o_direction = Convert.ToByte(readData); + break; + } + } + } + } + #region 鏇挎崲鑰丳CS鏃朵娇鐢� + if (/*StackerDBItem.oi_on == 1*/true) + { + if (string.IsNullOrEmpty(StackerDBItem.o_wp_id)) throw new Exception($"{StackerDBItem.Name}锛歋N鍙蜂负绌�"); + var info = traceRepository.Find(x => x.trace_SN == StackerDBItem.o_wp_id).FirstOrDefault(); + if (info != null) + { + if (!string.IsNullOrEmpty(StackerDBItem.o_offline_time)) + info.trace_offline_time = DateTime.ParseExact(StackerDBItem.o_offline_time, "yyyyMMddHHmmss", CultureInfo.CurrentCulture); + info.trace_direction = StackerDBItem.o_direction.ToString(); + //info.trace_line_number = info.trace_line_number + StackerDBItem.Name; + traceRepository.Update(info, x => new { x.trace_offline_time, x.trace_direction }, true); + } + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + #endregion + } + catch (Exception ex) + { + //client.Write(key.FirstOrDefault(x => x.name == "oi_on").dbAddress, (byte)0);//淇″彿澶嶄綅 + } + } + } + + + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK4Job.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK4Job.cs" index d5b1976..c96c3c0 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK4Job.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK4Job.cs" @@ -39,10 +39,17 @@ client.Connect(); return; } + #region MyRegion + Wheel_info_trace.Wheel_online(client); + Wheel_info_trace.Wheel_machine(client); + Wheel_info_trace.Wheel_offline(client); + #endregion + #region 淇℃伅閲囬泦 WheelDBItem.VK4WheelDBItem = GetDate.GetWheelDate(client); VKDBItem.VK4DBItem = GetDate.GetVKDate(client); GantryDBItem.VK4GantryDBItem = GetDate.GetGantryDate(client); MachineDBItem.VK4MachineDBItem = GetDate.GetMachineDate(client); + #endregion } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK5Job.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK5Job.cs" index bca36fe..a265a27 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK5Job.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/VK5Job.cs" @@ -35,10 +35,17 @@ client.Connect(); return; } + #region MyRegion + Wheel_info_trace.Wheel_online(client); + Wheel_info_trace.Wheel_machine(client); + Wheel_info_trace.Wheel_offline(client); + #endregion + #region 淇℃伅閲囬泦 WheelDBItem.VK5WheelDBItem = GetDate.GetWheelDate(client); VKDBItem.VK5DBItem = GetDate.GetVKDate(client); GantryDBItem.VK5GantryDBItem = GetDate.GetGantryDate(client); MachineDBItem.VK5MachineDBItem = GetDate.GetMachineDate(client); + #endregion } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs" index 51ab901..7e42f5b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs" @@ -139,7 +139,7 @@ //string str = DataParse.GetStr(bytes, 0); //return (DataType)(str as object); var str = GetContent(siemensPLCClient.ReadString(dbAddress, (ushort)len), dbAddress).ToString(); - str = str.Replace("\0", "")?.Replace("\\", "")?.Replace("\u0014", "")?.Replace("?\u0006", "")?.Replace("\n", "")?.Replace("?", "")?.Trim(); + str = str.Replace("\0", "")?.Replace("\\", "")?.Replace("\u0014", "")?.Replace("?\u0006", "")?.Replace("\u000e\u000e", "")?.Replace("\n", "")?.Replace("?", "")?.Trim(); return (DataType)(str as object); } else -- Gitblit v1.9.3