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 { /// /// 数据访问类 /// public class PullGroupRepository : BaseRepository, IPullGroupRepository { public PullGroupRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 /// /// 获得菜单列表数据 /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 获取分页数据列表 /// 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 dataList = dbConn.Query("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", Params.Get("@TotalCount")); return result; } } /// /// 获取分页数据列表 /// 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 dataList = dbConn.Query(SqlStringBuilder.ToString()).ToList(); result.Add("dataList", dataList); result.Add("totalCount", dataList.Count()); return result; } } public List 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 dataList = dbConn.Query(SqlStringBuilder.ToString()).ToList(); return dataList; } } public List 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 result = dbConn.Query(sql).ToList(); return result; } } public List 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 result = dbConn.Query(strSql).ToList(); return result; } } /// /// 获取下拉框菜单数据 这里显示的是待添加的厂区信息,厂区名称 /// /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(sql, param).ToList(); return result; } } public List 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 result = dbConn.Query(sql).ToList(); return result; } } public List 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 result = dbConn.Query(sql, param).ToList(); return result; } } public List 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 result = dbConn.Query(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(sql).FirstOrDefault(); return result; } } public List 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 result = dbConn.Query(sql, param).ToList(); return result; } } /// /// 获取订单编号 /// /// 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("@order_no"); return result; } } public bool saveHandPullGroup(string groupCode, string handPullQty) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List sqlList = new List(); List parametersList = new List(); DynamicParameters parameters = new DynamicParameters(); #region string checkPullingGroupSql = @"select * from [dbo].[wms_pulling_group] where group_code = '" + groupCode + "'"; List wmsPulling = dbConn.Query(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 = dbConn.Query(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 mesWorkOrderParts = dbConn.Query(SqlStringBuilder.ToString()).ToList(); if (mesWorkOrderParts.Count > 0) { List 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 sysParts = dbConn.Query(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(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 } } /// /// 插入菜单数据 /// /// /// public int savePullGroup(WmsPullingGroup htParams, IList 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 SqlStrings = new List(); List Parameters = new List(); 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 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 SqlStrings = new List(); List Parameters = new List(); 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 pullingGroupParts = dbConn.Query(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 wmsPullingGroupParts = dbConn.Query(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; } } } /// /// 获得零件信息 /// /// public List 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 result = dbConn.Query(sql).ToList(); return result; } } /// /// 获得零件简码信息 /// /// public List 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 result = dbConn.Query(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(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(sql).FirstOrDefault(); return result; } } public List 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 result = dbConn.Query(sql).ToList(); return result; } } //事务批量执行添加、修改 public bool InsertData(List sqlStrings, List 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 成员方法 } }