分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-03-05 db6156a92cc59467bde608a00c76952ebc75e488
优化代码
已删除1个文件
已修改40个文件
已添加61个文件
已重命名1个文件
4551 ■■■■■ 文件已修改
代码管理/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_detail.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/router/viewGird.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data_detectionline.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_detail.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Comm/MES_Info/Response/Mes_WorkInfo.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data_detectionline.cs 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data_detectionline.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_areainfo.cs 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_areainfo.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_data_detectionlineMapConfig.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs 352 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_data_detectionlineRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IRepositories/ToMES/Idt_mes_detailRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IRepositories/ToMES/Idt_mes_headRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_data_detectionlineService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_data_detectionlineService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Idt_mes_detailService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Idt_mes_headService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_detailService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_data_detectionlineRepository.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Repositories/ToMES/dt_mes_detailRepository.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Repositories/ToMES/dt_mes_headRepository.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_data_detectionlineService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_data_detectionlineService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_detailService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/dt_mes_detailService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/dt_mes_headService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_geometry_data_detectionlineController.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_detailController.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_geometry_data_detectionlineController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_mes_detailController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_mes_headController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data_detectionline.js 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/router/viewGird.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask_hty.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data_detectionline.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data_detectionline.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvOutWarehousePara.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvTransferListPara.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data_detectionline.cs 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data_detectionline.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask_hty.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/dt_mes_detail.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/dt_mes_head.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_data_detectionlineMapConfig.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_data_detectionlineRepository.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_data_detectionlineService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_data_detectionlineService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_data_detectionlineRepository.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_data_detectionlineService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_data_detectionlineService.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_data_detectionlineController.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_data_detectionlineController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/DB/dt_geometry_data(机加工).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/DB/dt_geometry_data(检测线).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/DB/dt_geometry_data(车轮数据).xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/DB/机加工dt_geometry_data.sql 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/DB/检测线dt_geometry_data.sql 677 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/其他/现场IP分配.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/PCS与AGV和桁架防呆协议.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/PCS和桁架协议.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/REQ_GEO.pdf 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/PCS跟AGV和桁架防呆交互协议/REQ_INPUT.pdf 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js
@@ -35,6 +35,12 @@
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
        this.pagination.order = "asc";
        this.columns.forEach(row=>{
          if(row.field=="ID"){
            row.sort=true;
          }
        })
    },
    onInited() {
      //框架初始化配置后
´úÂë¹ÜÀí/PCS/WCS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
        this.pagination.order = "asc";
        this.columns.forEach(row=>{
          if(row.field=="ID"){
            row.sort=true;
          }
        })
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_detail.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/PCS/WCS_Client/src/extension/widesea_wcs/tomes/dt_mes_head.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/PCS/WCS_Client/src/router/viewGird.js
@@ -193,6 +193,18 @@
        path: '/dt_pattern',
        name: 'dt_pattern',
        component: () => import('@/views/widesea_wcs/wcs/dt_pattern.vue')
    }    ,{
        path: '/dt_mes_head',
        name: 'dt_mes_head',
        component: () => import('@/views/widesea_wcs/tomes/dt_mes_head.vue')
    }    ,{
        path: '/dt_mes_detail',
        name: 'dt_mes_detail',
        component: () => import('@/views/widesea_wcs/tomes/dt_mes_detail.vue')
    }    ,{
        path: '/dt_geometry_data_detectionline',
        name: 'dt_geometry_data_detectionline',
        component: () => import('@/views/widesea_wcs/baseinfo/dt_geometry_data_detectionline.vue')
    }]
export default viewgird
´úÂë¹ÜÀí/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue
@@ -22,27 +22,28 @@
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'TypeId',
                key: 'ID',
                footer: "Foots",
                cnName: '车轮信息',
                cnName: '机加工车轮信息',
                name: 'baseinfo/dt_geometry_data',
                url: "/dt_geometry_data/",
                sortName: "TypeId"
                sortName: "ID"
            });
            const editFormFields = ref({"Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
            const editFormOptions = ref([[{"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"","required":true,"field":"a","type":"text"},
                               {"title":"","required":true,"field":"b","type":"text"}],
                              [{"title":"","required":true,"field":"c","type":"text"},
                               {"title":"","required":true,"field":"d","type":"text"}],
                              [{"title":"","required":true,"field":"e","type":"text"},
                               {"title":"","required":true,"field":"f","type":"text"}],
                              [{"title":"","required":true,"field":"g","type":"text"},
                               {"title":"","required":true,"field":"h","type":"decimal"}]]);
            const searchFormFields = ref({"Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"}]]);
            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left',sort:true},
            const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
            const editFormOptions = ref([[{"title":"","required":true,"field":"TypeId","type":"text"},
                               {"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"a","required":true,"field":"a","type":"text"},
                               {"title":"b","required":true,"field":"b","type":"text"}],
                              [{"title":"c","required":true,"field":"c","type":"text"},
                               {"title":"d","required":true,"field":"d","type":"text"}],
                              [{"title":"e","required":true,"field":"e","type":"text"},
                               {"title":"f","required":true,"field":"f","type":"text"}],
                              [{"title":"g","required":true,"field":"g","type":"text"},
                               {"title":"h","required":true,"field":"h","type":"text"}]]);
            const searchFormFields = ref({"TypeId":"","Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"},{"title":"","field":"TypeId","type":"like"}]]);
            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,require:true,align:'left',sort:true},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left'},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
@@ -50,7 +51,8 @@
                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'}]);
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'},
                       {field:'ID',title:'ID',type:'int',sort:true,width:80,hidden:true,readonly:true,require:true,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
´úÂë¹ÜÀí/PCS/WCS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data_detectionline.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.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/baseinfo/dt_geometry_data_detectionline.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'ID',
                footer: "Foots",
                cnName: '检测线车轮信息',
                name: 'baseinfo/dt_geometry_data_detectionline',
                url: "/dt_geometry_data_detectionline/",
                sortName: "ID"
            });
            const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":"","skip_01":"","skip_02":"","skip_03":"","skip_04":"","skip_05":"","skip_06":"","skip_07":"","skip_08":"","skip_09":"","skip_10":"","skip_11":"","skip_12":"","skip_13":"","skip_14":"","skip_15":""});
            const editFormOptions = ref([[{"title":"","required":true,"field":"TypeId","type":"text"},
                               {"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"","required":true,"field":"a","type":"text"},
                               {"title":"","required":true,"field":"b","type":"text"}],
                              [{"title":"","required":true,"field":"c","type":"text"},
                               {"title":"","required":true,"field":"d","type":"text"}],
                              [{"title":"","required":true,"field":"e","type":"text"},
                               {"title":"","required":true,"field":"f","type":"text"}],
                              [{"title":"","required":true,"field":"g","type":"text"},
                               {"title":"","required":true,"field":"h","type":"text"}],
                              [{"title":"","field":"skip_01","type":"text"},
                               {"title":"","field":"skip_02","type":"text"}],
                              [{"title":"","field":"skip_03","type":"text"},
                               {"title":"","field":"skip_04","type":"text"}],
                              [{"title":"","field":"skip_05","type":"text"},
                               {"title":"","field":"skip_06","type":"text"}],
                              [{"title":"","field":"skip_07","type":"text"},
                               {"title":"","field":"skip_08","type":"text"}],
                              [{"title":"","field":"skip_09","type":"text"},
                               {"title":"","field":"skip_10","type":"text"}],
                              [{"title":"","field":"skip_11","type":"text"},
                               {"title":"","field":"skip_12","type":"text"}],
                              [{"title":"","field":"skip_13","type":"text"},
                               {"title":"","field":"skip_14","type":"text"}],
                              [{"title":"","field":"skip_15","type":"text"}]]);
            const searchFormFields = ref({"TypeId":"","Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"},{"title":"","field":"TypeId","type":"like"}]]);
            const columns = ref([{field:'ID',title:'ID',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'TypeId',title:'TypeId',type:'int',width:110,require:true,align:'left',sort:true},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left'},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
                       {field:'d',title:'d',type:'float',width:110,require:true,align:'left'},
                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'},
                       {field:'skip_01',title:'skip_01',type:'byte',width:110,align:'left'},
                       {field:'skip_02',title:'skip_02',type:'byte',width:110,align:'left'},
                       {field:'skip_03',title:'skip_03',type:'byte',width:110,align:'left'},
                       {field:'skip_04',title:'skip_04',type:'byte',width:110,align:'left'},
                       {field:'skip_05',title:'skip_05',type:'byte',width:110,align:'left'},
                       {field:'skip_06',title:'skip_06',type:'byte',width:110,align:'left'},
                       {field:'skip_07',title:'skip_07',type:'byte',width:110,align:'left'},
                       {field:'skip_08',title:'skip_08',type:'byte',width:110,align:'left'},
                       {field:'skip_09',title:'skip_09',type:'byte',width:110,align:'left'},
                       {field:'skip_10',title:'skip_10',type:'byte',width:110,align:'left'},
                       {field:'skip_11',title:'skip_11',type:'byte',width:110,align:'left'},
                       {field:'skip_12',title:'skip_12',type:'byte',width:110,align:'left'},
                       {field:'skip_13',title:'skip_13',type:'byte',width:110,align:'left'},
                       {field:'skip_14',title:'skip_14',type:'byte',width:110,align:'left'},
                       {field:'skip_15',title:'skip_15',type:'byte',width:110,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_detail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wcs/tomes/dt_mes_detail.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/tomes/dt_mes_detail.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'id',
                footer: "Foots",
                cnName: '工单子表',
                name: 'tomes/dt_mes_detail',
                url: "/dt_mes_detail/",
                sortName: "id"
            });
            const editFormFields = ref({});
            const editFormOptions = ref([]);
            const searchFormFields = ref({});
            const searchFormOptions = ref([]);
            const columns = ref([{field:'mes_detail_id',title:'工单明细ID',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'jobID',title:'工单编号',type:'string',width:110,align:'left',sort:true},
                       {field:'heatID',title:'炉代号',type:'string',width:110,align:'left'},
                       {field:'billetID',title:'钢坯号',type:'int',width:110,align:'left'},
                       {field:'SN',title:'车轮SN号',type:'string',width:110,align:'left'},
                       {field:'heatBatchID',title:'热处理批次',type:'string',width:110,align:'left'},
                       {field:'mes_headID',title:'工单头表ID',type:'guid',width:110,hidden:true,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/PCS/WCS_Client/src/views/widesea_wcs/tomes/dt_mes_head.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wcs/tomes/dt_mes_head.js此处编写
 -->
<template>
    <view-grid ref="grid"
               :columns="columns"
               :detail="detail"
               :editFormFields="editFormFields"
               :editFormOptions="editFormOptions"
               :searchFormFields="searchFormFields"
               :searchFormOptions="searchFormOptions"
               :table="table"
               :extend="extend">
    </view-grid>
</template>
<script>
    import extend from "@/extension/widesea_wcs/tomes/dt_mes_head.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'ID',
                footer: "Foots",
                cnName: '工单头表',
                name: 'tomes/dt_mes_head',
                url: "/dt_mes_head/",
                sortName: "ID"
            });
            const editFormFields = ref({});
            const editFormOptions = ref([]);
            const searchFormFields = ref({});
            const searchFormOptions = ref([]);
            const columns = ref([{field:'mes_id',title:'mes_id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'workOrder',title:'工作令号',type:'string',width:110,align:'left',sort:true},
                       {field:'jobID',title:'工单编号',type:'string',width:110,align:'left'},
                       {field:'reqID',title:'需求单号',type:'string',width:110,align:'left'},
                       {field:'reqIDLineNo',title:'需求单号行号',type:'string',width:110,align:'left'},
                       {field:'materialCode',title:'物料编码',type:'string',width:110,align:'left'},
                       {field:'drawingNo',title:'图号',type:'string',width:110,align:'left'},
                       {field:'drawingNoVer',title:'技术状态',type:'string',width:110,align:'left'},
                       {field:'productName',title:'产品名称',type:'string',width:110,align:'left'},
                       {field:'processCode',title:'工单类型',bind: { key: 'WorkTypes' },type:'string',width:110,align:'left'},
                       {field:'quantity',title:'计划数量',type:'int',width:110,align:'left'},
                       {field:'finishNum',title:'完成数量',type:'int',width:110,align:'left'},
                       {field:'skip_op_1',title:'视觉检测1',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
                       {field:'skip_op_2',title:'视觉检测2',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
                       {field:'skip_op_3',title:'链条机',type:'bool',bind:{ key:'skip_op_Status',data:[]},width:110,require:true,align:'left'},
                       {field:'area',title:'入库库区',type:'string',width:110,align:'left'},
                       {field:'typeID',title:'轮型代码',type:'string',width:110,align:'left'},
                       {field:'stackNoRange',title:'打包数量',type:'int',width:110,align:'left'},
                       {field:'maxDiameterDiff',title:'轮径偏差',type:'decimal',width:110,align:'left'},
                       {field:'expectedStartTime',title:'计划开始时间',type:'datetime',width:150,align:'left',sort:true},
                       {field:'expectedFinishTime',title:'计划完成时间',type:'datetime',width:150,align:'left',sort:true},
                       {field:'CreateTime',title:'创建时间',type:'datetime',width:150,align:'left',sort:true},
                       {field:'creator',title:'创建者',type:'string',width:100,align:'left'},
                       {field:'productDesc',title:'产品描述',type:'string',width:180,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Comm/LogInfo/WritePCSLog.cs
@@ -42,11 +42,11 @@
                interface_name = name,
                interface_message = message,
            };
            dt_Interfacerecord_pcs data = null;
            if (interfacerecord.interface_message != "")
                data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && (interfacerecord.interface_createtime.Ticks - x.interface_createtime.Ticks >= 5) && x.interface_paradata.Contains(id));//超过5秒记录
            //data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && x.interface_createtime.Day == DateTime.Now.Day && x.interface_paradata.Contains(id));
            if (data == null)
            //dt_Interfacerecord_pcs data = null;
            //if (interfacerecord.interface_message != "")
            //    data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && (interfacerecord.interface_createtime.Ticks - x.interface_createtime.Ticks >= 5) && x.interface_paradata.Contains(id));//超过5秒记录
            ////data = interfacerecord_PcsRepository.FindFirst(x => x.interface_message == interfacerecord.interface_message && x.interface_remark == interfacerecord.interface_remark && x.interface_createtime.Day == DateTime.Now.Day && x.interface_paradata.Contains(id));
            //if (data == null)
                interfacerecord_PcsRepository.Add(interfacerecord, true);
        }
    }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Comm/MES_Info/Response/Mes_WorkInfo.cs
@@ -9,19 +9,14 @@
    public class Mes_WorkInfo
    {
        /// <summary>
        /// å·¥ä½œä»¤å·
        /// </summary>
        public string workOrder { get; set; }
        /// <summary>
        /// å·¥å•类型
        /// å·¥å•类型 (17-机加工 28-检测线)
        /// </summary>
        public string processCode { get; set; }
        /// <summary>
        /// å®Œæˆæ•°é‡
        /// å·¥ä½œä»¤å·
        /// </summary>
        public int finishNum { get; set; }
        public string workOrder { get; set; }
        /// <summary>
        /// å·¥å•号
@@ -66,7 +61,7 @@
        /// <summary>
        /// è®¡åˆ’数量
        /// </summary>
        public int? quantity { get; set; }
        public int quantity { get; set; }
        /// <summary>
        /// è½®åž‹ä»£ç 
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data.cs
@@ -13,13 +13,12 @@
namespace WIDESEA_Entity.DomainModels
{
    [Entity(TableCnName = "车轮信息",TableName = "dt_geometry_data")]
    [Entity(TableCnName = "机加工车轮信息",TableName = "dt_geometry_data")]
    public partial class dt_geometry_data:BaseEntity
    {
        /// <summary>
       ///
       /// </summary>
       [Key]
       [Display(Name ="TypeId")]
       [Column(TypeName="int")]
       [Editable(true)]
@@ -37,7 +36,7 @@
       public string Description { get; set; }
       /// <summary>
       ///
       ///a
       /// </summary>
       [Display(Name ="a")]
       [Column(TypeName="float")]
@@ -46,7 +45,7 @@
       public float a { get; set; }
       /// <summary>
       ///
       ///b
       /// </summary>
       [Display(Name ="b")]
       [Column(TypeName="float")]
@@ -55,7 +54,7 @@
       public float b { get; set; }
       /// <summary>
       ///
       ///c
       /// </summary>
       [Display(Name ="c")]
       [Column(TypeName="float")]
@@ -64,7 +63,7 @@
       public float c { get; set; }
       /// <summary>
       ///
       ///d
       /// </summary>
       [Display(Name ="d")]
       [Column(TypeName="float")]
@@ -73,7 +72,7 @@
       public float d { get; set; }
       /// <summary>
       ///
       ///e
       /// </summary>
       [Display(Name ="e")]
       [Column(TypeName="float")]
@@ -82,7 +81,7 @@
       public float e { get; set; }
       /// <summary>
       ///
       ///f
       /// </summary>
       [Display(Name ="f")]
       [Column(TypeName="float")]
@@ -91,7 +90,7 @@
       public float f { get; set; }
       /// <summary>
       ///
       ///g
       /// </summary>
       [Display(Name ="g")]
       [Column(TypeName="float")]
@@ -100,7 +99,7 @@
       public float g { get; set; }
       /// <summary>
       ///
       ///h
       /// </summary>
       [Display(Name ="h")]
       [Column(TypeName="float")]
@@ -108,6 +107,15 @@
       [Required(AllowEmptyStrings=false)]
       public float h { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Key]
       [Display(Name ="ID")]
       [Column(TypeName="int")]
       [Required(AllowEmptyStrings=false)]
       public int ID { get; set; }
       
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data_detectionline.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,242 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_geometry_data_detectionline")]
    public partial class dt_geometry_data_detectionline:BaseEntity
    {
        /// <summary>
       ///
       /// </summary>
       [Key]
       [Display(Name ="ID")]
       [Column(TypeName="int")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public int ID { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="TypeId")]
       [Column(TypeName="int")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public int TypeId { get; set; }
       /// <summary>
       ///图号
       /// </summary>
       [Display(Name ="图号")]
       [MaxLength(100)]
       [Column(TypeName="nvarchar(100)")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public string Description { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="a")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float a { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="b")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float b { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="c")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float c { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="d")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float d { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="e")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float e { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="f")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float f { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="g")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float g { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="h")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float h { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_01")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_01 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_02")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_02 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_03")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_03 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_04")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_04 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_05")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_05 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_06")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_06 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_07")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_07 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_08")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_08 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_09")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_09 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_10")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_10 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_11")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_11 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_12")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_12 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_13")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_13 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_14")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_14 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_15")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_15 { get; set; }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data_detectionline.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_geometry_data_detectionline
    {
        //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_areainfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_areainfo")]
    public partial class dt_areainfo:BaseEntity
    {
        /// <summary>
       ///库区ID
       /// </summary>
       [Key]
       [Display(Name ="库区ID")]
       [Column(TypeName="int")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public int area_code { get; set; }
       /// <summary>
       ///名称
       /// </summary>
       [Display(Name ="名称")]
       [MaxLength(50)]
       [Column(TypeName="nvarchar(50)")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public string area_name { get; set; }
       /// <summary>
       ///描述
       /// </summary>
       [Display(Name ="描述")]
       [MaxLength(250)]
       [Column(TypeName="nvarchar(250)")]
       [Editable(true)]
       public string area_des { get; set; }
       /// <summary>
       ///创建者
       /// </summary>
       [Display(Name ="创建者")]
       [MaxLength(20)]
       [Column(TypeName="nvarchar(20)")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public string area_creator { get; set; }
       /// <summary>
       ///创建时间
       /// </summary>
       [Display(Name ="创建时间")]
       [Column(TypeName="datetime")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public DateTime area_datetime { get; set; }
       /// <summary>
       ///绑定类型
       /// </summary>
       [Display(Name ="绑定类型")]
       [MaxLength(100)]
       [Column(TypeName="nvarchar(100)")]
       [Required(AllowEmptyStrings=false)]
       public string area_bindType { get; set; }
       /// <summary>
       ///最大数量
       /// </summary>
       [Display(Name ="最大数量")]
       [Column(TypeName="int")]
       public int? area_max { get; set; }
       /// <summary>
       ///最小数量
       /// </summary>
       [Display(Name ="最小数量")]
       [Column(TypeName="int")]
       public int? area_minimum { get; set; }
       /// <summary>
       ///备用区1
       /// </summary>
       [Display(Name ="备用区1")]
       [MaxLength(50)]
       [Column(TypeName="nvarchar(50)")]
       public string area_spare1 { get; set; }
       /// <summary>
       ///备用区2
       /// </summary>
       [Display(Name ="备用区2")]
       [MaxLength(50)]
       [Column(TypeName="nvarchar(50)")]
       public string area_spare2 { get; set; }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs
@@ -36,13 +36,13 @@
        public string stationCode { get; set; }
        /// <summary>
        ///物料类型
        ///图号/物料类型
        /// </summary>
        [Display(Name = "物料类型")]
        [MaxLength(25)]
        [Column(TypeName = "nvarchar(25)")]
        //[Editable(true)]
        public string? stationType { get; set; }
        public string stationType { get; set; }
        /// <summary>
        ///区域
@@ -118,14 +118,14 @@
        /// </summary>
        [Display(Name = "行")]
        [Column(TypeName = "int")]
        public int? line { get; set; }
        public int line { get; set; }
        /// <summary>
        ///列
        /// </summary>
        [Display(Name = "列")]
        [Column(TypeName = "int")]
        public int? column { get; set; }
        public int column { get; set; }
        /// <summary>
        ///工单编号
@@ -140,7 +140,9 @@
        ///炉号
        /// </summary>
        [Display(Name = "炉号")]
        [Column(TypeName = "int")]
        public int? heatNumber { get; set; }
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        public string heatNumber { get; set; }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_areainfo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_areainfo
    {
        //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs
@@ -130,7 +130,7 @@
        [Display(Name = "工单数量")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? quantity { get; set; }
        public int quantity { get; set; }
        /// <summary>
        ///轮型代码
@@ -186,6 +186,36 @@
        [Column(TypeName = "nvarchar(40)")]
        public string creator { get; set; }
        //public string processCode { get; set; }
        /// <summary>
        ///库区
        /// </summary>
        [Display(Name = "库区")]
        [MaxLength(15)]
        [Column(TypeName = "nvarchar(15)")]
        public string area { get; set; }
        /// <summary>
        ///视觉检测设备1
        /// </summary>
        [Display(Name = "视觉检测设备1")]
        [Column(TypeName = "bit")]
        [Editable(true)]
        public bool skip_op_1 { get; set; }
        /// <summary>
        ///视觉检测设备2
        /// </summary>
        [Display(Name = "视觉检测设备2")]
        [Column(TypeName = "bit")]
        [Editable(true)]
        public bool skip_op_2 { get; set; }
        /// <summary>
        ///链条机
        /// </summary>
        [Display(Name = "链条机")]
        [Column(TypeName = "bit")]
        [Editable(true)]
        public bool skip_op_3 { get; set; }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_data_detectionlineMapConfig.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_geometry_data_detectionlineMapConfig : EntityMappingConfiguration<dt_geometry_data_detectionline>
    {
        public override void Map(EntityTypeBuilder<dt_geometry_data_detectionline>
        builderTable)
        {
          //b.Property(x => x.StorageName).HasMaxLength(45);
        }
     }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/AGVandGantry.cs
@@ -41,17 +41,19 @@
                    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)
                    {
                        Gantry_client.WriteByOrder("W_AGV_Leaving", false, numbers[requestin.AreaNr - 1]);//正在离开
                        Gantry_client.WriteByOrder("W_AGV_Entering", true, numbers[requestin.AreaNr - 1]);//正在进入
                        var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//桁架反馈AGV占位信号
                        if (!Area_Occupied_by_AGV) throw new Exception("桁架未反馈AGV占位信号");
                    }
                    else if (requestin.Type == 2)
                    {
                        Gantry_client.WriteByOrder("W_AGV_Entering", false, numbers[requestin.AreaNr - 1]);//正在进入
                        Gantry_client.WriteByOrder("W_AGV_Leaving", true, numbers[requestin.AreaNr - 1]);//正在离开
                        var Area_Occupied_by_AGV = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Area_Occupied_by_AGV").First(), Gantry_client);//桁架反馈AGV占位信号
                        if (Area_Occupied_by_AGV) throw new Exception("桁架未反馈AGV离开信号");
@@ -72,6 +74,7 @@
            catch (Exception ex)
            {
                respone.Message = ex.Message;
                return respone;
            }
            return respone;
        }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs
@@ -19,8 +19,11 @@
        Idt_plcinfoheadRepository repository = new dt_plcinfoheadRepository(Context);
        Idt_plcinfodetailRepository plcRepository = new dt_plcinfodetailRepository(Context);
        Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
        Idt_geometry_data_detectionlineRepository detectionlineRepository = new dt_geometry_data_detectionlineRepository(Context);
        Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
        Idt_mes_detailRepository mes_DetailRepository = new dt_mes_detailRepository(Context);
        Idt_mes_headRepository mes_HeadRepository = new dt_mes_headRepository(Context);
        Idt_patternRepository patternRepository = new dt_patternRepository(Context);
        #region æŸ¥è¯¢è½¦è½®æ•°æ®
        public void QueryWheeldata(PLCClient client)
        {
@@ -35,37 +38,54 @@
                    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)
                        if (name != "辊道上料查询车轮")
                        {
                            //DBExtension.Write(details.Where(x => x.plcdetail_name == "W_i_status").First(), client, (Int16)2);
                            //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);
                            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);
                                //1-找到数据,2-未找到工件类型数据
                                client.WriteByOrder("W_i_status", (byte)2, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                            else
                            {
                                //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);
                                client.WriteByOrder("W_i_parameter_d", (float)geometry.d, name);
                                client.WriteByOrder("W_i_parameter_e", (float)geometry.e, name);
                                client.WriteByOrder("W_i_parameter_f", (float)geometry.f, name);
                                client.WriteByOrder("W_i_parameter_g", (float)geometry.g, name);
                                client.WriteByOrder("W_i_parameter_h", (float)geometry.h, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                        }
                        else
                        {
                            //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);
                            client.WriteByOrder("W_i_parameter_d", (float)geometry.d, name);
                            client.WriteByOrder("W_i_parameter_e", (float)geometry.e, name);
                            client.WriteByOrder("W_i_parameter_f", (float)geometry.f, name);
                            client.WriteByOrder("W_i_parameter_g", (float)geometry.g, name);
                            client.WriteByOrder("W_i_parameter_h", (float)geometry.h, name);
                            //屏蔽工艺(屏蔽视觉检测/屏蔽涂油)
                            if (name != "辊道上料查询车轮")
                            var geometry = detectionlineRepository.FindFirst(x => x.TypeId == (Int32)wp_type);
                            if (geometry == null)
                            {
                                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("W_i_status", (byte)2, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                            client.WriteByOrder("R_oi_on", (byte)0, name);
                            else
                            {
                                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);
                                client.WriteByOrder("W_i_parameter_d", (float)geometry.d, name);
                                client.WriteByOrder("W_i_parameter_e", (float)geometry.e, name);
                                client.WriteByOrder("W_i_parameter_f", (float)geometry.f, name);
                                client.WriteByOrder("W_i_parameter_g", (float)geometry.g, name);
                                client.WriteByOrder("W_i_parameter_h", (float)geometry.h, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                        }
                    }
                }
            }
@@ -89,29 +109,89 @@
                    var on = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_oi_on").First(), client);
                    if ((byte)on == 1)
                    {
                        var wp_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_id").First(), client);
                        //需添加查询车轮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)
                        //var wp_id = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_o_wp_id").First(), client).ToString();
                        var wp_id = client.ReadByOrder<string>("R_o_wp_id", name);
                        var mes_Detail = mes_DetailRepository.FindFirst(x => x.SN == wp_id);
                        if (mes_Detail == null)
                        {
                            //1-好,允许加工,2-不在列表中,3-不加工车轮类型,4-手动入库模式人工未选择库区
                            client.WriteByOrder("W_i_status", (Int16)2, name);
                            client.WriteByOrder("R_oi_on", (Int16)0, name);
                            client.WriteByOrder("W_i_status", (byte)2, name);
                            client.WriteByOrder("R_oi_on", (byte)0, name);
                            continue;
                        }
                        var mes_Head = mes_HeadRepository.FindFirst(x => x.jobID == mes_Detail.jobID);
                        if (mes_Head == null)
                        {
                            client.WriteByOrder("W_i_status", (byte)2, name);
                            client.WriteByOrder("R_oi_on", (byte)0, name);
                            continue;
                        }
                        if (name != "辊道上料查询订单")
                        {
                            //需添加查询车轮SN号订单逻辑   éœ€æ·»åŠ å…¥åº“æ¨¡å¼åˆ¤æ–­ï¼Œæ‰‹åŠ¨å…¥åº“æ¨¡å¼éœ€äººå·¥æ·»åŠ å…¥åº“åº“åŒºï¼Œå¦åˆ™æŠ¥è­¦
                            var pattern = patternRepository.FindFirst(x => x.pattern_name == "入库模式").pattern_state;
                            if (pattern != 1 && string.IsNullOrEmpty(mes_Head.area))
                            {
                                client.WriteByOrder("W_i_status", (byte)4, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                                continue;
                            }
                            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);
                            var geometry = dataRepository.FindFirst(x => x.Description == mes_Head.drawingNo);
                            if (geometry == null)
                            {
                                //1-好,允许加工,2-不在列表中,3-不加工车轮类型,4-手动入库模式人工未选择库区
                                client.WriteByOrder("W_i_status", (byte)2, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                                continue;
                            }
                            else
                            {
                                //1-好,允许加工,2-不在列表中,3-不加工车轮类型,4-手动入库模式人工未选择库区
                                client.WriteByOrder("W_i_status", (byte)1, name);
                                client.WriteByOrder("W_i_job_id", mes_Detail.jobID, name);
                                client.WriteByOrder("W_i_drawing_id", mes_Head.drawingNo, name);
                                client.WriteByOrder("W_i_heat_id", mes_Detail.heatID, name);
                                //client.WriteByOrder("W_i_sourceheat", "", name);
                                client.WriteByOrder("W_i_batch_id", mes_Detail.heatBatchID, name);
                                //屏蔽工艺(屏蔽视觉检测/屏蔽涂油)
                                //if (name != "辊道上料查询车轮")
                                //{
                                client.WriteByOrder("W_i_skip_op_SJ1", mes_Head.skip_op_1, name);//屏蔽视觉检测设备1
                                client.WriteByOrder("W_i_skip_op_SJ2", mes_Head.skip_op_2, name);//屏蔽视觉检测设备2
                                client.WriteByOrder("W_i_skip_op_LT", mes_Head.skip_op_3, name);//屏蔽链条机
                                //}
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                        }
                        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);
                            //client.WriteByOrder("W_i_heat_id", "", name);
                            //client.WriteByOrder("W_i_sourceheat", "", name);
                            //client.WriteByOrder("W_i_batch_id", "", name);
                            client.WriteByOrder("R_oi_on", (Int16)0, name);
                            var geometry = dataRepository.FindFirst(x => x.Description == mes_Head.drawingNo);
                            if (geometry == null)
                            {
                                //1-好,允许加工,2-不在列表中,3-不加工车轮类型,4-手动入库模式人工未选择库区
                                client.WriteByOrder("W_i_status", (byte)2, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                                continue;
                            }
                            else
                            {
                                //1-好,允许加工,2-不在列表中,3-不加工车轮类型,4-手动入库模式人工未选择库区
                                client.WriteByOrder("W_i_status", (byte)1, name);
                                client.WriteByOrder("W_i_job_id", mes_Detail.jobID, name);
                                client.WriteByOrder("W_i_drawing_id", mes_Head.drawingNo, name);
                                client.WriteByOrder("W_i_heat_id", mes_Detail.heatID, name);
                                //client.WriteByOrder("W_i_sourceheat", "", name);
                                client.WriteByOrder("W_i_batch_id", mes_Detail.heatBatchID, name);
                                client.WriteByOrder("R_oi_on", (byte)0, name);
                            }
                        }
                    }
                }
            }
@@ -122,7 +202,7 @@
        }
        #endregion
        #region ä¸‹æ–™ä½äº¤äº’
        #region ä¸‹æ–™ä½äº¤äº’   ï¼ï¼ï¼ä¸‹æ–™é€»è¾‘需修改
        public void Layofflevel(PLCClient client)
        {
            try
@@ -140,46 +220,178 @@
                    var Request = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Request_Load").First(), client);
                    if (!Request) continue;
                    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 Stations = stationinfoRepository.Find(x => x.area == PipelineJob.area_code(name));
                    foreach (var station in Stations)
                    {
                        if (!station.enable)
                            client.WriteByOrder("W_Enabl_Load", false, name);//信号为false桁架停止进入
                    }
                    var NGStation = "X01001003";
                    if (name == "2单元下料区") NGStation = "X02001003";
                    if (name == "3单元下料区") NGStation = "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号
                    for (int i = 0; i < StationCodes.Count - 1; i++)
                    var mes_Detail = mes_DetailRepository.FindFirst(x => x.SN == Wheel_id);
                    var mes_Head = mes_HeadRepository.FindFirst(x => x.jobID == mes_Detail.jobID);
                    var PartStatus = (Int32)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PartStatus").First(), client);//1:ok;2:nok
                    if (PartStatus == 1)
                    {
                        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)
                        var Stationinfo = Stations
                        .Where(x => x.enable
                        && x.stationCode != NGStation
                        && x.location_state == LocationStateEnum.Stroge.ToString()
                        && x.quantity < 5
                        && x.stationType == PipelineJob.QueryMateriel(Wheel_Type)
                        && x.Number == mes_Detail.jobID
                        && x.heatNumber == mes_Detail.heatID).FirstOrDefault();
                        if (Stationinfo == null)
                            Stationinfo = Stations.Where(x => x.enable && x.stationCode != NGStation && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 0).FirstOrDefault();
                        if (Stationinfo != null)
                        {
                            if (PartStatus == 1 && NG != station.stationCode)
                            var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == Stationinfo.stationCode).ToList();
                            var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//读取托盘信号:1:有,2无
                            if (PalletSignal == 1)
                            {
                                client.WriteByOrder("W_AreaNr", (Int16)i + 1, name);//区域货位号
                                client.WriteByOrder("W_IndexNr", (Int16)station.quantity + 1, name);//托盘上的第几个车轮
                                var SNS = Stationinfo.bindSN.Split(",");
                                List<string> list = new List<string>();
                                foreach (var SN in SNS)
                                {
                                    if (!string.IsNullOrEmpty(SN))
                                        list.Add(SN);
                                }
                                //缓存架上车轮数量与SN号数量不一致
                                if (list.Count != Stationinfo.quantity)
                                {
                                    Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
                                    stationinfoRepository.Update(Stationinfo, true);
                                    //写入桁架报警信号
                                    throw new Exception("下料位车轮数量与SN号数量不一致,下料位编号:" + Stationinfo.stationCode);
                                }
                                var area = Convert.ToInt16(Stationinfo.stationCode.Substring(Stationinfo.stationCode.Length - 1, 1));
                                client.WriteByOrder("W_AreaNr", (Int16)area, name);//区域货位号
                                client.WriteByOrder("W_IndexNr", (Int16)Stationinfo.quantity + 1, name);//托盘上的第几个车轮
                                client.WriteByOrder("W_Storage_Type", (Int16)1, name);//托盘类型1-横放;2-竖放(暂时只有横放托盘)
                                client.WriteByOrder("W_Enabl_Load", true, name);//是否允许
                                return;
                            }
                            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);//是否允许
                        }
                    }
                    else if (PartStatus == 2)
                    {
                        var Stationinfo = Stations
                        .Where(x => x.enable
                        && x.stationCode == NGStation
                        && x.location_state == LocationStateEnum.Stroge.ToString()
                        && x.quantity < 5
                        && x.stationType == PipelineJob.QueryMateriel(Wheel_Type)
                        && x.Number == mes_Detail.jobID
                        && x.heatNumber == mes_Detail.heatID).FirstOrDefault();
                        if (Stationinfo != null)
                        {
                            var Pipelinedetails = plcRepository.Find(x => x.plcdetail_iotype == Pipelineplc.plcinfo_iotyep && x.plcdetail_number == Stationinfo.stationCode).ToList();
                            var PalletSignal = (Int16)DBExtension.Read(Pipelinedetails.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//读取托盘信号:1:有,2无
                            if (PalletSignal == 1)
                            {
                                var SNS = Stationinfo.bindSN.Split(",");
                                List<string> list = new List<string>();
                                foreach (var SN in SNS)
                                {
                                    if (!string.IsNullOrEmpty(SN))
                                        list.Add(SN);
                                }
                                //缓存架上车轮数量与SN号数量不一致
                                if (list.Count != Stationinfo.quantity)
                                {
                                    Stationinfo.location_state = LocationStateEnum.Abnormal.ToString();
                                    stationinfoRepository.Update(Stationinfo, true);
                                    //写入桁架报警信号
                                    throw new Exception("下料位车轮数量与SN号数量不一致,下料位编号:" + Stationinfo.stationCode);
                                }
                                var area = Convert.ToInt16(Stationinfo.stationCode.Substring(Stationinfo.stationCode.Length - 1, 1));
                                client.WriteByOrder("W_AreaNr", (Int16)area, name);//区域货位号
                                client.WriteByOrder("W_IndexNr", (Int16)Stationinfo.quantity + 1, name);//托盘上的第几个车轮
                                client.WriteByOrder("W_Storage_Type", (Int16)1, name);//托盘类型1-横放;2-竖放(暂时只有横放托盘)
                                client.WriteByOrder("W_Enabl_Load", true, name);//是否允许
                                return;
                            }
                        }
                    }
                    #region
                    //var Stationinfo = Stations
                    //    .Where(x => x.enable
                    //    && x.location_state == LocationStateEnum.Stroge.ToString()
                    //    && x.quantity < 5
                    //    && x.stationType == PipelineJob.QueryMateriel(Wheel_Type)
                    //    && x.Number == mes_Detail.jobID
                    //    && x.heatNumber == mes_Detail.heatID).FirstOrDefault();
                    //if (Stationinfo == null)
                    //    Stationinfo = Stations.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 0).FirstOrDefault();
                    //if (Stationinfo != null)
                    //{
                    //}
                    //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" };
                    #endregion
                    var finished = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_finished").First(), client);//放料完成
                    if (finished)
                    var updatefinished = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "W_Storage_update").First(), client);//货位状态更新
                    if (!finished && updatefinished)
                        client.WriteByOrder("W_Storage_update", false, name);//货位状态更新
                    if (finished && !updatefinished)
                    {
                        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]);
                        var station = stationinfoRepository.FindFirst(x => x.stationCode.Substring(x.stationCode.Length - 1, 1) == AreaNr.ToString());
                        station.quantity = station.quantity++;
                        stationinfoRepository.Update(station);
                        station.bindSN = station.bindSN == string.Empty ? Wheel_id : station.bindSN + "," + Wheel_id;
                        if (station.quantity == 0)
                        {
                            station.stationType = Wheel_id;
                            station.Number = Wheel_id;
                            station.heatNumber = Wheel_id;
                        }
                        var count = stationinfoRepository.Update(station);
                        if (count < 1)
                            throw new Exception($"下料位信息更新失败!下料位编号:{station.stationCode}");
                        client.WriteByOrder("W_Storage_update", true, name);//货位状态更新
                        client.WriteByOrder("W_Enabl_Load", false, name);//是否允许
                    }
                    #region
                    //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);//托盘上的第几个车轮
                    //            client.WriteByOrder("W_Storage_Type", (Int16)1, name);//托盘类型1-横放;2-竖放(暂时只有横放托盘)
                    //            client.WriteByOrder("W_Enabl_Load", true, name);//是否允许
                    //            return;
                    //        }
                    //        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);//是否允许
                    //            return;
                    //        }
                    //    }
                    //}
                    #endregion
                }
            }
            catch (Exception ex)
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IRepositories/BaseInfo/Idt_geometry_data_detectionlineRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹Idt_geometry_data_detectionlineRepository编写接口
 */
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_geometry_data_detectionlineRepository : IDependency,IRepository<dt_geometry_data_detectionline>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IRepositories/ToMES/Idt_mes_detailRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹Idt_mes_detailRepository编写接口
 */
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_mes_detailRepository : IDependency,IRepository<dt_mes_detail>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IRepositories/ToMES/Idt_mes_headRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹Idt_mes_headRepository编写接口
 */
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_mes_headRepository : IDependency,IRepository<dt_mes_head>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Idt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_geometry_data_detectionlineService : IService<dt_geometry_data_detectionline>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/BaseInfo/Partial/Idt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
/*
*所有关于dt_geometry_data_detectionline类的业务代码接口应在此处编写
*/
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Core.Utilities;
using System.Linq.Expressions;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_geometry_data_detectionlineService
    {
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Idt_mes_detailService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_mes_detailService : IService<dt_mes_detail>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Idt_mes_headService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_mes_headService : IService<dt_mes_head>
    {
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_detailService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
/*
*所有关于dt_mes_detail类的业务代码接口应在此处编写
*/
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Core.Utilities;
using System.Linq.Expressions;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_mes_detailService
    {
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/IServices/ToMES/Partial/Idt_mes_headService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
/*
*所有关于dt_mes_head类的业务代码接口应在此处编写
*/
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Core.Utilities;
using System.Linq.Expressions;
namespace WIDESEA_WCS.IServices
{
    public partial interface Idt_mes_headService
    {
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs
@@ -34,6 +34,8 @@
            //Creation.HCJCreation();
            //Creation.PLCinfodetail();
            StationTask.CreateTask();
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs
@@ -15,6 +15,7 @@
using WIDESEA_Core.EFDbContext;
using WIDESEA_Core.Extensions;
using WIDESEA_Core.FreeDB;
using WIDESEA_Entity.DomainModels;
using WIDESEA_WCS.IRepositories;
using WIDESEA_WCS.Jobs;
using WIDESEA_WCS.Repositories;
@@ -85,7 +86,7 @@
                ///查找上料区的货位
                var Stations = stationinfoRepository.Find(x => x.area == "6");
                var Stations = stationinfoRepository.Find(x => x.area == area_code(number));
                //缓存架未启用禁止桁架进入
                foreach (var station in Stations)
                {
@@ -93,12 +94,18 @@
                        Gantry_client.WriteByOrder("W_RequestUnload", false, number);//信号为false桁架停止进入
                }
                var Station = Stations?.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.quantity).First();
                var Station = Stations?.Where(x => x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.quantity).FirstOrDefault();
                if (Station != null)
                {
                    var SNS = Station.bindSN.Split(",");
                    List<string> list = new List<string>();
                    foreach (var SN in SNS)
                    {
                        if (!string.IsNullOrEmpty(SN))
                            list.Add(SN);
                    }
                    //缓存架上车轮数量与SN号数量不一致
                    if (SNS.Length != Station.quantity)
                    if (list.Count != Station.quantity)
                    {
                        Station.location_state = LocationStateEnum.Abnormal.ToString();
                        stationinfoRepository.Update(Station, true);
@@ -114,7 +121,7 @@
                        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_Type", (Int16)Convert.ToInt16(QueryMateriel(Station.stationType)), number);//车轮类型
                        Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//车轮SN号
                        Gantry_client.WriteByOrder("W_RequestUnload", true, number);
                    }
@@ -139,22 +146,47 @@
                        }
                    }
                    var finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);//夹取完成
                    if (finished)
                    var updatefinished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "W_Storage_update").First(), Gantry_client);//货位状态更新
                    if (!finished && updatefinished)
                        Gantry_client.WriteByOrder("W_Storage_update", false, number);//货位状态更新
                    if (finished && !updatefinished)
                    {
                        Station.quantity = Station.quantity - 1;
                        Station.bindSN = OperStr(SNS);
                        if (Station.quantity <= 0)
                        {
                            Station.stationType = string.Empty;
                            //Station.location_state = LocationStateEnum.Empty.ToString();
                            Station.Number = string.Empty;
                            Station.heatNumber = string.Empty;
                        }
                        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);//信号为false桁架停止进入
                        //finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);
                        //while (finished)
                        //{
                        //    finished = (bool)DBExtension.Read(Gantrydetails.Where(x => x.plcdetail_name == "R_Unlod_finished").First(), Gantry_client);
                        //    Gantry_client.WriteByOrder("W_Storage_update", false, number);//货位状态更新
                        //}
                    }
                    //else if (!finished && updatefinished)
                    //    Gantry_client.WriteByOrder("W_Storage_update", false, number);//货位状态更新
                }
            }
            catch (Exception ex)
            {
                //WritePCSLog.LogAdd(requestin.AreaNr.ToString(), respone.success == 1 ? "成功 " : "失败", "WMS", "AGV", json, JsonConvert.SerializeObject(respone), remark, "检测线上料区", ex.Message);
            }
        }
        public static string area_code(string area_name)
        {
            FreeDB freeDB = new FreeDB();
            var areainfo = freeDB.Select<dt_areainfo>().Where(x => x.area_name == area_name).First();
            return areainfo.area_code.ToString();
        }
        private string OperStr(string[] strArrty)
@@ -164,5 +196,19 @@
            return Newsn;
        }
        private int QueryMateriel(string type)
        {
            VOLContext Context = new VOLContext();
            Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
            var materielinfo = dataRepository.FindFirst(x => x.Description == type);
            return materielinfo.TypeId;
        }
        public static string QueryMateriel(int  typeId)
        {
            VOLContext Context = new VOLContext();
            Idt_geometry_dataRepository dataRepository = new dt_geometry_dataRepository(Context);
            var materielinfo = dataRepository.FindFirst(x => x.TypeId == typeId);
            return materielinfo.Description;
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs
@@ -16,8 +16,8 @@
    public class StationTask
    {
        FreeDB freeDB = new FreeDB();
        public void CreateTask()
        static FreeDB freeDB = new FreeDB();
        public static void CreateTask()
        {
            VOLContext context = new VOLContext();
            Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
@@ -30,7 +30,9 @@
                //根据下料口的绑定信息查询对应工单,检测此工单是否已完成  å®Œæˆå³å¯å°†å…¶é€å…¥åº“
                dt_mes_head mesinfo = freeDB.Select<dt_mes_head>().Where(x => x.jobID == item.Number).First();
                dt_geometry_data dt_Geometry_Data = freeDB.Select<dt_geometry_data>().Where(x => x.Description == mesinfo.drawingNo).First();
                int CompeletedNum = Convert.ToInt32(mesinfo.quantity) - Convert.ToInt32(mesinfo.finishNum);
                //判定任务是否已创建//如已存在  
                if (freeDB.Select<dt_agvtask>().Where(x => x.agv_fromaddress == item.stationCode).Count() > 0)
@@ -38,8 +40,11 @@
                if (item.quantity == 5 || CompeletedNum == 0)  //循环读取车轮数为5或者订单已完成数量的下料口    â†’工单人工关闭的工单
                {
                    if (mesinfo.quantity <= 50)    //小于50件直接出库
                    if (mesinfo.quantity <= 50 || item.stationCode.Contains("3"))    //小于50件直接出库
                    {
                        //var station =
                        //todo å¯»æ‰¾å¯æ”¾è´§å¤–协放货台
                        dt_agvtask agvtask = new dt_agvtask()
                        {
@@ -56,7 +61,7 @@
                    }
                    else
                    {
                        dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository, mesinfo, item);
                        dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository, mesinfo, item, CompeletedNum, dt_Geometry_Data.e);
                        if (TargetLocation != null)
                        {
@@ -88,11 +93,10 @@
        /// <param name="workinfo">订单</param>
        /// <param name="stationinfo">下料口信息</param>
        /// <returns></returns>
        private dt_stationinfo GetEmptyLocation(Idt_stationinfoRepository stationinfoRepository, dt_mes_head mesinfo, dt_stationinfo stationinfo)
        private static dt_stationinfo GetEmptyLocation(Idt_stationinfoRepository stationinfoRepository, dt_mes_head mesinfo, dt_stationinfo stationinfo, int CompeletedNum, float e)
        {
            //放货位
            dt_stationinfo TargetLocation = null;
            #region æ ¹æ®è®¢å•数量来寻找对应库区且同物料类型库位
            //if (workinfo.PlannedQuantity < 50)    //库区1 ç‰©æ–™ç±»åž‹å¤š
@@ -169,22 +173,73 @@
            //} 
            #endregion
            //根据订单炉号/工单号/类型
            if (mesinfo.quantity >= 180)
            var detail = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mesinfo.jobID).First();
            dt_inventory inventory = null;
            if (detail.heatID != null)
            {
                //查询库存记录中是否存在同类型/工单/炉号的记录  å¦‚有则放置同一行,无则寻找新库位
                var detail = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mesinfo.jobID).First();
                var inventory = freeDB.Select<dt_inventory>().Where(x => x.HeatNumber == detail.heatID /*&& x.*/).First();
                if (inventory != null)
                inventory = freeDB.Select<dt_inventory>().Where(x => x.HeatNumber == detail.heatID && x.FigureNumber == mesinfo.drawingNo && x.jobID == mesinfo.jobID).First();
            }
            else
            {
                inventory = freeDB.Select<dt_inventory>().Where(x => x.FigureNumber == mesinfo.drawingNo && x.jobID == mesinfo.jobID).First();
            }
            if (inventory != null)
            {
                var station = stationinfoRepository.FindFirst(x => x.stationCode == inventory.stationCode);
                if (CompeletedNum <= 15 || station.area == "1")
                {
                    int line = Convert.ToInt16(inventory.stationCode.Split("-")[0]);
                    TargetLocation = stationinfoRepository.Find(x => x.line == line && x.location_state == LocationStateEnum.Empty.ToString() && x.area == inventory.area).FirstOrDefault();
                    TargetLocation = stationinfoRepository.Find(x => x.column == station.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderBy(x => x.line).FirstOrDefault();
                }
                else
                {
                    TargetLocation = stationinfoRepository.Find(x => x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
                    TargetLocation = stationinfoRepository.Find(x => x.line == station.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderBy(x => x.column).FirstOrDefault();
                }
                if (TargetLocation != null) return TargetLocation;
            }
            if (CompeletedNum <= 15)
            {
                TargetLocation = stationinfoRepository.Find(x => x.line == 1 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == "1").OrderBy(x => x.column).FirstOrDefault();
            }
            else
            {
                //if (50 < mesinfo.quantity && mesinfo.quantity <= 180 && e < 1100)
                //    TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).FirstOrDefault();
                //else if (180 < mesinfo.quantity && mesinfo.quantity <= 225 && e < 1100)
                //    TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).FirstOrDefault();
                //if (50 < mesinfo.quantity && e > 1100 || TargetLocation == null)
                var area = GetArea(mesinfo.quantity, e);
                TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).FirstOrDefault();
                if (TargetLocation == null)
                    TargetLocation = stationinfoRepository.Find(x => x.column == 1 && x.area == "4" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).FirstOrDefault();
            }
            #region
            //根据订单炉号/工单号/类型
            //if (mesinfo.quantity >= 180)
            //{
            //    //查询库存记录中是否存在同类型/工单/炉号的记录  å¦‚有则放置同一行,无则寻找新库位
            //    var detail = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mesinfo.jobID).First();
            //    var inventory = freeDB.Select<dt_inventory>().Where(x => x.HeatNumber == detail.heatID && x.FigureNumber == mesinfo.drawingNo && x.jobID == mesinfo.jobID).First();
            //    if (inventory != null)
            //    {
            //        //int line = Convert.ToInt16(inventory.stationCode.Split("-")[0]);
            //        var line = stationinfoRepository.FindFirst(x => x.stationCode == inventory.stationCode).line;
            //        TargetLocation = stationinfoRepository.Find(x => x.line == line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderBy(x => x.column).FirstOrDefault();
            //        if (TargetLocation == null && CompeletedNum <= 15)
            //        {
            //            TargetLocation = stationinfoRepository.Find(x => x.area == "1" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
            //        }
            //    }
            //    else
            //    {
            //        TargetLocation = stationinfoRepository.Find(x => x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault();
            //    }
            //}
            #endregion
            if (TargetLocation == null)
            {
@@ -198,14 +253,26 @@
        /// </summary>
        /// <param name="quantity"></param>
        /// <returns></returns>
        private string GetArea(int quantity)
        private static string GetArea(int quantity, float e)
        {
            if (quantity >= 50 && quantity < 180)
                return "2";
            else if (quantity >= 180 && quantity < 180)
                return "3";
            else if (quantity >= 180 && quantity < 220)
            if (e < 1100)
            {
                if (quantity <= 180)
                    return "2";
                else if (quantity <= 225)
                    return "3";
            }
            else
            {
                return "4";
            }
            //if (quantity > 50 && quantity <= 180 && e < 1100)
            //    return "2";
            //else if (quantity > 180 && quantity <= 225 && e < 1100)
            //    return "3";
            //else if (quantity > 50 && e > 1100)
            //    return "4";
            return null;
        }
    }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Repositories/BaseInfo/dt_geometry_data_detectionlineRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹dt_geometry_data_detectionlineRepository编写代码
 */
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_geometry_data_detectionlineRepository : RepositoryBase<dt_geometry_data_detectionline> , Idt_geometry_data_detectionlineRepository
    {
    public dt_geometry_data_detectionlineRepository(VOLContext dbContext)
    : base(dbContext)
    {
    }
    public static Idt_geometry_data_detectionlineRepository Instance
    {
      get {  return AutofacContainerModule.GetService<Idt_geometry_data_detectionlineRepository>(); } }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Repositories/ToMES/dt_mes_detailRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹dt_mes_detailRepository编写代码
 */
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_mes_detailRepository : RepositoryBase<dt_mes_detail> , Idt_mes_detailRepository
    {
    public dt_mes_detailRepository(VOLContext dbContext)
    : base(dbContext)
    {
    }
    public static Idt_mes_detailRepository Instance
    {
      get {  return AutofacContainerModule.GetService<Idt_mes_detailRepository>(); } }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Repositories/ToMES/dt_mes_headRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹dt_mes_headRepository编写代码
 */
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_mes_headRepository : RepositoryBase<dt_mes_head> , Idt_mes_headRepository
    {
    public dt_mes_headRepository(VOLContext dbContext)
    : base(dbContext)
    {
    }
    public static Idt_mes_headRepository Instance
    {
      get {  return AutofacContainerModule.GetService<Idt_mes_headRepository>(); } }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/Partial/dt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
/*
 *所有关于dt_geometry_data_detectionline类的业务代码应在此处编写
*可使用repository.调用常用方法,获取EF/Dapper等信息
*如果需要事务请使用repository.DbContextBeginTransaction
*也可使用DBServerProvider.手动获取数据库相关信息
*用户信息、权限、角色等使用UserContext.Current操作
*dt_geometry_data_detectionlineService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
*/
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;
namespace WIDESEA_WCS.Services
{
    public partial class dt_geometry_data_detectionlineService
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly Idt_geometry_data_detectionlineRepository _repository;//访问数据库
        [ActivatorUtilitiesConstructor]
        public dt_geometry_data_detectionlineService(
            Idt_geometry_data_detectionlineRepository dbRepository,
            IHttpContextAccessor httpContextAccessor
            )
        : base(dbRepository)
        {
            _httpContextAccessor = httpContextAccessor;
            _repository = dbRepository;
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
  }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/BaseInfo/dt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
/*
 *Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖
 *所有业务编写全部应在Partial文件夹下dt_geometry_data_detectionlineService与Idt_geometry_data_detectionlineService中编写
 */
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_geometry_data_detectionlineService : ServiceBase<dt_geometry_data_detectionline, Idt_geometry_data_detectionlineRepository>
    , Idt_geometry_data_detectionlineService, IDependency
    {
    public dt_geometry_data_detectionlineService(Idt_geometry_data_detectionlineRepository repository)
    : base(repository)
    {
    Init(repository);
    }
    public static Idt_geometry_data_detectionlineService Instance
    {
      get { return AutofacContainerModule.GetService<Idt_geometry_data_detectionlineService>(); } }
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_detailService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
/*
 *所有关于dt_mes_detail类的业务代码应在此处编写
*可使用repository.调用常用方法,获取EF/Dapper等信息
*如果需要事务请使用repository.DbContextBeginTransaction
*也可使用DBServerProvider.手动获取数据库相关信息
*用户信息、权限、角色等使用UserContext.Current操作
*dt_mes_detailService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
*/
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;
namespace WIDESEA_WCS.Services
{
    public partial class dt_mes_detailService
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly Idt_mes_detailRepository _repository;//访问数据库
        [ActivatorUtilitiesConstructor]
        public dt_mes_detailService(
            Idt_mes_detailRepository dbRepository,
            IHttpContextAccessor httpContextAccessor
            )
        : base(dbRepository)
        {
            _httpContextAccessor = httpContextAccessor;
            _repository = dbRepository;
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
  }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/Partial/dt_mes_headService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
/*
 *所有关于dt_mes_head类的业务代码应在此处编写
*可使用repository.调用常用方法,获取EF/Dapper等信息
*如果需要事务请使用repository.DbContextBeginTransaction
*也可使用DBServerProvider.手动获取数据库相关信息
*用户信息、权限、角色等使用UserContext.Current操作
*dt_mes_headService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
*/
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;
namespace WIDESEA_WCS.Services
{
    public partial class dt_mes_headService
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly Idt_mes_headRepository _repository;//访问数据库
        [ActivatorUtilitiesConstructor]
        public dt_mes_headService(
            Idt_mes_headRepository dbRepository,
            IHttpContextAccessor httpContextAccessor
            )
        : base(dbRepository)
        {
            _httpContextAccessor = httpContextAccessor;
            _repository = dbRepository;
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
  }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/dt_mes_detailService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
/*
 *Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖
 *所有业务编写全部应在Partial文件夹下dt_mes_detailService与Idt_mes_detailService中编写
 */
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_mes_detailService : ServiceBase<dt_mes_detail, Idt_mes_detailRepository>
    , Idt_mes_detailService, IDependency
    {
    public dt_mes_detailService(Idt_mes_detailRepository repository)
    : base(repository)
    {
    Init(repository);
    }
    public static Idt_mes_detailService Instance
    {
      get { return AutofacContainerModule.GetService<Idt_mes_detailService>(); } }
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Services/ToMES/dt_mes_headService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
/*
 *Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖
 *所有业务编写全部应在Partial文件夹下dt_mes_headService与Idt_mes_headService中编写
 */
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_mes_headService : ServiceBase<dt_mes_head, Idt_mes_headRepository>
    , Idt_mes_headService, IDependency
    {
    public dt_mes_headService(Idt_mes_headRepository repository)
    : base(repository)
    {
    Init(repository);
    }
    public static Idt_mes_headService Instance
    {
      get { return AutofacContainerModule.GetService<Idt_mes_headService>(); } }
    }
 }
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs
@@ -83,7 +83,10 @@
                    typeID = workInfo.typeID,
                    workOrder = workInfo.workOrder,
                    processCode = workInfo.processCode,
                    finishNum = 0
                    finishNum = 0,
                    //skip_op_1 = false,
                    //skip_op_2 = false,
                    //skip_op_3 = false,
                };
                freeDB.Add(mes_Head);
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_geometry_data_detectionlineController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
/*
 *接口编写处...
*如果接口需要做Action的权限验证,请在Action上使用属性
*如: [ApiActionPermission("dt_geometry_data_detectionline",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;
namespace WIDESEA_WCS.Controllers
{
    public partial class dt_geometry_data_detectionlineController
    {
        private readonly Idt_geometry_data_detectionlineService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;
        [ActivatorUtilitiesConstructor]
        public dt_geometry_data_detectionlineController(
            Idt_geometry_data_detectionlineService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_detailController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
/*
 *接口编写处...
*如果接口需要做Action的权限验证,请在Action上使用属性
*如: [ApiActionPermission("dt_mes_detail",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;
namespace WIDESEA_WCS.Controllers
{
    public partial class dt_mes_detailController
    {
        private readonly Idt_mes_detailService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;
        [ActivatorUtilitiesConstructor]
        public dt_mes_detailController(
            Idt_mes_detailService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/Partial/dt_mes_headController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
/*
 *接口编写处...
*如果接口需要做Action的权限验证,请在Action上使用属性
*如: [ApiActionPermission("dt_mes_head",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;
namespace WIDESEA_WCS.Controllers
{
    public partial class dt_mes_headController
    {
        private readonly Idt_mes_headService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;
        [ActivatorUtilitiesConstructor]
        public dt_mes_headController(
            Idt_mes_headService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_geometry_data_detectionlineController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果要增加方法请在当前目录下Partial文件夹dt_geometry_data_detectionlineController编写
 */
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core.Controllers.Basic;
using WIDESEA_Entity.AttributeManager;
using WIDESEA_WCS.IServices;
namespace WIDESEA_WCS.Controllers
{
    [Route("api/dt_geometry_data_detectionline")]
    [PermissionTable(Name = "dt_geometry_data_detectionline")]
    public partial class dt_geometry_data_detectionlineController : ApiBaseController<Idt_geometry_data_detectionlineService>
    {
        public dt_geometry_data_detectionlineController(Idt_geometry_data_detectionlineService service)
        : base(service)
        {
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_mes_detailController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果要增加方法请在当前目录下Partial文件夹dt_mes_detailController编写
 */
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core.Controllers.Basic;
using WIDESEA_Entity.AttributeManager;
using WIDESEA_WCS.IServices;
namespace WIDESEA_WCS.Controllers
{
    [Route("api/dt_mes_detail")]
    [PermissionTable(Name = "dt_mes_detail")]
    public partial class dt_mes_detailController : ApiBaseController<Idt_mes_detailService>
    {
        public dt_mes_detailController(Idt_mes_detailService service)
        : base(service)
        {
        }
    }
}
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WCS/dt_mes_headController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果要增加方法请在当前目录下Partial文件夹dt_mes_headController编写
 */
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core.Controllers.Basic;
using WIDESEA_Entity.AttributeManager;
using WIDESEA_WCS.IServices;
namespace WIDESEA_WCS.Controllers
{
    [Route("api/dt_mes_head")]
    [PermissionTable(Name = "dt_mes_head")]
    public partial class dt_mes_headController : ApiBaseController<Idt_mes_headService>
    {
        public dt_mes_headController(Idt_mes_headService service)
        : base(service)
        {
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/WMS/WMS_Client/src/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data.js
@@ -35,6 +35,13 @@
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
        this.pagination.order = "asc";
        this.columns.forEach(row=>{
          if(row.field=="TypeId"){
            row.sort=true;
          }
        })
    },
    onInited() {
      //框架初始化配置后
´úÂë¹ÜÀí/WMS/WMS_Client/src/extension/widesea_wms/baseinfo/dt_geometry_data_detectionline.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
/*****************************************************************************************
**  Author:jxx 2022
**  QQ:283591387
**完整文档见:http://v2.volcore.xyz/document/api ã€ä»£ç ç”Ÿæˆé¡µé¢ViewGrid】
**常用示例见:http://v2.volcore.xyz/document/vueDev
**后台操作见:http://v2.volcore.xyz/document/netCoreDev
*****************************************************************************************/
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: '',
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
     //下面这些方法可以保留也可以删除
    onInit() {  //框架初始化配置前,
        //示例:在按钮的最前面添加一个按钮
        //   this.buttons.unshift({  //也可以用push或者splice方法来修改buttons数组
        //     name: '按钮', //按钮名称
        //     icon: 'el-icon-document', //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
        //     type: 'primary', //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
        //     onClick: function () {
        //       this.$Message.success('点击了按钮');
        //     }
        //   });
        //示例:设置修改新建、编辑弹出框字段标签的长度
        // this.boxOptions.labelWidth = 150;
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/WMS/WMS_Client/src/router/viewGird.js
@@ -177,6 +177,10 @@
        path: '/dt_geometry_data',
        name: 'dt_geometry_data',
        component: () => import('@/views/widesea_wms/baseinfo/dt_geometry_data.vue')
    }    ,{
        path: '/dt_geometry_data_detectionline',
        name: 'dt_geometry_data_detectionline',
        component: () => import('@/views/widesea_wms/baseinfo/dt_geometry_data_detectionline.vue')
    }]
export default viewgird
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask.vue
@@ -39,13 +39,14 @@
            const searchFormFields = ref({"agv_tasknum":"","agv_fromaddress":"","agv_toaddress":"","agv_code":[],"agv_taskstate":[],"agv_materielid":"","agv_createtime":"","agv_barcode":"","agv_materbarcode":""});
            const searchFormOptions = ref([[{"title":"任务编号","field":"agv_tasknum","type":"like"},{"title":"起点地址","field":"agv_fromaddress","type":"like"},{"title":"终点地址","field":"agv_toaddress","type":"like"}],[{"dataKey":"agv_code","data":[],"title":"AGV编号","field":"agv_code","type":"selectList"},{"dataKey":"Taskstates","data":[],"title":"任务状态","field":"agv_taskstate","type":"selectList"},{"title":"物料类型","field":"agv_materielid","type":"like"}],[{"title":"创建时间","field":"agv_createtime","type":"datetime"},{"title":"托盘码","field":"agv_barcode","type":"like"},{"title":"物料码","field":"agv_materbarcode","type":"like"}]]);
            const columns = ref([{field:'agv_id',title:'任务Id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'agv_tasknum',title:'任务编号',type:'string',sort:true,width:110,require:true,align:'left',sort:true},
                       {field:'agv_tasknum',title:'任务编号',type:'string',sort:true,width:110,require:true,align:'left'},
                       {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_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_materielid',title:'物料类型',type:'string',width:110,require:true,align:'left'},
                    //    {field:'agv_materielid',title:'物料类型',type:'string',width:110,require:true,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},
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/Task/widesea_wms/taskinfo/dt_agvtask_hty.vue
@@ -54,12 +54,11 @@
                       {field:'agv_barcode',title:'托盘码',type:'string',width:110,require:true,align:'left'},
                       {field:'agv_code',title:'AGV编号',type:'string',width:110,require:true,align:'left'},
                       {field:'agv_worktype',title:'AGV工作类型',type:'int',width:110,require:true,align:'left'},
                       {field:'agv_materbarcode',title:'物料码',type:'string',width:110,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:'agv_remark',title:'备注',type:'string',width:220,align:'left'},
                       {field:'ID',title:'主键',type:'int',width:80,hidden:true,readonly:true,require:true,align:'left'}]);
                       {field:'agv_remark',title:'备注',type:'string',width:220,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wcs/baseinfo/dt_geometry_data.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/baseinfo/dt_geometry_data.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'TypeId',
                footer: "Foots",
                cnName: '车轮信息',
                name: 'baseinfo/dt_geometry_data',
                url: "/dt_geometry_data/",
                sortName: "TypeId"
            });
            const editFormFields = ref({"Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
            const editFormOptions = ref([[{"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"a","required":true,"field":"a","type":"text"},
                               {"title":"b","required":true,"field":"b","type":"text"}],
                              [{"title":"c","required":true,"field":"c","type":"text"},
                               {"title":"d","required":true,"field":"d","type":"text"}],
                              [{"title":"e","required":true,"field":"e","type":"text"},
                               {"title":"f","required":true,"field":"f","type":"text"}],
                              [{"title":"g","required":true,"field":"g","type":"text"},
                               {"title":"h","required":true,"field":"h","type":"text"}]]);
            const searchFormFields = ref({"Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"}]]);
            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left',sort:true},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
                       {field:'d',title:'d',type:'float',width:110,require:true,align:'left'},
                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/widesea_wcs/baseinfo/dt_geometry_data_detectionline.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wcs/baseinfo/dt_geometry_data_detectionline.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/baseinfo/dt_geometry_data_detectionline.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'ID',
                footer: "Foots",
                cnName: '检测线车轮信息',
                name: 'baseinfo/dt_geometry_data_detectionline',
                url: "/dt_geometry_data_detectionline/",
                sortName: "ID"
            });
            const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":"","skip_01":"","skip_02":"","skip_03":"","skip_04":"","skip_05":"","skip_06":"","skip_07":"","skip_08":"","skip_09":"","skip_10":"","skip_11":"","skip_12":"","skip_13":"","skip_14":"","skip_15":""});
            const editFormOptions = ref([[{"title":"TypeId","required":true,"field":"TypeId","type":"text"},
                               {"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"a","required":true,"field":"a","type":"text"},
                               {"title":"b","required":true,"field":"b","type":"text"}],
                              [{"title":"c","required":true,"field":"c","type":"text"},
                               {"title":"d","required":true,"field":"d","type":"text"}],
                              [{"title":"e","required":true,"field":"e","type":"text"},
                               {"title":"f","required":true,"field":"f","type":"text"}],
                              [{"title":"g","required":true,"field":"g","type":"text"},
                               {"title":"h","required":true,"field":"h","type":"text"}],
                              [{"title":"skip_01","field":"skip_01","type":"text"},
                               {"title":"skip_02","field":"skip_02","type":"text"}],
                              [{"title":"skip_03","field":"skip_03","type":"text"},
                               {"title":"skip_04","field":"skip_04","type":"text"}],
                              [{"title":"skip_05","field":"skip_05","type":"text"},
                               {"title":"skip_06","field":"skip_06","type":"text"}],
                              [{"title":"skip_07","field":"skip_07","type":"text"},
                               {"title":"skip_08","field":"skip_08","type":"text"}],
                              [{"title":"skip_09","field":"skip_09","type":"text"},
                               {"title":"skip_10","field":"skip_10","type":"text"}],
                              [{"title":"skip_11","field":"skip_11","type":"text"},
                               {"title":"skip_12","field":"skip_12","type":"text"}],
                              [{"title":"skip_13","field":"skip_13","type":"text"},
                               {"title":"skip_14","field":"skip_14","type":"text"}],
                              [{"title":"skip_15","field":"skip_15","type":"text"}]]);
            const searchFormFields = ref({"TypeId":"","Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"},{"title":"TypeId","field":"TypeId","type":"like"}]]);
            const columns = ref([{field:'ID',title:'ID',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'TypeId',title:'TypeId',type:'int',width:110,require:true,align:'left',sort:true},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left'},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
                       {field:'d',title:'d',type:'float',width:110,require:true,align:'left'},
                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'},
                       {field:'skip_01',title:'skip_01',type:'byte',width:110,align:'left'},
                       {field:'skip_02',title:'skip_02',type:'byte',width:110,align:'left'},
                       {field:'skip_03',title:'skip_03',type:'byte',width:110,align:'left'},
                       {field:'skip_04',title:'skip_04',type:'byte',width:110,align:'left'},
                       {field:'skip_05',title:'skip_05',type:'byte',width:110,align:'left'},
                       {field:'skip_06',title:'skip_06',type:'byte',width:110,align:'left'},
                       {field:'skip_07',title:'skip_07',type:'byte',width:110,align:'left'},
                       {field:'skip_08',title:'skip_08',type:'byte',width:110,align:'left'},
                       {field:'skip_09',title:'skip_09',type:'byte',width:110,align:'left'},
                       {field:'skip_10',title:'skip_10',type:'byte',width:110,align:'left'},
                       {field:'skip_11',title:'skip_11',type:'byte',width:110,align:'left'},
                       {field:'skip_12',title:'skip_12',type:'byte',width:110,align:'left'},
                       {field:'skip_13',title:'skip_13',type:'byte',width:110,align:'left'},
                       {field:'skip_14',title:'skip_14',type:'byte',width:110,align:'left'},
                       {field:'skip_15',title:'skip_15',type:'byte',width:110,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data.vue
@@ -29,19 +29,21 @@
                url: "/dt_geometry_data/",
                sortName: "TypeId"
            });
            const editFormFields = ref({"Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
            const editFormOptions = ref([[{"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"","required":true,"field":"a","type":"text"},
                               {"title":"","required":true,"field":"b","type":"text"}],
                              [{"title":"","required":true,"field":"c","type":"text"},
                               {"title":"","required":true,"field":"d","type":"text"}],
                              [{"title":"","required":true,"field":"e","type":"text"},
                               {"title":"","required":true,"field":"f","type":"text"}],
                              [{"title":"","required":true,"field":"g","type":"text"},
                               {"title":"","required":true,"field":"h","type":"decimal"}]]);
            const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":""});
            const editFormOptions = ref([
                              [{"title":"TypeId","required":true,"field":"TypeId","type":"text"},
                               {"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"a","required":true,"field":"a","type":"text"},
                               {"title":"b","required":true,"field":"b","type":"text"}],
                              [{"title":"c","required":true,"field":"c","type":"text"},
                               {"title":"d","required":true,"field":"d","type":"text"}],
                              [{"title":"e","required":true,"field":"e","type":"text"},
                               {"title":"f","required":true,"field":"f","type":"text"}],
                              [{"title":"g","required":true,"field":"g","type":"text"},
                               {"title":"h","required":true,"field":"h","type":"decimal"}]]);
            const searchFormFields = ref({"Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"}]]);
            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
            const columns = ref([{field:'TypeId',title:'TypeId',type:'int',width:110,readonly:true,require:true,align:'left'},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left',sort:true},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/widesea_wms/baseinfo/dt_geometry_data_detectionline.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/baseinfo/dt_geometry_data_detectionline.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_wms/baseinfo/dt_geometry_data_detectionline.js";
    import { ref, defineComponent } from "vue";
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'ID',
                footer: "Foots",
                cnName: '检测线车轮信息',
                name: 'baseinfo/dt_geometry_data_detectionline',
                url: "/dt_geometry_data_detectionline/",
                sortName: "ID"
            });
            const editFormFields = ref({"TypeId":"","Description":"","a":"","b":"","c":"","d":"","e":"","f":"","g":"","h":"","skip_01":"","skip_02":"","skip_03":"","skip_04":"","skip_05":"","skip_06":"","skip_07":"","skip_08":"","skip_09":"","skip_10":"","skip_11":"","skip_12":"","skip_13":"","skip_14":"","skip_15":""});
            const editFormOptions = ref([[{"title":"","required":true,"field":"TypeId","type":"text"},
                               {"title":"图号","required":true,"field":"Description","type":"text"}],
                              [{"title":"","required":true,"field":"a","type":"text"},
                               {"title":"","required":true,"field":"b","type":"text"}],
                              [{"title":"","required":true,"field":"c","type":"text"},
                               {"title":"","required":true,"field":"d","type":"text"}],
                              [{"title":"","required":true,"field":"e","type":"text"},
                               {"title":"","required":true,"field":"f","type":"text"}],
                              [{"title":"","required":true,"field":"g","type":"text"},
                               {"title":"","required":true,"field":"h","type":"text"}],
                              [{"title":"","field":"skip_01","type":"text"},
                               {"title":"","field":"skip_02","type":"text"}],
                              [{"title":"","field":"skip_03","type":"text"},
                               {"title":"","field":"skip_04","type":"text"}],
                              [{"title":"","field":"skip_05","type":"text"},
                               {"title":"","field":"skip_06","type":"text"}],
                              [{"title":"","field":"skip_07","type":"text"},
                               {"title":"","field":"skip_08","type":"text"}],
                              [{"title":"","field":"skip_09","type":"text"},
                               {"title":"","field":"skip_10","type":"text"}],
                              [{"title":"","field":"skip_11","type":"text"},
                               {"title":"","field":"skip_12","type":"text"}],
                              [{"title":"","field":"skip_13","type":"text"},
                               {"title":"","field":"skip_14","type":"text"}],
                              [{"title":"","field":"skip_15","type":"text"}]]);
            const searchFormFields = ref({"TypeId":"","Description":""});
            const searchFormOptions = ref([[{"title":"图号","field":"Description","type":"like"},{"title":"","field":"TypeId","type":"like"}]]);
            const columns = ref([{field:'ID',title:'ID',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'TypeId',title:'TypeId',type:'int',width:110,require:true,align:'left',sort:true},
                       {field:'Description',title:'图号',type:'string',width:120,require:true,align:'left'},
                       {field:'a',title:'a',type:'float',width:110,require:true,align:'left'},
                       {field:'b',title:'b',type:'float',width:110,require:true,align:'left'},
                       {field:'c',title:'c',type:'float',width:110,require:true,align:'left'},
                       {field:'d',title:'d',type:'float',width:110,require:true,align:'left'},
                       {field:'e',title:'e',type:'float',width:110,require:true,align:'left'},
                       {field:'f',title:'f',type:'float',width:110,require:true,align:'left'},
                       {field:'g',title:'g',type:'float',width:110,require:true,align:'left'},
                       {field:'h',title:'h',type:'float',width:110,require:true,align:'left'},
                       {field:'skip_01',title:'skip_01',type:'byte',width:110,align:'left'},
                       {field:'skip_02',title:'skip_02',type:'byte',width:110,align:'left'},
                       {field:'skip_03',title:'skip_03',type:'byte',width:110,align:'left'},
                       {field:'skip_04',title:'skip_04',type:'byte',width:110,align:'left'},
                       {field:'skip_05',title:'skip_05',type:'byte',width:110,align:'left'},
                       {field:'skip_06',title:'skip_06',type:'byte',width:110,align:'left'},
                       {field:'skip_07',title:'skip_07',type:'byte',width:110,align:'left'},
                       {field:'skip_08',title:'skip_08',type:'byte',width:110,align:'left'},
                       {field:'skip_09',title:'skip_09',type:'byte',width:110,align:'left'},
                       {field:'skip_10',title:'skip_10',type:'byte',width:110,align:'left'},
                       {field:'skip_11',title:'skip_11',type:'byte',width:110,align:'left'},
                       {field:'skip_12',title:'skip_12',type:'byte',width:110,align:'left'},
                       {field:'skip_13',title:'skip_13',type:'byte',width:110,align:'left'},
                       {field:'skip_14',title:'skip_14',type:'byte',width:110,align:'left'},
                       {field:'skip_15',title:'skip_15',type:'byte',width:110,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
                columns: [],
                sortName: "",
                key: ""
            });
            return {
                table,
                extend,
                editFormFields,
                editFormOptions,
                searchFormFields,
                searchFormOptions,
                columns,
                detail,
            };
        },
    });
</script>
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/widesea_wms/system/dt_stationinfo.vue
@@ -22,18 +22,19 @@
    export default defineComponent({
        setup() {
            const table = ref({
                key: 'zj',
                key: 'id',
                footer: "Foots",
                cnName: '库位信息',
                name: 'system/dt_stationinfo',
                url: "/dt_stationinfo/",
                sortName: "zj"
                sortName: "id"
            });
            const editFormFields = ref({"stationCode":"","location_state":"","bindSN":"","tray_status":"","Number":"","heatNumber":"","remark":""});
            const editFormFields = ref({"stationCode":"","stationType":"","location_state":"","bindSN":"","tray_status":"","Number":"","heatNumber":"","remark":""});
            const editFormOptions = ref([[{"title":"缓存架编号","field":"stationCode","disabled": true}],
                              [{"title":"图号","field":"stationType"}],
                              [{"dataKey":"location_states","data":[],"title":"货位状态","field":"location_state","type":"select"}],
                              [{"title":"车轮SN号","field":"bindSN"}],
                              [{"dataKey":"tray_status","data":[],"title":"托盘状态","field":"tray_status"}],
                              [{"dataKey":"tray_status","data":[],"title":"托盘状态","field":"tray_status","type":"select"}],
                              [{"title":"工单编号","field":"Number"}],
                              [{"title":"炉号","field":"heatNumber","type":"text"}],
                              [{"title":"备注","field":"remark"}]]);
@@ -41,20 +42,20 @@
            const searchFormOptions = ref([[{"title":"缓存架编号","field":"stationCode","type":"like"},{"title":"车轮SN号","field":"bindSN","type":"like"},{"dataKey":"materielinfos","data":[],"title":"物料类型","field":"stationType","type":"select"}],[{"dataKey":"area_name","data":[],"title":"区域","field":"area","type":"select"},{"dataKey":"location_states","data":[],"title":"货位状态","field":"location_state","type":"selectList"},{"dataKey":"status","data":[],"title":"是否启用","field":"enable","type":"select"}]]);
            const columns = ref([{field:'id',title:'id',type:'guid',width:110,hidden:true,readonly:true,require:true,align:'left'},
                       {field:'stationCode',title:'缓存架编号',type:'string',width:110,align:'left',sort:true},
                       {field:'stationType',title:'物料类型',type:'string',bind:{ key:'materielinfos',data:[]},width:110,align:'left'},
                       {field:'stationType',title:'图号',type:'string',bind:{ key:'materielinfos',data:[]},width:110,align:'left'},
                       {field:'area',title:'区域',type:'string',bind:{ key:'area_name',data:[]},width:110,require:true,align:'left'},
                       {field:'enable',title:'是否启用',type:'bool',bind:{ key:'status',data:[]},width:110,require:true,align:'left'},
                       {field:'location_state',title:'货位状态',type:'string',bind:{ key:'location_states',data:[]},width:220,align:'left'},
                       {field:'lastUpdateTime',title:'最后状态改变时间',type:'datetime',width:150,align:'left',sort:true},
                    //    {field:'lastUpdateTime',title:'最后状态改变时间',type:'datetime',width:150,align:'left',sort:true},
                       {field:'quantity',title:'车轮数量',type:'int',width:80,align:'left'},
                       {field:'bindSN',title:'车轮SN号',type:'string',width:220,align:'left'},
                       {field:'tray_status',title:'托盘状态',type:'string',bind:{ key:'tray_status',data:[]},width:110,align:'left'},
                       {field:'line',title:'行',type:'int',width:80,align:'left'},
                       {field:'column',title:'列',type:'int',width:80,align:'left'},
                       {field:'remark',title:'备注',type:'string',width:120,align:'left'},
                       {field:'zj',title:'主键',type:'int',width:80,hidden:true,require:true,align:'left'},
                       {field:'tray_status',title:'托盘类型',type:'string',bind:{ key:'tray_status',data:[]},width:110,align:'left'},
                    //    {field:'line',title:'行',type:'int',width:80,align:'left'},
                    //    {field:'column',title:'列',type:'int',width:80,align:'left'},
                    {field:'heatNumber',title:'炉号',type:'int',width:80,align:'left'},
                    //    {field:'zj',title:'主键',type:'int',width:80,hidden:true,require:true,align:'left'},
                       {field:'Number',title:'工单编号',type:'string',width:220,align:'left'},
                       {field:'heatNumber',title:'炉号',type:'int',width:80,align:'left'}]);
                       {field:'remark',title:'备注',type:'string',width:120,align:'left'}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs
@@ -12,6 +12,10 @@
        /// å·¥å•编号
        /// </summary>
        public string JobID { get; set; }
        /// <summary>
        /// 17-机加工 28-检测线
        /// </summary>
        public string processCode { get; set; }
        /// <summary>
        /// è½¦è½®ä¿¡æ¯
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvOutWarehousePara.cs
@@ -12,7 +12,10 @@
        /// å·¥å•号
        /// </summary>
        public string JobID { get; set; }
        /// <summary>
        /// 17-机加工 28-检测线
        /// </summary>
        public string processCode {  get; set; }
        /// <summary>
        /// è½¦è½®
        /// </summary>
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvTransferListPara.cs
@@ -8,16 +8,34 @@
{
    public class agvTransferListPara : BasicSN
    {
        /// <summary>
        /// è½¬ç§»å•号
        /// </summary>
        public string transferListID { get; set; }
        /// <summary>
        /// è½¦è½®ç‰©æ–™ç¼–码
        /// </summary>
        public string materialCode { get; set; }
        /// <summary>
        /// æŠ€æœ¯çŠ¶æ€
        /// </summary>
        public string drawingNoVer { get; set; }
        /// <summary>
        /// æºåº“房名称
        /// </summary>
        public string fromWarehouse { get; set; }
        /// <summary>
        /// ç›®æ ‡åº“房名称
        /// </summary>
        public string toWarehouse { get; set; }
        /// <summary>
        /// æ“ä½œäººå‘˜
        /// </summary>
        public string Operator { get; set; }
        public string updateTime { get; set; }
        /// <summary>
        /// æ“ä½œæ—¶é—´
        /// </summary>
        public DateTime updateTime { get; set; }
        /// <summary>
        /// è½¦è½®ä¿¡æ¯
        /// </summary>
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/TaskEnum/AGVTaskTypeEnum.cs
@@ -16,24 +16,39 @@
        /// </summary>
        //TakeEmpty = 2,
        /// <summary>
        /// å…¥åº“
        /// å¾…检库入库
        /// </summary>
        [Description("入库")]
        [Description("待检库入库")]
        TaskType_Inbound = 1,
        /// <summary>
        /// å‡ºåº“
        /// å¾…检库出库
        /// </summary>
        [Description("出库")]
        [Description("待检库出库")]
        TaskType_Outbound = 2,
        /// <summary>
        /// å¤–协入库
        /// å¤–协库入库
        /// </summary>
        [Description("外协入库")]
        [Description("外协库入库")]
        TaskType_OutsourceInbound = 3,
        /// <summary>
        /// å¤–协出库
        /// å¤–协库出库
        /// </summary>
        [Description("外协出库")]
        [Description("外协库出库")]
        TaskType_OutsourceOutbound = 4,
        /// <summary>
        /// å¾…检库内移库
        /// </summary>
        [Description("待检库内移库")]
        TaskType_Carry,
        /// <summary>
        /// å¾…检移库外协
        /// </summary>
        [Description("待检移库外协")]
        TaskType_OutsourceCarry,
        /// <summary>
        /// è¡¥ç©ºæ‰˜ä»»åŠ¡
        /// </summary>
        [Description("补空托任务")]
        TaskType_EmptyPallet,
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/dt_geometry_data_detectionline.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,242 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_geometry_data_detectionline")]
    public partial class dt_geometry_data_detectionline:BaseEntity
    {
        /// <summary>
       ///
       /// </summary>
       [Key]
       [Display(Name ="ID")]
       [Column(TypeName="int")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public int ID { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="TypeId")]
       [Column(TypeName="int")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public int TypeId { get; set; }
       /// <summary>
       ///图号
       /// </summary>
       [Display(Name ="图号")]
       [MaxLength(100)]
       [Column(TypeName="nvarchar(100)")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public string Description { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="a")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float a { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="b")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float b { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="c")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float c { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="d")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float d { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="e")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float e { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="f")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float f { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="g")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float g { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="h")]
       [Column(TypeName="float")]
       [Editable(true)]
       [Required(AllowEmptyStrings=false)]
       public float h { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_01")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_01 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_02")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_02 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_03")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_03 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_04")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_04 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_05")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_05 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_06")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_06 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_07")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_07 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_08")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_08 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_09")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_09 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_10")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_10 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_11")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_11 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_12")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_12 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_13")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_13 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_14")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_14 { get; set; }
       /// <summary>
       ///
       /// </summary>
       [Display(Name ="skip_15")]
       [Column(TypeName="tinyint")]
       [Editable(true)]
       public byte? skip_15 { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/BaseInfo/partial/dt_geometry_data_detectionline.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_geometry_data_detectionline
    {
        //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs
@@ -46,11 +46,11 @@
        /// <summary>
        ///熔炼炉号
        /// </summary>
        [Display(Name = "熔炼炉号")]
        [MaxLength(255)]
        [Column(TypeName = "varchar(255)")]
        [Editable(true)]
        public string HearthNumber { get; set; }
        //[Display(Name = "熔炼炉号")]
        //[MaxLength(255)]
        //[Column(TypeName = "varchar(255)")]
        //[Editable(true)]
        //public string HearthNumber { get; set; }
        /// <summary>
        ///炉代号
@@ -95,14 +95,14 @@
        public string remark { get; set; }
        /// <summary>
        ///ID
        ///
        /// </summary>
        [Key]
        [Display(Name = "ID")]
        [Column(TypeName = "int")]
        [Column(TypeName = "uniqueidentifier")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public int ID { get; set; }
        public Guid ID { get; set; }
        /// <summary>
        ///货位编号
@@ -111,12 +111,16 @@
        [MaxLength(30)]
        [Column(TypeName = "nvarchar(30)")]
        public string stationCode { get; set; }
        /// <summary>
        /// åŒºåŸŸä»£ç 
        /// </summary>
        [Display(Name = "区域代码")]
        [Column(TypeName = "nvarchar(15)")]
        [Editable(true)]
        public string area { get; set; }
        /// <summary>
        /// å·¥å•编号
        /// </summary>
        [Display(Name = "工单编号")]
        [Column(TypeName = "nvarchar(40)")]
        [Editable(true)]
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_stationinfo.cs
@@ -36,7 +36,7 @@
        public string stationCode { get; set; }
        /// <summary>
        ///物料类型
        ///图号/物料类型
        /// </summary>
        [Display(Name = "物料类型")]
        [MaxLength(25)]
@@ -51,7 +51,7 @@
        [MaxLength(15)]
        [Column(TypeName = "nvarchar(15)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        //[Required(AllowEmptyStrings = false)]//是否必填
        public string area { get; set; }
        /// <summary>
@@ -60,7 +60,7 @@
        [Display(Name = "是否启用")]
        [Column(TypeName = "bit")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        //[Required(AllowEmptyStrings = false)]
        public bool enable { get; set; }
        /// <summary>
@@ -85,7 +85,7 @@
        /// </summary>
        [Display(Name = "车轮数量")]
        [Column(TypeName = "int")]
        public int? quantity { get; set; }
        public int quantity { get; set; }
        /// <summary>
        ///车轮SN号
@@ -139,8 +139,9 @@
        ///炉号
        /// </summary>
        [Display(Name = "炉号")]
        [Column(TypeName = "int")]
        public int? heatNumber { get; set; }
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        public string heatNumber { get; set; }
    }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs
@@ -75,12 +75,12 @@
        public string agv_taskstate { get; set; }
        /// <summary>
        ///AGV工作类型
        ///工单类型
        /// </summary>
        [Display(Name = "AGV工作类型")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? agv_worktype { get; set; }
        public int agv_worktype { get; set; }
        /// <summary>
        ///物料类型
@@ -99,7 +99,7 @@
        [Column(TypeName = "int")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public int? agv_qty { get; set; }
        public int agv_qty { get; set; }
        /// <summary>
        ///创建时间
@@ -130,8 +130,8 @@
        ///任务类型
        /// </summary>
        [Display(Name = "任务类型")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string agv_tasktype { get; set; }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask_hty.cs
@@ -62,7 +62,7 @@
        [Column(TypeName = "int")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public int? agv_qty { get; set; }
        public int agv_qty { get; set; }
        /// <summary>
        ///创建时间
@@ -103,8 +103,8 @@
        ///任务类型
        /// </summary>
        [Display(Name = "任务类型")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string agv_tasktype { get; set; }
@@ -180,7 +180,7 @@
        [MaxLength(30)]
        [Column(TypeName = "nvarchar(30)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        //[Required(AllowEmptyStrings = false)]
        public string agv_barcode { get; set; }
        /// <summary>
@@ -190,17 +190,17 @@
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        //[Required(AllowEmptyStrings = false)]
        public string agv_code { get; set; }
        /// <summary>
        ///AGV工作类型
        ///工单类型
        /// </summary>
        [Display(Name = "AGV工作类型")]
        [Column(TypeName = "int")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public int? agv_worktype { get; set; }
        //[Required(AllowEmptyStrings = false)]
        public int agv_worktype { get; set; }
        /// <summary>
        ///物料码
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_detail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_mes_detail")]
    public partial class dt_mes_detail : BaseEntity
    {
        /// <summary>
        ///工单明细ID
        /// </summary>
        [Key]
        [Display(Name = "mes_detail_id")]
        [Column(TypeName = "uniqueidentifier")]
        [Required(AllowEmptyStrings = false)]
        public Guid mes_detail_id { get; set; }
        /// <summary>
        ///工单头表ID
        /// </summary>
        [Display(Name = "mes_headID")]
        [Column(TypeName = "uniqueidentifier")]
        [Required(AllowEmptyStrings = false)]
        public Guid mes_headID { get; set; }
        /// <summary>
        ///工单单号
        /// </summary>
        [Display(Name = "jobID")]
        [MaxLength(40)]
        [Column(TypeName = "nvarchar(40)")]
        [Editable(true)]
        public string jobID { get; set; }
        /// <summary>
        ///炉代号
        /// </summary>
        [Display(Name = "炉代号")]
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        public string heatID { get; set; }
        /// <summary>
        ///钢坯号
        /// </summary>
        [Display(Name = "钢坯号")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? billetID { get; set; }
        /// <summary>
        ///车轮SN号
        /// </summary>
        [Display(Name = "车轮SN号")]
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        public string SN { get; set; }
        /// <summary>
        ///热处理批次
        /// </summary>
        [Display(Name = "热处理批次")]
        [MaxLength(30)]
        [Column(TypeName = "varchar(30)")]
        [Editable(true)]
        public string heatBatchID { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_mes_head")]
    public partial class dt_mes_head : BaseEntity
    {
        /// <summary>
        ///ID
        /// </summary>
        [Key]
        [Display(Name = "mes_id")]
        [Column(TypeName = "uniqueidentifier")]
        [Required(AllowEmptyStrings = false)]
        public Guid mes_id { get; set; }
        /// <summary>
        ///工作令号
        /// </summary>
        [Display(Name = "工作令号")]
        [MaxLength(50)]
        [Column(TypeName = "nvarchar(50)")]
        [Editable(true)]
        public string workOrder { get; set; }
        /// <summary>
        ///工单编号
        /// </summary>
        [Display(Name = "工单编号")]
        [MaxLength(40)]
        [Column(TypeName = "nvarchar(40)")]
        [Editable(true)]
        public string jobID { get; set; }
        /// <summary>
        ///需求单号
        /// </summary>
        [Display(Name = "需求单号")]
        [MaxLength(40)]
        [Column(TypeName = "nvarchar(40)")]
        [Editable(true)]
        public string reqID { get; set; }
        /// <summary>
        ///需求单号行号
        /// </summary>
        [Display(Name = "需求单号行号")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string reqIDLineNo { get; set; }
        /// <summary>
        ///工单类型 (17-机加工 28-检测线)
        /// </summary>
        [Display(Name = "工单类型")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string processCode { get; set; }
        /// <summary>
        ///完成数量
        /// </summary>
        [Display(Name = "完成数量")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? finishNum { get; set; }
        /// <summary>
        ///物料编码
        /// </summary>
        [Display(Name = "物料编码")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string materialCode { get; set; }
        /// <summary>
        ///图号
        /// </summary>
        [Display(Name = "图号")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string drawingNo { get; set; }
        /// <summary>
        ///技术状态
        /// </summary>
        [Display(Name = "技术状态")]
        [MaxLength(10)]
        [Column(TypeName = "nvarchar(10)")]
        [Editable(true)]
        public string drawingNoVer { get; set; }
        /// <summary>
        ///产品名称
        /// </summary>
        [Display(Name = "产品名称")]
        [MaxLength(40)]
        [Column(TypeName = "nvarchar(40)")]
        [Editable(true)]
        public string productName { get; set; }
        /// <summary>
        ///产品描述
        /// </summary>
        [Display(Name = "产品描述")]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        [MaxLength(200)]
        public string productDesc { get; set; }
        /// <summary>
        ///工单数量
        /// </summary>
        [Display(Name = "工单数量")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? quantity { get; set; }
        /// <summary>
        ///轮型代码
        /// </summary>
        [Display(Name = "轮型代码")]
        [MaxLength(20)]
        [Column(TypeName = "nvarchar(20)")]
        [Editable(true)]
        public string typeID { get; set; }
        /// <summary>
        ///打包数量
        /// </summary>
        [Display(Name = "打包数量")]
        [Column(TypeName = "int")]
        [Editable(true)]
        public int? stackNoRange { get; set; }
        /// <summary>
        ///轮径偏差
        /// </summary>
        [Display(Name = "轮径偏差")]
        [Column(TypeName = "nmberic(18,2)")]
        [Editable(true)]
        public decimal? maxDiameterDiff { get; set; }
        /// <summary>
        ///工单开始时间
        /// </summary>
        [Display(Name = "工单开始时间")]
        [Column(TypeName = "datetime")]
        public DateTime? expectedStartTime { get; set; }
        /// <summary>
        ///工单结束时间
        /// </summary>
        [Display(Name = "工单结束时间")]
        [Column(TypeName = "datetime")]
        public DateTime? expectedFinishTime { get; set; }
        /// <summary>
        ///创建时间
        /// </summary>
        [Display(Name = "创建时间")]
        [Column(TypeName = "datetime")]
        public DateTime CreateTime { get; set; }
        /// <summary>
        ///创建者
        /// </summary>
        [Display(Name = "创建者")]
        [MaxLength(40)]
        [Column(TypeName = "nvarchar(40)")]
        public string creator { get; set; }
        //public string processCode { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/dt_mes_detail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_ActualProduction
    {
        //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/dt_mes_head.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果数据库字段发生变化,请在代码生器重新生成此Model
 */
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_mes_head
    {
        //此处配置字段(字段配置见此model的另一个partial),如果表中没有此字段请加上 [NotMapped]属性,否则会异常
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/MappingConfiguration/BaseInfo/dt_geometry_data_detectionlineMapConfig.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_geometry_data_detectionlineMapConfig : EntityMappingConfiguration<dt_geometry_data_detectionline>
    {
        public override void Map(EntityTypeBuilder<dt_geometry_data_detectionline>
        builderTable)
        {
          //b.Property(x => x.StorageName).HasMaxLength(45);
        }
     }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/ToAGV/RequestTask.cs
@@ -30,7 +30,15 @@
        /// <summary>
        /// æ•°é‡
        /// </summary>
        public int? Quantity { get; set; }
        public int Quantity { get; set; }
        /// <summary>
        /// æ‰˜ç›˜ç±»åž‹ 1小托盘,2大托盘
        /// </summary>
        public int TrayType {  get; set; }
        /// <summary>
        /// ä»»åŠ¡ç±»åž‹ 1转运车轮任务,2转运空托盘任务
        /// </summary>
        public int TaskType {  get; set; }
        /// <summary>
        /// ç‰©æ–™ä¿¡æ¯
        /// </summary>
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/AGVServer.cs
@@ -31,17 +31,18 @@
        {
            try
            {
                //var task = freeDB.Select<dt_agvtask>().Where(x => x.agv_taskstate == "Create").First();
                var agv_task = freeDB.Select<dt_agvtask>()
                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
                        .Where(t => t.agv_taskstate == "Create"
                               //&& (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_OutsourceOutbound")
                               && string.IsNullOrEmpty(t.agv_remark))
                        .OrderByDescending(t => t.agv_grade)
                        .OrderBy(t => t.agv_createtime)
                        .First();
                if (agv_task == null)
                    agv_task = freeDB.Select<dt_agvtask>()
                        .Where(t => t.agv_taskstate == AGVTaskStateEnum.Create.ToString()
                               && (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
                        .Where(t => t.agv_taskstate == "Create"
                               //&& (t.agv_tasktype == "TaskType_Outbound" || t.agv_tasktype == "TaskType_Inbound" || t.agv_tasktype == "TaskType_AOutbound")
                               && !string.IsNullOrEmpty(t.agv_remark))
                        .OrderByDescending(t => t.agv_grade)
                        .OrderBy(t => t.agv_createtime)
@@ -61,6 +62,8 @@
                    requestTask.Material = agv_task.agv_materielid;
                    requestTask.Grade = agv_task.agv_grade;
                    requestTask.Quantity = agv_task.agv_qty;
                    requestTask.TrayType = agv_task.agv_barcode.Contains("Small") ? 1 : 2;//
                    requestTask.TaskType = agv_task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 2 : 1;//
                    requestTask.A = Materiel.a;
                    requestTask.B = Materiel.b;
                    requestTask.C = Materiel.c;
@@ -70,13 +73,14 @@
                    requestTask.G = Materiel.g;
                    requestTask.H = Materiel.h;
                    postJson = JsonConvert.SerializeObject(requestTask);
                    report = Request.RequestData(postJson, "http://192.168.12.250:5566/api/TaskCreat/CreatTask");
                    report = Request.RequestData(postJson, "http://192.168.12.204:5000/api/TaskCreat/CreatTask");
                    respone = JsonConvert.DeserializeObject<Respone>(report);
                    if (respone.Success)
                    {
                        agv_task.agv_taskstate = AGVTaskStateEnum.SendOut.ToString();
                        agv_task.agv_realesstime = DateTime.Now;
                        freeDB.Update(agv_task).UpdateColumns(t => new { t.agv_realesstime, t.agv_taskstate }).ExecuteAffrows();
                        WriteWMSLog.LogAdd(requestTask.TASK_NO, "成功 ", "AGV", "WMS", postJson, report, "下发AGV任务", "SendAGVTask", respone.Msg);
                    }
                }
            }
@@ -84,8 +88,8 @@
            {
                respone.Success = false;
                respone.Msg = ex.Message;
                WriteWMSLog.LogAdd(requestTask.TASK_NO, "失败", "AGV", "WMS", postJson, report, "下发AGV任务", "SendAGVTask", respone.Msg);
            }
            WriteWMSLog.LogAdd(requestTask.TASK_NO, respone.Success ? "成功 " : "失败", "AGV", "WMS", postJson, report, "下发AGV任务", "SendAGVTask", respone.Msg);
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs
@@ -30,7 +30,7 @@
            dt_agvtask_hty agvtask_Hty = new dt_agvtask_hty()
            {
                hty_pkid = Guid.NewGuid(),
                agv_id = Guid.Empty,
                agv_id = task.agv_id,
                agv_tasknum = task.agv_tasknum,
                agv_materielid = task.agv_materielid,
                agv_qty = task.agv_qty,
@@ -39,7 +39,7 @@
                agv_executingBeginTime = task.agv_executingBeginTime,
                agv_executingEndTime = task.agv_executingEndTime,
                agv_completeBeginTime = task.agv_completeBeginTime,
                agv_finishedtime = DateTime.Now,
                agv_finishedtime = task.agv_finishedtime,
                agv_taskstate = task.agv_taskstate,
                agv_tasktype = task.agv_tasktype,
                agv_fromaddress = task.agv_fromaddress,
@@ -52,7 +52,9 @@
                agv_barcode = task.agv_barcode,
                agv_code = task.agv_code,
                agv_worktype = task.agv_worktype,
                agv_remark = task.agv_remark
                agv_remark = task.agv_remark,
                bindSN = task.bindSN,
                agv_materbarcode = task.agv_materbarcode,
            };
            htyRepository.Add(agvtask_Hty, true);
            repository.Delete(task, true);
@@ -64,22 +66,76 @@
        public static void Updateinventory(dt_agvtask task)
        {
            string[] bindSNs = task.bindSN.Split(",");
            int count = 0;
            if (bindSNs.Length > 0)
            {
                var Materiel = QueryData.QueryMateriel(task.agv_materielid);
                List<dt_inventory> inventorys = new List<dt_inventory>();
                foreach (string bindSN in bindSNs)
                if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
                {
                    dt_inventory inventory = new dt_inventory()
                    foreach (var bindSN in bindSNs)
                    {
                        SN = bindSN,//待完善
                    };
                    inventorys.Add(inventory);
                        //List<dt_inventory> inventorys = new List<dt_inventory>();
                        var inventory = freeDB.Select<dt_inventory>().Where(x => x.SN == bindSN).First();
                        //inventorys.Add(inventory);
                        count = freeDB.Remove(inventory);
                        if (count < 1)
                            throw new Exception("库存清除失败!SN号:" + bindSN);
                    }
                }
                if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
                    freeDB.AddRange(inventorys);
                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
                    freeDB.Remove(inventorys);
                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString())
                {
                    List<dt_inventory> inventorys = new List<dt_inventory>();
                    foreach (string bindSN in bindSNs)
                    {
                        var mes_detail = freeDB.Select<dt_mes_detail>().Where(x => x.SN == bindSN).First();
                        var mes_head = freeDB.Select<dt_mes_head>().Where(x => x.jobID == mes_detail.jobID).First();
                        var station = freeDB.Select<dt_stationinfo>().Where(x => x.stationCode == task.agv_toaddress).First();
                        dt_inventory inventory = new dt_inventory()
                        {
                            SN = bindSN,
                            Name = mes_head.productName,
                            FigureNumber = mes_head.drawingNo,
                            //HearthNumber = "",
                            HeatNumber = mes_detail.heatID,
                            BilletNumber = mes_detail.billetID,
                            OnlineTime = task.agv_finishedtime,
                            Operator = "admin",
                            stationCode = task.agv_toaddress,
                            area = station.area,
                            jobID = mes_detail.jobID,
                            ID = Guid.NewGuid()
                        };
                        inventorys.Add(inventory);
                    }
                    count = freeDB.AddRange(inventorys);
                    if (count < 1)
                        throw new Exception("库存添加失败!库位号:" + task.agv_toaddress);
                }
                //var Materiel = QueryData.QueryMateriel(task.agv_materielid);
                //List<dt_inventory> inventorys = new List<dt_inventory>();
                //foreach (string bindSN in bindSNs)
                //{
                //    dt_inventory inventory = new dt_inventory()
                //    {
                //        SN = bindSN,//待完善
                //        Name = "",
                //        FigureNumber = "",
                //        //HearthNumber = "",
                //        HeatNumber = "",
                //        //BilletNumber=,
                //        OnlineTime = task.agv_finishedtime,
                //        Operator = "admin",
                //        stationCode = task.agv_toaddress,
                //        area = "",
                //        jobID = "",
                //    };
                //    inventorys.Add(inventory);
                //}
                //if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
                //    freeDB.AddRange(inventorys);
                //else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
                //    freeDB.Remove(inventorys);
            }
        }
@@ -97,13 +153,19 @@
            station2.quantity = station1.quantity;
            station2.bindSN = station1.bindSN;
            station2.location_state = LocationStateEnum.Stroge.ToString();
            station2.tray_status = station1.tray_status;
            station2.Number = task.jobID;
            station2.heatNumber = station1.heatNumber;
            station2.stationType = station1.stationType;
            station2.tray_status = station1.tray_status;//横放/竖放
            stationinfoRepository.Update(station2, true);
            station1.quantity = 0;
            station1.bindSN = string.Empty;
            station1.location_state = LocationStateEnum.Empty.ToString();
            station1.tray_status = string.Empty;
            station1.Number = string.Empty;
            station1.heatNumber = string.Empty;
            station1.stationType = string.Empty;
            station1.tray_status = LocationStateEnum.Empty.ToString();
            stationinfoRepository.Update(station1, true);
        }
    }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs
@@ -3,6 +3,7 @@
using WIDESEA_Comm.MES_Info;
using WIDESEA_Comm.MES_Info.Request;
using WIDESEA_Common;
using WIDESEA_Core.FreeDB;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Entity.ToAGV;
using static WIDESEA_Comm.MES_Info.BasicSN;
@@ -11,7 +12,13 @@
{
    public class HandleTask_Mes
    {
        public void UploadMESInfo(dt_agvtask task)
        static FreeDB FreeDB = new FreeDB();
        /// <summary>
        /// å‘MES反馈出入库信息
        /// </summary>
        /// <param name="task"></param>
        /// <exception cref="Exception"></exception>
        public static void UploadMESInfo(dt_agvtask task)
        {
            try
            {
@@ -31,13 +38,24 @@
                if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
                {
                    agvOutWarehousePara outWarehousePara = new agvOutWarehousePara()
                    //agvOutWarehousePara outWarehousePara = new agvOutWarehousePara()
                    //{
                    //    JobID = task.jobID,
                    //    processCode=task.agv_worktype.ToString(),
                    //    details = list
                    //};
                    agvInWarehousePara outWarehousePara = new agvInWarehousePara()
                    {
                        details = list,
                        JobID = task.jobID,
                        details = list
                        processCode = task.agv_worktype.ToString(),
                        layerNo = 1,
                        stackID = "1",
                        warehouseName = "Agv库",
                        zoneID = task.agv_fromaddress,
                    };
                    obj = outWarehousePara;
                    ActionName = "agvOutWarehouse";
                    ActionName = "agvOutWarehouse";//AGV->MES车轮出库
                }
                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
                {
@@ -45,35 +63,50 @@
                    {
                        details = list,
                        JobID = task.jobID,
                        processCode = task.agv_worktype.ToString(),
                        layerNo = 1,
                        stackID = task.agv_barcode,
                        stackID = "1",
                        warehouseName = "Agv库",
                        zoneID = task.agv_toaddress,
                    };
                    obj = inWarehousePara;
                    ActionName = "agvInWarehouse";
                    ActionName = "agvInWarehouse";//AGV->MES车轮入库
                }
                else if (task.agv_tasktype == "Transfer")  //移库区分  åº“内移库/外协移库
                //else if (task.agv_tasktype == "Transfer")  //移库区分  åº“内移库
                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString())  //移库区分  åº“内移库
                {
                    agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara()
                    {
                        details = list,
                        fromLayerNo = "1",
                        fromStackID = "",
                        fromStackID = "1",
                        fromWarehouseName = "Agv库",
                        fromZoneID = task.agv_fromaddress,
                        toLayerNo = "1",
                        toStackID = "",
                        toStackID = "1",
                        toWarehouseName = "Agv库",
                        toZoneID = task.agv_toaddress,
                    };
                    obj = moveWarehousePara;
                    ActionName = "agvMoveWarehouse";
                    ActionName = "agvMoveWarehouse";//AGV->MES车轮移库
                }
                //else if (task.agv_tasktype == "Transfer")
                //{
                //}
                else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())// å¤–协移库
                {
                    var mes_head = FreeDB.Select<dt_mes_head>().Where(x => x.jobID == task.jobID).First();
                    agvTransferListPara agvTransferListPara = new agvTransferListPara()
                    {
                        details = list,
                        transferListID = task.agv_tasknum,
                        materialCode = mes_head.materialCode,
                        drawingNoVer = mes_head.drawingNoVer,
                        fromWarehouse = "AGV库",
                        toWarehouse = "毛轮库",
                        Operator = task.agv_userid,
                        updateTime = task.agv_createtime
                    };
                    obj = agvTransferListPara;
                    ActionName = "agvTransferList";
                }
                var postJson = JsonConvert.SerializeObject(obj);
                string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName);
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/Gantry/QueryData.cs
@@ -12,13 +12,23 @@
    {
        static FreeDB freeDB = new FreeDB();
        /// <summary>
        /// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
        /// æ ¹æ®å›¾å·æŸ¥è¯¢è½¦è½®ä¿¡æ¯
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static dt_geometry_data QueryMateriel(string type)
        {
            var materielinfo = freeDB.Select<dt_geometry_data>().Where(x => x.TypeId.ToString() == type).First();
            var materielinfo = freeDB.Select<dt_geometry_data>().Where(x => x.Description.ToString() == type).First();
            return materielinfo;
        }
        /// <summary>
        /// æ ¹æ®ä¸»é”®æŸ¥è¯¢è½¦è½®ä¿¡æ¯
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static dt_geometry_data QueryMateriel(int type)
        {
            var materielinfo = freeDB.Select<dt_geometry_data>().Where(x => x.TypeId == type).First();
            return materielinfo;
        }
    }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/IRepositories/BaseInfo/Idt_geometry_data_detectionlineRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹Idt_geometry_data_detectionlineRepository编写接口
 */
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_WMS.IRepositories
{
    public partial interface Idt_geometry_data_detectionlineRepository : IDependency,IRepository<dt_geometry_data_detectionline>
    {
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Idt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 */
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WMS.IServices
{
    public partial interface Idt_geometry_data_detectionlineService : IService<dt_geometry_data_detectionline>
    {
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/IServices/BaseInfo/Partial/Idt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
/*
*所有关于dt_geometry_data_detectionline类的业务代码接口应在此处编写
*/
using WIDESEA_Core.BaseProvider;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Core.Utilities;
using System.Linq.Expressions;
namespace WIDESEA_WMS.IServices
{
    public partial interface Idt_geometry_data_detectionlineService
    {
    }
 }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Repositories/BaseInfo/dt_geometry_data_detectionlineRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *Repository提供数据库操作,如果要增加数据库操作请在当前目录下Partial文件夹dt_geometry_data_detectionlineRepository编写代码
 */
using WIDESEA_WMS.IRepositories;
using WIDESEA_Core.BaseProvider;
using WIDESEA_Core.EFDbContext;
using WIDESEA_Core.Extensions.AutofacManager;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WMS.Repositories
{
    public partial class dt_geometry_data_detectionlineRepository : RepositoryBase<dt_geometry_data_detectionline> , Idt_geometry_data_detectionlineRepository
    {
    public dt_geometry_data_detectionlineRepository(VOLContext dbContext)
    : base(dbContext)
    {
    }
    public static Idt_geometry_data_detectionlineRepository Instance
    {
      get {  return AutofacContainerModule.GetService<Idt_geometry_data_detectionlineRepository>(); } }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_dataService.cs
@@ -37,5 +37,13 @@
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
  }
        public override WebResponseContent Add(SaveModel saveDataModel)
        {
            return base.Add(saveDataModel);
        }
        public override WebResponseContent Update(SaveModel saveModel)
        {
            return base.Update(saveModel);
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/Partial/dt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
/*
 *所有关于dt_geometry_data_detectionline类的业务代码应在此处编写
*可使用repository.调用常用方法,获取EF/Dapper等信息
*如果需要事务请使用repository.DbContextBeginTransaction
*也可使用DBServerProvider.手动获取数据库相关信息
*用户信息、权限、角色等使用UserContext.Current操作
*dt_geometry_data_detectionlineService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
*/
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_WMS.IRepositories;
namespace WIDESEA_WMS.Services
{
    public partial class dt_geometry_data_detectionlineService
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly Idt_geometry_data_detectionlineRepository _repository;//访问数据库
        [ActivatorUtilitiesConstructor]
        public dt_geometry_data_detectionlineService(
            Idt_geometry_data_detectionlineRepository dbRepository,
            IHttpContextAccessor httpContextAccessor
            )
        : base(dbRepository)
        {
            _httpContextAccessor = httpContextAccessor;
            _repository = dbRepository;
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
  }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/BaseInfo/dt_geometry_data_detectionlineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
/*
 *Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,此处任何更改都可能导致被代码生成器覆盖
 *所有业务编写全部应在Partial文件夹下dt_geometry_data_detectionlineService与Idt_geometry_data_detectionlineService中编写
 */
using WIDESEA_WMS.IRepositories;
using WIDESEA_WMS.IServices;
using WIDESEA_Core.BaseProvider;
using WIDESEA_Core.Extensions.AutofacManager;
using WIDESEA_Entity.DomainModels;
namespace WIDESEA_WMS.Services
{
    public partial class dt_geometry_data_detectionlineService : ServiceBase<dt_geometry_data_detectionline, Idt_geometry_data_detectionlineRepository>
    , Idt_geometry_data_detectionlineService, IDependency
    {
    public dt_geometry_data_detectionlineService(Idt_geometry_data_detectionlineRepository repository)
    : base(repository)
    {
    Init(repository);
    }
    public static Idt_geometry_data_detectionlineService Instance
    {
      get { return AutofacContainerModule.GetService<Idt_geometry_data_detectionlineService>(); } }
    }
 }
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/Taskinfo/Partial/dt_agvtaskService.cs
@@ -24,6 +24,7 @@
using WIDESEA_Common;
using WIDESEA_Core.ManageUser;
using WIDESEA_Comm.LogInfo;
using StackExchange.Redis;
namespace WIDESEA_WMS.Services
{
@@ -60,6 +61,7 @@
                var toaddress = saveDataModel.MainData["agv_toaddress"].ToString();
                var tasktype = saveDataModel.MainData["agv_tasktype"].ToString();
                var grade = saveDataModel.MainData["agv_grade"].ToInt();
                var worktype = saveDataModel.MainData["agv_worktype"].ToInt();
                var station1 = stationinfoRepository.FindFirst(x => x.stationCode == fromaddress);
                var station2 = stationinfoRepository.FindFirst(x => x.stationCode == toaddress);
                if (station1 == null || station2 == null)
@@ -81,7 +83,7 @@
                agvtask.agv_code = "AGV";
                agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
                agvtask.agv_tasktype = tasktype;
                agvtask.agv_worktype = 1;//工作类型
                agvtask.agv_worktype = worktype;//工作类型
                agvtask.bindSN = station1.bindSN;
                agvtask.agv_materielid = station1.stationType;//物料类型
                agvtask.agv_qty = station1.quantity;
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs
@@ -22,6 +22,7 @@
using WIDESEA_Core.FreeDB;
using WIDESEA_Core.ManageUser;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using static System.Collections.Specialized.BitVector32;
namespace WIDESEA_WMS.Services
{
@@ -47,7 +48,7 @@
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
        FreeDB freeDB=new FreeDB();
        FreeDB freeDB = new FreeDB();
        /// <summary>
        /// è®¾ç½®ç¼“存架禁用启用
        /// </summary>
@@ -100,7 +101,33 @@
            return base.Add(saveDataModel);
        }
        public override WebResponseContent Update(SaveModel saveModel)
        {
            WebResponseContent webResponse = new WebResponseContent();
            var station = _repository.FindFirst(x => x.id.ToString() == saveModel.MainData["id"].ToString());
            station.location_state = saveModel.MainData["location_state"].ToString();
            //station.bindSN = saveModel.MainData["bindSN"].ToString();
            var SNS = saveModel.MainData["bindSN"].ToString().Split(",");
            List<string> list = new List<string>();
            foreach (var SN in SNS)
            {
                if (!string.IsNullOrEmpty(SN))
                    list.Add(SN);
            }
            station.bindSN = string.Join(",", list);
            station.quantity = list.Count;
            station.stationType = saveModel.MainData["stationType"].ToString();
            station.heatNumber = saveModel.MainData["heatNumber"].ToString();
            station.Number = saveModel.MainData["Number"].ToString();
            station.remark = saveModel.MainData["remark"].ToString();
            station.tray_status= saveModel.MainData["tray_status"].ToString();
            var count = _repository.Update(station, true);
            if (count > 0)
                webResponse.OK();
            else
                webResponse.Error();
            return webResponse;
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToAGV/ToAGVServer.cs
@@ -5,6 +5,7 @@
using WIDESEA_Entity.DomainModels;
using WIDESEA_Entity.ToAGV;
using WIDESEA_WMS.Common;
using WIDESEA_WMS.Common.AGVTask;
using WIDESEA_WMS.IRepositories;
using WIDESEA_WMS.Repositories;
@@ -38,7 +39,7 @@
                if (tasteInfo.TASK_State < 1 || tasteInfo.TASK_State > 4)
                    throw new Exception("未定义的任务状态:" + tasteInfo.TASK_State);
                var StateName = Enum.GetName(typeof(AGVTaskStateEnum), tasteInfo.TASK_State);
                if (task.agv_taskstate == StateName)
                if (task.agv_taskstate == StateName && task.agv_taskstate != AGVTaskStateEnum.Complete1.ToString())
                {
                    respone.success = 2;
                    respone.Message = tasteInfo.TASK_NO + ":重复调用,任务状态为:" + tasteInfo.TASK_State;
@@ -62,9 +63,11 @@
                    throw new Exception("任务状态更新失败!任务ID:" + tasteInfo.TASK_NO + ";任务状态:" + tasteInfo.TASK_State);
                if (tasteInfo.TASK_State == (int)AGVTaskStateEnum.Complete1)
                {
                    HandleTask.AddHtyTask(task);
                    task.agv_finishedtime = DateTime.Now;
                    //HandleTask_Mes.UploadMESInfo(task);
                    HandleTask.Updateinventory(task);
                    HandleTask.AutoUpdateHCJState(task);
                    HandleTask.AddHtyTask(task);
                }
            }
            catch (Exception ex)
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_geometry_data_detectionlineController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
/*
 *接口编写处...
*如果接口需要做Action的权限验证,请在Action上使用属性
*如: [ApiActionPermission("dt_geometry_data_detectionline",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_WMS.IServices;
namespace WIDESEA_WMS.Controllers
{
    public partial class dt_geometry_data_detectionlineController
    {
        private readonly Idt_geometry_data_detectionlineService _service;//访问业务代码
        private readonly IHttpContextAccessor _httpContextAccessor;
        [ActivatorUtilitiesConstructor]
        public dt_geometry_data_detectionlineController(
            Idt_geometry_data_detectionlineService service,
            IHttpContextAccessor httpContextAccessor
        )
        : base(service)
        {
            _service = service;
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/dt_geometry_data_detectionlineController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
/*
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *如果要增加方法请在当前目录下Partial文件夹dt_geometry_data_detectionlineController编写
 */
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core.Controllers.Basic;
using WIDESEA_Entity.AttributeManager;
using WIDESEA_WMS.IServices;
namespace WIDESEA_WMS.Controllers
{
    [Route("api/dt_geometry_data_detectionline")]
    [PermissionTable(Name = "dt_geometry_data_detectionline")]
    public partial class dt_geometry_data_detectionlineController : ApiBaseController<Idt_geometry_data_detectionlineService>
    {
        public dt_geometry_data_detectionlineController(Idt_geometry_data_detectionlineService service)
        : base(service)
        {
        }
    }
}
ÏîÄ¿×ÊÁÏ/DB/dt_geometry_data(»ú¼Ó¹¤).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/DB/dt_geometry_data(¼ì²âÏß).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/DB/dt_geometry_data(³µÂÖÊý¾Ý).xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/DB/»ú¼Ó¹¤dt_geometry_data.sql
ÏîÄ¿×ÊÁÏ/DB/¼ì²âÏßdt_geometry_data.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,677 @@
-- --------------------------------------------------------
-- Host:                         127.0.0.1
-- Server version:               5.5.23 - MySQL Community Server (GPL)
-- Server OS:                    Win32
-- HeidiSQL version:             7.0.0.4140
-- Date/time:                    2024-02-29 14:47:04
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
-- Dumping database structure for db2
CREATE DATABASE IF NOT EXISTS `db2` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `db2`;
-- Dumping structure for table db2.wd_geometry_data
CREATE TABLE IF NOT EXISTS `wd_geometry_data` (
  `TypeId` int(11) NOT NULL DEFAULT '0' COMMENT 'e.g. 10001',
  `Description` varchar(64) NOT NULL DEFAULT '',
  `a` float NOT NULL DEFAULT '0',
  `b` float NOT NULL DEFAULT '0',
  `c` float NOT NULL DEFAULT '0',
  `d` float NOT NULL DEFAULT '0',
  `e` float NOT NULL DEFAULT '0',
  `f` float NOT NULL DEFAULT '0',
  `g` float NOT NULL DEFAULT '0',
  `h` float NOT NULL DEFAULT '0',
  `skip_01` tinyint(1) NOT NULL DEFAULT '0',
  `skip_02` tinyint(1) NOT NULL DEFAULT '0',
  `skip_03` tinyint(1) NOT NULL DEFAULT '0',
  `skip_04` tinyint(1) NOT NULL DEFAULT '0',
  `skip_05` tinyint(1) NOT NULL DEFAULT '0',
  `skip_06` tinyint(1) NOT NULL DEFAULT '0',
  `skip_07` tinyint(1) NOT NULL DEFAULT '0',
  `skip_08` tinyint(1) NOT NULL DEFAULT '0',
  `skip_09` tinyint(1) NOT NULL DEFAULT '0',
  `skip_10` tinyint(1) NOT NULL DEFAULT '0',
  `skip_11` tinyint(1) NOT NULL DEFAULT '0',
  `skip_12` tinyint(1) NOT NULL DEFAULT '0',
  `skip_13` tinyint(1) NOT NULL DEFAULT '0',
  `skip_14` tinyint(1) NOT NULL DEFAULT '0',
  `skip_15` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`TypeId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Dumping data for table db2.wd_geometry_data: ~629 rows (approximately)
/*!40000 ALTER TABLE `wd_geometry_data` DISABLE KEYS */;
INSERT INTO `wd_geometry_data` (`TypeId`, `Description`, `a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`, `skip_01`, `skip_02`, `skip_03`, `skip_04`, `skip_05`, `skip_06`, `skip_07`, `skip_08`, `skip_09`, `skip_10`, `skip_11`, `skip_12`, `skip_13`, `skip_14`, `skip_15`) VALUES
    (1, 'TSW-003D', 69, 16, 121, -28, 971, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (2, 'TSW-051', 69, 16, 122.5, -29.5, 897, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (3, 'TSW-609', 69, 16, 122.5, -29.5, 897, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (4, 'TSW-316-2', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (5, 'TSW-510', 66.5, 16, 121.5, -4, 894, 237, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (6, 'TSW-843', 73, 16, 119, -30, 971, 210, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (7, 'TSW-383', 0, 16.05, 123.95, 58, 1306, 242, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (9, 'TSW-255-1', 16.5, 15, 120, 19.5, 914, 198, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (10, 'TSW-791', 15.25, 16, 119, 25.25, 974.25, 200, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (11, 'TSW-658', 76, 15, 78.7, -52.4, 876, 144, 19, 42.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (12, 'TSW-987', -11, 18, 122, 60, 1306, 248, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (13, 'TSW-898', 35.25, 16, 119.5, 9.5, 914, 199, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (14, 'TSW-208-1', 58, 16, 119, 1, 898, 175, 29, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (15, 'TSW-943', 68, 10.5, 124.5, -25, 980, 186, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (19, 'TSW-607-1', 55, 16.25, 123.75, -20, 1276, 223, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (20, 'TSW-316-15', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (21, 'TSW-665', 65, 18, 123, -25, 910, 186, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (22, 'TSW-802', 30.25, 16, 128, 14.25, 971.25, 210, 27.3, 77.79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (23, 'TSW-281A', 19.5, 16, 124, 18.5, 1021, 215, 27, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (24, 'TSW-864', 63.5, 19, 121, -26.5, 972, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (25, 'TSW-685-1', 24, 16.25, 119, 27, 978, 192, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (26, 'TSW-423', 37, 19.53, 119.47, -12, 1159, 238, 31, 68.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (27, 'TSW-436-1', 2.75, 16, 119, 38.5, 894, 193, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (28, 'TSW-229', 20.5, 16, 119, 20.5, 975, 187, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (29, 'TSW-438', 44.5, 12.7, 114.3, 6.5, 931.5, 189.5, 28.5, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (31, 'TZWS-214-02', 9.5, 16, 121, 15.5, 895, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (32, 'TSW-441', 73, 16, 126, -15, 1105, 232, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (33, 'TSW-864-1', 63.5, 13, 127, -26.5, 975.6, 212, 28.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (34, 'TSW-425', 20, 15, 120, 20, 916.2, 188, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (35, 'TSW-449-3', 29, 16, 115, 30, 979, 184, 30, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (36, 'TSW-360-3', 12, 16, 119, 39, 914, 206, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (37, 'TSW-361-1', 12, 16, 119, 39, 914, 206, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (38, 'TSW-752-2', 79, 13, 122, -18, 1056, 212, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (39, 'TSW-451', 49.1, 15.9, 119, -12.5, 1149.6, 209, 26.2, 72.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (41, 'TSW-362', 44.5, 19.78, 123.12, -14.7, 1071.66, 201.6, 27.83, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (42, 'TSW-981', 17, 16, 119, 34, 914, 200, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (43, 'TSW-759-1', 84.5, 16, 115, -24.5, 1012.6, 188, 27.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (44, 'TSW-425-1', 20, 15, 120, 20, 916.2, 187, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (45, 'TSW-1009', -25, 16, 119, 60, 894, 199, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (46, 'TSW-456', 18, 17.2, 115.8, 29, 1149, 212, 28.48, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (47, 'TZWS469-02', 63.5, 16, 129.3, -28.8, 925, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (48, 'TSW-468', 39.4, 14.3, 128.58, -22.28, 1149.41, 243.5, 28.58, 63.51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (49, 'TSW-455-2', 18, 16, 117, 29, 1147, 212, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (50, 'TSW-467-1', 78, 15, 125, -16, 1025, 238, 27.5, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (51, 'TSW-300-2', 66, 14, 127, -29, 904, 189, 27, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (52, 'TSW-927', 42, 16, 117, 26, 1015, 182, 30, 66.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (53, 'TSW-941', 28, 16, 119, 15, 894, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (54, 'TSW-638-6', 22.5, 16, 119, 27.5, 972, 199, 26, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (55, 'TSW-942', 57.15, 10, 125, -1.65, 1150, 165, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (56, 'TSW-630', 3.5, 15.875, 123.825, 24.3, 930.8, 135.9, 26.8, 72.231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (57, 'TSW-442', 71.5, 13.95, 125, -29.5, 980.6, 214, 28.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (58, 'TSW-200-5', 69, 16, 122.5, -29.5, 971, 202, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (60, 'TSW-151L', 22.75, 16, 119, 28.75, 978, 198, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (62, 'TSW-476-4', 10, 16, 119, 4, 914, 175, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (63, 'TSW-895-1', 15, 16, 119, 36.5, 918, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (65, 'TSW-640', 63.5, 19.96, 125.24, -30.9, 896, 208, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (66, 'TSW-123-4', 63.5, 20, 125, -32.5, 898, 200, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (67, 'TSW-715', 1.45, 15.25, 124.45, 22.95, 930, 131, 26.59, 72.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (68, 'TSW-445', 49.2, 16, 123.7, -23.6, 1070.8, 225.4, 25.4, 72.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (69, 'TSW-788', 60.1, 13, 124, -17, 1008, 164, 29, 68.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (70, 'TSW-848', 9.25, 16, 119, 32.25, 894, 205, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (71, 'TSW-360-1', 12, 16, 119, 39, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (72, 'TSW-361', 12, 16, 119, 39, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (73, 'TSW-792', 54, 14, 121, 4, 1005.8, 182, 27.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (74, 'TSW-517-1', 15.25, 14.5, 120.5, 25.25, 976, 200, 27.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (75, 'TSW-963', 0, 22, 129.5, 60.5, 1123, 206, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (76, 'TSW-429-4', 13.5, 15, 125, 24.5, 1123, 235, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (77, 'TSW-005-16', 69, 16, 122.5, -29.5, 897, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (78, 'TSW-975', 20.5, 16, 119, 20.5, 914, 210, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (79, 'TSW-179-68', 65, 17, 124, -26, 910, 188, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (80, 'TSW-053-10', 35.5, 16, 119, 0.5, 895, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (81, 'TSW-536-1', 44.5, 19.96, 123, -19.6, 1097, 225, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (82, 'TSW-319', 65, 15, 127, -29, 911, 184, 27, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (83, 'TSW-112-33', 68.5, 16, 120.5, -26, 898, 181.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (84, 'TSW-935', 2.5, 16, 119, 40.5, 914, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (85, 'TSW-112-97', 69, 16, 120, -26, 894, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (86, 'TSW-493', 9, 16, 119, 32.25, 894.5, 199.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (87, 'TSW-493-1', 9, 16, 119, 32.25, 894.5, 199.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (88, 'TSW-493-4', 9, 16, 119, 32.25, 894.5, 199.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (89, 'TSW-112-20', 69, 16, 120.5, -27.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (90, 'TSW-424', 69, 16, 120.5, -27.5, 895, 186, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (91, 'TSW-721', 15.9, 16, 129.3, -23.024, 1070, 234.16, 27, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (92, 'TSW-681', 35, 18, 129, 5, 935, 163, 30, 89.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (93, 'TSW-958', 70, 16, 119.5, -27, 895, 194, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (94, 'TSW-112-27', 68, 16, 119, -25, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (95, 'TSW-627', 69, 14, 124.5, -29.5, 894, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (96, 'TSW-931', 56, 16, 119, 2.5, 974, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (97, 'TSW-123-5', 63.5, 20, 125, -32.5, 898, 200.6, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (98, 'TSW-517', 15.5, 17.7, 125.3, 25.5, 985, 188, 26.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (99, 'TSW-518-5', 15.5, 18, 125, 25.5, 985, 179, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (100, 'TSW-588', 46, 15, 125, -28, 1072, 228, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (101, 'TSW-800-2', 44.9, 16, 124, 9.1, 1123, 244, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (102, 'TSW-112-53', 69, 13, 124, -28, 897, 153, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (103, 'TSW-248-2', 51, 16, 120, -21, 902, 178, 26, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (105, 'TSW-686-1', 32.5, 15.9, 124, 17, 967, 210, 26.2, 72.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (106, 'TSW-112-44', 65, 16, 120.5, -26.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (107, 'TSW-112-22', 69, 16, 120.5, -27.5, 897, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (108, 'TSW-112-49', 69, 16, 120.5, -27.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (109, 'TSW-934', 16, 16, 119, 19, 976, 180, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (110, 'TSW-449-3', 29, 16, 115, 30, 979, 184, 30, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (111, 'TSW-302-2', 15, 14, 121, 5, 921, 157, 29, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (112, 'TSW-533', 25.5, 16, 119, 15, 906, 187, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (113, 'TSW-603-4', 20.5, 16, 119, 20.5, 894.5, 189.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (114, 'TSW-911', 66, 10.5, 124.5, -23, 1010, 207, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (116, 'TSW-123-7', 63.5, 20, 125, -29.7, 898, 171.5, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (117, 'TSW-481', 11.8, 16, 112, 19, 974, 197, 27, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (118, 'TSW-518-5', 15, 15.3, 119.7, 25.5, 976.25, 191, 27.978, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (119, 'TZWS-483-02', 63, 16, 111, 1.5, 899.5, 212, 29, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (120, 'TSW-198-2', 5, 10.5, 110.5, 49, 1025, 189, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (121, 'TSW-711', 17, 15, 120, 23.5, 977, 191, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (122, 'TSW-518-4', 15.5, 19, 122, 24, 983, 185, 28.35, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (123, 'TSW-518-6', 15.5, 18.5, 121.5, 25.5, 981, 186, 28, 72.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (125, 'TSW-719-4', 20, 16, 119, 30, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (126, 'TSW-819', 2.75, 16, 119, 38.5, 894.5, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (127, 'TZWS-121-02', 63.5, 20, 125, -30, 893.6, 205, 25.4, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (128, 'TSW-576-5', 31, 16, 119, 19.5, 894.5, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (129, 'TSW-570', 63.5, 15, 110, -17, 905, 202, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (130, 'TSW-341', 69, 16, 120.5, -27.5, 898, 184, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (131, 'TSW-215-1', 65, 16, 120.5, -26.5, 895, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (132, 'TSW-112-106', 71, 16, 121, -27, 896, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (133, 'TSW-249-1', 24.5, 16, 120, 26, 972, 199, 26, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (134, 'TSW-112-18', 65, 16, 120.5, -26.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (136, 'TSW-112-70', 68, 16, 119, -25, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (137, 'TSW-112-50', 69, 16, 120, -26, 890, 150, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (138, 'TZWS-204-02', 35.5, 16, 119, 0.5, 896, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (139, 'TSW-458-2', 30.5, 16, 119.5, 5, 898, 179, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (140, 'TSW-928', 33.5, 15, 120, -1, 898, 190, 29, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (141, 'TSW-906', 2, 16, 121, 39, 894, 199, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (142, 'TSW-112-57', 68, 16, 119, -27, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (143, 'TSW-617-1', 12, 16, 119, 39, 914, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (144, 'TSW-321-2', 55, 15, 126, -30.9, 974, 198, 27, 70.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (145, 'TSW-005-32', 69, 16, 124, -30, 898, 178, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (147, 'TSW-989', 64.5, 16, 129.26, -31.96, 888.8, 187, 25.4, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (148, 'TSW-002-10', 68, 16, 119, -25, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (149, 'TSW-618', 12, 16, 119, 39, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (150, 'TSW-179-40', 65, 17, 123, -26, 915.8, 188, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (151, 'TSW-602', 22.75, 17.9, 122.1, 28.75, 986, 187, 28, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (152, 'TSW-974', 20, 16, 119, 30, 894, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (153, 'TSW-158-4', 46.5, 10.5, 109.5, 12.5, 912.5, 158, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (154, 'TSW-290-1', 65, 16, 122, -25, 970, 204, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (155, 'TSW-223-7', 63, 12.358, 125.142, -22.5, 1012.3, 172, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (157, 'TSW-531', 39.5, 13.5, 124, -12.5, 1087.5, 202, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (158, 'TSW-541-1', 23, 15, 120, 27, 976, 198, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (159, 'TSW-237A', 26, 14, 121, 27.5, 978, 200, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (161, 'TSW-265-2', 14, 16, 119, 26, 969, 194, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (162, 'TZWS-231-02', 63, 14.4, 112.6, 0, 972, 211, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (163, 'TSW-971', 68.25, 16, 119.5, -25.8, 894.5, 197.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (164, 'TSW-560-4', 35, 16, 119, 5, 925, 187, 29, 82.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (165, 'TSW-003E', 69, 16, 121, -28, 971, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (166, 'TSW-635-1', 4, 19, 123, 36, 900, 198, 27, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (167, 'TSW-112-42', 68, 16, 119, -25, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (168, 'TSW-504-1', 44.45, 16, 125.2, -17.65, 1143, 228.6, 25.4, 76.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (169, 'TSW-003-8', 69, 16, 121, -28, 964, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (170, 'TSW-612', 69, 16, 122.5, -29.5, 899, 201, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (171, 'TSW-244', 69, 16, 120.5, -27.5, 894, 153, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (172, 'TSW-005-34', 69, 10.5, 128, -29.5, 900, 186, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (173, 'TSW-005-33', 69, 16, 122.5, -29.5, 894, 176, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (174, 'TSW-1003', 18, 16, 119, 25, 969, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (175, 'TSW-457-3', 20.5, 17.5, 117.5, 20.5, 977.2, 198, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (176, 'TSW-707', 35.5, 15, 120, 3, 896, 193, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (177, 'TSW-932', 56.5, 16, 119, 3.5, 896, 180, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (178, 'TZWS-295-02', 63.5, 13, 112, -17, 905, 207, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (179, 'TSW-149-5', 63.5, 20, 125.25, -31, 1022.75, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (180, 'TSW-940', 63, 13, 124, -22, 1015.5, 172, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (181, 'TZWS-362-02', 39, 13, 112.5, 13, 905, 184, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (182, 'TSW-660-1', -7, 16, 119, 34, 896, 181, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (183, 'TZWS-201-02', 39, 13, 112.5, 13, 907, 180, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (184, 'TSW-468-1', 39.4, 14.3, 128.58, -22.28, 1149.41, 243.5, 28.58, 63.51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (185, 'TSW-557', 8, 13, 117, 23.5, 1076, 177, 27, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (186, 'TSW-558', 22, 13, 117, 0, 1076, 193, 27, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (187, 'TSW-469-1', 41.3, 15.8, 127, -17.5, 1079.5, 189, 28.58, 66.68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (188, 'TSW-398-1', 15, 16, 119, 25, 1104, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (189, 'TSW-005-25', 68, 16, 121, -28, 897, 194, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (190, 'TZWS-123-02', 68, 16, 119, -25, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (191, 'TSW-383-3', -10.5, 18, 122, 61, 1287, 250, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (192, 'TSW-252', 69, 16, 122.5, -29.5, 897, 141, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (193, 'TSW-245', 69, 16, 122, -30, 896, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (194, 'TSW-924', 50, 15, 110, -3.5, 905, 169, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (195, 'TSW-569-2', 8.5, 16, 119, 34.5, 1106, 229, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (196, 'TSW-333-1', 63.5, 19.96, 125.34, -31, 1020.8, 235, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (197, 'TSW-112-31', 69, 16, 120.5, -27.5, 891, 181, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (198, 'TSW-519', 69, 14, 116, -21, 971, 186, 27, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (199, 'TSW-134', 63.5, 20, 125, -30.5, 893.6, 198, 27.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (200, 'TSW-112-108', 69, 16, 120.5, -27.5, 899, 180, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (201, 'TSW-179-38', 65, 17, 124, -25, 914, 208, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (202, 'TSW-112-32', 68.5, 16, 120.5, -26, 898, 181.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (203, 'TSW-540', 0, 16, 120, 39, 904, 195, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (204, 'TSW-112-47', 71, 16, 121, -27, 894, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (205, 'TSW-589', 42, 18, 119, -13, 1150, 244, 29, 64.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (206, 'TSW-457-1', 20.5, 17.5, 117.5, 20.5, 977.2, 187, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (207, 'TSW-112-48', 69, 16, 120.5, -27.5, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (208, 'TSW-709', 20, 16, 119, 30.5, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (209, 'TSW-163-3', 15, 16, 119, 20, 976, 179, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (210, 'TSW-051-E2', 70, 16, 124, -30, 900, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (211, 'TSW-548', 15, 17.7, 117.3, 25.5, 976.66, 198, 28.33, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (212, 'TSW-112-10', 68, 16, 119, -25, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (213, 'TSW-316-1', 0, 16, 119, 41, 894, 187.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (214, 'TSW-227', 69, 16, 121, -28, 895, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (215, 'TSW-452', 50, 19.5, 120, -32, 1160, 208, 31, 68.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (216, 'TSW-179-26', 65, 18, 123, -25, 915, 204, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (218, 'TSW-691', 15, 15, 120, 25, 976, 194, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (219, 'TSW-556', 68, 12.45, 122.55, -25, 896.8, 200, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (220, 'TSW-309', 69, 11, 125.5, -27.5, 898, 170, 29, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (221, 'TSW-285', 69, 16, 122.5, -29.5, 893, 141, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (222, 'TSW-429-2', 13.5, 15, 125, 24.5, 1123, 229.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (223, 'TSW-518-3', 15.25, 15, 120, 25.25, 976.25, 191, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (224, 'TSW-112-83', 68, 16, 119, -25, 896, 189.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (225, 'TSW-526', 38, 16, 119, 12, 896, 206, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (226, 'TSW-555', 7, 15, 112, 42, 905, 202, 27.5, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (227, 'TSW-112-59', 69, 16, 120.5, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (228, 'TSW-053-6', 35, 16, 119, 0, 896, 177, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (229, 'TSW-859-1', 2.5, 16, 124, 50, 1126.36, 228, 29.68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (230, 'TSW-248', 51, 16, 120, -21, 902.2, 178, 26.1, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (231, 'TSW-247', 53, 16, 125.5, -8.5, 956, 174, 28, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (232, 'TSW-112-71', 71, 16, 121, -27, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (233, 'TSW-053-2', 35.5, 16, 119, 0.5, 896, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (234, 'TSW-112-77', 68, 16, 119, -25, 898, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (235, 'TSW-123-1', 63.5, 20, 125, -32.5, 898, 198, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (236, 'TSW-112-69', 69, 16, 120.5, -27.5, 894, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (237, 'TSW-12-84', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (238, 'TSW-910', 64, 15, 124, -24.7, 897.25, 206.75, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (239, 'TSW-794', 69, 14, 124.5, -29.5, 899, 183, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (240, 'TSW-628', 27.5, 13, 112, 19, 905, 173, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (241, 'TSW-385-11', 63.5, 19.96, 125.24, -30.7, 974, 214, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (242, 'TSW-717', 15, 19, 122, 25, 982, 193, 28, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (243, 'TSW-325-1', 69, 14, 121, -26, 901, 185, 29, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (245, 'TSW-678', 3.5, 16, 121, 42, 925, 192, 29, 66.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (246, 'TSW-718', 15, 19, 122, 25, 982, 184, 28, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (247, 'TSW-400-2', 3.5, 18, 129, 31.5, 1123, 226, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (248, 'TSW-149-10', 63.5, 20, 125.25, -31, 1022.75, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (249, 'TSW-316-3', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (251, 'TSW-151D', 23.75, 16, 119, 27.75, 978, 192, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (252, 'TSW-394-1', -18.92, 15, 124.7, 31.72, 1121, 213.7, 27, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (253, 'TSW-200-6', 69, 15, 121.5, -27.5, 975.16, 200, 28.58, 63.51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (254, 'TSW-621', 65, 16, 125, -26, 910.8, 193, 25.4, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (255, 'TSW-400-3', 7, 21.5, 125, 25, 1113, 228, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (256, 'TSW-723-2', 84.5, 16, 115.5, -24.5, 1012.6, 173, 27.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (257, 'TSW-112-68', 69, 16, 119, -26, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (258, 'TSW-112-81', 69, 16, 120, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (259, 'TSW-454', 60.1, 13, 124, -16, 1009.5, 169, 29, 68.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (260, 'TSW-179-31', 65, 18, 123, -25, 911, 185, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (261, 'TZWS-213-02', 30, 15.9, 124, 6, 969, 235, 27.2, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (262, 'TSW-476-1', 10, 16.25, 118.75, 4, 914, 175.17, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (263, 'TSW-476-2', 10, 16.25, 118.75, 4, 914, 175.2, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (264, 'TSW-316-11', 0, 16, 119, 41, 896, 189.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (265, 'TSW-391', 57.15, 14.29, 114.71, 5.56, 1149.4, 165, 28.58, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (266, 'TSW-534', 27, 16, 116, 18.5, 906.25, 187, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (267, 'TSW-112-51', 71, 16, 119, -28, 894, 187, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (268, 'TSW-158-3', 46, 10.5, 109.5, 12, 912, 165, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (269, 'TSW-200-7', 69, 15, 123.5, -29.5, 972.16, 204, 28.58, 63.51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (271, 'TSW-722', 40.1, 16, 129.3, -28.4, 1070, 227, 27, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (273, 'TSW-700-5', 69, 16, 122.5, -29.5, 889, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (274, 'TSW-498', 12, 16, 119, 39, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (275, 'TSW-619', 20, 16, 119, 30, 894, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (277, 'TSW-385-2', 64.5, 19.96, 125.24, -30.7, 974, 215, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (280, 'TSW-149-7', 63.5, 20, 125.25, -31, 1022.75, 234, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (281, 'TSW-811', 68, 16, 112, -17, 894, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (283, 'TZWS-203-02', 63, 14.5, 112.5, 0, 1057, 207, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (284, 'TSW-179-37', 65, 17, 124, -25, 914, 191.6, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (285, 'TSW-741', 50.5, 10.5, 124.5, -20.5, 994, 188, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (286, 'TSW-319-3', 67, 14, 126, -29, 904, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (287, 'TSW-112-75', 69, 16, 120.5, -27.5, 899, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (289, 'TSW-888', 92, 16, 119, -30, 1121.6, 190, 27.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (290, 'TSW-871', 69, 11.1, 125.4, -27.5, 907.1, 188, 28.57, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (291, 'TSW-134-6', 63.5, 20, 125, -30.5, 893.6, 198, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (292, 'TSW-933', 27, 15.2, 119.8, 15, 896, 205, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (295, 'TSW-112-3', 69, 16, 120.5, -27.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (297, 'TSW-112-79', 69, 16, 120.5, -27.5, 894.5, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (299, 'TSW-636', 16, 10.5, 116.5, 50, 890, 191, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (300, 'TSW-567-3', 38.1, 13, 112, 8, 905, 169, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (301, 'TSW-051-S', 69, 16, 124, -30, 890, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (302, 'TSW-164-1', 55, 15, 120, 0, 976, 179, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (303, 'TSW-567', 39, 13, 112.5, 13, 907, 180, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (304, 'TSW-151C', 22.75, 16, 119, 28.75, 978, 192, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (305, 'TSW-402', 56.5, 16, 119, -5, 978, 177.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (306, 'TSW-151E', 23.75, 16, 119, 27.75, 978, 192, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (307, 'TSW-112-5', 69, 16, 120.5, -27.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (308, 'TSW-240-2', 67, 15, 120, -22, 976, 204, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (309, 'TSW-333-4', 63.5, 19.96, 125.34, -31, 1020.8, 231.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (310, 'TSW-800-1', 44.9, 16, 124, 9.1, 1123, 244, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (312, 'TSW-599', 38, 11.9, 120.1, 5, 924, 185, 29, 82.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (313, 'TSW-311', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (314, 'TSW-732-1', 15, 15, 120, 21, 976, 178, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (315, 'TSW-458-3', 30.5, 16, 119.5, 5, 899, 183, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (316, 'TSW-751', 63.5, 19, 121, -26.5, 973, 213.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (317, 'TSW-426', 17, 15, 120, 23, 916.2, 180, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (318, 'TSW-112-62', 71, 16, 121, -27, 896, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (319, 'TSW-518-2', 15, 15, 120, 25.5, 976, 191, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (320, 'TSW-566', 50.8, 15, 110, -4.3, 905, 203, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (322, 'TSW-285-4', 69, 13, 124.5, -28.5, 898.4, 141, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (323, 'TSW-973', 2.75, 16, 119.5, 38.25, 894.5, 196, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (324, 'TSW-366-4', 16, 16, 119, 19, 894, 196, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (326, 'TSW-366-2', 16, 15, 120, 20, 896, 202, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (327, 'TSW-643', -19, 18, 122, 31.5, 1123.8, 213.7, 28.5, 71.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (328, 'TSW-814', 67, 16, 119, -22, 976, 204, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (330, 'TZWS-127-02', 20.25, 17, 118, 20, 918, 187, 29, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (332, 'TSW-002-7', 68, 16, 119, -25, 899, 187, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (333, 'TSW-071-2', 68, 16, 119, -25, 899, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (334, 'TSW-944', 56.5, 15.5, 119.5, 0, 956, 179, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (335, 'TSW-219', 54, 16, 124, -13, 1158, 178, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (336, 'TSW-605-2', 64, 15, 125, -26, 897, 207, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (342, 'TSW-316-16', 0, 16, 119, 41, 896, 196, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (343, 'TSW-112-87', 69, 16, 119, -25, 894, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (345, 'TSW-819-1', 2.75, 16, 119, 38.5, 894.5, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (346, 'TSW-053-14', 46.5, 16, 119, -1.5, 896, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (347, 'TSW-051-11', 69, 16, 119, -26, 897, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (348, 'TSW-002-E1', 69, 16, 119, -26, 894, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (349, 'TSW-005-29', 69, 15, 123.5, -29.5, 899, 185, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (350, 'TSW-163-6', 15, 16, 119, 21, 974, 177, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (351, 'TSW-400-1', 14, 18, 134, 32, 1128, 180, 31, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (352, 'TSW-112-72', 68, 16, 119, -25, 894, 187, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (354, 'TSW-621-1', 65, 16, 125, -26, 910.8, 190, 25.4, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (355, 'TSW-391-1', 57.15, 14.29, 114.71, 5.56, 1149.4, 165, 28.58, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (356, 'TSW-151F', 23.75, 15.5, 119.5, 27.75, 980, 193, 29, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (361, 'TSW-112-91', 68, 16, 119, -25, 896, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (362, 'TSW-200', 69, 16, 122.5, -29.5, 970.1, 221, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (368, 'TSW-560-1', 36.5, 16, 120, 5, 925, 165, 29, 82.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (375, 'TZWS-183-02', 56.5, 16, 119, -5, 978, 177.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (377, 'TSW-091-2', 65, 16, 120.5, -26.5, 897.2, 178, 26.1, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (378, 'TZWS-288-02', 26.6, 14.3, 112.7, 20.4, 977.96, 190, 28.58, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (379, 'TSW-112-16', 69, 16, 120.5, -27.5, 897, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (380, 'TZWS-72-02', 21.5, 16, 121, 3.5, 895, 180, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (381, 'TSW-391-2', 57.15, 14.29, 114.71, 5.56, 1149.4, 165, 28.58, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (382, 'TSW-179-42', 65, 17, 123, -25, 915, 188, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (383, 'TSW-188-5', 63, 14.5, 115, 0, 1057, 202.25, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (384, 'TSW-112-61', 68, 16, 119, -24, 896, 188, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (387, 'TSW-112-9', 69, 16, 120.5, -27.5, 899, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (388, 'TSW-112-24', 69, 16, 119, -25, 894, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (389, 'TSW-112-67', 68, 16, 119, -25, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (390, 'TSW-626-1', 24.5, 16, 119, 20.5, 894, 203, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (391, 'TSW-149-9', 63.5, 20, 125.25, -31, 1022.75, 228, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (393, 'TSW-071-1', 69, 16, 120.5, -27.5, 895, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (394, 'TSW-936', 2.75, 10.5, 110, 53.25, 910, 180, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (396, 'TSW-459', 63.5, 15.9, 123.8, -23.2, 924.6, 151, 27.3, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (398, 'TSW-473-1', 23.5, 15, 120, 28, 976, 200, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (408, 'TSW-507', 16, 15.9, 123.8, -17.7, 1066.8, 230, 25.4, 72.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (409, 'TSW-469', 41.3, 15.8, 127, -17.5, 1077.5, 188, 28.58, 66.68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (410, 'TSW-112-47', 71, 16, 121, -27, 896, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (411, 'TSW-580', 0, 16, 119, 41, 916, 197, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (412, 'TSW-112-60', 68, 16, 119, -25, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (413, 'TSW-310-3', 27, 15, 125, 9, 1158, 201.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (414, 'TSW-482', 0, 17, 118, 41, 976.8, 197, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (416, 'TSW-112-107', 69, 16, 120.5, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (417, 'TSW-316-12', 0, 16, 119, 41, 896, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (418, 'TSW-316-14', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (419, 'TSW-641', 23, 16, 119, 27, 974, 205, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (420, 'TZWS-440-02', 16, 15, 120, 20.5, 978, 183, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (422, 'TSW-112-78', 71, 16, 119, -28, 896, 184, 28, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (424, 'TSW-002-3', 68, 16, 119, -25, 894, 187, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (426, 'TSW-051-9', 69, 15, 120, -26, 902, 197, 31, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (427, 'TSW-560-2', 36.5, 16, 119, 5, 920, 161, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (428, 'TSW-051-E3', 69, 16, 118, -30, 889, 200, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (430, 'TSW-385-5', 63.5, 19.96, 125.24, -30.7, 982, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (431, 'TSW-853', -11, 16, 124, 61.2, 1160, 225, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (433, 'TSW-366-3', 16.5, 16, 119.5, 19, 894.5, 189, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (434, 'TSW-633-1', -20, 18, 126, 60, 1310, 223, 28, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (441, 'TSW-537-8', 63.5, 19.96, 125.34, -31, 970.6, 210, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (442, 'TSW-626', 24.5, 16, 119, 20.5, 894, 203, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (443, 'TSW-200-4', 69, 16, 122.5, -29.5, 971.8, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (444, 'TZWS221-2', 45, 10.5, 109.5, 13, 911, 177, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (445, 'TSW-080-4', -7, 16, 119, 34, 896, 180, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (446, 'TSW-660', -7, 16, 119, 34, 896, 181, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (447, 'TZWS-54-02', 56.5, 15, 120, 0, 978, 177, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (448, 'TSW-112-86', 68, 16, 119, -25, 894, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (449, 'TSW-112-99', 68, 16, 119, -25, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (450, 'TSW-179-8', 65, 18, 123, -25, 915, 186, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (451, 'TSW-112-21', 68, 16, 119, -25, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (452, 'TSW-859', 2.5, 16, 124, 50, 1126.36, 226, 29.68, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (453, 'TSW-517-5', 15.25, 15, 120, 25.25, 976, 200, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (454, 'TSW-179-30', 65, 17, 124, -25, 914, 191.6, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (455, 'TSW-005-11', 69, 16, 122.5, -29.5, 893, 140, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (456, 'TSW-385-3', 64.5, 19.96, 125.24, -30.7, 974, 216, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (457, 'TSW-385-4', 69, 16, 122.5, -29.5, 969, 211, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (459, 'TSW-112-35', 68, 16, 119, -25, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (463, 'TSW-223-1', 63, 13, 124.5, -21.5, 1015.5, 172, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (466, 'TSW-005', 69, 16, 124, -30, 898, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (467, 'TSW-517-5', 15.25, 15, 120, 25.25, 976.25, 200, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (468, 'TSW-887', 30, 16, 124, 19, 914, 211, 27, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (469, 'TSW-517-6', 15.5, 18.5, 121.5, 25.5, 981, 195, 28, 72.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (471, 'TSW-605-3', 64, 15, 124, -25, 897, 207, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (472, 'TSW-112-84', 68, 16, 119, -25, 896, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (473, 'TSW-112-105', 69, 16, 120.5, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (474, 'TSW-330', 69, 16, 120.5, -27.5, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (475, 'TSW-537-6', 63.5, 19.96, 125.24, -30.7, 974, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (476, 'TZWS-326-02', 69, 16, 120.5, -27.5, 896, 204, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (477, 'TZWS-263-02', 57, 19, 108, -14, 897, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (478, 'TSW-264-3', 34, 16, 119, 6, 906, 187, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (487, 'TSW-091-4', 65, 16, 120.5, -26.5, 897.2, 178, 26.1, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (490, 'TSW-302-1', 15, 14, 121, 5, 921, 157, 29, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (492, 'TSW-002-2', 68, 16, 119, -25, 896, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (493, 'TSW-098-2', 63, 19.96, 125.34, -31.3, 970, 220, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (494, 'TSW-477-1', 17.5, 16, 119, 1.5, 914, 167, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (496, 'TSW-333-2', 63.5, 19.96, 125.34, -31, 1020.8, 230, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (497, 'TSW-316', 0, 16, 120, 41, 895, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (498, 'TSW-728', 17, 16, 119, 23, 915, 195, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (500, 'TSW-112-92', 68, 16, 119, -25, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (501, 'TSW-110-6', 63.5, 19.96, 125.3, -31, 974, 215.9, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (504, 'TSW-112-89', 68, 16, 119, -25, 896, 178, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (505, 'TSW-268', 63.5, 12, 129.5, -27, 977, 216, 29, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (506, 'TSW-053-12', 35.5, 16, 119, 0.5, 895, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (509, 'TSW-632-2', -29, 16, 130.5, 73, 1311, 223, 28, 72.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (510, 'TSW-511-1', -2, 16, 119, 32, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (512, 'TSW-158-2', 46.5, 10.5, 109.5, 12.5, 912.5, 158, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (513, 'TSW-633', -20, 17, 123, 60, 1306, 228, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (514, 'TZWS-230-02', 64, 12.45, 122.55, -20.5, 1009.8, 190, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (515, 'TSW-541', 24, 15, 120, 27, 978, 194, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (516, 'TSW-689', 66, 16, 124, -30, 1026, 238, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (517, 'TSW-112-64', 69, 16, 119, -26, 894, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (518, 'TSW-591', 2.75, 16, 119.5, 38.25, 894.5, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (519, 'TSW-960', -20.3, 16, 124, 32.7, 1144, 213, 26, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (520, 'TSW-112-82', 69, 16, 120.5, -27.5, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (522, 'TSW-200-9', 69, 16, 122.5, -29.5, 971, 206, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (524, 'TSW-750-1', 2.75, 16, 119.5, 38.25, 894, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (525, 'TZWS-56-02', 24, 16.25, 118.75, 27, 978, 192, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (526, 'TSW-537-2', 63.5, 19.96, 125.24, -30.7, 974, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (527, 'TSW-112-98', 71, 16, 119, -28, 894, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (528, 'TSW-854', 48.5, 16, 123.7, -20.2, 1066.8, 225.5, 25.4, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (529, 'TSW-576-3', 31, 16, 119, 19.5, 900, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (533, 'TSW-110-5', 63.5, 19.96, 125.34, -31, 974, 211, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (534, 'TSW-517-4', 15.5, 18.6, 122.4, 23.5, 982.9, 194, 28.3, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (535, 'TZWS-484-02', 63, 16, 113, 1.5, 1057, 211, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (536, 'TSW-452-1', 50, 19.5, 120, -32, 1160, 208, 31, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (537, 'TSW-603-2', 20.5, 16, 119, 20.5, 894.5, 189, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (540, 'TSW-112-94', 69, 16, 120.5, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (541, 'TSW-179-66', 65, 17, 123, -25, 915, 181, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (542, 'TSW-542', 63, 14.5, 112.5, 1.5, 897.5, 205, 28, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (549, 'TSW-591-4', 2.75, 16, 119, 38.25, 894.5, 193, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (550, 'TSW-179-29', 65, 18, 123, -25, 914, 184.6, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (551, 'TSW-237', 26, 14, 121, 29, 977.8, 192, 27.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (552, 'TSW-720', 42.9, 16, 129.3, -23.9, 1070, 225.4, 27, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (554, 'TSW-179-69', 65, 18, 123, -25, 915, 206, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (555, 'TSW--696', 32.5, 15.4, 119.6, 27.5, 906, 174, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (556, 'TSW-112-30', 68, 16, 119, -25, 898, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (557, 'TSW-665-1', 65, 16, 119, -19, 921, 186, 28.5, 69.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (584, 'TSW-179-19', 65, 18, 123, -25, 911, 186, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (585, 'TSW-811', 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (594, 'TSW-742', 18, 16, 119, 23, 976, 184, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (607, 'TSW-179-67', 65, 17, 123, -25, 915, 155, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (608, 'TSW-151H', 22.75, 16, 119, 28.75, 978, 197, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (609, 'TSW-603', 20.5, 16, 119, 20.5, 894.5, 189.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (610, 'TSW-149-4', 63.5, 20, 125.25, -31, 1022.75, 231.8, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (611, 'TSW-425-2', 20, 15, 120, 20, 916.2, 188, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (612, 'TSW-240-1', 67.5, 16.25, 118.75, -22, 976, 203, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (613, 'TZWS-63-02', 16, 13.3, 121.7, 20.5, 978, 185, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (615, 'TSW-053-1', 35.5, 16, 119, 0.5, 896, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (616, 'TSW-505-2', 11.25, 16, 119, 40.25, 894.25, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (617, 'TSW-429-1', 13.5, 15, 125, 24.5, 1123, 229.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (618, 'TSW-915', 3.25, 16.5, 122, 38.75, 897.5, 195.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (621, 'TSW-851', 69, 16, 122.5, -29.5, 972, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (623, 'TSW-005-35', 69, 16, 119, -26, 894, 176, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (624, 'TSW-576-1', 31, 16, 119, 19.5, 894.5, 205, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (626, 'TSW-629', 2.5, 14.5, 115.5, 58, 917, 171, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (631, 'TSW-053-13', 35.5, 16, 119, 0.5, 896, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (632, 'TSW-810', 20, 16, 119, 20, 914, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (633, 'TSW-603-3', 20.5, 16, 119, 20.5, 896, 189.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (635, 'TSW-449-1', 29, 16, 115.5, 29.5, 979.5, 184, 30, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (636, 'TSW-112-80', 69, 16, 120, -29.5, 894.5, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (637, 'TSW-112-40', 68, 16, 119, -25, 894, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (638, 'TSW-188-6', 63, 14.5, 115, 0, 1057, 205, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (639, 'TSW-316-8', 0, 16, 119, 41, 895, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (640, 'TSW-455', 18, 16, 117, 29, 1149, 212, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (644, 'TSW-476', 10, 16.25, 118.75, 4, 914, 175, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (646, 'TSW-270', 69, 14, 124.5, -29.5, 897, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (647, 'TSW-537-12', 63.5, 19.96, 125.24, -31, 976, 215.9, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (648, 'TSW-112-25', 68, 16, 119, -25, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (649, 'TSW-920', 16.5, 16, 119, 45.5, 914, 184.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (652, 'TSW-452-3', 50, 19.5, 120, -32, 1161, 208, 31, 68.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (653, 'TSW-112-41', 69, 16, 120.5, -27.5, 896, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (656, 'TSW-316-4', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (657, 'TSW-112-90', 69, 16, 119, -26, 897, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (659, 'TSW-324', 72, 15, 124, -33, 896.5, 197, 28, 69.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (660, 'TSW-151', 22.75, 16, 119, 28.75, 978, 193, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (661, 'TSW-723', 84.5, 16, 115, -24.5, 1012.6, 188, 27.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (662, 'TZWS-212-02', 20.5, 17.5, 117.5, 20.5, 977.1, 192, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (665, 'TSW-277-1', 30, 10.5, 124.5, -10, 923, 152, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (667, 'TSW-179-35', 65, 18, 123, -25, 915, 205, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (668, 'TSW-725', 60, 16, 120.5, -16, 972, 188, 28.5, 68.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (669, 'TSW-458-1', 30.5, 16, 119.5, 5, 898, 179, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (673, 'TSW-605-4', 64, 15, 125, -26, 897, 207, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (675, 'TSW-914', -2.5, 15, 110, 42.5, 905, 200, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (676, 'TSW-460-2', 69, 15, 124, -30, 897.5, 193, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (677, 'TSW-537', 63, 19.96, 125.24, -30.7, 974, 212.7, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (678, 'TSW-112-88', 68, 16, 119, -25, 896, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (679, 'TSW-467', 78, 16.41, 123.59, -16, 1024.46, 238, 27.23, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (680, 'TSW-225-1', 30.5, 16, 119.5, 5, 896, 179, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (687, 'TSW-249', 24.5, 16, 120, 26, 972, 199, 26, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (688, 'TSW-403', 30, 16, 124.5, 11.5, 1306, 243, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (694, '´TSW-385', 64.5, 19.96, 125.24, -30.7, 974, 211, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (700, 'TSW-412-1', 35.25, 12.5, 122.5, 19.25, 971.8, 210, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (701, 'TSW-003D-S', 69, 16, 121, -28, 964, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (702, 'TSW-700-1', 69, 16, 120.5, -27.5, 896.5, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (703, 'TSW-457-2', 20.5, 17.5, 117.5, 20.5, 977.2, 198, 28.1, 73.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (705, 'TSW-1017', 16.5, 16, 119, 45.5, 894, 178.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (714, 'TSW-112-93', 69, 16, 119, -26, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (715, 'TSW-706', 40.9, 16, 123.7, -15.5, 1070, 198, 27, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (717, 'TSW-632', -29, 16, 125.5, 73, 1306, 228, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (720, 'TSW-053-9', 35, 16, 119, 0, 895, 177, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (721, 'TSW-179-12', 65, 17, 124, -25, 915, 192, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (723, 'TSW-005-19', 69, 16, 122.5, -29.5, 895, 169, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (730, 'TSW-188-3', 63, 14.5, 115, 0, 1057, 205, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (731, 'TSW-447', 70, 16, 124, -30, 897, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (732, 'TZWS-347-02', 39, 13, 112.5, 13, 905, 184, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (733, 'TSW-697', 35.5, 16, 119, 35.5, 904, 214, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (736, 'TSW-712', 17.3, 18, 122, 23.2, 982, 186, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (741, 'TSW-608', 51, 13, 112.5, -5, 904, 182, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (743, 'TSW-366-1', 16, 16, 119, 19, 894, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (744, 'TSW-112-74', 68, 16, 119, -27, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (746, 'TSW-005-40', 69, 16, 122.5, -29.5, 897, 160, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (747, 'TSW-053-9', 35, 16, 119, 0, 896, 177, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (749, 'TSW-668', -10, 10.5, 124.5, 35, 923, 204, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (750, 'TSW-835', 0, 16, 119, 41, 894, 196, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (751, 'TSW-112-58', 68, 16, 119, -25, 899, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (752, 'TSW-310-4', 27, 15, 125, 9.5, 1158, 201.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (753, 'TSW-450', 49.2, 15.9, 125.4, -20.6, 1073.4, 200, 26.2, 72.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (755, 'TSW-661', 30.15, 16, 123.7, 6.15, 969.05, 235, 27.2, 72.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (756, 'TSW-112-95', 68, 16, 119, -25, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (757, 'TSW-005-5', 69, 16, 122, -29.5, 899, 141, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (758, 'TSW-225', 30.5, 16, 119.5, 5, 898, 179, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (759, 'TSW-638-4', 23, 14.29, 123.71, 24, 977, 204, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (762, 'TSW-385-6', 63.5, 19.96, 125.24, -30.7, 974, 211, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (763, 'TSW-005-41', 69, 14.5, 122, -28, 897, 186, 28.5, 63.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (764, 'TZWS-217-02', 50, 13, 112, -3.5, 905, 174, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (765, 'TSW-701-3', 69, 16, 118, -30, 894, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (766, 'TSW-635', 3.5, 19, 123, 36.5, 900, 192, 27, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (767, 'TSW-051-E1', 69, 16, 119, -28, 900, 198, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (774, 'TSW-518-1', 15, 14.5, 120.5, 25.25, 976, 191, 27.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (776, 'TSW-350', 66, 15, 110.5, -23, 826.5, 188, 28.7, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (778, 'TSW-619-2', 20, 16, 119, 30, 894, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (782, 'TSW-745', 26.2, 16, 119, 71.8, 976, 174.6, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (786, 'TSW-179-41', 65, 18, 123, -25, 915, 194, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (789, 'TSW-005-30', 68, 16, 122.5, -29.5, 897, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (792, 'TSW-675', 24.5, 15.28, 124.42, 22.3, 892.58, 210, 27.29, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (800, 'TSW-112-29', 69, 16, 119, -25, 894, 191, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (802, 'TSW-005-S', 69, 16, 122.5, -30, 892, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (804, 'TSW-005-S', 69, 16, 122.5, -30, 898, 185, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (808, 'TSW-690', 15, 15, 120, 25, 976, 212, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (822, 'TSW-511', 1, 16, 119, 32, 894, 190, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (832, 'TSW-621-4', 65, 16, 125, -26, 911, 190, 25.4, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (836, 'TSW-912', 2.5, 16, 119, 38.5, 894, 202, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (841, 'TSW-694', 18, 14.3, 123.7, -11.15, 910.8, 155.48, 25.4, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (843, 'TSW-477', 17.5, 16.25, 118.75, 2.5, 914, 167, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (844, 'TSW-179-11', 65, 17, 124, -25, 915, 192, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (845, 'TSW-412', 35.25, 12.5, 122.5, 19.25, 971.8, 210, 28.4, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (854, 'TSW-621-3', 65, 16, 125, -26, 911, 193, 25.4, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (856, 'TSW-360', 12, 16, 119, 39, 914, 207, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (859, 'TSW-280-1', 15, 16, 121, 45, 976, 190, 29, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (867, 'TSW-537-1', 63.5, 19.96, 125.24, -30.7, 974, 215.9, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (879, 'TSW-778-1', 69, 16, 120, -27, 894, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (880, 'TZWS-272-02', 52, 16, 117.4, -11, 1072, 232, 28, 69.85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (881, 'TSW-634-1', 0, 19, 126, 59, 1314.5, 218.5, 28, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (882, 'TSW-316-5', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (883, 'TSW-190-3', 69, 16, 121.5, -28.5, 894, 197, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (884, 'TSW-285-7', 69, 16, 122.5, -29.5, 897, 145, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (885, 'TSW-839', 63.5, 16, 124, -26.5, 969, 213, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (887, 'TSW-005-17', 69, 16, 122, -30, 897, 160, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (888, 'TZWS-472-02', 69, 16, 120.6, -27.5, 895, 204, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (889, 'TSW-110-4', 63.5, 19.96, 125.3, -31, 974, 212, 28, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (890, 'TSW-112-36', 68, 16, 119, -25, 899, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (891, 'TSW-605', 64, 15, 124, -25, 897, 207, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (892, 'TSW-505-1', 11.25, 16, 119, 40.25, 894.25, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (893, 'TSW-560-3', 35, 16, 119, 5, 920, 170, 27, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (894, 'TSW-284-1', 67, 15, 119, -11, 1010, 193, 30, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (895, 'TSW-285-2', 69, 16, 122.5, -29.5, 893, 169, 25, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (896, 'TSW-465-1', -40, 13, 122, 75, 1121, 229, 27, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (897, 'TSW-648', 66, 17.8, 122.2, -30, 1024.77, 210, 28.2, 72.231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (898, 'TSW-695', 30, 16, 119, 30, 906, 174, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (899, 'TSW-005-28', 69, 14, 124.5, -29.5, 896.5, 172, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (910, 'TSW-316-7', 0, 16, 119, 41, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (911, 'TSW-503', 21.75, 16, 119, 28.3, 976, 210, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (912, 'TSW-493-2', 9, 16, 119, 32.25, 894.5, 199.5, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (913, 'TSW-366-7', 16, 16, 119, 19, 894, 199, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (914, 'TSW-429-3', 13.5, 15, 125, 24.5, 1123, 235, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (915, 'TSW-520', 69, 15, 120, -26, 917, 188, 27, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (917, 'TSW-508', 41, 19.96, 121.24, -20.3, 1122.4, 228, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (918, 'TSW-927-1', 42, 16, 117, 26, 1015, 204, 30, 66.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (919, 'TSW-237-1', 26, 14, 121, 29, 977.8, 203, 27.9, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (920, 'TSW-198-1', 19, 10.5, 109.5, 31, 1025, 186, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (923, 'TSW-724', 60, 16, 121.5, -17.5, 972, 198, 28.5, 68.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (925, 'TSW-746', 25.5, 16, 119, 72.5, 976, 174.6, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (928, 'TSW-002-8', 66, 16, 119, -26, 894, 181, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (930, 'TSW-950', 29.5, 10.5, 116.5, 29.5, 910, 210, 30, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (934, 'TSW-594', 23, 13.95, 116, 30, 998, 200, 28.8, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (935, 'TSW-838', 55, 16, 119, 0, 974, 178, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (936, 'TSW-051', 69, 16, 124, -30, 897, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (937, 'TSW-618-1', 12, 16, 119, 39, 914, 212, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (938, 'TSW-605-5', 64, 15, 125, -26, 897, 207, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (941, 'TSW-674', 25, 16, 119, 27, 894, 136, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (942, 'TSW-112-55', 68, 13, 122, -25, 894, 172, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (943, 'TSW-815', 71, 16, 119, -25, 894, 195, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (945, 'TSW-005-1', 69, 16, 124, -30, 898, 170, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (946, 'TSW-112-23', 71, 16, 120.5, -29.5, 895, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (947, 'TSW-112-34', 71, 16, 119, -28, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (949, 'TSW-452-2', 50, 19.5, 120, -32, 1160, 208, 31, 68.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (957, 'TSW-473', 23.5, 15, 120, 27.5, 978, 200, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (963, 'TSW-002', 69, 16, 120.5, -27.5, 899, 184, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (964, 'TSW-727-2', 70, 16, 121, -29, 894, 197, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (966, 'TZWS-265-02', 63.5, 19, 121, -26.5, 972, 219, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (967, 'TSW-112-56', 68, 13, 122, -25, 894, 188, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (968, 'TSW-091-3', 65, 16, 120.5, -26.5, 899, 178, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (970, 'TSW-982', 0.7, 16, 123.7, 25.3, 940, 143, 32, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (971, 'TSW-053-15', 35, 16, 119, 0, 896, 177, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (972, 'TSW-319-1', 65, 15, 127, -29, 914, 184, 27, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (973, 'TSW-112-85', 71, 16, 119, -25, 896, 174, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (975, 'TSW-634-3', 0, 16, 129, 59, 1314, 225, 28, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (976, 'TSW-732', 15, 15, 120, 21, 978, 177, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (977, 'TSW-591-1', 2.75, 16, 119.5, 38.25, 894.5, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (978, 'TSW-005-E3', 69, 16, 119, -31, 889, 186, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (981, 'TSW-762', 15, 16, 119, 19.5, 919, 174, 29, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (983, 'TSW-112-17', 68, 16, 119, -25, 894, 175, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (984, 'TZWS-348-02', 66, 17.8, 122.2, -30, 1024.86, 243, 28.243, 72.231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (985, 'TSW-937', 21, 16, 111, 14, 904, 192, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (986, 'TSW-112-19', 68, 16, 119, -25, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (987, 'TSW-402-1', 55, 15, 120, -5, 976, 179, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (988, 'TSW-002-5', 69, 16, 120.5, -27.5, 894, 182, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (989, 'TSW-179-8', 65, 18, 123, -25, 915, 186, 25, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (990, 'TSW-794', 69, 14, 124.5, -29.5, 899, 183, 28, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (991, 'TSW-885', 73, 15, 120, -30, 971, 210, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (992, 'TSW-671', 41, 12.45, 122.55, -13, 1081.8, 202, 28.4, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (993, 'TSW-163-2', 16, 15, 120, 20.5, 978, 177.5, 28, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (994, 'TSW-333-3', 63.5, 19.96, 125.34, -31, 1020.8, 238, 27.8, 77.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (995, 'TSW-357', 34, 15, 120, 6, 914, 187, 32, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (996, 'TSW-415-1', -14, 15, 120, 44, 1099, 219, 29, 82.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (997, 'TZWS-329-02', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    (998, 'TSW-591-3', 2.75, 16, 119.5, 38.25, 894.5, 193, 27, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
/*!40000 ALTER TABLE `wd_geometry_data` ENABLE KEYS */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
ÏîÄ¿×ÊÁÏ/ÆäËû/ÏÖ³¡IP·ÖÅä.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/PCS¸úAGVºÍèì¼Ü·À´ô½»»¥Ð­Òé/PCSÓëAGVºÍèì¼Ü·À´ôЭÒé.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/PCS¸úAGVºÍèì¼Ü·À´ô½»»¥Ð­Òé/PCSºÍèì¼ÜЭÒé.xlsx
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/PCS¸úAGVºÍèì¼Ü·À´ô½»»¥Ð­Òé/REQ_GEO.pdf
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/PCS¸úAGVºÍèì¼Ü·À´ô½»»¥Ð­Òé/REQ_INPUT.pdf
Binary files differ