using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web;
|
using System.Web.Http;
|
using WebAPI.Controllers.SCGL.日计划管理;
|
using WebAPI.Models;
|
|
namespace WebAPI.Controllers.ZLGL.BaseSet
|
{
|
public class Gy_InspectInstruMentController : ApiController
|
{
|
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
|
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
DataSet ds;
|
|
|
#region 校验项目列表 文件上传
|
[Route("Gy_Quality/Gy_Process_Excel")]
|
[HttpPost]
|
public json Gy_Quality_Excel()
|
{
|
json res = new json();
|
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 provisional = new DataTable("dt2");
|
|
//添加列名
|
for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
|
{
|
provisional.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
|
}
|
|
//添加数据
|
for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
|
{
|
DataRow row = provisional.NewRow();
|
for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
|
{
|
row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
|
}
|
provisional.Rows.Add(row);
|
}
|
|
//判断列
|
string error = JudgmentColumns(provisional);
|
if (error.Length > 0)
|
{
|
res.code = "0";
|
res.count = 0;
|
res.Message = $"Excel模板存在错误,{error}\r\n";
|
res.data = null;
|
return res;
|
}
|
|
for (int i = 0; i <= provisional.Rows.Count - 1; i++)
|
{
|
string HNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["质量标准代码"].ToString());
|
string HName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["质量标准名称"].ToString());
|
string HHelpCode = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["助记码"]);
|
string HRemark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["备注"].ToString());
|
//获取真实行数
|
int line = i + 1;
|
}
|
|
res.code = "1";
|
res.count = 1;
|
res.Message = error;
|
res.data = provisional;
|
return res;
|
}
|
catch (Exception e)
|
{
|
res.code = "0";
|
res.count = 0;
|
res.Message = "Exception!" + e.ToString();
|
res.data = null;
|
return res;
|
}
|
}
|
|
/// <summary>
|
/// 判断列
|
/// </summary>
|
/// <param name="provisional"></param>
|
/// <returns></returns>
|
private static string JudgmentColumns(DataTable provisional)
|
{
|
var error = "";
|
|
//查询没有的列
|
if (!provisional.Columns.Contains("质量标准代码"))
|
error += "没有找到【质量标准代码】的标题,";
|
|
if (!provisional.Columns.Contains("质量标准名称"))
|
error += "没有找到【质量标准名称】的标题,";
|
return error;
|
}
|
#endregion
|
|
#region 检验方法列表 导入(保存)
|
[Route("Gy_Quality/Gy_Process_btnSave")]
|
[HttpPost]
|
public object Gy_Quality_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();
|
json res = new json();
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("Gy_Group_Edit", 1, false, user))
|
{
|
res.code = "0";
|
res.count = 0;
|
res.Message = "无保存权限!";
|
res.data = null;
|
return res;
|
}
|
|
List<object> Excel = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(msg2);
|
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
|
|
foreach (JObject item in Excel)
|
{
|
Dictionary<string, string> dic = new Dictionary<string, string>();
|
foreach (var itm in item.Properties())
|
{
|
dic.Add(itm.Name, itm.Value.ToString());
|
}
|
list.Add(dic);
|
}
|
|
oCN.BeginTran();
|
int i = 1;
|
foreach (Dictionary<string, string> item in list)
|
{
|
string HNumber = item["质量标准代码"].ToString();
|
string HName = item["质量标准名称"].ToString();
|
string HHelpCode = item["助记码"];
|
string HRemark = item["备注"].ToString();
|
|
string sShortNumber;
|
sShortNumber = DBUtility.ClsPub.GetShortNumber(HNumber);//短代码
|
if (sShortNumber.Trim() == "")
|
{
|
res.code = "0";
|
res.count = 0;
|
res.Message = "保存失败!短代码为空!";
|
res.data = 1;
|
return res;
|
}
|
int HEndFlag = 1;//末级标志
|
int HLevel = DBUtility.ClsPub.GetLevel(HNumber); //等级
|
|
|
if (!DBUtility.ClsPub.AllowNumber(HNumber.Trim()))
|
{
|
res.code = "0";
|
res.count = 0;
|
res.Message = "保存失败!代码中不能出现连续‘.’并且首位末位不能为‘.’!";
|
res.data = 1;
|
return res;
|
}
|
|
ds = oCN.RunProcReturn("select * from Gy_QualityStd where HNumber='" + HNumber + "'", "Gy_InspectMethod");
|
|
if (ds.Tables[0].Rows.Count == 0)
|
{
|
|
string sql = "insert into Gy_QualityStd (HName,HNumber,HShortNumber,HLevel,HHelpCode,HParentID,HStopflag,HEndFlag,HRemark,HUseFlag, HMakeTime,HMakeEmp)" +
|
$"values('{HName}', '{HNumber}', '{sShortNumber}',{HLevel},'',0,'0','0','{HRemark}', '未使用', '{System.DateTime.Now.ToString("G")}', '{user}')";
|
oCN.RunProc(sql);
|
}
|
else
|
{
|
oCN.RunProc("update Gy_QualityStd set HName='" + HName + "', HHelpCode= '" + HHelpCode + "', HModifyEmp = '" + user + "', HModifyTime = '" + System.DateTime.Now.ToString("G") + "' where HNumber= '" + HNumber + "'");
|
}
|
|
i++;
|
}
|
|
oCN.Commit();
|
|
res.code = "1";
|
res.count = 1;
|
res.Message = "导入成功!";
|
res.data = null;
|
return res;
|
}
|
catch (Exception e)
|
{
|
LogService.Write(e);
|
res.code = "0";
|
res.count = 0;
|
res.Message = "Exception!" + e.ToString();
|
res.data = null;
|
return res;
|
}
|
}
|
#endregion
|
}
|
}
|