using DBUtility; using Model; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Http; using System.Windows.Forms; using WebAPI.Models; namespace WebAPI.Controllers.项目管理.业绩指标 { public class PM_YearEmployeeMoneyBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更) private json objJsonResult = new json(); public DataSet ds = new DataSet(); public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); public DAL.ClsSc_ICMOBill BillOld = new DAL.ClsSc_ICMOBill(); string user_LongShan = ""; string HName_LongShan = ""; #region 业绩指标单 新增/编辑 #region 业绩指标单 表头数据 public class PM_YearEmployeeMoneyBill_Main { public int HInterID; public string HBillNo; public string HDate; public int HEmpID; public string HEmpName; public double HSumMoney; public double HRate1; public double HRate2; public double HRate3; public double HRate4; public string HRemark; public string HRemarkSub; public int HOrgID; public string HMaker; public string HUpdater; public string HChecker; public string HMakerDate; public string HUpdaterDate; public string HCheckerDate; public string HCloseMan; public string HDeleteMan; public string HBacker; public string HCloseManDate; public string HDeleteManDate; public string HBackerDate; public string HBackRemark; } #endregion #region 业绩指标单 新增/编辑 /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("PM_YearEmployeeMoneyBill/AddBill")] [HttpPost] public object AddBill_YearEmployeeMoneyBill([FromBody] JObject sMainSub) { //获取参数 var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); //开始事务 oCN.BeginTran(); //保存主表 objJsonResult = AddBillMain_YearEmployeeMoneyBill(msg1); if (objJsonResult.code == "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = objJsonResult.Message; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } #endregion #region 添加 业绩指标单 主表 public json AddBillMain_YearEmployeeMoneyBill(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); int OperationType = int.Parse(sArray[1].ToString());//数据类型 1添加 3修改 2 复制 string user = sArray[2].ToString();//用户名 string HComputerName = SystemInformation.ComputerName; //设备名称 user_LongShan = sArray[2].ToString();//用户名 try { if(OperationType == 1) { //判断是否有新增权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_add", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无新增权限!"; objJsonResult.data = null; return objJsonResult; } } else if(OperationType == 3) { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无编辑权限!"; objJsonResult.data = null; return objJsonResult; } } msg2 = "[" + msg2.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); int HYear = int.Parse(mainList[0].HDate.Split('-')[0]); int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]); string HBillType = "4753"; string HBillSubType = ""; int HInterID = mainList[0].HInterID; string HBillNo = mainList[0].HBillNo; string HDate = mainList[0].HDate; int HEmpID = mainList[0].HEmpID; double HSumMoney = mainList[0].HSumMoney; string HRemark = mainList[0].HRemark; int HOrgID = mainList[0].HOrgID; string HMaker = mainList[0].HMaker; string HUpdater = mainList[0].HUpdater; string HChecker = mainList[0].HChecker; string HMakerDate = mainList[0].HMakerDate; string HUpdaterDate = mainList[0].HUpdaterDate; string HCheckerDate = mainList[0].HCheckerDate; string HCloseMan = mainList[0].HCloseMan; string HDeleteMan = mainList[0].HDeleteMan; string HBacker = mainList[0].HBacker; string HCloseManDate = mainList[0].HCloseManDate; string HDeleteManDate = mainList[0].HDeleteManDate; string HBackerDate = mainList[0].HBackerDate; string HBackRemark = mainList[0].HBackRemark; if (OperationType == 2) { ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain where HBillNo ='" + HBillNo + "'", "PM_YearEmployeeMoneyBillMain"); if (ds.Tables[0].Rows.Count > 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复,请重新输入!"; objJsonResult.data = null; return objJsonResult; } } ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_YearEmployeeMoneyBillMain"); if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增 { string sql = "insert into PM_YearEmployeeMoneyBillMain" + "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HBillNo,HDate,HEmpID,HSumMoney,HRemark,HOrgID,HMaker,HMakeDate)" + "values(" + "" + HYear + "," + HPeriod + ",'" + HBillType + "','" + HBillSubType + "'," + HInterID + ",'" + HBillNo + "','" + HDate + "'," + HEmpID + "," + HSumMoney + ",'" + HRemark + "'," + HOrgID + ",'" + HMaker + "','" + HMakerDate + "')"; //主表 oCN.RunProc(sql); LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",新增业绩指标单:" + HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "新增业绩指标单:" + HBillNo + "','LMES-业绩指标模块','" + DBUtility.ClsPub.IPAddress + "','新增单据'", ref DBUtility.ClsPub.sExeReturnInfo); } else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) //编辑 { string sql = "update PM_YearEmployeeMoneyBillMain set " + "HYear = " + HYear + ",HPeriod = " + HPeriod + ",HBillType = '" + HBillType + "',HBillSubType = '" + HBillSubType + "',HBillNo = '" + HBillNo + "',HDate = '" + HDate + "',HEmpID = " + HEmpID + ",HSumMoney = " + HSumMoney + ",HRemark = '" + HRemark + "',HOrgID = " + HOrgID + ",HUpdater = '" + HUpdater + "',HUpdateDate = '" + HUpdaterDate + "' where HInterID = " + HInterID; oCN.RunProc(sql); //删除子表 oCN.RunProc("delete from PM_YearEmployeeMoneyBillSub where HInterID='" + HInterID + "'"); //记录日志 LogService.Write("用户:" + user + ",日期:" + DateTime.Now + ",修改工作任务:" + HBillNo); oCN.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + user + "','" + HComputerName + "','" + "修改工作任务:" + HBillNo + "','LMES-工作任务模块','" + DBUtility.ClsPub.IPAddress + "','修改单据'", ref DBUtility.ClsPub.sExeReturnInfo); } //获取子表数据并插入子表 string HRemarkSub = mainList[0].HRemarkSub; double HRate1 = mainList[0].HRate1; double HRate2 = mainList[0].HRate2; double HRate3 = mainList[0].HRate3; double HRate4 = mainList[0].HRate4; string sql1 = "insert into PM_YearEmployeeMoneyBillSub" + "(HInterID,HEntryID,HBillNo_bak,HRemark,HRate1,HRate2,HRate3,HRate4) " + "values(" + "" + HInterID + "," + 1 + ",'" + HBillNo + "','" + HRemarkSub + "'," + HRate1 + "," + HRate2 + "," + HRate3 + "," + HRate4 + ")"; oCN.RunProc(sql1); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = null; 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 #endregion #region 业绩指标单列表 查询 /// /// 返回业绩指标单列表 ///参数:string sql。 ///返回值:object。 /// [Route("PM_YearEmployeeMoneyBill/list")] [HttpGet] public object getYearEmployeeMoneyBill(string sWhere, string user) { try { List columnNameList = new List(); //查看权限 //if (!DBUtility.ClsPub.Security_Log("Gy_ProjectStage_Query", 1, false, user)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "无查看权限!"; // objJsonResult.data = null; // return objJsonResult; //} if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain order by HBillNo ", "PM_YearEmployeeMoneyBillMain"); } else { string sql1 = "select * from PM_YearEmployeeMoneyBillMain where 1 = 1 "; string sql = sql1 + sWhere + " order by HBillNo "; ds = oCN.RunProcReturn(sql, "PM_YearEmployeeMoneyBillMain"); } //添加列名 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) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 业绩指标单 编辑-页面赋值 /// ///参数:string HInterID。 ///返回值:object。 /// [Route("PM_YearEmployeeMoneyBill/editInit")] [HttpGet] public object getYearEmployeeMoneyBilleditInit(string HInterID, string user) { try { //查看权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } if(HInterID == null || HInterID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID不能为空!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("exec h_p_PM_YearEmployeeMoneyBill_EditInit " + HInterID, "h_p_PM_YearEmployeeMoneyBill_EditInit"); 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; } } #endregion #region 业绩指标单 删除 /// ///参数:string HInterID。 ///返回值:object。 /// [Route("PM_YearEmployeeMoneyBill/delete")] [HttpGet] public object deleteYearEmployeeMoneyBill(string HInterID, string user) { try { //查看权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_delete", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无删除权限!"; objJsonResult.data = null; return objJsonResult; } if(HInterID == null || HInterID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID不能为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran(); oCN.RunProc("delete from PM_YearEmployeeMoneyBillMain where HInterID = " + HInterID); oCN.RunProc("delete from PM_YearEmployeeMoneyBillSub where HInterID='" + HInterID + "'"); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; 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 #region 业绩指标单 审核/反审核 /// /// /// /// 单据ID /// 审核(0),反审核(1) /// 审核人 /// [Route("PM_YearEmployeeMoneyBill/AuditPM_YearEmployeeMoneyBill")] [HttpGet] public object AuditPM_YearEmployeeMoneyBill(int HInterID, int IsAudit, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second("Pm_YearEmployeeMoneyBill_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } var ds = oCN.RunProcReturn("select * from PM_YearEmployeeMoneyBillMain where HInterID=" + HInterID, "PM_YearEmployeeMoneyBillMain"); if (ds.Tables[0].Rows.Count > 0) { if (IsAudit == 0) //审核判断 { if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核!"; objJsonResult.data = null; return objJsonResult; } } if (IsAudit == 1) //反审核判断 { if (ds.Tables[0].Rows[0]["HChecker"].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 PM_YearEmployeeMoneyBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate() where HInterID=" + HInterID); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "审核成功"; objJsonResult.data = null; } if (IsAudit == 1) //反审核判断 { oCN.RunProc("update PM_YearEmployeeMoneyBillMain set HChecker='',HCheckDate=null where HInterID=" + 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("PM_YearEmployeeMoneyBill/ClosePM_YearEmployeeMoneyBill")] [HttpGet] public object ClosePM_YearEmployeeMoneyBill(string HInterID, int Type, string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_Close", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限关闭!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; BillOld.MvarItemKey = "PM_YearEmployeeMoneyBillMain"; oCN.BeginTran();//开始事务 //Type 1 关闭 2 反关闭 if (Type == 1) { //判断单据是否已经关闭 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] != null && ds.Tables[0].Rows[0]["HCloseMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已关闭!不需要再关闭!"; objJsonResult.data = null; return objJsonResult; } } //关闭单据 if (!BillOld.CloseBill(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { //判断单据是否已经反关闭 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HCloseMan"] == null || ds.Tables[0].Rows[0]["HCloseMan"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已反关闭!不需要再反关闭!"; objJsonResult.data = null; return objJsonResult; } } //反关闭单据 if (!BillOld.CancelClose(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反关闭失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } 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; } } #endregion #region 业绩指标单 作废/反作废功能 [Route("PM_YearEmployeeMoneyBill/DropPM_YearEmployeeMoneyBill")] [HttpGet] public object DropPM_YearEmployeeMoneyBill(string HInterID, int Type, string user) { try { //判断是否有作废权限 if (!DBUtility.ClsPub.Security_Log("Pm_YearEmployeeMoneyBill_Drop", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限作废!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } ClsPub.CurUserName = user; BillOld.MvarItemKey = "PM_YearEmployeeMoneyBillMain"; oCN.BeginTran();//开始事务 //Type 1 作废 2 反作废 if (Type == 1) { //判断单据是否已经作废 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HDeleteMan"] != null && ds.Tables[0].Rows[0]["HDeleteMan"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已作废!不需要再作废!"; objJsonResult.data = null; return objJsonResult; } } //作废单据 if (!BillOld.Cancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } else { //判断单据是否已经反作废 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HinterID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HDeleteMan"] == null || ds.Tables[0].Rows[0]["HDeleteMan"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已反作废!不需要再反作废!"; objJsonResult.data = null; return objJsonResult; } } //反作废单据 if (!BillOld.AbandonCancelltion(Int64.Parse(HInterID), ref ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "反作废失败!原因:" + ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } 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; } } #endregion } }