| | |
| | | using (var db = new SqlHelper<object>().GetInstance()) |
| | | { |
| | | Location endloc = new Location(); |
| | | var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == model.start).First(); |
| | | var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); |
| | | if (hwbd!=null) |
| | | { |
| | | endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); |
| | | endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); |
| | | if (endloc?.N_LOCK_STATE != 0) |
| | | { |
| | | result.resultCode = 3; |
| | | result.resultMsg = $"终点库位已锁/不存在"; |
| | | return result; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = 3; |
| | | result.resultMsg = $"托盘找不到货位"; |
| | | result.resultMsg = $"{model.cntr_code}托盘找不到货位"; |
| | | return result; |
| | | } |
| | | |
| | |
| | | if (!string.IsNullOrEmpty(model.cntr_code)) |
| | | { |
| | | |
| | | #region MyRegion |
| | | //var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); |
| | | //var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s=>!list.Contains(s.S_CNTR_CODE)).Select(s=>s.S_LOC_CODE).ToArray(); |
| | | //start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).First(); |
| | | var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); |
| | | if (hwbd!=null) |
| | | { |
| | | end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); |
| | | } |
| | | else |
| | | { |
| | | |
| | | //// 获取所有被占用的容器编码 |
| | | //var usedContainerCodes = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToList(); |
| | | #region MyRegion |
| | | //var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); |
| | | //var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s=>!list.Contains(s.S_CNTR_CODE)).Select(s=>s.S_LOC_CODE).ToArray(); |
| | | //start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).First(); |
| | | |
| | | // 获取未被占用的容器对应的货位编码 |
| | | var availableLocationCodes = db.Queryable<LocCntrRel>() |
| | | .Select(s => s.S_LOC_CODE) |
| | | .ToList(); |
| | | //// 获取所有被占用的容器编码 |
| | | //var usedContainerCodes = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToList(); |
| | | #endregion |
| | | // 获取未被占用的容器对应的货位编码 |
| | | var availableLocationCodes = db.Queryable<LocCntrRel>() |
| | | .Select(s => s.S_LOC_CODE) |
| | | .ToList(); |
| | | |
| | | // 获取第一个可用货位(如果没有则返回null) |
| | | end = db.Queryable<Location>() |
| | | .Where(it => !availableLocationCodes.Contains(it.S_CODE) && it.S_AREA_CODE == "HJQ") |
| | | .ToList().FirstOrDefault(); |
| | | |
| | | if (end!=null) |
| | | { |
| | | TN_Container_Code tN_Container_Code = new TN_Container_Code(); |
| | | tN_Container_Code.S_CNTR_CODE= model.cntr_code; |
| | | tN_Container_Code.S_LOC_CODE = end.S_CODE; |
| | | var sss = db.Insertable<TN_Container_Code>(tN_Container_Code).ExecuteCommand(); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | |
| | | var result = new SimpleResult(); |
| | | |
| | | // var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | using (var db = new SqlHelper<object>().GetInstance()) |
| | | { |
| | | try |
| | | { |
| | | |
| | | |
| | | result.resultMsg = "成功"; |
| | | var start = ""; |
| | | var startloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); |
| | | if (startloc!=null) |
| | | { |
| | | start = startloc.S_LOC_CODE; |
| | | } |
| | | else |
| | | { |
| | | result.resultMsg = "出库单号不能为空"; |
| | | result.resultCode = 1; |
| | | return result; |
| | | } |
| | | result.resultMsg = "成功"; |
| | | result.resultCode = 0; |
| | | if (string.IsNullOrEmpty(model.arrival_no)) |
| | | { |
| | |
| | | //根据不同出库类型 回调sap |
| | | if (po.S_OUT_TYPE == "冲销出库") |
| | | { |
| | | result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); |
| | | result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); |
| | | } |
| | | else |
| | | if (po.S_OUT_TYPE == "出库")//普通出库 |
| | | { |
| | | LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); |
| | | result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); |
| | | result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); |
| | | } |
| | | else if (po.S_OUT_TYPE == "计划外发料出库") |
| | | { |
| | | result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); |
| | | result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); |
| | | } |
| | | else if (po.S_OUT_TYPE == "成本中心出库") |
| | | { |
| | | result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); |
| | | result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start); |
| | | } |
| | | |
| | | //通用接口 对容器货品的删减 和生成回库单 都要用的接口 |
| | | result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE, model.cntr_type); |
| | | result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, start, po.S_OUT_TYPE, model.cntr_type); |
| | | if (result.resultCode == 1) |
| | | { |
| | | { |
| | | return result; |
| | | } |
| | | #region 升降量 |
| | |
| | | |
| | | //回参物料信息 |
| | | List<OutboundRecord> records = new List<OutboundRecord>(); |
| | | var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First(); |
| | | var pzlist = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).ToList(); |
| | | foreach (var item in MaterList) |
| | | { |
| | | var pz=pzlist.Where(s=>s.S_WLBM== item.item_code).FirstOrDefault(); |
| | | // 插入到托盘明细表 |
| | | var cntr = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code).ToList(); |
| | | if (cntr.Count() > 0) |
| | |
| | | else |
| | | { |
| | | db.Updateable(cir).UpdateColumns(it => new { it.F_QTY, it.S_CNTR_TYPE, it.F_ALLOC_QTY, it.T_MODIFY }).ExecuteCommand(); |
| | | //添加回库作业 |
| | | |
| | | } |
| | | } |
| | | else |
| | |
| | | return result; |
| | | } |
| | | Location endloc = new Location(); |
| | | var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE == cntr_code).First(); |
| | | |
| | | LogHelper.Info($"获取托盘信息{cntr_code}容器"); |
| | | var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == cntr_code).First(); |
| | | if (hwbd != null) |
| | | { |
| | | endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE).First(); |
| | | endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); |
| | | if (endloc?.N_LOCK_STATE != 0) |
| | | { |
| | | result.resultCode = 3; |
| | | result.resultMsg = $"终点库位已锁/不存在"; |
| | | return result; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | result.resultCode = 3; |
| | | result.resultMsg = $"托盘找不到货位"; |
| | | result.resultMsg = $"{cntr_code}托盘找不到货位"; |
| | | return result; |
| | | } |
| | | |
| | |
| | | S_START_AREA = startinfo.S_AREA_CODE, |
| | | S_START_WH = startinfo.S_WH_CODE, |
| | | |
| | | S_END_LOC = start, |
| | | S_END_AREA = startinfo.S_AREA_CODE, |
| | | S_END_WH = startinfo.S_AREA_CODE, |
| | | //S_END_LOC = locs?.S_START_LOC, |
| | | //S_END_AREA = locs?.S_START_AREA, |
| | | //S_END_WH = locs?.S_START_WH, |
| | | //S_END_LOC = start, |
| | | //S_END_AREA = startinfo.S_AREA_CODE, |
| | | //S_END_WH = startinfo.S_AREA_CODE, |
| | | S_END_LOC = endloc?.S_CODE, |
| | | S_END_AREA = endloc?.S_AREA_CODE, |
| | | S_END_WH = endloc?.S_WH_CODE, |
| | | |
| | | N_TYPE = 1, |
| | | // S_TYPE = WMSTask.GetTypeStr(1), |
| | |
| | | } |
| | | string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO)); |
| | | var KEY = WCSHelper.Generate13DigitIds(); |
| | | var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First(); |
| | | var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).ToList().FirstOrDefault(); |
| | | if (s_key != null) |
| | | { |
| | | KEY = s_key.S_KEY; |