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