eaefefa5c4cf5ce403ce5f0dcf09a5ad21837e43..da7196f0acb1349fe0bc6b3b652093b495416adc
7 天以前 zxx
1
da7196 对比 | 目录
7 天以前 zxx
1
44007a 对比 | 目录
7 天以前 zxx
1
9aa126 对比 | 目录
7个文件已修改
489 ■■■■ 已修改文件
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/LocFrameRel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs 374 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/api/WmsController.cs
@@ -33,14 +33,14 @@
        }
        //[HttpPost]
        //public TaskResponse smallMaterial(smallMaterial model)
        //{
        //    LogHelper.Info("smallMaterial 参数:" + JsonConvert.SerializeObject(model), "WMSAPI");
        //    var res = TaskProcess.smallMaterial(model);
        //    LogHelper.Info("smallMaterial 返回:" + JsonConvert.SerializeObject(res), "WMSAPI");
        //    return res;
        //}
        [HttpPost]
        public TaskResponse smallMaterial(smallMaterial model)
        {
            LogHelper.Info("smallMaterial 参数:" + JsonConvert.SerializeObject(model), "WMSAPI");
            var res = TaskProcess.smallMaterial(model);
            LogHelper.Info("smallMaterial 返回:" + JsonConvert.SerializeObject(res), "WMSAPI");
            return res;
        }
    }
}
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/dispatch/RcsHelper.cs
@@ -38,7 +38,7 @@
                        var db = new SqlHelper<WCSTask>().GetInstance();
                        //存订单号
                        var task = db.Queryable<WCSTask>().Where(a => a.S_CODE == model.ts_name).First();
                        task.S_WORKSHOP_NO = dataResult.data.in_order_id;
                        task.S_WORKSHOP_NO = dataResult.data[0].in_order_id;
                        var res = db.Updateable(task).UpdateColumns(it => it.S_WORKSHOP_NO).ExecuteCommand() > 0;
                        if (res)
                        {
@@ -81,7 +81,17 @@
                    var dataResult = JsonConvert.DeserializeObject<RcsResult>(response);
                    if (dataResult.code == 0)
                    {
                        result = true;
                        var db = new SqlHelper<WCSTask>().GetInstance();
                        //存订单号
                        var task = db.Queryable<WCSTask>().Where(a => a.S_CODE == model.ts_name).First();
                        task.S_WORKSHOP_NO = dataResult.data[0].in_order_id;
                        var res = db.Updateable(task).UpdateColumns(it => it.S_WORKSHOP_NO).ExecuteCommand() > 0;
                        if (res)
                        {
                            result = true;
                        }
                        //result = true;
                    }
                }
                catch (Exception ex)
@@ -197,7 +207,7 @@
            /// <summary>
            /// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序
            /// </summary>
            public string priority { get; set; }
            public int priority { get; set; }
            /// <summary>
            /// 订单截止时间
            /// </summary>
@@ -205,7 +215,8 @@
            /// <summary>
            /// 订单参数
            /// </summary>
            public PickingParasModel parameters { get; set; }
            //public PickingParasModel parameters { get; set; }
            public string parameters { get; set; }
            /// <summary>
            /// 订单TS名字
@@ -282,7 +293,7 @@
            public string version { get; set; }
            public int code { get; set; }
            public string msg { get; set; }
            public RcsData data { get; set; }
            public List<RcsData> data { get; set; }
        }
        public class RcsData
        {
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/LocFrameRel.cs
@@ -26,9 +26,9 @@
        //public int N_BIND_ORDER { get; set; }
        [SugarColumn(IsIgnore = true)]
        [Navigate(NavigateType.OneToMany, nameof(S_LOC_CODE))]
        public List<LocCntrRel> LocCntrRels { get; set; }
        //[SugarColumn(IsIgnore = true)]
        //[Navigate(NavigateType.OneToMany, nameof(S_LOC_CODE))]
        //public List<LocCntrRel> LocCntrRels { get; set; }
       
    }
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/models/smallMaterial.cs
@@ -34,15 +34,15 @@
        //料架库位
        public string rackPosition { get; set; }
        //TS订单参数
        public List<Parameters> parameters { get; set; }
        public Parameters parameters { get; set; }
        //public string routeType { get; set; }
        ////任务类型 自动,人工
        //public string taskType { get; set; }
        ////料架编码
        //public string rackCode { get; set; }
        ////任务明细号
        //public string order_name { get; set; }
        //任务明细号
        public string order_name { get; set; }
    }
    public class Parameters
    {
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/process/TaskProcess.cs
@@ -48,32 +48,14 @@
            {
                Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                if (mst.S_FRAME_CODE != null)
                {
                    LocationHelper.UnBindingLocHj(mst.S_START_LOC, mst.S_FRAME_CODE);
                LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
                }
                else
                {
                    LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
                }
            }
            else
            {
                Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                //如果货架有值则绑货架
                if (mst.S_FRAME_CODE!=null)
                {
                    LocationHelper.BindingLocHj(mst.S_END_LOC, mst.S_FRAME_CODE);
                }
                else
                {
                    LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
                }
                LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
            }
        }
@@ -148,7 +130,7 @@
            }
        }
        private static object locLocker = new object();
        /// <summary>
@@ -389,26 +371,92 @@
                //var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
                if (mst.S_START_LOC != null && mst.S_END_LOC != null)
                {
                    string src = $"\"src\":\"{mst.S_START_LOC}\",";
                    string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
                    string carrier_type_id = $"\"carrier_type_id\":\"1\"";
                    string parmeS = "{";
                    string parmeD = "}";
                    string parme = parmeS + src + dst + carrier_type_id + parmeD;
                    LogHelper.Info($"推送任务参数{parme}", "任务");
                    AntsTaskModel model = new AntsTaskModel();
                    model.order_name = mst.S_CODE;
                    model.priority = 1;
                    model.dead_line = DateTime.Now.ToString();
                    model.ts_name = mst.S_TYPE;
                    model.parameters = parme;
                    //model.parameters = new AntsParasModel {
                    //    src = mst.S_START_LOC,
                    //    dst = mst.S_END_LOC,
                    //    carrier_type_id="-99"
                    //};
                    var res = RcsHelper.CreateAntsOrder(model);
                    bool res = false;
                    if (mst.S_TYPE == "大件")
                    {
                        string src = $"\"src\":\"{mst.S_START_LOC}\",";
                        string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
                        string carrier_type_id = $"\"carrier_type_id\":\"1\"";
                        string parmeS = "{";
                        string parmeD = "}";
                        string parme = parmeS + src + dst + carrier_type_id + parmeD;
                        LogHelper.Info($"推送任务参数{parme}", "任务");
                        AntsTaskModel model = new AntsTaskModel();
                        model.order_name = mst.S_CODE;
                        model.priority = 1;
                        model.dead_line = DateTime.Now.ToString();
                        model.ts_name = mst.S_TYPE;
                        model.parameters = parme;
                        //model.parameters = new AntsParasModel {
                        //    src = mst.S_START_LOC,
                        //    dst = mst.S_END_LOC,
                        //    carrier_type_id="-99"
                        //};
                        res = RcsHelper.CreateAntsOrder(model);
                    }
                    else if (mst.S_TYPE == "小件通用车型")
                    {
                        string src = $"\"src\":\"{mst.S_START_LOC}\",";
                        string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
                        string car_type = $"\"car_type\":\"1\",";
                        string src_ort = $"\"src_ort\":\"-1\",";
                        string dst_ort = $"\"dst_ort\":\"-1\"";
                        string parmeS = "{";
                        string parmeD = "}";
                        string parme = parmeS + src + dst + car_type + src_ort + dst_ort + parmeD;
                        LogHelper.Info($"推送任务参数{parme}", "任务");
                        PickingTaskModel model = new PickingTaskModel();
                        model.order_name = mst.S_CODE;
                        model.priority = 1;
                        model.dead_line = DateTime.Now.ToString();
                        model.ts_name = "p2p";
                        model.parameters = parme;
                        //model.parameters = new AntsParasModel {
                        //    src = mst.S_START_LOC,
                        //    dst = mst.S_END_LOC,
                        //    carrier_type_id="-99"
                        //};
                        res = RcsHelper.CreatePickingOrder(model);
                    }
                    else if (mst.S_TYPE == "inbound")
                    {
                        //查出货架编码
                        var db = new SqlHelper<Object>().GetInstance();
                        var locFrameRel = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == mst.S_START_LOC).First();
                        string tote_id = $"\"tote_id\":\"{locFrameRel.S_FRAME_CODE}\",";
                        string task_type = $"\"task_type\":\"{mst.S_TYPE}\",";
                        string src = $"\"src\":\"{mst.S_START_LOC}\",";
                        string dst = $"\"dst\":\"{mst.S_END_LOC}\",";
                        string extra_info = $"\"extra_info\":";
                        string layer = $"\"layer\":[1,2,3,4],";
                        string put = $"\"put\":true";
                        string parmeS = "{";
                        string parmeD = "}";
                        string parmezS = "[";
                        string parmezD = "]";
                        string parme = parmeS + tote_id + task_type + src + dst + extra_info + parmezS+ parmeS  + layer + put + parmeD + parmezD + parmeD;
                        LogHelper.Info($"推送任务参数{parme}", "任务");
                        PickingTaskModel model = new PickingTaskModel();
                        model.order_name = mst.S_CODE;
                        model.priority = 1;
                        model.dead_line = DateTime.Now.ToString();
                        model.ts_name = "picking_ts";
                        model.parameters = parme;
                        //model.parameters = new AntsParasModel {
                        //    src = mst.S_START_LOC,
                        //    dst = mst.S_END_LOC,
                        //    carrier_type_id="-99"
                        //};
                        res = RcsHelper.CreatePickingOrder(model);
                    }
                    if (res)
                    {
                        //更新任务状态
@@ -462,7 +510,7 @@
            return result;
        }
        //小米大件
        public static bool CreateTransportDj(string start, string end, string taskType, string cntrs,string orderName, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1)
        public static bool CreateTransportDj(string start, string end, string taskType, string cntrs, string orderName, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1)
        {
            var result = false;
            var trayCodes = cntrs;
@@ -470,7 +518,7 @@
            var res = WCSHelper.CreateTaskDj(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, orderName,trayCarryCount, startLayer, endLayer);
            var res = WCSHelper.CreateTaskDj(taskNo, start.Trim(), end.Trim(), taskType, priority, trayCodes, orderName, trayCarryCount, startLayer, endLayer);
            if (res)
            {
                result = true;
@@ -795,7 +843,7 @@
                        result = list.OrderBy(s => s.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault();
                    }
                }
            }
@@ -981,7 +1029,7 @@
                            Message = $"{model.parameters.src}库位已被锁定!";
                        }
                        endLocStr = model.parameters.dst;
                        break;
                    case "p2a":
                        startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.parameters.src).First();
@@ -990,7 +1038,7 @@
                            Message = $"{model.parameters.src}库位已被锁定!";
                        }
                        var endLoc = InWorkTransport(model.parameters.dst_area);
                        if (endLoc==null)
                        if (endLoc == null)
                        {
                            //如果没找到就等第一条
                            endLocStr = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == model.parameters.dst).OrderByDescending(a => a.N_ROW).ToList()[0].S_CODE;
@@ -999,7 +1047,7 @@
                        break;
                    case "a2p":
                        startLoc = OutWorkTransport(model.parameters.src_area);
                        if (startLoc==null)
                        if (startLoc == null)
                        {
                            Message = $"{model.parameters.dst}库区没有可出货位!";
                        }
@@ -1030,7 +1078,7 @@
                        break;
                }
                LogHelper.Info($"bigMaterial  接收参数{JsonConvert.SerializeObject(model) }");
                LogHelper.Info($"bigMaterial  接收参数{JsonConvert.SerializeObject(model)}");
                //创建托盘货位绑定关系
                string trayCode = ContainerHelper.GenerateCntrNo();
                //绑定起点货位(产线)和物料
@@ -1038,8 +1086,8 @@
                var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
                //创建任务
                LogHelper.Info($"创建任务 起点:{startLoc.S_CODE}终点:{endLocStr}", model.ts_name);
                var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, model.ts_name, locCntrRel.S_CNTR_CODE, model.order_name, 1, 1);
                LogHelper.Info($"创建任务 起点:{startLoc.S_CODE}终点:{endLocStr}", "大件");
                var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLocStr, "大件", locCntrRel.S_CNTR_CODE, model.order_name, 1, 1);
                if (!res)
                {
                    return new TaskResponse
@@ -1082,126 +1130,116 @@
        }
        //public static TaskResponse smallMaterial(smallMaterial model) {
        //    var db = new SqlHelper<Location>().GetInstance();
        //小件
        public static TaskResponse smallMaterial(smallMaterial model)
        {
            var db = new SqlHelper<Location>().GetInstance();
            try
            {
                string Message = null;
        //    string Message = null;
        //    //拆分成两条任务,一条是料架到指定的缓存区,二是料架上的托盘到指定的工位(小米wcs传)一对多
        //    var startFrame = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == model.taskList[0].parameters[0].src).First();
        //    var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == startFrame.S_FRAME_CODE).First();
        //    if (startLoc == null || startLoc.N_LOCK_STATE != 0)
        //    {
        //        return new TaskResponse
        //        {
        //            header = new ResponseHead { code = 0, desc = $"{model.taskList[0].parameters[0].src}库位已被锁定!" }
        //        };
        //    }
        //    var endLoc = TaskProcess.InWorkTransport(model.shippingRoute);
        //    if (endLoc != null)
        //    {
        //        //创建到缓存区任务
        //        var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
        //        //创建任务
        //        LogHelper.Info($"创建任务 起点:{startLoc.S_CODE}终点:{endLoc.S_CODE}", model.ts_name);
        //        var res = TaskProcess.CreateTransportHj(startLoc.S_CODE, endLoc.S_CODE, model.ts_name, locCntrRel.S_FRAME_CODE, 1, 1);
        //        if (!res)
        //        {
        //            return new TaskResponse
        //            {
        //                header = new ResponseHead { code = 0, desc = "自动上线任务创建失败" }
        //            };
        //        }
        //    }
        //    //料架上的托盘到指定的工位
        //    foreach (var parameter in model.parameters)
        //    {
        //        var startLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.src).First();
        //        if (startLocHj == null || startLocHj.N_LOCK_STATE != 0)
        //        {
        //             Message = Message==null? $"{model.parameters[0].src}库位已被锁定!": Message+ $"{model.parameters[0].src}库位已被锁定!";
        //        }
        //        else
        //        {
        //            //货架上的货判断一下货架有没有锁
        //            var startFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.src).First();
        //            if (startFrameParent != null)
        //            {
        //                var startLocParent = db.Queryable<Location>().Where(a => a.S_CODE == startFrameParent.S_FRAME_CODE).First();
        //                if (startLocParent == null || startLocParent.N_LOCK_STATE != 0)
        //                {
        //                    return new TaskResponse
        //                    {
        //                        header = new ResponseHead { code = 0, desc = $"{startFrameParent.S_FRAME_CODE}货架已被锁定!" }
        //                    };
        //                }
        //            }
        //            var endLocHj = db.Queryable<Location>().Where(a => a.S_CODE == parameter.dst).First();
        //            if (endLocHj == null || endLocHj.N_LOCK_STATE != 0 || endLocHj.C_ENABLE != "Y")
        //            {
        //                //应该绕路
        //                Message = Message == null ? $"{parameter.dst}库位已被锁定!" : Message + $"{parameter.dst}库位已被锁定!";
        //            }
        //            else
        //            {
        //                //货架上的货判断一下货架有没有锁
        //                var endFrameParent = db.Queryable<LocFrameRel>().Where(a => a.S_LOC_CODE == parameter.dst).First();
        //                if (endFrameParent != null)
        //                {
        //                    var endLocParent = db.Queryable<Location>().Where(a => a.S_CODE == endFrameParent.S_FRAME_CODE).First();
        //                    if (endLocParent == null || endLocParent.N_LOCK_STATE != 0)
        //                    {
        //                        return new TaskResponse
        //                        {
        //                            header = new ResponseHead { code = 0, desc = $"{endFrameParent.S_FRAME_CODE}货架已被锁定!" }
        //                        };
        //                    }
        //                }
        //                //创建到缓存区任务
        //                var locCntrRel1 = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLocHj.S_CODE).First();
        //                //创建任务
        //                LogHelper.Info($"创建任务 起点:{startLocHj.S_CODE}终点:{endLocHj.S_CODE}", model.ts_name);
        //                var res = TaskProcess.CreateTransport(startLocHj.S_CODE, endLocHj.S_CODE, model.ts_name, locCntrRel1.S_CNTR_CODE, 1, 1);
        //                if (!res)
        //                {
        //                    return new TaskResponse
        //                    {
        //                        header = new ResponseHead { code = 0, desc = "自动上线任务2创建失败" }
        //                    };
        //                }
        //            }
                //拆分成两条任务,一条是料架到指定的缓存区,二是料架上的托盘到指定的工位(小米wcs传)一对多
                var startLoc = db.Queryable<Location>().Where(a => a.S_CODE == model.taskList[0].parameters.src).First();
                if (startLoc == null || startLoc.N_LOCK_STATE != 0)
                {
                    return new TaskResponse
                    {
                        header = new ResponseHead { code = 0, desc = $"{model.taskList[0].parameters.src}库位已被锁定!" }
                    };
                }
                var endLoc = TaskProcess.InWorkTransport(model.shippingRoute);
                if (endLoc != null)
                {
                    ////创建到缓存区任务
                    //var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startLoc.S_CODE).First();
                    
        //        }
        //    }
        //    var result = new TaskResponse();
        //    if (Message != null)
        //    {
        //        result = new TaskResponse
        //        {
        //            header = new ResponseHead { code = 0, desc = Message }
        //        };
        //    }
        //    else
        //    {
        //        result = new TaskResponse
        //        {
        //            header = new ResponseHead { code = 200, desc = "SUCCESS" },
        //            body = new ResponseBody
        //            {
        //                msg = "success",
        //                app_name = "Guozi client",
        //                data = new List<ResponseData> { new ResponseData { in_order_id = model.taskID } },
        //                version = ""
        //            }
        //        };
        //    }
        //    return result;
        //}
                    //找p2a的任务编码
                    var order_name = model.taskList.Find(s=>s.ts_name=="p2a").order_name;
                    //创建任务
                    LogHelper.Info($"创建任务 起点:{startLoc.S_CODE}终点:{endLoc.S_CODE}", "小件通用车型");
                    var res = TaskProcess.CreateTransportDj(startLoc.S_CODE, endLoc.S_CODE, "小件通用车型", model.rackNumber, order_name, 1, 1);
                    if (!res)
                    {
                        return new TaskResponse
                        {
                            header = new ResponseHead { code = 0, desc = "自动上线任务创建失败" }
                        };
                    }
                }
                //料架上的托盘到指定的工位
                foreach (var tasklist in model.taskList)
                {
                    if (tasklist.ts_name == "p2p")
                    {
                        //先绑定料架和料箱位
                        ContainerHelper.BindLocCntrsXmLj(tasklist.rackPosition, model.rackNumber);
                        var startloc = db.Queryable<Location>().Where(a => a.S_CODE == tasklist.rackPosition).First();
                        if (startloc == null || startloc.N_LOCK_STATE != 0)
                        {
                            return new TaskResponse
                            {
                                header = new ResponseHead { code = 0, desc = $"{startloc.S_CODE}库位已被锁定!" }
                            };
                        }
                        var endlocstr = tasklist.parameters.dst;
                        //创建托盘货位绑定关系
                        string trayCode = ContainerHelper.GenerateCntrNo();
                        //绑定起点货位(产线)和物料
                        ContainerHelper.BindLocCntrsXm(startloc.S_CODE, trayCode, tasklist.parameters.sku, "", tasklist.parameters.BatchNo, tasklist.parameters.issueMode, tasklist.parameters.num);
                        var locCntrRel = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startloc.S_CODE).First();
                        //创建任务
                        LogHelper.Info($"创建任务 起点:{startloc.S_CODE}终点:{endlocstr}", "inbound");
                        var res = TaskProcess.CreateTransportDj(startloc.S_CODE, endlocstr, "inbound", locCntrRel.S_CNTR_CODE, tasklist.order_name, 1, 1);
                        if (!res)
                        {
                            return new TaskResponse
                            {
                                header = new ResponseHead { code = 1, desc = Message }
                            };
                        }
                    }
                }
                var result = new TaskResponse();
                if (Message != null)
                {
                    result = new TaskResponse
                    {
                        header = new ResponseHead { code = 0, desc = Message }
                    };
                }
                else
                {
                    result = new TaskResponse
                    {
                        header = new ResponseHead { code = 200, desc = "SUCCESS" },
                        body = new ResponseBody
                        {
                            msg = "success",
                            app_name = "Guozi client",
                            data = new List<ResponseData> { new ResponseData { in_order_id = model.taskList[0].taskID } },
                            version = ""
                        }
                    };
                }
                return result;
            }
            catch (Exception ex)
            {
                Console.WriteLine("smallMaterial:" + ex.Message + ex.StackTrace);
                LogHelper.Error("smallMaterial:" + ex.Message, ex);
                throw;
            }
        }
    }
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/ContainerHelper.cs
@@ -558,8 +558,8 @@
                    string cntrCode = list[i];
                    if (db.Queryable<LocCntrRel>().Count(a => a.S_CNTR_CODE.Trim() == cntrCode) == 0)
                    {
                        var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode};
                        var con = new Container { S_CODE = cntrCode,N_DETAIL_COUNT = 1,C_FULL="2" };//默认满 主动绑定服务用
                        var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode };
                        var con = new Container { S_CODE = cntrCode, N_DETAIL_COUNT = 1, C_FULL = "2" };//默认满 主动绑定服务用
                        db.Insertable<LocCntrRel>(cir).ExecuteCommand();
                        db.Insertable<Container>(con).ExecuteCommand();
                        if (!string.IsNullOrEmpty(itemCode))
@@ -612,11 +612,34 @@
            return result;
        }
        /// <summary>
        /// 小米 绑定料架和料箱位
        /// </summary>
        /// <param name="cntr"></param>
        /// <returns></returns>
        internal static bool BindLocCntrsXmLj(string loc, string frame)
        {
            bool result = true;
            var db = new SqlHelper<object>().GetInstance();
            if (!string.IsNullOrEmpty(frame))
            {
                string cntrCode = frame;
                if (db.Queryable<LocFrameRel>().Count(a => a.S_LOC_CODE.Trim() == loc&& a.S_FRAME_CODE.Trim() == frame) == 0)
                {
                    var cir = new LocFrameRel { S_LOC_CODE = loc, S_FRAME_CODE = frame };
                    db.Insertable<LocFrameRel>(cir).ExecuteCommand();
                }
            }
            return result;
        }
        /// <summary>
        /// 绑定货位容器表
        /// </summary>
        /// <param name="cntr"></param>
        /// <returns></returns>
        internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName,int S_CK)
        internal static bool BindLocCntrs(string loc, string cntr, string itemCode, string itemName, int S_CK)
        {
            bool result = true;
            List<string> list = new List<string>(cntr.Split(','));
HH.WCS.Mobox3/HH.WCS.Mobox3.XiaoMi/wms/LocationHelper.cs
@@ -469,42 +469,7 @@
            }
            return res;
        }
        /// <summary>
        /// 货位绑定货架 小米
        /// </summary>
        /// <param name="loc"></param>
        /// <param name="cntrs"></param>
        /// <returns></returns>
        public static bool BindingLocHj(string loc, string frame)
        {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var location = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == loc).First();
            try
            {
                var lcrList = db.Queryable<LocCntrRel>().Includes(a => a.Container).Where(a => a.S_LOC_CODE.Trim() == loc).ToList();
                db.BeginTran();
                int count = 0;
                if (lcrList.Count(b => b.S_CNTR_CODE.Trim() == frame) == 0)
                {
                    db.Insertable<LocCntrRel>(new LocCntrRel { S_LOC_CODE = loc, S_FRAME_CODE = frame }).ExecuteCommand();
                    count++;
                }
                location.N_CURRENT_NUM = lcrList.Count + count;
                location.N_LOCK_STATE = 0;
                location.S_LOCK_STATE = "无";
                db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand();
                db.CommitTran();
                res = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                db.RollbackTran();
            }
            return res;
        }
        /// <summary>
        /// 判断逻辑库区是否有可用货位
        /// </summary>