You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

310 lines
12 KiB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain._03_Entity.SRM;
using NFine.Repository;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NFine.Application.KBSSRM
{
public class InvMaintenanceApp : RepositoryFactory<ICSVendor>
{
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = string.Empty;
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
{
sql = @"select DISTINCT b.ID, b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE14,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as EATTRIBUTE19,
b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23 , b.WorkPoint from ICSPurchaseOrder a
inner join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
where 1=1 and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "' ";
}
else
{
sql = @"select b.ID,
b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE14,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as EATTRIBUTE19,
b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23 , b.WorkPoint
from ICSInventory b
where 1=1 ";
}
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
sql += " and b.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
sql += " and b.EATTRIBUTE20 like '%" + queryParam["VenCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
{
sql += " and b.EATTRIBUTE21 like '%" + queryParam["VenName"].ToString() + "%' ";
}
}
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetICSInventoryInfo(string InvCode,string WorkPoint)
{
try
{
// string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"select b.InvCode,b.InvName, b.EATTRIBUTE11,b.EATTRIBUTE12,b.EATTRIBUTE13,b.EATTRIBUTE15,b.EATTRIBUTE16,b.EATTRIBUTE17,b.EATTRIBUTE18,
b.EATTRIBUTE19,b.EATTRIBUTE20,b.EATTRIBUTE21,b.EATTRIBUTE22,b.EATTRIBUTE23
from ICSInventory b
WHERE 1=1 AND b.InvCode='{0}' and b.WorkPoint='{1}' ";
sql = string.Format(sql, InvCode, WorkPoint);
return Repository().FindTableBySql(sql.ToString());
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString());
}
}
public string UpdateICSInventory(string keyValue)
{
var queryParam = keyValue.ToJObject();
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
string sql = string.Empty;
sql = @"UPDATE dbo.ICSInventory set
EATTRIBUTE11='{0}'
,EATTRIBUTE12='{1}'
,EATTRIBUTE13='{2}'
,EATTRIBUTE14='{3}'
,EATTRIBUTE15='{4}'
,EATTRIBUTE16='{5}'
,EATTRIBUTE17='{6}'
,EATTRIBUTE18='{7}'
,EATTRIBUTE19='{8}'
,EATTRIBUTE20='{9}'
,EATTRIBUTE21='{10}'
,EATTRIBUTE22=getdate()
WHERE InvCode='{11}'";
sql = string.Format(sql,
queryParam["EATTRIBUTE11"].ToString(),
queryParam["EATTRIBUTE12"].ToString(),
queryParam["EATTRIBUTE13"].ToString(),
queryParam["EATTRIBUTE14"].ToString(),
queryParam["EATTRIBUTE15"].ToString(),
queryParam["EATTRIBUTE16"].ToString(),
queryParam["EATTRIBUTE17"].ToString(),
queryParam["EATTRIBUTE18"].ToString(),
queryParam["EATTRIBUTE19"].ToString(),
MUSER,
MUSERNAME,
queryParam["InvCode"].ToString()
);
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
else
{
msg = "维护失败";
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
//public string SetData_PR(String savePath)
//{
// DataTable data = FileToExcel.ExcelToTable(savePath);
// string msg = EmailNotice(data);
// return msg;
//}
public string SetData_PR(String savePath)
{
string msg = "";
//数据获取
try
{
DataTable data = FileToExcel.ExcelToTable(savePath);
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
SqlConnection conn = SqlHelper.GetDataCenterConn();
string sql = "";
int count = 0;
if (data != null && data.Rows.Count > 0)
{
foreach (DataRow dr in data.Rows)
{
string isEnable = "";
string GUID = Guid.NewGuid().ToString();
if (string.IsNullOrWhiteSpace(dr["物料编码"].ToString()))
throw new Exception("物料编码不能为空!");
string sqlInv = "SELECT INVName FROM ICSINVENTORY WHERE INVCODE='" + dr["物料编码"].ToString() + "'";
DataTable dtInv = SqlHelper.GetDataTableBySql(sqlInv);
if (dtInv == null || dtInv.Rows.Count <= 0)
{
msg += "物料编码" + dr["物料编码"].ToString() + "不存在";
continue;
}
string INVName = dtInv.Rows[0]["INVName"].ToString();
if (dr["是否食品安全级"].ToString()=="1"|| dr["是否食品安全级"].ToString()=="是")
{
isEnable = "1";
}
else
{
isEnable = "0";
}
sql += @"UPDATE dbo.ICSInventory set
EATTRIBUTE11='{0}'
,EATTRIBUTE12='{1}'
,EATTRIBUTE13='{2}'
,EATTRIBUTE14='{3}'
,EATTRIBUTE15='{4}'
,EATTRIBUTE16='{5}'
,EATTRIBUTE17='{6}'
,EATTRIBUTE18='{7}'
,EATTRIBUTE19='{8}'
,EATTRIBUTE20='{9}'
,EATTRIBUTE21='{10}'
,EATTRIBUTE22=getdate()
WHERE InvCode='{11}'";
sql = string.Format(sql, dr["原材料厂商"].ToString(), dr["UL证书编号"].ToString(), dr["工厂UL编号"].ToString(), dr["采购贸易商"].ToString()
, dr["版本"].ToString(), dr["制造商"].ToString(), dr["地址"].ToString(), dr["重量"].ToString(), isEnable,
MUSER, MUSERNAME, dr["物料编码"].ToString());
}
}
count = SqlHelper.CmdExecuteNonQueryLi(sql);
if (count > 0)
{
msg = "导入成功" + msg.TrimEnd(';');
}
else
{
throw new Exception("无有效的导入数据!");
}
return msg;
}
catch (Exception ex)
{
throw new Exception("" + msg + "异常信息:" + ex.Message + "!");
}
}
public DataTable GetInvInfo(string InvCode, string InvName, string VenCode, string VenName)
{
List<DbParameter> parameter = new List<DbParameter>();
string sql = string.Empty;
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
{
sql = @"select DISTINCT b.InvCode as '物料编码'
,b.InvName as '物料名称',
b.EATTRIBUTE11 as '原材料厂商',
b.EATTRIBUTE12 as 'UL证书编号',
b.EATTRIBUTE13 as '工厂UL编号',
b.EATTRIBUTE14 as '采购贸易商',
b.EATTRIBUTE15 as '版本',
b.EATTRIBUTE16 as '制造商',
b.EATTRIBUTE17 as '地址',
b.EATTRIBUTE18 as '重量',
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as '是否食品安全级'
from ICSPurchaseOrder a
inner join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
where 1=1 and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "' ";
}
else
{
sql = @"select b.InvCode as '物料编码'
,b.InvName as '物料名称',
b.EATTRIBUTE11 as '原材料厂商',
b.EATTRIBUTE12 as 'UL证书编号',
b.EATTRIBUTE13 as '工厂UL编号',
b.EATTRIBUTE14 as '采购贸易商',
b.EATTRIBUTE15 as '版本',
b.EATTRIBUTE16 as '制造商',
b.EATTRIBUTE17 as '地址',
b.EATTRIBUTE18 as '重量',
case when b.EATTRIBUTE19='1' THEN '是' when b.EATTRIBUTE19='0' then '否' else '' end as '是否食品安全级'
from ICSInventory b
where 1=1 ";
}
if (!string.IsNullOrWhiteSpace(InvCode))
sql += " and b.InvCode like '%" + InvCode + "%'";
if (!string.IsNullOrWhiteSpace(InvName))
sql += " and b.InvName like '%" + InvName + "%'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and b.EATTRIBUTE20 like '%" + VenCode + "%'";
if (!string.IsNullOrWhiteSpace(VenCode))
sql += " and b.EATTRIBUTE21 like '%" + VenName + "%'";
sql += " order by b.InvCode";
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
}
}