|  |  |  | 
|---|
|  |  |  | using Newtonsoft.Json; | 
|---|
|  |  |  | using Newtonsoft.Json.Linq; | 
|---|
|  |  |  | using Pub_Class; | 
|---|
|  |  |  | using SyntacticSugar.constant; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 物料分类审核、反审核 | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 检验依据列表 文件上传 | 
|---|
|  |  |  | //[Route("Gy_Warehouse/Gy_Process_Excel")] | 
|---|
|  |  |  | //[HttpPost] | 
|---|
|  |  |  | //public json Gy_InspectBasis_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 phone = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["联系电话"].ToString()); | 
|---|
|  |  |  | //            string HEmpNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["职员代码"].ToString()); | 
|---|
|  |  |  | //            string HEmpName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["职员名称"].ToString()); | 
|---|
|  |  |  | //            string HHelpCode = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["助记码"]); | 
|---|
|  |  |  | //            string HRemark = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["备注"].ToString()); | 
|---|
|  |  |  | //            if(JudgeEmp(HEmpNumber, HEmpName)) | 
|---|
|  |  |  | //            { | 
|---|
|  |  |  | //                res.code = CodeConstant.FAIL; | 
|---|
|  |  |  | //                res.count = CountConstant.FAIL; | 
|---|
|  |  |  | //                res.Message = "当前职员不存在"; | 
|---|
|  |  |  | //                res.data = null; | 
|---|
|  |  |  | //                return res; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            //获取真实行数 | 
|---|
|  |  |  | //            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="HEmpNumber"></param> | 
|---|
|  |  |  | ///// <param name="HEmpName"></param> | 
|---|
|  |  |  | ///// <returns></returns> | 
|---|
|  |  |  | //private bool JudgeEmp(string HEmpNumber, string HEmpName) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    if (!String.IsNullOrEmpty(HEmpNumber) && !String.IsNullOrEmpty(HEmpName)) | 
|---|
|  |  |  | //    { | 
|---|
|  |  |  | //        DataSet emp = oCN.RunProcReturn("select * from Gy_Employee where HNumber = '" + HEmpNumber + "' and HName = '" + HEmpName + "'", "Gy_Employee"); | 
|---|
|  |  |  | //        return emp.Tables[0].Rows.Count <= EmptyConstant.EMPTY ? true : false; | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | //    return false; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <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_Warehouse/Gy_Process_btnSave")] | 
|---|
|  |  |  | [HttpPost] | 
|---|
|  |  |  | public object Gy_InspectBasis_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(); | 
|---|
|  |  |  | string organ = sArray[2].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 phone = item["联系电话"].ToString(); | 
|---|
|  |  |  | string HEmpNumber = item["职员代码"].ToString(); | 
|---|
|  |  |  | string HEmpName = item["职员名称"].ToString(); | 
|---|
|  |  |  | string HHelpCode = item["助记码"].ToString(); | 
|---|
|  |  |  | string HRemark = item["备注"].ToString(); | 
|---|
|  |  |  | int HEmpID = 0; | 
|---|
|  |  |  | if (!String.IsNullOrEmpty(HEmpName) && !String.IsNullOrEmpty(HEmpNumber)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | DataSet emp = oCN.RunProcReturn("select HItemID from Gy_Employee where HNumber = '" + HEmpNumber + "' and HName = '" + HEmpName + "'", "Gy_Employee"); | 
|---|
|  |  |  | HEmpID = (int)emp.Tables[0].Rows[0]["HItemID"]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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_Warehouse where HNumber='" + HNumber + "'", "Gy_InspectInstruMent"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | string sql = "insert into Gy_Warehouse (HName,HNumber,HShortNumber,HLevel,HHelpCode,HParentID,HStopflag,HEndFlag,HRemark,HUseFlag, HUSEORGID, HCREATEORGID, HEmpID, HPhone)" + | 
|---|
|  |  |  | $"values('{HName}', '{HNumber}', '{sShortNumber}',{HLevel},'',0,'0','0','{HRemark}', '未使用', '{organ}', '{organ}', '{HEmpID}', '{phone}')"; | 
|---|
|  |  |  | oCN.RunProc(sql); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | oCN.RunProc("update Gy_Warehouse  set  HName ='" + HName + "' , HHelpCode = '" + HHelpCode + " ', HPhone= '" + phone + "', HEmpID = '" + HEmpID + "', 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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|