ke_junjie
2025-06-04 101c57ec4c28bc3c36e49c50a926e9e7c0dd0247
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
using iWareSda_QQJF.SRM.SrmModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
 
namespace iWareSda_QQJF.SRM.SrmService
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“ISrmService”。
    [ServiceContract, XmlSerializerFormat(Style = OperationFormatStyle.Rpc)]
    public interface ISrmService
    {
        /// <summary>读取堆垛机信息
        /// 
        /// </summary>
        /// <param name="srmID"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSrmInfo(int srmId);
       
 
        /// <summary>堆垛机删除任务
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        [OperationContract]
        int SendSrmDelete(int srmId);
 
        /// <summary>堆垛机任务完成确认信号发送
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        /// <returns></returns>
        [OperationContract]
        int SendSrmTaskFinishConfirm(int srmId);
 
 
        /// <summary>堆垛机急停
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        [OperationContract]
        int SendSrmEStop(int srmId);
 
 
        /// <summary>发送堆垛机单放和移动任务
        /// 
        /// </summary>
        /// <param name="srmID"></param>堆垛机号
        /// <param name="taskID"></param>任务id
        /// <param name="toPlace"></param>目的地址
        /// <param name="command"></param>2是单放,3是移动
        /// <returns></returns>
        /// 
        [OperationContract]
        int SendSrmMove(int srmId, int taskId, string toPlace, int command, int palletType,int taskFather);
 
 
        /// <summary> 发送堆垛机搬运任务
        ///
        /// </summary>
        /// <param name="srmId"></param>堆垛机号
        /// <param name="taskId"></param>任务ID
        /// <param name="sourcePlace"></param>起始位
        /// <param name="toPlace"></param>货物放置目的地
        /// <param name="pallet"></param>托盘类型 1-6暂定
        /// <returns></returns>
        [OperationContract]
        int SendSrmTask(int srmId, int taskId, string sourcePlace, string toPlace, int pallet,int taskFather);
         
 
        /// <summary>堆垛机解警
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        [OperationContract]
        void SrmRlsAlert(int srmId);
        /// <summary>任务是否完成
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        /// <param name="taskId"></param>
        /// <returns></returns>
        /// 
        [OperationContract]
        int IsTaskFinish(int srmId);
        /// <summary>堆垛机是否准备好
        /// 
        /// </summary>
        /// <param name="srmId"></param>
        /// <returns></returns>
        [OperationContract]
        bool IsReady(int srmId);
 
        /// <summary>
        /// 获取完成任务号
        /// </summary>
        /// <param name="srmId"></param>
        /// <returns></returns>
        [OperationContract]
        int FinishTask(int srmId);
 
        /// <summary>
        /// 获取主任务是否完成
        /// </summary>
        /// <param name="taskId"></param>
        /// <returns></returns>
        //[OperationContract]
        //iWareSda_QQJF.WCS.TaskFinishClass TaskFinish(int taskId);
 
        /// <summary>
        /// 下发主任务
        /// </summary>
        /// <param name="palletType"></param>
        /// <param name="sourcePlace"></param>
        /// <param name="toPlace"></param>
        /// <param name="taskId"></param>
        /// <param name="taskType"></param>
        /// <returns></returns>
        //[OperationContract]
        //iWareSda_QQJF.WCS.SendTaskClass SendTask(int palletType, string sourcePlace, string toPlace, int taskId, int taskType, int outType);
 
        ///// <summary>
        ///// 关联删除
        ///// </summary>
        ///// <param name="srmID"></param>
        ///// <returns></returns>
        //[OperationContract]
        //int SendSrmDeleteAll(int srmID);
 
        /// <summary>
        /// 根据任务号删除任务
        /// </summary>
        /// <param name="id"></param>
        /// <param name="tranDoingId"></param>
        /// <param name="rgvDoingId"></param>
        /// <param name="srmDoingId"></param>
        [OperationContract]
        bool DeleteMainTask(int id, out List<int> tranDoingId, out List<int> rgvDoingId, out List<int> srmDoingId, out List<string> placeList, out int dir);
        
        /// <summary>
        /// 根据托盘号删除任务
        /// </summary>
        /// <param name="id"></param>
        /// <param name="tranDoingId"></param>
        /// <param name="rgvDoingId"></param>
        /// <param name="srmDoingId"></param>
        [OperationContract]
        bool DeleteMainTaskByContainerName(string containerName, out List<int> tranDoingId, out List<int> rgvDoingId, out List<int> srmDoingId, out List<string> placeList, out int dir);
       
        /// <summary>
        /// 是否故障
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        bool IsNotAlarm(int srmId);
 
        /// <summary>
        /// 切花优化
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        bool UseAutoMove(int srmId);
    }
}