using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { //委外工序工价Controller public class Gy_ProcCommPriceController : 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 Gy_ProcCommPrice_Main { public int HItemID; public int HProcCommID; public string HProcCommNumber; public string HProcCommName; public int HMaterID; public string HMaterNumber; public string HMaterName; public string HModel; public int HSupID; public string HSupName; 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 HCloseManDate; public string HDeleteManDate; } #endregion #region 委外工序工价 子表数据 public class Gy_ProcCommPrice_Sub { public int RowID; public int HMaterID; public string HMaterNumber; public string HMaterName; public string HModel; public int HProcCommID; public string HProcCommNumber; public string HProcCommName; public double HPrice; public string HBeginDate; public string HEndDate; public bool HCostFlag; public bool HFlowFlag; public string HRemark; } #endregion #region 委外工序工价 新增/编辑-保存 /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_ProcCommPrice/Add")] [HttpPost] public object Add_ProcCommPrice([FromBody] JObject sMainSub) { //获取参数 var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); //开始事务 oCN.BeginTran(); //保存主表 objJsonResult = Add_ProcCommPrice(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 Add_ProcCommPrice(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); int OperationType = int.Parse(sArray[2].ToString());//数据类型 1添加 3修改 2 复制 string user = sArray[3].ToString();//用户名 try { if (OperationType == 1) { //判断是否有编辑权限 if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_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("Gy_ProcCommPrice_Edit", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无编辑权限!"; objJsonResult.data = null; return objJsonResult; } } //if (OperationType == 2) //{ // ds = oCN.RunProcReturn("select * from PM_WorkTaskReportBillMain where HBillNo ='" + HBillNo + "'", "PM_WorkTaskReportBillMain"); // if (ds.Tables[0].Rows.Count > 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "单据号重复,请重新输入!"; // objJsonResult.data = null; // return objJsonResult; // } //} msg2 = "[" + msg2.ToString() + "]"; List mainList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); List subList = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); ds = oCN.RunProcReturn("select * from Gy_ProcCommPrice where HItemID = " + mainList[0].HItemID , "Gy_ProcCommPrice"); if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增 { foreach (Gy_ProcCommPrice_Sub oSub in subList) { int HProcCommID = oSub.HProcCommID; int HMaterID = oSub.HMaterID; int HStopFlag = 0; double HPrice = oSub.HPrice; string HRemark = oSub.HRemark; int HSupID = mainList[0].HSupID; string HBeginDate = oSub.HBeginDate; string HEndDate = oSub.HEndDate; int HCostFlag = oSub.HCostFlag ? 1 : 0; int HFlowFlag = oSub.HFlowFlag ? 1 : 0; string HMaker = user; string HMakeDate = mainList[0].HMakerDate; string sql = "insert into Gy_ProcCommPrice(HProcCommID,HMaterID,HStopFlag,HPrice,HRemark,HSupID,HBeginDate,HEndDate,HCostFlag,HFlowFlag,HMaker,HMakeDate)" + " values(" + "" + HProcCommID + "," + HMaterID + "," + HStopFlag + "," + HPrice + ",'" + HRemark + "'," + HSupID + ",'" + HBeginDate + "','" + HEndDate + "'," + HCostFlag + "," + HFlowFlag + ",'" + HMaker + "','" + HMakeDate + "')"; oCN.RunProc(sql); } } else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0) //编辑 { foreach (Gy_ProcCommPrice_Sub oSub in subList) { int HProcCommID = oSub.HProcCommID; int HMaterID = oSub.HMaterID; int HStopFlag = 0; double HPrice = oSub.HPrice; string HRemark = oSub.HRemark; int HSupID = mainList[0].HSupID; string HBeginDate = oSub.HBeginDate; string HEndDate = oSub.HEndDate; int HCostFlag = oSub.HCostFlag ? 1 : 0; int HFlowFlag = oSub.HFlowFlag ? 1 : 0; string HMaker = user; string HMakeDate = mainList[0].HMakerDate; string HUpdater = mainList[0].HUpdater; string HUpdaterDate = mainList[0].HUpdaterDate; string sql = "update Gy_ProcCommPrice set " + "HProcCommID = " + HProcCommID + ", HMaterID = " + HMaterID + ", HPrice = " + HPrice + ", HRemark = '" + HRemark + "', HSupID = " + HSupID + ", HBeginDate = '" + HBeginDate + "', HEndDate = '" + HEndDate + "', HCostFlag = " + HCostFlag + ", HFlowFlag = " + HFlowFlag + ", HUpdater = '" + HUpdater + "',HUpdateDate = '" + HUpdaterDate + "' where HItemID = " + mainList[0].HItemID; oCN.RunProc(sql); } } 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("Gy_ProcCommPrice/list")] [HttpGet] public object getGy_ProcCommPrice(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 h_v_Gy_ProcCommPrice order by HItemID ", "Gy_ProcCommPrice"); } else { string sql1 = "select * from h_v_Gy_ProcCommPrice where 1 = 1 "; string sql = sql1 + sWhere + " order by HItemID "; ds = oCN.RunProcReturn(sql, "Gy_ProcCommPrice"); } //添加列名 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("Gy_ProcCommPrice/editInit")] [HttpGet] public object getGy_ProcCommPriceeditInit(string HInterID, string user) { try { if (HInterID == null || HInterID.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID不能为空!"; objJsonResult.data = null; return objJsonResult; } List columnNameList = new List(); ds = oCN.RunProcReturn("select * from h_v_Gy_ProcCommPrice where HItemID = " + HInterID, "h_v_Gy_ProcCommPrice"); //添加列名 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("Gy_ProcCommPrice/delete")] [HttpGet] public object deleteGy_ProcCommPrice(string HInterID, string user) { try { //查看权限 if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_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 Gy_ProcCommPrice where HItemID = " + 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("Gy_ProcCommPrice/AuditGy_ProcCommPrice")] [HttpGet] public object AuditGy_ProcCommPrice(string HInterID, int Type, string user) { try { //判断是否有审核权限 if (!DBUtility.ClsPub.Security_Log("Gy_ProcCommPrice_Check", 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 = "Gy_ProcCommPrice"; oCN.BeginTran();//开始事务 //Type 1 审核 2 反审核 if (Type == 1) { //判断单据是否已经审核 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HItemID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "已审核!不需要再审核!"; objJsonResult.data = null; return objJsonResult; } else { string sql1 = "update Gy_ProcCommPrice set HChecker = '" + user + "', HCheckDate = getDate() where HItemID = " + HInterID; oCN.RunProc(sql1); } } } else { //判断单据是否已经反审核 DataSet ds; string sql = "select * from " + BillOld.MvarItemKey + " where HItemID = " + HInterID; ds = oCN.RunProcReturn(sql, BillOld.MvarItemKey); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0]["HChecker"] == null || ds.Tables[0].Rows[0]["HChecker"].ToString() == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "已反审核!不需要再反审核!"; objJsonResult.data = null; return objJsonResult; } else { string sql1 = "update Gy_ProcCommPrice set HChecker = '', HCheckDate = null where HItemID = " + HInterID; oCN.RunProc(sql1); } } } 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 } }