using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web;
using System.Web.Http;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
namespace WebAPI.Controllers
{
public class Xt_UserController : ApiController
{
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
#region[用户列表查询]
[Route("Xt_User/list")]
[HttpGet]
public object list(string sWhere,string user)
{
try
{
if (!DBUtility.ClsPub.Security_Log_second("Xt_User_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查看权限!";
objJsonResult.data = null;
return objJsonResult;
}
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select * from h_v_IF_UserList " + sWhere, "h_v_IF_UserList");
}
else
{
string sql1 = "select * from h_v_IF_UserList where 1 = 1 ";
string sql = sql1 + sWhere;
ds = oCN.RunProcReturn(sql, "h_v_IF_UserList");
}
//if (ds.Tables[0].Rows.Count != 0 || ds != null)
//{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
//}
//else
//{
//objJsonResult.code = "0";
//objJsonResult.count = 0;
//objJsonResult.Message = "无数据";
//objJsonResult.data = null;
//return objJsonResult;
//}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region [用户列表删除功能]
///
/// 用户信息删除功能
///
///
[Route("Xt_User/DeltetUser")]
[HttpGet]
public object DeltetUser(string HCzybm)
{
try
{
//编辑权限
//if (!DBUtility.ClsPub.Security_Log("Gy_UserByUserRelation_Delete", 1, false, DBUtility.ClsPub.CurUserName))
//{
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "无删除权限!";
// objJsonResult.data = null;
// return objJsonResult;
//}
string lngBillKey = "";
lngBillKey = DBUtility.ClsPub.isStrNull(HCzybm);
if (lngBillKey == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "用户编码为空!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();
//删除用户信息
oCN.RunProc("delete from Gy_Czygl where Czybm='" + HCzybm + "'");
//删除用户对应的角色信息
oCN.RunProc("delete from System_UserGroupInfo where UserId='" + HCzybm + "'");
DBUtility.ClsPub.Add_Log(DBUtility.ClsPub.CurUserName, "删除用户:" + HCzybm, DBUtility.ClsPub.CurUserName);
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message ="删除信息成功!";
objJsonResult.data = null;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = e.Message;
objJsonResult.data = null;
}
return objJsonResult;
}
#endregion
#region[用户列表编辑时获取表头数据]
[Route("Xt_User/EditUser")]
[HttpGet]
public ApiResult EditUser(string HID)
{
if (string.IsNullOrEmpty(HID))
return new ApiResult { code = -1, msg = "ID不能为空" };
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
var dataSet = oCN.RunProcReturn("select top 1 * from h_v_IF_UserList_Edit where 用户编码='" + HID + "' ", "h_v_IF_UserList_Edit");
if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
return new ApiResult { code = -1, msg = "不存在此用户" };
return new ApiResult { code = 1, msg = "查询成功", data = dataSet };
}
#endregion
#region 用户信息保存
///
///
///
///
///
[Route("Xt_User/SaveUser")]
[HttpPost]
public object SaveUser([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string msg3 = sArray[1].ToString();
string msg4 = sArray[2].ToString();
ListModels oListModels = new ListModels();
try
{
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getObjectByJson_Gy_Gy_User(msg2);
var num = msg4.Split(',');
//保存
if (msg3=="Add") //新增
{
ds = oCN.RunProcReturn("select * from Gy_Czygl where Czybm='" + lsmain[0].Czybm.ToString() + "'", "Gy_Czygl");
if (ds.Tables[0].Rows.Count != 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "* 编码重复!!";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from Gy_Czygl where Czymc='" + lsmain[0].Czymc.ToString() + "'", "Gy_Czygl");
if (ds.Tables[0].Rows.Count != 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "* 用户名重复!!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("insert into Gy_Czygl (Czybm,Czymc,Czmm,Explain,HempID,HK3UserID " +
",HKeeperID,HKeeper,HSecManagerID,HSecManager " +
",HSellManID,HSellMan,HDeptID,HDept " +
",HWhID,HWHName,HSupID,HSupName " +
",HSCWHID,HSCWHName " +
",HCloudUserName,HCloudUserPsd,HUSEORGID,HProcID" +
",HGroupID,HSourceID) " +
"values ('" + lsmain[0].Czybm.ToString() + "','" + lsmain[0].Czymc.ToString() + "','" + ClsPub.StrToPsd(lsmain[0].Czmm.ToString()) + "','" + lsmain[0].Explain.ToString() + "','" + lsmain[0].HEmpID.ToString() + "',"+ lsmain[0].HK3UserID.ToString() + "" +
","+ lsmain[0].HKeeperID.ToString() + ",'"+ lsmain[0].HKeeper.ToString() + "',"+ lsmain[0].HSecManagerID.ToString() + ",'"+ lsmain[0].HSecManager.ToString() + "'" +
"," + lsmain[0].HSellManID.ToString() + ",'" + lsmain[0].HSellMan.ToString() + "'," + lsmain[0].HDeptID.ToString() + ",'" + lsmain[0].HDept.ToString() + "'" +
"," + lsmain[0].HWhID.ToString() + ",'" + lsmain[0].HWHName.ToString() + "'," + lsmain[0].HSupID.ToString() + ",'" + lsmain[0].HSupName.ToString() + "'" +
"," + lsmain[0].HSCWHID.ToString() + ",'" + lsmain[0].HSCWHName.ToString() + "'" +
",'" + lsmain[0].HCloudUserName.ToString() + "','" + lsmain[0].HCloudUserPsd.ToString() + "',"+ lsmain[0].HOrgID.ToString() + "," + lsmain[0].HProcID.ToString() + "" +
","+ lsmain[0].HGroupID.ToString() + ","+ lsmain[0].HSourceID.ToString() + ")");
//新增后查询 确保数据添加成功
ds = oCN.RunProcReturn("Select * from Gy_Czygl where Czybm='" + lsmain[0].Czybm.ToString() + "'", "Gy_Czygl");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "角色新增失败!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("delete from System_UserGroupInfo where UserId='" + lsmain[0].Czybm.ToString() + "'");
if (num[0] != "-1")
{
for (int i = 0; i < num.Length; i++)
{
oCN.RunProc("insert into System_UserGroupInfo (GroupId,UserId) values (" + num[i] + ",'" + lsmain[0].Czybm.ToString() + "')");
}
}
}
else //修改
{
ds = oCN.RunProcReturn("select * from Gy_Czygl where Czybm='" + lsmain[0].Czybm.ToString() + "'", "Gy_Czygl");
if (ds.Tables[0].Rows[0]["Czmm"].ToString() != lsmain[0].Czmm) //修改密码
{
oCN.RunProc("update Gy_Czygl set Czymc='" + lsmain[0].Czymc.ToString() +
"',Czmm='" + ClsPub.StrToPsd(lsmain[0].Czmm.ToString()) +
"',Explain='" + lsmain[0].Explain.ToString() + "'" +
",HEmpID=" + lsmain[0].HEmpID.ToString() +
",HK3UserID=" + lsmain[0].HK3UserID.ToString() +
",HKeeperID=" + lsmain[0].HKeeperID.ToString() +
",HKeeper='" + lsmain[0].HKeeper.ToString() + "'" +
",HSecManagerID=" + lsmain[0].HSecManagerID.ToString() +
",HSecManager='" + lsmain[0].HSecManager.ToString() + "'" +
",HSellManID=" + lsmain[0].HSellManID.ToString() +
",HSellMan='" + lsmain[0].HSellMan.ToString() + "'" +
",HDeptID=" + lsmain[0].HDeptID.ToString() +
",HDept='" + lsmain[0].HDept.ToString() + "'" +
",HWhID=" + lsmain[0].HWhID.ToString() +
",HWHName='" + lsmain[0].HWHName.ToString() + "'" +
",HSCWHID=" + lsmain[0].HSCWHID.ToString() +
",HSCWHName='" + lsmain[0].HSCWHName.ToString() + "'" +
",HSupID=" + lsmain[0].HSupID.ToString() +
",HProcID=" + lsmain[0].HProcID.ToString() +
",HSourceID=" + lsmain[0].HSourceID.ToString() +
",HGroupID=" + lsmain[0].HGroupID.ToString() +
",HSupName='" + lsmain[0].HSupName.ToString() + "'" +
",HCloudUserName='" + lsmain[0].HCloudUserName.ToString() + "'" +
",HCloudUserPsd='" + lsmain[0].HCloudUserPsd.ToString() + "'" +
",HUSEORGID=" + lsmain[0].HOrgID.ToString() +
" where Czybm='" + lsmain[0].Czybm.ToString() + "'");
}
else
{
oCN.RunProc("update Gy_Czygl set Czymc='" + lsmain[0].Czymc.ToString() +
"',Explain='" + lsmain[0].Explain.ToString() + "'" +
",HEmpID=" + lsmain[0].HEmpID.ToString() +
",HK3UserID=" + lsmain[0].HK3UserID.ToString() +
",HKeeperID=" + lsmain[0].HKeeperID.ToString() +
",HKeeper='" + lsmain[0].HKeeper.ToString() + "'" +
",HSecManagerID=" + lsmain[0].HSecManagerID.ToString() +
",HSecManager='" + lsmain[0].HSecManager.ToString() + "'" +
",HSellManID=" + lsmain[0].HSellManID.ToString() +
",HSellMan='" + lsmain[0].HSellMan.ToString() + "'" +
",HDeptID=" + lsmain[0].HDeptID.ToString() +
",HDept='" + lsmain[0].HDept.ToString() + "'" +
",HWhID=" + lsmain[0].HWhID.ToString() +
",HWHName='" + lsmain[0].HWHName.ToString() + "'" +
",HSCWHID=" + lsmain[0].HSCWHID.ToString() +
",HSCWHName='" + lsmain[0].HSCWHName.ToString() + "'" +
",HSupID=" + lsmain[0].HSupID.ToString() +
",HProcID=" + lsmain[0].HProcID.ToString() +
",HSourceID=" + lsmain[0].HSourceID.ToString() +
",HGroupID=" + lsmain[0].HGroupID.ToString() +
",HSupName='" + lsmain[0].HSupName.ToString() + "'" +
",HCloudUserName='" + lsmain[0].HCloudUserName.ToString() + "'" +
",HCloudUserPsd='" + lsmain[0].HCloudUserPsd.ToString() + "'" +
",HUSEORGID=" + lsmain[0].HOrgID.ToString() +
" where Czybm='" + lsmain[0].Czybm.ToString() + "'");
}
oCN.RunProc("delete from System_UserGroupInfo where UserId='" + lsmain[0].Czybm.ToString()+"'");
if (num[0] != "-1")
{
for (int i = 0; i < num.Length; i++)
{
oCN.RunProc("insert into System_UserGroupInfo (GroupId,UserId) values (" + num[i] + ",'" + lsmain[0].Czybm.ToString() + "')");
}
}
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
//WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + e.ToString();
objJsonResult.data = 1;
return objJsonResult;
}
}
#endregion
#region 根据用户编码查找已分配供应商列表
[Route("Xt_User/SupperPlaylist")]
[HttpGet]
public object SupperPlaylist(string HUserID)
{
try
{
ds = oCN.RunProcReturn("select HSupID,供应商代码 HSupperNumber,供应商名称 HSupperName from h_v_Gy_UserSupplierList where HUserID='" + HUserID + "' ", "h_v_Gy_UserSupplierList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无供应商信息!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 用户关联供应商保存 Excel导入
[Route("Xt_User/SaveUserSupper")]
[HttpPost]
public object SaveUserSupper([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string msg3 = sArray[1].ToString();
ListModels oListModels = new ListModels();
try
{
List lsmain = new List();
msg2 = msg2.Substring(1, msg2.Length - 2);
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getObjectByJson_Gy_UserSupper(msg2);
oCN.BeginTran();
//删除已经关联的数据
oCN.RunProc("Delete From Gy_UserSupplierRelation where HUserID='" + msg3.ToString() + "'");
foreach (Models.Gy_UserSupper oItem in lsmain)
{
//重新写入关联数据
oCN.RunProc("insert into Gy_UserSupplierRelation (HSupID,HUserID) values ('" + oItem.HSupID + "','" + msg3.ToString() + "')");
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
//WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!" + e.ToString();
objJsonResult.data = 1;
return objJsonResult;
}
}
/// 文件上传 Gy_Supplier
[Route("Xt_User/UserSupperBill_Excel")]
[HttpPost]
public object UserSupperBill_Excel()
{
try
{
//获取文件名称
var file = HttpContext.Current.Request.Files[0];
//获取文件物理路径
string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
//保存文件
file.SaveAs(ExcelPath);
NpoiHelper np = new NpoiHelper();
DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
//删除文件
File.Delete(ExcelPath);
//创建临时表
DataTable tb2 = new DataTable("dt2");
//添加列名
for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
{
tb2.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
}
////Excel模板缺少列 但需要从数据库中查询出来显示在页面的字段
tb2.Columns.Add("HSupID", typeof(Int32));//供应商ID
//添加数据
for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
{
DataRow row = tb2.NewRow();
for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
{
row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
}
tb2.Rows.Add(row);
}
var error = "";
////查询用户关联供应商没有的列
if (!tb2.Columns.Contains("用户代码"))
error += "没有找到【用户代码】的标题,";
if (!tb2.Columns.Contains("用户名称"))
error += "没有找到【用户名称】的标题,";
if (!tb2.Columns.Contains("供应商代码"))
error += "没有找到【供应商代码】的标题,";
if (!tb2.Columns.Contains("供应商名称"))
error += "没有找到【供应商名称】的标题,";
if (error.Length > 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"Excel模板存在错误,{error}\r\n";
objJsonResult.data = null;
return objJsonResult;
}
for (int i = 0; i <= tb2.Rows.Count - 1; i++)
{
string czybm = "";
string czymc = "";
string HNumber = "";
string HName = "";
//HORGNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织编码"].ToString());
//HORGName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织"].ToString());
czybm = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["用户代码"].ToString());
czymc = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["用户名称"].ToString());
HNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["供应商代码"].ToString());
HName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["供应商名称"].ToString());
int index = i + 1;
//检查用户与供应商代码是否都为空
if (czybm != "" || HNumber != "")
{
//查询供应商
ds = oCN.RunProcReturn("select * from Gy_Supplier where HNumber='" + HNumber + "'", "Gy_Supplier");
if (ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + index + "行,供应商:" + HName + ",不存在!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
tb2.Rows[i]["HSupID"] = ds.Tables[0].Rows[0]["HItemID"].ToString(); //供应商ID
}
//查询用户
ds = oCN.RunProcReturn("select * from Gy_Czygl where czybm='" + czybm + "'", "Gy_Czygl");
if (ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + index + "行,该" + czymc + "用户,不存在!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
//tb2.Rows[i]["czybm"] = ds.Tables[0].Rows[0]["czybm"].ToString();
}
//审核代码是否合理
if (!DBUtility.ClsPub.AllowNumber(czybm))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "第" + index + "行,用户代码中不能出现连续‘.’并且首位末位不能为‘.’!";
objJsonResult.data = null;
return objJsonResult;
}
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "第" + index + "行,用户代码为空";
objJsonResult.data = null;
return objJsonResult;
}
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = error;
objJsonResult.data = tb2;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region 导入(保存)
[Route("Xt_User/UserSupperBill_btnSave")]
[HttpPost]
public object UserSupperBill_btnSave([FromBody] JObject sMainSub)
{
var _value = sMainSub["sMainSub"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { "&和" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string user = sArray[1].ToString();
try
{
List