|  |  | 
 |  |  | using Newtonsoft.Json.Linq; | 
 |  |  | using Model; | 
 |  |  | 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; | 
 |  |  | namespace WebAPI.Controllers | 
 |  |  | { | 
 |  |  |     public class Gy_WarehouseController : ApiController | 
 |  |  |     { | 
 |  |  |         //获取系统参数 | 
 |  |  |         Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); | 
 |  |  |         public DBUtility.ClsPub.Enum_BillStatus BillStatus; | 
 |  |  |  | 
 |  |  |         private json objJsonResult = new json(); | 
 |  |  |         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  |         DataSet ds; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  | 
 |  |  |         /// </summary> | 
 |  |  |         [Route("Gy_Warehouse/list")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object list(string sWhere,string Organization) | 
 |  |  |         public object list(string sWhere,string user,string Organization) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //编辑权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second("Gy_Warehouse", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "无查看权限!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 string sql1 = string.Format(@"select * from h_v_IF_WareHouseList where 组织名称='" + Organization + "'"); | 
 |  |  |                 if (sWhere == null || sWhere.Equals("")) | 
 |  |  |                 { | 
 |  |  |                     ds = oCN.RunProcReturn(sql1 + sWhere + "order by HItemID desc", "h_v_IF_WareHouseList"); | 
 |  |  |                     ds = oCN.RunProcReturn(sql1 + sWhere + " order by 仓库代码 ", "h_v_IF_WareHouseList"); | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     string sql = sql1 + sWhere + "order by HItemID desc"; | 
 |  |  |                     string sql = sql1 + sWhere + " order by 仓库代码 "; | 
 |  |  |                     ds = oCN.RunProcReturn(sql, "h_v_IF_WareHouseList"); | 
 |  |  |                 } | 
 |  |  |                 //if (ds == null || ds.Tables[0].Rows.Count == 0) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "false!"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |                 //else | 
 |  |  |                 //{ | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "Sucess!"; | 
 |  |  |                     objJsonResult.data = ds.Tables[0]; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |  | 
 |  |  |                 //添加列名 | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = ds.Tables[0]; | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         public class TreeModel | 
 |  |  |         { | 
 |  |  |             public string Id { get; set; } | 
 |  |  |             public string Number { get; set; } | 
 |  |  |             public string Title { get; set; } | 
 |  |  |             public List<TreeModel> children = new List<TreeModel>(); | 
 |  |  |         } | 
 |  |  |         /// <summary> | 
 |  |  |         /// 返回仓库列表 | 
 |  |  |         ///参数:string sql。 | 
 |  |  |         ///返回值:object。 | 
 |  |  |         /// </summary> | 
 |  |  |         [Route("Gy_Warehouse/listTree")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object listTree(string sWhere, string user, string Organization) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> columnNameList = new List<object>(); | 
 |  |  |                 //编辑权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second("Gy_Warehouse", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "无查看权限!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 string sql1 = string.Format(@"select * from h_v_IF_WareHouseList_ExtendWHType where 组织名称='" + Organization + "'"); | 
 |  |  |                 if (sWhere == null || sWhere.Equals("")) | 
 |  |  |                 { | 
 |  |  |                     ds = oCN.RunProcReturn(sql1 + sWhere + " order by 仓库代码 ", "h_v_IF_WareHouseList_ExtendWHType"); | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     string sql = sql1 + sWhere + " order by 仓库代码 "; | 
 |  |  |                     ds = oCN.RunProcReturn(sql, "h_v_IF_WareHouseList_ExtendWHType"); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 List<TreeModel> treeModels = new List<TreeModel>(); | 
 |  |  |                 TreeModel first = new TreeModel(); | 
 |  |  |                 first.Id = "0"; | 
 |  |  |                 first.Title = "模具仓库"; | 
 |  |  |                 first.Number = "0"; | 
 |  |  |                 treeModels.Add(first); | 
 |  |  |  | 
 |  |  |                 foreach (DataRow row in ds.Tables[0].Rows) | 
 |  |  |                 { | 
 |  |  |                     var strLen = row["hitemid"].ToString().Split('.'); | 
 |  |  |                     if (strLen.Length == 1) | 
 |  |  |                     { | 
 |  |  |                         TreeModel tree = new TreeModel(); | 
 |  |  |                         tree.Id = row["hitemid"].ToString(); | 
 |  |  |                         tree.Title = row["hname"].ToString(); | 
 |  |  |                         tree.Number = row["HNumber"].ToString(); | 
 |  |  |                         treeModels[0].children.Add(tree); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 digui(ds.Tables[0], treeModels[0].children, 2); | 
 |  |  |  | 
 |  |  |                 //添加列名 | 
 |  |  |                 foreach (DataColumn col in ds.Tables[0].Columns) | 
 |  |  |                 { | 
 |  |  |                     Type dataType = col.DataType; | 
 |  |  |                     string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; | 
 |  |  |                     columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "Sucess!"; | 
 |  |  |                 objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels); | 
 |  |  |                 objJsonResult.list = columnNameList; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "Exception!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 根据基础资料ID 查找记录 | 
 |  |  |         ///参数:string sql。 | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // | 
 |  |  |        | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 返回仓位列表 | 
 |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 新增单据-保存按钮 | 
 |  |  |         ///参数:string sql。 | 
 |  |  | 
 |  |  |                 long HParentID = list[0].HParentID; | 
 |  |  |                 long HLevel = list[0].HLevel; | 
 |  |  |                 bool HEndFlag = list[0].HEndFlag; | 
 |  |  |                 bool HStopflag = list[0].HStopflag; | 
 |  |  |                 bool HStopflag = list[0].HStopFlag; | 
 |  |  |                 string HRemark = list[0].HRemark; | 
 |  |  |                 string HBarCode = list[0].HBarCode; | 
 |  |  |                 long HEmpID = list[0].HEmpID; | 
 |  |  | 
 |  |  |                 var _value = oMain["oMain"].ToString(); | 
 |  |  |                 string msg1 = _value.ToString(); | 
 |  |  |                 string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
 |  |  |                 string msg2 = sArray[0].ToString();//保存数据 | 
 |  |  |                 string user = sArray[1].ToString();//用户名 | 
 |  |  |                 //string msg4 = sArray[2].ToString(); | 
 |  |  |                 //string msg5 = sArray[3].ToString(); | 
 |  |  |                 string msg2 = sArray[0].ToString(); | 
 |  |  |                 string msg3 = sArray[1].ToString(); | 
 |  |  |  | 
 |  |  |                 ////判断是否有编辑权限 | 
 |  |  |                 //if (!DBUtility.ClsPub.Security_Log("Xs_SeOrderBill_Edit", 1, false, user)) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "无权限编辑!"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |  | 
 |  |  |                 ////判断权限 | 
 |  |  |                 if (!ClsPub.Security_Log("Gy_Warehouse_Edit", 1, false, msg3)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "没有找到该功能模块!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 //反序列化 | 
 |  |  |                 msg2 = "[" + msg2.ToString() + "]"; | 
 |  |  | 
 |  |  |                 string HNumber = list[0].HNumber; | 
 |  |  |                 string HName = list[0].HName; | 
 |  |  |                 string HHelpCode = list[0].HHelpCode; | 
 |  |  |                 string HShortNumber = list[0].HShortNumber; | 
 |  |  |                 long HParentID = list[0].HParentID; | 
 |  |  |                 long HLevel = list[0].HLevel; | 
 |  |  |                 bool HEndFlag = list[0].HEndFlag; | 
 |  |  |                 bool HStopflag = list[0].HStopflag; | 
 |  |  |                 bool HStopflag = list[0].HStopFlag; | 
 |  |  |                 bool HStockCtrlFlag = list[0].HStockCtrlFlag; | 
 |  |  |                 string HRemark = list[0].HRemark; | 
 |  |  |                 string HBarCode = list[0].HBarCode; | 
 |  |  |                 long HEmpID = list[0].HEmpID; | 
 |  |  |                 string HAddress = list[0].HAddress; | 
 |  |  |                 string HPhone = list[0].HPhone; | 
 |  |  |                 long HUSEORGID = list[0].HUSEORGID; | 
 |  |  |                 //long HCREATEORGID = list[0].HCREATEORGID; | 
 |  |  |                 string HUpDater = list[0].HUpDater; | 
 |  |  |                 long HSPFlag = list[0].HSPFlag; | 
 |  |  |                 string HWarehouseType = list[0].HWarehouseType; | 
 |  |  |                 //得到短代码 | 
 |  |  |                 string HShortNumber = DBUtility.ClsPub.GetShortNumber(HNumber); | 
 |  |  |                 if (HShortNumber.Trim() == "") | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "保存失败!短代码为空!"; | 
 |  |  |                     objJsonResult.data = 1; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 //等级 | 
 |  |  |                int HLevel = DBUtility.ClsPub.GetLevel(HNumber); | 
 |  |  |  | 
 |  |  |                 ////判断权限 | 
 |  |  |                 //if (!ClsPub.Security_Log(msg5, 1, false, msg4)) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "没有找到该功能模块!"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |                 //检查父级是否存在 | 
 |  |  |                 long HParentID = 0; | 
 |  |  |                 string sParent = DBUtility.ClsPub.GetParentCode(HNumber); | 
 |  |  |                 if (sParent.Trim() == "") | 
 |  |  |                 { | 
 |  |  |                     HParentID = 0; | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ds = oCN.RunProcReturn("select * from Gy_Warehouse where HNumber='" + sParent + "' and HStopFlag=0 ", "Gy_Warehouse"); | 
 |  |  |                     if (ds.Tables[0].Rows.Count>0) | 
 |  |  |                     { | 
 |  |  |                         HParentID =long.Parse(ds.Tables[0].Rows[0]["HItemID"].ToString()); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "保存失败!上级代码不存在或被禁用!"; | 
 |  |  |                         objJsonResult.data = 1; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 //末级标志 | 
 |  |  |                 int HEndFlag = 1; | 
 |  |  |  | 
 |  |  |                 //if (!DBUtility.ClsPub.AllowNumber(HNumber)) | 
 |  |  |                 //{ | 
 |  |  | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |                 //查询数据中是否存在重复代码 | 
 |  |  |                 ds = oCN.RunProcReturn("Select HItemID from Gy_Warehouse  Where HItemID<>" + HItemID + " and HNumber='" + HNumber + "' and HUSEORGID=" + HUSEORGID, "Gy_Warehouse"); | 
 |  |  |  | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "保存失败!代码重复!"; | 
 |  |  |                     objJsonResult.data = 1; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |                 //保存 | 
 |  |  |                 //保存完毕后处理 | 
 |  |  |                 if (HItemID == 0) | 
 |  |  | 
 |  |  |                     oCN.BeginTran(); | 
 |  |  |                     oCN.RunProc("Insert into Gy_Warehouse  " + | 
 |  |  |                         " (HNumber,HName,HHelpCode,HShortNumber,HParentID" + | 
 |  |  |                         ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID) " + | 
 |  |  |                         ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID,HSPFlag,HCREATEORGID,HMaker,HMakeTime,HStockCtrlFlag" + | 
 |  |  |                         ",HWarehouseType) " + | 
 |  |  |                         " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() + | 
 |  |  |                         "," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HEmpID.ToString() + ",'" + HAddress + "','" + HPhone + "','"+ HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                         "," + HLevel.ToString() + "," + HEndFlag + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HEmpID.ToString() + ",'" + HAddress + "','" + HPhone + "','"+ HUSEORGID + "',"+ HSPFlag + ","+ HUSEORGID + ",'"+msg3+"',getdate(),"+ Convert.ToString(HStockCtrlFlag ? 1 : 0)+"" + | 
 |  |  |                         ",'"+ HWarehouseType + "')", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     //修改上级为非末级代码 | 
 |  |  |                     oCN.RunProc("Update Gy_Warehouse set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     //启用仓位 | 
 |  |  |                     if (HSPFlag == 1) | 
 |  |  |                     { | 
 |  |  |                         //回填 HSPGroupID | 
 |  |  |                         oCN.RunProc("Update Gy_Warehouse set HSPGroupID=HItemID where HNumber='" + HNumber + "' and HName='" + HName + "' ", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     } | 
 |  |  |                     | 
 |  |  |                     oCN.Commit(); | 
 |  |  |                 } | 
 |  |  |                 else {  | 
 |  |  |                     //若MAINDI重复则重新获取 | 
 |  |  |                     oCN.BeginTran(); | 
 |  |  |                     //已审核不允许修改 | 
 |  |  |                     DataSet dss; | 
 |  |  |                     dss = oCN.RunProcReturn("select * from Gy_Warehouse where HItemID=" + HItemID, "Gy_Warehouse"); | 
 |  |  |                     //判断是否可编辑 | 
 |  |  |                     if (dss.Tables[0].Rows[0]["HCheckEmp"].ToString() != "") | 
 |  |  |                     { | 
 |  |  |                         oCN.RollBack(); | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "此单据状态已经审核,不允许修改!"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     //主表 | 
 |  |  |                     oCN.RunProc("Update Gy_Warehouse set " + | 
 |  |  |                         " HNumber='" + HNumber + "'" + | 
 |  |  | 
 |  |  |                         ",HHelpCode='" + HHelpCode + "'" + | 
 |  |  |                         ",HLevel=" + HLevel.ToString() + | 
 |  |  |                         ",HParentID=" + HParentID.ToString() + | 
 |  |  |                         ",HEndflag=" + Convert.ToString(HEndFlag ? 1 : 0) + | 
 |  |  |                         ",HStopflag=" + Convert.ToString(HStopflag ? 1 : 0) + | 
 |  |  |                         ",HEmpID=" + HEmpID.ToString() + | 
 |  |  |                         ",HAddress='" + HAddress + "'" + | 
 |  |  |                         ",HPhone='" + HPhone + "'" + | 
 |  |  |                         ",HUSEORGID='" + HUSEORGID + "'" + | 
 |  |  |                         ",HWarehouseType='" + HWarehouseType + "'" + | 
 |  |  |                         ",HCREATEORGID='" + HUSEORGID + "'" + | 
 |  |  |                         ",HSPFlag='" + HSPFlag + "'" + | 
 |  |  |                         //",HSPGroupID='" + HSPGroupID + "'" + | 
 |  |  |                         ",HUpdater='" + HUpDater + "'" + | 
 |  |  |                         ",HUpdateDate= getdate()" + | 
 |  |  |                         ",HStockCtrlFlag=" + Convert.ToString(HStockCtrlFlag ? 1 : 0) + | 
 |  |  |                         ",HRemark= '" + HRemark + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     //修改子项目代码 | 
 |  |  |                     //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Warehouse,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     //将上级 为非末级 | 
 |  |  |                     oCN.RunProc("Update Gy_Warehouse set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     // | 
 |  |  |                     //启用仓位 | 
 |  |  |                     if (HSPFlag == 1) | 
 |  |  |                     { | 
 |  |  |                         //回填 HSPGroupID | 
 |  |  |                         oCN.RunProc("Update Gy_Warehouse set HSPGroupID=HItemID where HItemID=" + HItemID , ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     } | 
 |  |  |                     else { | 
 |  |  |                         //回填 HSPGroupID | 
 |  |  |                         oCN.RunProc("Update Gy_Warehouse set HSPGroupID=0 where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                     } | 
 |  |  |                     oCN.Commit(); | 
 |  |  |                 } | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         [Route("Gy_Warehouse/SaveGy_WarehouseListApi")] | 
 |  |  |         [HttpPost] | 
 |  |  |         public object SaveGy_WarehouseListApi([FromBody] JObject msg) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 var model = msg["model"].ToString(); | 
 |  |  |                 var stockplaceModel = msg["model"]["HStockplaceEntry"].ToString(); | 
 |  |  |                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  |                 //反序列化 | 
 |  |  |                 model = "[" + model.ToString() + "]"; | 
 |  |  |                 List<Warehouse> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Warehouse>>(model);//仓库 | 
 |  |  |                 List<Gy_StockPlace> stockplaceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_StockPlace>>(stockplaceModel);//仓位 | 
 |  |  |                 string sql = string.Empty; | 
 |  |  |                 //DataTable dt = DataHelper.ListToDataTable<Warehouse>(list); | 
 |  |  |                 //oCN.SqlBulkCopyByDatatable("Gy_Warehouse", dt); | 
 |  |  |                 //保存 | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |                 sql = $"delete Gy_Warehouse where HItemID = {list[0].HItemID}"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 sql = "set identity_insert Gy_Warehouse on"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 oCN.RunProc("Insert into Gy_Warehouse  " + | 
 |  |  |                        " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" + | 
 |  |  |                        ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID,HCREATEORGID,HSPFlag,HSPGroupID,HUnderStock,HSTOCKPROPERTY,HERPItemID) " + | 
 |  |  |                        " Values('" + list[0].HItemID + "','" + list[0].HNumber + "','" +list[0].HName + "','" + list[0].HHelpCode + "','" + list[0].HShortNumber + "'," + list[0].HParentID.ToString() + | 
 |  |  |                        "," + list[0].HLevel.ToString() + "," + Convert.ToString(list[0].HEndFlag ? 1 : 0) + "," + Convert.ToString(list[0].HStopFlag ? 1 : 0) + ",'" + list[0].HRemark + "'," + list[0].HEmpID.ToString() + ",'" + list[0].HAddress + "','" + list[0].HPhone + "','" + list[0].HUSEORGID + "','" + list[0].HCREATEORGID + "','" + list[0].HSPFlag + "','" + list[0].HSPGroupID + "','" + list[0].HUnderStock + "','" + list[0].HSTOCKPROPERTY + "'," + list[0].HItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                 //修改上级为非末级代码 | 
 |  |  |                 sql = "set identity_insert Gy_Warehouse off"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 sql = $"delete gy_stockplace where HSPGroupID in ({list[0].HItemID})"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 sql = "set identity_insert gy_stockplace on"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 foreach (var item in stockplaceList) | 
 |  |  |                 { | 
 |  |  |                     oCN.RunProc("Insert into gy_stockplace  " + | 
 |  |  |                        " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" + | 
 |  |  |                        ",HLevel,HEndFlag,HStopflag,HRemark,HUSEORGID,HCREATEORGID,HSPGroupID,HSPType,HSrcSPType,HDesSPType,HERPItemID) " + | 
 |  |  |                        " Values('" + item.HItemID + "','" + item.HNumber + "','" + item.HName + "','" + item.HHelpCode + "','" + item.HShortNumber + "'," + item.HParentID.ToString() + | 
 |  |  |                        "," + item.HLevel.ToString() + "," + Convert.ToString(item.HEndFlag ? 1 : 0) + "," + Convert.ToString(item.HStopFlag ? 1 : 0) + ",'" + item.HRemark + "','" + item.HUSEORGID + "','" + item.HCREATEORGID + "','" + item.HSPGroupID + "','" + item.HSPType + "','" + item.HSrcSPType + "','" + item.HDesSPType + "'," + item.HItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
 |  |  |                 } | 
 |  |  |                 sql = "set identity_insert gy_stockplace off"; | 
 |  |  |                 oCN.RunProc(sql); | 
 |  |  |                 oCN.Commit(); | 
 |  |  |  | 
 |  |  |                 objJsonResult.code = "1"; | 
 |  |  |                 objJsonResult.count = 1; | 
 |  |  |                 objJsonResult.Message = "保存成功!"; | 
 |  |  |                 objJsonResult.data = 1; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "保存失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = 1; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         /// <summary> | 
 |  |  |         /// 仓库列表删除功能 | 
 |  |  |         /// </summary> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         [Route("DeltetGy_Warehouse")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object DeltetGy_Warehouse(string HItemID) | 
 |  |  |         public object DeltetGy_Warehouse(string HItemID,string user) | 
 |  |  |         { | 
 |  |  |             DataSet ds; | 
 |  |  |             DataSet ds1; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //删除权限 | 
 |  |  |                 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName)) | 
 |  |  |                 //{ | 
 |  |  |                 //    objJsonResult.code = "0"; | 
 |  |  |                 //    objJsonResult.count = 0; | 
 |  |  |                 //    objJsonResult.Message = "审核失败!无权限!"; | 
 |  |  |                 //    objJsonResult.data = null; | 
 |  |  |                 //    return objJsonResult; | 
 |  |  |                 //} | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log("Gy_Warehouse_Delete", 1, false, user)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "无删除权限"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
 |  |  |                 if (string.IsNullOrWhiteSpace(HItemID)) | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         #region [同步基础资料] | 
 |  |  |         [Route("Gy_Warehouse/Gy_WarehouseViewApi")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public json Gy_WarehouseViewApi(string Number, string Type, string HUseOrgID) | 
 |  |  |         { | 
 |  |  |             string sql = string.Empty; | 
 |  |  |             string sReturn = ""; | 
 |  |  |             if (oSystemParameter.ShowBill(ref sReturn) == true) | 
 |  |  |             { | 
 |  |  |                 //系统参数是否为私有云模式,N为公有云模式,Y为私有云模式 | 
 |  |  |                 if (oSystemParameter.omodel.WMS_CloudMode == "Y") | 
 |  |  |                 { | 
 |  |  |                     #region [私有云模式,直接调用数据库存储过程更新] | 
 |  |  |                     try | 
 |  |  |                     { | 
 |  |  |                         oCN.BeginTran(); | 
 |  |  |                         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
 |  |  |                         DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPBasicInfoToLocal '" + Number + "','" + Type + "'", "h_p_WMS_ERPBasicInfoToLocal"); | 
 |  |  |                         if (DS == null) | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "基础资料同步失败"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                         else | 
 |  |  |                         { | 
 |  |  |                             if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2") | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "0"; | 
 |  |  |                                 objJsonResult.count = 0; | 
 |  |  |                                 objJsonResult.Message = "ERP中不存在该代码"; | 
 |  |  |                                 objJsonResult.data = null; | 
 |  |  |                                 return objJsonResult; | 
 |  |  |                             } | 
 |  |  |                             else | 
 |  |  |                             { | 
 |  |  |                                 objJsonResult.code = "1"; | 
 |  |  |                                 objJsonResult.count = 1; | 
 |  |  |                                 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 | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     #region [公有云模式,调用WEBAPI的方式进行更新] | 
 |  |  |                     var json = new | 
 |  |  |                     //{ | 
 |  |  |                     //    CreateOrgId = 0, | 
 |  |  |                     //    Number = Number, | 
 |  |  |                     //    Id = "" | 
 |  |  |                     //}; | 
 |  |  |                     { | 
 |  |  |                         FormId = "BD_STOCK", | 
 |  |  |                         FieldKeys = "FMASTERID,FNUMBER,FNAME,FFORBIDSTATUS,FISOPENLOCATION,FAllowMinusQty,FCREATEDATE,FCREATEORGID,FUSEORGID,FSTOCKPROPERTY,FDefStockStatusId", | 
 |  |  |                         FilterString = $@"FNUMBER='{Number}' AND FUSEORGID={HUseOrgID}", | 
 |  |  |                         OrderString = "", | 
 |  |  |                         TopRowCount = 0, | 
 |  |  |                         StartRow = 0, | 
 |  |  |                         Limit = 0 | 
 |  |  |                     }; | 
 |  |  |                 #region [金蝶部分] | 
 |  |  |                 //登录金蝶 | 
 |  |  |                 var loginRet = InvokeHelper.Login(); | 
 |  |  |                     var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); | 
 |  |  |                     //判断是否登录成功 | 
 |  |  |                     if (isSuccess < 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = loginRet; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |                     //查看 获取数据                     | 
 |  |  |                     var _result = InvokeHelper.Query("BD_STOCK", JsonConvert.SerializeObject(json)); | 
 |  |  |                     var _saveObj = JArray.Parse(_result); | 
 |  |  |                     //判断数据是否获取成功 | 
 |  |  |                     // if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") | 
 |  |  |                     // { | 
 |  |  |                     //     objJsonResult.code = "0"; | 
 |  |  |                     //     objJsonResult.count = 0; | 
 |  |  |                     //     objJsonResult.Message = "金蝶仓库仓位同步失败jsonRoot:" + _result; | 
 |  |  |                     //     objJsonResult.data = null; | 
 |  |  |                     //     return objJsonResult; | 
 |  |  |                     // } | 
 |  |  |                     if (_saveObj.Count == 0) | 
 |  |  |                     { | 
 |  |  |                         objJsonResult.code = "0"; | 
 |  |  |                         objJsonResult.count = 0; | 
 |  |  |                         objJsonResult.Message = "金蝶客户同步失败,使用组织对应的仓库代码无对应的仓库"; | 
 |  |  |                         objJsonResult.data = null; | 
 |  |  |                         return objJsonResult; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                     //获取数据 | 
 |  |  |                     DataSet Ds; | 
 |  |  |                     Ds = oCN.RunProcReturn("select * from Gy_Warehouse where HNumber = '" + Number + "'", "Gy_Warehouse"); | 
 |  |  |                     if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString()) != 0) | 
 |  |  |                     { | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     #region [表数据赋值] | 
 |  |  |                     var jsonData = new | 
 |  |  |                     //{ | 
 |  |  |                     //    HItemID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                     //    HERPItemID = _saveObj["Result"]["Result"]["Id"], | 
 |  |  |                     //    HNumber = _saveObj["Result"]["Result"]["Number"], | 
 |  |  |                     //    HName             = _saveObj["Result"]["Result"]["Name"][0]["Value"], | 
 |  |  |                     //    HShortNumber      = _saveObj["Result"]["Result"]["Number"], | 
 |  |  |                     //    HParentID         = 0, | 
 |  |  |                     //    HLevel            = 1, | 
 |  |  |                     //    HEndFlag          = 1, | 
 |  |  |                     //    HStopflag         = _saveObj["Result"]["Result"]["ForbidStatus"].ToString() == "A" ? 0 : 1, | 
 |  |  |                     //    HRemark           = "CLD-ERP导入", | 
 |  |  |                     //    HSPFlag           = _saveObj["Result"]["Result"]["IsOpenLocation"].ToString() == "false" ? 0 : 1, | 
 |  |  |                     //    HSPGroupID        = 0, | 
 |  |  |                     //    HUnderStock       = _saveObj["Result"]["Result"]["AllowMinusQty"].ToString() == "false" ? 0 : 1, | 
 |  |  |                     //    HUseFlag          = "已使用", | 
 |  |  |                     //    HMakeTime         = _saveObj["Result"]["Result"]["CreateDate"], | 
 |  |  |                     //    HCREATEORGID      = _saveObj["Result"]["Result"]["CreateOrgId_Id"], | 
 |  |  |                     //    HUSEORGID         = _saveObj["Result"]["Result"]["UseOrgId_Id"], | 
 |  |  |                     //    HSTOCKPROPERTY    = _saveObj["Result"]["Result"]["StockProperty"], | 
 |  |  |                     //    HDEFSTOCKSTATUSID = _saveObj["Result"]["Result"]["DefStockStatusId_Id"],                       | 
 |  |  |                     //}; | 
 |  |  |                     { | 
 |  |  |                         HItemID = _saveObj[0][0], | 
 |  |  |                         HERPItemID = _saveObj[0][0], | 
 |  |  |                         HNumber = _saveObj[0][1], | 
 |  |  |                         HName = _saveObj[0][2], | 
 |  |  |                         HShortNumber = _saveObj[0][1], | 
 |  |  |                         HParentID = 0, | 
 |  |  |                         HLevel = 1, | 
 |  |  |                         HEndFlag = 1, | 
 |  |  |                         HStopflag = _saveObj[0][3].ToString() == "A" ? 0 : 1, | 
 |  |  |                         HRemark = "CLD-ERP导入", | 
 |  |  |                         HSPFlag = _saveObj[0][4].ToString() == "false" ? 0 : 1, | 
 |  |  |                         HSPGroupID = 0, | 
 |  |  |                         HUnderStock = _saveObj[0][5].ToString() == "false" ? 0 : 1, | 
 |  |  |                         HUseFlag = "已使用", | 
 |  |  |                         HMakeTime = _saveObj[0][6], | 
 |  |  |                         HCREATEORGID = _saveObj[0][7], | 
 |  |  |                         HUSEORGID = _saveObj[0][8], | 
 |  |  |                         HSTOCKPROPERTY = _saveObj[0][9], | 
 |  |  |                         HDEFSTOCKSTATUSID = _saveObj[0][10], | 
 |  |  |                     }; | 
 |  |  |                     #endregion | 
 |  |  |                     // 删除主表对应数据 | 
 |  |  |                     sql = $"delete from Gy_Warehouse where HItemID = " + jsonData.HItemID + " and HNumber = '" + Number + "'"; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     sql = "set identity_insert Gy_Warehouse on"; | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     //插入表 | 
 |  |  |                     sql = $@" | 
 |  |  |                 insert into Gy_Warehouse | 
 |  |  |                 (HItemID,HERPItemID,HNumber,HName,HShortNumber,HParentID | 
 |  |  |                 ,HLevel,HEndFlag,HStopflag,HRemark | 
 |  |  |                 ,HSPFlag,HSPGroupID,HUnderStock,HUseFlag | 
 |  |  |                 ,HMakeTime,HCREATEORGID,HUSEORGID,HSTOCKPROPERTY,HDEFSTOCKSTATUSID | 
 |  |  |                  ) | 
 |  |  |                 values | 
 |  |  |                 ({jsonData.HItemID},{jsonData.HItemID},'{jsonData.HNumber}','{jsonData.HName}', | 
 |  |  |                 '{jsonData.HShortNumber}',{jsonData.HParentID},{jsonData.HLevel},{jsonData.HEndFlag},{jsonData.HStopflag},'{jsonData.HRemark}',{jsonData.HSPFlag},{jsonData.HSPGroupID},{jsonData.HUnderStock},'{jsonData.HUseFlag}','{jsonData.HMakeTime}',{jsonData.HCREATEORGID},{jsonData.HUSEORGID},{jsonData.HSTOCKPROPERTY},{jsonData.HDEFSTOCKSTATUSID})"; | 
 |  |  |  | 
 |  |  |                     oCN.RunProc(sql); | 
 |  |  |  | 
 |  |  |                     sql = "set identity_insert Gy_Warehouse off"; | 
 |  |  |                     oCN.RunProc(sql);          | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "仓库仓位同步成功!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |  | 
 |  |  |                     #endregion | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else | 
 |  |  |             { | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "基础资料读取失败!"; | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 物料分类审核、反审核 | 
 |  |  |         /// <summary> | 
 |  |  |         ///  | 
 |  |  |         /// </summary> | 
 |  |  |         /// <param name="HInterID">单据ID</param> | 
 |  |  |         /// <param name="IsAudit">审核(0),反审核(1)</param> | 
 |  |  |         /// <param name="CurUserName">审核人</param> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         [Route("Gy_Warehouse/AuditGy_Warehouse")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object AuditGy_MaterType(int HInterID, int IsAudit, string CurUserName) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //审核权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second("Gy_Warehouse_Check", 1, false, CurUserName)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "审核失败!无权限!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 var ds = oCN.RunProcReturn("select * from Gy_Warehouse where HItemID=" + HInterID, "Gy_Warehouse"); | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     if (IsAudit == 0)  //审核判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "单据已审核!不能再次审核!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (IsAudit == 1) //反审核判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "单据未审核!不需要反审核!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "单据不存在!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |  | 
 |  |  |                 if (IsAudit == 0)  //审核判断 | 
 |  |  |                 { | 
 |  |  |                     oCN.RunProc("update Gy_Warehouse set HCheckEmp='" + CurUserName + "',HCheckTime=getdate() where HItemID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "审核成功"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                 } | 
 |  |  |                 if (IsAudit == 1) //反审核判断 | 
 |  |  |                 { | 
 |  |  |                     oCN.RunProc("update Gy_Warehouse set HCheckEmp='',HCheckTime=null where HItemID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "反审核成功"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                 } | 
 |  |  |                 oCN.Commit(); | 
 |  |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |         #region 物料分类禁用、反禁用 | 
 |  |  |         /// <summary> | 
 |  |  |         ///  | 
 |  |  |         /// </summary> | 
 |  |  |         /// <param name="HInterID">单据ID</param> | 
 |  |  |         /// <param name="IsStop">禁用(0),反禁用(1)</param> | 
 |  |  |         /// <param name="CurUserName">审核人</param> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         [Route("Gy_Warehouse/StopGy_Warehouse")] | 
 |  |  |         [HttpGet] | 
 |  |  |         public object StopGy_MaterType(int HInterID, int IsStop, string CurUserName) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 //审核权限 | 
 |  |  |                 if (!DBUtility.ClsPub.Security_Log_second("Gy_Warehouse_Stop", 1, false, CurUserName)) | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "禁用失败!无权限!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 var ds = oCN.RunProcReturn("select * from Gy_Warehouse where HItemID=" + HInterID, "Gy_Warehouse"); | 
 |  |  |                 if (ds.Tables[0].Rows.Count > 0) | 
 |  |  |                 { | 
 |  |  |                     if (IsStop == 0)  //禁用判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() != "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "单据已禁用!不能再次禁用!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (IsStop == 1) //反禁用判断 | 
 |  |  |                     { | 
 |  |  |                         if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() == "") | 
 |  |  |                         { | 
 |  |  |                             objJsonResult.code = "0"; | 
 |  |  |                             objJsonResult.count = 0; | 
 |  |  |                             objJsonResult.Message = "单据未禁用!不需要反禁用!"; | 
 |  |  |                             objJsonResult.data = null; | 
 |  |  |                             return objJsonResult; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     objJsonResult.code = "0"; | 
 |  |  |                     objJsonResult.count = 0; | 
 |  |  |                     objJsonResult.Message = "单据不存在!"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                     return objJsonResult; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 oCN.BeginTran(); | 
 |  |  |  | 
 |  |  |                 if (IsStop == 0)  //禁用判断 | 
 |  |  |                 { | 
 |  |  |                     oCN.RunProc("update Gy_Warehouse set HStopEmp='" + CurUserName + "',HStopTime=getdate(),HStopflag=1 where HItemID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "禁用成功"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                 } | 
 |  |  |                 if (IsStop == 1) //反禁用判断 | 
 |  |  |                 { | 
 |  |  |                     oCN.RunProc("update Gy_Warehouse set HStopEmp='',HStopTime=null,HStopflag=0 where HItemID=" + HInterID); | 
 |  |  |  | 
 |  |  |                     objJsonResult.code = "1"; | 
 |  |  |                     objJsonResult.count = 1; | 
 |  |  |                     objJsonResult.Message = "反禁用成功"; | 
 |  |  |                     objJsonResult.data = null; | 
 |  |  |                 } | 
 |  |  |                 oCN.Commit(); | 
 |  |  |  | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 oCN.RollBack(); | 
 |  |  |                 objJsonResult.code = "0"; | 
 |  |  |                 objJsonResult.count = 0; | 
 |  |  |                 objJsonResult.Message = "禁用失败或者反禁用失败!" + e.ToString(); | 
 |  |  |                 objJsonResult.data = null; | 
 |  |  |                 return objJsonResult; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         #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 | 
 |  |  |  | 
 |  |  |         #region 递归生成树状结构 | 
 |  |  |         /// <summary> | 
 |  |  |         /// 递归函数 | 
 |  |  |         /// </summary> | 
 |  |  |         public void digui(DataTable dt, List<TreeModel> tree, int num) | 
 |  |  |         { | 
 |  |  |             for (int m = 0; m < tree.Count; m++) | 
 |  |  |             { | 
 |  |  |                 tree[m].children = new List<TreeModel>(); | 
 |  |  |                 for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集 | 
 |  |  |                 { | 
 |  |  |                     var strLen = dt.Rows[i]["hnumber"].ToString().Split('.'); | 
 |  |  |                     if (strLen.Length == num && dt.Rows[i]["hnumber"].ToString().Contains(tree[m].Id + ".")) | 
 |  |  |                     { | 
 |  |  |                         TreeModel tbjson = new TreeModel(); | 
 |  |  |                         tbjson.Id = dt.Rows[i]["hitemid"].ToString(); | 
 |  |  |                         tbjson.Title = dt.Rows[i]["hname"].ToString(); | 
 |  |  |                         tbjson.Number = dt.Rows[i]["HNumber"].ToString(); | 
 |  |  |                         tree[m].children.Add(tbjson); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 var strLens = tree[m].Id.Split('.'); | 
 |  |  |                 for (int i = 0; i < tree[m].children.Count; i++) | 
 |  |  |                 { | 
 |  |  |                     digui(dt, tree[m].children, strLens.Length + 2);//再次用子集去循环,拿出子集的子集 | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |     } | 
 |  |  | } |