From c9e16fa099de3442f005ba9c973de10b7905a963 Mon Sep 17 00:00:00 2001 From: zgq <519541279@qq.com> Date: 星期二, 26 一月 2021 15:18:27 +0800 Subject: [PATCH] 增加墙咔工资统计报表、进站单列表删除、出站单列表删除功能 --- WebAPI/Service/YqnQbService.cs | 154 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 133 insertions(+), 21 deletions(-) diff --git a/WebAPI/Service/YqnQbService.cs b/WebAPI/Service/YqnQbService.cs index 3b8e27e..1cda2af 100644 --- a/WebAPI/Service/YqnQbService.cs +++ b/WebAPI/Service/YqnQbService.cs @@ -5,6 +5,7 @@ using System.Data; using System.Linq; using System.Web; +using WebAPI.Dapper; using WebAPI.Models; using WebAPI.WebS; @@ -16,10 +17,10 @@ /// 鑾峰彇鍗曟嵁鍙� /// </summary> /// <returns></returns> - public static ApiResult<DocumentsView> GetInterBillNo() + public static ApiResult<DocumentsView> GetInterBillNo(string billType) { - var hInterId= DBUtility.ClsPub.CreateBillID(ApiConfig.HBillType, ref DBUtility.ClsPub.sExeReturnInfo); - var hBillNo= DBUtility.ClsPub.CreateBillCode(ApiConfig.HBillType, ref DBUtility.ClsPub.sExeReturnInfo, true); + var hInterId= DBUtility.ClsPub.CreateBillID(billType, ref DBUtility.ClsPub.sExeReturnInfo); + var hBillNo= DBUtility.ClsPub.CreateBillCode(billType, ref DBUtility.ClsPub.sExeReturnInfo, true); if (hInterId == 0 || string.IsNullOrEmpty(hBillNo)) return new ApiResult<DocumentsView> { code = -1, msg = "鑾峰彇澶辫触" }; DocumentsView documentsView = new DocumentsView() @@ -84,31 +85,150 @@ return new ApiResult<DataSet> { code = -1, msg = "鏈煡璇㈠埌宸ヤ綔涓績" }; return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet }; } + private static ConcurrentDictionary<string, string> dicLock = new System.Collections.Concurrent.ConcurrentDictionary<string, string>();//骞跺彂閿� /// <summary> /// 杩涚珯鎺ユ敹鍗� /// </summary> public static ApiResult SetStationInBill(ClsSc_StationInBillMain oMain) { - WebS.WebService1 oWebs = new WebS.WebService1(); - string sErrMsg = string.Empty; - var result = oWebs.set_SaveStationInBill(oMain, ref sErrMsg); - if (!result) + if (!dicLock.TryAdd(oMain.HICMOBillNo + "jz", ""))//闃叉骞跺彂 + return new ApiResult { code = -1, msg = "鏈嶅姟鍣ㄧ箒蹇�" }; + try { - return new ApiResult { code = -1, msg = sErrMsg }; + if (oMain.HProcID == 0 || oMain.HQty == 0 ||string.IsNullOrEmpty(oMain.HProcExchBillNo)||oMain.HQty==0||string.IsNullOrEmpty(oMain.HBillNo)) + return new ApiResult { code = 1, msg = "鍙傛暟涓嶅叏" }; + var stationInList = YqnDal.GetStationInBillMailList(oMain.HICMOBillNo);//鑾峰緱璇ユ祦杞崱鎵�鏈夎繘绔欏崟 + if (stationInList.Count > 0) + { + var stationOutList = YqnDal.GetStationOutBillMailList(oMain.HICMOBillNo);//鑾峰緱璇ユ祦杞崱鎵�鏈夊嚭绔欏崟 + var stationInModel = stationInList.OrderByDescending(a => a.HDate).First();//鑾峰彇杩涚珯鍗曟渶鏂拌繘绔欏伐搴� + if (stationOutList.Count == 0 && oMain.HEmpID == stationInModel.HEmpID) + return new ApiResult { code = -1, msg = "閲嶅鎵弿" }; + if (stationOutList.Count == 0 && oMain.HEmpID != stationInModel.HEmpID) + return new ApiResult { code = -1, msg = "姝ゅ崟宸插叧鑱�" }; + var stationOutModel = stationOutList.OrderByDescending(a => a.HDate).First();//鑾峰彇鍑虹珯鍗曟渶鏂板嚭绔欏伐搴� + if (stationInModel.HProcID != stationOutModel.HProcID && stationInModel.HEmpID == oMain.HEmpID) + return new ApiResult { code = -1, msg = "閲嶅鎵弿" }; + if (stationInModel.HProcID != stationOutModel.HProcID && stationInModel.HEmpID == oMain.HEmpID) + return new ApiResult { code = -1, msg = "姝ゅ崟宸插叧鑱�" }; + if (stationOutList.Exists(a => a.HProcID == oMain.HProcID)) + return new ApiResult { code = -1, msg = "璇ュ崟鎹凡瀹屾垚姝ゅ伐鑹�" }; + } + WebS.WebService1 oWebs = new WebS.WebService1(); + string sErrMsg = string.Empty; + var result = oWebs.set_SaveStationInBill(oMain, ref sErrMsg);//杩涚珯 + if (!result) + { + + return new ApiResult { code = -1, msg = sErrMsg }; + } + return new ApiResult { code = 1, msg = "鎿嶄綔鎴愬姛" }; } - return new ApiResult { code = 1, msg = "鎿嶄綔鎴愬姛" }; + catch (Exception ex) + { + return new ApiResult { code = -1, msg = "璇锋眰閿欒"+ex.ToString() }; + } + finally + { + dicLock.TryRemove(oMain.HICMOBillNo + "jz", out string key); + } + } + /// <summary> + /// 鑾峰彇杩涚珯鍗曞垪琛� + /// </summary> + /// <param name="sWhere"></param> + /// <returns></returns> + public static ApiResult<DataSet> GetStationInBillList(string sWhere) + { + var dataSet = GetStationInBill(sWhere); + if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) + return new ApiResult<DataSet> { code = -1, msg = "鏈煡璇㈠埌鏁版嵁" }; + return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet }; + } + /// <summary> + /// 鑾峰彇鍑虹珯鍗曞垪琛� + /// </summary> + /// <param name="sWhere"></param> + /// <returns></returns> + public static ApiResult<DataSet> GetStationOutBillList(string sWhere) + { + var dataSet = GetStationOutBill(sWhere); + if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) + return new ApiResult<DataSet> { code = -1, msg = "鏈煡璇㈠埌鏁版嵁" }; + return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet }; + } + /// <summary> + /// 鑾峰彇娴佽浆鍗″垪琛� + /// </summary> + /// <param name="sWhere"></param> + /// <returns></returns> + public static ApiResult<DataSet> GetPorcessMainList(string sWhere) + { + var dataSet = GetProcessMain(sWhere); + if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) + return new ApiResult<DataSet> { code = -1, msg = "鏈煡璇㈠埌鏁版嵁" }; + return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet }; + } + /// <summary> + /// 鑾峰彇娴佽浆鍗″瓙琛ㄥ垪琛� + /// </summary> + /// <param name="sWhere"></param> + /// <returns></returns> + public static ApiResult<DataSet> GetPorcessSubList(int hInterId) + { + var dataSet = GetProcessSubList(hInterId); + if (dataSet == null || dataSet.Tables[0].Rows.Count == 0) + return new ApiResult<DataSet> { code = -1, msg = "鏈煡璇㈠埌鏁版嵁" }; + return new ApiResult<DataSet> { code = 1, msg = "鏌ヨ鎴愬姛", data = dataSet }; } /// <summary> /// 鍑虹珯鎺ユ敹鍗� /// </summary> public static ApiResult SetStationOutBill(StationOutBillView omodel) { + if (!dicLock.TryAdd(omodel.HBillNo, omodel.HBillNo)) + return new ApiResult { code = -1, msg = "鏈嶅姟鍣ㄧ箒蹇�" }; + var stationInBillModel = YqnDal.GetStationInBillMail(omodel.HProcID, omodel.HICMOBillNo); + if (stationInBillModel == null) + return new ApiResult { code = -1, msg = "璇ュ伐搴忚繘绔欏崟涓嶅瓨鍦�" }; + var stationOutBillModel = YqnDal.GetStationOutBillMail(omodel.HProcID, omodel.HICMOBillNo); + if (stationOutBillModel != null) + return new ApiResult { code = -1, msg = "璇ュ伐搴忓凡瀛樺湪鍑虹珯鍗�" }; WebS.WebService1 oWebs = new WebS.WebService1(); string sErrMsg = string.Empty; var result = SetOutBill(omodel); return result; } #region sql璇彞 + public static DataSet GetStationOutBill(string strWhere) + { + var sql = "Select top 5000 * from h_v_MES_StationOutBillList Where 1=1 " + strWhere; + SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + var dataSet = oCN.RunProcReturn(sql, "h_v_MES_StationOutBillList"); + return dataSet; + } + public static DataSet GetStationInBill(string strWhere) + { + var sql = "Select top 5000 * from h_v_MES_StationInBillList Where 1=1 " + strWhere; + SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + var dataSet = oCN.RunProcReturn(sql, "h_v_MES_StationInBillList"); + return dataSet; + } + public static DataSet GetProcessSubList(int hInterId) + { + var sql = "select a.HProcNo 娴佹按鍙�,a.HProcNumber as 宸ュ簭浠g爜,b.HName 宸ュ簭鍚嶇О,c.HName 宸ヤ綔涓績,a.HQty 娴佽浆鍗℃暟閲� from Sc_ProcessExchangeBillSub a left join Gy_Process b on b.HItemID = a.HProcID left join Gy_WorkCenter c on c.HItemID = a.HCenterID where 1=1 and a.HInterID=" + hInterId; + SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + var dataSet = oCN.RunProcReturn(sql, "Sc_ProcessExchangeBillSub"); + return dataSet; + } + public static DataSet GetProcessMain(string strWhere) + { + var sql = "select a.HBillNo 鍗曟嵁鍙�, a.HDate 鏃ユ湡, HInterID, a.HICMOBillNo 鐢熶骇璁㈠崟, b.HName 浜у搧鍚嶇О, b.HNumber 浜у搧浠g爜, a.HPlanQty 娴佽浆鍗℃暟閲�, c.HName 鍗曚綅, a.HPlanBeginDate 璁″垝寮�宸ユ棩鏈�, a.HPlanEndDate 璁″垝瀹屽伐鏃ユ湡, a.HRemark 澶囨敞" + + " from Sc_ProcessExchangeBillMain a left join Gy_Material b on a.HMaterID = b.HItemID left join Gy_Unit c on c.HItemID = a.HUnitID where 1=1 " + strWhere; + SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); + var dataSet = oCN.RunProcReturn(sql, "Sc_ProcessExchangeBillMain"); + return dataSet; + } public static DataSet GetBarCodeDb(string billBarCode) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); @@ -145,17 +265,14 @@ var dataSet = oCN.RunProcReturn("Select HItemID,HNumber 宸ヤ綔涓績浠g爜,HName 宸ヤ綔涓績 from Gy_Group where HStopflag=0 " + sWhere + " Order by HItemID ", "Gy_Source"); return dataSet; } - private static ConcurrentDictionary<string,string> dicLock=new System.Collections.Concurrent.ConcurrentDictionary<string,string>();//骞跺彂閿� public static ApiResult SetOutBill(StationOutBillView omodel) { try { - if (!dicLock.TryAdd(omodel.HBillNo, omodel.HBillNo)) - return new ApiResult { code = -1, msg = "鏈嶅姟鍣ㄧ箒蹇�" }; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); - omodel.HInterID = DBUtility.ClsPub.CreateBillID("4788", ref DBUtility.ClsPub.sExeReturnInfo); + omodel.HInterID = DBUtility.ClsPub.CreateBillID("3791", ref DBUtility.ClsPub.sExeReturnInfo); oCN.BeginTran(); - var sql = "Insert Into Sc_StationOutBillMain " + + oCN.RunProc("Insert Into Sc_StationOutBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HRemark" + ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + @@ -163,24 +280,19 @@ ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" + ",HSupID,HQty,HPrice,HMoney" + ") " + - " values('4788','4788'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'," + omodel.HBillStatus.ToString() + ",getdate(),'" + DBUtility.ClsPub.CurUserName + "',getdate()" + + " values('3791','3791'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "'," + omodel.HBillStatus.ToString() + ",getdate(),'" + DBUtility.ClsPub.CurUserName + "',getdate()" + "," + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "'" + "," + omodel.HICMOInterID.ToString() + ",'" + omodel.HICMOBillNo + "'," + omodel.HProcPlanInterID.ToString() + "," + omodel.HProcPlanEntryID.ToString() + ",'" + omodel.HProcPlanBillNo + "'," + omodel.HProcExchInterID.ToString() + "," + omodel.HProcExchEntryID.ToString() + ",'" + omodel.HProcExchBillNo + "'," + omodel.HMaterID.ToString() + "," + omodel.HProcID.ToString() + "," + omodel.HICMOQty.ToString() + "," + omodel.HPlanQty.ToString() + ",getdate()," + omodel.HSourceID.ToString() + "," + omodel.HGroupID.ToString() + "," + omodel.HDeptID.ToString() + "," + omodel.HEmpID.ToString() + ",'" + omodel.HBarCode + "','" + omodel.HAddr + "','" + omodel.HBarCodeMaker + "',getdate()" + "," + omodel.HSupID.ToString() + "," + omodel.HQty.ToString() + "," + omodel.HPrice.ToString() + "," + omodel.HMoney.ToString() + - ") "; - oCN.RunProc(sql); + ") "); oCN.Commit(); return new ApiResult { code = 1, msg = "鏂板鎴愬姛" }; } catch (Exception ex) { return new ApiResult { code = -1, msg = "淇濆瓨閿欒/"+ex.ToString() }; - } - finally - { - dicLock.TryRemove(omodel.HBillNo, out string key); } } public static ApiResult SetInBill(ClsSc_StationInBillMain omodel) -- Gitblit v1.9.1