From 538f1f0db8d02103d040b96a489b1a5803750a11 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期五, 23 二月 2024 11:02:57 +0800 Subject: [PATCH] 项目优化 --- 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs | 111 ---- 项目资料/通信协议/WMS和MES接口/5f5bd6b6d22369969ae3b3688408dbc.png | 0 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs | 67 ++ 项目资料/通信协议/新增设备协议/太重交互-库口状态_V1.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs | 127 +++-- 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs | 139 +++- 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/PCS与AGV和桁架防呆协议.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/VV_DispatchService.cs | 2 项目资料/其他/现场IP分配.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/dt_pattern.cs | 58 ++ 代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs | 231 ++++---- 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_patternController.cs | 54 ++ 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs | 208 ++++---- 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs | 4 代码管理/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue | 22 代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs | 4 代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Idt_patternService.cs | 12 项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/PCS和桁架协议.xlsx | 0 代码管理/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs | 13 代码管理/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs | 6 代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs | 8 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/partial/dt_pattern.cs | 21 代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Partial/Idt_patternService.cs | 15 代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/dt_patternService.cs | 27 + 代码管理/PCS/WCS_Server/WIDESEA_WCS/Repositories/WCS/dt_patternRepository.cs | 24 + 项目资料/通信协议/WMS和MES接口/WMS系统接口.docx | 0 /dev/null | 0 代码管理/PCS/WCS_Server/WIDESEA_WCS/WCSClient/Siemens/SiemensPLCClient.cs | 7 项目资料/通信协议/WMS和MES接口/c40a9fff20facac273c88e13593a7c1.png | 0 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs | 1 代码管理/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/1/dt_patternMapConfig.cs | 16 代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/WCS/dt_plcinfohead.cs | 9 项目资料/通信协议/WMS和AGV接口/WMS和AGV接口协议.xlsx | 0 代码管理/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_pattern.js | 137 +++++ 代码管理/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_pattern.vue | 59 ++ 代码管理/PCS/WCS_Server/WIDESEA_WCS/IRepositories/WCS/Idt_patternRepository.cs | 18 代码管理/PCS/WCS_Client/src/router/viewGird.js | 4 代码管理/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs | 1 代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs | 1 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_patternController.cs | 21 40 files changed, 958 insertions(+), 469 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_pattern.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_pattern.js" new file mode 100644 index 0000000..6c8718b --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/extension/widesea_wcs/wcs/dt_pattern.js" @@ -0,0 +1,137 @@ +/***************************************************************************************** +** 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; + this.columns.push({ + field: '鎿嶄綔', + title: '鎿嶄綔', + width: 150, + fixed: 'right', + align: 'center', + render: (h, { row, column, index }) => { + return h('div', {}, [ + h( + 'span', + { + style: { + 'cursor': 'pointer', + 'padding': '5px 10px', + 'border-radius': '3px', + 'background-color': '#67c23a', + 'color': '#fff', + 'font-size': '13px ', + }, + onClick: (e) => { + this.request('UpdateAuto', row); + // this.request(row); + } + }, + '鑷姩' + ), + h( + 'span', + { + style: { + 'cursor': 'pointer', + 'margin-left': "10px", + 'padding': '5px 10px', + 'border-radius': '3px', + 'background-color': '#f56c6c', + 'color': '#fff', + 'font-size': '13px ', + }, + onClick: (e) => { + this.request('UpdateManual', row); + // this.request(row); + } + }, + '鎵嬪姩' + ) + ]); + } + }); + }, + request(action,row) { + // let url = `api/VV_Dispatch/${action}`; + let url = `/api/dt_pattern/${action}`; + // let params = { + // Name: row.Name, + // Enable:row.Enable + // } + this.http.post(url , row, true).then((x) => { + if (!x.status) return this.$error(x.message); + this.$success(x.message); + // this.refresh(); + this.search(); + }); + }, + 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 b3b11ea..f03fb96 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" @@ -189,6 +189,10 @@ path: '/dt_Interfacerecord_pcs', name: 'dt_Interfacerecord_pcs', component: () => import('@/views/widesea_wcs/system/dt_Interfacerecord_pcs.vue') + } ,{ + path: '/dt_pattern', + name: 'dt_pattern', + component: () => import('@/views/widesea_wcs/wcs/dt_pattern.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_pattern.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_pattern.vue" new file mode 100644 index 0000000..f2c9261 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Client/src/views/widesea_wcs/wcs/dt_pattern.vue" @@ -0,0 +1,59 @@ +<!-- +*Author锛歫xx + *Contact锛�283591387@qq.com + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *涓氬姟璇峰湪@/extension/widesea_wcs/wcs/dt_pattern.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_pattern.js"; + import { ref, defineComponent } from "vue"; + export default defineComponent({ + setup() { + const table = ref({ + key: 'ID', + footer: "Foots", + cnName: '鍏ュ簱妯″紡', + name: 'wcs/dt_pattern', + url: "/dt_pattern/", + sortName: "ID" + }); + const editFormFields = ref({}); + const editFormOptions = ref([]); + const searchFormFields = ref({}); + const searchFormOptions = ref([]); + const columns = ref([{field:'ID',title:'ID',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'}, + {field:'pattern_name',title:'妯″紡鍚�',type:'string',width:220,align:'left',sort:true}, + {field:'pattern_state',title:'妯″紡鐘舵��',type:'int',bind:{ key:'PatternStates',data:[]},width:110,require:true,align:'left'}, + {field:'pattern_remark',title:'pattern_remark',type:'string',width:220,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/DBItem/MachineDB.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs" deleted file mode 100644 index 715a35f..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/MachineDB.cs" +++ /dev/null @@ -1,82 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using WIDESEA_Comm.ItemDB; - -namespace WIDESEA_Comm.DBItem -{ - public partial class MachineDB - { - public event Action<string, MachineDB> OnReadSignal; - - public string R_Name { get; set; } - /// <summary> - /// SN - /// </summary> - public string R_o_wp_id { get; set; } - /// <summary> - /// 寮�濮嬫椂闂� - /// </summary> - public DateTime R_o_mach_start_time { get; set; } - /// <summary> - /// 瀹屾垚鏃堕棿 - /// </summary> - public DateTime R_o_mach_finish_time { get; set; } - /// <summary> - /// 鎿嶄綔浜� - /// </summary> - public string R_o_operator { get; set; } - /// <summary> - /// 鍘诲悜 - /// </summary> - public string R_o_shift { get; set; } - /// <summary> - /// 璐ㄦ鐘舵�� 0:鏈畾涔�,1:OK,2:NG - /// </summary> - public short R_o_wp_status { get; set; } - /// <summary> - /// 缁撴灉 - /// </summary> - public short R_o_result { get; set; } - /// <summary> - /// 閿欒浠g爜 - /// </summary> - public short R_o_error_code { get; set; } - - public short R_o_substation { get; set; } - - public string R_o_value_result_real_1 { get; set; } - public string R_o_value_result_real_2 { get; set; } - public string R_o_value_result_real_3 { get; set; } - public string R_o_value_result_real_4 { get; set; } - public bool R_o_value_result_bool { get; set; } - public short oi_on { get; set; } - public short R_oi_on - { - get - { - return oi_on; - } - set - { - if (value == 1 && R_Name.Contains("瑙嗚妫�娴�")) - ReadSignal(OperationType.OperationType_Record, this); - else if (value == 1 && R_Name.Contains("閾炬潯鏈�")) - ReadSignal(OperationType.OperationType_Processor, this); - oi_on = value; - - - } - } - - public void ReadSignal(string type, MachineDB reader) - { - Task.Run(() => - { - OnReadSignal?.Invoke(type, reader); - }); - } - } -} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs" deleted file mode 100644 index 189cd78..0000000 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/DBItem/WheelDataDB.cs" +++ /dev/null @@ -1,37 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace WIDESEA_Comm.DBItem -{ - public partial class WheelDataDB - { - public event Action<string, WheelDataDB> OnReadSignal; - public string R_Name { get; set; } - public int R_o_wp_type { get; set; } - /// <summary> - /// 1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹� - /// </summary> - public short R_i_status { get; set; } - public int R_i_parameter_a { get; set; } - public int R_i_parameter_b { get; set; } - public int R_i_parameter_c { get; set; } - public int R_i_parameter_d { get; set; } - public int R_i_parameter_e { get; set; } - public int R_i_parameter_f { get; set; } - public int R_i_parameter_g { get; set; } - public int R_i_parameter_h { get; set; } - public string R_i_skip_op { get; set; } - - public short R_oi_on { get; set; } - public void ReadSignal(string type, WheelDataDB reader) - { - Task.Run(() => - { - OnReadSignal?.Invoke(type, reader); - }); - } - } -} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" index 6f0e255..3f8a147 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs" @@ -15,11 +15,14 @@ /// <summary> /// 绌鸿揣浣� /// </summary> -<<<<<<< Updated upstream - Empty -======= Empty, - Busy ->>>>>>> Stashed changes + /// <summary> + /// 鍗犵敤 + /// </summary> + Busy, + /// <summary> + /// 寮傚父 + /// </summary> + Abnormal } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/dt_pattern.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/dt_pattern.cs" new file mode 100644 index 0000000..ebe722f --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/dt_pattern.cs" @@ -0,0 +1,58 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Entity.SystemModels; + +namespace WIDESEA_Entity.DomainModels +{ + [Entity(TableCnName = "鍏ュ簱妯″紡",TableName = "dt_pattern")] + public partial class dt_pattern:BaseEntity + { + /// <summary> + /// + /// </summary> + [Key] + [Display(Name ="ID")] + [Column(TypeName="int")] + [Editable(true)] + [Required(AllowEmptyStrings=false)] + public int ID { get; set; } + + /// <summary> + /// + /// </summary> + [Display(Name ="pattern_name")] + [MaxLength(255)] + [Column(TypeName="nvarchar(255)")] + [Editable(true)] + public string pattern_name { get; set; } + + /// <summary> + ///妯″紡 + /// </summary> + [Display(Name ="妯″紡")] + [Column(TypeName="int")] + [Editable(true)] + [Required(AllowEmptyStrings=false)] + public int pattern_state { get; set; } + + /// <summary> + /// + /// </summary> + [Display(Name ="pattern_remark")] + [MaxLength(255)] + [Column(TypeName="nvarchar(255)")] + [Editable(true)] + public string pattern_remark { get; set; } + + + } +} \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/partial/dt_pattern.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/partial/dt_pattern.cs" new file mode 100644 index 0000000..dc1213b --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/1/partial/dt_pattern.cs" @@ -0,0 +1,21 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *濡傛灉鏁版嵁搴撳瓧娈靛彂鐢熷彉鍖栵紝璇峰湪浠g爜鐢熷櫒閲嶆柊鐢熸垚姝odel + */ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Entity.SystemModels; + +namespace WIDESEA_Entity.DomainModels +{ + + public partial class dt_pattern + { + //姝ゅ閰嶇疆瀛楁(瀛楁閰嶇疆瑙佹model鐨勫彟涓�涓猵artial),濡傛灉琛ㄤ腑娌℃湁姝ゅ瓧娈佃鍔犱笂 [NotMapped]灞炴�э紝鍚﹀垯浼氬紓甯� + } +} \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" index 6b483b0..b8473c3 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" @@ -13,126 +13,119 @@ namespace WIDESEA_Entity.DomainModels { - [Entity(TableCnName = "搴撲綅淇℃伅",TableName = "dt_stationinfo")] - public partial class dt_stationinfo:BaseEntity + [Entity(TableCnName = "搴撲綅淇℃伅", TableName = "dt_stationinfo")] + public partial class dt_stationinfo : BaseEntity { /// <summary> - /// - /// </summary> - [Display(Name ="id")] - [Column(TypeName="uniqueidentifier")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public Guid id { get; set; } + /// + /// </summary> + [Key] + [Display(Name = "id")] + [Column(TypeName = "uniqueidentifier")] + //[Editable(true)] + [Required(AllowEmptyStrings = false)] + public Guid id { get; set; } - /// <summary> - ///缂撳瓨鏋剁紪鍙� - /// </summary> - [Display(Name ="缂撳瓨鏋剁紪鍙�")] - [MaxLength(30)] - [Column(TypeName="nvarchar(30)")] - [Editable(true)] - public string stationCode { get; set; } + /// <summary> + ///缂撳瓨鏋剁紪鍙� + /// </summary> + [Display(Name = "缂撳瓨鏋剁紪鍙�")] + [MaxLength(30)] + [Column(TypeName = "nvarchar(30)")] + //[Editable(true)] + public string stationCode { get; set; } - /// <summary> - ///鐗╂枡绫诲瀷 - /// </summary> - [Display(Name ="鐗╂枡绫诲瀷")] - [MaxLength(25)] - [Column(TypeName="nvarchar(25)")] - [Editable(true)] - public string stationType { get; set; } + /// <summary> + ///鐗╂枡绫诲瀷 + /// </summary> + [Display(Name = "鐗╂枡绫诲瀷")] + [MaxLength(25)] + [Column(TypeName = "nvarchar(25)")] + //[Editable(true)] + public string? stationType { get; set; } - /// <summary> - ///鍖哄煙 - /// </summary> - [Display(Name ="鍖哄煙")] - [MaxLength(15)] - [Column(TypeName="nvarchar(15)")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public string area { get; set; } + /// <summary> + ///鍖哄煙 + /// </summary> + [Display(Name = "鍖哄煙")] + [MaxLength(15)] + [Column(TypeName = "nvarchar(15)")] + //[Editable(true)] + [Required(AllowEmptyStrings = false)] + public string area { get; set; } - /// <summary> - ///鏄惁鍚敤 - /// </summary> - [Display(Name ="鏄惁鍚敤")] - [Column(TypeName="bit")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public bool enable { get; set; } + /// <summary> + ///鏄惁鍚敤 + /// </summary> + [Display(Name = "鏄惁鍚敤")] + [Column(TypeName = "bit")] + //[Editable(true)] + [Required(AllowEmptyStrings = false)] + public bool enable { get; set; } - /// <summary> - ///璐т綅鐘舵�� - /// </summary> - [Display(Name ="璐т綅鐘舵��")] - [MaxLength(255)] - [Column(TypeName="varchar(255)")] - [Editable(true)] - public string location_state { get; set; } + /// <summary> + ///璐т綅鐘舵�� + /// </summary> + [Display(Name = "璐т綅鐘舵��")] + [MaxLength(255)] + [Column(TypeName = "varchar(255)")] + //[Editable(true)] + public string location_state { get; set; } - /// <summary> - ///鏈�鍚庣姸鎬佹敼鍙樻椂闂� - /// </summary> - [Display(Name ="鏈�鍚庣姸鎬佹敼鍙樻椂闂�")] - [Column(TypeName="datetime")] - [Editable(true)] - public DateTime? lastUpdateTime { get; set; } + /// <summary> + ///鏈�鍚庣姸鎬佹敼鍙樻椂闂� + /// </summary> + [Display(Name = "鏈�鍚庣姸鎬佹敼鍙樻椂闂�")] + [Column(TypeName = "datetime")] + //[Editable(true)] + public DateTime? lastUpdateTime { get; set; } - /// <summary> - ///杞﹁疆鏁伴噺 - /// </summary> - [Display(Name ="杞﹁疆鏁伴噺")] - [Column(TypeName="int")] - public int? quantity { get; set; } + /// <summary> + ///杞﹁疆鏁伴噺 + /// </summary> + [Display(Name = "杞﹁疆鏁伴噺")] + [Column(TypeName = "int")] + public int quantity { get; set; } - /// <summary> - ///杞﹁疆SN鍙� - /// </summary> - [Display(Name ="杞﹁疆SN鍙�")] - [MaxLength(500)] - [Column(TypeName="nvarchar(500)")] - public string bindSN { get; set; } + /// <summary> + ///杞﹁疆SN鍙� + /// </summary> + [Display(Name = "杞﹁疆SN鍙�")] + [MaxLength(500)] + [Column(TypeName = "nvarchar(500)")] + public string bindSN { get; set; } - /// <summary> - ///鎵樼洏鐘舵�� - /// </summary> - [Display(Name ="鎵樼洏鐘舵��")] - [MaxLength(100)] - [Column(TypeName="nvarchar(100)")] - public string tray_status { get; set; } + /// <summary> + ///鎵樼洏鐘舵�� + /// </summary> + [Display(Name = "鎵樼洏鐘舵��")] + [MaxLength(100)] + [Column(TypeName = "nvarchar(100)")] + public string tray_status { get; set; } - /// <summary> - ///澶囨敞 - /// </summary> - [Display(Name ="澶囨敞")] - [MaxLength(100)] - [Column(TypeName="nvarchar(100)")] - [Editable(true)] - public string remark { get; set; } + /// <summary> + ///澶囨敞 + /// </summary> + [Display(Name = "澶囨敞")] + [MaxLength(100)] + [Column(TypeName = "nvarchar(100)")] + //[Editable(true)] + public string remark { get; set; } - /// <summary> - ///涓婚敭 - /// </summary> - [Key] - [Display(Name ="涓婚敭")] - [Column(TypeName="int")] - [Required(AllowEmptyStrings=false)] - public int zj { get; set; } - /// <summary> - ///琛� - /// </summary> - [Display(Name ="琛�")] - [Column(TypeName="int")] - public int? line { get; set; } + /// <summary> + ///琛� + /// </summary> + [Display(Name = "琛�")] + [Column(TypeName = "int")] + public int? line { get; set; } - /// <summary> - ///鍒� - /// </summary> - [Display(Name ="鍒�")] - [Column(TypeName="int")] - public int? column { get; set; } + /// <summary> + ///鍒� + /// </summary> + [Display(Name = "鍒�")] + [Column(TypeName = "int")] + public int? column { get; set; } /// <summary> ///宸ュ崟缂栧彿 @@ -140,7 +133,7 @@ [Display(Name = "宸ュ崟缂栧彿")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] - [Editable(true)] + //[Editable(true)] public string Number { get; set; } /// <summary> @@ -148,7 +141,6 @@ /// </summary> [Display(Name = "鐐夊彿")] [Column(TypeName = "int")] - [Required(AllowEmptyStrings = false)] - public int heatNumber { get; set; } + public int? heatNumber { get; set; } } } \ No newline at end of file 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 ca992eb..846d7c3 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" @@ -28,7 +28,6 @@ /// <summary> ///宸ュ崟澶磋〃ID /// </summary> - [Key] [Display(Name = "mes_headID")] [Column(TypeName = "uniqueidentifier")] [Required(AllowEmptyStrings = false)] diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/WCS/dt_plcinfohead.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/WCS/dt_plcinfohead.cs" index 8013fcc..cdbb669 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/WCS/dt_plcinfohead.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/DomainModels/WCS/dt_plcinfohead.cs" @@ -95,7 +95,14 @@ [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string plcinfo_remark { get; set; } - + /// <summary> + ///鍨嬪彿 + /// </summary> + [Display(Name = "鍨嬪彿")] + [MaxLength(20)] + [Column(TypeName = "nvarchar(20)")] + [Editable(true)] + public string plcinfo_model { get; set; } } } \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/1/dt_patternMapConfig.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/1/dt_patternMapConfig.cs" new file mode 100644 index 0000000..5bb1d84 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/1/dt_patternMapConfig.cs" @@ -0,0 +1,16 @@ +using WIDESEA_Entity.MappingConfiguration; +using WIDESEA_Entity.DomainModels; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace WIDESEA_Entity.MappingConfiguration +{ + public class dt_patternMapConfig : EntityMappingConfiguration<dt_pattern> + { + public override void Map(EntityTypeBuilder<dt_pattern> + builderTable) + { + //b.Property(x => x.StorageName).HasMaxLength(45); + } + } +} + diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" index 635912b..3a12737 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs" @@ -32,7 +32,7 @@ var Gantryplc = FreeDB.Select<dt_plcinfohead>().Where(x => x.plcinfo_name == Gantry_client.PLCName).First(); List<string> numbers = new List<string>() { "1鍗曞厓闃插憜", "2鍗曞厓闃插憜", "3鍗曞厓闃插憜", "涓婃枡鍖洪槻鍛�" }; var details = FreeDB.Select<dt_plcinfodetail>().Where(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == numbers[requestin.AreaNr - 1]).ToList(); - if (MethodName == "AGVRequestin") + if (MethodName == "AGVRequestin")//璇锋眰杩涘叆鍖哄煙 { Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙� Gantry_client.WriteByOrder("W_AGV_Request_In", true, numbers[requestin.AreaNr - 1]);//鐢宠杩涘叆鍖哄煙 @@ -41,7 +41,7 @@ if (!Release) throw new Exception("妗佹灦鏈厑璁歌繘鍏ワ紒"); if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�"); } - else if (MethodName == "EnteriorLeav") + else if (MethodName == "EnteriorLeav")//杩涘叆绂诲紑鍖哄煙 { Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙� if (requestin.Type == 1) @@ -57,12 +57,12 @@ if (Area_Occupied_by_AGV) throw new Exception("妗佹灦鏈弽棣圓GV绂诲紑淇″彿"); } } - else if (MethodName == "AGVOutofArea") + else if (MethodName == "AGVOutofArea")//AGV涓嶅湪鍖哄煙鍐� { Gantry_client.WriteByOrder("W_AreaNr", (Int16)requestin.AreaNr, numbers[requestin.AreaNr - 1]);//鍖哄煙鍙� Gantry_client.WriteByOrder("W_AGV_OUT_OF_Area", requestin.OUTOFArea == 1 ? true : false, numbers[requestin.AreaNr - 1]);//AGV涓嶅湪璇ュ尯鍩� } - else if (MethodName == "GantryOutofArea") + else if (MethodName == "GantryOutofArea")//妗佹灦涓嶅湪鍖哄煙鍐� { var Gantry_Out_of_Area = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦涓嶅湪璇ュ尯鍩� if (!Gantry_Out_of_Area) throw new Exception("妗佹灦鍦ㄥ尯鍩熷唴锛�"); 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 5dbcde3..84d6f6f 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" @@ -4,10 +4,12 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEA_Comm; using WIDESEA_Core.EFDbContext; using WIDESEA_WCS.IRepositories; using WIDESEA_WCS.Repositories; using WIDESEA_WCS.WCSClient; +using static System.Collections.Specialized.BitVector32; namespace WIDESEA_WCS { @@ -17,9 +19,9 @@ Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context); Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context); Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context); - /// <summary> - /// 鏌ヨ杞﹁疆鏁版嵁 - /// </summary> + Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); + + #region 鏌ヨ杞﹁疆鏁版嵁 public void QueryWheeldata(PLCClient client) { try @@ -30,21 +32,23 @@ { var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList(); var on = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_oi_on").First(), client); - if ((Int16)on == 1) + if ((byte)on == 1) { var wp_type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_type").First(), client); var geometry = dataRepository.FindFirst(x => x.TypeId == (Int32)wp_type); if (geometry == null) { //DBExtension.Write(details.Where(x => x.plcdetail_name == "W_i_status").First(), client, (Int16)2); - client.WriteByOrder("W_i_status", (Int16)2, name);//1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹� - client.WriteByOrder("W_i_skip_op", "1", name);//灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补); - //0-浣跨敤锛�1-璺宠繃 - client.WriteByOrder("R_oi_on", (Int16)0, name); + //1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹� + client.WriteByOrder("W_i_status", (byte)2, name); + //灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补); + //client.WriteByOrder("W_i_skip_op", "1", name); + client.WriteByOrder("R_oi_on", (byte)0, name); } else { - client.WriteByOrder("W_i_status", (Int16)1, name); + //1-鎵惧埌鏁版嵁锛�2-鏈壘鍒板伐浠剁被鍨嬫暟鎹� + client.WriteByOrder("W_i_status", (byte)1, name); client.WriteByOrder("W_i_parameter_a", (float)geometry.a, name); client.WriteByOrder("W_i_parameter_b", (float)geometry.b, name); client.WriteByOrder("W_i_parameter_c", (float)geometry.c, name); @@ -54,8 +58,13 @@ client.WriteByOrder("W_i_parameter_g", (float)geometry.g, name); client.WriteByOrder("W_i_parameter_h", (float)geometry.h, name); //灞忚斀宸ヨ壓(灞忚斀瑙嗚妫�娴�/灞忚斀娑傛补) - client.WriteByOrder("W_i_skip_op", "0", name);//瀛楃涓插啓鍏�-2 - client.WriteByOrder("R_oi_on", (Int16)0, name); + if (name != "杈婇亾涓婃枡鏌ヨ杞﹁疆") + { + client.WriteByOrder("W_i_skip_op_SJ1", (byte)1, name);//灞忚斀瑙嗚妫�娴嬭澶�1 + client.WriteByOrder("W_i_skip_op_SJ2", (byte)1, name);//灞忚斀瑙嗚妫�娴嬭澶�2 + client.WriteByOrder("W_i_skip_op_LT", (byte)1, name);//灞忚斀閾炬潯鏈� + } + client.WriteByOrder("R_oi_on", (byte)0, name); } } } @@ -65,9 +74,9 @@ throw; } } - /// <summary> - /// 鏌ヨ璁㈠崟,鏄惁闇�瑕佸姞宸� - /// </summary> + #endregion + + #region 鏌ヨ璁㈠崟,鏄惁闇�瑕佸姞宸� public void QueryOrder(PLCClient client) { try @@ -78,20 +87,23 @@ { var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList(); var on = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_oi_on").First(), client); - if ((Int16)on == 1) + if ((byte)on == 1) { var wp_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_id").First(), client); - //闇�娣诲姞鏌ヨ杞﹁疆SN鍙疯鍗曢�昏緫 + //闇�娣诲姞鏌ヨ杞﹁疆SN鍙疯鍗曢�昏緫 闇�娣诲姞鍏ュ簱妯″紡鍒ゆ柇锛屾墜鍔ㄥ叆搴撴ā寮忛渶浜哄伐娣诲姞鍏ュ簱搴撳尯锛屽惁鍒欐姤璀� + var wp_type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_type").First(), client); var geometry = dataRepository.FindFirst(x => x.TypeId == (Int32)wp_type); if (geometry == null) { - client.WriteByOrder("W_i_status", (Int16)2, name);//1-濂�,鍏佽鍔犲伐锛�2-涓嶅湪鍒楄〃涓紝3-涓嶅姞宸ヨ溅杞被鍨� + //1-濂�,鍏佽鍔犲伐锛�2-涓嶅湪鍒楄〃涓紝3-涓嶅姞宸ヨ溅杞被鍨嬶紝4-鎵嬪姩鍏ュ簱妯″紡浜哄伐鏈�夋嫨搴撳尯 + client.WriteByOrder("W_i_status", (Int16)2, name); client.WriteByOrder("R_oi_on", (Int16)0, name); } else { + //1-濂�,鍏佽鍔犲伐锛�2-涓嶅湪鍒楄〃涓紝3-涓嶅姞宸ヨ溅杞被鍨嬶紝4-鎵嬪姩鍏ュ簱妯″紡浜哄伐鏈�夋嫨搴撳尯 client.WriteByOrder("W_i_status", (Int16)1, name); //client.WriteByOrder("W_i_job_id", "", name); //client.WriteByOrder("W_i_drawing_id", "", name); @@ -108,35 +120,64 @@ throw; } } - /// <summary> - /// 涓嬫枡浣嶄氦浜� - /// </summary> + #endregion + + #region 涓嬫枡浣嶄氦浜� public void Layofflevel(PLCClient client) { try { var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName); - List<string> names = new List<string>() { "1鍗曞厓涓嬫枡鍖�", "2鍗曞厓涓嬫枡鍖�", "3鍗曞厓涓嬫枡鍖�", "涓婃枡鍖�" }; + var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "閾炬潯鏈�"); + if (Pipeline_client == null) throw new Exception("閾炬潯鏈鸿皟搴︽湇鍔℃湭寮�鍚紒"); + if (!Pipeline_client.IsConnected) throw new Exception("涓庨摼鏉℃満杩炴帴瓒呮椂锛�"); + var Pipelineplc = repository.FindFirst(x => x.plcinfo_name == Pipeline_client.PLCName); + List<string> names = new List<string>() { "1鍗曞厓涓嬫枡鍖�", "2鍗曞厓涓嬫枡鍖�", "3鍗曞厓涓嬫枡鍖�" }; foreach (string name in names) { var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList(); var Request = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Request_Load").First(), client); if (!Request) continue; - var PartStatus = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok + + List<string> StationCodes = new List<string>() { "X01001001", "X01001002", "X01001003" }; + if (name == "2鍗曞厓涓嬫枡鍖�") + StationCodes = new List<string>() { "X02001001", "X02001002", "X02001003" }; + if (name == "3鍗曞厓涓嬫枡鍖�") + StationCodes = new List<string>() { "X03001001", "X03001002" }; var Wheel_Type = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//杞﹁疆绫诲瀷 var Wheel_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_id").First(), client).ToString();//杞﹁疆SN鍙� - - - client.WriteByOrder("W_AreaNr", (Int16)1, name);//鍖哄煙璐т綅鍙� - client.WriteByOrder("W_IndexNr", (Int16)1, name);//鎵樼洏涓婄殑绗嚑涓溅杞� - client.WriteByOrder("W_Storage_Type", true, name);//鎵樼洏绫诲瀷1-妯斁;2-绔栨斁 - client.WriteByOrder("W_Enabl_Load", true, name);//鏄惁鍏佽 - + for (int i = 0; i < StationCodes.Count - 1; i++) + { + var PartStatus = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok + string NG = StationCodes[StationCodes.Count - 1];//NG璐т綅 + var station = stationinfoRepository.FindFirst(x => x.stationCode == StationCodes[i] && x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity < 5); + if (station == null) continue; + var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == StationCodes[i]).ToList(); + var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃� + if (PalletSignal == 1) + { + if (PartStatus == 1 && NG != station.stationCode) + { + client.WriteByOrder("W_AreaNr", (Int16)i + 1, name);//鍖哄煙璐т綅鍙� + client.WriteByOrder("W_IndexNr", (Int16)station.quantity + 1, name);//鎵樼洏涓婄殑绗嚑涓溅杞� + } + else if (PartStatus == 2 && NG == station.stationCode) + { + client.WriteByOrder("W_AreaNr", (Int16)i + 1, name);//鍖哄煙璐т綅鍙� + client.WriteByOrder("W_IndexNr", (Int16)station.quantity + 1, name);//鎵樼洏涓婄殑绗嚑涓溅杞� + } + client.WriteByOrder("W_Storage_Type", (Int16)1, name);//鎵樼洏绫诲瀷1-妯斁;2-绔栨斁(鏆傛椂鍙湁妯斁鎵樼洏) + client.WriteByOrder("W_Enabl_Load", true, name);//鏄惁鍏佽 + } + } var finished = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_finished").First(), client);//鏀炬枡瀹屾垚 if (finished) { - + var AreaNr = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "W_AreaNr").First(), client); + var station = stationinfoRepository.FindFirst(x => x.stationCode == StationCodes[AreaNr - 1]); + station.quantity = station.quantity++; + stationinfoRepository.Update(station); client.WriteByOrder("W_Storage_update", true, name);//璐т綅鐘舵�佹洿鏂� } } @@ -146,30 +187,6 @@ throw; } } - /// <summary> - /// 闃插憜鎺柦 - /// </summary> - static bool Gantry_Out_of_Area1;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 - static bool Gantry_Out_of_Area2;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 - static bool Gantry_Out_of_Area3;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 - static bool Gantry_Out_of_Area4;//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 - public void Stupidproofmeasure(PLCClient client) - { - try - { - var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName); - List<string> names = new List<string>() { "1鍗曞厓闃插憜", "2鍗曞厓闃插憜", "3鍗曞厓闃插憜", "涓婃枡鍖洪槻鍛�" }; - foreach (string name in names) - { - var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList(); - var Release_In = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Release_In").First(), client);//鍏佽杩涘叆 - if (!Release_In) { } - } - } - catch (Exception ex) - { - throw; - } - } + #endregion } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IRepositories/WCS/Idt_patternRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IRepositories/WCS/Idt_patternRepository.cs" new file mode 100644 index 0000000..77cee71 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IRepositories/WCS/Idt_patternRepository.cs" @@ -0,0 +1,18 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶笽dt_patternRepository缂栧啓鎺ュ彛 + */ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.BaseProvider; +using WIDESEA_Entity.DomainModels; +using WIDESEA_Core.Extensions.AutofacManager; +namespace WIDESEA_WCS.IRepositories +{ + public partial interface Idt_patternRepository : IDependency,IRepository<dt_pattern> + { + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Idt_patternService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Idt_patternService.cs" new file mode 100644 index 0000000..c07182a --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Idt_patternService.cs" @@ -0,0 +1,12 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + */ +using WIDESEA_Core.BaseProvider; +using WIDESEA_Entity.DomainModels; + +namespace WIDESEA_WCS.IServices +{ + public partial interface Idt_patternService : IService<dt_pattern> + { + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Partial/Idt_patternService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Partial/Idt_patternService.cs" new file mode 100644 index 0000000..48212f4 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/IServices/WCS/Partial/Idt_patternService.cs" @@ -0,0 +1,15 @@ +/* +*鎵�鏈夊叧浜巇t_pattern绫荤殑涓氬姟浠g爜鎺ュ彛搴斿湪姝ゅ缂栧啓 +*/ +using WIDESEA_Core.BaseProvider; +using WIDESEA_Entity.DomainModels; +using WIDESEA_Core.Utilities; +using System.Linq.Expressions; +namespace WIDESEA_WCS.IServices +{ + public partial interface Idt_patternService + { + public WebResponseContent UpdateAuto(string v); + public WebResponseContent UpdateManual(string v); + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs" index caf9bf8..db146c8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/JobBase.cs" @@ -67,11 +67,11 @@ } catch (Exception ex) { - jobHistory += $",銆愭墽琛屽け璐�:{ex.Message}銆�"; + jobHistory += $",銆愭墽琛屽け璐�:{ex.Message}銆�+"; } finally { - taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds,3); + taskSeconds = Math.Round(stopwatch.Elapsed.TotalSeconds, 3); jobHistory += $"(鑰楁椂:{taskSeconds}绉�)"; if (taskSeconds > 1 || jobHistory.Contains("鎵ц澶辫触")) WriteLog.Info(jobid + "鎵ц璁板綍").Write(jobHistory, jobid + "鎵ц璁板綍"); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" index c1e35dd..cc62517 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs" @@ -22,7 +22,7 @@ { try { - //ExecuteJob(context, DoAction); + ExecuteJob(context, DoAction); } catch { } return Task.CompletedTask; @@ -32,7 +32,7 @@ { //throw new NotImplementedException(); //Creation.HCJCreation(); - Creation.PLCinfodetail(); + //Creation.PLCinfodetail(); } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs" index 71a8d36..51d5974 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/GantryJob.cs" @@ -45,117 +45,6 @@ gantry.QueryWheeldata(client); gantry.QueryOrder(client); gantry.Layofflevel(client); - gantry.Stupidproofmeasure(client); - } - - #region - static List<MachineDB> MachineDBs = new List<MachineDB>(); - static List<WheelDataDB> wheelDataDBs = new List<WheelDataDB>(); - private void DoAction(PLCClient client) - { - try - { - VOLContext Context = new VOLContext(); - Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context); - Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context); - - var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName); - var numbers = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep).GroupBy(x => x.plcdetail_number).ToList(); - foreach (var number in numbers) - { - if (number.Key.Contains("杈婇亾涓嬫枡")) - { - PropertyInfo[] propertyInfos = typeof(WheelDataDB).GetProperties();//鑾峰彇鎵�鏈夊睘鎬� - WheelDataDB dBItem = wheelDataDBs.Where(x => x.R_Name == number.Key).FirstOrDefault(); - if (dBItem == null) - { - dBItem = new(); - dBItem.OnReadSignal += HandleReadSignal; - wheelDataDBs.Add(dBItem); - } - List<dt_plcinfodetail> details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == number.Key).ToList(); - for (int i = 0; i < propertyInfos.Length; i++) - { - if (i == 0) - { - dBItem.R_Name = number.Key; - } - else - { - object readData = DBExtension.Read(details.Where(x => x.plcdetail_name == propertyInfos[i].Name).FirstOrDefault(), client); - if (readData != null) { } - object obj = propertyInfos[i].GetValue(dBItem); - if (obj != readData) - propertyInfos[i].SetValue(dBItem, readData); - } - } - } - else - { - - PropertyInfo[] propertyInfos = typeof(MachineDB).GetProperties();//鑾峰彇鎵�鏈夊睘鎬� - MachineDB dBItem = MachineDBs.Where(x => x.R_Name == number.Key).FirstOrDefault(); - if (dBItem == null) - { - dBItem = new(); - dBItem.OnReadSignal += HandleReadSignal; - MachineDBs.Add(dBItem); - } - List<dt_plcinfodetail> details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == number.Key).ToList(); - for (int i = 0; i < propertyInfos.Length; i++) - { - if (i == 0) - { - dBItem.R_Name = number.Key; - } - else - { - object readData = DBExtension.Read(details.Where(x => x.plcdetail_name == propertyInfos[i].Name).FirstOrDefault(), client); - if (readData != null) { } - object obj = propertyInfos[i].GetValue(dBItem); - if (obj != readData) - propertyInfos[i].SetValue(dBItem, readData); - } - } - } - } - } - catch (Exception ex) - { - - throw; - } - } - #endregion - public void HandleReadSignal(string type, MachineDB DBItem) - { - switch (type) - { - case OperationType.OperationType_Record: - - break; - case OperationType.OperationType_Processor: - - break; - case OperationType.OperationType_WheelData: - - break; - } - } - public void HandleReadSignal(string type, WheelDataDB DBItem) - { - switch (type) - { - case OperationType.OperationType_Record: - - break; - case OperationType.OperationType_Processor: - - break; - case OperationType.OperationType_WheelData: - - break; - } } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" index 4d94346..e953d35 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs" @@ -1,12 +1,19 @@ -锘縰sing Quartz; +锘縰sing HslCommunication; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using Quartz; using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; using WIDESEA_Comm; +using WIDESEA_Comm.LogInfo; using WIDESEA_Core.BaseProvider; using WIDESEA_Core.EFDbContext; +using WIDESEA_Core.Extensions; using WIDESEA_Core.FreeDB; using WIDESEA_WCS.IRepositories; using WIDESEA_WCS.Jobs; @@ -63,59 +70,99 @@ /// <param name="client"></param> private void Loadinglevel(PLCClient client, string number = "涓婃枡鍖�") { - VOLContext Context = new VOLContext(); - Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context); - Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context); - Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context); - Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); - var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName); - var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦"); - if (!Gantry_client.IsConnected) return; - var Gantryplc = repository.FindFirst(x => x.plcinfo_name == Gantry_client.PLCName); - List<string> names = new List<string>() { "S01001001", "S01001002" }; - foreach (string name in names) + try { - var station = stationinfoRepository.FindFirst(x => x.stationCode == name && x.enable && x.location_state == LocationStateEnum.Stroge.ToString()); - if (station == null) - { - Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆 - continue; - } - var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == name).ToList(); - var PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃� - var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃� - if (PalletSignal == 1 && MaterialSignal == 1) - { - Gantry_client.WriteByOrder("W_AreaNr", (Int16)1, number);//鍖哄煙璐т綅鍙� - Gantry_client.WriteByOrder("W_IndexNr", (Int16)1, number);//鎵樼洏涓婄殑绗嚑涓溅杞� - Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //鎵樼洏绫诲瀷1-妯斁;2-绔栨斁 - Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)1, number);//杞﹁疆绫诲瀷 - Gantry_client.WriteByOrder("W_Wheel_id", "", number);//杞﹁疆SN鍙� - Gantry_client.WriteByOrder("W_RequestUnload", true, number); - } - else - { - Gantry_client.WriteByOrder("W_RequestUnload", false, number); - } - var Gantrydetails = plcRepository.Find(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == number).ToList(); - var Gantry_Out_of_Area = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 + VOLContext Context = new VOLContext(); + Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context); + Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context); + Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context); + Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); + var plc = repository.FindFirst(x => x.plcinfo_name == client.PLCName); + var Gantry_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "妗佹灦"); + if (Gantry_client == null) throw new Exception("妗佹灦璋冨害鏈嶅姟鏈紑鍚紒"); + if (!Gantry_client.IsConnected) throw new Exception("涓庢鏋惰繛鎺ヨ秴鏃讹紒"); + var Gantryplc = repository.FindFirst(x => x.plcinfo_name == Gantry_client.PLCName); - var QueryDate = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_QueryDate").First(), Gantry_client);//淇℃伅鏌ヨ - if (QueryDate) + + ///鏌ユ壘涓婃枡鍖虹殑璐т綅 + var Stations = stationinfoRepository.Find(x => x.area == "6"); + //缂撳瓨鏋舵湭鍚敤绂佹妗佹灦杩涘叆 + foreach (var station in Stations) { - var Date_Vaild = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Date_Vaild").First(), Gantry_client);//淇℃伅纭 - if (!Date_Vaild)//淇℃伅鏈夎锛岃褰曟棩蹇� + if (!station.enable) + Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆 + } + + var Station = Stations?.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.quantity).First(); + if (Station != null) + { + var SNS = Station.bindSN.Split(","); + //缂撳瓨鏋朵笂杞﹁疆鏁伴噺涓嶴N鍙锋暟閲忎笉涓�鑷� + if (SNS.Length != Station.quantity) { + Station.location_state = LocationStateEnum.Abnormal.ToString(); + stationinfoRepository.Update(Station, true); + Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆 + throw new Exception("涓婃枡浣嶈溅杞暟閲忎笌SN鍙锋暟閲忎笉涓�鑷达紝涓婃枡浣嶇紪鍙凤細" + Station.stationCode); + } + var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == Station.stationCode).ToList(); + var PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//璇诲彇鎵樼洏淇″彿:1:鏈�,2鏃� + var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//璇诲彇璐х墿淇″彿:1:鏈�,2鏃� + if (PalletSignal == 1 && MaterialSignal == 1) + { + var area = Convert.ToInt16(Station.stationCode.Substring(Station.stationCode.Length - 1, 1)); + Gantry_client.WriteByOrder("W_AreaNr", (Int16)area, number);//鍖哄煙璐т綅鍙� + Gantry_client.WriteByOrder("W_IndexNr", (Int16)SNS.Length, number);//鎵樼洏涓婄殑绗嚑涓溅杞� + Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //鎵樼洏绫诲瀷1-妯斁;2-绔栨斁 + Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)Convert.ToInt16(Station.stationType), number);//杞﹁疆绫诲瀷 + Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//杞﹁疆SN鍙� + Gantry_client.WriteByOrder("W_RequestUnload", true, number); + } + else + { + Gantry_client.WriteByOrder("W_RequestUnload", false, number); + } + var Gantrydetails = plcRepository.Find(x => x.plcdetail_iotype == Gantryplc.plcinfo_iotyep && x.plcdetail_number == number).ToList(); + var Gantry_Out_of_Area = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Gantry_Out_of_Area").First(), Gantry_client);//妗佹灦鏄惁鍦ㄥ尯鍩熷唴 + + var QueryDate = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_QueryDate").First(), Gantry_client);//淇℃伅鏌ヨ + if (QueryDate) + { + var Date_Vaild = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Date_Vaild").First(), Gantry_client);//淇℃伅纭 + if (!Date_Vaild)//淇℃伅鏈夎锛岃褰曟棩蹇� + { + Station.location_state = LocationStateEnum.Abnormal.ToString(); + stationinfoRepository.Update(Station, true); + Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆 + throw new Exception($"鏈煡璇㈠埌SN鍙凤細{SNS[SNS.Length - 1]}鐨勮鍗曪紝涓婃枡浣嶇紪鍙凤細{Station.stationCode}"); + } + } + var finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);//澶瑰彇瀹屾垚 + if (finished) + { + Station.quantity = Station.quantity - 1; + Station.bindSN = OperStr(SNS); + var count = stationinfoRepository.Update(Station, true); + if (count < 1) + throw new Exception($"涓婃枡浣嶄俊鎭洿鏂板け璐ワ紒涓婃枡浣嶇紪鍙凤細{Station.stationCode}"); + Gantry_client.WriteByOrder("W_Storage_update", true, number);//璐т綅鐘舵�佹洿鏂� + Gantry_client.WriteByOrder("W_RequestUnload", false, number);//淇″彿涓篺alse妗佹灦鍋滄杩涘叆 } } - var finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);//澶瑰彇瀹屾垚 - if (finished) - { - - Gantry_client.WriteByOrder("W_Storage_update", true, number);//璐т綅鐘舵�佹洿鏂� - } } + catch (Exception ex) + { + //WritePCSLog.LogAdd(requestin.AreaNr.ToString(), respone.success == 1 ? "鎴愬姛 " : "澶辫触", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), remark, "妫�娴嬬嚎涓婃枡鍖�", ex.Message); + } + } + + private string OperStr(string[] strArrty) + { + string[] newstr = strArrty.RemoveLast(1); + string Newsn = string.Join(",", newstr); + + return Newsn; } } } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Repositories/WCS/dt_patternRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Repositories/WCS/dt_patternRepository.cs" new file mode 100644 index 0000000..01a3ff5 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Repositories/WCS/dt_patternRepository.cs" @@ -0,0 +1,24 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *Repository鎻愪緵鏁版嵁搴撴搷浣滐紝濡傛灉瑕佸鍔犳暟鎹簱鎿嶄綔璇峰湪褰撳墠鐩綍涓婸artial鏂囦欢澶筪t_patternRepository缂栧啓浠g爜 + */ +using WIDESEA_WCS.IRepositories; +using WIDESEA_Core.BaseProvider; +using WIDESEA_Core.EFDbContext; +using WIDESEA_Core.Extensions.AutofacManager; +using WIDESEA_Entity.DomainModels; + +namespace WIDESEA_WCS.Repositories +{ + public partial class dt_patternRepository : RepositoryBase<dt_pattern> , Idt_patternRepository + { + public dt_patternRepository(VOLContext dbContext) + : base(dbContext) + { + + } + public static Idt_patternRepository Instance + { + get { return AutofacContainerModule.GetService<Idt_patternRepository>(); } } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/VV_DispatchService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/VV_DispatchService.cs" index 9322093..3c54118 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/VV_DispatchService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/VV_DispatchService.cs" @@ -149,7 +149,7 @@ PLCClient client = null; if (plc.plcinfo_type == "Simene") { - client = new SiemensPLCClient() + client = new SiemensPLCClient(plc.plcinfo_model) { PLCName = plc.plcinfo_name, Ip = plc.plcinfo_ip, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs" new file mode 100644 index 0000000..c9977db --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/Partial/dt_patternService.cs" @@ -0,0 +1,67 @@ +/* + *鎵�鏈夊叧浜巇t_pattern绫荤殑涓氬姟浠g爜搴斿湪姝ゅ缂栧啓 +*鍙娇鐢╮epository.璋冪敤甯哥敤鏂规硶锛岃幏鍙朎F/Dapper绛変俊鎭� +*濡傛灉闇�瑕佷簨鍔¤浣跨敤repository.DbContextBeginTransaction +*涔熷彲浣跨敤DBServerProvider.鎵嬪姩鑾峰彇鏁版嵁搴撶浉鍏充俊鎭� +*鐢ㄦ埛淇℃伅銆佹潈闄愩�佽鑹茬瓑浣跨敤UserContext.Current鎿嶄綔 +*dt_patternService瀵瑰銆佸垹銆佹敼鏌ャ�佸鍏ャ�佸鍑恒�佸鏍镐笟鍔′唬鐮佹墿灞曞弬鐓erviceFunFilter +*/ +using WIDESEA_Core.BaseProvider; +using WIDESEA_Core.Extensions.AutofacManager; +using WIDESEA_Entity.DomainModels; +using System.Linq; +using WIDESEA_Core.Utilities; +using System.Linq.Expressions; +using WIDESEA_Core.Extensions; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Http; +using WIDESEA_WCS.IRepositories; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Newtonsoft.Json; + +namespace WIDESEA_WCS.Services +{ + public partial class dt_patternService + { + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly Idt_patternRepository _repository;//璁块棶鏁版嵁搴� + + [ActivatorUtilitiesConstructor] + public dt_patternService( + Idt_patternRepository dbRepository, + IHttpContextAccessor httpContextAccessor + ) + : base(dbRepository) + { + _httpContextAccessor = httpContextAccessor; + _repository = dbRepository; + //澶氱鎴蜂細鐢ㄥ埌杩檌nit浠g爜锛屽叾浠栨儏鍐靛彲浠ヤ笉鐢� + //base.Init(dbRepository); + } + public WebResponseContent UpdateAuto(string v) + { + WebResponseContent content = new WebResponseContent(); + var model = JsonConvert.DeserializeObject<dt_pattern>(v); + model.pattern_state = 1; + var cont = _repository.Update(model, true); + if (cont > 0) + content.OK(model.pattern_name + "璁剧疆涓鸿嚜鍔ㄥ叆搴撴垚鍔燂紒"); + else + content.Error(model.pattern_name + "璁剧疆涓鸿嚜鍔ㄥ叆搴撳け璐ワ紒"); + return content; + } + public WebResponseContent UpdateManual(string v) + { + WebResponseContent content = new WebResponseContent(); + var model = JsonConvert.DeserializeObject<dt_pattern>(v); + model.pattern_state = 0; + var cont = _repository.Update(model, true); + if (cont > 0) + content.OK(model.pattern_name + "璁剧疆涓烘墜鍔ㄥ叆搴撴垚鍔燂紒"); + else + content.Error(model.pattern_name + "璁剧疆涓烘墜鍔ㄥ叆搴撳け璐ワ紒"); + return content; + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/dt_patternService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/dt_patternService.cs" new file mode 100644 index 0000000..525578d --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/Services/WCS/dt_patternService.cs" @@ -0,0 +1,27 @@ +/* + *Author锛歫xx + *Contact锛�283591387@qq.com + *浠g爜鐢辨鏋剁敓鎴�,姝ゅ浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *鎵�鏈変笟鍔$紪鍐欏叏閮ㄥ簲鍦≒artial鏂囦欢澶逛笅dt_patternService涓嶪dt_patternService涓紪鍐� + */ +using WIDESEA_WCS.IRepositories; +using WIDESEA_WCS.IServices; +using WIDESEA_Core.BaseProvider; +using WIDESEA_Core.Extensions.AutofacManager; +using WIDESEA_Entity.DomainModels; + +namespace WIDESEA_WCS.Services +{ + public partial class dt_patternService : ServiceBase<dt_pattern, Idt_patternRepository> + , Idt_patternService, IDependency + { + public dt_patternService(Idt_patternRepository repository) + : base(repository) + { + Init(repository); + } + public static Idt_patternService Instance + { + get { return AutofacContainerModule.GetService<Idt_patternService>(); } } + } + } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs" index 41d31c1..ffc2571 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WCS/ToAGV/ToAGVServer.cs" @@ -19,7 +19,6 @@ { public partial class ToAGVServer { - FreeDB freeDB = new FreeDB(); static AGVRespone respone = new AGVRespone(); static AGVRequestin requestin = new AGVRequestin(); /// <summary> 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 8922db1..2471725 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" @@ -14,9 +14,12 @@ private readonly object _lockWrite = new object(); public SiemensS7Net siemensPLCClient { get; set; } - public SiemensPLCClient() + public SiemensPLCClient(string model) { - siemensPLCClient = new SiemensS7Net(SiemensPLCS.S1200); + if (model == "S300") + siemensPLCClient = new SiemensS7Net(SiemensPLCS.S300); + else + siemensPLCClient = new SiemensS7Net(SiemensPLCS.S1500); base.siemensPLCClient = this.siemensPLCClient; } diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_patternController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_patternController.cs" new file mode 100644 index 0000000..60e5c8e --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_patternController.cs" @@ -0,0 +1,54 @@ +/* + *鎺ュ彛缂栧啓澶�... +*濡傛灉鎺ュ彛闇�瑕佸仛Action鐨勬潈闄愰獙璇侊紝璇峰湪Action涓婁娇鐢ㄥ睘鎬� +*濡�: [ApiActionPermission("dt_pattern",Enums.ActionPermissionOptions.Search)] + */ +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.AspNetCore.Http; +using WIDESEA_Entity.DomainModels; +using WIDESEA_WCS.IServices; +using Microsoft.AspNetCore.Authorization; +using Newtonsoft.Json; +using WIDESEA_Core.Utilities; + +namespace WIDESEA_WCS.Controllers +{ + public partial class dt_patternController + { + private readonly Idt_patternService _service;//璁块棶涓氬姟浠g爜 + private readonly IHttpContextAccessor _httpContextAccessor; + + [ActivatorUtilitiesConstructor] + public dt_patternController( + Idt_patternService service, + IHttpContextAccessor httpContextAccessor + ) + : base(service) + { + _service = service; + _httpContextAccessor = httpContextAccessor; + } + /// <summary> + /// 鍏ュ簱妯″紡璁句负鑷姩 + /// </summary> + /// <returns></returns> + [HttpPost, Route("UpdateAuto"), AllowAnonymous] + public WebResponseContent UpdateAuto([FromBody] object saveModel) + { + return _service.UpdateAuto(JsonConvert.SerializeObject(saveModel)); + } + /// <summary> + /// 鍏ュ簱妯″紡璁句负鎵嬪姩 + /// </summary> + /// <returns></returns> + [HttpPost, Route("UpdateManual"), AllowAnonymous] + public WebResponseContent UpdateManual([FromBody] object saveModel) + { + return _service.UpdateManual(JsonConvert.SerializeObject(saveModel)); + } + } +} diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_patternController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_patternController.cs" new file mode 100644 index 0000000..1144ad0 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_patternController.cs" @@ -0,0 +1,21 @@ +/* + *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩� + *濡傛灉瑕佸鍔犳柟娉曡鍦ㄥ綋鍓嶇洰褰曚笅Partial鏂囦欢澶筪t_patternController缂栧啓 + */ +using Microsoft.AspNetCore.Mvc; +using WIDESEA_Core.Controllers.Basic; +using WIDESEA_Entity.AttributeManager; +using WIDESEA_WCS.IServices; +namespace WIDESEA_WCS.Controllers +{ + [Route("api/dt_pattern")] + [PermissionTable(Name = "dt_pattern")] + public partial class dt_patternController : ApiBaseController<Idt_patternService> + { + public dt_patternController(Idt_patternService service) + : base(service) + { + } + } +} + diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue" index f495eaa..357cbb5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue" @@ -42,26 +42,26 @@ {field:'agv_tasknum',title:'浠诲姟缂栧彿',type:'string',sort:true,width:110,require:true,align:'left',sort:true}, {field:'agv_fromaddress',title:'璧风偣鍦板潃',type:'string',width:110,align:'left'}, {field:'agv_toaddress',title:'缁堢偣鍦板潃',type:'string',width:110,align:'left'}, - {field:'agv_code',title:'AGV缂栧彿',type:'string',bind:{ key:'agv_code',data:[]},width:110,require:true,align:'left'}, + // {field:'agv_code',title:'AGV缂栧彿',type:'string',bind:{ key:'agv_code',data:[]},width:110,require:true,align:'left'}, {field:'agv_taskstate',title:'浠诲姟鐘舵��',type:'string',bind:{ key:'Taskstates',data:[]},width:110,require:true,align:'left'}, - {field:'agv_worktype',title:'AGV宸ヤ綔绫诲瀷',type:'int',width:110,align:'left'}, + // {field:'agv_worktype',title:'AGV宸ヤ綔绫诲瀷',type:'int',width:110,align:'left'}, {field:'agv_materielid',title:'鐗╂枡绫诲瀷',type:'string',width:110,require:true,align:'left'}, {field:'bindSN',title:'杞﹁疆SN鍙�',type:'string',width:110,align:'left'}, {field:'agv_qty',title:'鏁伴噺',type:'int',width:110,require:true,align:'left'}, + // {field:'agv_finishedtime',title:'瀹屾垚鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, + {field:'agv_tasktype',title:'浠诲姟绫诲瀷',type:'string',bind:{ key:'agv_tasktypes',data:[]},width:110,require:true,align:'left'}, + {field:'agv_grade',title:'浠诲姟绛夌骇',type:'int',bind:{ key:'task_grade',data:[]},sort:true,width:110,align:'left'}, + // {field:'agv_barcode',title:'鎵樼洏鐮�',type:'string',width:110,require:true,align:'left'}, + // {field:'agv_materbarcode',title:'鐗╂枡鐮�',type:'string',width:110,align:'left'}, {field:'agv_createtime',title:'鍒涘缓鏃堕棿',type:'datetime',sort:true,width:150,require:true,align:'left',sort:true}, {field:'agv_realesstime',title:'鎵ц鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, - {field:'agv_finishedtime',title:'瀹屾垚鏃堕棿',type:'datetime',width:150,align:'left',sort:true}, - {field:'agv_tasktype',title:'浠诲姟绫诲瀷',type:'string',bind:{ key:'agv_tasktypes',data:[]},width:110,require:true,align:'left'}, - {field:'agv_remark',title:'澶囨敞',type:'string',width:120,align:'left'}, - {field:'agv_grade',title:'浠诲姟绛夌骇',type:'int',bind:{ key:'task_grade',data:[]},sort:true,width:110,align:'left'}, - {field:'agv_userid',title:'鍒涘缓鑰�',type:'string',width:110,align:'left'}, - {field:'agv_barcode',title:'鎵樼洏鐮�',type:'string',width:110,require:true,align:'left'}, - {field:'agv_materbarcode',title:'鐗╂枡鐮�',type:'string',width:110,align:'left'}, {field:'agv_executingBeginTime',title:'璧峰鐐规墽琛屼腑',type:'datetime',width:150,align:'left',sort:true}, {field:'agv_executingEndTime',title:'璧峰鐐瑰畬鎴�',type:'datetime',width:150,align:'left',sort:true}, {field:'agv_completeBeginTime',title:'鐩殑鐐规墽琛屼腑',type:'datetime',width:150,align:'left',sort:true}, - {field:'unitag',title:'unitag',type:'guid',width:110,align:'left'}, - {field:'ID',title:'涓婚敭',type:'int',width:80,hidden:true,readonly:true,require:true,align:'left'}]); + {field:'agv_userid',title:'鍒涘缓鑰�',type:'string',width:110,align:'left'}, + {field:'agv_remark',title:'澶囨敞',type:'string',width:120,align:'left'}, + // {field:'unitag',title:'unitag',type:'guid',width:110,align:'left'} + ]); const detail = ref({ cnName: "#detailCnName", table: "#detailTable", diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" index 96fd1b7..1b2d904 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs" @@ -13,142 +13,135 @@ namespace WIDESEA_Entity.DomainModels { - [Entity(TableCnName = "搴撲綅淇℃伅",TableName = "dt_stationinfo")] - public partial class dt_stationinfo:BaseEntity + [Entity(TableCnName = "搴撲綅淇℃伅", TableName = "dt_stationinfo")] + public partial class dt_stationinfo : BaseEntity { /// <summary> - /// - /// </summary> - [Display(Name ="id")] - [Column(TypeName="uniqueidentifier")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public Guid id { get; set; } + /// + /// </summary> + [Key] + [Display(Name = "id")] + [Column(TypeName = "uniqueidentifier")] + [Editable(true)] + [Required(AllowEmptyStrings = false)] + public Guid id { get; set; } - /// <summary> - ///缂撳瓨鏋剁紪鍙� - /// </summary> - [Display(Name ="缂撳瓨鏋剁紪鍙�")] - [MaxLength(30)] - [Column(TypeName="nvarchar(30)")] - [Editable(true)] - public string stationCode { get; set; } + /// <summary> + ///缂撳瓨鏋剁紪鍙� + /// </summary> + [Display(Name = "缂撳瓨鏋剁紪鍙�")] + [MaxLength(30)] + [Column(TypeName = "nvarchar(30)")] + [Editable(true)] + public string stationCode { get; set; } - /// <summary> - ///鐗╂枡绫诲瀷 - /// </summary> - [Display(Name ="鐗╂枡绫诲瀷")] - [MaxLength(25)] - [Column(TypeName="nvarchar(25)")] - [Editable(true)] - public string stationType { get; set; } + /// <summary> + ///鐗╂枡绫诲瀷 + /// </summary> + [Display(Name = "鐗╂枡绫诲瀷")] + [MaxLength(25)] + [Column(TypeName = "nvarchar(25)")] + [Editable(true)] + public string stationType { get; set; } - /// <summary> - ///鍖哄煙 - /// </summary> - [Display(Name ="鍖哄煙")] - [MaxLength(15)] - [Column(TypeName="nvarchar(15)")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public string area { get; set; } + /// <summary> + ///鍖哄煙 + /// </summary> + [Display(Name = "鍖哄煙")] + [MaxLength(15)] + [Column(TypeName = "nvarchar(15)")] + [Editable(true)] + [Required(AllowEmptyStrings = false)] + public string area { get; set; } - /// <summary> - ///鏄惁鍚敤 - /// </summary> - [Display(Name ="鏄惁鍚敤")] - [Column(TypeName="bit")] - [Editable(true)] - [Required(AllowEmptyStrings=false)] - public bool enable { get; set; } + /// <summary> + ///鏄惁鍚敤 + /// </summary> + [Display(Name = "鏄惁鍚敤")] + [Column(TypeName = "bit")] + [Editable(true)] + [Required(AllowEmptyStrings = false)] + public bool enable { get; set; } - /// <summary> - ///璐т綅鐘舵�� - /// </summary> - [Display(Name ="璐т綅鐘舵��")] - [MaxLength(255)] - [Column(TypeName="varchar(255)")] - [Editable(true)] - public string location_state { get; set; } + /// <summary> + ///璐т綅鐘舵�� + /// </summary> + [Display(Name = "璐т綅鐘舵��")] + [MaxLength(255)] + [Column(TypeName = "varchar(255)")] + [Editable(true)] + public string location_state { get; set; } - /// <summary> - ///鏈�鍚庣姸鎬佹敼鍙樻椂闂� - /// </summary> - [Display(Name ="鏈�鍚庣姸鎬佹敼鍙樻椂闂�")] - [Column(TypeName="datetime")] - [Editable(true)] - public DateTime? lastUpdateTime { get; set; } + /// <summary> + ///鏈�鍚庣姸鎬佹敼鍙樻椂闂� + /// </summary> + [Display(Name = "鏈�鍚庣姸鎬佹敼鍙樻椂闂�")] + [Column(TypeName = "datetime")] + [Editable(true)] + public DateTime? lastUpdateTime { get; set; } - /// <summary> - ///杞﹁疆鏁伴噺 - /// </summary> - [Display(Name ="杞﹁疆鏁伴噺")] - [Column(TypeName="int")] - public int? quantity { get; set; } + /// <summary> + ///杞﹁疆鏁伴噺 + /// </summary> + [Display(Name = "杞﹁疆鏁伴噺")] + [Column(TypeName = "int")] + public int? quantity { get; set; } - /// <summary> - ///杞﹁疆SN鍙� - /// </summary> - [Display(Name ="杞﹁疆SN鍙�")] - [MaxLength(500)] - [Column(TypeName="nvarchar(500)")] - public string bindSN { get; set; } + /// <summary> + ///杞﹁疆SN鍙� + /// </summary> + [Display(Name = "杞﹁疆SN鍙�")] + [MaxLength(500)] + [Column(TypeName = "nvarchar(500)")] + public string bindSN { get; set; } - /// <summary> - ///鎵樼洏鐘舵�� - /// </summary> - [Display(Name ="鎵樼洏鐘舵��")] - [MaxLength(100)] - [Column(TypeName="nvarchar(100)")] - public string tray_status { get; set; } + /// <summary> + ///鎵樼洏鐘舵�� + /// </summary> + [Display(Name = "鎵樼洏鐘舵��")] + [MaxLength(100)] + [Column(TypeName = "nvarchar(100)")] + public string tray_status { get; set; } - /// <summary> - ///琛� - /// </summary> - [Display(Name ="琛�")] - [Column(TypeName="int")] - public int? line { get; set; } + /// <summary> + ///琛� + /// </summary> + [Display(Name = "琛�")] + [Column(TypeName = "int")] + public int? line { get; set; } - /// <summary> - ///鍒� - /// </summary> - [Display(Name ="鍒�")] - [Column(TypeName="int")] - public int? column { get; set; } + /// <summary> + ///鍒� + /// </summary> + [Display(Name = "鍒�")] + [Column(TypeName = "int")] + public int? column { get; set; } - /// <summary> - ///澶囨敞 - /// </summary> - [Display(Name ="澶囨敞")] - [MaxLength(100)] - [Column(TypeName="nvarchar(100)")] - [Editable(true)] - public string remark { get; set; } + /// <summary> + ///澶囨敞 + /// </summary> + [Display(Name = "澶囨敞")] + [MaxLength(100)] + [Column(TypeName = "nvarchar(100)")] + [Editable(true)] + public string remark { get; set; } - /// <summary> - ///涓婚敭 - /// </summary> - [Key] - [Display(Name ="涓婚敭")] - [Column(TypeName="int")] - [Required(AllowEmptyStrings=false)] - public int zj { get; set; } - /// <summary> - ///宸ュ崟缂栧彿 - /// </summary> - [Display(Name ="宸ュ崟缂栧彿")] - [MaxLength(255)] - [Column(TypeName="nvarchar(255)")] - public string Number { get; set; } + /// <summary> + ///宸ュ崟缂栧彿 + /// </summary> + [Display(Name = "宸ュ崟缂栧彿")] + [MaxLength(255)] + [Column(TypeName = "nvarchar(255)")] + public string Number { get; set; } - /// <summary> - ///鐐夊彿 - /// </summary> - [Display(Name ="鐐夊彿")] - [Column(TypeName="int")] - public int? heatNumber { get; set; } + /// <summary> + ///鐐夊彿 + /// </summary> + [Display(Name = "鐐夊彿")] + [Column(TypeName = "int")] + public int? heatNumber { get; set; } - + } } \ No newline at end of file diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" index 93a35a3..14825bc 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs" @@ -82,6 +82,7 @@ agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString(); agvtask.agv_tasktype = tasktype; agvtask.agv_worktype = 1;//宸ヤ綔绫诲瀷 + agvtask.bindSN = station1.bindSN; agvtask.agv_materielid = station1.stationType;//鐗╂枡绫诲瀷 agvtask.agv_qty = station1.quantity; agvtask.agv_createtime = DateTime.Now; diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" index 1a470f2..b6454a8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs" @@ -44,6 +44,12 @@ respone.Message = tasteInfo.TASK_NO + "锛氶噸澶嶈皟鐢紝浠诲姟鐘舵�佷负锛�" + tasteInfo.TASK_State; return respone; } + #region 鍒ゆ柇浠诲姟鐘舵�� + //List<string> list = new List<string>() { AGVTaskStateEnum.Executing.ToString(), AGVTaskStateEnum.Complete.ToString(), AGVTaskStateEnum.Executing1.ToString(), AGVTaskStateEnum.Complete1.ToString() }; + //var index = list.IndexOf(task.agv_taskstate) + 1; + //if (tasteInfo.TASK_State < index) + // throw new Exception("浠诲姟鐘舵�佹洿鏂板紓甯革紒褰撳墠浠诲姟鐘舵�佷负锛�" + index + ";璇锋眰鏇存柊鐘舵�佷负锛�" + tasteInfo.TASK_State); + #endregion if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Executing) task.agv_executingBeginTime = DateTime.Now; else if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete) diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272IP\345\210\206\351\205\215.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272IP\345\210\206\351\205\215.xlsx" new file mode 100644 index 0000000..03b8e72 --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\205\266\344\273\226/\347\216\260\345\234\272IP\345\210\206\351\205\215.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx" deleted file mode 100644 index 575ea7e..0000000 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\351\234\200\350\246\201\351\207\207\351\233\206\347\232\204\344\277\241\346\201\257.xlsx" +++ /dev/null Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" deleted file mode 100644 index d24434a..0000000 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/AGV\344\270\216\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" +++ /dev/null Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" new file mode 100644 index 0000000..a65b9bb --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\344\270\216AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\345\215\217\350\256\256.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256.xlsx" new file mode 100644 index 0000000..eb80fcb --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/PCS\350\267\237AGV\345\222\214\346\241\201\346\236\266\351\230\262\345\221\206\344\272\244\344\272\222\345\215\217\350\256\256/PCS\345\222\214\346\241\201\346\236\266\345\215\217\350\256\256.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" deleted file mode 100644 index 0ca77ad..0000000 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\343\200\201PCS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" +++ /dev/null Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" new file mode 100644 index 0000000..8215e72 --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214AGV\346\216\245\345\217\243/WMS\345\222\214AGV\346\216\245\345\217\243\345\215\217\350\256\256.xlsx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/5f5bd6b6d22369969ae3b3688408dbc.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/5f5bd6b6d22369969ae3b3688408dbc.png" new file mode 100644 index 0000000..39583ae --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/5f5bd6b6d22369969ae3b3688408dbc.png" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/WMS\347\263\273\347\273\237\346\216\245\345\217\243.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/WMS\347\263\273\347\273\237\346\216\245\345\217\243.docx" new file mode 100644 index 0000000..5dc3353 --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/WMS\347\263\273\347\273\237\346\216\245\345\217\243.docx" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/c40a9fff20facac273c88e13593a7c1.png" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/c40a9fff20facac273c88e13593a7c1.png" new file mode 100644 index 0000000..1625c0c --- /dev/null +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WMS\345\222\214MES\346\216\245\345\217\243/c40a9fff20facac273c88e13593a7c1.png" Binary files differ diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx" index d93ee39..28d7d14 100644 --- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx" +++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\226\260\345\242\236\350\256\276\345\244\207\345\215\217\350\256\256/\345\244\252\351\207\215\344\272\244\344\272\222-\345\272\223\345\217\243\347\212\266\346\200\201_V1.xlsx" Binary files differ -- Gitblit v1.9.3