You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1017 lines
61 KiB
C#
1017 lines
61 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Estsh.Core.Base;
|
|
using Estsh.Core.Wms.IRepositories;
|
|
using Estsh.Core.Wms.IServices;
|
|
using Estsh.Core.Model.Result;
|
|
using Estsh.Core.Services;
|
|
using Estsh.Core.Repositories;
|
|
using Estsh.Core.Models;
|
|
using Newtonsoft.Json.Linq;
|
|
using Estsh.Core.Model.EnumUtil;
|
|
using Dapper;
|
|
|
|
namespace Estsh.Core.Wms.Services
|
|
{
|
|
public class InpdlineService : BaseService<BaseEntity>, IInpdlineService
|
|
{
|
|
private readonly IInpdlineRepository repository;
|
|
public InpdlineService(IInpdlineRepository _repository) : base(_repository)
|
|
{
|
|
repository = _repository;
|
|
}
|
|
|
|
public List<WmsMoveHeader> CheckMoveHeader(string onLine, string cartonno)
|
|
{
|
|
|
|
return repository.CheckMoveHeader(onLine, cartonno);
|
|
}
|
|
|
|
public List<WmsMoveHeader> CheckOnlineMoveHeader(string onLine, string cartonno)
|
|
{
|
|
return repository.CheckOnlineMoveHeader(onLine, cartonno);
|
|
}
|
|
|
|
//大件
|
|
public List<WmsMoveHeader> CheckBulkyMoveHeader(string onLine)
|
|
{
|
|
return repository.CheckBulkyMoveHeader(onLine);
|
|
}
|
|
//大件 领料上线
|
|
public List<WmsMoveHeader> CheckBulkyOnlineMoveHeader(string onLine, string cartonno)
|
|
{
|
|
return repository.CheckBulkyOnlineMoveHeader(onLine, cartonno);
|
|
}
|
|
|
|
public List<WmsMoveDetail> CheckMoveDetail(string orderNo)
|
|
{
|
|
return repository.CheckMoveDetail(orderNo, (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
}
|
|
|
|
public string UpdatePick(string loginId, string orderNo, string cartonNo, string isSplit)
|
|
{
|
|
List<string> sqlStrings = new List<string>();
|
|
List<DynamicParameters> parameterList = new List<DynamicParameters>();
|
|
StringBuilder stringBuilder = new StringBuilder(1024);
|
|
DynamicParameters stringparameters = new DynamicParameters();
|
|
|
|
WmsRack wmsRack = repository.GetWmsRackInfo(cartonNo);
|
|
if (wmsRack != null)
|
|
{
|
|
List<WmsRackPackage> wmsRackPackages = repository.GetCarrierByName(cartonNo);
|
|
if (wmsRackPackages.Count > 0)
|
|
{
|
|
foreach (WmsRackPackage item in wmsRackPackages)
|
|
{
|
|
string rackCartonNo = item.CartonNo;
|
|
//配料列表
|
|
List<WmsMoveDetail> details = repository.CheckMoveDetail(orderNo, (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
//扫描到的箱条码
|
|
SysStock Stock = repository.GetCartonInfo(rackCartonNo);
|
|
|
|
if (Stock == null)
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码不存在,请检查!";
|
|
}
|
|
if (Stock.Enabled.Equals("N"))
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码已被冻结,请检查!";
|
|
}
|
|
else if (Stock.Status != (int)WmsEnumUtil.StockStatus.INSTOCKED)
|
|
{
|
|
return "[" + rackCartonNo + "]:是" + Stock.StockStatus + "状态,请检查!";
|
|
}
|
|
|
|
List<WmsMoveDetail> ifScan = details.Where(a => a.PartId == Stock.PartId).ToList();
|
|
if (ifScan.Count == 0)
|
|
{
|
|
return "[" + rackCartonNo + "]:不在领料单中,请检查!";
|
|
}
|
|
if (ifScan[0].PickQty >= ifScan[0].Qty)
|
|
{
|
|
return "[" + ifScan[0].PartNo + "]:已完成配料!";
|
|
}
|
|
|
|
//修改移库主表 30 处理中
|
|
StringBuilder updateString = new StringBuilder(1024);
|
|
updateString.Append(" update wms_move_header set order_status=@order_status,update_userid=@update_userid,update_time=@update_time where order_no=@order_no ");
|
|
DynamicParameters updateStringparameters = new DynamicParameters();
|
|
updateStringparameters.Add("@order_status", (int)WmsEnumUtil.MoveOrderStatus.PROCESSING);
|
|
updateStringparameters.Add("@order_no", ifScan[0].OrderNo);
|
|
updateStringparameters.Add("@update_userid", loginId);
|
|
updateStringparameters.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString.ToString());
|
|
parameterList.Add(updateStringparameters);
|
|
|
|
//修改移库明细表 30 处理中
|
|
StringBuilder updateString2 = new StringBuilder(1024);
|
|
updateString2.Append(@"update wms_move_detail set pick_qty = pick_qty + @pick_qty, item_status=@item_status,update_userid=@update_userid,update_time=@update_time where ruid=@ruid ");
|
|
DynamicParameters updateStringparameters2 = new DynamicParameters();
|
|
updateStringparameters2.Add("@item_status", (int)WmsEnumUtil.MoveOrderDetailStatus.BATCHING);
|
|
updateStringparameters2.Add("@ruid", ifScan[0].Ruid);
|
|
updateStringparameters2.Add("@pick_qty", Stock.Qty);
|
|
updateStringparameters2.Add("@update_userid", loginId);
|
|
updateStringparameters2.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString2.ToString());
|
|
parameterList.Add(updateStringparameters2);
|
|
|
|
|
|
//修改条码表 60 配料中
|
|
StringBuilder updateString5 = new StringBuilder(1024);
|
|
updateString5.Append("update sys_stock set status=@status,update_userid=@update_userid,update_time=@update_time where carton_no= @carton_no ");
|
|
DynamicParameters updateStringparameters5 = new DynamicParameters();
|
|
updateStringparameters5.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters5.Add("@status", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
updateStringparameters5.Add("@update_userid", loginId);
|
|
updateStringparameters5.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString5.ToString());
|
|
parameterList.Add(updateStringparameters5);
|
|
|
|
|
|
//插入 wms_move_sn 条码表
|
|
StringBuilder updateString3 = new StringBuilder(1024);
|
|
updateString3.Append(@"INSERT INTO [dbo].[wms_move_sn]
|
|
([order_no]
|
|
,[item_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[carton_no]
|
|
,[qty]
|
|
,[unit]
|
|
,[status]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[enabled]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[guid])
|
|
VALUES (@order_no,@item_no,@part_id,@part_no,@part_spec,@carton_no,@qty,@unit,@status,@factory_id,@factory_code,@enabled,@create_userid,@create_time,@update_userid,@update_time,@guid)");
|
|
DynamicParameters updateStringparameters3 = new DynamicParameters();
|
|
updateStringparameters3.Add("@order_no", ifScan[0].OrderNo);
|
|
updateStringparameters3.Add("@item_no", ifScan[0].ItemNo);
|
|
updateStringparameters3.Add("@part_id", ifScan[0].PartId);
|
|
updateStringparameters3.Add("@part_no", ifScan[0].PartNo);
|
|
updateStringparameters3.Add("@part_spec", ifScan[0].PartSpec);
|
|
updateStringparameters3.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters3.Add("@qty", Stock.Qty);
|
|
updateStringparameters3.Add("@unit", Stock.Unit);
|
|
updateStringparameters3.Add("@status", (int)WmsEnumUtil.MoveOrderSnStatus.BATCHED);
|
|
updateStringparameters3.Add("@factory_id", ifScan[0].FactoryId);
|
|
updateStringparameters3.Add("@factory_code", ifScan[0].FactoryCode);
|
|
updateStringparameters3.Add("@enabled", "Y");
|
|
updateStringparameters3.Add("@update_userid", loginId);
|
|
updateStringparameters3.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters3.Add("@create_userid", loginId);
|
|
updateStringparameters3.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters3.Add("@guid", Guid.NewGuid());
|
|
|
|
sqlStrings.Add(updateString3.ToString());
|
|
parameterList.Add(updateStringparameters3);
|
|
|
|
|
|
//新增 sys_stock_trans 事务表
|
|
StringBuilder updateString4 = new StringBuilder(1024);
|
|
updateString4.Append(@" INSERT INTO[dbo].[sys_stock_trans]
|
|
([trans_code]
|
|
,[carton_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[src_locate_id]
|
|
,[src_locate_name]
|
|
,[dest_locate_id]
|
|
,[dest_locate_name]
|
|
,[old_qty]
|
|
,[new_qty]
|
|
,[trans_qty]
|
|
,[old_status]
|
|
,[new_status]
|
|
,[old_qms_status]
|
|
,[new_qms_status]
|
|
,[unit]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[src_erp_warehouse]
|
|
,[dest_erp_warehouse]
|
|
,[src_warehouse_id]
|
|
,[src_warehouse_name]
|
|
,[dest_warehouse_id]
|
|
,[dest_warehouse_name]
|
|
,[src_zone_id]
|
|
,[src_zone_name]
|
|
,[dest_zone_id]
|
|
,[dest_zone_name]
|
|
,[enabled]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[guid],ref_order_no)
|
|
VALUES (@trans_code,@carton_no,@part_id,@part_no,@part_spec,@src_locate_id ,@src_locate_name ,@dest_locate_id ,@dest_locate_name ,@old_qty
|
|
,@new_qty ,@trans_qty ,@old_status ,@new_status ,@old_qms_status ,@new_qms_status ,@unit ,@factory_id ,@factory_code ,@src_erp_warehouse ,@dest_erp_warehouse ,@src_warehouse_id ,@src_warehouse_name ,@dest_warehouse_id ,@dest_warehouse_name ,@src_zone_id ,@src_zone_name ,@dest_zone_id ,@dest_zone_name ,@enabled ,@update_userid ,@update_time ,@create_userid ,@create_time ,@guid,@ref_order_no )");
|
|
|
|
DynamicParameters updateStringparameters4 = new DynamicParameters();
|
|
updateStringparameters4.Add("@trans_code", (int)WmsEnumUtil.TransType.PRODUCTION_PICK);
|
|
updateStringparameters4.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters4.Add("@part_id", Stock.PartId);
|
|
updateStringparameters4.Add("@part_no", Stock.PartNo);
|
|
updateStringparameters4.Add("@part_spec", Stock.PartSpec);
|
|
updateStringparameters4.Add("@src_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@src_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@dest_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@dest_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@old_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@new_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@trans_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@old_status", Stock.Status);
|
|
updateStringparameters4.Add("@new_status", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
updateStringparameters4.Add("@old_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@new_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@unit", Stock.Unit);
|
|
updateStringparameters4.Add("@factory_id", Stock.FactoryId);
|
|
updateStringparameters4.Add("@factory_code", Stock.FactoryCode);
|
|
updateStringparameters4.Add("@src_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@dest_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@src_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@src_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@dest_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@dest_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@src_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@src_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@dest_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@dest_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@enabled", Stock.Enabled);
|
|
updateStringparameters4.Add("@update_userid", loginId);
|
|
updateStringparameters4.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@create_userid", loginId);
|
|
updateStringparameters4.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@guid", Guid.NewGuid());
|
|
updateStringparameters4.Add("@ref_order_no", orderNo);
|
|
|
|
sqlStrings.Add(updateString4.ToString());
|
|
parameterList.Add(updateStringparameters4);
|
|
|
|
}
|
|
|
|
stringBuilder = new StringBuilder();//台车更新60 已配料
|
|
stringBuilder.Append("update sys_stock set status=60 where carton_no= @TrayNo and enabled='Y'");
|
|
stringparameters = new DynamicParameters();
|
|
stringparameters.Add("@TrayNo", cartonNo);//台车
|
|
|
|
sqlStrings.Add(stringBuilder.ToString());
|
|
parameterList.Add(stringparameters);
|
|
|
|
int retTranNum = repository.SQLTransaction(sqlStrings, parameterList);
|
|
if (retTranNum > 0)
|
|
{
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "操作失败,请检查!";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return "[" + cartonNo + "]:该台车未绑定条码,请检查!";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//配料列表
|
|
List<WmsMoveDetail> details = repository.CheckMoveDetail(orderNo, (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
//扫描到的箱条码
|
|
SysStock Stock = repository.GetCartonInfo(cartonNo);
|
|
|
|
if (Stock == null)
|
|
{
|
|
return "[" + cartonNo + "]:箱条码不存在,请检查!";
|
|
}
|
|
if (Stock.Enabled.Equals("N"))
|
|
{
|
|
return "[" + cartonNo + "]:箱条码已被冻结,请检查!";
|
|
}
|
|
else if (Stock.Status != (int)WmsEnumUtil.StockStatus.INSTOCKED)
|
|
{
|
|
return "[" + cartonNo + "]:是" + Stock.StockStatus + "状态,请检查!";
|
|
}
|
|
|
|
List<WmsMoveDetail> ifScan = details.Where(a => a.PartId == Stock.PartId).ToList();
|
|
if (ifScan.Count == 0)
|
|
{
|
|
return "[" + cartonNo + "]:不在领料单中,请检查!";
|
|
}
|
|
if (ifScan[0].PickQty >= ifScan[0].Qty)
|
|
{
|
|
return "[" + ifScan[0].PartNo + "]:已完成配料!";
|
|
}
|
|
|
|
//修改移库主表 30 处理中
|
|
StringBuilder updateString = new StringBuilder(1024);
|
|
updateString.Append(" update wms_move_header set order_status=@order_status,update_userid=@update_userid,update_time=@update_time where order_no=@order_no ");
|
|
DynamicParameters updateStringparameters = new DynamicParameters();
|
|
updateStringparameters.Add("@order_status", (int)WmsEnumUtil.MoveOrderStatus.PROCESSING);
|
|
updateStringparameters.Add("@order_no", ifScan[0].OrderNo);
|
|
updateStringparameters.Add("@update_userid", loginId);
|
|
updateStringparameters.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString.ToString());
|
|
parameterList.Add(updateStringparameters);
|
|
|
|
//修改移库明细表 30 处理中
|
|
StringBuilder updateString2 = new StringBuilder(1024);
|
|
updateString2.Append(@"update wms_move_detail set pick_qty = pick_qty + @pick_qty, item_status=@item_status,update_userid=@update_userid,update_time=@update_time where ruid=@ruid ");
|
|
DynamicParameters updateStringparameters2 = new DynamicParameters();
|
|
updateStringparameters2.Add("@item_status", (int)WmsEnumUtil.MoveOrderDetailStatus.BATCHING);
|
|
updateStringparameters2.Add("@ruid", ifScan[0].Ruid);
|
|
updateStringparameters2.Add("@pick_qty", Stock.Qty);
|
|
updateStringparameters2.Add("@update_userid", loginId);
|
|
updateStringparameters2.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString2.ToString());
|
|
parameterList.Add(updateStringparameters2);
|
|
|
|
|
|
//修改条码表 60 配料中
|
|
StringBuilder updateString5 = new StringBuilder(1024);
|
|
updateString5.Append("update sys_stock set status=@status,update_userid=@update_userid,update_time=@update_time where carton_no= @carton_no ");
|
|
DynamicParameters updateStringparameters5 = new DynamicParameters();
|
|
updateStringparameters5.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters5.Add("@status", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
updateStringparameters5.Add("@update_userid", loginId);
|
|
updateStringparameters5.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString5.ToString());
|
|
parameterList.Add(updateStringparameters5);
|
|
|
|
|
|
//插入 wms_move_sn 条码表
|
|
StringBuilder updateString3 = new StringBuilder(1024);
|
|
updateString3.Append(@"INSERT INTO [dbo].[wms_move_sn]
|
|
([order_no]
|
|
,[item_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[carton_no]
|
|
,[qty]
|
|
,[unit]
|
|
,[status]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[enabled]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[guid])
|
|
VALUES (@order_no,@item_no,@part_id,@part_no,@part_spec,@carton_no,@qty,@unit,@status,@factory_id,@factory_code,@enabled,@create_userid,@create_time,@update_userid,@update_time,@guid)");
|
|
DynamicParameters updateStringparameters3 = new DynamicParameters();
|
|
updateStringparameters3.Add("@order_no", ifScan[0].OrderNo);
|
|
updateStringparameters3.Add("@item_no", ifScan[0].ItemNo);
|
|
updateStringparameters3.Add("@part_id", ifScan[0].PartId);
|
|
updateStringparameters3.Add("@part_no", ifScan[0].PartNo);
|
|
updateStringparameters3.Add("@part_spec", ifScan[0].PartSpec);
|
|
updateStringparameters3.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters3.Add("@qty", Stock.Qty);
|
|
updateStringparameters3.Add("@unit", Stock.Unit);
|
|
updateStringparameters3.Add("@status", (int)WmsEnumUtil.MoveOrderSnStatus.BATCHED);
|
|
updateStringparameters3.Add("@factory_id", ifScan[0].FactoryId);
|
|
updateStringparameters3.Add("@factory_code", ifScan[0].FactoryCode);
|
|
updateStringparameters3.Add("@enabled", "Y");
|
|
updateStringparameters3.Add("@update_userid", loginId);
|
|
updateStringparameters3.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters3.Add("@create_userid", loginId);
|
|
updateStringparameters3.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters3.Add("@guid", Guid.NewGuid());
|
|
|
|
sqlStrings.Add(updateString3.ToString());
|
|
parameterList.Add(updateStringparameters3);
|
|
|
|
|
|
//新增 sys_stock_trans 事务表
|
|
StringBuilder updateString4 = new StringBuilder(1024);
|
|
updateString4.Append(@" INSERT INTO[dbo].[sys_stock_trans]
|
|
([trans_code]
|
|
,[carton_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[src_locate_id]
|
|
,[src_locate_name]
|
|
,[dest_locate_id]
|
|
,[dest_locate_name]
|
|
,[old_qty]
|
|
,[new_qty]
|
|
,[trans_qty]
|
|
,[old_status]
|
|
,[new_status]
|
|
,[old_qms_status]
|
|
,[new_qms_status]
|
|
,[unit]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[src_erp_warehouse]
|
|
,[dest_erp_warehouse]
|
|
,[src_warehouse_id]
|
|
,[src_warehouse_name]
|
|
,[dest_warehouse_id]
|
|
,[dest_warehouse_name]
|
|
,[src_zone_id]
|
|
,[src_zone_name]
|
|
,[dest_zone_id]
|
|
,[dest_zone_name]
|
|
,[enabled]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[guid],ref_order_no)
|
|
VALUES (@trans_code,@carton_no,@part_id,@part_no,@part_spec,@src_locate_id ,@src_locate_name ,@dest_locate_id ,@dest_locate_name ,@old_qty
|
|
,@new_qty ,@trans_qty ,@old_status ,@new_status ,@old_qms_status ,@new_qms_status ,@unit ,@factory_id ,@factory_code ,@src_erp_warehouse ,@dest_erp_warehouse ,@src_warehouse_id ,@src_warehouse_name ,@dest_warehouse_id ,@dest_warehouse_name ,@src_zone_id ,@src_zone_name ,@dest_zone_id ,@dest_zone_name ,@enabled ,@update_userid ,@update_time ,@create_userid ,@create_time ,@guid ,@ref_order_no)");
|
|
|
|
DynamicParameters updateStringparameters4 = new DynamicParameters();
|
|
updateStringparameters4.Add("@trans_code", (int)WmsEnumUtil.TransType.PRODUCTION_PICK);
|
|
updateStringparameters4.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters4.Add("@part_id", Stock.PartId);
|
|
updateStringparameters4.Add("@part_no", Stock.PartNo);
|
|
updateStringparameters4.Add("@part_spec", Stock.PartSpec);
|
|
updateStringparameters4.Add("@src_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@src_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@dest_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@dest_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@old_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@new_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@trans_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@old_status", Stock.Status);
|
|
updateStringparameters4.Add("@new_status", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
updateStringparameters4.Add("@old_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@new_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@unit", Stock.Unit);
|
|
updateStringparameters4.Add("@factory_id", Stock.FactoryId);
|
|
updateStringparameters4.Add("@factory_code", Stock.FactoryCode);
|
|
updateStringparameters4.Add("@src_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@dest_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@src_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@src_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@dest_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@dest_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@src_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@src_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@dest_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@dest_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@enabled", Stock.Enabled);
|
|
updateStringparameters4.Add("@update_userid", loginId);
|
|
updateStringparameters4.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@create_userid", loginId);
|
|
updateStringparameters4.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@guid", Guid.NewGuid());
|
|
updateStringparameters4.Add("@ref_order_no", orderNo);
|
|
|
|
sqlStrings.Add(updateString4.ToString());
|
|
parameterList.Add(updateStringparameters4);
|
|
}
|
|
|
|
int retNum = repository.SQLTransaction(sqlStrings, parameterList);
|
|
if (retNum > 0)
|
|
{
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "操作失败,请检查!";
|
|
}
|
|
}
|
|
|
|
public string BatchingCompleted(string loginId, string orderNo)
|
|
{
|
|
return repository.BatchingCompleted(loginId, orderNo);
|
|
}
|
|
|
|
public SetObjectDetail CheckMaterialSplit(string cartonNo, int splitNum, string loginId, int splitCount)
|
|
{
|
|
|
|
SetObjectDetail det = new SetObjectDetail();
|
|
//需要拆分的箱条码信息
|
|
List<SysStock> MaterialInfo = repository.GetMaterialInfo(cartonNo);
|
|
if (MaterialInfo.Count == 0)
|
|
{
|
|
det.type = "NO";
|
|
det.message = "[" + cartonNo + "]:箱条码不存在,请检查!";
|
|
return det;
|
|
}
|
|
if (MaterialInfo[0].Enabled.Equals("N"))
|
|
{
|
|
det.type = "NO";
|
|
det.message = "[" + cartonNo + "]:箱条码已被冻结,请检查!";
|
|
return det;
|
|
}
|
|
if (MaterialInfo[0].Qty < 1)
|
|
{
|
|
det.type = "NO";
|
|
det.message = "[" + cartonNo + "]:箱条码数量不足,无法拆分!";
|
|
return det;
|
|
}
|
|
|
|
|
|
List<SysStock> NewStock = repository.CheckMaterialSplit(MaterialInfo, splitNum, loginId, splitCount);
|
|
if (NewStock == null || NewStock.Count == 0)
|
|
{
|
|
det.type = "NO";
|
|
det.message = "执行失败!请重试!";
|
|
}
|
|
else
|
|
{
|
|
det.type = "OK";
|
|
det.wmsObjectDetail = NewStock.ConvertAll(s => (object)s);
|
|
}
|
|
return det;
|
|
}
|
|
|
|
public List<WmsMoveDetail> CheckMoveDetail2(string orderNo, string carton_no)
|
|
{
|
|
return repository.CheckMoveDetail2(orderNo, (int)WmsEnumUtil.StockStatus.BATCHED, carton_no);
|
|
}
|
|
|
|
public string CheckLocateStatus(string locate, string orderNo)
|
|
{
|
|
List<SysLocate> locateInfo = repository.GetLocateInfo(locate);
|
|
if (locateInfo == null || locateInfo.Count == 0)
|
|
{
|
|
return "[" + locate + "]:库位不存在,请检查!";
|
|
}
|
|
|
|
if (locateInfo[0].LocateType != (int)WmsEnumUtil.LocateType.LINE_LOCATE)
|
|
{
|
|
return "[" + locate + "]:库位不是线边库,请检查!";
|
|
}
|
|
|
|
//已使用库容
|
|
List<SysStock> s = repository.GetLocateCapacity(locateInfo[0].LocateId.ToString());
|
|
if (locateInfo[0].LocateCapacity <= s[0].Qty)
|
|
{
|
|
return "[" + locate + "]:线边库已满,请检查!";
|
|
}
|
|
|
|
//List<WmsMoveDetail> details = repository.CheckMoveDetail(orderNo, (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
//if (locateInfo[0].ZoneId == details[0].DestZoneId && locateInfo[0].WarehouseId == details[0].DestWarehouseId && locateInfo[0].ErpWarehouse == details[0].DestErpWarehouse)
|
|
//{
|
|
// return "OK";
|
|
//}
|
|
//else
|
|
//{
|
|
// return "[" + locate + "]:库位与订单目标库位不匹配,请检查!";
|
|
//}
|
|
return "OK";
|
|
|
|
}
|
|
|
|
public string UpdatePickOnline(string loginId, string orderNo, string cartonNo, string locate)
|
|
{
|
|
List<string> sqlStrings = new List<string>();
|
|
List<DynamicParameters> parameterList = new List<DynamicParameters>();
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
DynamicParameters stringparameters = new DynamicParameters();
|
|
|
|
WmsRack wmsRack = repository.GetWmsRackInfo(cartonNo);
|
|
if (wmsRack != null)
|
|
{
|
|
List<WmsRackPackage> wmsRackPackages = repository.GetCarrierByName(cartonNo);
|
|
if (wmsRackPackages.Count > 0)
|
|
{
|
|
foreach (WmsRackPackage item in wmsRackPackages)
|
|
{
|
|
string rackCartonNo = item.CartonNo;
|
|
//上料列表
|
|
List<WmsMoveSn> details = repository.GetMoveSN(orderNo);
|
|
//扫描到的箱条码
|
|
SysStock Stock = repository.GetCartonInfo(rackCartonNo);
|
|
//库位
|
|
List<SysLocate> locateInfo = repository.GetLocateInfo(locate);
|
|
if (Stock == null)
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码不存在,请检查!";
|
|
}
|
|
if (Stock.Enabled.Equals("N"))
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码已被冻结,请检查!";
|
|
}
|
|
|
|
if (Stock.Status == (int)WmsEnumUtil.StockStatus.ONLINED)
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码已完成上线!";
|
|
}
|
|
|
|
if (Stock.Status != (int)WmsEnumUtil.StockStatus.BATCHED)
|
|
{
|
|
return "[" + rackCartonNo + "]:台车条码不处于配料状态!";
|
|
}
|
|
|
|
List<WmsMoveSn> ifOnline = details.Where(a => a.CartonNo == rackCartonNo).ToList();
|
|
if (ifOnline.Count == 0)
|
|
{
|
|
return "[" + rackCartonNo + "]:不在领料单中,请检查!";
|
|
}
|
|
|
|
|
|
//修改移库明细表 已收数,
|
|
StringBuilder updateString2 = new StringBuilder(1024);
|
|
updateString2.Append(@"update wms_move_detail set out_qty = out_qty + @out_qty,update_userid=@update_userid,update_time=@update_time,item_status = case when qty <= out_qty + @out_qty then @item_status else item_status end where order_no=@order_no and part_id=@part_id ");
|
|
DynamicParameters updateStringparameters2 = new DynamicParameters();
|
|
updateStringparameters2.Add("@order_no", orderNo);
|
|
updateStringparameters2.Add("@part_id", Stock.PartId);
|
|
updateStringparameters2.Add("@out_qty", Stock.Qty);
|
|
updateStringparameters2.Add("@item_status", (int)WmsEnumUtil.MoveOrderDetailStatus.COMPLETED);
|
|
updateStringparameters2.Add("@update_userid", loginId);
|
|
updateStringparameters2.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString2.ToString());
|
|
parameterList.Add(updateStringparameters2);
|
|
|
|
//修改移库条码表 40 已上线
|
|
StringBuilder updateString = new StringBuilder(1024);
|
|
updateString.Append(" update wms_move_sn set status=@status,update_userid=@update_userid,update_time=@update_time where carton_no=@carton_no ");
|
|
DynamicParameters updateStringparameters = new DynamicParameters();
|
|
updateStringparameters.Add("@status", (int)WmsEnumUtil.MoveOrderSnStatus.ONLINED);
|
|
updateStringparameters.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters.Add("@update_userid", loginId);
|
|
updateStringparameters.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString.ToString());
|
|
parameterList.Add(updateStringparameters);
|
|
|
|
//修改条码表 70 已上线
|
|
StringBuilder updateString5 = new StringBuilder(1024);
|
|
updateString5.Append("update sys_stock set status=@status,zone_id=@zone_id,zone_name=@zone_name,erp_warehouse=@erp_warehouse,update_userid=@update_userid,update_time=@update_time,locate_id=@locate_id,locate_name=@locate_name where carton_no= @carton_no ");
|
|
DynamicParameters updateStringparameters5 = new DynamicParameters();
|
|
updateStringparameters5.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters5.Add("@status", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
updateStringparameters5.Add("@locate_id", locateInfo[0].LocateId);
|
|
updateStringparameters5.Add("@locate_name", locateInfo[0].LocateName);
|
|
updateStringparameters5.Add("@zone_id", locateInfo[0].ZoneId);
|
|
updateStringparameters5.Add("@zone_name", locateInfo[0].ZoneName);
|
|
updateStringparameters5.Add("@erp_warehouse", locateInfo[0].ErpWarehouse);
|
|
updateStringparameters5.Add("@update_userid", loginId);
|
|
updateStringparameters5.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString5.ToString());
|
|
parameterList.Add(updateStringparameters5);
|
|
|
|
|
|
//新增 sys_stock_trans 事务表
|
|
StringBuilder updateString4 = new StringBuilder(1024);
|
|
updateString4.Append(@" INSERT INTO[dbo].[sys_stock_trans]
|
|
([trans_code]
|
|
,[carton_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[src_locate_id]
|
|
,[src_locate_name]
|
|
,[dest_locate_id]
|
|
,[dest_locate_name]
|
|
,[old_qty]
|
|
,[new_qty]
|
|
,[trans_qty]
|
|
,[old_status]
|
|
,[new_status]
|
|
,[old_qms_status]
|
|
,[new_qms_status]
|
|
,[unit]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[src_erp_warehouse]
|
|
,[dest_erp_warehouse]
|
|
,[src_warehouse_id]
|
|
,[src_warehouse_name]
|
|
,[dest_warehouse_id]
|
|
,[dest_warehouse_name]
|
|
,[src_zone_id]
|
|
,[src_zone_name]
|
|
,[dest_zone_id]
|
|
,[dest_zone_name]
|
|
,[enabled]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[guid],ref_order_no)
|
|
VALUES (@trans_code,@carton_no,@part_id,@part_no,@part_spec,@src_locate_id ,@src_locate_name ,@dest_locate_id ,@dest_locate_name ,@old_qty
|
|
,@new_qty ,@trans_qty ,@old_status ,@new_status ,@old_qms_status ,@new_qms_status ,@unit ,@factory_id ,@factory_code ,@src_erp_warehouse ,@dest_erp_warehouse ,@src_warehouse_id ,@src_warehouse_name ,@dest_warehouse_id ,@dest_warehouse_name ,@src_zone_id ,@src_zone_name ,@dest_zone_id ,@dest_zone_name ,@enabled ,@update_userid ,@update_time ,@create_userid ,@create_time ,@guid ,@ref_order_no)");
|
|
|
|
DynamicParameters updateStringparameters4 = new DynamicParameters();
|
|
updateStringparameters4.Add("@trans_code", (int)WmsEnumUtil.TransType.PICK_ONLINE);
|
|
updateStringparameters4.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters4.Add("@part_id", Stock.PartId);
|
|
updateStringparameters4.Add("@part_no", Stock.PartNo);
|
|
updateStringparameters4.Add("@part_spec", Stock.PartSpec);
|
|
updateStringparameters4.Add("@src_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@src_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@dest_locate_id", locateInfo[0].LocateId);
|
|
updateStringparameters4.Add("@dest_locate_name", locateInfo[0].LocateName);
|
|
updateStringparameters4.Add("@old_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@new_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@trans_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@old_status", Stock.Status);
|
|
updateStringparameters4.Add("@new_status", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
updateStringparameters4.Add("@old_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@new_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@unit", Stock.Unit);
|
|
updateStringparameters4.Add("@factory_id", Stock.FactoryId);
|
|
updateStringparameters4.Add("@factory_code", Stock.FactoryCode);
|
|
updateStringparameters4.Add("@src_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@dest_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@src_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@src_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@dest_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@dest_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@src_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@src_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@dest_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@dest_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@enabled", Stock.Enabled);
|
|
updateStringparameters4.Add("@update_userid", loginId);
|
|
updateStringparameters4.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@create_userid", loginId);
|
|
updateStringparameters4.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@guid", Guid.NewGuid());
|
|
updateStringparameters4.Add("@ref_order_no", orderNo);
|
|
|
|
sqlStrings.Add(updateString4.ToString());
|
|
parameterList.Add(updateStringparameters4);
|
|
|
|
stringBuilder = new StringBuilder();//解绑台车
|
|
stringBuilder.Append("update wms_rack_package set enabled='N' where carton_no= @cartonNo and enabled='Y'");
|
|
stringparameters = new DynamicParameters();
|
|
stringparameters.Add("@cartonNo", Stock.CartonNo);
|
|
|
|
sqlStrings.Add(stringBuilder.ToString());
|
|
parameterList.Add(stringparameters);
|
|
|
|
|
|
}
|
|
|
|
stringBuilder = new StringBuilder();//台车更新70 已上线
|
|
stringBuilder.Append("update sys_stock set status=70 where carton_no= @TrayNo and enabled='Y'");
|
|
stringparameters = new DynamicParameters();
|
|
stringparameters.Add("@TrayNo", cartonNo);//台车
|
|
|
|
sqlStrings.Add(stringBuilder.ToString());
|
|
parameterList.Add(stringparameters);
|
|
int rettranNum = repository.SQLTransaction(sqlStrings, parameterList);
|
|
if (rettranNum > 0)
|
|
{
|
|
List<WmsMoveDetail> WmsMoveDetail = repository.GetWmsMoveDetailByOrderNo(orderNo);
|
|
if (WmsMoveDetail.Sum(a => a.ItemStatus) == (int)WmsEnumUtil.MoveOrderDetailStatus.COMPLETED * WmsMoveDetail.Count)
|
|
{
|
|
repository.UpdateMoveDetailByOrderNo(orderNo, loginId);//修改移库条码表 40 已上线
|
|
}
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "操作失败,请检查!";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return "[" + cartonNo + "]:该台车未绑定条码,请检查!";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//上料列表
|
|
List<WmsMoveSn> details = repository.GetMoveSN(orderNo);
|
|
//扫描到的箱条码
|
|
SysStock Stock = repository.GetCartonInfo(cartonNo);
|
|
//库位
|
|
List<SysLocate> locateInfo = repository.GetLocateInfo(locate);
|
|
|
|
//库位与零件关系
|
|
List<SysLocatePart> locatePart = repository.GetLocatePart(locate);
|
|
|
|
if (Stock == null)
|
|
{
|
|
return "[" + cartonNo + "]:条码不存在,请检查!";
|
|
}
|
|
if (Stock.Enabled.Equals("N"))
|
|
{
|
|
return "[" + cartonNo + "]:条码已被冻结,请检查!";
|
|
}
|
|
|
|
if (Stock.Status == (int)WmsEnumUtil.StockStatus.ONLINED)
|
|
{
|
|
return "[" + cartonNo + "]:条码已完成上线!";
|
|
}
|
|
|
|
if (Stock.Status != (int)WmsEnumUtil.StockStatus.BATCHED)
|
|
{
|
|
return "[" + cartonNo + "]:条码不处于配料状态!";
|
|
}
|
|
|
|
List<WmsMoveSn> ifOnline = details.Where(a => a.CartonNo == cartonNo).ToList();
|
|
if (ifOnline.Count == 0)
|
|
{
|
|
return "[" + cartonNo + "]:不在领料单中,请检查!";
|
|
}
|
|
if (locatePart.Count > 0)
|
|
{
|
|
List<SysLocatePart> getLocatePart = locatePart.Where(a => a.PartId == Stock.PartId).ToList();
|
|
if (getLocatePart.Count == 0)
|
|
{
|
|
return "[" + cartonNo + "]:库位绑定零件与条码零件不一致,请检查!";
|
|
}
|
|
}
|
|
|
|
List<WmsMoveDetail> GetDetail = repository.GetWmsMoveDetailByOrderNo(orderNo);
|
|
//对订单行操作时,此行操作完毕就修改 is_safety_pull 为0
|
|
List<WmsMoveDetail> GetDetailByOrderNo = GetDetail.Where(a => a.PartId == Stock.PartId).ToList();
|
|
if (GetDetailByOrderNo[0].OutQty + Stock.Qty == GetDetailByOrderNo[0].PickQty)
|
|
{
|
|
StringBuilder updateGetDetail = new StringBuilder(1024);
|
|
updateGetDetail.Append(@"update sys_locate_part set is_safety_pull= 0 where safety_pull_order=@order_no and part_id=@part_id ");
|
|
DynamicParameters updateGetDetailParameters = new DynamicParameters();
|
|
updateGetDetailParameters.Add("@order_no", orderNo);
|
|
updateGetDetailParameters.Add("@part_id", Stock.PartId);
|
|
|
|
sqlStrings.Add(updateGetDetail.ToString());
|
|
parameterList.Add(updateGetDetailParameters);
|
|
}
|
|
//修改移库明细表 已收数,
|
|
StringBuilder updateString2 = new StringBuilder(1024);
|
|
updateString2.Append(@"update wms_move_detail set out_qty = out_qty + @out_qty,update_userid=@update_userid,update_time=@update_time,item_status = case when qty <= out_qty + @out_qty then @item_status else item_status end where order_no=@order_no and part_id=@part_id ");
|
|
DynamicParameters updateStringparameters2 = new DynamicParameters();
|
|
updateStringparameters2.Add("@order_no", orderNo);
|
|
updateStringparameters2.Add("@part_id", Stock.PartId);
|
|
updateStringparameters2.Add("@out_qty", Stock.Qty);
|
|
updateStringparameters2.Add("@item_status", (int)WmsEnumUtil.MoveOrderDetailStatus.COMPLETED);
|
|
updateStringparameters2.Add("@update_userid", loginId);
|
|
updateStringparameters2.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString2.ToString());
|
|
parameterList.Add(updateStringparameters2);
|
|
|
|
|
|
//修改移库条码表 40 已上线
|
|
StringBuilder updateString = new StringBuilder(1024);
|
|
updateString.Append(" update wms_move_sn set status=@status,update_userid=@update_userid,update_time=@update_time where carton_no=@carton_no ");
|
|
DynamicParameters updateStringparameters = new DynamicParameters();
|
|
updateStringparameters.Add("@status", (int)WmsEnumUtil.MoveOrderSnStatus.ONLINED);
|
|
updateStringparameters.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters.Add("@update_userid", loginId);
|
|
updateStringparameters.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString.ToString());
|
|
parameterList.Add(updateStringparameters);
|
|
|
|
//修改条码表 70 已上线
|
|
StringBuilder updateString5 = new StringBuilder(1024);
|
|
updateString5.Append("update sys_stock set status=@status,zone_id=@zone_id,zone_name=@zone_name,erp_warehouse=@erp_warehouse,update_userid=@update_userid,update_time=@update_time,locate_id=@locate_id,locate_name=@locate_name where carton_no= @carton_no ");
|
|
DynamicParameters updateStringparameters5 = new DynamicParameters();
|
|
updateStringparameters5.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters5.Add("@status", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
updateStringparameters5.Add("@locate_id", locateInfo[0].LocateId);
|
|
updateStringparameters5.Add("@locate_name", locateInfo[0].LocateName);
|
|
updateStringparameters5.Add("@zone_id", locateInfo[0].ZoneId);
|
|
updateStringparameters5.Add("@zone_name", locateInfo[0].ZoneName);
|
|
updateStringparameters5.Add("@erp_warehouse", locateInfo[0].ErpWarehouse);
|
|
updateStringparameters5.Add("@update_userid", loginId);
|
|
updateStringparameters5.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
sqlStrings.Add(updateString5.ToString());
|
|
parameterList.Add(updateStringparameters5);
|
|
|
|
|
|
//新增 sys_stock_trans 事务表
|
|
StringBuilder updateString4 = new StringBuilder(1024);
|
|
updateString4.Append(@" INSERT INTO[dbo].[sys_stock_trans]
|
|
([trans_code]
|
|
,[carton_no]
|
|
,[part_id]
|
|
,[part_no]
|
|
,[part_spec]
|
|
,[src_locate_id]
|
|
,[src_locate_name]
|
|
,[dest_locate_id]
|
|
,[dest_locate_name]
|
|
,[old_qty]
|
|
,[new_qty]
|
|
,[trans_qty]
|
|
,[old_status]
|
|
,[new_status]
|
|
,[old_qms_status]
|
|
,[new_qms_status]
|
|
,[unit]
|
|
,[factory_id]
|
|
,[factory_code]
|
|
,[src_erp_warehouse]
|
|
,[dest_erp_warehouse]
|
|
,[src_warehouse_id]
|
|
,[src_warehouse_name]
|
|
,[dest_warehouse_id]
|
|
,[dest_warehouse_name]
|
|
,[src_zone_id]
|
|
,[src_zone_name]
|
|
,[dest_zone_id]
|
|
,[dest_zone_name]
|
|
,[enabled]
|
|
,[update_userid]
|
|
,[update_time]
|
|
,[create_userid]
|
|
,[create_time]
|
|
,[guid],ref_order_no)
|
|
VALUES (@trans_code,@carton_no,@part_id,@part_no,@part_spec,@src_locate_id ,@src_locate_name ,@dest_locate_id ,@dest_locate_name ,@old_qty
|
|
,@new_qty ,@trans_qty ,@old_status ,@new_status ,@old_qms_status ,@new_qms_status ,@unit ,@factory_id ,@factory_code ,@src_erp_warehouse ,@dest_erp_warehouse ,@src_warehouse_id ,@src_warehouse_name ,@dest_warehouse_id ,@dest_warehouse_name ,@src_zone_id ,@src_zone_name ,@dest_zone_id ,@dest_zone_name ,@enabled ,@update_userid ,@update_time ,@create_userid ,@create_time ,@guid ,@ref_order_no)");
|
|
|
|
DynamicParameters updateStringparameters4 = new DynamicParameters();
|
|
updateStringparameters4.Add("@trans_code", (int)WmsEnumUtil.TransType.PICK_ONLINE);
|
|
updateStringparameters4.Add("@carton_no", Stock.CartonNo);
|
|
updateStringparameters4.Add("@part_id", Stock.PartId);
|
|
updateStringparameters4.Add("@part_no", Stock.PartNo);
|
|
updateStringparameters4.Add("@part_spec", Stock.PartSpec);
|
|
updateStringparameters4.Add("@src_locate_id", Stock.LocateId);
|
|
updateStringparameters4.Add("@src_locate_name", Stock.LocateName);
|
|
updateStringparameters4.Add("@dest_locate_id", locateInfo[0].LocateId);
|
|
updateStringparameters4.Add("@dest_locate_name", locateInfo[0].LocateName);
|
|
updateStringparameters4.Add("@old_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@new_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@trans_qty", Stock.Qty);
|
|
updateStringparameters4.Add("@old_status", Stock.Status);
|
|
updateStringparameters4.Add("@new_status", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
updateStringparameters4.Add("@old_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@new_qms_status", Stock.QmsStatus);
|
|
updateStringparameters4.Add("@unit", Stock.Unit);
|
|
updateStringparameters4.Add("@factory_id", Stock.FactoryId);
|
|
updateStringparameters4.Add("@factory_code", Stock.FactoryCode);
|
|
updateStringparameters4.Add("@src_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@dest_erp_warehouse", Stock.ErpWarehouse);
|
|
updateStringparameters4.Add("@src_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@src_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@dest_warehouse_id", Stock.WarehouseId);
|
|
updateStringparameters4.Add("@dest_warehouse_name", Stock.WarehouseName);
|
|
updateStringparameters4.Add("@src_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@src_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@dest_zone_id", Stock.ZoneId);
|
|
updateStringparameters4.Add("@dest_zone_name", Stock.ZoneName);
|
|
updateStringparameters4.Add("@enabled", Stock.Enabled);
|
|
updateStringparameters4.Add("@update_userid", loginId);
|
|
updateStringparameters4.Add("@update_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@create_userid", loginId);
|
|
updateStringparameters4.Add("@create_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
updateStringparameters4.Add("@guid", Guid.NewGuid());
|
|
updateStringparameters4.Add("@ref_order_no", orderNo);
|
|
|
|
sqlStrings.Add(updateString4.ToString());
|
|
parameterList.Add(updateStringparameters4);
|
|
}
|
|
|
|
int retNum = repository.SQLTransaction(sqlStrings, parameterList);
|
|
if (retNum > 0)
|
|
{
|
|
//List<WmsMoveDetail> WmsMoveDetail = repository.GetWmsMoveDetailByOrderNo(orderNo);
|
|
//if (WmsMoveDetail.Sum(a => a.ItemStatus) == (int)WmsEnumUtil.MoveOrderDetailStatus.COMPLETED * WmsMoveDetail.Count)
|
|
//{
|
|
// repository.UpdateMoveDetailByOrderNo(orderNo, loginId);//修改移库条码表 40 已上线
|
|
//}
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "操作失败,请检查!";
|
|
}
|
|
}
|
|
|
|
public string UpdatePickOnlineCloseOrder(string orderNo, string loginId)
|
|
{
|
|
int result = 0;
|
|
List<WmsMoveDetail> WmsMoveDetail = repository.GetWmsMoveDetailByOrderNo(orderNo);
|
|
if (WmsMoveDetail.Sum(a => a.ItemStatus) == (int)WmsEnumUtil.MoveOrderDetailStatus.COMPLETED * WmsMoveDetail.Count)
|
|
{
|
|
result = repository.UpdateMoveDetailByOrderNo(orderNo, loginId);//修改移库条码表 40 已上线
|
|
}
|
|
if (result > 0)
|
|
{
|
|
return "OK";
|
|
}
|
|
else
|
|
{
|
|
return "操作失败,请检查!";
|
|
}
|
|
}
|
|
|
|
public string SetMoveOrderClose(string order)
|
|
{
|
|
return repository.SetMoveOrderClose(order);
|
|
}
|
|
}
|
|
}
|