using Dapper; using Estsh.Core.Dapper; using Estsh.Core.Models; using Estsh.Core.Repository.IRepositories; using System.Collections; using System.Data; using System.Text; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:WMS采购订单管理模块数据库访问类 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理菜单模块的业务数据 /// public class OrderManageRepository : BaseRepository, IOrderManageRepository { public OrderManageRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } #region 成员方法 //获取采购订单数据 public List getDataList(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "select * from SAP_DSPO where WEEKNO='" + weekNo + "' order by EVRTP "; List list = dbConn.Query(sql).ToList(); return list; } } public List getPartByNo(string partNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "select * from sys_part where part_no='" + partNo + "' "; List list = dbConn.Query(sql).ToList(); return list; } } 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);// this._remotingProxy.ExecuteSotreProcedure("dbo.sys_create_orderno", list); string result = list.Get("@order_no"); return result; } } public List getVendorByNo(string vendor_code) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "select * from sys_vendor where vendor_code='" + vendor_code + "' "; List list = dbConn.Query(sql).ToList(); return list; } } public string GetOrderNo() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); DynamicParameters parameter = new DynamicParameters(); parameter.Add("@orderNo", null, DbType.String, ParameterDirection.Output, 255); List depts = dbConn.Query("sys_create_sapo_no", parameter, commandType: CommandType.StoredProcedure).ToList(); return parameter.Get("@orderNo"); } } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getQueryMainListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy, int empId) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); StringBuilder table = new StringBuilder(); table.Append(" ( "); table.Append(" SELECT DISTINCT a.weekno,d.vendor_name, a.recymd, a.recusr, b.emp_name, a.werks AS factory_code, c.factory_name, "); table.Append(" a.lgort,(CASE a.staflg WHEN '1' THEN '已发布' WHEN '2' THEN '已确认' WHEN '3' THEN '已备货' WHEN '4' THEN '已发货' ELSE '已导入' END) AS staflg "); table.Append(" FROM dbo.SAP_DSPO a "); table.Append(" LEFT JOIN sys_emp b ON a.recusr = b.emp_id "); table.Append(" LEFT JOIN dbo.sys_factory c ON a.werks = c.factory_code "); table.Append(" LEFT JOIN dbo.sys_vendor AS d ON a.lifnr=d.vendor_code "); table.Append("WHERE 1=1 and a.weekno<>'' AND a.recusr=" + empId); table.Append(strWhere); table.Append(" ) a "); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output); parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output); parameters.Add("@Table", table.ToString()); parameters.Add("@Column", "*"); parameters.Add("@OrderColumn", OrderBy); parameters.Add("@GroupColumn", ""); parameters.Add("@PageSize", PageSize); parameters.Add("@CurrentPage", PageIndex); parameters.Add("@Group", 0); parameters.Add("@Condition", ""); List depts = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", depts); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } /// /// 根据分页条件获取分页数据列表(明细) /// public List getQueryDetailList(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT a.ebeln AS order_no, a.evrtp, a.lifnr AS vendor_code, d.vendor_name, "); SqlStringBuilder.Append(" a.matnr AS part_no, f.part_spec, f.part_id, a.zdev_num, a.unit, "); SqlStringBuilder.Append(" dbo.sap2wms_ymd(a.zdate) AS zdate, dbo.sap2wms_hms(a.zcjsj) AS zcjsj, "); SqlStringBuilder.Append(" a.werks AS factory_code, c.factory_name, a.lgort, a.bstrf, a.prnnum, "); SqlStringBuilder.Append(" a.recusr, b.emp_name, a.weekno "); SqlStringBuilder.Append("FROM dbo.SAP_DSPO a "); SqlStringBuilder.Append(" LEFT JOIN sys_emp b ON a.recusr = b.emp_id "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_factory c ON a.werks = c.factory_code "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor d ON a.lifnr = d.vendor_code "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part f ON a.matnr = f.part_no "); SqlStringBuilder.Append("WHERE 1 = 1 "); SqlStringBuilder.Append(" and a.weekno = @weekno"); SqlStringBuilder.Append(" Order by a.ebeln desc "); DynamicParameters ht = new DynamicParameters(); ht.Add("@weekno", weekNo == null ? "" : weekNo); List result = dbConn.Query(SqlStringBuilder.ToString(), ht).ToList(); return result; } } /// /// 判断是否已生成条码 /// /// /// public bool IsBuildCode(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT TOP 1 1 "); SqlStringBuilder.Append("FROM wms_dspod a "); SqlStringBuilder.Append(" JOIN sap_dspo b ON a.ebeln = b.ebeln "); SqlStringBuilder.Append("WHERE b.weekno = @weekno "); DynamicParameters ht = new DynamicParameters(); ht.Add("@weekno", weekNo); List result = dbConn.Query(SqlStringBuilder.ToString(), ht).ToList(); return result.Count > 0 ? true : false; } } public string getUpdateSapDspo() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("update dbo.SAP_DSPO set STAFLG = '1' where WEEKNO = @weekno"); return SqlStringBuilder.ToString(); } } /// /// 获得插入条码数据的sql语句 /// /// public string getInsertBuildCodeSql() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(); SqlStringBuilder.Append("INSERT INTO WMS_DSPOD(EBELN,EVRTP,MATNR,ZDEV_NUM,BSTRF,ZTXM,PRNSTA) "); SqlStringBuilder.Append("VALUES(@EBELN,@EVRTP,@MATNR,@ZDEV_NUM,@BSTRF,@ZTXM,@PRNSTA) "); return SqlStringBuilder.ToString(); } } /// /// 执行Sql语句 /// /// /// /// public bool ExecuteSqlTransaction(List sqlStrings, List parameters) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); IDbTransaction transaction = dbConn.BeginTransaction(); try { for (int i = 0; i < sqlStrings.Count; i++) { dbConn.Execute(sqlStrings[i], parameters[i], transaction); } transaction.Commit(); return true; } catch (Exception ex) { transaction.Rollback(); return false; } } } /// /// 根据周计划单号获取箱条码信息 /// /// /// public List GetCartonNo(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select DISTINCT a.ebeln AS order_no,a.lifnr AS vendor_code,d.vendor_name, "); SqlStringBuilder.Append(" a.matnr AS part_no, f.part_spec,w.zdev_num, "); SqlStringBuilder.Append(" dbo.sap2wms_ymd(a.zdate) AS zdate, "); SqlStringBuilder.Append(" f.option3 ,w.ZTXM as carton_no,a.REVNO as version ,w.evrtp "); SqlStringBuilder.Append("from WMS_DSPOD w "); SqlStringBuilder.Append(" left join SAP_DSPO a on w.EBELN = a.ebeln and w.evrtp=a.evrtp "); SqlStringBuilder.Append(" LEFT JOIN sys_emp b ON a.recusr = b.emp_id "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor d ON a.lifnr = d.vendor_code "); SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part f ON a.matnr = f.part_no "); SqlStringBuilder.Append("WHERE 1 = 1 "); SqlStringBuilder.Append(" and a.weekno = @weekno"); SqlStringBuilder.Append(" order by a.ebeln,zdate,w.ZTXM asc"); DynamicParameters ht = new DynamicParameters(); ht.Add("@weekno", weekNo); List result = dbConn.Query(SqlStringBuilder.ToString(), ht).ToList(); return result; } } /// /// 判断条码是否已导出 /// /// /// public bool GetDspoYN(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "select top 1 1 from SAP_DSPO where ACTFLG <> 'Y' and weekno = '" + weekNo + "'"; List result = dbConn.Query(sql).ToList(); return result.Count > 0 ? true : false; } } /// /// 修改SAP打印标志 /// /// /// public bool UpdateData(string weekNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "update SAP_DSPO SET PRNNUM=ZDEV_NUM,ACTFLG='Y',ACTYMD=DBO.GET_YMD(),ACTHMS=DBO.GET_HMS() where weekno= '" + weekNo + " ' "; int obj = dbConn.Execute(sql); if (obj == 0) return false; else return true; } } /// ///获取客户名称 /// /// /// public string GetFactoryName() { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("select DISTINCT a.factory_name from sys_factory a WHERE a.enabled='Y' "); object obj = dbConn.ExecuteScalar(SqlStringBuilder.ToString()); if (obj == null) return string.Empty; else return obj.ToString(); } } /// /// 获取单号条码数量 /// /// /// public int GetWmsCodeCount(string orderNo, string partNo, string evrtp) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "select COUNT(1) from WMS_DSPOD where ebeln='" + orderNo + "' and matnr='" + partNo + "' and evrtp='" + evrtp + "'"; object obj = dbConn.ExecuteScalar(sql); return Convert.ToInt32(obj); } } /// /// 获取第一模板明细 /// /// /// public List> GetExpInfo(string orderNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); List> resultSet = new List>(); DynamicParameters param = new DynamicParameters(); param.Add("@orderNo", orderNo); string strSqlo = @" select DISTINCT a.lifnr,a.recymd,sv.vendor_name,sv.vendor_tel,sv.vendor_fax,sv.vendor_mtel,sv.vendor_sale, se.emp_name,a.lgort from SAP_DSPO a left join sys_vendor sv on a.lifnr=sv.vendor_code left join sys_emp se on a.recusr=se.emp_id where a.ebeln=@orderNo"; List result1 = dbConn.Query(strSqlo, param).ToList(); resultSet.Add(result1); string strSqlt = @" select distinct a.matnr as part_no,sp.part_spec as PartDesc,a.prnnum as Qty,dbo.sap2wms_ymd(a.zdate) as InDate from SAP_DSPO a left join sys_part sp on sp.part_no=a.matnr where a.ebeln=@orderNo order by a.matnr,dbo.sap2wms_ymd(a.zdate)"; List result2 = dbConn.Query(strSqlt, param).ToList(); resultSet.Add(result2); string strSqls = @" select distinct a.matnr,sp.part_spec from SAP_DSPO a left join sys_part sp on sp.part_no=a.matnr where a.ebeln=@orderNo"; List result3 = dbConn.Query(strSqls, param).ToList(); resultSet.Add(result3); return resultSet; } } /// /// 获取导入数据最早时间 /// /// /// public List GetStartDate(string orderNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = @"select distinct dbo.sap2wms_ymd(a.zdate) as InDate from SAP_DSPO a where a.ebeln='" + orderNo + "' order by dbo.sap2wms_ymd(a.zdate) asc"; List result = dbConn.Query(sql).ToList(); return result; } } /// /// 条码明细 /// /// public List GetCodeDetail(string orderNo) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = @"SELECT f.factory_name, v.vendor_name, p.part_spec, p.option3, a.EBELN + '_' + a.REVNO as order_no, a.EVRTP, a.LIFNR, a.MATNR, a.ZDATE, a.WERKS, b.ZTXM, b.ZDEV_NUM, a.ZDEV_NUM, a.BSTRF, CONVERT(VARCHAR(4),CONVERT(INT,SUBSTRING(b.ztxm,14,4)))+'/'+CONVERT(VARCHAR(4),CEILING(a.ZDEV_NUM/a.BSTRF)) as seq FROM dbo.SAP_DSPO a JOIN dbo.WMS_DSPOD b ON a.EBELN = b.EBELN AND a.EVRTP = b.EVRTP JOIN dbo.sys_factory f ON a.werks = f.factory_code JOIN dbo.sys_part p ON a.matnr = p.part_no JOIN dbo.sys_vendor v ON a.lifnr = v.vendor_code WHERE a.EBELN = '" + orderNo + "'order by a.ZDATE,a.ebeln,b.ZTXM asc"; List result = dbConn.Query(sql).ToList(); return result; } } /// /// 删除用户数据 /// /// /// public int deleteOrder(String ids) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder delStr = new StringBuilder(); delStr.Append(" update SAP_DSPO set Enabled='N' WHERE weekno IN ( @weekno ) "); DynamicParameters htparams = new DynamicParameters(); htparams.Add("@weekno", ids); int result = dbConn.Execute(delStr.ToString(), htparams); return result; } } //启用 public int EnableData(String ids) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); String delStr = "update SAP_DSPO set Enabled='Y' WHERE weekno in (@weekno)"; DynamicParameters htparams = new DynamicParameters(); htparams.Add("@weekno", ids); int result = dbConn.Execute(delStr, htparams); return result; } } //禁用 public int DisableData(String ids) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); String delStr = "update SAP_DSPO set Enabled='N' WHERE weekno in (@weekno)"; DynamicParameters htparams = new DynamicParameters(); htparams.Add("@weekno", ids); int result = dbConn.Execute(delStr, htparams); return result; } } #endregion 成员方法 } }