From 7313e29b71844817a75cb44cf77ab902c5016c95 Mon Sep 17 00:00:00 2001 From: duhe <226547893@qq.com> Date: 星期六, 08 七月 2023 23:56:23 +0800 Subject: [PATCH] 工程项目 及列表 工作任务 及列表 --- WebAPI/Controllers/项目管理/工程项目/PM_ProjectBillController.cs | 616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 616 insertions(+), 0 deletions(-) diff --git "a/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs" "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs" new file mode 100644 index 0000000..46ae3d7 --- /dev/null +++ "b/WebAPI/Controllers/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillController.cs" @@ -0,0 +1,616 @@ +锘縰sing 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_ProjectBillController : ApiController + { + public DBUtility.ClsPub.Enum_BillStatus BillStatus;//鍗曟嵁鐘舵�侊紙鏂板锛屼慨鏀癸紝娴忚锛屾洿鏂板崟浠凤紝鍙樻洿锛� + private json objJsonResult = new json(); + public DataSet ds = new DataSet(); + public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + string user_LongShan = ""; + string HName_LongShan = ""; + + #region 宸ョ▼椤圭洰 鏂板/缂栬緫 + #region 宸ョ▼椤圭洰 琛ㄥご鏁版嵁 + public class PM_ProjectBill_Main + { + public int HInterID; + public string HBillNo; + public string HProNumber; + public string HProName; + public int HCusID; + public string HCusName; + public string HBeginDate; + public string HEndDate; + public string HDate; + public int HPMEmpID; + public string HPMEmpName; + public int HWorkEmpID; + public string HWorkEmpName; + public int HDepEmpID; + public string HDepEmpName; + public int HMaterID; + public string HMaterNumber; + public string HMaterName; + public int HPayCusID; + public string HPayCusName; + public string HProType; + public string HRemark; + 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; + public double HSumMoney; + public double HProMoney; + public double HWorkMoney; + public double HOtherMoney; + public int HConWorkDays; + public int HDepDays; + public double HLastMoney; + + } + #endregion + #region 宸ョ▼椤圭洰 椤圭洰闃舵琛ㄤ綋鏁版嵁 + public class PM_ProjectBill_ProjectStage + { + public int RowID; + public int HProjectStageID; + public string HProjectStageName; + public string HStageNote; + public int HPMGoodsID; + public string HPMGoodsName; + public int HIsKey; + public double HRate; + public int HEmpID; + public string HEmpName; + public int HCheckEmpID; + public string HCheckEmpName; + public string HFinishDate; + public double HWorkDays; + public string HRemarkSub; + } + #endregion + #region 宸ョ▼椤圭洰 椤圭洰鎴愬憳琛ㄤ綋鏁版嵁 + public class PM_ProjectBill_Employee + { + public int RowID; + public int HEmployeeID; + public string HEmployeeName; + public int HIsPM; + public double HRate; + public double HPlanAvgMoney; + public double HPlanCountMoney; + public string HRemarkSub; + } + #endregion + #region 宸ョ▼椤圭洰 鏂板/缂栬緫 + /// <summary> + /// 鏂板鍗曟嵁-淇濆瓨鎸夐挳 + ///鍙傛暟锛歴tring sql銆� + ///杩斿洖鍊硷細object銆� + /// </summary> + [Route("PM_ProjectBill/AddBill")] + [HttpPost] + public object AddBill([FromBody] JObject sMainSub) + { + //鑾峰彇鍙傛暟 + var _value = sMainSub["sMainSub"].ToString(); + string msg1 = _value.ToString(); + //寮�濮嬩簨鍔� + oCN.BeginTran(); + //淇濆瓨涓昏〃 + objJsonResult = AddBillMain(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(string msg1) + { + string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); + string msg2 = sArray[0].ToString(); + string msg3 = sArray[1].ToString(); + string msg4 = sArray[2].ToString(); + int OperationType = int.Parse(sArray[3].ToString());//鏁版嵁绫诲瀷 1娣诲姞 3淇敼 2 澶嶅埗 + string user = sArray[4].ToString();//鐢ㄦ埛鍚� + string HComputerName = SystemInformation.ComputerName; //璁惧鍚嶇О + user_LongShan = sArray[4].ToString();//鐢ㄦ埛鍚� + + try + { + if(OperationType == 1) + { + //鍒ゆ柇鏄惁鏈夌紪杈戞潈闄� + if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_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_ProjectBill_edit", 1, false, user)) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "鏃犵紪杈戞潈闄�!"; + objJsonResult.data = null; + return objJsonResult; + } + } + + msg2 = "[" + msg2.ToString() + "]"; + List<PM_ProjectBill_Main> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_Main>>(msg2); + + int HYear = int.Parse(mainList[0].HDate.Split('-')[0]); + int HPeriod = int.Parse(mainList[0].HDate.Split('-')[1]); + string HBillType = "4750"; + string HBillSubType = ""; + int HInterID = mainList[0].HInterID; + string HDate = mainList[0].HDate; + string HBillNo = mainList[0].HBillNo; + int HBillStatus = 1; + string HRemark = mainList[0].HRemark; + string HMaker = user; + string HMakerDate = mainList[0].HMakerDate; + string HProNumber = mainList[0].HProNumber; + string HProName = mainList[0].HProName; + int HCusID = mainList[0].HCusID; + string HBeginDate = mainList[0].HBeginDate; + string HEndDate = mainList[0].HEndDate; + double HSumMoney = mainList[0].HSumMoney; + double HProMoney = mainList[0].HProMoney; + double HWorkMoney = mainList[0].HWorkMoney; + double HOtherMoney = mainList[0].HOtherMoney; + string HProType = mainList[0].HProType; + int HPMEmpID = mainList[0].HPMEmpID; + int HWorkEmpID = mainList[0].HWorkEmpID; + int HDepEmpID = mainList[0].HDepEmpID; + double HConWorkDays = mainList[0].HConWorkDays; + double HDepDays = mainList[0].HDepDays; + double HLastMoney = mainList[0].HLastMoney; + int HPayCusID = mainList[0].HPayCusID; + int HOrgID = mainList[0].HOrgID; + int HMaterID = mainList[0].HMaterID; + + if (OperationType == 2) + { + ds = oCN.RunProcReturn("select * from PM_ProjectBillMain where HBillNo ='" + HBillNo + "'", "PM_ProjectBillMain"); + 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_ProjectBillMain where HInterID = " + HInterID + " and HBillNo = '" + HBillNo + "'", "PM_ProjectBillMain"); + + oCN.BeginTran(); + if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//鏂板 + { + string sql = "insert into PM_ProjectBillMain" + + "(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate,HBillNo,HBillStatus,HRemark,HMaker,HMakeDate,HProNumber,HProName,HCusID,HBeginDate,HEndDate,HSumMoney," + + "HProMoney,HWorkMoney,HOtherMoney,HProType,HPMEmpID,HWorkEmpID,HDepEmpID,HConWorkDays,HDepDays,HLastMoney,HPayCusID,HOrgID,HMaterID) " + + "values(" + + "" + HYear + + "," + HPeriod + + ",'" + HBillType + + "','" + HBillSubType + + "'," + HInterID + + ",'" + HDate + + "','" + HBillNo + + "'," + HBillStatus + + ",'" + HRemark + + "','" + HMaker + + "','" + HMakerDate + + "','" + HProNumber + + "','" + HProName + + "'," + HCusID + + ",'" + HBeginDate + + "','" + HEndDate + + "'," + HSumMoney + + "," + HProMoney + + "," + HWorkMoney + + "," + HOtherMoney + + ",'" + HProType + + "'," + HPMEmpID + + "," + HWorkEmpID + + "," + HDepEmpID + + "," + HConWorkDays + + "," + HDepDays + + "," + HLastMoney + + "," + HPayCusID + + "," + HOrgID + + "," + HMaterID + + ")"; + + //涓昏〃 + 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_ProjectBillMain set " + + "HYear = " + HYear + + ",HPeriod = " + HPeriod + + ",HBillType = '" + HBillType + + "',HBillSubType = '" + HBillSubType + + "',HDate = '" + HDate + + "',HBillNo = '" + HBillNo + + "',HBillStatus = " + HBillStatus + + ",HRemark = '" + HRemark + + "',HMaker = '" + HMaker + + "',HMakeDate = '" + HMakerDate + + "',HProNumber = '" + HProNumber + + "',HProName = '" + HProName + + "',HCusID = " + HCusID + + ",HBeginDate = '" + HBeginDate + + "',HEndDate = '" + HEndDate + + "',HSumMoney = " + HSumMoney + + ",HProMoney = '" + HProMoney + + "',HWorkMoney = " + HWorkMoney + + ",HOtherMoney = " + HOtherMoney + + ",HProType = '" + HProType + + "',HPMEmpID = " + HPMEmpID + + ",HWorkEmpID = " + HWorkEmpID + + ",HDepEmpID = " + HDepEmpID + + ",HConWorkDays = " + HConWorkDays + + ",HDepDays = '" + HDepDays + + "',HLastMoney = " + HLastMoney + + ",HPayCusID = " + HPayCusID + + ",HOrgID = " + HOrgID + + ",HMaterID = " + HMaterID + + " where HInterID = " + HInterID; + + oCN.RunProc(sql); + + //鍒犻櫎瀛愯〃 + oCN.RunProc("delete from PM_ProjectBillSub_Emp where HInterID='" + HInterID + "'"); + oCN.RunProc("delete from PM_ProjectBillSub 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); + } + //淇濆瓨瀛愯〃 + objJsonResult = AddBillSub1(msg3, HInterID, HBillNo, OperationType); + objJsonResult = AddBillSub2(msg4, HInterID, HBillNo, OperationType); + + oCN.Commit(); + + if (objJsonResult.code == "0") + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = objJsonResult.Message; + objJsonResult.data = null; + return objJsonResult; + } + + 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 + + #region 娣诲姞宸ョ▼椤圭洰 琛ㄤ綋锛氶」鐩樁娈佃〃 + public json AddBillSub1(string msg3, long HInterID, string HBillNo, int OperationType) + { + List<PM_ProjectBill_ProjectStage> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_ProjectStage>>(msg3); + int i = 0; //浣滀负瀛愯〃鍐呯爜 + foreach (PM_ProjectBill_ProjectStage oSub in DetailColl) + { + i++; //鍚屼竴涓富琛ㄤ笅鐨勫瓙琛ㄧ殑鍐呯爜鑷 + + int HEntryID = i; + string HRemark = oSub.HRemarkSub; + int HProjectStageID = oSub.HProjectStageID; + string HStageNote = oSub.HStageNote; + int HPMGoodsID = oSub.HPMGoodsID; + string HRelationGoods = oSub.HPMGoodsName; + int HIsKey = oSub.HIsKey; + double HRate = oSub.HRate; + int HEmpID = oSub.HEmpID; + int HCheckEmpID = oSub.HCheckEmpID; + string HFinishDate = oSub.HFinishDate; + double HWorkDays = oSub.HWorkDays; + + string sql = "insert into PM_ProjectBillSub" + + "(HInterID,HBillNo_bak,HEntryID,HRemark,HProjectStageID,HStageNote,HPMGoodsID,HRelationGoods,HIsKey,HRate,HEmpID,HCheckEmpID,HFinishDate,HWorkDays) " + + "values(" + + "" + HInterID + + ",'" + HBillNo + + "'," + HEntryID + + ",'" + HRemark + + "'," + HProjectStageID + + ",'" + HStageNote + + "'," + HPMGoodsID + + ",'" + HRelationGoods + + "'," + HIsKey + + "," + HRate + + "," + HEmpID + + "," + HCheckEmpID + + ",'" + HFinishDate + + "'," + HWorkDays + + ")"; + + oCN.RunProc(sql); + } + + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = null; + objJsonResult.data = null; + return objJsonResult; + } + #endregion + + #region 娣诲姞宸ョ▼椤圭洰 琛ㄤ綋锛氶」鐩垚鍛樿〃 + public json AddBillSub2(string msg3, long HInterID, string HBillNo, int OperationType) + { + List<PM_ProjectBill_Employee> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PM_ProjectBill_Employee>>(msg3); + int i = 0; //浣滀负瀛愯〃鍐呯爜 + foreach (PM_ProjectBill_Employee oSub in DetailColl) + { + i++; //鍚屼竴涓富琛ㄤ笅鐨勫瓙琛ㄧ殑鍐呯爜鑷 + + int HEntryID = i; + string HRemark = oSub.HRemarkSub; + int HEmpID = oSub.HEmployeeID; + int HIsPM = oSub.HIsPM; + double HRate = oSub.HRate; + double HPlanAvgMoney = oSub.HPlanAvgMoney; + double HPlanCountMoney = oSub.HPlanCountMoney; + + + string sql = "insert into PM_ProjectBillSub_Emp" + + "(HInterID,HBillNo_bak,HEntryID,HRemark,HEmpID,HIsPM,HRate,HPlanAvgMoney,HPlanCountMoney) " + + "values(" + + "" + HInterID + + ",'" + HBillNo + + "'," + HEntryID + + ",'" + HRemark + + "'," + HEmpID + + "," + HIsPM + + "," + HRate + + "," + HPlanAvgMoney + + "," + HPlanCountMoney + + ")"; + + oCN.RunProc(sql); + } + + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = null; + objJsonResult.data = null; + return objJsonResult; + } + #endregion + + + #endregion + + #region 宸ョ▼椤圭洰 鏌ヨ + /// <summary> + /// 杩斿洖椤圭洰闃舵鍒楄〃 + ///鍙傛暟锛歴tring sql銆� + ///杩斿洖鍊硷細object銆� + /// </summary> + [Route("PM_ProjectBill/list")] + [HttpGet] + public object getProjectBill(string sWhere, string user) + { + try + { + List<object> columnNameList = new List<object>(); + //鏌ョ湅鏉冮檺 + //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_ProjectBillMain order by HProNumber ", "PM_ProjectBillMain"); + } + else + { + string sql1 = "select * from PM_ProjectBillMain where 1 = 1 "; + string sql = sql1 + sWhere + " order by HProNumber "; + ds = oCN.RunProcReturn(sql, "PM_ProjectBillMain"); + } + + //娣诲姞鍒楀悕 + 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));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕 + } + + 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 宸ョ▼椤圭洰 缂栬緫-椤甸潰璧嬪�� + /// <summary> + ///鍙傛暟锛歴tring HInterID銆� + ///杩斿洖鍊硷細object銆� + /// </summary> + [Route("PM_ProjectBill/editInit")] + [HttpGet] + public object getProjectBilleditInit(string HInterID, string user) + { + try + { + List<DataTable> tableList = new List<DataTable>(); + + //鏌ョ湅鏉冮檺 + if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_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_ProjectReportBill_EditInit " + HInterID, "h_p_PM_ProjectReportBill_EditInit"); + tableList.Add(ds.Tables[0]); + tableList.Add(ds.Tables[1]); + tableList.Add(ds.Tables[2]); + + objJsonResult.code = "1"; + objJsonResult.count = 1; + objJsonResult.Message = "Sucess锛�"; + objJsonResult.data = tableList; + return objJsonResult; + } + catch (Exception e) + { + objJsonResult.code = "0"; + objJsonResult.count = 0; + objJsonResult.Message = "Exception锛�" + e.ToString(); + objJsonResult.data = null; + return objJsonResult; + } + } + #endregion + + #region 宸ョ▼椤圭洰 鍒犻櫎 + /// <summary> + ///鍙傛暟锛歴tring HInterID銆� + ///杩斿洖鍊硷細object銆� + /// </summary> + [Route("PM_ProjectBill/delete")] + [HttpGet] + public object deleteProjectBill(string HInterID, string user) + { + try + { + //鏌ョ湅鏉冮檺 + if (!DBUtility.ClsPub.Security_Log("Pm_ProjectBill_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_ProjectBillMain where HInterID = " + HInterID); + oCN.RunProc("delete from PM_ProjectBillSub_Emp where HInterID='" + HInterID + "'"); + oCN.RunProc("delete from PM_ProjectBillSub 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 + } +} \ No newline at end of file -- Gitblit v1.9.1