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_DepartmentController : 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; /// /// 返回部门列表 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/list")] [HttpGet] public object list(string sWhere, string user, string Organization) { try { List columnNameList = new List(); //查看权限 if (!DBUtility.ClsPub.Security_Log("Gy_Department", 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_DepartmentList where 组织名称='" + Organization + "'"); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn(sql1 + sWhere + "order by 部门代码", "h_v_IF_DepartmentList"); } else { string sql = sql1 + sWhere + "order by 部门代码 "; ds = oCN.RunProcReturn(sql, "h_v_IF_DepartmentList"); } //添加列名 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列对象的列名 } if (ds.Tables[0].Rows.Count > 0 && ds != null) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有查询到部门数据,请联系系统管理员进行核对"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #region 部门 树形图 public class TreeModel { public string id { get; set; } public string title { get; set; } public List children = new List(); } [Route("Gy_Department/Gy_DepartmentTreeList")] [HttpGet] public object Gy_DepartmentTreeList(string sWhere) { try { string sql1 = string.Format("select hitemid,hnumber,hname from Gy_Department where 1=1 " + sWhere + " order by hnumber"); ds = oCN.RunProcReturn(sql1, "Gy_Department"); List treeModels = new List(); TreeModel first = new TreeModel(); first.id = "0"; first.title = "部门设置"; 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(); treeModels[0].children.Add(tree); } } digui(ds.Tables[0], treeModels[0].children, 2); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels); return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 递归函数 /// public void digui(DataTable dt, List tree, int num) { for (int m = 0; m < tree.Count; m++) { tree[m].children = new List(); 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(); 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 /// /// 根据基础资料ID 查找记录 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/cx")] [HttpGet] public object cx(long HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_IF_DepartmentListDetail where HitemID = " + HInterID, "h_v_IF_DepartmentListDetail"); 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; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 部门列表删除功能 /// /// [Route("DeltetGy_Department")] [HttpGet] public object DeltetGy_Department(string HItemID, string user) { DataSet ds; DataSet ds1; try { //删除权限 if (!DBUtility.ClsPub.Security_Log("Gy_Department_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)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HItemID为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran();//开始事务 ds = oCN.RunProcReturn("select * from Gy_Department where HItemID=" + HItemID, "Gy_Department"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有数据,无法删除!"; objJsonResult.data = null; return objJsonResult; ; } ds1 = oCN.RunProcReturn("Select HItemID from Gy_Department Where HParentID='" + HItemID + "'", "Gy_Department"); if (ds1.Tables[0].Rows.Count != 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目存在子项目,不能删除!"; objJsonResult.data = null; return objJsonResult; } string HUseFlag = Convert.ToString(ds.Tables[0].Rows[0]["HUseFlag"]); if (HUseFlag == "已使用") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目已使用,不能删除!"; objJsonResult.data = null; return objJsonResult; } //v //var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]); //if (HStopflag) //{ // oCN.RollBack();//回滚事务 // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "数据已删除无法再次删除!"; // objJsonResult.data = null; // return objJsonResult; //} oCN.RunProc("delete from Gy_Department where HItemID=" + HItemID); oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "* 数据删除成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //[Route("Gy_Department/LoadTree")] //[HttpGet] //public object LoadTree_Json() //{ // DBUtility.Gy_BaseFun.LoadTree(tv, imageList1, this.Text, BillName); //} /// /// 部门列表禁用按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/JY_Json")] [HttpGet] public object JY_Json(long HItemID) { try { ds = oCN.RunProcReturn("update Gy_Department set HStopFlag = 1 where HItemID = " + HItemID, "Gy_Department"); 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; } } /// /// 部门列表反禁用按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/FJY_Json")] [HttpGet] public object FJY_Json(long HItemID) { try { ds = oCN.RunProcReturn("update Gy_Department set HStopFlag = 0 where HItemID = " + HItemID, "Gy_Department"); 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; } } /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { try { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); //反序列化 msg1 = "[" + msg1.ToString() + "]"; DAL.ClsGy_Department_Ctl oDept = new DAL.ClsGy_Department_Ctl(); DAL.ClsGy_Department_View oDeptHlp = new DAL.ClsGy_Department_View(); List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg1); long HItemID = list[0].HItemID; string HNumber = list[0].HNumber; string HName = list[0].HName; string HShortNumber = list[0].HShortNumber; string HRemark = list[0].HRemark; string HUseFlag = list[0].HUseFlag; long HParentID = list[0].HParentID; string HBarCode = list[0].HBarCode; string HHelpCode = list[0].HHelpCode; long HSecManagerID = list[0].HSecManagerID; string HCreator = list[0].HCreator; long HCreateOrgID = list[0].HCreateOrgID; //DateTime HCreateDate = list[0].HCreateDate; long HUseOrgID = list[0].HUseOrgID; string HUpdater = list[0].HUpDater; //DateTime HUpdateDate = list[0].HUpDateDate; string HChecker = list[0].HChecker; //DateTime HCheckDate = list[0].HCheckDate; string HDeleteMan = list[0].HDeleteMan; //DateTime HDeleteDate = list[0].HDeleteDate; if (!DBUtility.ClsPub.AllowNumber(HNumber)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!"; objJsonResult.data = null; return objJsonResult; } //若MAINDI重复则重新获取 oCN.BeginTran(); //主表 oCN.RunProc("Insert Into Gy_Department " + "(HNumber,HShortNumber,HName,HParentID" + ",HLevel,HEndFlag,HRemark,HStopFlag,HUseFlag" + ",HCREATEORGID,HUSEORGID" + ") " + " values('" + HNumber + "','" + HShortNumber + "','" + HName + "',0" + ",'',0,'" + HRemark + "',0,''" + "," + HCreateOrgID + "," + HUseOrgID + "" + ") "); //修改上级为非末级代码 oCN.RunProc("Update Gy_Department set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; //objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message; objJsonResult.data = null; return objJsonResult; } } /// /// 保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/AddBill1")] [HttpPost] public object AddBill1([FromBody] JObject oMain) { try { DAL.ClsGy_Department_Ctl oDept = new DAL.ClsGy_Department_Ctl(); DAL.ClsGy_Department_View oDeptHlp = new DAL.ClsGy_Department_View(); var _value = oMain["oMain"].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(); //string msg4 = sArray[2].ToString(); //string msg5 = sArray[3].ToString(); //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Department_Edit", 1, false, msg3)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } //反序列化 msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); msg2 = "[" + msg2.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HItemID = list[0].HItemID; string HNumber = list[0].HNumber; string HName = list[0].HName; string HRemark = list[0].HRemark; string HUseFlag = list[0].HUseFlag; string HBarCode = list[0].HBarCode; string HHelpCode = list[0].HHelpCode; string HUpDater = msg3; long HEmpID = list[0].HEmpID; bool HStopflag = list[0].HStopflag; long HSecManagerID = list[0].HSecManagerID; //string HCreator = list[0].HCreator; long HCreateOrgID = list[0].HCreateOrgID; //DateTime HCreateDate = list[0].HCreateDate; long HUseOrgID = list[0].HUseOrgID; //DateTime HUpdateDate = list[0].HUpDateDate; string HChecker = list[0].HChecker; //DateTime HCheckDate = list[0].HCheckDate; string HDeleteMan = list[0].HDeleteMan; //DateTime HDeleteDate = list[0].HDeleteDate; //末级标志 bool HEndFlag = true; long HEntityID = 1; //得到短代码 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); //检查父级是否存在 long HParentID = 0; string sParent = DBUtility.ClsPub.GetParentCode(HNumber); if (sParent.Trim() == "") { HParentID = 0; } else { ds = oCN.RunProcReturn("select * from Gy_Department where HNumber='" + sParent + "' and HStopFlag=0 ", "Gy_Department"); 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; } } //判断权限 //if (!ClsPub.Security_Log(msg5, 1, false, msg4)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "没有找到该功能模块!"; // objJsonResult.data = null; // return objJsonResult; //} //if (!DBUtility.ClsPub.AllowNumber(HNumber)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!"; // objJsonResult.data = null; // return objJsonResult; //} //if (oDept.HavSameNumber(HItemID, HNumber)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "代码重复!"; // objJsonResult.data = null; // return objJsonResult; //} //保存 //保存完毕后处理 if (HItemID == 0) { //新增 oCN.BeginTran(); oCN.RunProc("Insert into Gy_Department " + " (HNumber,HName,HHelpCode,HShortNumber,HParentID" + ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HBarCodeForBase,HEntityID,HUSEORGID,HCREATEORGID,HMaker,HMakeTime) " + " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() + "," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HEmpID + ",'" + HBarCode + "'" + "," + HEntityID.ToString() + "," + HUseOrgID + ","+ HCreateOrgID + ",'"+ msg3 + "',getdate())", ref DBUtility.ClsPub.sExeReturnInfo); //修改上级为非末级代码 oCN.RunProc("Update Gy_Department set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); oCN.Commit(); } else { oCN.BeginTran(); //主表 oCN.RunProc("Update Gy_Department set " + " HNumber='" + HNumber + "'" + ",HName='" + HName + "'" + ",HHelpCode='" + HHelpCode + "'" + ",HLevel='" + HLevel + "'" + ",HShortNumber='" + HShortNumber + "'" + ",HBarCodeForBase='" + HBarCode + "'" + ",HParentID=" + HParentID + ",HEmpID=" + HEmpID.ToString() + ",HUSEORGID=" + HUseOrgID.ToString() + ",HCREATEORGID=" + HCreateOrgID.ToString() + ",HStopflag=" + Convert.ToString(HStopflag ? 1 : 0) + ",HUpDater='" + HUpDater + "'" + ",HUpDateDate= getdate()" + ",HRemark= '" + HRemark + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo); //修改子项目代码 //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Department,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo); //将上级 为非末级 oCN.RunProc("Update Gy_Department set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); oCN.Commit(); } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { //oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message; objJsonResult.data = null; return objJsonResult; } } /// /// 获取最大基础资料ID ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/GetMAXBillID")] [HttpGet] public object GetMAXBillID() { try { ds = oCN.RunProcReturn("select max(hitemid)+1 hitemid from Gy_Department", "Gy_Department"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = ""; 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; } } /// /// 部门列表修改按钮方法 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Department/xg")] [HttpGet] public object xg(long HInterID) { try { ds = oCN.RunProcReturn("select * from Gy_Department where HItemID=" + HInterID, "Gy_Department"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = ""; 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; } } [Route("Gy_Department/LoadTree")] [HttpGet] public object LoadTree_Json(string sWhere) { SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); //ds = oCN.RunProcReturn("select * from h_v_IF_GroupList " + sWhere, "h_v_IF_GroupList"); ds = oCN.RunProcReturn("select * from h_v_DepartmentLoadTree", "h_v_DepartmentLoadTree"); 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; } } [Route("Gy_Department/SaveGy_DepartmentListApi")] [HttpPost] public object SaveGy_DepartmentListApi([FromBody] JObject oMain) { try { var model = oMain["model"].ToString(); //反序列化 model = "[" + model + "]"; List lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject>(model); string sql = string.Empty; oCN.BeginTran(); sql = $"delete Gy_Department where HItemID = {lsmain[0].HItemID}"; oCN.RunProc(sql); sql = "set identity_insert Gy_Department on"; oCN.RunProc(sql); //主表 oCN.RunProc("Insert Into Gy_Department " + "(HItemID,HNumber,HShortNumber,HName,HParentID" + ",HLevel,HEndFlag,HRemark,HStopFlag,HUseFlag" + ",HCREATEORGID,HUSEORGID,HERPItemID" + ") " + " values('" + lsmain[0].HItemID + "','" + lsmain[0].HNumber + "','" + lsmain[0].HShortNumber + "','" + lsmain[0].HName + "',0" + ",'',0,'" + lsmain[0].HRemark + "',0,''" + "," + lsmain[0].HCreateOrgID + "," + lsmain[0].HUseOrgID + "," + lsmain[0].HItemID + ") "); sql = "set identity_insert Gy_Department off"; oCN.RunProc(sql); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; //objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message; objJsonResult.data = null; return objJsonResult; } } #region [同步基础资料] [Route("Gy_Department/Gy_DepartmentViewApi")] [HttpGet] public json Gy_DepartmentViewApi(string Number, string Type) { 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 = "" }; #region [金蝶部分] //登录金蝶 var loginRet = InvokeHelper.Login(); var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value(); //判断是否登录成功 if (isSuccess < 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = loginRet; objJsonResult.data = null; return objJsonResult; } //查看 获取数据 var _result = InvokeHelper.View("BD_Department", JsonConvert.SerializeObject(json)); var _saveObj = JObject.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; } #endregion //获取数据 DataSet Ds; Ds = oCN.RunProcReturn("select * from Gy_Department where HNumber = '" + Number + "'", "Gy_Department"); 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导入", HUseFlag = "已使用", HMakeTime = _saveObj["Result"]["Result"]["CreateDate"], HCREATEORGID = _saveObj["Result"]["Result"]["CreateOrgId_Id"], HUSEORGID = _saveObj["Result"]["Result"]["UseOrgId_Id"], }; #endregion // 删除主表对应数据 sql = $"delete from Gy_Department where HItemID = " + jsonData.HItemID + " and HNumber = '" + Number + "'"; oCN.RunProc(sql); sql = "set identity_insert Gy_Department on"; oCN.RunProc(sql); //插入表 sql = $@" insert into Gy_Department (HItemID,HERPItemID,HNumber,HName,HShortNumber,HParentID ,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HMakeTime,HCREATEORGID,HUSEORGID ) values ({jsonData.HItemID},{jsonData.HItemID},'{jsonData.HNumber}','{jsonData.HName}', '{jsonData.HShortNumber}',{jsonData.HParentID},{jsonData.HLevel},{jsonData.HEndFlag},{jsonData.HStopflag},'{jsonData.HRemark}','{jsonData.HUseFlag}','{jsonData.HMakeTime}',{jsonData.HCREATEORGID},{jsonData.HUSEORGID})"; oCN.RunProc(sql); sql = "set identity_insert Gy_Department 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 部门审核、反审核 /// /// /// /// 单据ID /// 审核(0),反审核(1) /// 审核人 /// [Route("Gy_Department/AuditGy_Department")] [HttpGet] public object AuditGy_MaterType(int HInterID, int IsAudit, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Department_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } var ds = oCN.RunProcReturn("select * from Gy_Department where HItemID=" + HInterID, "Gy_Department"); 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_Department 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_Department 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 部门禁用、反禁用 /// /// /// /// 单据ID /// 禁用(0),反禁用(1) /// 审核人 /// [Route("Gy_Department/StopGy_Department")] [HttpGet] public object StopGy_MaterType(int HInterID, int IsStop, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Department_Stop", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "禁用失败!无权限!"; objJsonResult.data = null; return objJsonResult; } var ds = oCN.RunProcReturn("select * from Gy_Department where HItemID=" + HInterID, "Gy_Department"); 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_Department 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_Department 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_Department/Gy_Process_Excel")] //[HttpPost] //public json Gy_Department_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 HEmpNumber = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["负责人代码"].ToString()); // string HEmpName = DBUtility.ClsPub.isStrNull(provisional.Rows[i]["负责人名称"].ToString()); // string HBarCode = 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; // } //} /// /// 判断当前职员是否存在 /// /// /// /// //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; //} /// /// 判断列 /// /// /// private static string JudgmentColumns(DataTable provisional) { var error = ""; //查询没有的列 if (!provisional.Columns.Contains("部门代码")) error += "没有找到【部门代码】的标题,"; if (!provisional.Columns.Contains("部门名称")) error += "没有找到【部门名称】的标题,"; return error; } #endregion #region 部门列表 导入(保存) [Route("Gy_Department/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 Excel = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); List> list = new List>(); foreach (JObject item in Excel) { Dictionary dic = new Dictionary(); foreach (var itm in item.Properties()) { dic.Add(itm.Name, itm.Value.ToString()); } list.Add(dic); } oCN.BeginTran(); int i = 1; foreach (Dictionary item in list) { string HNumber = item["部门代码"].ToString(); string HName = item["部门名称"].ToString(); string HEmpNumber = item["负责人代码"].ToString(); string HEmpName = item["负责人名称"].ToString(); string HBarCode = 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_Department where HNumber='" + HNumber + "'", "Gy_InspectInstruMent"); if (ds.Tables[0].Rows.Count == 0) { string sql = "insert into Gy_Department (HName,HNumber,HShortNumber,HLevel,HHelpCode,HParentID,HStopflag,HEndFlag,HRemark,HUseFlag, HUSEORGID, HCREATEORGID, HEmpID, HBarCodeForBase)" + $"values('{HName}', '{HNumber}', '{sShortNumber}',{HLevel},'',0,'0','0','{HRemark}', '未使用', '{organ}', '{organ}', '{HEmpID}', '{HBarCode}')"; oCN.RunProc(sql); } else { oCN.RunProc("update Gy_Department set HName ='" + HName + "' , HHelpCode = '" + HHelpCode + " ', HBarCodeForBase = '" + HBarCode + "', 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 } }