|
|
using Dapper;
|
|
|
using Estsh.Core.Dapper;
|
|
|
using Estsh.Core.Model.EnumUtil;
|
|
|
using Estsh.Core.Model.ExcelModel;
|
|
|
using Estsh.Core.Model.Result;
|
|
|
using Estsh.Core.Models;
|
|
|
using Estsh.Core.Repository.IRepositories;
|
|
|
using Microsoft.Extensions.Primitives;
|
|
|
using System.Collections;
|
|
|
using System.Data;
|
|
|
using System.Text;
|
|
|
|
|
|
/***************************************************************************************************
|
|
|
*
|
|
|
* 更新人:sitong.dong
|
|
|
* 描述:采购单管理
|
|
|
* 修改时间:2022.06.22
|
|
|
* 修改日志:系统迭代升级
|
|
|
*
|
|
|
**************************************************************************************************/
|
|
|
namespace Estsh.Core.Repositories
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 数据访问类
|
|
|
/// </summary>
|
|
|
public class CycleCountManageRepository : BaseRepository<WmsCheckStock>, ICycleCountManageRepository
|
|
|
{
|
|
|
public CycleCountManageRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
|
|
|
{
|
|
|
}
|
|
|
#region 成员方法
|
|
|
/// <summary>
|
|
|
/// 盘点单
|
|
|
/// </summary>
|
|
|
public Hashtable getCheckStockByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
DynamicParameters Params = new DynamicParameters();
|
|
|
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@GroupColumn", "");
|
|
|
Params.Add("@Table", " wms_check_stock a (nolock) left join sys_enum b on a.order_status=b.enum_value and b.enum_type='wms_check_stock_order_status' left join sys_enum c on a.order_TYPE=c.enum_value and c.enum_type='wms_check_stock_order_type' ");
|
|
|
Params.Add("@Column", " a.ruid,a.order_no,a.part_no,a.erp_warehouse,a.order_type,a.order_status,c.enum_desc as order_type_desc,b.enum_desc as order_status_desc,a.is_obvious,a.enabled,a.factory_id,a.factory_code,a.create_time ");
|
|
|
Params.Add("@PageSize", PageSize);
|
|
|
Params.Add("@CurrentPage", PageIndex);
|
|
|
Params.Add("@Condition", strWhere);
|
|
|
Params.Add("@OrderColumn", "a.create_time desc");
|
|
|
Params.Add("@Group", 0);
|
|
|
|
|
|
|
|
|
List<WmsCheckStock> dataList = dbConn.Query<WmsCheckStock>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
|
|
|
result.Add("dataList", dataList);
|
|
|
result.Add("totalCount", Params.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 盘点单明细
|
|
|
/// </summary>
|
|
|
public List<WmsCheckStockList> getCheckStockListByPage(int PageSize, int PageIndex, string strWhere)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" select a.*,b.enum_desc as sn_status_desc,c.enum_desc as trans_status_desc,cp.enum_desc as up_trans_status_desc from wms_check_stock_list a (nolock) " +
|
|
|
" LEFT JOIN sys_stock k (nolock) on a.carton_no = k.carton_no LEFT JOIN dbo.sys_enum b ON b.enum_type = 'sys_stock_status' AND k.status = b.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum c ON c.enum_type = 'wms_check_stock_list_trans_status' AND a.trans_status = c.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum cp ON cp.enum_type = 'wms_check_stock_list_trans_status' AND a.up_trans_status = cp.enum_value ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockList> result = dbConn.Query<WmsCheckStockList>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<WmsCheckStockList> getSearchCheckStockList(string strWhere)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" select a.*,b.enum_desc as sn_status_desc,c.enum_desc as trans_status_desc,cp.enum_desc as up_trans_status_desc from wms_check_stock_list a (nolock) " +
|
|
|
" LEFT JOIN sys_stock k (nolock) on a.carton_no = k.carton_no LEFT JOIN dbo.sys_enum b ON b.enum_type = 'sys_stock_status' AND k.status = b.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum c ON c.enum_type = 'wms_check_stock_list_trans_status' AND a.trans_status = c.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum cp ON cp.enum_type = 'wms_check_stock_list_trans_status' AND a.up_trans_status = cp.enum_value ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockList> result = dbConn.Query<WmsCheckStockList>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//盘点单零件号
|
|
|
public List<WmsCheckStockPart> getCheckStockPartByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select a.ruid,a.order_no,a.part_id,a.part_no,a.part_spec,a.factory_id,a.factory_code,a.enabled from wms_check_stock_part a ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockPart> result = dbConn.Query<WmsCheckStockPart>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//盘点单存储区
|
|
|
public List<WmsCheckStockZone> getCheckStockZoneByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select a.ruid,a.order_no,a.zone_id,a.zone_name,a.factory_id,a.factory_code,a.enabled from wms_check_stock_zone a ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockZone> result = dbConn.Query<WmsCheckStockZone>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//盘点单库位
|
|
|
public List<WmsCheckStockLocate> getCheckStockLocateByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select a.ruid,a.order_no,a.locate_id,a.locate_name,a.factory_id,a.factory_code,a.enabled from wms_check_stock_locate a ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockLocate> result = dbConn.Query<WmsCheckStockLocate>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//盘点单范围
|
|
|
public List<WmsCheckStockRange> getCheckStockRangeByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select a.ruid,a.order_no,a.zone_id,a.zone_name,a.locate_id,a.locate_name,a.part_id,a.part_no,a.part_spec,a.factory_id,a.factory_code,a.enabled from wms_check_stock_range a ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<WmsCheckStockRange> result = dbConn.Query<WmsCheckStockRange>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<WmsCheckStock> getCheckStockByOrderNo(string orderNo)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select * from wms_check_stock (nolock) where order_no='" + orderNo + "'";
|
|
|
List<WmsCheckStock> result = dbConn.Query<WmsCheckStock>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<MultiKeyValueResult> GetMultiErpwarehouse(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct erp_warehouse as id,0 as parentId , erp_warehouse as name from sys_zone where enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<MultiKeyValueResult> result = dbConn.Query<MultiKeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<MultiKeyValueResult> GetMultiPartNo(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct part_no as id,0 as parentId , part_no as name from sys_part (nolock) where part_type=0 and enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<MultiKeyValueResult> result = dbConn.Query<MultiKeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<MultiKeyValueResult> GetMultiWarehouse(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct warehouse_id as id,0 as parentId , warehouse_name as name from sys_warehouse where enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<MultiKeyValueResult> result = dbConn.Query<MultiKeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<MultiKeyValueResult> GetMultiZone(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct zone_id as id,0 as parentId , zone_name as name from sys_zone where enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<MultiKeyValueResult> result = dbConn.Query<MultiKeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<MultiKeyValueResult> GetMultiLocate(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct locate_id as id,0 as parentId , locate_name as name from sys_locate where enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<MultiKeyValueResult> result = dbConn.Query<MultiKeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> GetErpwarehouse(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String strSql = "select distinct erp_warehouse as [key] , erp_warehouse as value from sys_zone where enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> GetMoveOrderType(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT [enum_value] as [value],[enum_desc] as [key] FROM sys_enum where enum_type='wms_move_order_type' and enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> GetCheckStockType(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT [enum_value] as [value],[enum_desc] as [key] FROM sys_enum where enum_type='wms_check_stock_order_type' and enabled='Y' and factory_Id=" + factoryId + " ";
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> GetCheckStockStatus(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT [enum_value] as [value],[enum_desc] as [key] FROM sys_enum where enum_type='wms_check_stock_order_status' and enabled='Y' and factory_Id=" + factoryId + " order by enum_value";
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取下拉框菜单数据 这里显示的是待添加的厂区信息,厂区名称
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public List<KeyValueResult> getSelectFactory()
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select factory_id as [value],factory_name as [key] from sys_factory where Enabled = 'Y'");
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public List<KeyValueResult> getSelectWarehouse(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select warehouse_desc as [value],warehouse_desc as [key] from sys_warehouse where Enabled = 'Y' and factory_Id=" + factoryId + " ");
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public List<SysWarehouse> getSelectWarehouse(string warehouseid)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select * from sys_warehouse where Enabled = 'Y' and warehouse_id='" + warehouseid + "'");
|
|
|
List<SysWarehouse> result = dbConn.Query<SysWarehouse>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public List<SysZone> getSelectZone(string zoneid)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select * from sys_zone where Enabled = 'Y' and zone_id='" + zoneid + "'");
|
|
|
List<SysZone> result = dbConn.Query<SysZone>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SysLocate> getSelectLocate(string locateid)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select * from sys_locate where Enabled = 'Y' and locate_id='" + locateid + "'");
|
|
|
List<SysLocate> result = dbConn.Query<SysLocate>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public List<KeyValueResult> getSelectZone(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select zone_id as [value],zone_name as [key] from sys_zone where Enabled = 'Y' and factory_Id=" + factoryId + " ");
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> getSelectVendor(int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select vendor_id as [value],vendor_name as [key] from sys_Vendor where Enabled = 'Y'and factory_Id=" + factoryId + " ");
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SysVendor> getSelectVendor(string vendorId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder strSql = new StringBuilder();
|
|
|
strSql.Append("select * from sys_Vendor where Enabled = 'Y' and vendor_id='" + vendorId + "'");
|
|
|
List<SysVendor> result = dbConn.Query<SysVendor>(strSql.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<KeyValueResult> GetPart(int type, int factoryId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT part_no as [value],part_no as [key] FROM sys_part (NOLOCK) WHERE enabled='Y' and factory_Id=" + factoryId + " ORDER BY part_no";
|
|
|
DynamicParameters param = new DynamicParameters();
|
|
|
param.Add("@part_type", type);
|
|
|
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql, param).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public List<SysPart> GetPart(int type, string partId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT * FROM sys_part (NOLOCK) WHERE enabled='Y' and part_id=" + partId + " ORDER BY part_no";
|
|
|
DynamicParameters param = new DynamicParameters();
|
|
|
param.Add("@part_type", type);
|
|
|
List<SysPart> result = dbConn.Query<SysPart>(sql, param).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据库区查询零件号
|
|
|
public List<SysPart> getPartNoByZoneIds(string zoneIds)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
List<SysPart> result = new List<SysPart>();
|
|
|
if (!string.IsNullOrEmpty(zoneIds))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where enabled='Y' and zone_id in (" + zoneIds + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据库区查询零件号
|
|
|
public List<SysPart> getPartNoByLocateIds(string locateIds)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
List<SysPart> result = new List<SysPart>();
|
|
|
if (!string.IsNullOrEmpty(locateIds))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where enabled='Y' and locate_id in (" + locateIds + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SysPart> getPartNoByZoneIdsOrLocateIds(string zoneIds, string locateIds)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
List<SysPart> result = new List<SysPart>();
|
|
|
if (!string.IsNullOrEmpty(zoneIds))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where enabled='Y' and zone_id in (" + zoneIds + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
else if (!string.IsNullOrEmpty(locateIds))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where enabled='Y' and locate_id in (" + locateIds + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据库区查询零件号
|
|
|
public List<SysPart> getPartNoByZoneId(string zoneId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
List<SysPart> result = new List<SysPart>();
|
|
|
if (!string.IsNullOrEmpty(zoneId))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where zone_id in (" + zoneId + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//根据库区查询零件号
|
|
|
public List<SysPart> getPartNoByLocateId(string locateId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
List<SysPart> result = new List<SysPart>();
|
|
|
if (!string.IsNullOrEmpty(locateId))
|
|
|
{
|
|
|
string sql = "select distinct part_id,part_no,part_spec from sys_stock (nolock) where locate_id in (" + locateId + ") and part_id <>0 ORDER BY part_no";
|
|
|
result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public Hashtable GetPartByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
DynamicParameters Params = new DynamicParameters();
|
|
|
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@GroupColumn", "");
|
|
|
Params.Add("@Table", " sys_part a ");
|
|
|
Params.Add("@Column", " a.part_id,a.part_no,a.part_spec");
|
|
|
Params.Add("@PageSize", PageSize);
|
|
|
Params.Add("@CurrentPage", PageIndex);
|
|
|
Params.Add("@Condition", strWhere);
|
|
|
Params.Add("@OrderColumn", OrderBy);
|
|
|
Params.Add("@Group", 0);
|
|
|
List<SysPart> dataList = dbConn.Query<SysPart>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
|
|
|
|
|
|
string sql = "SELECT * FROM sys_part a (NOLOCK) WHERE " + strWhere + " and enabled='Y' ORDER BY part_no";
|
|
|
List<SysPart> partlists = dbConn.Query<SysPart>(sql).ToList();
|
|
|
|
|
|
result.Add("dataList", partlists);
|
|
|
result.Add("totalCount", Params.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public Hashtable GetZoneByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
DynamicParameters Params = new DynamicParameters();
|
|
|
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@GroupColumn", "");
|
|
|
Params.Add("@Table", " sys_zone a ");
|
|
|
Params.Add("@Column", " a.zone_id,zone_name,zone_desc");
|
|
|
Params.Add("@PageSize", PageSize);
|
|
|
Params.Add("@CurrentPage", PageIndex);
|
|
|
Params.Add("@Condition", strWhere);
|
|
|
Params.Add("@OrderColumn", OrderBy);
|
|
|
Params.Add("@Group", 0);
|
|
|
|
|
|
List<SysZone> dataList = dbConn.Query<SysZone>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
|
|
|
|
|
|
string sql = "SELECT * FROM sys_zone (NOLOCK) a WHERE " + strWhere + " and enabled='Y' ORDER BY zone_name";
|
|
|
List<SysZone> zonelists = dbConn.Query<SysZone>(sql).ToList();
|
|
|
result.Add("dataList", zonelists);
|
|
|
result.Add("totalCount", Params.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public Hashtable GetLocateByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
DynamicParameters Params = new DynamicParameters();
|
|
|
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
|
|
|
Params.Add("@GroupColumn", "");
|
|
|
Params.Add("@Table", " sys_locate a ");
|
|
|
Params.Add("@Column", " a.locate_id,locate_name,locate_desc");
|
|
|
Params.Add("@PageSize", PageSize);
|
|
|
Params.Add("@CurrentPage", PageIndex);
|
|
|
Params.Add("@Condition", strWhere);
|
|
|
Params.Add("@OrderColumn", OrderBy);
|
|
|
Params.Add("@Group", 0);
|
|
|
|
|
|
List<SysLocate> dataList = dbConn.Query<SysLocate>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
|
|
|
|
|
|
string sql = "SELECT * FROM sys_locate (NOLOCK) a WHERE " + strWhere + " and enabled='Y' ORDER BY locate_name";
|
|
|
List<SysLocate> locatelists = dbConn.Query<SysLocate>(sql).ToList();
|
|
|
result.Add("dataList", locatelists);
|
|
|
result.Add("totalCount", Params.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SysPart> GetPartList(int type, string partNo)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
string sql = "SELECT * FROM sys_part (NOLOCK) WHERE enabled='Y' and part_no='" + partNo + "' ORDER BY part_no";
|
|
|
|
|
|
List<SysPart> result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取订单编号
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public string GetOrderNo()
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
DynamicParameters parameter = new DynamicParameters();
|
|
|
parameter.Add("@orderNo", null, DbType.String, ParameterDirection.Output, 255);
|
|
|
List<dynamic> depts = dbConn.Query<dynamic>("sys_create_sapo_no", parameter, commandType: CommandType.StoredProcedure).ToList();
|
|
|
return parameter.Get<string>("@orderNo");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 插入菜单数据
|
|
|
/// </summary>
|
|
|
/// <param name="htParams"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool saveCycleCountManage(WmsCheckStock checkStockParams, List<WmsCheckStockPart> checkStockPartParams, List<WmsCheckStockZone> checkStockZoneParams, List<WmsCheckStockLocate> checkStockLocateParams, List<WmsCheckStockRange> checkStockRangeParams)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
string orderNo = GetOrderNo();
|
|
|
checkStockParams.OrderNo = orderNo;
|
|
|
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<DynamicParameters> parameters = new List<DynamicParameters>();
|
|
|
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock(order_no,part_no,erp_warehouse,order_type,order_status,is_obvious,enabled,factory_id,factory_code,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@partNo,@erpWarehouse,@orderType,@orderStatus,@isObvious,@enabled,@factoryId,@factoryCode,@createUserid ");
|
|
|
SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
DynamicParameters dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", checkStockParams.OrderNo);
|
|
|
dynamic.Add("@partNo", checkStockParams.PartNo);
|
|
|
dynamic.Add("@erpWarehouse", checkStockParams.ErpWarehouse);
|
|
|
dynamic.Add("@orderType", checkStockParams.OrderType);
|
|
|
dynamic.Add("@orderStatus", 10);
|
|
|
dynamic.Add("@isObvious", checkStockParams.IsObvious);
|
|
|
dynamic.Add("@enabled", "Y");
|
|
|
dynamic.Add("@factoryId", checkStockParams.FactoryId);
|
|
|
dynamic.Add("@factoryCode", checkStockParams.FactoryCode);
|
|
|
dynamic.Add("@createUserid", checkStockParams.CreateUserId);
|
|
|
parameters.Add(dynamic);
|
|
|
//int recCheckStock = dbConn.Execute(SqlStringBuilder.ToString(), checkStockParams);
|
|
|
|
|
|
for (int i = 0; i < checkStockPartParams.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_part(order_no,part_id,part_no,part_spec,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@partId,@partNo,@partSpec,@factoryId,@factoryCode,'Y',@createUserid,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", orderNo);
|
|
|
dynamic.Add("@partId", checkStockPartParams[i].PartId);
|
|
|
dynamic.Add("@partNo", checkStockPartParams[i].PartNo);
|
|
|
dynamic.Add("@partSpec", checkStockPartParams[i].PartSpec);
|
|
|
dynamic.Add("@factoryId", checkStockPartParams[i].FactoryId);
|
|
|
dynamic.Add("@factoryCode", checkStockPartParams[i].FactoryCode);
|
|
|
dynamic.Add("@enabled", "Y");
|
|
|
dynamic.Add("@createUserid", checkStockPartParams[i].CreateUserId);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
//int recCheckStockPart = dbConn.Execute(SqlStringBuilder.ToString(), checkStockPartParams);
|
|
|
|
|
|
for (int i = 0; i < checkStockZoneParams.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_zone(order_no,zone_id,zone_name,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@zoneId,@zoneName,@factoryId,@factoryCode,'Y',@createUserid,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", orderNo);
|
|
|
dynamic.Add("@zoneId", checkStockZoneParams[i].ZoneId);
|
|
|
dynamic.Add("@zoneName", checkStockZoneParams[i].ZoneName);
|
|
|
dynamic.Add("@factoryId", checkStockZoneParams[i].FactoryId);
|
|
|
dynamic.Add("@factoryCode", checkStockZoneParams[i].FactoryCode);
|
|
|
dynamic.Add("@enabled", "Y");
|
|
|
dynamic.Add("@createUserid", checkStockZoneParams[i].CreateUserId);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
//int recCheckStockZone = dbConn.Execute(SqlStringBuilder.ToString(), checkStockZoneParams);
|
|
|
|
|
|
for (int i = 0; i < checkStockLocateParams.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_locate(order_no,locate_id,locate_name,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@locateId,@locateName,@factoryId,@factoryCode,'Y',@createUserid,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", orderNo);
|
|
|
dynamic.Add("@locateId", checkStockLocateParams[i].LocateId);
|
|
|
dynamic.Add("@locateName", checkStockLocateParams[i].LocateName);
|
|
|
dynamic.Add("@factoryId", checkStockLocateParams[i].FactoryId);
|
|
|
dynamic.Add("@factoryCode", checkStockLocateParams[i].FactoryCode);
|
|
|
dynamic.Add("@enabled", "Y");
|
|
|
dynamic.Add("@createUserid", checkStockLocateParams[i].CreateUserId);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
//int recCheckStockLocate = dbConn.Execute(SqlStringBuilder.ToString(), checkStockLocateParams);
|
|
|
|
|
|
for (int i = 0; i < checkStockRangeParams.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_range(order_no,zone_id,zone_name,locate_id,locate_name,part_id,part_no,part_spec,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@orderNo,@zoneId,@zoneName,@locateId,@locateName,@partId,@partNo,@partSpec,@factoryId,@factoryCode,'Y',@createUserid ");
|
|
|
SqlStringBuilder.Append(" ,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", orderNo);
|
|
|
dynamic.Add("@zoneId", checkStockRangeParams[i].ZoneId);
|
|
|
dynamic.Add("@zoneName", checkStockRangeParams[i].ZoneName);
|
|
|
dynamic.Add("@locateId", checkStockRangeParams[i].LocateId);
|
|
|
dynamic.Add("@locateName", checkStockRangeParams[i].LocateName);
|
|
|
dynamic.Add("@partId", checkStockRangeParams[i].PartId);
|
|
|
dynamic.Add("@partNo", checkStockRangeParams[i].PartNo);
|
|
|
dynamic.Add("@partSpec", checkStockRangeParams[i].PartSpec);
|
|
|
dynamic.Add("@factoryId", checkStockRangeParams[i].FactoryId);
|
|
|
dynamic.Add("@factoryCode", checkStockRangeParams[i].FactoryCode);
|
|
|
dynamic.Add("@enabled", "Y");
|
|
|
dynamic.Add("@createUserid", checkStockRangeParams[i].CreateUserId);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
//int recCheckStockRange = dbConn.Execute(SqlStringBuilder.ToString(), checkStockRangeParams);
|
|
|
|
|
|
bool flag = ExecuteTransaction(sqlLists, parameters);
|
|
|
return flag;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public bool ExecuteTransaction(List<string> sqlStrings, List<DynamicParameters> parameterList, int? commandTimeout = null)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
bool isClosed = dbConn.State == ConnectionState.Closed;
|
|
|
if (isClosed)
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
}
|
|
|
//开启事务
|
|
|
using (var transaction = dbConn.BeginTransaction())
|
|
|
{
|
|
|
int tempnum = 0;
|
|
|
string strsql = "";
|
|
|
try
|
|
|
{
|
|
|
bool successCount = true;
|
|
|
if (parameterList == null || parameterList.Count == 0)
|
|
|
{
|
|
|
for (int i = 0; i < sqlStrings.Count; i++)
|
|
|
{
|
|
|
tempnum = i;
|
|
|
strsql = sqlStrings[i];
|
|
|
dbConn.Execute(sqlStrings[i], null, transaction, commandTimeout);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
for (int i = 0; i < sqlStrings.Count; i++)
|
|
|
{
|
|
|
dbConn.Execute(sqlStrings[i], parameterList[i], transaction, commandTimeout);
|
|
|
tempnum = i;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//提交事务
|
|
|
transaction.Commit();
|
|
|
return true;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
//回滚事务
|
|
|
transaction.Rollback();
|
|
|
|
|
|
dbConn.Close();
|
|
|
dbConn.Dispose();
|
|
|
throw ex;
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
dbConn.Close();
|
|
|
dbConn.Dispose();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//整单解冻调差
|
|
|
public Hashtable onAdjustment(String orderNo, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<string> orderNoList = orderNo.Split(",").ToList();
|
|
|
for (int i = 0; i < orderNoList.Count; i++)
|
|
|
{
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" UPDATE dbo.wms_check_stock SET order_status = 50,update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append(" WHERE order_no = '" + orderNoList[i] + "'; ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select a.*,b.erp_warehouse as erp_warehouse,c.erp_warehouse as dest_erp_warehouse,l.locate_type from [dbo].[wms_check_stock_list] a left join sys_zone b on a.zone_id=b.zone_id left join sys_zone c on a.dest_zone_id=c.zone_id " +
|
|
|
" LEFT JOIN dbo.sys_locate l ON a.dest_locate_id=l.locate_id" +
|
|
|
" where order_no ='" + orderNoList[i] + "' and a.fact_qty!=0 ");
|
|
|
List<WmsCheckStockList> sysStocks = dbConn.Query<WmsCheckStockList>(SqlStringBuilder.ToString()).ToList();
|
|
|
|
|
|
//解冻调差,只解冻调差已盘点的条码
|
|
|
for (int j = 0; j < sysStocks.Count; j++)
|
|
|
{
|
|
|
int statusNew = 50;//已入库
|
|
|
if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.BASICS_LOCATE ||
|
|
|
sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.MANEUVER_LOCATE ||
|
|
|
sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.COMBINATION_LOCATE)
|
|
|
{
|
|
|
statusNew = (int)WmsEnumUtil.StockStatus.INSTOCKED;//已入库
|
|
|
}
|
|
|
else if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.LINE_LOCATE)//线边库位
|
|
|
{
|
|
|
statusNew = (int)WmsEnumUtil.StockStatus.ONLINED;
|
|
|
}
|
|
|
else if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.NC_LOCATE)//NC库位
|
|
|
{
|
|
|
statusNew = (int)WmsEnumUtil.StockStatus.NC_INSTOCK;
|
|
|
}
|
|
|
decimal? factQty = sysStocks[j].FactQty == null ? 0 : sysStocks[j].FactQty;
|
|
|
int? destWarehouseId = sysStocks[j].DestWarehouseId == null ? 0 : sysStocks[j].DestWarehouseId;
|
|
|
int? destZoneId = sysStocks[j].DestZoneId == null ? 0 : sysStocks[j].DestZoneId;
|
|
|
int? destLocateId = sysStocks[j].DestLocateId == null ? 0 : sysStocks[j].DestLocateId;
|
|
|
|
|
|
//零件号为空,是台车,查询最后一个台车解冻
|
|
|
if (string.IsNullOrEmpty(sysStocks[j].PartNo))
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select top 1 * from sys_stock (nolock) where carton_no ='" + sysStocks[j].CartonNo + "' order by create_time desc ");
|
|
|
List<SysStock> stockLists = dbConn.Query<SysStock>(SqlStringBuilder.ToString()).ToList();
|
|
|
if (stockLists.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" UPDATE sys_stock SET enabled='Y' ,update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append(" WHERE ruid = " + stockLists[0].Ruid + "; ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("select * from dbo.sys_stock (nolock) where carton_no='" + sysStocks[j].CartonNo + "' ");
|
|
|
SysStock stocks = dbConn.Query<SysStock>(SqlStringBuilder.ToString()).FirstOrDefault();
|
|
|
if (stocks != null)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" UPDATE sys_stock SET qty=" + factQty + ",status=" + statusNew + "" +
|
|
|
",warehouse_id=" + destWarehouseId + ",warehouse_name='" + sysStocks[j].DestWarehouseName + "'" +
|
|
|
",zone_id=" + destZoneId + ",zone_name='" + sysStocks[j].DestZoneName + "'" +
|
|
|
",locate_id=" + destLocateId + ",locate_name='" + sysStocks[j].DestLocateName + "'" +
|
|
|
",erp_warehouse='" + sysStocks[j].DestErpWarehouse + "'," +
|
|
|
"enabled='Y',update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append(" WHERE carton_no = '" + sysStocks[j].CartonNo + "'; ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" INSERT INTO dbo.sys_stock(vendor_id,vendor_code,carton_no,carton_type,part_id,part_no,part_spec,lot_no,status,qty,snp_qty,locate_id,locate_name,ref_order_no ");
|
|
|
SqlStringBuilder.Append(" ,warehouse_id,warehouse_name,zone_id,zone_name,erp_warehouse,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append(" VALUES('0','','" + sysStocks[j].CartonNo + "',0,'" + sysStocks[j].PartId + "','" + sysStocks[j].PartNo + "','" + sysStocks[j].PartSpec + "',''," + statusNew + "," + factQty + "," + factQty + " ");
|
|
|
SqlStringBuilder.Append(" , '" + sysStocks[j].DestLocateId + "','" + sysStocks[j].DestLocateName + "','','" + sysStocks[j].DestWarehouseId + "','" + sysStocks[j].DestWarehouseName + "','" + sysStocks[j].DestZoneId + "','" + sysStocks[j].DestZoneName + "','" + sysStocks[j].DestErpWarehouse + "' ");
|
|
|
SqlStringBuilder.Append(" ,'" + sysStocks[j].FactoryId + "','" + sysStocks[j].FactoryCode + "','Y','" + userId + "',CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.sys_stock_trans ( ");
|
|
|
SqlStringBuilder.Append(" trans_code, carton_no, part_id, ");
|
|
|
SqlStringBuilder.Append(" part_no, part_spec, src_locate_id, ");
|
|
|
SqlStringBuilder.Append(" src_locate_name, dest_locate_id, dest_locate_name, ");
|
|
|
SqlStringBuilder.Append(" old_qty, new_qty, trans_qty, ");
|
|
|
SqlStringBuilder.Append(" old_status, new_status, unit, ");
|
|
|
SqlStringBuilder.Append(" factory_id, factory_code, ");
|
|
|
SqlStringBuilder.Append(" src_erp_warehouse, dest_erp_warehouse, ");
|
|
|
SqlStringBuilder.Append(" src_warehouse_id, src_warehouse_name, ");
|
|
|
SqlStringBuilder.Append(" dest_warehouse_id, dest_warehouse_name, ");
|
|
|
SqlStringBuilder.Append(" src_zone_id, src_zone_name, ");
|
|
|
SqlStringBuilder.Append(" dest_zone_id, dest_zone_name, enabled, create_userid, ");
|
|
|
SqlStringBuilder.Append(" create_time, update_userid, update_time, guid,ref_order_no) ");
|
|
|
SqlStringBuilder.Append("VALUES ");
|
|
|
SqlStringBuilder.Append("( " + (int)WmsEnumUtil.TransType.CS_UPDATE + ", ");//盘点更新
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].CartonNo + "', ");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].PartId + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].PartNo + "', ");
|
|
|
SqlStringBuilder.Append(" N'" + sysStocks[j].PartSpec + "', ");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].LocateId == null ? 0 : sysStocks[j].LocateId + ", ");//源库位
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].LocateName + "', ");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].DestLocateId == null ? 0 : sysStocks[j].DestLocateId + ", ");//目标库位
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].DestLocateName + "', ");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].Qty + ",");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].FactQty + ",");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].FactQty + ",");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].SnStatus + "', ");
|
|
|
|
|
|
|
|
|
if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.BASICS_LOCATE ||
|
|
|
sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.MANEUVER_LOCATE ||
|
|
|
sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.COMBINATION_LOCATE)
|
|
|
{
|
|
|
SqlStringBuilder.Append(" '" + (int)WmsEnumUtil.StockStatus.INSTOCKED + "', "); //已入库
|
|
|
}
|
|
|
else if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.LINE_LOCATE)//线边库位
|
|
|
{
|
|
|
SqlStringBuilder.Append(" '" + (int)WmsEnumUtil.StockStatus.ONLINED + "', "); //已上线
|
|
|
}
|
|
|
else if (sysStocks[j].LocateType == (int)WmsEnumUtil.LocateType.NC_LOCATE)//NC库位
|
|
|
{
|
|
|
SqlStringBuilder.Append(" '" + (int)WmsEnumUtil.StockStatus.NC_INSTOCK + "', "); //NC入库
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SqlStringBuilder.Append(" '" + (int)WmsEnumUtil.StockStatus.INSTOCKED + "', "); //已入库
|
|
|
}
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].Unit + "', ");
|
|
|
SqlStringBuilder.Append(" " + sysStocks[j].FactoryId + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].FactoryCode + "',");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].ErpWarehouse + "',");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].DestErpWarehouse + "', ");
|
|
|
int? warehouseIdTran = sysStocks[j].WarehouseId == null ? 0 : sysStocks[j].WarehouseId;
|
|
|
SqlStringBuilder.Append(" " + warehouseIdTran + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].WarehouseName + "', ");
|
|
|
int? destWarehouseIdTran = sysStocks[j].DestWarehouseId == null ? 0 : sysStocks[j].DestWarehouseId;
|
|
|
SqlStringBuilder.Append(" " + destWarehouseIdTran + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].DestWarehouseName + "', ");
|
|
|
int? zoneIdTran = sysStocks[j].ZoneId == null ? 0 : sysStocks[j].ZoneId;
|
|
|
SqlStringBuilder.Append(" " + zoneIdTran + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].ZoneName + "', ");
|
|
|
int? destZoneIdTran = sysStocks[j].DestZoneId == null ? 0 : sysStocks[j].DestZoneId;
|
|
|
SqlStringBuilder.Append(" " + destZoneIdTran + ", ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].DestZoneName + "', ");
|
|
|
SqlStringBuilder.Append(" 'Y', ");
|
|
|
SqlStringBuilder.Append(" " + userId + ", ");
|
|
|
SqlStringBuilder.Append(" CONVERT(VARCHAR(20),GETDATE(),21), ");
|
|
|
SqlStringBuilder.Append(" " + userId + ", ");
|
|
|
SqlStringBuilder.Append(" CONVERT(VARCHAR(20),GETDATE(),21), ");
|
|
|
SqlStringBuilder.Append(" NEWID() , ");
|
|
|
SqlStringBuilder.Append(" '" + sysStocks[j].OrderNo + "' ");
|
|
|
SqlStringBuilder.Append(" ) ; ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
}
|
|
|
}
|
|
|
bool flag = ExecuteTransaction(sqlLists, null);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "整单解冻调差成功");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "整单解冻调差失败");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获得调差指令
|
|
|
/// </summary>
|
|
|
/// <param name="orderNo"></param>
|
|
|
/// <param name="userId"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<SapDifo> GetSAPDIFO(String orderNo, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" select * from SAP_DIFO where IBLNR='" + orderNo + "' and STAFLG='N' ");
|
|
|
List<SapDifo> result = dbConn.Query<SapDifo>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
public SysBase GetSAPDIFOByBase()
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" select * from sys_base where param_name='盘点调差指令' and enabled='Y' ");
|
|
|
SysBase result = dbConn.QueryFirstOrDefault<SysBase>(SqlStringBuilder.ToString());
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//整单解冻不调差
|
|
|
public Hashtable onNoAdjustment(String orderNos, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<DynamicParameters> parametersList = new List<DynamicParameters>();
|
|
|
StringBuilder query = new StringBuilder(1024);
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
|
|
|
List<string> orderNoList = orderNos.Split(",").ToList();
|
|
|
foreach (var orderNo in orderNoList)
|
|
|
{
|
|
|
query.Clear();
|
|
|
query.Append(" UPDATE dbo.wms_check_stock SET order_status = @orderStatus,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
query.Append(" WHERE order_no = @orderNo ");
|
|
|
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", orderNo);
|
|
|
parameters.Add("@orderStatus", 55);
|
|
|
parameters.Add("@updateUserid", userId);
|
|
|
|
|
|
sqlLists.Add(query.ToString());
|
|
|
parametersList.Add(parameters);
|
|
|
|
|
|
query.Clear();
|
|
|
query.Append("UPDATE ss2 SET ss2.enabled = 'Y',ss2.update_userid = @updateUserid,ss2.update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
query.Append("FROM sys_stock ss2 ");
|
|
|
query.Append("JOIN ( SELECT max(ss.ruid) AS ruid FROM sys_stock ss ");
|
|
|
query.Append(" JOIN wms_check_stock_list wcsl ON ss.carton_no = wcsl.carton_no ");
|
|
|
query.Append(" WHERE wcsl.order_no = @orderNo ");
|
|
|
query.Append(" AND ss.enabled = 'N' and wcsl.trans_status !=50 ");
|
|
|
query.Append(" GROUP BY ss.carton_no ) b ON ss2.ruid = b.ruid ");
|
|
|
query.Append("WHERE ss2.enabled = 'N' ");
|
|
|
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", orderNo);
|
|
|
parameters.Add("@updateUserid", userId);
|
|
|
|
|
|
sqlLists.Add(query.ToString());
|
|
|
parametersList.Add(parameters);
|
|
|
|
|
|
query.Clear();
|
|
|
query.Append("INSERT INTO sys_stock_trans ");
|
|
|
query.Append(" (trans_code, carton_no, part_id, part_no, part_spec, src_locate_id, src_locate_name, dest_locate_id, dest_locate_name, ");
|
|
|
query.Append(" old_qty, new_qty, trans_qty, old_status, new_status, unit, factory_id, factory_code, ");
|
|
|
query.Append(" src_erp_warehouse, dest_erp_warehouse, src_warehouse_id, src_warehouse_name, dest_warehouse_id, dest_warehouse_name, ");
|
|
|
query.Append(" src_zone_id, src_zone_name, dest_zone_id, dest_zone_name, create_userid, ref_order_no) ");
|
|
|
query.Append("select @transCode,a.carton_no, a.part_id ,a.part_no ,a.part_spec ,a.locate_id ,a.locate_name ,a.locate_id, a.locate_name, ");
|
|
|
query.Append(" a.qty ,a.qty ,a.qty ,ss.status ,ss.status ,ss.unit ,a.factory_id ,a.factory_code , ");
|
|
|
query.Append(" ss.erp_warehouse ,ss.erp_warehouse ,a.warehouse_id ,a.warehouse_name ,a.warehouse_id ,a.warehouse_name , ");
|
|
|
query.Append(" a.zone_id ,a.zone_name ,a.zone_id ,a.zone_name, @updateUserid, a.order_no ");
|
|
|
query.Append("from wms_check_stock_list a ");
|
|
|
query.Append("join sys_stock ss on a.carton_no = ss.carton_no ");
|
|
|
query.Append("where order_no =@orderNo ");
|
|
|
|
|
|
parameters = new DynamicParameters();
|
|
|
parameters.Add("@orderNo", orderNo);
|
|
|
parameters.Add("@updateUserid", userId);
|
|
|
parameters.Add("@transCode", (int)WmsEnumUtil.TransType.CS_UPDATE);
|
|
|
|
|
|
sqlLists.Add(query.ToString());
|
|
|
parametersList.Add(parameters);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
//SqlStringBuilder.Append(" UPDATE dbo.wms_check_stock SET order_status = @orderStatus,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
//SqlStringBuilder.Append(" WHERE order_no = @orderNo; ");
|
|
|
//sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
//dynamic = new DynamicParameters();
|
|
|
//dynamic.Add("@orderNo", orderNoList[i]);
|
|
|
//dynamic.Add("@orderStatus", 55);
|
|
|
//dynamic.Add("@updateUserid", userId);
|
|
|
//parameters.Add(dynamic);
|
|
|
|
|
|
//SqlStringBuilder = new StringBuilder(1024);
|
|
|
//SqlStringBuilder.Append("select a.*,b.erp_warehouse as erp_warehouse,c.erp_warehouse as dest_erp_warehouse from [dbo].[wms_check_stock_list] a left join sys_zone b on a.zone_id=b.zone_id left join sys_zone c on a.dest_zone_id=c.zone_id " +
|
|
|
// " where order_no ='" + orderNoList[i] + "' ");
|
|
|
//List<WmsCheckStockList> sysStocks = dbConn.Query<WmsCheckStockList>(SqlStringBuilder.ToString()).ToList();
|
|
|
////解冻不调差,全部解冻
|
|
|
//for (int j = 0; j < sysStocks.Count; j++)
|
|
|
//{
|
|
|
// //零件号为空,是台车,查询最后一个台车解冻
|
|
|
// if (string.IsNullOrEmpty(sysStocks[j].PartNo))
|
|
|
// {
|
|
|
// SqlStringBuilder = new StringBuilder(1024);
|
|
|
// SqlStringBuilder.Append("select top 1 * from sys_stock (nolock) where carton_no ='" + sysStocks[j].CartonNo + "' order by create_time desc ");
|
|
|
// List<SysStock> stockLists = dbConn.Query<SysStock>(SqlStringBuilder.ToString()).ToList();
|
|
|
// if (stockLists.Count > 0)
|
|
|
// {
|
|
|
// SqlStringBuilder = new StringBuilder(1024);
|
|
|
// SqlStringBuilder.Append(" UPDATE sys_stock SET enabled='Y' ,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
// SqlStringBuilder.Append(" WHERE ruid = @ruid; ");
|
|
|
// sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
// dynamic = new DynamicParameters();
|
|
|
// dynamic.Add("@ruid", stockLists[0].Ruid);
|
|
|
// dynamic.Add("@updateUserid", userId);
|
|
|
// parameters.Add(dynamic);
|
|
|
// }
|
|
|
// }
|
|
|
// else//条码正常解冻
|
|
|
// {
|
|
|
// SqlStringBuilder = new StringBuilder(1024);
|
|
|
// SqlStringBuilder.Append(" UPDATE sys_stock SET enabled='Y' ,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
// SqlStringBuilder.Append(" WHERE carton_no = @cartonNo; ");
|
|
|
// sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
// dynamic = new DynamicParameters();
|
|
|
// dynamic.Add("@cartonNo", sysStocks[j].CartonNo);
|
|
|
// dynamic.Add("@updateUserid", userId);
|
|
|
// parameters.Add(dynamic);
|
|
|
// }
|
|
|
|
|
|
|
|
|
// SqlStringBuilder = new StringBuilder(1024);
|
|
|
// SqlStringBuilder.Append("INSERT INTO dbo.sys_stock_trans ( ");
|
|
|
// SqlStringBuilder.Append(" trans_code, carton_no, part_id, ");
|
|
|
// SqlStringBuilder.Append(" part_no, part_spec, src_locate_id, ");
|
|
|
// SqlStringBuilder.Append(" src_locate_name, dest_locate_id, dest_locate_name, ");
|
|
|
// SqlStringBuilder.Append(" old_qty, new_qty, trans_qty, ");
|
|
|
// SqlStringBuilder.Append(" old_status, new_status, unit, ");
|
|
|
// SqlStringBuilder.Append(" factory_id, factory_code, ");
|
|
|
// SqlStringBuilder.Append(" src_erp_warehouse, dest_erp_warehouse, ");
|
|
|
// SqlStringBuilder.Append(" src_warehouse_id, src_warehouse_name, ");
|
|
|
// SqlStringBuilder.Append(" dest_warehouse_id, dest_warehouse_name, ");
|
|
|
// SqlStringBuilder.Append(" src_zone_id, src_zone_name, ");
|
|
|
// SqlStringBuilder.Append(" dest_zone_id, dest_zone_name, enabled, create_userid, ");
|
|
|
// SqlStringBuilder.Append(" create_time, update_userid, update_time, guid,ref_order_no) ");
|
|
|
// SqlStringBuilder.Append("VALUES ");
|
|
|
// SqlStringBuilder.Append("( '270', ");//盘点更新
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].CartonNo + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].PartId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].PartNo + "', ");
|
|
|
// SqlStringBuilder.Append(" N'" + sysStocks[j].PartSpec + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].LocateId == null ? 0 : sysStocks[j].LocateId + ", ");//源库位
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].LocateName + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].LocateId == null ? 0 : sysStocks[j].LocateId + ", ");//目标库位
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].LocateName + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].Qty + ",");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].Qty + ",");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].Qty + ",");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].SnStatus + "', ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].SnStatus + "', ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].Unit + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].FactoryId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].FactoryCode + "',");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].ErpWarehouse + "',");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].DestErpWarehouse + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].WarehouseId == null ? 0 : sysStocks[j].WarehouseId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].WarehouseName + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].WarehouseId == null ? 0 : sysStocks[j].WarehouseId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].WarehouseName + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].ZoneId == null ? 0 : sysStocks[j].ZoneId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].ZoneName + "', ");
|
|
|
// SqlStringBuilder.Append(" " + sysStocks[j].ZoneId == null ? 0 : sysStocks[j].ZoneId + ", ");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].ZoneName + "', ");
|
|
|
// SqlStringBuilder.Append(" 'Y', ");
|
|
|
// SqlStringBuilder.Append(" " + userId + ", ");
|
|
|
// SqlStringBuilder.Append(" CONVERT(VARCHAR(20),GETDATE(),21), ");
|
|
|
// SqlStringBuilder.Append(" " + userId + ", ");
|
|
|
// SqlStringBuilder.Append(" CONVERT(VARCHAR(20),GETDATE(),21), ");
|
|
|
// SqlStringBuilder.Append(" NEWID() ,");
|
|
|
// SqlStringBuilder.Append(" '" + sysStocks[j].OrderNo + "' ");
|
|
|
// SqlStringBuilder.Append(" ) ; ");
|
|
|
// sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
// dynamic = new DynamicParameters();
|
|
|
// dynamic.Add("@cartonNo", sysStocks[j].CartonNo);
|
|
|
// parameters.Add(dynamic);
|
|
|
//}
|
|
|
}
|
|
|
bool flag = ExecuteTransaction(sqlLists, parametersList);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "整单解冻不调差执行成功");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "整单解冻不调差执行失败");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//开始盘点
|
|
|
public Hashtable onBeginCycle(String orderNo, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<DynamicParameters> parameters = new List<DynamicParameters>();
|
|
|
DynamicParameters dynamic = new DynamicParameters();
|
|
|
List<string> orderNoList = orderNo.Split(",").ToList();
|
|
|
for (int m = 0; m < orderNoList.Count; m++)
|
|
|
{
|
|
|
String sqlStringType = " SELECT * FROM dbo.wms_check_stock (nolock) where order_no='" + orderNoList[m] + "'";
|
|
|
List<WmsCheckStock> wmsChecks = dbConn.Query<WmsCheckStock>(sqlStringType).ToList();
|
|
|
if (wmsChecks.Count > 0)
|
|
|
{
|
|
|
if (wmsChecks[0].OrderType != "10")
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "开启盘点失败,盘点单" + orderNoList[m] + "不处于创建状态!");
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
String strSql = " SELECT * FROM dbo.wms_check_stock_range (nolock) where order_no='" + orderNoList[m] + "'";
|
|
|
List<WmsCheckStockRange> checkStockRanges = dbConn.Query<WmsCheckStockRange>(strSql).ToList();
|
|
|
List<WmsCheckStockList> checkStockListParams = new List<WmsCheckStockList>();
|
|
|
|
|
|
#region 逐条更改
|
|
|
//for (int i = 0; i < checkStockRanges.Count; i++)
|
|
|
//{
|
|
|
// //开始盘点,状态未冻结的条码
|
|
|
// List<SysStock> sysStocksInfo = new List<SysStock>();
|
|
|
// if (string.IsNullOrEmpty(checkStockRanges[i].PartNo))//零件号为空
|
|
|
// {
|
|
|
// if (checkStockRanges[i].ZoneId != 0)
|
|
|
// {
|
|
|
// string sql = "select * from sys_stock (nolock) where zone_id='" + checkStockRanges[i].ZoneId + "' and zone_name='" + checkStockRanges[i].ZoneName + "' and enabled='Y' and factory_code='" + wmsChecks[0].FactoryCode + "' ";
|
|
|
// sysStocksInfo = dbConn.Query<SysStock>(sql).ToList();
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// string sql = "select * from sys_stock (nolock) where locate_id='" + checkStockRanges[i].LocateId + "' and locate_name='" + checkStockRanges[i].LocateName + "' and enabled='Y' and factory_code='" + wmsChecks[0].FactoryCode + "' ";
|
|
|
// sysStocksInfo = dbConn.Query<SysStock>(sql).ToList();
|
|
|
// }
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// if (checkStockRanges[i].ZoneId != 0)
|
|
|
// {
|
|
|
// string sql = "select * from sys_stock (nolock) where zone_id='" + checkStockRanges[i].ZoneId + "' and zone_name='" + checkStockRanges[i].ZoneName + "' and part_no='" + checkStockRanges[i].PartNo + "' and enabled='Y' and factory_code='" + wmsChecks[0].FactoryCode + "'";
|
|
|
// sysStocksInfo = dbConn.Query<SysStock>(sql).ToList();
|
|
|
// }
|
|
|
// else if (checkStockRanges[i].LocateId != 0)
|
|
|
// {
|
|
|
// string sql = "select * from sys_stock (nolock) where locate_id='" + checkStockRanges[i].LocateId + "' and locate_name='" + checkStockRanges[i].LocateName + "' and part_no='" + checkStockRanges[i].PartNo + "' and enabled='Y' and factory_code='" + wmsChecks[0].FactoryCode + "'";
|
|
|
// sysStocksInfo = dbConn.Query<SysStock>(sql).ToList();
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// string sql = "select * from sys_stock (nolock) where part_no='" + checkStockRanges[i].PartNo + "' and enabled='Y' and factory_code='" + wmsChecks[0].FactoryCode + "'";
|
|
|
// sysStocksInfo = dbConn.Query<SysStock>(sql).ToList();
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// for (int k = 0; k < sysStocksInfo.Count; k++)
|
|
|
// {
|
|
|
// if (sysStocksInfo[k].Status != (int)WmsEnumUtil.StockStatus.REJECTION)
|
|
|
// {
|
|
|
// WmsCheckStockList checkStockListInfo = new WmsCheckStockList();
|
|
|
// checkStockListInfo.OrderNo = orderNoList[m];
|
|
|
// checkStockListInfo.WarehouseId = sysStocksInfo[k].WarehouseId;
|
|
|
// checkStockListInfo.WarehouseName = sysStocksInfo[k].WarehouseName;
|
|
|
// checkStockListInfo.ZoneId = sysStocksInfo[k].ZoneId;
|
|
|
// checkStockListInfo.ZoneName = sysStocksInfo[k].ZoneName;
|
|
|
// checkStockListInfo.LocateId = sysStocksInfo[k].LocateId;
|
|
|
// checkStockListInfo.LocateName = sysStocksInfo[k].LocateName;
|
|
|
// checkStockListInfo.PartId = sysStocksInfo[k].PartId;
|
|
|
// checkStockListInfo.PartNo = sysStocksInfo[k].PartNo;
|
|
|
// checkStockListInfo.PartSpec = sysStocksInfo[k].PartSpec;
|
|
|
// checkStockListInfo.CartonNo = sysStocksInfo[k].CartonNo;
|
|
|
// checkStockListInfo.Qty = sysStocksInfo[k].Qty;
|
|
|
// checkStockListInfo.FactQty = 0;
|
|
|
// checkStockListInfo.Unit = sysStocksInfo[k].Unit;
|
|
|
// checkStockListInfo.SnStatus = sysStocksInfo[k].Status.ToString();
|
|
|
// checkStockListInfo.TransStatus = 10;
|
|
|
// checkStockListInfo.FactoryId = sysStocksInfo[k].FactoryId;
|
|
|
// checkStockListInfo.FactoryCode = sysStocksInfo[k].FactoryCode;
|
|
|
// checkStockListInfo.CreateUserId = Convert.ToInt32(userId);
|
|
|
|
|
|
// checkStockListParams.Add(checkStockListInfo);
|
|
|
|
|
|
// }
|
|
|
// if (wmsChecks[0].OrderType == "10")
|
|
|
// {
|
|
|
// string updateStatus = "update sys_stock set enabled='N',update_userid=@updateUserid , update_time = CONVERT(varchar(50), GETDATE(), 21) where ruid=@ruid";
|
|
|
// sqlLists.Add(updateStatus);
|
|
|
// dynamic = new DynamicParameters();
|
|
|
// dynamic.Add("@updateUserid", userId);
|
|
|
// dynamic.Add("@ruid", sysStocksInfo[k].Ruid);
|
|
|
// parameters.Add(dynamic);
|
|
|
// int updateStatusresult = dbConn.Execute(updateStatus);
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
//for (int i = 0; i < checkStockListParams.Count; i++)
|
|
|
//{
|
|
|
// StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
// SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_list(order_no,warehouse_id,warehouse_name,zone_id,zone_name,locate_id,locate_name,part_id,part_no,part_spec,carton_no,qty,fact_qty,unit,sn_status,trans_status,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
// SqlStringBuilder.Append(" VALUES(@orderNo,@warehouseId,@warehouseName,@zoneId,@zoneName,@locateId,@locateName,@partId,@partNo,@partSpec,@cartonNo,@qty,@factQty,@unit,@snStatus,@transStatus, ");
|
|
|
// SqlStringBuilder.Append(" @factoryId,@factoryCode,'Y',@createUserid,CONVERT(varchar(50), GETDATE(), 21),NEWID()) ");
|
|
|
// sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
// dynamic = new DynamicParameters();
|
|
|
// dynamic.Add("@orderNo", checkStockListParams[i].OrderNo);
|
|
|
// dynamic.Add("@warehouseId", checkStockListParams[i].WarehouseId);
|
|
|
// dynamic.Add("@warehouseName", checkStockListParams[i].WarehouseName);
|
|
|
// dynamic.Add("@zoneId", checkStockListParams[i].ZoneId);
|
|
|
// dynamic.Add("@zoneName", checkStockListParams[i].ZoneName);
|
|
|
// dynamic.Add("@locateId", checkStockListParams[i].LocateId);
|
|
|
// dynamic.Add("@locateName", checkStockListParams[i].LocateName);
|
|
|
// dynamic.Add("@partId", checkStockListParams[i].PartId);
|
|
|
// dynamic.Add("@partNo", checkStockListParams[i].PartNo);
|
|
|
// dynamic.Add("@partSpec", checkStockListParams[i].PartSpec);
|
|
|
// dynamic.Add("@cartonNo", checkStockListParams[i].CartonNo);
|
|
|
// dynamic.Add("@qty", checkStockListParams[i].Qty);
|
|
|
// dynamic.Add("@factQty", checkStockListParams[i].FactQty);
|
|
|
// dynamic.Add("@unit", checkStockListParams[i].Unit);
|
|
|
// dynamic.Add("@snStatus", checkStockListParams[i].SnStatus);
|
|
|
// dynamic.Add("@transStatus", checkStockListParams[i].TransStatus);
|
|
|
// dynamic.Add("@factoryId", checkStockListParams[i].FactoryId);
|
|
|
// dynamic.Add("@factoryCode", checkStockListParams[i].FactoryCode);
|
|
|
// dynamic.Add("@createUserid", checkStockListParams[i].CreateUserId);
|
|
|
// parameters.Add(dynamic);
|
|
|
//}
|
|
|
#endregion
|
|
|
|
|
|
#region 批量更改
|
|
|
for (int i = 0; i < checkStockRanges.Count; i++)
|
|
|
{
|
|
|
//开始盘点,状态未冻结的条码 写入盘点清单表
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.wms_check_stock_list(order_no,warehouse_id,warehouse_name,zone_id,zone_name,locate_id,locate_name,part_id,part_no,part_spec,carton_no,qty,fact_qty,unit,sn_status,trans_status,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
|
|
|
SqlStringBuilder.Append("select @orderNo as order_no,warehouse_id,warehouse_name,zone_id,zone_name,locate_id,locate_name,part_id,part_no,part_spec,carton_no,qty,0,unit,Status,10,Factory_id,Factory_code,enabled,@updateUserid as create_userid,CONVERT(varchar(50), GETDATE(), 21) as create_time,NEWID() as guid from sys_stock (nolock) as aaa where aaa.enabled='Y' and aaa.factory_code=@factoryCode and ( aaa.status=@status40 or aaa.status=@status50 or aaa.status=@status60 or aaa.status=@status70 or aaa.status=@status80 or aaa.status=@status90 ) ");
|
|
|
|
|
|
if (checkStockRanges[i].ZoneId != 0)
|
|
|
SqlStringBuilder.Append(" and aaa.zone_id=@zoneId and aaa.zone_name=@zoneName ");
|
|
|
if (checkStockRanges[i].LocateId != 0)
|
|
|
SqlStringBuilder.Append(" and aaa.locate_id=@locateId and aaa.locate_name=@locateName ");
|
|
|
if (!string.IsNullOrEmpty(checkStockRanges[i].PartNo))
|
|
|
SqlStringBuilder.Append(" and aaa.part_no=@partNo ");
|
|
|
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@orderNo", orderNoList[m]);
|
|
|
dynamic.Add("@zoneId", checkStockRanges[i].ZoneId);
|
|
|
dynamic.Add("@zoneName", checkStockRanges[i].ZoneName);
|
|
|
dynamic.Add("@locateId", checkStockRanges[i].LocateId);
|
|
|
dynamic.Add("@locateName", checkStockRanges[i].LocateName);
|
|
|
dynamic.Add("@partNo", string.IsNullOrEmpty(checkStockRanges[i].PartNo) ? "" : checkStockRanges[i].PartNo);
|
|
|
dynamic.Add("@factoryCode", wmsChecks[0].FactoryCode);
|
|
|
dynamic.Add("@status40", (int)WmsEnumUtil.StockStatus.WAITING_INSTOCK);
|
|
|
dynamic.Add("@status50", (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
|
dynamic.Add("@status60", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
|
dynamic.Add("@status70", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
|
dynamic.Add("@status80", (int)WmsEnumUtil.StockStatus.NC_QUARANTINE);
|
|
|
dynamic.Add("@status90", (int)WmsEnumUtil.StockStatus.NC_INSTOCK);
|
|
|
parameters.Add(dynamic);
|
|
|
|
|
|
#region 记录条码冻结事务
|
|
|
//记录条码冻结事务
|
|
|
SqlStringBuilder = new StringBuilder();
|
|
|
SqlStringBuilder.Append(" INSERT INTO dbo.sys_stock_trans ");
|
|
|
SqlStringBuilder.Append(@" select @trans_code as trans_code,carton_no,part_id,part_no,part_spec,locate_id as src_locate_id,locate_name as src_locate_name,locate_id as dest_locate_id,
|
|
|
locate_name as dest_locate_name, qty as old_qty, qty as new_qty, qty as trans_qty, status as old_status, status as new_status, qms_status as old_qms_status, qms_status as new_qms_status,
|
|
|
unit, factory_id, factory_code, erp_warehouse as src_erp_warehouse, erp_warehouse as dest_erp_warehouse, warehouse_id as src_warehouse_id, warehouse_name as src_warehouse_name,
|
|
|
warehouse_id as dest_warehouse_id, warehouse_name as dest_warehouse_name, zone_id as src_zone_id, zone_name as src_zone_name, zone_id as dest_zone_id, zone_name as dest_zone_name,
|
|
|
enabled, @updateUserid, CONVERT(varchar(50), GETDATE(), 21) as update_time, create_userid, CONVERT(varchar(50), GETDATE(), 21) as create_time, NEWID() guid, null, @ref_order_no
|
|
|
from sys_stock ");
|
|
|
SqlStringBuilder.Append(" where enabled='Y' and factory_code=@factory_code and ( status=@status40 or status=@status50 or status=@status60 or status=@status70 or status=@status80 or status=@status90 ) ");
|
|
|
|
|
|
if (checkStockRanges[i].ZoneId != 0)
|
|
|
SqlStringBuilder.Append(" and zone_id=@zoneId and zone_name=@zoneName ");
|
|
|
if (checkStockRanges[i].LocateId != 0)
|
|
|
SqlStringBuilder.Append(" and locate_id=@locateId and locate_name=@locateName ");
|
|
|
if (!string.IsNullOrEmpty(checkStockRanges[i].PartNo))
|
|
|
SqlStringBuilder.Append(" and part_no=@partNo ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@trans_code", (int)WmsEnumUtil.TransType.CS_FREEZE);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@zoneId", checkStockRanges[i].ZoneId);
|
|
|
dynamic.Add("@zoneName", checkStockRanges[i].ZoneName);
|
|
|
dynamic.Add("@locateId", checkStockRanges[i].LocateId);
|
|
|
dynamic.Add("@locateName", checkStockRanges[i].LocateName);
|
|
|
dynamic.Add("@partNo", string.IsNullOrEmpty(checkStockRanges[i].PartNo) ? "" : checkStockRanges[i].PartNo);
|
|
|
dynamic.Add("@factory_code", wmsChecks[0].FactoryCode);
|
|
|
dynamic.Add("@ref_order_no", orderNo);
|
|
|
dynamic.Add("@status40", (int)WmsEnumUtil.StockStatus.WAITING_INSTOCK);
|
|
|
dynamic.Add("@status50", (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
|
dynamic.Add("@status60", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
|
dynamic.Add("@status70", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
|
dynamic.Add("@status80", (int)WmsEnumUtil.StockStatus.NC_QUARANTINE);
|
|
|
dynamic.Add("@status90", (int)WmsEnumUtil.StockStatus.NC_INSTOCK);
|
|
|
|
|
|
parameters.Add(dynamic);
|
|
|
#endregion
|
|
|
|
|
|
#region 将条码冻结
|
|
|
//将条码冻结
|
|
|
SqlStringBuilder = new StringBuilder();
|
|
|
SqlStringBuilder.Append("update a set a.enabled='N',a.update_userid=@updateUserid , a.update_time = CONVERT(varchar(50), GETDATE(), 21) from sys_stock a,sys_stock b where a.ruid=b.ruid and b.enabled='Y' and b.factory_code=@factory_code and ( b.status=@status40 or b.status=@status50 or b.status=@status60 or b.status=@status70 or b.status=@status80 or b.status=@status90 ) ");
|
|
|
if (checkStockRanges[i].ZoneId != 0)
|
|
|
SqlStringBuilder.Append(" and b.zone_id=@zoneId and b.zone_name=@zoneName ");
|
|
|
if (checkStockRanges[i].LocateId != 0)
|
|
|
SqlStringBuilder.Append(" and b.locate_id=@locateId and b.locate_name=@locateName ");
|
|
|
if (!string.IsNullOrEmpty(checkStockRanges[i].PartNo))
|
|
|
SqlStringBuilder.Append(" and b.part_no=@partNo ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@zoneId", checkStockRanges[i].ZoneId);
|
|
|
dynamic.Add("@zoneName", checkStockRanges[i].ZoneName);
|
|
|
dynamic.Add("@locateId", checkStockRanges[i].LocateId);
|
|
|
dynamic.Add("@locateName", checkStockRanges[i].LocateName);
|
|
|
dynamic.Add("@partNo", string.IsNullOrEmpty(checkStockRanges[i].PartNo) ? "" : checkStockRanges[i].PartNo);
|
|
|
dynamic.Add("@factory_code", wmsChecks[0].FactoryCode);
|
|
|
dynamic.Add("@status40", (int)WmsEnumUtil.StockStatus.WAITING_INSTOCK);
|
|
|
dynamic.Add("@status50", (int)WmsEnumUtil.StockStatus.INSTOCKED);
|
|
|
dynamic.Add("@status60", (int)WmsEnumUtil.StockStatus.BATCHED);
|
|
|
dynamic.Add("@status70", (int)WmsEnumUtil.StockStatus.ONLINED);
|
|
|
dynamic.Add("@status80", (int)WmsEnumUtil.StockStatus.NC_QUARANTINE);
|
|
|
dynamic.Add("@status90", (int)WmsEnumUtil.StockStatus.NC_INSTOCK);
|
|
|
|
|
|
parameters.Add(dynamic);
|
|
|
#endregion
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
string updateOrderStatus = "update wms_check_stock set order_status=@orderStatus ,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) where order_no=@orderNo ";
|
|
|
sqlLists.Add(updateOrderStatus);
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderStatus", 20);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@orderNo", orderNoList[m]);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
bool flag = ExecuteTransaction(sqlLists, parameters);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "开启盘点成功");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "开启盘点失败");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public Hashtable onCloseCycle(string orderno, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<DynamicParameters> parameters = new List<DynamicParameters>();
|
|
|
DynamicParameters dynamic = new DynamicParameters();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
|
|
|
List<string> orders = orderno.Split(",").ToList();
|
|
|
|
|
|
for (int i = 0; i < orders.Count; i++)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" UPDATE dbo.wms_check_stock SET order_status = @orderStatus,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append(" WHERE order_no = @orderNo; ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderStatus", 60);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@orderNo", orders[i]);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
bool flag = ExecuteTransaction(sqlLists, parameters);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "盘点指令关闭完成");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "盘点指令关闭失败");
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
//完成盘点
|
|
|
public Hashtable onCompleteCycle(string orderno, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlStrings = new List<string>();
|
|
|
List<DynamicParameters> parameterList = new List<DynamicParameters>();
|
|
|
DynamicParameters dynamic = new DynamicParameters();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
|
|
|
List<string> orderNos = orderno.Split(",").ToList();
|
|
|
for (int i = 0; i < orderNos.Count; i++)
|
|
|
{
|
|
|
string sql = "select * from sap_cyco where IBLNR = @orderNo";
|
|
|
List<SapCyco> sapCycos = dbConn.Query<SapCyco>(sql, new { orderNO = orderNos[i] }).ToList();//判断接口接收单号,回传盘点结果
|
|
|
if (sapCycos.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" SELECT ISNULL(CONVERT(INT, SUM(b.fact_qty)),0) fact_qty,c.matnr as part_no,a.erp_warehouse,a.factory_id,a.factory_Code,a.order_no,c.ZEILI,b.unit ");
|
|
|
SqlStringBuilder.Append(" FROM dbo.sap_cyco c ");
|
|
|
SqlStringBuilder.Append(" LEFT JOIN dbo.wms_check_stock a ON c.IBLNR=a.order_no ");
|
|
|
SqlStringBuilder.Append(" LEFT JOIN dbo.wms_check_stock_list b ON a.order_no=b.order_no and c.matnr=b.part_no ");
|
|
|
SqlStringBuilder.Append(" WHERE a.order_no = @orderNo ");
|
|
|
SqlStringBuilder.Append(" and a.order_status in ('20','30') and a.enabled='Y' ");
|
|
|
SqlStringBuilder.Append(" GROUP BY a.erp_warehouse,a.factory_id,a.factory_Code,a.order_no,c.matnr,c.ZEILI,b.unit ");
|
|
|
|
|
|
List<WmsCheckStock> checkStocks = dbConn.Query<WmsCheckStock>(SqlStringBuilder.ToString(), new { orderNo = orderNos[i] }).ToList();
|
|
|
if (checkStocks.Count > 0)
|
|
|
{
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("INSERT INTO dbo.WMS_CYCR(IBLNR,ZEILI,MATNR,WERKS,LGORT,MENGE,MEINS,GJAHR ");
|
|
|
SqlStringBuilder.Append(" ,SID,RECTIM,SYNFLG,GUID) ");
|
|
|
SqlStringBuilder.Append(" VALUES(@IBLNR,@ZEILI,@MATNR,@WERKS,@LGORT,@MENGE,@MEINS,@GJAHR ");
|
|
|
SqlStringBuilder.Append(" ,@SID,@RECTIM,@SYNFLG,@GUID) ");
|
|
|
|
|
|
string sid = Guid.NewGuid().ToString().Replace("-", "");
|
|
|
|
|
|
for (int j = 0; j < checkStocks.Count; j++)
|
|
|
{
|
|
|
|
|
|
DynamicParameters parameters = new DynamicParameters();
|
|
|
parameters.Add("@IBLNR", checkStocks[j].OrderNo);//盘点凭证号
|
|
|
parameters.Add("@ZEILI", checkStocks[j].ZEILI);//盘点单行号
|
|
|
parameters.Add("@MATNR", checkStocks[j].PartNo);//物料编码
|
|
|
parameters.Add("@WERKS", checkStocks[j].FactoryCode);//工厂
|
|
|
parameters.Add("@LGORT", checkStocks[j].ErpWarehouse);//库存地点
|
|
|
parameters.Add("@MENGE", checkStocks[j].FactQty);//盘点数量
|
|
|
parameters.Add("@MEINS", checkStocks[j].Unit);//计量单位
|
|
|
parameters.Add("@GJAHR", DateTime.Now.ToString("yyyy"));
|
|
|
parameters.Add("@SID", sid);
|
|
|
parameters.Add("@RECTIM", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
|
|
parameters.Add("@SYNFLG", "N");
|
|
|
parameters.Add("@GUID", Guid.NewGuid().ToString());
|
|
|
|
|
|
sqlStrings.Add(SqlStringBuilder.ToString());
|
|
|
parameterList.Add(parameters);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" UPDATE dbo.wms_check_stock SET order_status = @orderStatus,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append(" WHERE order_no = @orderNo; ");
|
|
|
sqlStrings.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderStatus", 40);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@orderNo", orderNos[i]);
|
|
|
parameterList.Add(dynamic);
|
|
|
}
|
|
|
|
|
|
bool flag = ExecuteTransaction(sqlStrings, parameterList);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "完成盘点执行成功");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "完成盘点执行失败");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//复盘
|
|
|
public Hashtable onReplay(string orderNo, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
Hashtable result = new Hashtable();
|
|
|
List<string> sqlLists = new List<string>();
|
|
|
List<DynamicParameters> parameters = new List<DynamicParameters>();
|
|
|
DynamicParameters dynamic = new DynamicParameters();
|
|
|
List<string> orderNoList = orderNo.Split(",").ToList();
|
|
|
for (int i = 0; i < orderNoList.Count; i++)
|
|
|
{
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append("update wms_check_stock_list set up_trans_status=trans_status,trans_status='10',up_fact_qty=fact_qty,fact_qty='0' ");
|
|
|
SqlStringBuilder.Append(",up_dest_warehouse_id=dest_warehouse_id,dest_warehouse_id='0',up_dest_warehouse_name=dest_warehouse_name,dest_warehouse_name='' ");
|
|
|
SqlStringBuilder.Append(",up_dest_zone_id=dest_zone_id,dest_zone_id='0',up_dest_zone_name=dest_zone_name,dest_zone_name='' ");
|
|
|
SqlStringBuilder.Append(",up_dest_locate_id=dest_locate_id,dest_locate_id='0',up_dest_locate_name=dest_locate_name,dest_locate_name='' ");
|
|
|
SqlStringBuilder.Append(",update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) ");
|
|
|
SqlStringBuilder.Append("where order_no=@orderNo ");
|
|
|
sqlLists.Add(SqlStringBuilder.ToString());
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderNo", orderNoList[i]);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
parameters.Add(dynamic);
|
|
|
|
|
|
string updateOrderStatus = "update wms_check_stock set order_status=@orderStatus ,update_userid=@updateUserid, update_time = CONVERT(varchar(50), GETDATE(), 21) where order_no=@orderNo";
|
|
|
sqlLists.Add(updateOrderStatus);
|
|
|
dynamic = new DynamicParameters();
|
|
|
dynamic.Add("@orderStatus", 20);
|
|
|
dynamic.Add("@updateUserid", userId);
|
|
|
dynamic.Add("@orderNo", orderNoList[i]);
|
|
|
parameters.Add(dynamic);
|
|
|
}
|
|
|
bool flag = ExecuteTransaction(sqlLists, parameters);
|
|
|
if (flag == true)
|
|
|
{
|
|
|
result.Add("status", 1);
|
|
|
result.Add("message", "复盘执行成功");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("status", 0);
|
|
|
result.Add("message", "复盘执行失败");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public int onClose(String ids, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String delStr = "update wms_check_stock set order_status='60',update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) WHERE ruid in (" + ids + ")";
|
|
|
int result = dbConn.Execute(delStr);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//启用
|
|
|
public int EnableData(String ids, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String delStr = "update wms_check_stock set Enabled='Y',update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) WHERE ruid in (" + ids + ")";
|
|
|
int result = dbConn.Execute(delStr);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//禁用
|
|
|
public int DisableData(String ids, string userId)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
String delStr = "update wms_check_stock set Enabled='N',update_userid=" + userId + ", update_time = CONVERT(varchar(50), GETDATE(), 21) WHERE ruid in (" + ids + ")";
|
|
|
int result = dbConn.Execute(delStr);
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<CycleCountList> getCheckStockListByExportData(string strWhere)
|
|
|
{
|
|
|
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
|
|
|
{
|
|
|
dbConn.Open();
|
|
|
StringBuilder SqlStringBuilder = new StringBuilder(1024);
|
|
|
SqlStringBuilder.Append(" select a.*,b.enum_desc as sn_status_desc,c.enum_desc as trans_status_desc,cp.enum_desc as up_trans_status_desc from wms_check_stock_list a (nolock) " +
|
|
|
" LEFT JOIN sys_stock k (nolock) on a.carton_no = k.carton_no LEFT JOIN dbo.sys_enum b ON b.enum_type = 'sys_stock_status' AND k.status = b.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum c ON c.enum_type = 'wms_check_stock_list_trans_status' AND a.trans_status = c.enum_value " +
|
|
|
" LEFT JOIN dbo.sys_enum cp ON cp.enum_type = 'wms_check_stock_list_trans_status' AND a.up_trans_status = cp.enum_value ");
|
|
|
SqlStringBuilder.Append(" where " + strWhere);
|
|
|
List<CycleCountList> result = dbConn.Query<CycleCountList>(SqlStringBuilder.ToString()).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
#endregion 成员方法
|
|
|
}
|
|
|
}
|