add
zongzhibin
2024-11-24 d89732b82ff7fc047628ca3772311a0fbeea3553
add
已添加2个文件
已修改18个文件
934 ■■■■■ 文件已修改
CC/iWareCC_ASRS/Common/SystemWarningMsg.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/FormCC.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/DataProcess_BZ12.cs 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/DataProcess_BZ12_FinishTask.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/iWareCC.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCommon/Utils/Log4Net/LogType.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/DataAccess/TaskHandler.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Common/Struct/WareSdaStruct.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Model/StationLocationEnum.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Common/SystemWarningMsg.cs
@@ -118,7 +118,10 @@
        /// è‡ªåŠ¨ç»„ç›˜ä»»åŠ¡ çš„警告消息
        /// </summary>
        public static string _lbl_alert_DataProcess_BZ39 = string.Empty;
        /// <summary>
        /// è‡ªåŠ¨ç æ¿ä»»åŠ¡ çš„警告消息
        /// </summary>
        public static string _lbl_alert_DataProcess_BZ12 = string.Empty;
        /// <summary>
        /// è‡ªåŠ¨ç»„ç›˜ä»»åŠ¡ä¸‹å‘ çš„警告消息
CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
@@ -215,6 +215,18 @@
        private short R_Outbound_TaskIDField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool R_PalletizingFinishField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short R_PalletizingStation1Field;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short R_PalletizingStation2Field;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short R_PalletizingTaskNoField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string R_ReadCodeResultField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
@@ -386,6 +398,58 @@
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool R_PalletizingFinish {
            get {
                return this.R_PalletizingFinishField;
            }
            set {
                if ((this.R_PalletizingFinishField.Equals(value) != true)) {
                    this.R_PalletizingFinishField = value;
                    this.RaisePropertyChanged("R_PalletizingFinish");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short R_PalletizingStation1 {
            get {
                return this.R_PalletizingStation1Field;
            }
            set {
                if ((this.R_PalletizingStation1Field.Equals(value) != true)) {
                    this.R_PalletizingStation1Field = value;
                    this.RaisePropertyChanged("R_PalletizingStation1");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short R_PalletizingStation2 {
            get {
                return this.R_PalletizingStation2Field;
            }
            set {
                if ((this.R_PalletizingStation2Field.Equals(value) != true)) {
                    this.R_PalletizingStation2Field = value;
                    this.RaisePropertyChanged("R_PalletizingStation2");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short R_PalletizingTaskNo {
            get {
                return this.R_PalletizingTaskNoField;
            }
            set {
                if ((this.R_PalletizingTaskNoField.Equals(value) != true)) {
                    this.R_PalletizingTaskNoField = value;
                    this.RaisePropertyChanged("R_PalletizingTaskNo");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string R_ReadCodeResult {
            get {
                return this.R_ReadCodeResultField;
@@ -501,6 +565,9 @@
        private string W_Destination_OutField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool W_EndMarkField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_HeightField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
@@ -531,7 +598,25 @@
        private string W_PackageWidthField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingPlaceXField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingPlaceYField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingStationField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool W_PalletizingTaskFinishField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingTaskIDField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool W_ReqOutField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_RotateField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_WidthField;
@@ -626,6 +711,19 @@
                if ((object.ReferenceEquals(this.W_Destination_OutField, value) != true)) {
                    this.W_Destination_OutField = value;
                    this.RaisePropertyChanged("W_Destination_Out");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool W_EndMark {
            get {
                return this.W_EndMarkField;
            }
            set {
                if ((this.W_EndMarkField.Equals(value) != true)) {
                    this.W_EndMarkField = value;
                    this.RaisePropertyChanged("W_EndMark");
                }
            }
        }
@@ -761,6 +859,71 @@
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_PalletizingPlaceX {
            get {
                return this.W_PalletizingPlaceXField;
            }
            set {
                if ((this.W_PalletizingPlaceXField.Equals(value) != true)) {
                    this.W_PalletizingPlaceXField = value;
                    this.RaisePropertyChanged("W_PalletizingPlaceX");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_PalletizingPlaceY {
            get {
                return this.W_PalletizingPlaceYField;
            }
            set {
                if ((this.W_PalletizingPlaceYField.Equals(value) != true)) {
                    this.W_PalletizingPlaceYField = value;
                    this.RaisePropertyChanged("W_PalletizingPlaceY");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_PalletizingStation {
            get {
                return this.W_PalletizingStationField;
            }
            set {
                if ((this.W_PalletizingStationField.Equals(value) != true)) {
                    this.W_PalletizingStationField = value;
                    this.RaisePropertyChanged("W_PalletizingStation");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool W_PalletizingTaskFinish {
            get {
                return this.W_PalletizingTaskFinishField;
            }
            set {
                if ((this.W_PalletizingTaskFinishField.Equals(value) != true)) {
                    this.W_PalletizingTaskFinishField = value;
                    this.RaisePropertyChanged("W_PalletizingTaskFinish");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_PalletizingTaskID {
            get {
                return this.W_PalletizingTaskIDField;
            }
            set {
                if ((this.W_PalletizingTaskIDField.Equals(value) != true)) {
                    this.W_PalletizingTaskIDField = value;
                    this.RaisePropertyChanged("W_PalletizingTaskID");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool W_ReqOut {
            get {
                return this.W_ReqOutField;
@@ -769,6 +932,19 @@
                if ((this.W_ReqOutField.Equals(value) != true)) {
                    this.W_ReqOutField = value;
                    this.RaisePropertyChanged("W_ReqOut");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_Rotate {
            get {
                return this.W_RotateField;
            }
            set {
                if ((this.W_RotateField.Equals(value) != true)) {
                    this.W_RotateField = value;
                    this.RaisePropertyChanged("W_Rotate");
                }
            }
        }
@@ -1523,6 +1699,18 @@
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfo", ReplyAction="http://tempuri.org/IStationService/WriteOutStoreTaskInfoResponse")]
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteOutStoreTaskInfoAsync(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WritePalletizingTaskInfo", ReplyAction="http://tempuri.org/IStationService/WritePalletizingTaskInfoResponse")]
        iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WritePalletizingTaskInfo", ReplyAction="http://tempuri.org/IStationService/WritePalletizingTaskInfoResponse")]
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WritePalletizingTaskInfoAsync(int deviceId, string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/SetPalletizingTaskFinishAck", ReplyAction="http://tempuri.org/IStationService/SetPalletizingTaskFinishAckResponse")]
        iWareCC.StationService.SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/SetPalletizingTaskFinishAck", ReplyAction="http://tempuri.org/IStationService/SetPalletizingTaskFinishAckResponse")]
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> SetPalletizingTaskFinishAckAsync(int deviceId, bool value, string stationCode);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteStation_FinishACK", ReplyAction="http://tempuri.org/IStationService/WriteStation_FinishACKResponse")]
        iWareCC.StationService.SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId);
        
@@ -1681,6 +1869,22 @@
            return base.Channel.WriteOutStoreTaskInfoAsync(deviceId, stationCode, sourcePlaceNo, outbound_TaskID);
        }
        
        public iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY) {
            return base.Channel.WritePalletizingTaskInfo(deviceId, stationCode, taskID, isLast, length, width, height, rotate, toplace, placeX, placeY);
        }
        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WritePalletizingTaskInfoAsync(int deviceId, string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY) {
            return base.Channel.WritePalletizingTaskInfoAsync(deviceId, stationCode, taskID, isLast, length, width, height, rotate, toplace, placeX, placeY);
        }
        public iWareCC.StationService.SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode) {
            return base.Channel.SetPalletizingTaskFinishAck(deviceId, value, stationCode);
        }
        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> SetPalletizingTaskFinishAckAsync(int deviceId, bool value, string stationCode) {
            return base.Channel.SetPalletizingTaskFinishAckAsync(deviceId, value, stationCode);
        }
        public iWareCC.StationService.SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId) {
            return base.Channel.WriteStation_FinishACK(deviceId, value, plcTaskId);
        }
CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl
@@ -93,6 +93,18 @@
  <wsdl:message name="IStationService_WriteOutStoreTaskInfo_OutputMessage">
    <wsdl:part name="parameters" element="tns:WriteOutStoreTaskInfoResponse" />
  </wsdl:message>
  <wsdl:message name="IStationService_WritePalletizingTaskInfo_InputMessage">
    <wsdl:part name="parameters" element="tns:WritePalletizingTaskInfo" />
  </wsdl:message>
  <wsdl:message name="IStationService_WritePalletizingTaskInfo_OutputMessage">
    <wsdl:part name="parameters" element="tns:WritePalletizingTaskInfoResponse" />
  </wsdl:message>
  <wsdl:message name="IStationService_SetPalletizingTaskFinishAck_InputMessage">
    <wsdl:part name="parameters" element="tns:SetPalletizingTaskFinishAck" />
  </wsdl:message>
  <wsdl:message name="IStationService_SetPalletizingTaskFinishAck_OutputMessage">
    <wsdl:part name="parameters" element="tns:SetPalletizingTaskFinishAckResponse" />
  </wsdl:message>
  <wsdl:message name="IStationService_WriteStation_FinishACK_InputMessage">
    <wsdl:part name="parameters" element="tns:WriteStation_FinishACK" />
  </wsdl:message>
@@ -167,6 +179,14 @@
    <wsdl:operation name="WriteOutStoreTaskInfo">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfo" message="tns:IStationService_WriteOutStoreTaskInfo_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WriteOutStoreTaskInfoResponse" message="tns:IStationService_WriteOutStoreTaskInfo_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="WritePalletizingTaskInfo">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WritePalletizingTaskInfo" message="tns:IStationService_WritePalletizingTaskInfo_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WritePalletizingTaskInfoResponse" message="tns:IStationService_WritePalletizingTaskInfo_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="SetPalletizingTaskFinishAck">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/SetPalletizingTaskFinishAck" message="tns:IStationService_SetPalletizingTaskFinishAck_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/SetPalletizingTaskFinishAckResponse" message="tns:IStationService_SetPalletizingTaskFinishAck_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="WriteStation_FinishACK">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteStation_FinishACK" message="tns:IStationService_WriteStation_FinishACK_InputMessage" />
@@ -309,6 +329,24 @@
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="WritePalletizingTaskInfo">
      <soap:operation soapAction="http://tempuri.org/IStationService/WritePalletizingTaskInfo" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SetPalletizingTaskFinishAck">
      <soap:operation soapAction="http://tempuri.org/IStationService/SetPalletizingTaskFinishAck" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="WriteStation_FinishACK">
      <soap:operation soapAction="http://tempuri.org/IStationService/WriteStation_FinishACK" style="document" />
      <wsdl:input>
CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
@@ -224,6 +224,46 @@
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="WritePalletizingTaskInfo">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="deviceId" type="xs:int" />
        <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="taskID" type="xs:int" />
        <xs:element minOccurs="0" name="isLast" type="xs:boolean" />
        <xs:element minOccurs="0" name="length" type="xs:short" />
        <xs:element minOccurs="0" name="width" type="xs:short" />
        <xs:element minOccurs="0" name="height" type="xs:short" />
        <xs:element minOccurs="0" name="rotate" type="xs:short" />
        <xs:element minOccurs="0" name="toplace" type="xs:short" />
        <xs:element minOccurs="0" name="placeX" type="xs:short" />
        <xs:element minOccurs="0" name="placeY" type="xs:short" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="WritePalletizingTaskInfoResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WritePalletizingTaskInfoResult" nillable="true" type="q15:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPalletizingTaskFinishAck">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="deviceId" type="xs:int" />
        <xs:element minOccurs="0" name="value" type="xs:boolean" />
        <xs:element minOccurs="0" name="stationCode" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPalletizingTaskFinishAckResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="SetPalletizingTaskFinishAckResult" nillable="true" type="q16:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="WriteStation_FinishACK">
    <xs:complexType>
      <xs:sequence>
@@ -236,7 +276,7 @@
  <xs:element name="WriteStation_FinishACKResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_FinishACKResult" nillable="true" type="q15:SdaResEntity" />
        <xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_FinishACKResult" nillable="true" type="q17:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
@@ -254,7 +294,7 @@
  <xs:element name="WriteScanValidateACKResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q16:SdaResEntity" />
        <xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q18:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
@@ -272,7 +312,7 @@
  <xs:element name="WriteStation_XigangGetDataForOutResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q17:SdaResEntity" />
        <xs:element xmlns:q19="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q19:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd
@@ -19,6 +19,10 @@
      <xs:element minOccurs="0" name="R_OutboundFinish" type="xs:boolean" />
      <xs:element minOccurs="0" name="R_OutboundNumber" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="R_Outbound_TaskID" type="xs:short" />
      <xs:element minOccurs="0" name="R_PalletizingFinish" type="xs:boolean" />
      <xs:element minOccurs="0" name="R_PalletizingStation1" type="xs:short" />
      <xs:element minOccurs="0" name="R_PalletizingStation2" type="xs:short" />
      <xs:element minOccurs="0" name="R_PalletizingTaskNo" type="xs:short" />
      <xs:element minOccurs="0" name="R_ReadCodeResult" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="R_ReqParseData" type="xs:boolean" />
      <xs:element minOccurs="0" name="R_Shape" type="xs:short" />
@@ -42,6 +46,7 @@
      <xs:element minOccurs="0" name="W_DataFinish" type="xs:boolean" />
      <xs:element minOccurs="0" name="W_Destination_In" type="xs:int" />
      <xs:element minOccurs="0" name="W_Destination_Out" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="W_EndMark" type="xs:boolean" />
      <xs:element minOccurs="0" name="W_Height" type="xs:short" />
      <xs:element minOccurs="0" name="W_InboundFinishConfirm" type="xs:boolean" />
      <xs:element minOccurs="0" name="W_Inbound_TaskID" type="xs:int" />
@@ -52,7 +57,13 @@
      <xs:element minOccurs="0" name="W_Outbound_TaskID" type="xs:int" />
      <xs:element minOccurs="0" name="W_PackageLength" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="W_PackageWidth" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="W_PalletizingPlaceX" type="xs:short" />
      <xs:element minOccurs="0" name="W_PalletizingPlaceY" type="xs:short" />
      <xs:element minOccurs="0" name="W_PalletizingStation" type="xs:short" />
      <xs:element minOccurs="0" name="W_PalletizingTaskFinish" type="xs:boolean" />
      <xs:element minOccurs="0" name="W_PalletizingTaskID" type="xs:short" />
      <xs:element minOccurs="0" name="W_ReqOut" type="xs:boolean" />
      <xs:element minOccurs="0" name="W_Rotate" type="xs:short" />
      <xs:element minOccurs="0" name="W_Width" type="xs:short" />
      <xs:element minOccurs="0" name="W_X_Offset" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="W_Y_Offset" nillable="true" type="xs:string" />
CC/iWareCC_ASRS/FormCC.cs
@@ -5,6 +5,7 @@
using iWareCC.SrmService;
using iWareCC.StationService;
using iWareCC.ThreadService;
using iWareCC.ThreadService._03_BZ12_机器人码包工位_;
using iWareCC.WCF;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
@@ -231,10 +232,11 @@
            //重新获取发动机信息
            new Thread(DataProcess_269.Handler).Start();
            //1014库位转运到1020线程
            new Thread(DataProcess_BZ39.Handler).Start();
            new Thread(DataProcess_BZ12.Hander).Start();
            new Thread(DeleteData).Start();
CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/DataProcess_BZ12.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,181 @@
using Admin.NET.Application;
using iWareCC.StationService;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareSql.DataAccess;
using iWareSql.WmsDBModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace iWareCC.ThreadService._03_BZ12_机器人码包工位_
{
    public class DataProcess_BZ12
    {
        public static void Hander()
        {
            var alertMsg = "";
            LogType logType = LogType.DataProcess_BZ12;
            while (true)
            {
                Thread.Sleep(2000);//休眠2秒,将休眠写到前面,是为了下面的continue方法执行后不显示错误信息的提示!!!【EditBy shaocx,2022-05-24】
                SystemWarningMsg._lbl_alert_DataProcess_BZ12 = string.Empty;
                try
                {
                    if (SystemValue.isAllowRuning_DataProcess_BZ39 && SystemValue.isStartedModel)
                    {
                        var rgvLocation = StationLocationEnum.BZ12.ToString();
                        /*
                         * 1、从数据库中判断是否齐套
                         * 2、根据齐套结果,推送给PLC
                         */
                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                        if (obj.R_ReqParseData)
                        {
                            var result = obj.R_ReadCodeResult;
                            if (string.IsNullOrEmpty(result))
                            {
                                SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-请求了解码,但是结果是空的,此次循环结束";
                                continue;
                            }
                            var upiCode = result;
                            bool islast = false;//是否末板
                            short isrotate = 0;//是否旋转
                            short placeX = 0;
                            short placeY = 0;
                            string place = "";
                            using (WmsDBModel wmsDB = new WmsDBModel())
                            {
                                //要是有已下发的任务,就不要执行
                                var isValidate = TaskHandler.ValidateIssueTaskForBZ12(wmsDB);
                                if (!isValidate)
                                {
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-有‘已下发’的任务,不能处理,此次循环结束";
                                    continue;
                                }
                                var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault();
                                if (upiObj == null)
                                {
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},根据UPI:{upiCode}没有找到对象 ";
                                    continue;
                                }
                                isrotate = 1;
                                placeX = (short)upiObj.MachineXCenter;
                                placeY = (short)upiObj.MachineYCenter;
                                //查处这包所有的数量
                                var upiList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList();
                                //查询是否末板并且判断有没有混批
                                var wms_rbline_runmode = wmsDB.wms_rbline_runmode.FirstOrDefault();
                                if (wms_rbline_runmode != null)
                                {
                                    //查询是否混批
                                    if (!string.IsNullOrEmpty(wms_rbline_runmode.PalletizingUPI))
                                    {
                                        if (upiCode != wms_rbline_runmode.PalletizingUPI)
                                        {
                                            SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},UPI:{upiCode}码包部件混批 ";
                                            continue;
                                        }
                                    }
                                    //获取码垛目标位
                                    if (wms_rbline_runmode.PalletizingStation != 0)
                                    {
                                        place = wms_rbline_runmode.PalletizingStation.ToString();
                                    }
                                    else
                                    {
                                        if (obj.R_PalletizingStation1 == 1)
                                        {
                                            place = "1";
                                        }
                                        else if (obj.R_PalletizingStation2 == 1)
                                        {
                                            place = "2";
                                        }
                                        else
                                        {
                                            SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},UPI:{upiCode}无可用码垛目标位 ";
                                            continue;
                                        }
                                    }
                                    //如果次序等于当钱包总数量,是否末板置为true
                                    if (upiObj.Shelf == upiList.Count())
                                    {
                                        islast = true;
                                        wms_rbline_runmode.PalletizingUPI = null;
                                        wms_rbline_runmode.PalletizingStation = 0;
                                    }
                                }
                                //查询有没有次序小于当前次序并且没有码垛的
                                var oldupi = upiList.Where(x => x.Shelf < upiObj.Shelf && x.UpiStatus != (int)UpiStatusEnum.已码垛).FirstOrDefault();
                                if (oldupi != null)
                                {
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},UPI:{upiCode}码包顺序错误 ";
                                    continue;
                                }
                                //记录任务
                                var _id = Yitter.IdGenerator.YitIdHelper.NextId();
                                var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
                                var task = new wms_rbline_task()
                                {
                                    Id = _id,
                                    TaskNo = plcTaskNo,
                                    UPI = upiObj.UPI,
                                    Length = upiObj.Length,
                                    Width = upiObj.Width,
                                    Thk = upiObj.Thk,
                                    IssueTime = DateTime.Now,
                                    PlanNo = upiObj.PlanNo,
                                    OrderId = upiObj.OrderId,
                                    PackageCode = upiObj.PackageCode,
                                    RbTaskType = (int)RbTaskTypeEnum.码板任务,
                                    RbTaskTypeEnumName = RbTaskTypeEnum.码板任务.ToString(),
                                    TaskStatus = (int)TaskStatusEnum.已下发,
                                    TaskStatusName = TaskStatusEnum.已下发.ToString(),
                                    TaskMsg = "码板",
                                    CreateTime = DateTime.Now,
                                    CreateUserName = "CC",
                                    UpdateTime = DateTime.Now,
                                    UpdateUserName = "CC",
                                    PlaceCode=place
                                };
                                wmsDB.wms_rbline_task.Add(task);
                                using (StationServiceClient client = new StationServiceClient())
                                {
                                    var res = client.WritePalletizingTaskInfo((int)EDevice.Station, rgvLocation, Convert.ToInt32(task.TaskNo), islast,
                                          (short)upiObj.Length, (short)upiObj.Width, (short)upiObj.Thk, isrotate, short.Parse(task.PlaceCode), placeX, placeY);
                                    if (!res.result)
                                    {
                                        SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-下发入库任务 å¤±è´¥,WriteInStoreTaskInfoAsync è¿”回:{res.resMsg}";
                                        continue;
                                    }
                                    else
                                    {
                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,WriteInStoreTaskInfoAsync,参数: ç«™ç‚¹{rgvLocation}");
                                    }
                                }
                                wmsDB.SaveChanges();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg._lbl_alert_DataProcess_BZ39 += " å‡ºçް异叏:" + ex.Message + SysGloble.SPLIT_STR;
                    Log4NetHelper.WriteErrorLog(logType, " å‡ºçŽ°å¼‚å¸¸ï¼š" + ex.Message, ex);
                }
            }
        }
    }
}
CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/DataProcess_BZ12_FinishTask.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareCC.ThreadService._03_BZ12_机器人码包工位_
{
    internal class DataProcess_BZ12_FinishTask
    {
    }
}
CC/iWareCC_ASRS/iWareCC.csproj
@@ -161,6 +161,7 @@
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Outbound\3、DataProcess_RobotBuffer_FinishTaskForOutbound.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Inbound\2、DataProcess_RobotBuffer_FinishTask.cs" />
    <Compile Include="ThreadService\02_BZ39工位(补板后工位)\Inbound\1、DataProcess_BZ39.cs" />
    <Compile Include="ThreadService\03_BZ12%28机器人码包工位%29\DataProcess_BZ12.cs" />
    <Compile Include="ThreadService\04_BZ21(搬运整垛机器人)\DataProcess_BZ21.cs" />
    <Compile Include="WCF\CCWcfService.cs" />
    <Compile Include="WCF\ICCWcfService.cs" />
@@ -353,8 +354,6 @@
    <None Include="Resources\穿梭母车1.jpg" />
    <None Include="Resources\穿梭子母车%28彩色%29.jpg" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="ThreadService\03_BZ12%28机器人码包工位%29\" />
  </ItemGroup>
  <ItemGroup />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
CC/iWareCommon/Utils/Log4Net/LogType.cs
@@ -103,6 +103,10 @@
        /// <summary>
        /// é‡æ–°èŽ·å–å‘åŠ¨æœºä¿¡æ¯
        /// </summary>
        DataProcess_269 = 308
        DataProcess_269 = 308,
        /// <summary>
        /// ç æ¿ä»»åŠ¡ä¸‹å‘
        /// </summary>
        DataProcess_BZ12 = 309,
    }
}
CC/iWareSql/DataAccess/TaskHandler.cs
@@ -35,6 +35,21 @@
            return true;
        }
        /// <summary>
        /// éªŒè¯ ç æ¿æ˜¯å¦æœ‰æ‰§è¡Œä¸­ä»»åŠ¡
        /// </summary>
        /// <param name="wmsDB"></param>
        /// <returns></returns>
        public static bool ValidateIssueTaskForBZ12(WmsDBModel.WmsDBModel wmsDB)
        {
            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.已下发
                && x.RbTaskType == (int)RbTaskTypeEnum.码板任务).ToList();
            if (isExist?.Count() > 0)
            {
                return false;
            }
            return true;
        }
    }
}
CC/iWareSql/WmsDBModel/wms_rbline_runmode.cs
@@ -43,5 +43,15 @@
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
        /// <summary>
        /// ä¸Šä¸€æ¬¡ç åž›ç¼–号
        /// </summary>
        public string PalletizingUPI { get; set; }
        /// <summary>
        /// ä¸Šä¸€æ¬¡ç åž›ç«™ç‚¹
        /// </summary>
        public int? PalletizingStation { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsTask/WmsRbLineRunMode.cs
@@ -53,7 +53,17 @@
        public string? LineRunModeName { get; set; }
        /// <summary>
        /// ä¸Šä¸€æ¬¡ç åž›ç¼–号
        /// </summary>
        [SugarColumn(ColumnName = "PalletizingUPI", ColumnDescription = "上一次码垛编号", Length = 50)]
        public string? PalletizingUPI { get; set; }
        /// <summary>
        /// ä¸Šä¸€æ¬¡ç åž›ç«™ç‚¹
        /// </summary>
        [SugarColumn(ColumnName = "PalletizingStation", ColumnDescription = "上一次码垛站点")]
        public int? PalletizingStation { get; set; }
    }
}
SDA/iWareSda/Common/Struct/WareSdaStruct.cs
@@ -100,6 +100,9 @@
           StationLocationEnum.首次扫码工位.ToString(),
           StationLocationEnum.BZ01.ToString(),
           StationLocationEnum.BZ39.ToString(),
           StationLocationEnum.BZ21.ToString(),
           StationLocationEnum.BZ12.ToString(),
        };
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
@@ -137,6 +137,43 @@
        [Description("出库完成已确认")]
        public bool W_OutboundFinishConfirm { get; set; }
        /// <summary>
        /// ç åž›æœ«æ¿æ ‡å¿—
        /// </summary>
        [Description("码垛末板标志")]
        public bool W_EndMark { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡å·
        /// </summary>
        [Description("码垛任务号")]
        public short W_PalletizingTaskID { get; set; }
        /// <summary>
        /// ç åž›æ˜¯å¦æ—‹è½¬
        /// </summary>
        [Description("码垛是否旋转")]
        public short W_Rotate { get; set; }
        /// <summary>
        /// ç åž›ç›®æ ‡å·¥ä½
        /// </summary>
        [Description("码垛目标工位")]
        public short W_PalletizingStation { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®åæ ‡X
        /// </summary>
        [Description("码垛位置坐标X")]
        public short W_PalletizingPlaceX { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®åæ ‡Y
        /// </summary>
        [Description("码垛位置坐标Y")]
        public short W_PalletizingPlaceY { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡å®Œæˆç¡®è®¤
        /// </summary>
        [Description("码垛任务完成确认")]
        public bool W_PalletizingTaskFinish { get; set; }
    }
    /// <summary>
@@ -155,7 +192,43 @@
        /// </summary>
        [Description("读码数据解析完成")]
        public string W_DataFinish { get; set; }
        /// <summary>
        /// ç åž›æœ«æ¿æ ‡å¿—
        /// </summary>
        [Description("码垛末板标志")]
        public string W_EndMark { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡å·
        /// </summary>
        [Description("码垛任务号")]
        public string W_PalletizingTaskID { get; set; }
        /// <summary>
        /// ç åž›æ˜¯å¦æ—‹è½¬
        /// </summary>
        [Description("码垛是否旋转")]
        public string W_Rotate { get; set; }
        /// <summary>
        /// ç åž›ç›®æ ‡å·¥ä½
        /// </summary>
        [Description("码垛目标工位")]
        public string W_PalletizingStation { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®åæ ‡X
        /// </summary>
        [Description("码垛位置坐标X")]
        public string W_PalletizingPlaceX { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®åæ ‡Y
        /// </summary>
        [Description("码垛位置坐标Y")]
        public string W_PalletizingPlaceY { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡å®Œæˆç¡®è®¤
        /// </summary>
        [Description("码垛任务完成确认")]
        public string W_PalletizingTaskFinish { get; set; }
        /// <summary>
        /// é½å¥—信息(998齐套,999异常出库)
        /// </summary>
@@ -401,6 +474,27 @@
        /// </summary>
        [Description("出库任务号")]
        public short R_Outbound_TaskID { get; set; }
        /// <summary>
        /// ç åž›æ”¾è´§å®Œæˆ
        /// </summary>
        [Description("码垛放货完成")]
        public bool R_PalletizingFinish { get; set; }
        /// <summary>
        /// ç åž›è¯»å–任务号
        /// </summary>
        [Description("码垛读取任务号")]
        public short R_PalletizingTaskNo { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®1状态
        /// </summary>
        [Description("码垛位置1状态")]
        public short R_PalletizingStation1 { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®2状态
        /// </summary>
        [Description("码垛位置2状态")]
        public short R_PalletizingStation2 { get; set; }
    }
    public class StationDBForReadComm
@@ -460,6 +554,25 @@
        /// </summary>
        [Description("出库任务号")]
        public string R_Outbound_TaskID { get; set; }
        /// <summary>
        /// ç åž›æ”¾è´§å®Œæˆ
        /// </summary>
        [Description("码垛放货完成")]
        public string R_PalletizingFinish { get; set; }
        /// <summary>
        /// ç åž›è¯»å–任务号
        /// </summary>
        [Description("码垛读取任务号")]
        public string R_PalletizingTaskNo { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®1状态
        /// </summary>
        [Description("码垛位置1状态")]
        public string R_PalletizingStation1 { get; set; }
        /// <summary>
        /// ç åž›ä½ç½®2状态
        /// </summary>
        [Description("码垛位置2状态")]
        public string R_PalletizingStation2 { get; set; }
    }
}
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -358,7 +358,153 @@
                return false;
            }
        }
        /// <summary>
        /// å†™å…¥ç åž›ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="stationCode"></param>
        /// <param name=""></param>
        /// <param name="taskID"></param>
        /// <param name="isLast"></param>
        /// <param name="length"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="rotate"></param>
        /// <param name="toplace"></param>
        /// <param name="placeX"></param>
        /// <param name="placeY"></param>
        /// <param name=""></param>
        /// <param name=""></param>
        /// <returns></returns>
        public bool WritePalletizingTaskInfo(string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, out string msg)
        {
            try
            {
                msg = "";
                var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
                var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
                MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingTaskID, taskID, view_stationObj.W_PalletizingTaskID);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ ç åž›ä»»åŠ¡å· " + taskID + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_Inbound_TaskID);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_EndMark, isLast, view_stationObj.W_EndMark);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ æ˜¯å¦æœ«æ¿ " + isLast + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_Destination_In);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_Length, length, view_stationObj.W_Length);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ é•¿åº¦ " + length + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_Length);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_Width, width, view_stationObj.W_Width);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ å®½åº¦ " + width + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_Width);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_Height, height, view_stationObj.W_Height);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ é«˜åº¦ " + height + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingStation, toplace, view_stationObj.W_PalletizingStation);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ ç›®æ ‡ä½ " + toplace + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_Rotate, rotate, view_stationObj.W_Rotate);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ æ˜¯å¦æ—‹è½¬ " + rotate + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingPlaceX, placeX, view_stationObj.W_PalletizingPlaceX);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ X坐标 " + placeX + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingPlaceY, placeY, view_stationObj.W_PalletizingPlaceY);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ Y坐标 " + placeY + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, true, view_stationObj.W_DataFinish);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ è¯»ç è§£æžå®Œæˆ " + true + "失败,返回结果:" + b2.resMsg,
                       stationObj.W_DataFinish);
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                var logcontext = string.Format("WriteInStoreTaskInfo出现异常:" + JsonConvert.SerializeObject(ex),
                        "");
                Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex);
                return false;
            }
        }
        /// <summary>
        /// å†™å…¥ç«™ç‚¹ä»»åŠ¡å®Œæˆç¡®è®¤
        /// </summary>
        /// <param name="stationCode"></param>
        /// <param name="value"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool WriteStation_FinishACK(string stationCode, bool value, out string msg)
        {
            try
            {
                msg = "";
                var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
                var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault();
                MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingTaskFinish, value, view_stationObj.W_PalletizingTaskFinish);
                if (!b2.result)
                {
                    msg = string.Format("向Station"+stationCode+" å†™å…¥ä»»åŠ¡å®Œæˆç¡®è®¤ åœ°å€{0} å†™  " + value + "失败,返回结果:" + b2.resMsg,
                        stationObj.W_OutboundFinishConfirm);
                    return false;
                }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                var logcontext = string.Format("向Statio å‡ºåº“任务完成确认 å‡ºçް异叏:" + JsonConvert.SerializeObject(ex),
                        "");
                Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex);
                return false;
            }
        }
        public bool WriteOutStoreTaskInfo(string stationCode, string sourcePlaceNo, out string msg, int outbound_TaskID)
        {
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
@@ -20,6 +20,7 @@
        /// å†™å…¥DB
        /// </summary>
        public static string W_DBHeaderWithSeparate_BZ39 = "3002" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        public static string W_DBHeaderWithSeparate_BZ12 = "3003" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        public static string W_DBHeaderWithSeparate_BZ01 = "3001" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        /// <summary>
@@ -180,6 +181,26 @@
            });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm()
            {
                StationCode = StationLocationEnum.BZ12.ToString(),
                W_DataFinish = W_DBHeaderWithSeparate_BZ12 + "0.0",
                W_EndMark = W_DBHeaderWithSeparate_BZ12 + "0.1",
                W_PalletizingPlaceX = W_DBHeaderWithSeparate_BZ12 + "12.0",
                W_PalletizingPlaceY = W_DBHeaderWithSeparate_BZ12 + "14.0",
                W_PalletizingTaskID = W_DBHeaderWithSeparate_BZ12 + "20.0",
                W_Rotate = W_DBHeaderWithSeparate_BZ12 + "8.0",
                W_Length = W_DBHeaderWithSeparate_BZ12 + "2.0",
                W_Width = W_DBHeaderWithSeparate_BZ12 + "4.0",
                W_Height = W_DBHeaderWithSeparate_BZ12 + "6.0",
                W_PalletizingStation = W_DBHeaderWithSeparate_BZ12 + "10.0",
            });
            return _dbBlockForWrite;
        }
@@ -226,6 +247,23 @@
            });
            _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm()
            {
                StationCode = StationLocationEnum.BZ12.ToString(),
                R_ReqParseData = W_DBHeaderWithSeparate_BZ12 + "50.0",
                R_PalletizingFinish = W_DBHeaderWithSeparate_BZ12 + "50.1",
                R_PalletizingTaskNo = W_DBHeaderWithSeparate_BZ12 + "50.2",
                R_ReadCodeResult = W_DBHeaderWithSeparate_BZ12 + "52.0",
                R_PalletizingStation1 = W_DBHeaderWithSeparate_BZ12 + "104.0",
                R_PalletizingStation2 = W_DBHeaderWithSeparate_BZ12 + "106.0",
                //R_Inbound_TaskID = W_DBHeaderWithSeparate_BZ12 + "112.0",
                //R_Outbound_TaskID = W_DBHeaderWithSeparate_BZ12 + "114.0",
            });
            return _dbBlockForRead;
        }
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
@@ -131,6 +131,25 @@
        SdaResEntity WriteOutStoreTaskInfo(int deviceId, string stationCode, string sourcePlaceNo, int outbound_TaskID);
        /// <summary>
        /// å†™å…¥ç æ¿ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        [OperationContract]
        SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, bool isLast, short length, short width, short height, short rotate, short toplace, short placeX, short placeY);
            /// <summary>
            /// ç åž›å®Œæˆå·²ç¡®è®¤
            /// </summary>
            /// <param name="deviceId"></param>
            /// <param name="value"></param>
            /// <returns></returns
            [OperationContract]
        SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode);
        /// <summary>
        /// Station的任务完成ACK赋值
        /// </summary>
        /// <param name="deviceId"></param>
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
@@ -533,8 +533,68 @@
                return _SdaResEntity;
            }
        }
        /// <summary>
        /// å†™å…¥ç æ¿ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode,int taskID, bool isLast, short length, short width, short height,short rotate,short toplace,short placeX,short placeY)
        {
            SdaResEntity _SdaResEntity = new SdaResEntity();
            try
            {
                var StationResult = Station_CacheEntity.GetDeviceObj(deviceId);
                if (!StationResult.result)
                {
                    return StationResult;
                }
                var Station = StationResult.resData as StationEntity;
                string msg = "";
                var result = Station.WritePalletizingTaskInfo(stationCode, taskID,isLast, length, width, height,rotate,toplace,placeX,placeY,out msg);
                _SdaResEntity.result = result;
                _SdaResEntity.resMsg = msg;
                return _SdaResEntity;
            }
            catch (Exception ex)
            {
                _SdaResEntity.result = false;
                _SdaResEntity.resMsg = ex.Message;
                return _SdaResEntity;
            }
        }
        /// <summary>
        /// ç åž›å®Œæˆå·²ç¡®è®¤
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode)
        {
            SdaResEntity _SdaResEntity = new SdaResEntity();
            try
            {
                var StationResult = Station_CacheEntity.GetDeviceObj(deviceId);
                if (!StationResult.result)
                {
                    return StationResult;
                }
                var Station = StationResult.resData as StationEntity;
                string msg = "";
                var result = Station.WriteStation_FinishACK(stationCode, value, out msg);
                _SdaResEntity.result = result;
                _SdaResEntity.resMsg = msg;
                return _SdaResEntity;
            }
            catch (Exception ex)
            {
                _SdaResEntity.result = false;
                _SdaResEntity.resMsg = ex.Message;
                return _SdaResEntity;
            }
        }
        /// <summary>
        /// å†™å…¥å‡ºåº“任务信息
        /// </summary>
SDA/iWareSda/Model/StationLocationEnum.cs
@@ -26,8 +26,14 @@
        /// </summary>
        BZ39 = 102,
        /// <summary>
        /// å ç‰ˆå·¥ä½
        /// </summary>
        BZ12 = 103,
        /// <summary>
        /// åˆåŒ…工位
        /// </summary>
        BZ21 = 104
    }
}