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.

760 lines
39 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:拉动组管理
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
/// <summary>
/// 数据访问类
/// </summary>
public class PullGroupRepository : BaseRepository<WmsPullingGroup>, IPullGroupRepository
{
public PullGroupRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 获得菜单列表数据
/// </summary>
public List<WmsPullingGroup> getList(string ruid)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from wms_pulling_group (nolock) ");
if (!ruid.Trim().Equals(""))
{
strSql.Append(" where ruid=" + ruid);
}
List<WmsPullingGroup> result = dbConn.Query<WmsPullingGroup>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 获取分页数据列表
/// </summary>
public Hashtable getPullGroupListByPage(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_pulling_group a (nolock) ");
Params.Add("@Column", "*");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
List<WmsPullingGroup> dataList = dbConn.Query<WmsPullingGroup>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", Params.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 获取分页数据列表
/// </summary>
public Hashtable getPullGroupDetailListByPage(string strWhere)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select a.* from wms_pulling_group_part a (nolock) ");
SqlStringBuilder.Append("where " + strWhere);
List<WmsPullingGroupPart> dataList = dbConn.Query<WmsPullingGroupPart>(SqlStringBuilder.ToString()).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", dataList.Count());
return result;
}
}
public List<WmsPullingGroupPart> getPullGroupDetailList(string strWhere)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("select a.* from wms_pulling_group_part a (nolock) ");
SqlStringBuilder.Append("where " + strWhere);
List<WmsPullingGroupPart> dataList = dbConn.Query<WmsPullingGroupPart>(SqlStringBuilder.ToString()).ToList();
return dataList;
}
}
public List<SysPart> GetPartInfo(string part_no)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT part_id,part_no,part_spec,default_box_qty FROM sys_part (NOLOCK) WHERE enabled='Y' AND part_no LIKE '" + part_no + "%' ORDER BY part_no";
List<SysPart> result = dbConn.Query<SysPart>(sql).ToList();
return result;
}
}
public List<KeyValueResult> GetErpwarehouse()
{
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' ";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql).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()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select warehouse_id as [value],warehouse_desc as [key] from sys_warehouse where Enabled = 'Y'");
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<KeyValueResult> getSelectZone()
{
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'");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
public List<KeyValueResult> getSelectVendor()
{
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'");
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)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT part_id as [value],part_no as [key] FROM sys_part (NOLOCK) WHERE enabled='Y' 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<KeyValueResult> GetOrderType()
{
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_PullGroup_order_type' and enabled='Y'";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql).ToList();
return result;
}
}
public List<SysPart> GetPart(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";
DynamicParameters param = new DynamicParameters();
param.Add("@part_type", type);
List<SysPart> result = dbConn.Query<SysPart>(sql, param).ToList();
return result;
}
}
public List<SysPdline> GetPdlineByPdlineId(int pdlineId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT * FROM sys_pdline (NOLOCK) WHERE enabled='Y' and pdline_id='" + pdlineId + "'";
List<SysPdline> result = dbConn.Query<SysPdline>(sql).ToList();
return result;
}
}
public SysPdline GetPdlineByPdlineCode(string pdlineCode)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT * FROM sys_pdline (NOLOCK) WHERE pdline_code='" + pdlineCode + "'";
SysPdline result = dbConn.Query<SysPdline>(sql).FirstOrDefault();
return result;
}
}
public List<KeyValueResult> GetPdlineByKey()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT distinct pdline_code as [value],pdline_code as [key] FROM sys_pdline (NOLOCK) WHERE enabled='Y' ORDER BY pdline_code";
DynamicParameters param = new DynamicParameters();
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(sql, param).ToList();
return result;
}
}
/// <summary>
/// 获取订单编号
/// </summary>
/// <returns></returns>
public string GetOrderNo(string stockOrder, string p)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
DynamicParameters list = new DynamicParameters();
list.Add("@order_type", stockOrder);
list.Add("@order_prefix", p);
list.Add("@order_no", null, DbType.String, ParameterDirection.Output, 50);
var hashtable = dbConn.Execute("sys_create_orderno", list, commandType: CommandType.StoredProcedure);
string result = list.Get<string>("@order_no");
return result;
}
}
public bool saveHandPullGroup(string groupCode, string handPullQty)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
List<string> sqlList = new List<string>();
List<DynamicParameters> parametersList = new List<DynamicParameters>();
DynamicParameters parameters = new DynamicParameters();
#region
string checkPullingGroupSql = @"select * from [dbo].[wms_pulling_group] where group_code = '" + groupCode + "'";
List<WmsPullingGroup> wmsPulling = dbConn.Query<WmsPullingGroup>(checkPullingGroupSql).ToList();
for (int j = 0; j < wmsPulling.Count; j++)
{
string getPullingGroupCumulativeValueSql = @"select * from [dbo].[wms_pulling_group] (nolock) where group_code='" + wmsPulling[j].GroupCode + "' and pdline_code = '" + wmsPulling[j].PdlineCode + "'";
List<WmsPullingGroup> wmsPullingGroup = dbConn.Query<WmsPullingGroup>(getPullingGroupCumulativeValueSql).ToList();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" select * from mes_work_order_part k (nolock) where k.order_no in (select distinct top " + handPullQty + " a.order_no from mes_work_order_part a (nolock) left join mes_work_order b (nolock) on a.order_no = b.order_no and a.parent_part_no = b.part_no ");
SqlStringBuilder.Append(" where a.part_no in (select part_no from[dbo].[wms_pulling_group_part] a (nolock) left join[dbo].[wms_pulling_group] b (nolock) on a.group_code = b.group_code ");
SqlStringBuilder.Append(" where b.group_code = '" + wmsPulling[j].GroupCode + "' and pdline_code = '" + wmsPulling[j].PdlineCode + "' and a.enabled='Y' and b.enabled='Y') and a.pull_status = 10 and pdline_code = '" + wmsPulling[j].PdlineCode + "' order by a.order_no ) ");
SqlStringBuilder.Append(" and k.part_no in (select part_no from[dbo].[wms_pulling_group_part] a (nolock) left join[dbo].[wms_pulling_group] b (nolock) on a.group_code = b.group_code ");
SqlStringBuilder.Append(" where b.group_code = '" + wmsPulling[j].GroupCode + "' and pdline_code = '" + wmsPulling[j].PdlineCode + "' and a.enabled='Y' and b.enabled='Y') ");
List<MesWorkOrderPart> mesWorkOrderParts = dbConn.Query<MesWorkOrderPart>(SqlStringBuilder.ToString()).ToList();
if (mesWorkOrderParts.Count > 0)
{
List<MesWorkOrderPart> storeInfoList = mesWorkOrderParts.GroupBy(x => new { x.PartNo, x.FactoryId, x.FactoryCode })
.Select(g => new MesWorkOrderPart { PartNo = g.Key.PartNo, FactoryId = g.Key.FactoryId, FactoryCode = g.Key.FactoryCode, Qty = g.Sum(b => b.Qty) }).ToList();
var orderNo = GetOrderNo("ShiftProduction", "P");//生产领料
for (int i = 0; i < storeInfoList.Count; i++)
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.wms_move_detail ");
SqlStringBuilder.Append(" (order_no,item_no,part_id,part_no,part_spec,qty,pick_qty,out_qty,rec_qty ");
SqlStringBuilder.Append(" ,unit,plan_date,plan_time,item_status,src_warehouse_id,src_warehouse_name,dest_warehouse_id ");
SqlStringBuilder.Append(" ,dest_warehouse_name,src_zone_id,src_zone_name,dest_zone_id,dest_zone_name,src_erp_warehouse,dest_erp_warehouse,factory_id ");
SqlStringBuilder.Append(" ,factory_code,enabled,create_userid,create_time,guid) ");
SqlStringBuilder.Append(" VALUES(@orderNo,@itemNo,@partId,@partNo,@partSpec,@qty,@pickQty,@outQty,@recQty,@unit,@planDate ");
SqlStringBuilder.Append(" ,@planTime,@itemStatus,@srcWarehouseId,@srcWarehouseName,@destWarehouseId,@destWarehouseName ");
SqlStringBuilder.Append(" ,@srcZoneId,@srcZoneName,@destZoneId,@destZoneName,@srcErpWarehouse,@destErpWarehouse ");
SqlStringBuilder.Append(" ,@factoryId,@factoryCode,@enabled,@createUserid,@createTime,@guid) ");
sqlList.Add(SqlStringBuilder.ToString());
parameters = new DynamicParameters();
parameters.Add("@orderNo", orderNo);//生产领料单
parameters.Add("@itemNo", (i + 1) * 10);//序号
StringBuilder partNoStringBuilder = new StringBuilder(1024);
partNoStringBuilder.Append("select * from sys_part (nolock) where part_no='" + storeInfoList[i].PartNo + "'");//零件号ID
List<SysPart> sysParts = dbConn.Query<SysPart>(partNoStringBuilder.ToString()).ToList();
if (sysParts.Count > 0)
{
parameters.Add("@partId", sysParts[0].PartId);//
parameters.Add("@partNo", sysParts[0].PartNo);//零件号
parameters.Add("@partSpec", sysParts[0].PartSpec);//简码
parameters.Add("@unit", sysParts[0].Unit);//单位
}
else
{
parameters.Add("@partId", 0);//零件号ID
parameters.Add("@partNo", storeInfoList[i].PartNo);//零件号
parameters.Add("@partSpec", "");//简码
parameters.Add("@unit", "");//单位
}
parameters.Add("@qty", storeInfoList[i].Qty);//数量
parameters.Add("@pickQty", 0);//
parameters.Add("@outQty", 0);//
parameters.Add("@recQty", 0);//
parameters.Add("@planDate", "");//计划日期
parameters.Add("@planTime", "");//计划时间
parameters.Add("@itemStatus", "10");//状态
parameters.Add("@srcWarehouseId", 0);//源仓库ID
parameters.Add("@srcWarehouseName", "");//源仓库
parameters.Add("@srcZoneId", 0);//源库区ID
parameters.Add("@srcZoneName", "");//源库区
parameters.Add("@srcErpWarehouse", "");//源ERP库存地
string sqlPull = "SELECT * FROM dbo.wms_pulling_group (nolock) where group_code = '" + wmsPulling[j].GroupCode + "'";
WmsPullingGroup pullingGroup = dbConn.QueryFirstOrDefault<WmsPullingGroup>(sqlPull);
if (pullingGroup != null)
{
parameters.Add("@destWarehouseId", 0);//目标仓库ID
parameters.Add("@destWarehouseName", "");//目标仓库
parameters.Add("@destZoneId", 0);//目标库区ID
parameters.Add("@destZoneName", pullingGroup.GroupName);//目标库区
parameters.Add("@destErpWarehouse", "");//目标ERP库存地
}
else
{
parameters.Add("@destWarehouseId", 0);//目标仓库ID
parameters.Add("@destWarehouseName", "");//目标仓库
parameters.Add("@destZoneId", 0);//目标库区ID
parameters.Add("@destZoneName", "");//目标库区
parameters.Add("@destErpWarehouse", "");//目标ERP库存地
}
parameters.Add("@factoryId", storeInfoList[0].FactoryId);//工厂ID
parameters.Add("@factoryCode", storeInfoList[0].FactoryCode);//工厂代码
parameters.Add("@enabled", "Y");
parameters.Add("@createUserid", 0);
parameters.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//更新日期
parameters.Add("@guid", Guid.NewGuid().ToString());//
parametersList.Add(parameters);
}
StringBuilder stringBuilderSQL = new StringBuilder(1024);
stringBuilderSQL.Append("INSERT INTO dbo.wms_move_header ");
stringBuilderSQL.Append(" (order_no,order_type,order_status,ref_order_no,factory_id,factory_code ");
stringBuilderSQL.Append(" ,enabled,create_userid,create_time,guid) ");
stringBuilderSQL.Append(" VALUES(@orderNo,@orderType,@orderStatus,@refOrderNo ");
stringBuilderSQL.Append(" ,@factoryId,@factoryCode,@enabled,@createUserid ");
stringBuilderSQL.Append(" ,@createTime,@guid) ");
sqlList.Add(stringBuilderSQL.ToString());
parameters = new DynamicParameters();
parameters.Add("@orderNo", orderNo);//生产领料单
parameters.Add("@orderType", (int)WmsEnumUtil.MoveOrderType.PICK);//生产领料单
parameters.Add("@orderStatus", (int)WmsEnumUtil.MoveOrderStatus.CREATE);//已创建
parameters.Add("@refOrderNo", "成品下线大件拉动");//
parameters.Add("@factoryId", mesWorkOrderParts[0].FactoryId);//
parameters.Add("@factoryCode", mesWorkOrderParts[0].FactoryCode);//
parameters.Add("@enabled", "Y");//
parameters.Add("@createUserid", 0);//
parameters.Add("@createTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));//更新日期
parameters.Add("@guid", Guid.NewGuid().ToString());//
parametersList.Add(parameters);
for (int i = 0; i < mesWorkOrderParts.Count; i++)
{
for (int k = 0; k < storeInfoList.Count; k++)
{
stringBuilderSQL = new StringBuilder(1024);
stringBuilderSQL.Append("update mes_work_order_part set pull_status =@pullStatus where order_no=@order_no and part_no=@part_no");
sqlList.Add(stringBuilderSQL.ToString());
parameters = new DynamicParameters();
parameters.Add("@order_no", mesWorkOrderParts[i].OrderNo);//id
parameters.Add("@part_no", storeInfoList[k].PartNo);//id
parameters.Add("@pullStatus", "20");//
parametersList.Add(parameters);
}
}
}
}
return InsertData(sqlList, parametersList);
#endregion
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int savePullGroup(WmsPullingGroup htParams, IList<WmsPullingGroupPart> htDetailParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
for (int i = 0; i < htDetailParams.Count; i++)
{
htDetailParams[i].GroupCode = htParams.GroupCode;
htDetailParams[i].GroupName = htParams.GroupName;
}
dbConn.Open();
List<string> SqlStrings = new List<string>();
List<object> Parameters = new List<object>();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.wms_pulling_group ");
SqlStringBuilder.Append(" (group_code,group_name,pulling_type,pdline_code,pdline_name,kitting_qty,triggerValue,pullValue,is_auto_print,print_copies ");
SqlStringBuilder.Append(" ,printer,print_template,factory_id,factory_code,enabled,create_userid,create_time,guid) ");
SqlStringBuilder.Append(" VALUES(@groupCode,@groupName,@pullingType,@pdlineCode,@pdlineName,@kittingQty,@triggerValue,@pullValue,@isAutoPrint,@printCopies ");
SqlStringBuilder.Append(" ,@printer,@printTemplate,@factoryId,@factoryCode,@enabled,@createUserid,CONVERT(varchar(50), GETDATE(), 21),newid()) ");
SqlStrings.Add(SqlStringBuilder.ToString());
Parameters.Add(htParams);
StringBuilder SqlDetailStringBuilder = new StringBuilder(1024);
SqlDetailStringBuilder.Append("INSERT INTO dbo.wms_pulling_group_part ");
SqlDetailStringBuilder.Append(" (group_code,group_name,part_id,part_no,part_spec,pull_qty,factory_id ");
SqlDetailStringBuilder.Append(" ,factory_code,enabled,create_userid,create_time,guid) ");
SqlDetailStringBuilder.Append(" VALUES(@groupCode,@groupName,@partId,@partNo,@partSpec,@pullQty,@factoryId ");
SqlDetailStringBuilder.Append(" ,@factoryCode,@enabled,@createUserid,CONVERT(varchar(50), GETDATE(), 21), newid()) ");
SqlStrings.Add(SqlDetailStringBuilder.ToString());
Parameters.Add(htDetailParams);
IDbTransaction transaction = dbConn.BeginTransaction();
try
{
for (int i = 0; i < SqlStrings.Count; i++)
{
dbConn.Execute(SqlStrings[i], Parameters[i], transaction);
}
transaction.Commit();
return 1;
}
catch (Exception ex)
{
transaction.Rollback();
return 0;
}
}
}
public int updatePullGroup(WmsPullingGroup htParams, IList<WmsPullingGroupPart> htDetailParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
for (int i = 0; i < htDetailParams.Count; i++)
{
htDetailParams[i].GroupCode = htParams.GroupCode;
htDetailParams[i].GroupName = htParams.GroupName;
}
dbConn.Open();
List<string> SqlStrings = new List<string>();
List<object> Parameters = new List<object>();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.wms_pulling_group ");
SqlStringBuilder.Append(" SET group_code = @groupCode,group_name = @groupName ");
SqlStringBuilder.Append(" ,triggerValue = @triggerValue,pullValue = @pullValue ");
SqlStringBuilder.Append(" ,pulling_type = @pullingType,pdline_name = @pdlineName ");
SqlStringBuilder.Append(" ,pdline_code = @pdlineCode,kitting_qty = @kittingQty ");
SqlStringBuilder.Append(" ,is_auto_print = @isAutoPrint,print_copies = @printCopies ");
SqlStringBuilder.Append(" ,factory_id = @factoryId,factory_code = @factoryCode ");
SqlStringBuilder.Append(" ,enabled = @enabled,update_userid = @updateUserid ");
SqlStringBuilder.Append(" ,update_time = @updateTime ");
SqlStringBuilder.Append(" WHERE group_code=@groupCode ");
SqlStrings.Add(SqlStringBuilder.ToString());
Parameters.Add(htParams);
for (int i = 0; i < htDetailParams.Count; i++)
{
string sql = "SELECT * FROM wms_pulling_group_part (NOLOCK) WHERE group_code='" + htDetailParams[i].GroupCode + "' and part_no='" + htDetailParams[i].PartNo + "' ";
List<WmsPullingGroupPart> pullingGroupParts = dbConn.Query<WmsPullingGroupPart>(sql).ToList();
if (pullingGroupParts.Count > 0)
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.wms_pulling_group_part ");
SqlStringBuilder.Append(" SET group_code = @groupCode,group_name = @groupName ");
SqlStringBuilder.Append(" ,part_id = @partId,part_no = @partNo ");
SqlStringBuilder.Append(" ,part_spec = @partSpec,pull_qty = @pullQty ");
SqlStringBuilder.Append(" ,factory_id = @factoryId,factory_code = @factoryCode ");
SqlStringBuilder.Append(" ,enabled = @enabled,update_userid = @updateUserid ");
SqlStringBuilder.Append(" ,update_time = @updateTime ");
SqlStringBuilder.Append(" WHERE group_code = @groupCode and part_no=@partNo ");
SqlStrings.Add(SqlStringBuilder.ToString());
Parameters.Add(htDetailParams[i]);
}
else
{
SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.wms_pulling_group_part ");
SqlStringBuilder.Append(" (group_code,group_name,part_id,part_no,part_spec,pull_qty,factory_id ");
SqlStringBuilder.Append(" ,factory_code,enabled,create_userid,create_time,guid) ");
SqlStringBuilder.Append(" VALUES(@groupCode,@groupName,@partId,@partNo,@partSpec,@pullQty,@factoryId ");
SqlStringBuilder.Append(" ,@factoryCode,@enabled,@createUserid,CONVERT(varchar(50), GETDATE(), 21), newid()) ");
SqlStrings.Add(SqlStringBuilder.ToString());
Parameters.Add(htDetailParams[i]);
}
}
string sqlStr = "SELECT * FROM wms_pulling_group_part (NOLOCK) WHERE group_code='" + htParams.GroupCode + "' and factory_code='" + htParams.FactoryCode + "' ";
List<WmsPullingGroupPart> wmsPullingGroupParts = dbConn.Query<WmsPullingGroupPart>(sqlStr).ToList();
StringBuilder stringBuilderDel = new StringBuilder(1024);
for (int i = 0; i < wmsPullingGroupParts.Count; i++)
{
WmsPullingGroupPart wmsPullingGroupPart = htDetailParams.Where(a => a.PartNo == wmsPullingGroupParts[i].PartNo).FirstOrDefault();
if (wmsPullingGroupPart == null)
{
stringBuilderDel.Append("delete from dbo.wms_pulling_group_part (nolock) where group_code=@groupCode and part_no=@partNo ");
SqlStrings.Add(stringBuilderDel.ToString());
DynamicParameters dynamicParameters = new DynamicParameters();
dynamicParameters.Add("@groupCode", htParams.GroupCode);
dynamicParameters.Add("@partNo", wmsPullingGroupParts[i].PartNo);
Parameters.Add(dynamicParameters);
}
}
IDbTransaction transaction = dbConn.BeginTransaction();
try
{
for (int i = 0; i < SqlStrings.Count; i++)
{
dbConn.Execute(SqlStrings[i], Parameters[i], transaction);
}
transaction.Commit();
return 1;
}
catch (Exception ex)
{
transaction.Rollback();
return 0;
}
}
}
/// <summary>
/// 获得零件信息
/// </summary>
/// <returns></returns>
public List<SysPart> GetPartNoInfo(string part_no)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT part_id,part_no,part_spec,default_box_qty FROM sys_part (NOLOCK) WHERE enabled='Y' AND part_no LIKE '%" + part_no + "%' ORDER BY part_no";
List<SysPart> result = dbConn.Query<SysPart>(sql).ToList();
return result;
}
}
/// <summary>
/// 获得零件简码信息
/// </summary>
/// <returns></returns>
public List<SysPart> GetPartSpecInfo(string partSpec)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT part_id,part_no,part_spec,default_box_qty FROM sys_part (NOLOCK) WHERE enabled='Y' AND part_spec LIKE '%" + partSpec + "%' ORDER BY part_no";
List<SysPart> result = dbConn.Query<SysPart>(sql).ToList();
return result;
}
}
//启用
public int EnableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_pulling_group set Enabled='Y' WHERE group_code in (" + ids + ")";
int result = dbConn.Execute(delStr);
String detailStr = "update wms_pulling_group_part set Enabled='Y' WHERE group_code in (" + ids + ")";
int datailResult = dbConn.Execute(detailStr);
return datailResult;
}
}
//禁用
public int DisableData(String ids)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_pulling_group set Enabled='N' WHERE group_code in (" + ids + ")";
int result = dbConn.Execute(delStr);
String detailStr = "update wms_pulling_group_part set Enabled='N' WHERE group_code in (" + ids + ")";
int datailResult = dbConn.Execute(detailStr);
return datailResult;
}
}
public PullGroup ifExistsPullGroup(string groupCode)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT * FROM wms_pulling_group (NOLOCK) WHERE group_code = '" + groupCode + "'";
PullGroup result = dbConn.Query<PullGroup>(sql).FirstOrDefault();
return result;
}
}
public PullGroup ifExistsPullGroupPart(string groupCode, string partNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = "SELECT * FROM wms_pulling_group_part (NOLOCK) WHERE group_code = '" + groupCode + "' and part_no='" + partNo + "'";
PullGroup result = dbConn.Query<PullGroup>(sql).FirstOrDefault();
return result;
}
}
public List<PullGroup> getExportList(string strWhere, string orderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string sql = @"select b.group_code,b.group_name,case when b.pulling_type=10 then 'JIT蓝卡队列' when b.pulling_type=20 then 'JIT指示票队列' end pulling_type
,b.pdline_code,b.kitting_qty,b.triggerValue,b.pullValue,a.part_id,part_no,part_spec,a.pull_qty
from wms_pulling_group_part a (nolock) left join wms_pulling_group b (nolock) on a.group_code=b.group_code
where " + strWhere + orderBy + " ";
List<PullGroup> result = dbConn.Query<PullGroup>(sql).ToList();
return result;
}
}
//事务批量执行添加、修改
public bool InsertData(List<string> sqlStrings, List<DynamicParameters> parameterList)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
if (dbConn.State == ConnectionState.Closed)
{
dbConn.Open();
}
//执行事务
IDbTransaction transaction = dbConn.BeginTransaction();
if (parameterList == null || parameterList.Count == 0)
{
try
{
for (int i = 0; i < sqlStrings.Count; i++)
{
dbConn.Execute(sqlStrings[i], null, transaction);
}
transaction.Commit();
return true;
}
catch (Exception exception)
{
transaction.Rollback();
return false;
}
}
else
{
try
{
for (int i = 0; i < sqlStrings.Count; i++)
{
dbConn.Execute(sqlStrings[i], parameterList[i], transaction);
}
transaction.Commit();
return true;
}
catch (Exception exception)
{
transaction.Rollback();
return false;
}
}
}
}
#endregion 成员方法
}
}