BaoKai_202508-Wms-Jingwang..../WMS.SqlServerData/SCData/GoodsMaterialData.cs

153 lines
6.8 KiB
C#
Raw Normal View History

2025-08-24 09:35:55 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using WMS.DBUtility;
using WMS.IData.ICK;
using WMS.IData;using Oracle.ManagedDataAccess.Client;
using WMS.Model.CK;
using WMS.Model.SC;
using WMS.IData.ISC;
namespace WMS.SqlServerData.SCData
{
public class GoodsMaterialData : IGoodsMaterial
{
/// <summary>
/// 获取商品原材料对应关系
/// </summary>
/// <returns>商品原材料对应关系</returns>
public DataTable GetGoodsMaterialDT(GoodsMaterialModel model)
{
string strSql= string.Format(@"select
a.GOODS_ID,
a.MATERIAL_ID,
a.STAND_NUM,
a.MAX_NUM,
a.LOSS_PERCENT,
a.OPERAT_MAN,
a.OPERAT_DATE,
a.REMARK,
a.UNIT,
t.VC_DICTIONARY_NAME UNIT_NAME,
a.PRICE,
b.goods_name,
c.goods_name MATERIAL_NAME ,a.GOODS_NUM,a.SCALING, a.WIP_ENTITY
FROM T_SC_GOODS_MATERIAL a
left join t_base_goods b
on a.goods_id = b.goods_id
left join t_base_goods c
on a.MATERIAL_ID = c.goods_id
left join T_SYS_DICTIONARY_TAB t
on a.UNIT = t.VC_CHAR_VALUE and t.Vc_Dictionary_Type = 'vc_uom'
where 1 = 1 ");
if (!string.IsNullOrEmpty(model.GOODS_ID))
{
strSql+=string.Format("and a.GOODS_ID ='{0}'", model.GOODS_ID );
}
if (!string.IsNullOrEmpty(model.WIP_ENTITY))
{
strSql += string.Format("and a.WIP_ENTITY_ID ='{0}'", model.WIP_ENTITY);
}
strSql +=" order by a.GOODS_ID";
return SystemDataObject.Instance.GetDataTable(strSql.ToString());
}
/// <summary>
/// 插入商品原材料对应关系信息
/// </summary>
/// <param name="GoodsMaterialModel">商品原材料对应关系Model</param>
public void InsertGoodsMaterial(GoodsMaterialModel model)
{
StringBuilder strSql = new StringBuilder();
strSql.AppendLine("insert into T_SC_GOODS_MATERIAL(");
strSql.AppendLine("GOODS_ID,MATERIAL_ID,STAND_NUM,MAX_NUM,LOSS_PERCENT,OPERAT_MAN,REMARK,UNIT,PRICE,GOODS_UNIT,GOODS_NUM,SCALING)");
strSql.AppendLine(" values (");
strSql.AppendLine(":GOODS_ID,:MATERIAL_ID,:STAND_NUM,:MAX_NUM,:LOSS_PERCENT,:OPERAT_MAN,:REMARK,:UNIT,:PRICE,:GOODS_UNIT,:GOODS_NUM,:SCALING)");
OracleParameter[] parameters = {
new OracleParameter(":GOODS_ID",OracleDbType.Varchar2,50),
new OracleParameter(":MATERIAL_ID",OracleDbType.Varchar2,50),
new OracleParameter(":STAND_NUM",OracleDbType.Decimal),
new OracleParameter(":MAX_NUM",OracleDbType.Decimal),
new OracleParameter(":LOSS_PERCENT",OracleDbType.Decimal),
new OracleParameter(":OPERAT_MAN",OracleDbType.Varchar2,50),
new OracleParameter(":REMARK",OracleDbType.Varchar2,50),
new OracleParameter(":UNIT",OracleDbType.Char,10),
new OracleParameter(":PRICE",OracleDbType.Decimal),
new OracleParameter(":GOODS_UNIT",OracleDbType.Varchar2,50),
new OracleParameter(":GOODS_NUM",OracleDbType.Decimal),
new OracleParameter(":SCALING",OracleDbType.Decimal)
};
parameters[0].Value = model.GOODS_ID;
parameters[1].Value = model.MATERIAL_ID;
parameters[2].Value = model.STAND_NUM;
parameters[3].Value = model.MAX_NUM;
parameters[4].Value = model.LOSS_PERCENT;
parameters[5].Value = model.OPERAT_MAN;
parameters[6].Value = model.REMARK;
parameters[7].Value = !string.IsNullOrEmpty(model.UNIT)?model.UNIT.Trim():"";
parameters[8].Value = model.PRICE;
parameters[9].Value = model.GOODS_UNIT;
parameters[10].Value = model.GOODS_NUM;
parameters[11].Value = model.SCALING;
SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters);
}
/// <summary>
/// 删除一个商品原材料对应关系信息
/// </summary>
/// <param name="ID">商品ID</param>
public void DeleteGoodsMaterial(string ID)
{
StringBuilder strSql = new StringBuilder();
strSql.AppendLine("delete from T_SC_GOODS_MATERIAL ");
strSql.AppendLine(" where GOODS_ID=:GOODS_ID ");
OracleParameter[] parameters = {
new OracleParameter(":GOODS_ID",OracleDbType.Varchar2) };
parameters[0].Value = ID;
SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters);
}
/// <summary>
/// 根据物料查询bOM
/// </summary>
/// <param name="goodsId"></param>
/// <returns></returns>
public DataTable GetGoodsMaterialList(string goodsId)
{
string sqlstr = "select t.GOODS_ID as FGOODSID,t.MATERIAL_ID,t.STAND_NUM,a.GOODS_NAME,a.SEMISTS,"
+ " isnull(b.SHELVES_NUM, 0)SHELVES_NUM,isnull(b.OCCUPY_NUM, 0) as OCCUPY,isnull (c.AMOUNT, 0) as BUY_NUM ,"
+ " e.GOODS_NAME as FGOODSNAMAE from T_SC_GOODS_MATERIAL t"
+ " left join T_BASE_GOODS a on t.MATERIAL_ID = a.GOODS_ID"
+ " left join T_BASE_GOODS e on t.GOODS_ID = e.GOODS_ID"
+ " left join T_MI_STOCK b on t.MATERIAL_ID = b.GOODS_ID"
+ " left join T_RK_WARE_NOTICE_TAB c on c.GOODS_ID = t.MATERIAL_ID"
+ " where t.GOODS_ID='" + goodsId + "'";
return SystemDataObject.Instance.GetDataTable(sqlstr);
}
public DataTable GetGoodsMaterialNew()
{
string sqlstr = "select * from T_SC_GOODS_MATERIAL t";
return SystemDataObject.Instance.GetDataTable(sqlstr);
}
}
}