Exemple #1
0
        /// <summary>
        /// 根据箱号和发运日期获取箱号和下架单对应关系
        /// </summary>
        /// <param name="HU"></param>
        /// <returns></returns>
        public static List <BoxPickTaskMapInfo> GetBoxPickTaskMapInfoByHU(string HU, DateTime SHIP_DATE)
        {
            try
            {
                string       sql   = "SELECT HU, PICK_TASK, PARTNER, LOUCENG, SHIP_DATE, PACKMAT, QUAN, IS_SCAN FROM BoxPickTaskMap WHERE HU = @HU AND SHIP_DATE = @SHIP_DATE";
                SqlParameter p1    = DBHelper.CreateParameter("@HU", HU);
                SqlParameter p2    = DBHelper.CreateParameter("@SHIP_DATE", SHIP_DATE);
                DataTable    table = DBHelper.GetTable(sql, false, p1, p2);
                if (table != null && table.Rows.Count > 0)
                {
                    List <BoxPickTaskMapInfo> list = new List <BoxPickTaskMapInfo>();
                    foreach (DataRow row in table.Rows)
                    {
                        BoxPickTaskMapInfo item = new BoxPickTaskMapInfo();
                        item.HU        = row["HU"] == null ? null : row["HU"].ToString();
                        item.PICK_TASK = row["PICK_TASK"] == null ? null : row["PICK_TASK"].ToString();
                        item.PARTNER   = row["PARTNER"] == null ? null : row["PARTNER"].ToString();
                        item.LOUCENG   = row["LOUCENG"] == null ? null : row["LOUCENG"].ToString();
                        try
                        {
                            item.SHIP_DATE = DateTime.Parse(row["SHIP_DATE"].ToString());
                        }
                        catch
                        {
                            item.SHIP_DATE = (DateTime?)null;
                        }
                        item.PACKMAT = row["PACKMAT"] == null ? null : row["PACKMAT"].ToString();
                        try
                        {
                            item.QUAN = float.Parse(row["QUAN"].ToString());
                        }
                        catch
                        {
                            item.QUAN = 0;
                        }
                        try
                        {
                            item.IS_SCAN = bool.Parse(row["IS_SCAN"].ToString());
                        }
                        catch
                        {
                            item.IS_SCAN = false;
                        }

                        list.Add(item);
                    }

                    return(list);
                }

                return(null);
            }
            catch (Exception ex)
            {
                //LogHelper.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
                return(null);
            }
        }
        public bool SIO_EWM_RFID019(string HU, string SHIP_DATE)
        {
            HU = !string.IsNullOrEmpty(HU) ? HU.TrimStart('0') : "";

            LogHelp.LogDebug(string.Format("调用绑定函数[SIO_EWM_RFID010],参数=>HU:[{0}],SHIP_DATE:[{1}]",
                                           HU, SHIP_DATE));

            DateTime?sd = null;

            try
            {
                sd = DateTime.ParseExact(SHIP_DATE, "yyyyMMdd", CultureInfo.InvariantCulture);
            }
            catch { }

            if (sd == null)
            {
                LogHelp.LogDebug(string.Format("调用绑定函数[SIO_EWM_RFID010],结果=>[{0}]", "false,发运日期格式错误"));
                return(false);
            }

            //根据HU和发运日期到表BoxPickTaskMap获取箱号和下架单号关系列表
            List <BoxPickTaskMapInfo> boxPickTaskMapInfoList = LocalDataService.GetBoxPickTaskMapInfoByHU(HU, sd.Value);

            if (boxPickTaskMapInfoList == null)
            {
                LogHelp.LogDebug(string.Format("调用绑定函数[SIO_EWM_RFID010],结果=>[{0}]", "false,箱码下架单绑定关系不存在"));
                return(false);
            }

            BoxPickTaskMapInfo boxPartnerMapInfo = boxPickTaskMapInfoList.Count > 0 ? boxPickTaskMapInfoList[0] : null;

            if (boxPartnerMapInfo != null)
            {
                //根据PARTNER,LOUCENG,ship_date,hu,result到表DeliverBox获取Guid
                PKDeliverBox deliverBox = LocalDataService.GetDeliverBox(boxPartnerMapInfo.LOUCENG, boxPartnerMapInfo.PARTNER, sd.Value, HU, "S");

                if (deliverBox != null)
                {
                    //start edit by wuxw
                    //通过Guid到表delivererrorbox获取扫描记录
                    List <PKDeliverErrorBox> deliverErrorBoxList = LocalDataService.GetDeliverErrorBoxListByBoxGuid(deliverBox.GUID);

                    //到下架单表扣除相应数量
                    if (deliverErrorBoxList != null && deliverErrorBoxList.Count > 0)
                    {
                        foreach (PKDeliverErrorBox errorbox in deliverErrorBoxList)
                        {
                            //更改下架单的实发数量
                            LocalDataService.RemovePickTaskRealNum(errorbox.PICK_TASK, errorbox.PICK_TASK_ITEM, errorbox.MATNR, (int)errorbox.REAL, (int)errorbox.ADD_REAL);
                        }
                    }
                    //end edit by wuxw
                }

                //删除BoxPartnerMap对应记录
                bool result = LocalDataService.DeleteBoxPickTaskMapInfo(HU, sd.Value);

                if (deliverBox != null)
                {
                    //删除DeliverBox对应记录
                    LocalDataService.DeleteDeliverBox(HU, sd.Value);

                    //删除DeliverErrorBox对应记录
                    LocalDataService.DeleteDeliverErrorBox(HU, sd.Value);

                    //删除deliverepcdetail对应记录
                    LocalDataService.DeleteDeliverEpcDetail(HU, sd.Value);
                }
            }

            LogHelp.LogDebug(string.Format("调用绑定函数[SIO_EWM_RFID010],结果=>[{0}]", true));
            return(true);
        }