add
zongzhibin
2024-11-27 bed4ab58ff88c866de95e9a5f29a7512ed43a7fa
add
已修改18个文件
458 ■■■■ 文件已修改
CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/1、DataProcess_BZ39.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/DataProcess_BZ12.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/DataProcess_BZ12_FinishTask.cs 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21_FinishTask.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/WmsDBModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareSql/WmsDBModel/mes_batchOrderUPI_new.cs 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_BatchOrderUPI.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CC/iWareCC_ASRS/Connected Services/StationService/Reference.cs
@@ -218,6 +218,9 @@
        private short R_Outbound_TaskIDField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool R_PalletizingAckField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool R_PalletizingFinishField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
@@ -415,6 +418,19 @@
                if ((this.R_Outbound_TaskIDField.Equals(value) != true)) {
                    this.R_Outbound_TaskIDField = value;
                    this.RaisePropertyChanged("R_Outbound_TaskID");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool R_PalletizingAck {
            get {
                return this.R_PalletizingAckField;
            }
            set {
                if ((this.R_PalletizingAckField.Equals(value) != true)) {
                    this.R_PalletizingAckField = value;
                    this.RaisePropertyChanged("R_PalletizingAck");
                }
            }
        }
@@ -650,6 +666,9 @@
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string W_PackageWidthField;
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingBucketTypeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private short W_PalletizingPlaceXField;
@@ -943,6 +962,19 @@
                if ((object.ReferenceEquals(this.W_PackageWidthField, value) != true)) {
                    this.W_PackageWidthField = value;
                    this.RaisePropertyChanged("W_PackageWidth");
                }
            }
        }
        [System.Runtime.Serialization.DataMemberAttribute()]
        public short W_PalletizingBucketType {
            get {
                return this.W_PalletizingBucketTypeField;
            }
            set {
                if ((this.W_PalletizingBucketTypeField.Equals(value) != true)) {
                    this.W_PalletizingBucketTypeField = value;
                    this.RaisePropertyChanged("W_PalletizingBucketType");
                }
            }
        }
@@ -1834,10 +1866,10 @@
        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, bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ);
        iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum);
        
        [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, bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ);
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WritePalletizingTaskInfoAsync(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum);
        
        [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);
@@ -1862,6 +1894,12 @@
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteStation_FinishACK", ReplyAction="http://tempuri.org/IStationService/WriteStation_FinishACKResponse")]
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteStation_FinishACKAsync(int deviceId, bool value, int plcTaskId);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteStation_ACK", ReplyAction="http://tempuri.org/IStationService/WriteStation_ACKResponse")]
        iWareCC.StationService.SdaResEntity WriteStation_ACK(int deviceId, bool value, string stationCode);
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteStation_ACK", ReplyAction="http://tempuri.org/IStationService/WriteStation_ACKResponse")]
        System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteStation_ACKAsync(int deviceId, bool value, string stationCode);
        
        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStationService/WriteScanValidateACK", ReplyAction="http://tempuri.org/IStationService/WriteScanValidateACKResponse")]
        iWareCC.StationService.SdaResEntity WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId);
@@ -2023,12 +2061,12 @@
            return base.Channel.WriteOutStoreTaskInfoAsync(deviceId, stationCode, sourcePlaceNo, outbound_TaskID);
        }
        
        public iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, bool isLast, bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ) {
            return base.Channel.WritePalletizingTaskInfo(deviceId, stationCode, taskID, isLast, isFirst, length, width, height, rotate, toplace, placeX, placeY, placeZ);
        public iWareCC.StationService.SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum) {
            return base.Channel.WritePalletizingTaskInfo(deviceId, stationCode, taskID, length, width, height, rotate, toplace, placeX, placeY, placeZ, lastnum);
        }
        
        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WritePalletizingTaskInfoAsync(int deviceId, string stationCode, int taskID, bool isLast, bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ) {
            return base.Channel.WritePalletizingTaskInfoAsync(deviceId, stationCode, taskID, isLast, isFirst, length, width, height, rotate, toplace, placeX, placeY, placeZ);
        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WritePalletizingTaskInfoAsync(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, short lastnum) {
            return base.Channel.WritePalletizingTaskInfoAsync(deviceId, stationCode, taskID, length, width, height, rotate, toplace, placeX, placeY, placeZ, lastnum);
        }
        
        public iWareCC.StationService.SdaResEntity SetPalletizingTaskFinishAck(int deviceId, bool value, string stationCode) {
@@ -2063,6 +2101,14 @@
            return base.Channel.WriteStation_FinishACKAsync(deviceId, value, plcTaskId);
        }
        
        public iWareCC.StationService.SdaResEntity WriteStation_ACK(int deviceId, bool value, string stationCode) {
            return base.Channel.WriteStation_ACK(deviceId, value, stationCode);
        }
        public System.Threading.Tasks.Task<iWareCC.StationService.SdaResEntity> WriteStation_ACKAsync(int deviceId, bool value, string stationCode) {
            return base.Channel.WriteStation_ACKAsync(deviceId, value, stationCode);
        }
        public iWareCC.StationService.SdaResEntity WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId) {
            return base.Channel.WriteScanValidateACK(isReset, deviceId, stationCode, value, plcTaskId);
        }
CC/iWareCC_ASRS/Connected Services/StationService/StationService.wsdl
@@ -129,6 +129,12 @@
  <wsdl:message name="IStationService_WriteStation_FinishACK_OutputMessage">
    <wsdl:part name="parameters" element="tns:WriteStation_FinishACKResponse" />
  </wsdl:message>
  <wsdl:message name="IStationService_WriteStation_ACK_InputMessage">
    <wsdl:part name="parameters" element="tns:WriteStation_ACK" />
  </wsdl:message>
  <wsdl:message name="IStationService_WriteStation_ACK_OutputMessage">
    <wsdl:part name="parameters" element="tns:WriteStation_ACKResponse" />
  </wsdl:message>
  <wsdl:message name="IStationService_WriteScanValidateACK_InputMessage">
    <wsdl:part name="parameters" element="tns:WriteScanValidateACK" />
  </wsdl:message>
@@ -221,6 +227,10 @@
    <wsdl:operation name="WriteStation_FinishACK">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteStation_FinishACK" message="tns:IStationService_WriteStation_FinishACK_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WriteStation_FinishACKResponse" message="tns:IStationService_WriteStation_FinishACK_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="WriteStation_ACK">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteStation_ACK" message="tns:IStationService_WriteStation_ACK_InputMessage" />
      <wsdl:output wsaw:Action="http://tempuri.org/IStationService/WriteStation_ACKResponse" message="tns:IStationService_WriteStation_ACK_OutputMessage" />
    </wsdl:operation>
    <wsdl:operation name="WriteScanValidateACK">
      <wsdl:input wsaw:Action="http://tempuri.org/IStationService/WriteScanValidateACK" message="tns:IStationService_WriteScanValidateACK_InputMessage" />
@@ -413,6 +423,15 @@
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="WriteStation_ACK">
      <soap:operation soapAction="http://tempuri.org/IStationService/WriteStation_ACK" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="WriteScanValidateACK">
      <soap:operation soapAction="http://tempuri.org/IStationService/WriteScanValidateACK" style="document" />
      <wsdl:input>
CC/iWareCC_ASRS/Connected Services/StationService/item2.xsd
@@ -246,8 +246,6 @@
        <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="isFirst" 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" />
@@ -256,6 +254,7 @@
        <xs:element minOccurs="0" name="placeX" type="xs:short" />
        <xs:element minOccurs="0" name="placeY" type="xs:short" />
        <xs:element minOccurs="0" name="placeZ" type="xs:short" />
        <xs:element minOccurs="0" name="lastnum" type="xs:short" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
@@ -336,6 +335,22 @@
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="WriteStation_ACK">
    <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="WriteStation_ACKResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q21="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_ACKResult" nillable="true" type="q21:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="WriteScanValidateACK">
    <xs:complexType>
      <xs:sequence>
@@ -350,7 +365,7 @@
  <xs:element name="WriteScanValidateACKResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q21="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q21:SdaResEntity" />
        <xs:element xmlns:q22="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteScanValidateACKResult" nillable="true" type="q22:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
@@ -368,7 +383,7 @@
  <xs:element name="WriteStation_XigangGetDataForOutResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q22="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q22:SdaResEntity" />
        <xs:element xmlns:q23="http://schemas.datacontract.org/2004/07/iWareSda" minOccurs="0" name="WriteStation_XigangGetDataForOutResult" nillable="true" type="q23:SdaResEntity" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
CC/iWareCC_ASRS/Connected Services/StationService/item3.xsd
@@ -20,6 +20,7 @@
      <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_PalletizingAck" type="xs:boolean" />
      <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" />
@@ -62,6 +63,7 @@
      <xs:element minOccurs="0" name="W_Outbound_TaskID" type="xs:short" />
      <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_PalletizingBucketType" type="xs:short" />
      <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_PalletizingPlaceZ" type="xs:short" />
CC/iWareCC_ASRS/ThreadService/02_BZ39¹¤Î»£¨²¹°åºó¹¤Î»£©/Inbound/1¡¢DataProcess_BZ39.cs
@@ -86,7 +86,6 @@
                                {
                                    Id = _id,
                                    TaskNo = plcTaskNo,
                                    UPI = upiObj.UPI,
                                    Length = upiObj.Length,
                                    Width = upiObj.Width,
CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/DataProcess_BZ12.cs
@@ -26,7 +26,7 @@
                SystemWarningMsg._lbl_alert_DataProcess_BZ12 = string.Empty;
                try
                {
                    if ( SystemValue.isStartedModel)
                    if (SystemValue.isStartedModel)
                    {
                        var rgvLocation = StationLocationEnum.BZ12.ToString();
                        /*
@@ -34,6 +34,25 @@
                         * 2、根据齐套结果,推送给PLC
                         */
                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                        if (obj.R_PalletizingAck)
                        {
                                //给PLC推送任务完接收完成复位信号
                                using (StationServiceClient client = new StationServiceClient())
                                {
                                    var res = client.WriteStation_ACK((int)EDevice.Station, false, rgvLocation);
                                    if (!res.result)
                                    {
                                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                        continue;
                                    }
                                    else
                                    {
                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                    }
                                }
                        }
                        if (obj.R_ReqParseData)
                        {
                            var result = obj.R_ReadCodeResult;
@@ -43,8 +62,7 @@
                                continue;
                            }
                            var upiCode = result.Replace("/r", ""); ;
                            bool islast = false;//是否末板
                            bool isfirst = false;//是否末板
                            short lastnum = 0;//是否末板
                            short isrotate = 0;//是否旋转
                            short placeX = 0;
                            short placeY = 0;
@@ -53,7 +71,7 @@
                            using (WmsDBModel wmsDB = new WmsDBModel())
                            {
                                //要是有已下发的任务,就不要执行
                                var isValidate = TaskHandler.ValidateIssueTaskForBZ12(wmsDB,result);
                                var isValidate = TaskHandler.ValidateIssueTaskForBZ12(wmsDB, result);
                                if (!isValidate)
                                {
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-有‘已下发’的任务,不能处理,此次循环结束";
@@ -65,11 +83,14 @@
                                    SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},根据UPI:{upiCode}没有找到对象 ";
                                    continue;
                                }
                                isrotate = 1;
                                isrotate = 2;
                                placeX = (short)upiObj.MachineXCenter;
                                placeY = (short)upiObj.MachineYCenter;
                                placeZ = (short)upiObj.MachineZCenter;
                                if (upiObj.UpiStatus == 3)
                                {
                                    continue;
                                }
                                //查处这包所有的数量
                                var upiList = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList();
                                //查询是否末板并且判断有没有混批
@@ -92,7 +113,7 @@
                                    }
                                    else
                                    {
                                        isfirst = true;
                                        lastnum = 1;
                                        wms_rbline_runmode.PalletizingUPI = upiObj.PackageCode;
                                        if (obj.R_PalletizingStation1 == 1)
                                        {
@@ -104,15 +125,16 @@
                                        }
                                        else
                                            {
                                        {
                                            SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},UPI:{upiCode}无可用码垛目标位 ";
                                            continue;
                                        }
                                        wms_rbline_runmode.PalletizingStation = int.Parse(place);
                                    }
                                    //如果次序等于当钱包总数量,是否末板置为true
                                    if (upiObj.Shelf == upiList.Count())
                                    {
                                        islast = true;
                                        lastnum = 2;
                                        wms_rbline_runmode.PalletizingUPI = null;
                                        wms_rbline_runmode.PalletizingStation = 0;
                                    }
@@ -150,7 +172,7 @@
                                    CreateUserName = "CC",
                                    UpdateTime = DateTime.Now,
                                    UpdateUserName = "CC",
                                    PlaceCode=place
                                    PlaceCode = place
                                };
                                wmsDB.wms_rbline_task.Add(task);
@@ -158,8 +180,8 @@
                                using (StationServiceClient client = new StationServiceClient())
                                {
                                    var res = client.WritePalletizingTaskInfo((int)EDevice.Station, rgvLocation, Convert.ToInt32(task.TaskNo), islast,isfirst,
                                          (short)upiObj.Length, (short)upiObj.Width, (short)upiObj.Thk, isrotate, short.Parse(task.PlaceCode), placeX, placeY,placeZ);
                                    var res = client.WritePalletizingTaskInfo((int)EDevice.Station, rgvLocation, Convert.ToInt32(task.TaskNo),
                                          (short)upiObj.Length, (short)upiObj.Width, (short)upiObj.Thk, isrotate, short.Parse(task.PlaceCode), placeX, placeY, placeZ, lastnum);
                                    if (!res.result)
                                    {
                                        SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-下发入库任务 å¤±è´¥,WriteInStoreTaskInfoAsync è¿”回:{res.resMsg}";
CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/DataProcess_BZ12_FinishTask.cs
@@ -16,13 +16,13 @@
{
    public class DataProcess_BZ12_FinishTask
    {
        public static  void Handler()
        public static void Handler()
        {
            var alertMsg = "";
            LogType logType = LogType.DataProcess_BZ12;
            while (true)
            {
                Thread.Sleep(2000);//休眠2秒,将休眠写到前面,是为了下面的continue方法执行后不显示错误信息的提示!!!【EditBy shaocx,2022-05-24】
                Thread.Sleep(1000);//休眠2秒,将休眠写到前面,是为了下面的continue方法执行后不显示错误信息的提示!!!【EditBy shaocx,2022-05-24】
                SystemWarningMsg._lbl_alert_DataProcess_BZ12 = string.Empty;
                try
                {
@@ -54,11 +54,23 @@
                                var task = wmsDB.wms_rbline_task.Where(x =>
                                 x.TaskNo == obj.R_PalletizingTaskNo.ToString()
                                && x.RbTaskType == (int)RbTaskTypeEnum.码板任务
                                && x.TaskStatus == (int)TaskStatusEnum.已下发).FirstOrDefault();
                                ).OrderByDescending(x=>x.Id).FirstOrDefault();
                                if (task == null)
                                {
                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},根据 R_InboundNumber:{obj.R_InboundNumber}没有找到已下发的任务 ";
                                    continue;
                                }
                                else
                                {
                                    if (task.TaskStatus == (int)TaskStatusEnum.已完成)
                                    {
                                        //给PLC推送任务完成确认信号
                                        using (StationServiceClient client = new StationServiceClient())
                                        {
                                            var res = client.SetPalletizingTaskFinishAck((int)EDevice.Station, true, rgvLocation);
                                        }
                                        continue;
                                    }
                                }
                                var upiobj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == task.UPI).FirstOrDefault();
                                if (upiobj != null)
@@ -69,23 +81,47 @@
                                task.TaskStatusName = TaskStatusEnum.已完成.ToString();
                                task.FinishedTime = DateTime.Now;
                                //给PLC推送任务完成确认信号
                                using (StationServiceClient client = new StationServiceClient())
                                if (wmsDB.SaveChanges() > 0)
                                {
                                    var res = client.SetPalletizingTaskFinishAck((int)EDevice.Station, true, rgvLocation);
                                    if (!res.result)
                                    var isRight = true;
                                    while (isRight)
                                    {
                                        SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                        continue;
                                    }
                                    else
                                    {
                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                        obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                                        isRight = obj.R_PalletizingFinish;
                                        //给PLC推送任务完成确认信号
                                        using (StationServiceClient client = new StationServiceClient())
                                        {
                                            var res = client.SetPalletizingTaskFinishAck((int)EDevice.Station, true, rgvLocation);
                                            if (!res.result)
                                            {
                                                SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                                continue;
                                            }
                                            else
                                            {
                                                Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                            }
                                        }
                                        Thread.Sleep(1000);
                                    }
                                }
                                wmsDB.SaveChanges();
                            }
                        }
                        else
                        {
                            //给PLC推送任务完成确认信号
                            using (StationServiceClient client = new StationServiceClient())
                            {
                                var res = client.SetPalletizingTaskFinishAck((int)EDevice.Station, false, rgvLocation);
                                //if (!res.result)
                                //{
                                //    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                //    continue;
                                //}
                                //else
                                //{
                                //    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                //}
                            }
                        }
                    }
CC/iWareCC_ASRS/ThreadService/04_BZ21£¨°áÔËÕû¶â»úÆ÷ÈË£©/DataProcess_BZ21.cs
@@ -34,6 +34,25 @@
                         * 2、根据齐套结果,推送给PLC
                         */
                        var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
                        if (obj.R_PalletizingAck)
                        {
                            //给PLC推送任务完接收完成复位信号
                            using (StationServiceClient client = new StationServiceClient())
                            {
                                var res = client.WriteStation_ACK((int)EDevice.Station, false, rgvLocation);
                                if (!res.result)
                                {
                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                    continue;
                                }
                                else
                                {
                                    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                }
                            }
                        }
                        if (obj.R_ReqParseData)
                        {
                            var result = obj.R_ReadCodeResult;
CC/iWareCC_ASRS/ThreadService/04_BZ21£¨°áÔËÕû¶â»úÆ÷ÈË£©/DataProcess_BZ21_FinishTask.cs
@@ -60,7 +60,7 @@
                                    continue;
                                }
                                var upiobj = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == task.PackageCode).ToList();
                                if (upiobj .Count>0)
                                if (upiobj.Count > 0)
                                {
                                    foreach (var item in upiobj)
                                    {
@@ -90,6 +90,23 @@
                                wmsDB.SaveChanges();
                            }
                        }
                        else
                        {
                            //给PLC推送任务完成确认信号
                            using (StationServiceClient client = new StationServiceClient())
                            {
                                var res = client.SetSurroundTaskFinishAck((int)EDevice.Station, false, rgvLocation);
                                //if (!res.result)
                                //{
                                //    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()}-下发码板任务 å¤±è´¥,SetPalletizingTaskFinishAck è¿”回:{res.resMsg}";
                                //    continue;
                                //}
                                //else
                                //{
                                //    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-下发入库任务 æˆåŠŸ,SetPalletizingTaskFinishAck,参数: ç«™ç‚¹{rgvLocation}");
                                //}
                            }
                        }
                    }
                }
                catch (Exception ex)
CC/iWareModel/EnumType/WMS/UpiStatusEnum.cs
@@ -38,7 +38,11 @@
    /// å·²åˆåŒ…
    /// </summary>
    [Description("已合包")]
    å·²åˆåŒ… = 4
}
    å·²åˆåŒ… = 4,
    /// <summary>
    /// ç åž›ä¸­
    /// </summary>
    [Description("码垛中")]
    ç åž›ä¸­ = 5,
    }
}
CC/iWareSql/WmsDBModel/WmsDBModel.cs
@@ -11,12 +11,12 @@
            : base("name=WmsDBModel")
        {
        }
        public virtual DbSet<mes_batchOrderUPI_new> mes_batchOrderUPI_new { get; set; }
        public virtual DbSet<mes_PushPackageCode> mes_PushPackageCode { get; set; }
        public virtual DbSet<ApprovalFlow> ApprovalFlow { get; set; }
        public virtual DbSet<DingTalkUser> DingTalkUser { get; set; }
        public virtual DbSet<GoViewPro> GoViewPro { get; set; }
        public virtual DbSet<GoViewProData> GoViewProData { get; set; }
        public virtual DbSet<mes_batchOrderUPI_new> mes_batchOrderUPI_new { get; set; }
        public virtual DbSet<SysCodeGen> SysCodeGen { get; set; }
        public virtual DbSet<SysCodeGenConfig> SysCodeGenConfig { get; set; }
        public virtual DbSet<SysConfig> SysConfig { get; set; }
CC/iWareSql/WmsDBModel/mes_batchOrderUPI_new.cs
@@ -85,74 +85,46 @@
        public string UpdateUserName { get; set; }
        public bool IsDelete { get; set; }
        /// <summary>
        /// é”€å”®åˆåŒå•号
        /// </summary>
        [StringLength(60)]
        public string Info4 { get; set; }
        /// <summary>
        /// ç”Ÿäº§å•号
        /// </summary>
        [StringLength(60)]
        public string Info5 { get; set; }
        /// <summary>
        /// ç¬¬å‡ åŒ…
        /// </summary>
        [StringLength(60)]
        public string Info6 { get; set; }
        /// <summary>
        /// ç»é”€åº—名称
        /// </summary>
        [StringLength(60)]
        public string Info7 { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        [StringLength(60)]
        public string Info8 { get; set; }
        /// <summary>
        /// å®¢æˆ·åç§°
        /// </summary>
        [StringLength(60)]
        public string Info10 { get; set; }
        /// <summary>
        /// åŒ…装编码
        /// </summary>
        [StringLength(60)]
        public string Info9 { get; set; }
        /// <summary>
        /// è‡ªæor发货
        /// </summary>
        [StringLength(60)]
        public string Info11 { get; set; }
        /// <summary>
        /// åŒ…装部件总数量
        /// </summary>
        [StringLength(60)]
        public string Info12 { get; set; }
        /// <summary>
        /// åŒ…装面积
        /// </summary>
        [StringLength(60)]
        public string Info13 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶åç§°
        /// </summary>
        [StringLength(60)]
        public string Info14 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶æ•°é‡
        /// </summary>
        public int Info15 { get; set; }
        public int? Info15 { get; set; }
        /// <summary>
        /// éƒ¨ä»¶å°ºå¯¸
        /// </summary>
        [StringLength(60)]
        public string Info16 { get; set; }
        /// <summary>
        /// æœºæ¢°è‡‚是否旋转
        /// </summary>
        [StringLength(60)]
        public string Info17 { get; set; }
    }
}
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Entity/WmsOrder/Mes_BatchOrderUPI.cs
@@ -212,5 +212,10 @@
        /// </summary>
        [SugarColumn(ColumnName = "Info16", ColumnDescription = "部件尺寸", Length = 60)]
        public string? Info16 { get; set; }
        /// <summary>
        /// æœºæ¢°è‡‚是否旋转
        /// </summary>
        [SugarColumn(ColumnName = "Info17", ColumnDescription = "机械臂是否旋转", Length = 60)]
        public string? Info17 { get; set; }
    }
}
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
@@ -198,6 +198,11 @@
        /// </summary>
        [Description("合包任务号")]
        public int W_SurroundTaskNo { get; set; }
        /// <summary>
        /// ç åž›é¦–末板
        /// </summary>
        [Description("码垛首末板")]
        public short W_PalletizingBucketType { get; set; }
    }
    /// <summary>
@@ -262,6 +267,11 @@
        /// </summary>
        [Description("码垛任务完成确认")]
        public string W_PalletizingTaskFinish { get; set; }
        /// <summary>
        /// ç åž›é¦–末板
        /// </summary>
        [Description("码垛首末板")]
        public string W_PalletizingBucketType { get; set; }
        /// <summary>
        /// é½å¥—信息(998齐套,999异常出库)
        /// </summary>
@@ -537,7 +547,11 @@
        /// </summary>
        [Description("码垛位置2状态")]
        public short R_PalletizingStation2 { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡æŽ¥æ”¶å®Œæˆ
        /// </summary>
        [Description("码垛任务接收完成")]
        public bool R_PalletizingAck { get; set; }
        /// <summary>
        /// å¼ºåˆ¶å‡ºåº“模式
        /// </summary>
@@ -649,5 +663,10 @@
        /// </summary>
        [Description("合包任务号")]
        public string R_SurrouondTaskNo { get; set; }
        /// <summary>
        /// ç åž›ä»»åŠ¡æŽ¥æ”¶å®Œæˆ
        /// </summary>
        [Description("码垛任务接收完成")]
        public string R_PalletizingAck { get; set; }
    }
}
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -434,7 +434,7 @@
        /// <param name=""></param>
        /// <param name=""></param>
        /// <returns></returns>
        public bool WritePalletizingTaskInfo(string stationCode, int taskID, bool isLast,bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ, out string msg)
        public bool WritePalletizingTaskInfo(string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ,short lastnum, out string msg)
        {
            try
            {
@@ -450,22 +450,7 @@
                      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_FirstMark, isFirst, view_stationObj.W_FirstMark);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ æ˜¯å¦é¦–板 " + isFirst + "失败,返回结果:" + b2.resMsg,
                      stationObj.W_Destination_In);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_Length, length, view_stationObj.W_Length);
                if (!b2.result)
                {
@@ -519,6 +504,13 @@
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ Z坐标 " + placeZ + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingBucketType, lastnum, view_stationObj.W_PalletizingBucketType);
                if (!b2.result)
                {
                    msg = string.Format("向Station地址{0} å†™ é¦–末板 " + lastnum + "失败,返回结果:" + b2.resMsg,
                     stationObj.W_Height);
                    return false;
                }
@@ -672,6 +664,40 @@
                return false;
            }
        }
        /// <summary>
        /// å†™å…¥ç«™ç‚¹ä»»åŠ¡å®Œæˆç¡®è®¤
        /// </summary>
        /// <param name="stationCode"></param>
        /// <param name="value"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool WriteStation_ACK(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_DataFinish, value, view_stationObj.W_DataFinish);
                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 WriteSurround_FinishACK(string stationCode, bool value, out string msg)
        {
            try
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
@@ -200,7 +200,7 @@
                W_Length = W_DBHeaderWithSeparate_BZ12 + "2.0",
                W_Width = W_DBHeaderWithSeparate_BZ12 + "4.0",
                W_Height = W_DBHeaderWithSeparate_BZ12 + "6.0",
                W_PalletizingBucketType= W_DBHeaderWithSeparate_BZ12 + "20.0",
                W_PalletizingStation = W_DBHeaderWithSeparate_BZ12 + "10.0",
                W_PalletizingTaskFinish = W_DBHeaderWithSeparate_BZ12 + "0.2",
            });
@@ -280,7 +280,7 @@
                R_ReadCodeResult = W_DBHeaderWithSeparate_BZ12 + "52.0",
                R_PalletizingStation1 = W_DBHeaderWithSeparate_BZ12 + "104.0",
                R_PalletizingStation2 = W_DBHeaderWithSeparate_BZ12 + "106.0",
                R_PalletizingAck = W_DBHeaderWithSeparate_BZ12 + "50.2",
                //R_Inbound_TaskID = W_DBHeaderWithSeparate_BZ12 + "112.0",
                //R_Outbound_TaskID = W_DBHeaderWithSeparate_BZ12 + "114.0",
@@ -288,6 +288,7 @@
            _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm()
            {
                StationCode = StationLocationEnum.BZ21.ToString(),
                R_PalletizingAck = W_DBHeaderWithSeparate_BZ12 + "50.2",
                R_ReqParseData = W_DBHeaderWithSeparate_BZ21 + "50.0",
                R_SurrouondTaskFinish = W_DBHeaderWithSeparate_BZ21 + "50.1",
SDA/iWareSda/Devices/4-Station/StationService/IStationService.cs
@@ -148,7 +148,7 @@
        /// <param name="value"></param>
        /// <returns></returns>
        [OperationContract]
        SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, bool isLast, bool isFirst, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ);
        SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ,short lastnum);
            /// <summary>
            /// ç åž›å®Œæˆå·²ç¡®è®¤
@@ -173,6 +173,15 @@
        /// <returns></returns>
        [OperationContract]
        SdaResEntity WriteStation_FinishACK(int deviceId, bool value, int plcTaskId);
        /// <summary>
        /// å¤ä½è§£æžå®Œæˆ
        /// </summary>
        /// <param name="deviceId"></param>
        /// <param name="value"></param>
        /// <param name="stationCode"></param>
        /// <returns></returns>
        [OperationContract]
        SdaResEntity WriteStation_ACK(int deviceId, bool value, string stationCode);
        /// <summary>
        /// å››ä¸ªå…¥åº“口扫描验证ACK赋值
SDA/iWareSda/Devices/4-Station/StationService/StationService.cs
@@ -572,7 +572,7 @@
        /// <param name="deviceId"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode,int taskID, bool isLast, bool isFirst, short length, short width, short height,short rotate,short toplace,short placeX,short placeY, short placeZ)
        public SdaResEntity WritePalletizingTaskInfo(int deviceId, string stationCode,int taskID, short length, short width, short height,short rotate,short toplace,short placeX,short placeY, short placeZ,short lastnum)
        {
            SdaResEntity _SdaResEntity = new SdaResEntity();
            try
@@ -585,7 +585,7 @@
                var Station = StationResult.resData as StationEntity;
                string msg = "";
                var result = Station.WritePalletizingTaskInfo(stationCode, taskID,isLast,isFirst, length, width, height,rotate,toplace,placeX,placeY,placeZ, out msg);
                var result = Station.WritePalletizingTaskInfo(stationCode, taskID, length, width, height,rotate,toplace,placeX,placeY,placeZ,lastnum ,out msg);
                _SdaResEntity.result = result;
                _SdaResEntity.resMsg = msg;
                return _SdaResEntity;
@@ -691,6 +691,31 @@
                return _SdaResEntity;
            }
        }
        public SdaResEntity WriteStation_ACK(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_ACK(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>