using DBUtility; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { public class Gy_ShiftsController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; const string ModCaption = "班次"; public const string ModRightName = "Gy_Shifts"; public const string ModRightNameAdd = ModRightName + "_Add"; //新增 public const string ModRightNameEdit = ModRightName + "_Edit"; //编辑 public const string ModRightNameCheck = ModRightName + "_Check"; //审核 public const string ModRightNameClose = ModRightName + "_Stop"; //禁用 public const string ModRightNameDelete = ModRightName + "_Delete"; //删除 public DataSet ds = new DataSet(); private json objJsonResult = new json(); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsGy_Shifts_Ctl oBill = new DAL.ClsGy_Shifts_Ctl(); DAL.ClsGy_Shifts_View oBillHlp = new DAL.ClsGy_Shifts_View(); #region 班次列表 /// /// 获取班次列表信息 /// /// [Route("Gy_ShiftsController/GetGy_ShiftsList_Json")] [HttpGet] public object GetGy_ShiftsList_Json(string sWhere, string HMaker, string OperationType) { try { //判断权限 if (OperationType == "1") { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightName, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } //返回列表信息 ds = oCn.RunProcReturn("select * from h_v_Gy_ShiftsList where " + sWhere + " order by " + ModCaption + "代码" , "h_v_Gy_ShiftsList"); List columnNameList = new List(); //添加列名 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 = "0"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询列表信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 班次删除 /// /// 删除班次 /// /// [Route("Gy_ShiftsController/GetGy_Shifts_Delete_Json")] [HttpGet] public object GetGy_Shifts_Delete_Json(Int64 HItemID, string HMaker) { try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块删除功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } //判断存在性 if (oBillHlp.GetInfoByID(HItemID)) { //判断是否存在子项 if (oBill.HavChildCodes(HItemID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此班次存在子项目,不能删除!"; objJsonResult.data = null; return objJsonResult; } //删除数据 if (oBill.DeleteByID(HItemID)) { //写入日志 DBUtility.ClsPub.Add_Log("", "删除班次,代码:" + oBillHlp.omodel.HNumber + ",名称:" + oBillHlp.omodel.HName, HMaker); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除班次成功!"; objJsonResult.data = null; return objJsonResult; } else { 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; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除班次失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 班次审核、反审核 /// /// 审核、反审核班次 /// /// 内码 /// 审核(0),反审核(1) /// 操作人 /// [Route("Gy_ShiftsController/GetGy_Shifts_Check_Json")] [HttpGet] public object GetGy_Shifts_Check_Json(Int64 HItemID, int IsAudit, string HMaker) { string sErrMsg = ""; try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块审核/反审核功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } if (IsAudit == 0) //审核判断 { if (oBill.CheckByHItemID(HItemID, HMaker, ref sErrMsg)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核班次成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核班次失败!" + sErrMsg; objJsonResult.data = null; return objJsonResult; } } else if (IsAudit == 1) //反审核判断 { if (oBill.AbandonCheckByHItemID(HItemID, HMaker, ref sErrMsg)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反审核班次成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反审核班次失败!" + sErrMsg; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核/反审核功能判断错误!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核或反审核班次失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 班次禁用、反禁用 /// /// 禁用、反禁用班次 /// /// 内码 /// 禁用(0),反禁用(1) /// 操作人 /// [Route("Gy_ShiftsController/GetGy_Shifts_Stop_Json")] [HttpGet] public object GetGy_Shifts_Stop_Json(Int64 HItemID, int IsStop, string HMaker) { string sErrMsg = ""; try { //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 3, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块禁用/反禁用功能权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } if (IsStop == 0) //禁用判断 { if (oBill.StopByHItemID(HItemID, HMaker, ref sErrMsg)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "禁用班次成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "禁用班次失败!" + sErrMsg; objJsonResult.data = null; return objJsonResult; } } else if (IsStop == 1) //反禁用判断 { if (oBill.AbandonStopByHItemID(HItemID, HMaker, ref sErrMsg)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "反禁用班次成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "反禁用班次失败!" + sErrMsg; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "禁用/反禁用功能判断错误!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "禁用或反禁用班次失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 班次保存 /// /// 班次保存 /// [Route("Gy_ShiftsController/GetGy_Shifts_Save_Json")] [HttpPost] public object GetGy_Shifts_Save_Json([FromBody] JObject oMain) { try { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string HMaker = sArray[1].ToString(); string OperationType = sArray[2].ToString(); //操作类型(1新增、2编辑) //判断权限 if (OperationType == "1") { //判断新增权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameAdd, 1, false, HMaker)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "您没有该模块新增权限,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } } else { //判断编辑权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, false, HMaker)) { 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); oBill.oModel.HItemID = list[0].HItemID; oBill.oModel.HNumber = list[0].HNumber; oBill.oModel.HName = list[0].HName; oBill.oModel.HShortNumber = DBUtility.ClsPub.GetShortNumber(list[0].HNumber); oBill.oModel.HLevel = DBUtility.ClsPub.GetLevel(list[0].HNumber); oBill.oModel.HEndFlag = true; oBill.oModel.HStopflag = list[0].HStopflag; oBill.oModel.HUseFlag = list[0].HUseFlag; oBill.oModel.HRemark = list[0].HRemark; oBill.oModel.HMakeEmp = HMaker; oBill.oModel.HModifyEmp = HMaker; oBill.oModel.HCheckEmp = list[0].HCheckEmp; oBill.oModel.HUSEORGID = list[0].HUSEORGID; oBill.oModel.HCREATEORGID = list[0].HUSEORGID; // oBill.oModel.HDeptID = list[0].HDeptID; oBill.oModel.HBeginTimes = list[0].HBeginTimes; oBill.oModel.HEndTimes = list[0].HEndTimes; oBill.oModel.HWorkTimes = list[0].HWorkTimes; //检查父级是否存在 string sParent = DBUtility.ClsPub.GetParentCode(list[0].HNumber); if (sParent.Trim() == "") { oBill.oModel.HParentID = 0; } else { ds = oCn.RunProcReturn("select * from " + ModRightName + " where HStopflag=0 and HNumber='" + sParent + "' and HItemID<>" + oBill.oModel.HItemID, ModRightName); if (ds.Tables[0].Rows.Count > 0) { oBill.oModel.HParentID = long.Parse(ds.Tables[0].Rows[0]["HItemID"].ToString()); } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!上级代码不存在或被禁用!"; objJsonResult.data = null; return objJsonResult; } } //保存原代码 DataSet dsOldNumber = oCn.RunProcReturn("select * from " + ModRightName + " where HItemID='" + oBill.oModel.HItemID + "'", ModRightName); if (dsOldNumber.Tables[0].Rows.Count > 0) { oBill.HOldNumber = DBUtility.ClsPub.isStrNull(dsOldNumber.Tables[0].Rows[0]["HNumber"]); //是否新代码是自己子项目的 子项目 if (sParent.Length >= oBill.HOldNumber.Length) { if (sParent.Substring(0, oBill.HOldNumber.ToString().Length) == oBill.HOldNumber.Trim()) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "新代码不能是自己的下级的子项目!"; objJsonResult.data = null; return objJsonResult; } } } else { oBill.HOldNumber = ""; } //保存前判断 //审核代码是否合理 if (!DBUtility.ClsPub.AllowNumber(oBill.oModel.HNumber)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!"; objJsonResult.data = null; return objJsonResult; } //是否重复代码 if (oBill.HavSameNumber(oBill.oModel.HItemID, oBill.oModel.HNumber)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "代码重复!"; objJsonResult.data = null; return objJsonResult; } //保存 if (OperationType == "1") { //新增 if (oBill.AddNew()) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "新增失败!"; objJsonResult.data = null; return objJsonResult; } } else { if(oBill.oModel.HCheckEmp!="") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核,不允许修改!"; objJsonResult.data = null; return objJsonResult; } //修改 if (oBill.ModifyByID(oBill.oModel.HItemID)) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "修改成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "修改失败!"; objJsonResult.data = null; return objJsonResult; } } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.Message; objJsonResult.data = null; return objJsonResult; } } #endregion #region 显示班次信息 /// /// 根据基础资料ID 查找记录 /// [Route("Gy_ShiftsController/GetGy_Shifts_Json")] [HttpGet] public object GetGy_Shifts_Json(Int64 HItemID) { try { ds = oCn.RunProcReturn("select * from h_v_Gy_ShiftsListDetail where HItemID=" + HItemID, "h_v_Gy_ShiftsListDetail"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "未查询到该班次,请刷新数据后重新选择!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "返回班次信息失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }