PAMModuleLogic.cs 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PAMModuleLogic.cs
  5. * 2.功能描述:工资管理策略
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 王鑫 2015/08/17 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.IO;
  14. using System.Text;
  15. using Dongke.IBOSS.PRD.Basics.BaseResources;
  16. using Dongke.IBOSS.PRD.Basics.DataAccess;
  17. using Dongke.IBOSS.PRD.Service.DataModels;
  18. using Dongke.IBOSS.PRD.WCF.DataModels;
  19. using Dongke.IBOSS.PRD.WCF.DataModels.PAMModule;
  20. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  21. using Oracle.DataAccess.Client;
  22. namespace Dongke.IBOSS.PRD.Service.PAMModuleService
  23. {
  24. /// <summary>
  25. /// 工资管理策略
  26. /// </summary>
  27. public partial class PAMModuleLogic
  28. {
  29. /// <summary>
  30. /// 获取工资方案参数设定
  31. /// </summary>
  32. /// <returns>DataSet</returns>
  33. public static DataSet GetPayPlanSetting(SUserInfo sUserInfo)
  34. {
  35. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  36. try
  37. {
  38. con.Open();
  39. string sqlString = @"select TP_PAS_PayPlanSetting.SettingCode,TP_PAS_PayPlanSetting.SettingName,
  40. TP_PAS_PayPlanSetting.SettingValue,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlanSetting.SettingValue as SettingValueOrg from TP_PAS_PayPlanSetting
  41. left join TP_PAS_PayPlan on TP_PAS_PayPlanSetting.PayPlanID=TP_PAS_PayPlan.PayPlanID";
  42. DataSet ds = con.GetSqlResultToDs(sqlString);
  43. return ds;
  44. }
  45. catch (Exception ex)
  46. {
  47. throw ex;
  48. }
  49. finally
  50. {
  51. if (con.ConnState == ConnectionState.Open)
  52. {
  53. con.Close();
  54. }
  55. }
  56. }
  57. /// <summary>
  58. /// 获取工资方案列表
  59. /// </summary>
  60. /// <returns>DataSet</returns>
  61. public static DataSet GetPayPlan(SUserInfo sUserInfo)
  62. {
  63. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  64. try
  65. {
  66. con.Open();
  67. string sqlString = @"select PayPlanID,PayPlanName from TP_PAS_PayPlan where AccountID=:AccountID and ValueFlag=1";
  68. OracleParameter[] paras = new OracleParameter[]{
  69. new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  70. };
  71. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  72. return ds;
  73. }
  74. catch (Exception ex)
  75. {
  76. throw ex;
  77. }
  78. finally
  79. {
  80. if (con.ConnState == ConnectionState.Open)
  81. {
  82. con.Close();
  83. }
  84. }
  85. }
  86. /// <summary>
  87. /// 搜索工资工种列表
  88. /// </summary>
  89. /// <returns>DataSet</returns>
  90. public static DataSet GetJobsPayPlan(string jobsCode, string PayPlanName, SUserInfo sUserInfo)
  91. {
  92. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  93. try
  94. {
  95. con.Open();
  96. string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
  97. left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
  98. left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
  99. where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 ";
  100. List<OracleParameter> parameters = new List<OracleParameter>();
  101. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  102. if (!string.IsNullOrEmpty(jobsCode))
  103. {
  104. sqlString += " AND INSTR(TP_MST_Jobs.JobsCode, :JobsCode) > 0 ";
  105. parameters.Add(new OracleParameter(":JobsCode", OracleDbType.NVarchar2, jobsCode, ParameterDirection.Input));
  106. }
  107. if (!string.IsNullOrEmpty(PayPlanName))
  108. {
  109. sqlString += " AND INSTR(TP_PAS_PayPlan.PayPlanName, :PayPlanName) > 0 ";
  110. parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, PayPlanName, ParameterDirection.Input));
  111. }
  112. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  113. return ds;
  114. }
  115. catch (Exception ex)
  116. {
  117. throw ex;
  118. }
  119. finally
  120. {
  121. if (con.ConnState == ConnectionState.Open)
  122. {
  123. con.Close();
  124. }
  125. }
  126. }
  127. /// <summary>
  128. /// 搜索工资工种列表
  129. /// </summary>
  130. /// <returns>DataSet</returns>
  131. public static DataSet GetJobsPayPlanList(string jobsCode, string PayPlanName,string jobsName, SUserInfo sUserInfo)
  132. {
  133. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  134. try
  135. {
  136. con.Open();
  137. string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
  138. left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
  139. left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
  140. where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 ";
  141. List<OracleParameter> parameters = new List<OracleParameter>();
  142. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  143. if (!string.IsNullOrEmpty(jobsCode))
  144. {
  145. sqlString += " AND INSTR(TP_MST_Jobs.JobsCode, :JobsCode) > 0 ";
  146. parameters.Add(new OracleParameter(":JobsCode", OracleDbType.NVarchar2, jobsCode, ParameterDirection.Input));
  147. }
  148. if (!string.IsNullOrEmpty(PayPlanName))
  149. {
  150. sqlString += " AND INSTR(TP_PAS_PayPlan.PayPlanName, :PayPlanName) > 0 ";
  151. parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, PayPlanName, ParameterDirection.Input));
  152. }
  153. if (!string.IsNullOrEmpty(jobsName))
  154. {
  155. sqlString += " AND INSTR(TP_MST_Jobs.JobsName, :JobsName) > 0 ";
  156. parameters.Add(new OracleParameter(":JobsName", OracleDbType.NVarchar2, jobsName, ParameterDirection.Input));
  157. }
  158. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  159. return ds;
  160. }
  161. catch (Exception ex)
  162. {
  163. throw ex;
  164. }
  165. finally
  166. {
  167. if (con.ConnState == ConnectionState.Open)
  168. {
  169. con.Close();
  170. }
  171. }
  172. }
  173. /// <summary>
  174. /// 搜索工资工种列表详情
  175. /// </summary>
  176. /// <returns>DataSet</returns>
  177. public static DataSet GetJobsPayPlanInfo(int PayPlanID, SUserInfo sUserInfo)
  178. {
  179. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  180. try
  181. {
  182. con.Open();
  183. string sqlString = @"select TP_MST_Jobs.JobsID, TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode,TP_PAS_PayPlan.PayPlanName,TP_PAS_PayPlan.PayPlanID from TP_PAM_JobsPayPlan
  184. left join TP_PAS_PayPlan on TP_PAM_JobsPayPlan.Payplanid=TP_PAS_PayPlan.Payplanid
  185. left join TP_MST_Jobs on TP_PAM_JobsPayPlan.JobsID=TP_MST_Jobs.JobsID
  186. where TP_PAS_PayPlan.accountid=:accountid and TP_PAS_PayPlan.valueflag=1 and TP_PAS_PayPlan.PayPlanID=:PayPlanID";
  187. List<OracleParameter> parameters = new List<OracleParameter>();
  188. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  189. parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, PayPlanID, ParameterDirection.Input));
  190. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  191. return ds;
  192. }
  193. catch (Exception ex)
  194. {
  195. throw ex;
  196. }
  197. finally
  198. {
  199. if (con.ConnState == ConnectionState.Open)
  200. {
  201. con.Close();
  202. }
  203. }
  204. }
  205. /// <summary>
  206. /// 搜索工价分类列表
  207. /// </summary>
  208. /// <returns>DataSet</returns>
  209. public static DataSet GetWagesType(string WagesTypeName, SUserInfo sUserInfo)
  210. {
  211. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  212. try
  213. {
  214. con.Open();
  215. string sqlString = @"select TP_PAM_WagesType.WagesTypeID,TP_PAM_WagesType.WagesTypeName,
  216. TP_PAM_WagesType.CreateTime,TP_MST_User.UserName,TP_MST_User.UserCode
  217. from TP_PAM_WagesType
  218. left join TP_MST_User on TP_PAM_WagesType.CreateUserID=TP_MST_User.UserID
  219. where TP_PAM_WagesType.accountid=:accountid and TP_PAM_WagesType.valueflag=1 ";
  220. List<OracleParameter> parameters = new List<OracleParameter>();
  221. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  222. if (!string.IsNullOrEmpty(WagesTypeName))
  223. {
  224. sqlString += " AND INSTR(TP_PAM_WagesType.WagesTypeName, :WagesTypeName) > 0 ";
  225. parameters.Add(new OracleParameter(":WagesTypeName", OracleDbType.NVarchar2, WagesTypeName, ParameterDirection.Input));
  226. }
  227. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  228. return ds;
  229. }
  230. catch (Exception ex)
  231. {
  232. throw ex;
  233. }
  234. finally
  235. {
  236. if (con.ConnState == ConnectionState.Open)
  237. {
  238. con.Close();
  239. }
  240. }
  241. }
  242. /// <summary>
  243. /// 获取工价分类全部数据
  244. /// </summary>
  245. /// <param name="sUserInfo">用户基本信息</param>
  246. /// <returns></returns>
  247. public static DataSet GetAllWagesType(SUserInfo sUserInfo)
  248. {
  249. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  250. try
  251. {
  252. string sqlString = "Select WagesTypeID,WagesTypeName,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp "
  253. + "from TP_PAM_WagesType where AccountID = :AccountID";
  254. Oracle.DataAccess.Client.OracleParameter[] oracleParameter = new Oracle.DataAccess.Client.OracleParameter[]
  255. {
  256. new Oracle.DataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID)
  257. };
  258. oracleConn.Open();
  259. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  260. oracleConn.Close();
  261. return result;
  262. }
  263. catch (Exception ex)
  264. {
  265. throw ex;
  266. }
  267. finally
  268. {
  269. if (oracleConn.ConnState == ConnectionState.Open)
  270. {
  271. oracleConn.Close();
  272. }
  273. }
  274. }
  275. /// <summary>
  276. /// 搜索产品工价分类列表
  277. /// </summary>
  278. /// <returns>DataSet</returns>
  279. public static DataSet GetGoodsWagesType(string WagesTypeName, string GoodsCode, SUserInfo sUserInfo)
  280. {
  281. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  282. try
  283. {
  284. con.Open();
  285. string sqlString = @"select TP_PAM_WagesType.WagesTypeID, TP_PAM_WagesType.WagesTypeName,
  286. TP_MST_Goods.goodsCode,TP_MST_Goods.goodsName,TP_MST_Goods.StartingDate,TP_MST_Goods.GoodsID
  287. from TP_PAM_GoodsWagesType
  288. left join TP_PAM_WagesType on TP_PAM_GoodsWagesType.WagesTypeID=TP_PAM_WagesType.WagesTypeID
  289. left join TP_MST_Goods on TP_PAM_GoodsWagesType.GoodsID=TP_MST_Goods.GoodsID
  290. where TP_PAM_WagesType.accountid=:accountid and TP_PAM_WagesType.valueflag=1 ";
  291. List<OracleParameter> parameters = new List<OracleParameter>();
  292. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  293. if (!string.IsNullOrEmpty(WagesTypeName))
  294. {
  295. sqlString += " AND INSTR(TP_PAM_WagesType.WagesTypeName, :WagesTypeName) > 0 ";
  296. parameters.Add(new OracleParameter(":WagesTypeName", OracleDbType.NVarchar2, WagesTypeName, ParameterDirection.Input));
  297. }
  298. if (!string.IsNullOrEmpty(GoodsCode))
  299. {
  300. sqlString += " AND INSTR(TP_MST_Goods.goodsCode, :GoodsCode) > 0 ";
  301. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, GoodsCode, ParameterDirection.Input));
  302. }
  303. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  304. return ds;
  305. }
  306. catch (Exception ex)
  307. {
  308. throw ex;
  309. }
  310. finally
  311. {
  312. if (con.ConnState == ConnectionState.Open)
  313. {
  314. con.Close();
  315. }
  316. }
  317. }
  318. /// <summary>
  319. /// 搜索计件工资策略
  320. /// </summary>
  321. /// <returns>DataSet</returns>
  322. public static DataSet GetPieceworkData(PieceworkEntity pieceworkEndity, SUserInfo sUserInfo)
  323. {
  324. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  325. try
  326. {
  327. con.Open();
  328. string sqlString = @"select pw.piecetacticsid,
  329. pw.PieceTacticsName,
  330. wmsys.wm_concat(decode(pp.procedureflag,
  331. '1',
  332. to_char(p.procedureName),
  333. null)) as PieceProcedure,
  334. wmsys.wm_concat(decode(pp.procedureflag,
  335. '2',
  336. to_char(p.procedureName),
  337. null)) as QualityBaseProcedure,
  338. pw.PieceCoefficient,
  339. pw.DamageFlag,
  340. pw.DamageCoefficient,
  341. pw.UnqualifiedFlag,
  342. pw.UnqualifiedCoefficient,
  343. pw.QualifiedFlag,
  344. pw.QualifiedCoefficient,
  345. decode(pw.PieceType, '0', '工序计件', '经过工序计件') as PieceTypeName,
  346. pw.ValueFlag,
  347. TP_PAS_PayPlan.Payplanname,
  348. pw.PayPlanID
  349. from TP_PAT_Piecework pw
  350. left join TP_PAT_PieceProcedure pp on pw.piecetacticsid =
  351. pp.piecetacticsid
  352. left join Tp_Pc_Procedure p on p.procedureid = pp.procedureid
  353. left join TP_PAS_PayPlan on pw.Payplanid =
  354. TP_PAS_PayPlan.Payplanid
  355. where pw.accountid=:accountid and pw.valueflag=1 ";
  356. List<OracleParameter> parameters = new List<OracleParameter>();
  357. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  358. //if (!string.IsNullOrEmpty(pieceworkEndity.PieceProcedureIDS))
  359. //{
  360. // sqlString = sqlString + " AND instr(','||:PieceProcedureIDS||',',','||TP_PAT_Piecework.PieceProcedureID||',')>0 ";
  361. // parameters.Add(new OracleParameter(":PieceProcedureIDS", OracleDbType.NVarchar2, pieceworkEndity.PieceProcedureIDS, ParameterDirection.Input));
  362. //}
  363. //if (pieceworkEndity.PieceType != null)
  364. //{
  365. // sqlString += " AND TP_PAT_Piecework.PieceType=:PieceType ";
  366. // parameters.Add(new OracleParameter(":PieceType", OracleDbType.Int32, pieceworkEndity.PieceType, ParameterDirection.Input));
  367. //}
  368. if (!string.IsNullOrEmpty(pieceworkEndity.PayPlanName))
  369. {
  370. //sqlString = sqlString + " AND instr(','||:PayPlanName||',',','||pw.PieceTacticsName||',')>0 ";
  371. sqlString = sqlString + " AND instr(pw.PieceTacticsName,:PayPlanName)>0 ";
  372. parameters.Add(new OracleParameter(":PayPlanName", OracleDbType.NVarchar2, pieceworkEndity.PayPlanName, ParameterDirection.Input));
  373. }
  374. if (pieceworkEndity.PayPlanID != null)
  375. {
  376. sqlString += " AND pw.PayPlanID=:PayPlanID ";
  377. parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, pieceworkEndity.PayPlanID, ParameterDirection.Input));
  378. }
  379. sqlString += @" group by pw.piecetacticsid,
  380. pw.PieceCoefficient,
  381. pw.PieceTacticsName,
  382. pw.DamageFlag,
  383. pw.DamageCoefficient,
  384. pw.UnqualifiedFlag,
  385. pw.UnqualifiedCoefficient,
  386. pw.QualifiedFlag,
  387. pw.QualifiedCoefficient,
  388. pw.PieceType,
  389. pw.ValueFlag,
  390. TP_PAS_PayPlan.Payplanname,pw.PayPlanID";
  391. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  392. return ds;
  393. }
  394. catch (Exception ex)
  395. {
  396. throw ex;
  397. }
  398. finally
  399. {
  400. if (con.ConnState == ConnectionState.Open)
  401. {
  402. con.Close();
  403. }
  404. }
  405. }
  406. /// <summary>
  407. /// 根据所选计件工资策略ID,显示数据信息
  408. /// </summary>
  409. /// <param name="PieceTacticsID">计件工资策略ID</param>
  410. /// <returns>DataSet</returns>
  411. public static DataSet GetPieceworkByID(int PieceTacticsID, SUserInfo sUserInfo)
  412. {
  413. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  414. try
  415. {
  416. con.Open();
  417. DataSet dsReturn = new DataSet();
  418. string sqlString = @"select
  419. TP_PAT_Piecework.PieceCoefficient
  420. ,TP_PAT_Piecework.DamageFlag
  421. ,TP_PAT_Piecework.DamageCoefficient
  422. ,TP_PAT_Piecework.UnqualifiedFlag
  423. ,TP_PAT_Piecework.UnqualifiedCoefficient
  424. ,TP_PAT_Piecework.QualifiedFlag
  425. ,TP_PAT_Piecework.QualifiedCoefficient
  426. ,decode(TP_PAT_Piecework.PieceType, '0', '工序计件' , '经过工序计件') as PieceTypeName,
  427. TP_PAT_Piecework.PieceType,
  428. TP_PAT_Piecework.PayPlanID,
  429. TP_PAT_Piecework.ValueFlag,
  430. TP_PAT_Piecework.PieceTacticsName
  431. from TP_PAT_Piecework
  432. where
  433. TP_PAT_Piecework.PieceTacticsID=:PieceTacticsID
  434. ";
  435. string sqlString2 = @"
  436. select TP_PAT_Wages.PieceTacticsID,
  437. nvl(TP_PAT_Wages.WagesTypeID,TP_PAM_WagesType.WagesTypeID) as WagesTypeID,
  438. nvl(TP_PAT_Wages.StandardWages,0) as StandardWages,
  439. nvl(TP_PAT_Wages.DamageSubsidyRate,1) as DamageSubsidyRate,
  440. nvl(TP_PAT_Wages.DamageSubsidy,0) as DamageSubsidy,
  441. nvl(TP_PAT_Wages.RSuperiorCoefficient,1) as RSuperiorCoefficient,
  442. nvl(TP_PAT_Wages.RQualifiedCoefficient,1) as RQualifiedCoefficient,
  443. nvl(TP_PAT_Wages.RepairSubsidyRate,1) as RepairSubsidyRate ,
  444. nvl(TP_PAT_Wages.RepairSubsidy,0) as RepairSubsidy
  445. from TP_PAM_WagesType
  446. left join TP_PAT_Wages on TP_PAM_WagesType.WagesTypeID =
  447. TP_PAT_Wages.WagesTypeID
  448. and TP_PAT_Wages.PieceTacticsID = :PieceTacticsID
  449. where TP_PAM_WagesType.valueflag = '1'
  450. and TP_PAM_WagesType.AccountID =:AccountID
  451. ";
  452. string sqlString3 = @"select
  453. *
  454. from TP_PAT_QualityWages
  455. where
  456. TP_PAT_QualityWages.PieceTacticsID=:PieceTacticsID order by QualityRate desc
  457. ";
  458. string sqlString4 = @"select
  459. *
  460. from TP_PAT_PieceProcedure
  461. left join TP_PC_Procedure
  462. on TP_PC_Procedure.ProcedureID=TP_PAT_PieceProcedure.ProcedureID
  463. where
  464. TP_PAT_PieceProcedure.PieceTacticsID=:PieceTacticsID
  465. ";
  466. OracleParameter[] paras = new OracleParameter[]{
  467. new OracleParameter(":PieceTacticsID",OracleDbType.Int32, PieceTacticsID,ParameterDirection.Input),
  468. };
  469. OracleParameter[] paras2 = new OracleParameter[]{
  470. new OracleParameter(":PieceTacticsID",OracleDbType.Int32, PieceTacticsID,ParameterDirection.Input),
  471. new OracleParameter(":AccountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  472. };
  473. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  474. ds.Tables[0].TableName = "TP_PAT_Piecework";
  475. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras2);
  476. ds2.Tables[0].TableName = "TP_PAT_Wages";
  477. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  478. ds3.Tables[0].TableName = "TP_PAT_QualityWages";
  479. DataSet ds4= con.GetSqlResultToDs(sqlString4, paras);
  480. ds4.Tables[0].TableName = "TP_PAT_PieceProcedure";
  481. dsReturn.Tables.Add(ds.Tables[0].Copy());
  482. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  483. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  484. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  485. return dsReturn;
  486. }
  487. catch (Exception ex)
  488. {
  489. throw ex;
  490. }
  491. finally
  492. {
  493. if (con.ConnState == ConnectionState.Open)
  494. {
  495. con.Close();
  496. }
  497. }
  498. }
  499. /// <summary>
  500. /// 搜索品质考核策略
  501. /// </summary>
  502. /// <returns>DataSet</returns>
  503. public static DataSet GetQualityASS(int? QualityBaseProcedureID, SUserInfo sUserInfo)
  504. {
  505. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  506. try
  507. {
  508. con.Open();
  509. string sqlString = @"select
  510. TP_PAT_QualityASS.QualityASSTacticsID,
  511. TP_PAT_QualityASS.DefectFine,
  512. TP_PAT_QualityASS.QualityBaseProcedureID,
  513. TP_PC_Procedure.ProcedureName as QualityBaseProcedure,
  514. TP_PAT_QualityASS.CreateTime
  515. from TP_PAT_QualityASS
  516. left join TP_PC_Procedure on TP_PAT_QualityASS.QualityBaseProcedureID=TP_PC_Procedure.ProcedureID
  517. where TP_PAT_QualityASS.accountid=:accountid and TP_PAT_QualityASS.valueflag=1 ";
  518. List<OracleParameter> parameters = new List<OracleParameter>();
  519. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  520. if (QualityBaseProcedureID != null)
  521. {
  522. sqlString += " AND TP_PAT_QualityASS.QualityBaseProcedureID=:QualityBaseProcedureID ";
  523. parameters.Add(new OracleParameter(":QualityBaseProcedureID", OracleDbType.Int32, QualityBaseProcedureID, ParameterDirection.Input));
  524. }
  525. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  526. return ds;
  527. }
  528. catch (Exception ex)
  529. {
  530. throw ex;
  531. }
  532. finally
  533. {
  534. if (con.ConnState == ConnectionState.Open)
  535. {
  536. con.Close();
  537. }
  538. }
  539. }
  540. /// <summary>
  541. /// 搜索品质考核策略
  542. /// </summary>
  543. /// <returns>DataSet</returns>
  544. public static DataSet GetQualityASSList(string QualityTacticsName,int? PayPlanID, SUserInfo sUserInfo)
  545. {
  546. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  547. try
  548. {
  549. con.Open();
  550. string sqlString = @"select TP_PAT_QualityASS.QualityASSTacticsID,
  551. TP_PAT_QualityASS.QualityTacticsName,
  552. TP_PAT_QualityASS.DefectFine,
  553. TP_PAS_PayPlan.PayPlanName,
  554. TP_PAT_QualityASS.CreateTime,
  555. TP_MST_DataDictionary.Dictionaryvalue
  556. from TP_PAT_QualityASS
  557. left join TP_PAS_PayPlan on TP_PAS_PayPlan.PayPlanid=TP_PAT_QualityASS.PayPlanid
  558. left join TP_MST_DataDictionary on TP_PAT_QualityASS.DefectFine =
  559. TP_MST_DataDictionary.DictionaryID
  560. and TP_MST_DataDictionary.DictionaryType =
  561. 'ASE002'
  562. where TP_PAT_QualityASS.accountid=:accountid and TP_PAT_QualityASS.valueflag=1 ";
  563. List<OracleParameter> parameters = new List<OracleParameter>();
  564. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  565. if (!string.IsNullOrEmpty(QualityTacticsName))
  566. {
  567. // sqlString += " AND TP_PAT_QualityASS.QualityTacticsName=:QualityTacticsName ";
  568. sqlString = sqlString + " AND instr(TP_PAT_QualityASS.QualityTacticsName,:QualityTacticsName)>0 ";
  569. parameters.Add(new OracleParameter(":QualityTacticsName", OracleDbType.NVarchar2, QualityTacticsName, ParameterDirection.Input));
  570. }
  571. if (PayPlanID!=null)
  572. {
  573. sqlString += " AND TP_PAT_QualityASS.PayPlanID=:PayPlanID ";
  574. parameters.Add(new OracleParameter(":PayPlanID", OracleDbType.Int32, PayPlanID, ParameterDirection.Input));
  575. }
  576. sqlString += @" group by TP_PAT_QualityASS.QualityASSTacticsID,
  577. TP_PAT_QualityASS.DefectFine,
  578. TP_PAS_PayPlan.PayPlanName,
  579. TP_PAT_QualityASS.QualityTacticsName,
  580. TP_PAT_QualityASS.CreateTime,
  581. TP_MST_DataDictionary.Dictionaryvalue";
  582. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  583. return ds;
  584. }
  585. catch (Exception ex)
  586. {
  587. throw ex;
  588. }
  589. finally
  590. {
  591. if (con.ConnState == ConnectionState.Open)
  592. {
  593. con.Close();
  594. }
  595. }
  596. }
  597. /// <summary>
  598. /// 根据显示数据信息
  599. /// </summary>
  600. /// <param name="QualityASSTacticsID">ID</param>
  601. /// <returns>DataSet</returns>
  602. public static DataSet GetQualityASSByID(int? QualityASSTacticsID, SUserInfo sUserInfo)
  603. {
  604. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  605. try
  606. {
  607. con.Open();
  608. DataSet dsReturn = new DataSet();
  609. string sqlString = @"select
  610. TP_PAT_QualityASS.QualityASSTacticsID
  611. ,TP_PAT_QualityASS.PayPlanID
  612. ,TP_PAT_QualityASS.DefectFine
  613. ,TP_PAT_QualityASS.QualityTacticsName
  614. from TP_PAT_QualityASS
  615. where
  616. TP_PAT_QualityASS.QualityASSTacticsID=:QualityASSTacticsID
  617. ";
  618. string sqlString2 = @"
  619. select *
  620. from TP_PAM_WagesType
  621. left join TP_PAT_QualityGoods on TP_PAM_WagesType.WagesTypeID =
  622. TP_PAT_QualityGoods.WagesTypeID
  623. and TP_PAT_QualityGoods.QualityASSTacticsID = :QualityASSTacticsID
  624. where TP_PAM_WagesType.valueflag = '1'
  625. and TP_PAM_WagesType.AccountID =:AccountID";
  626. string sqlString3 = @"select
  627. *
  628. from TP_PAT_QualityReward
  629. where
  630. TP_PAT_QualityReward.QualityASSTacticsID=:QualityASSTacticsID order by QualityRate desc
  631. ";
  632. // string sqlString4 = @"select
  633. // *
  634. // from TP_PAT_QualityProcedure
  635. // left join TP_PC_Procedure
  636. // on TP_PAT_QualityProcedure.ProcedureID=TP_PC_Procedure.ProcedureID
  637. // where
  638. // TP_PAT_QualityProcedure.QualityASSTacticsID=:QualityASSTacticsID
  639. // ";
  640. OracleParameter[] paras = new OracleParameter[]{
  641. new OracleParameter(":QualityASSTacticsID",OracleDbType.Int32, QualityASSTacticsID,ParameterDirection.Input),
  642. };
  643. OracleParameter[] paras2 = new OracleParameter[]{
  644. new OracleParameter(":QualityASSTacticsID",OracleDbType.Int32, QualityASSTacticsID,ParameterDirection.Input),
  645. new OracleParameter(":AccountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  646. };
  647. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  648. ds.Tables[0].TableName = "TP_PAT_QualityASS";
  649. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras2);
  650. ds2.Tables[0].TableName = "TP_PAT_QualityGoods";
  651. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  652. ds3.Tables[0].TableName = "TP_PAT_QualityReward";
  653. //DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  654. //ds4.Tables[0].TableName = "TP_PAT_QualityProcedure";
  655. dsReturn.Tables.Add(ds.Tables[0].Copy());
  656. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  657. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  658. //dsReturn.Tables.Add(ds4.Tables[0].Copy());
  659. return dsReturn;
  660. }
  661. catch (Exception ex)
  662. {
  663. throw ex;
  664. }
  665. finally
  666. {
  667. if (con.ConnState == ConnectionState.Open)
  668. {
  669. con.Close();
  670. }
  671. }
  672. }
  673. /// <summary>
  674. /// 获取行政考核记录一览
  675. /// </summary>
  676. /// <param name="entity">查询条码</param>
  677. /// <param name="sUserInfo">登录用户</param>
  678. /// <returns>查询结果</returns>
  679. public static ServiceResultEntity GetAdminEXA(AdminEXAEntity entity, SUserInfo sUserInfo)
  680. {
  681. IDBConnection conn = null;
  682. try
  683. {
  684. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  685. List<OracleParameter> parameters = new List<OracleParameter>();
  686. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  687. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
  688. string sqlString = "\n" +
  689. "select a.AdminEXAID,\n" +
  690. " --a.UserID,\n" +
  691. " a.StaffID,\n" +
  692. " a.AdminEXATypeID,\n" +
  693. " a.Amount,\n" +
  694. " a.Remarks,\n" +
  695. " a.AuditStatus,\n" +
  696. " a.Auditor,\n" +
  697. " a.AuditlDate,\n" +
  698. " --a.AccountID,\n" +
  699. " --a.ValueFlag,\n" +
  700. " a.SettlementFlag,\n" +
  701. " a.CreateTime,\n" +
  702. " a.CreateUserID,\n" +
  703. " a.UpdateTime,\n" +
  704. " a.UpdateUserID,\n" +
  705. " a.OPTimeStamp,\n" +
  706. " s.staffcode,\n" +
  707. " s.staffname,\n" +
  708. " cu.username cname,\n" +
  709. " uu.username uname,\n" +
  710. " au.username aname,\n" +
  711. " dd.dictionaryvalue AdminEXATypeName,\n" +
  712. " ass.auditstatusname\n" +
  713. " from TP_PAD_AdminEXA a\n" +
  714. " left join tp_hr_staff s\n" +
  715. " on s.staffid = a.staffid\n" +
  716. " left join tp_mst_user cu\n" +
  717. " on cu.userid = a.CreateUserID\n" +
  718. " left join tp_mst_user uu\n" +
  719. " on uu.userid = a.updateuserid\n" +
  720. " left join tp_mst_user au\n" +
  721. " on au.userid = a.auditor\n" +
  722. " left join TP_MST_DataDictionary dd\n" +
  723. " on dd.dictionaryid = a.AdminEXATypeID\n" +
  724. " left join Tp_Sys_Auditstatus ass\n" +
  725. " on ass.auditstatusid = a.AuditStatus\n" +
  726. " where a.valueflag = '1'\n" +
  727. " and a.AccountID = :AccountID\n" +
  728. " AND (a.CreateUserID = :UPUserId OR EXISTS (SELECT UP.PurviewID\n" +
  729. " FROM TP_MST_UserPurview UP\n" +
  730. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  731. " AND (UP.PurviewID = a.CreateUserID OR UP.PurviewID = -1)\n" +
  732. " AND UP.UserId = :UPUserId))";
  733. StringBuilder sql = new StringBuilder(sqlString);
  734. if (entity.StaffID.HasValue)
  735. {
  736. sql.Append(" AND a.StaffID =:StaffID ");
  737. parameters.Add(new OracleParameter(":StaffID", OracleDbType.Int32, entity.StaffID, ParameterDirection.Input));
  738. }
  739. if (!string.IsNullOrWhiteSpace( entity.SettlementFlag))
  740. {
  741. sql.Append(" AND a.SettlementFlag =:SettlementFlag ");
  742. parameters.Add(new OracleParameter(":SettlementFlag", OracleDbType.Char, entity.SettlementFlag, ParameterDirection.Input));
  743. }
  744. if (entity.AuditStatus.HasValue)
  745. {
  746. sql.Append(" AND a.AuditStatus =:AuditStatus ");
  747. parameters.Add(new OracleParameter(":AuditStatus", OracleDbType.Int32, entity.AuditStatus, ParameterDirection.Input));
  748. }
  749. if (entity.AdminEXATypeID.HasValue)
  750. {
  751. sql.Append(" AND a.AdminEXATypeID =:AdminEXATypeID ");
  752. parameters.Add(new OracleParameter(":AdminEXATypeID", OracleDbType.Int32, entity.AdminEXATypeID, ParameterDirection.Input));
  753. }
  754. if (!string.IsNullOrWhiteSpace(entity.Remarks))
  755. {
  756. sql.Append(" AND INSTR(a.Remarks, :Remarks) > 0");
  757. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, entity.Remarks, ParameterDirection.Input));
  758. }
  759. sql.Append(" ORDER BY a.AdminEXAID");
  760. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  761. ServiceResultEntity sre = new ServiceResultEntity();
  762. if (data == null || data.Rows.Count == 0)
  763. {
  764. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  765. return sre;
  766. }
  767. sre.Data = new DataSet();
  768. sre.Data.Tables.Add(data);
  769. return sre;
  770. }
  771. catch (Exception ex)
  772. {
  773. throw ex;
  774. }
  775. finally
  776. {
  777. if (conn != null &&
  778. conn.ConnState == ConnectionState.Open)
  779. {
  780. conn.Close();
  781. }
  782. }
  783. }
  784. /// <summary>
  785. /// 获取行政考核记录
  786. /// </summary>
  787. /// <param name="id">行政考核记录ID</param>
  788. /// <returns>查询结果</returns>
  789. public static ServiceResultEntity GetAdminEXAByID(int id)
  790. {
  791. IDBConnection conn = null;
  792. try
  793. {
  794. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  795. string sqlString = "\n" +
  796. "select a.AdminEXAID,\n" +
  797. " --a.UserID,\n" +
  798. " a.StaffID,\n" +
  799. " a.AdminEXATypeID,\n" +
  800. " a.Amount,\n" +
  801. " a.Remarks,\n" +
  802. " a.AuditStatus,\n" +
  803. " a.Auditor,\n" +
  804. " a.AuditlDate,\n" +
  805. " --a.AccountID,\n" +
  806. " --a.ValueFlag,\n" +
  807. " a.SettlementFlag,\n" +
  808. " a.CreateTime,\n" +
  809. " a.CreateUserID,\n" +
  810. " a.UpdateTime,\n" +
  811. " a.UpdateUserID,\n" +
  812. " a.OPTimeStamp,\n" +
  813. " s.staffcode,\n" +
  814. " s.staffname,\n" +
  815. " cu.username cname,\n" +
  816. " uu.username uname,\n" +
  817. " au.username aname,\n" +
  818. " dd.dictionaryvalue AdminEXATypeName,\n" +
  819. " ass.auditstatusname\n" +
  820. " from TP_PAD_AdminEXA a\n" +
  821. " left join tp_hr_staff s\n" +
  822. " on s.staffid = a.staffid\n" +
  823. " left join tp_mst_user cu\n" +
  824. " on cu.userid = a.CreateUserID\n" +
  825. " left join tp_mst_user uu\n" +
  826. " on uu.userid = a.updateuserid\n" +
  827. " left join tp_mst_user au\n" +
  828. " on au.userid = a.auditor\n" +
  829. " left join TP_MST_DataDictionary dd\n" +
  830. " on dd.dictionaryid = a.AdminEXATypeID\n" +
  831. " left join Tp_Sys_Auditstatus ass\n" +
  832. " on ass.auditstatusid = a.AuditStatus\n" +
  833. " where a.valueflag = '1'\n" +
  834. " and a.AdminEXAID = :AdminEXAID\n";
  835. OracleParameter[] parameters = new OracleParameter[]
  836. {
  837. new OracleParameter(":AdminEXAID", OracleDbType.Int32, id, ParameterDirection.Input),
  838. };
  839. DataTable data = conn.GetSqlResultToDt(sqlString, parameters);
  840. ServiceResultEntity sre = new ServiceResultEntity();
  841. if (data == null || data.Rows.Count == 0)
  842. {
  843. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  844. return sre;
  845. }
  846. sre.Data = new DataSet();
  847. sre.Data.Tables.Add(data);
  848. return sre;
  849. }
  850. catch (Exception ex)
  851. {
  852. throw ex;
  853. }
  854. finally
  855. {
  856. if (conn != null &&
  857. conn.ConnState == ConnectionState.Open)
  858. {
  859. conn.Close();
  860. }
  861. }
  862. }
  863. /// <summary>
  864. /// 停用行政考核记录
  865. /// </summary>
  866. /// <param name="id">行政考核记录ID</param>
  867. /// <param name="opTimeStamp">时间戳</param>
  868. /// <returns>执行结果</returns>
  869. public static ServiceResultEntity StopAdminEXAByID(int id, object opTimeStamp, SUserInfo sUserInfo)
  870. {
  871. IDBTransaction tran = null;
  872. try
  873. {
  874. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  875. tran.IsCommandTimeout = false;
  876. string sql = "update TP_PAD_AdminEXA a set a.valueflag = '0', a.UpdateUserID=:UpdateUserID "
  877. + " where a.AdminEXAID=:AdminEXAID and a.OPTimeStamp=:OPTimeStamp";
  878. OracleParameter[] parameters = new OracleParameter[]
  879. {
  880. new OracleParameter(":AdminEXAID", OracleDbType.Int32, id, ParameterDirection.Input),
  881. new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  882. new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, opTimeStamp, ParameterDirection.Input),
  883. };
  884. int result = tran.ExecuteNonQuery(sql, parameters);
  885. ServiceResultEntity sre = new ServiceResultEntity();
  886. if (result <= 0)
  887. {
  888. sre.Status = Constant.ServiceResultStatus.DataChanged;
  889. return sre;
  890. }
  891. tran.Commit();
  892. return sre;
  893. }
  894. catch (Exception ex)
  895. {
  896. if (tran != null &&
  897. tran.ConnState == ConnectionState.Open)
  898. {
  899. tran.Rollback();
  900. }
  901. throw ex;
  902. }
  903. finally
  904. {
  905. if (tran != null &&
  906. tran.ConnState == ConnectionState.Open)
  907. {
  908. tran.Disconnect();
  909. }
  910. }
  911. }
  912. /// <summary>
  913. /// 审核行政考核记录
  914. /// </summary>
  915. /// <param name="ids">行政考核记录IDs</param>
  916. /// <returns>执行结果</returns>
  917. public static ServiceResultEntity AuditAdminEXA(string ids, Constant.AuditStatus auditStatus, SUserInfo sUserInfo)
  918. {
  919. IDBTransaction tran = null;
  920. try
  921. {
  922. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  923. string sql = "update TP_PAD_AdminEXA a set a.AuditStatus = :AuditStatus, a.Auditor=:UpdateUserID,a.AuditlDate=sysdate, a.UpdateUserID=:UpdateUserID "
  924. + " where INSTR(:AdminEXAIDs, ',' || a.AdminEXAID || ',') > 0 and a.AuditStatus=" + (int)Constant.AuditStatus.Pending;
  925. ids = "," + ids + ",";
  926. OracleParameter[] parameters = new OracleParameter[]
  927. {
  928. new OracleParameter(":AdminEXAIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input),
  929. new OracleParameter(":UpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  930. new OracleParameter(":AuditStatus", OracleDbType.Int32, (int)auditStatus, ParameterDirection.Input),
  931. };
  932. int result = tran.ExecuteNonQuery(sql, parameters);
  933. ServiceResultEntity sre = new ServiceResultEntity();
  934. if (result <= 0)
  935. {
  936. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  937. return sre;
  938. }
  939. tran.Commit();
  940. return sre;
  941. }
  942. catch (Exception ex)
  943. {
  944. if (tran != null &&
  945. tran.ConnState == ConnectionState.Open)
  946. {
  947. tran.Rollback();
  948. }
  949. throw ex;
  950. }
  951. finally
  952. {
  953. if (tran != null &&
  954. tran.ConnState == ConnectionState.Open)
  955. {
  956. tran.Disconnect();
  957. }
  958. }
  959. }
  960. /// <summary>
  961. /// 新建行政考核记录
  962. /// </summary>
  963. /// <param name="entity">行政考核记录</param>
  964. /// <param name="sUserInfo">登录用户</param>
  965. /// <returns></returns>
  966. public static ServiceResultEntity AddAdminEXA(AdminEXAEntity entity, SUserInfo sUserInfo)
  967. {
  968. IDBTransaction tran = null;
  969. try
  970. {
  971. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  972. string sql = "insert into tp_pad_adminexa\n" +
  973. " (adminexaid,\n" +
  974. //" userid,\n" +
  975. " staffid,\n" +
  976. " adminexatypeid,\n" +
  977. " amount,\n" +
  978. " remarks,\n" +
  979. " auditstatus,\n" +
  980. //" auditor,\n" +
  981. //" auditldate,\n" +
  982. " accountid,\n" +
  983. " valueflag,\n" +
  984. " settlementflag,\n" +
  985. " createtime,\n" +
  986. " createuserid,\n" +
  987. " updatetime,\n" +
  988. " updateuserid)\n" +
  989. "values\n" +
  990. " (null,\n" +
  991. //" v_userid,\n" +
  992. " :staffid,\n" +
  993. " :adminexatypeid,\n" +
  994. " :amount,\n" +
  995. " :remarks,\n" +
  996. " :auditstatus,\n" +
  997. //" :auditor,\n" +
  998. //" :auditldate,\n" +
  999. " :accountid,\n" +
  1000. " '1',\n" +
  1001. " '0',\n" +
  1002. " sysdate,\n" +
  1003. " :createuserid,\n" +
  1004. " sysdate,\n" +
  1005. " :createuserid)";
  1006. OracleParameter[] parameters = new OracleParameter[]
  1007. {
  1008. new OracleParameter(":staffid", OracleDbType.Int32, entity.StaffID, ParameterDirection.Input),
  1009. new OracleParameter(":adminexatypeid", OracleDbType.Int32, entity.AdminEXATypeID, ParameterDirection.Input),
  1010. new OracleParameter(":amount", OracleDbType.Decimal, entity.Amount, ParameterDirection.Input),
  1011. new OracleParameter(":remarks", OracleDbType.NVarchar2, entity.Remarks, ParameterDirection.Input),
  1012. new OracleParameter(":auditstatus", OracleDbType.Int32, (int)Constant.AuditStatus.Pending, ParameterDirection.Input),
  1013. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1014. new OracleParameter(":createuserid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  1015. };
  1016. int result = tran.ExecuteNonQuery(sql, parameters);
  1017. ServiceResultEntity sre = new ServiceResultEntity();
  1018. if (result <= 0)
  1019. {
  1020. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1021. return sre;
  1022. }
  1023. tran.Commit();
  1024. return sre;
  1025. }
  1026. catch (Exception ex)
  1027. {
  1028. if (tran != null &&
  1029. tran.ConnState == ConnectionState.Open)
  1030. {
  1031. tran.Rollback();
  1032. }
  1033. throw ex;
  1034. }
  1035. finally
  1036. {
  1037. if (tran != null &&
  1038. tran.ConnState == ConnectionState.Open)
  1039. {
  1040. tran.Disconnect();
  1041. }
  1042. }
  1043. }
  1044. /// <summary>
  1045. ///
  1046. /// </summary>
  1047. /// <param name="ids"></param>
  1048. /// <param name="auditStatus"></param>
  1049. /// <param name="sUserInfo"></param>
  1050. /// <returns></returns>
  1051. public static ServiceResultEntity EditAdminEXA(DataTable dt, SUserInfo sUserInfo)
  1052. {
  1053. if (dt == null || dt.Rows.Count == 0)
  1054. {
  1055. ServiceResultEntity sre = new ServiceResultEntity();
  1056. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1057. return sre;
  1058. }
  1059. IDBTransaction tran = null;
  1060. try
  1061. {
  1062. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1063. string sql = "update tp_pad_adminexa\n" +
  1064. " set staffid = :staffid,\n" +
  1065. //" userid = :userid,\n" +
  1066. " adminexatypeid = :adminexatypeid,\n" +
  1067. " amount = :amount,\n" +
  1068. " remarks = :remarks,\n" +
  1069. " updateuserid = :updateuserid\n" +
  1070. " where adminexaid = :adminexaid\n" +
  1071. " and auditstatus = " + (int)Constant.AuditStatus.Pending + "\n" +
  1072. " and optimestamp = :optimestamp\n" +
  1073. " and valueflag = '1'";
  1074. OracleParameter[] parameters = new OracleParameter[]
  1075. {
  1076. new OracleParameter(":adminexaid", OracleDbType.Int32, dt.Rows[0]["adminexaid"], ParameterDirection.Input),
  1077. new OracleParameter(":staffid", OracleDbType.Int32,dt.Rows[0]["staffid"], ParameterDirection.Input),
  1078. new OracleParameter(":adminexatypeid", OracleDbType.Int32, dt.Rows[0]["adminexatypeid"], ParameterDirection.Input),
  1079. new OracleParameter(":amount", OracleDbType.Decimal, dt.Rows[0]["amount"], ParameterDirection.Input),
  1080. new OracleParameter(":remarks", OracleDbType.NVarchar2, dt.Rows[0]["remarks"], ParameterDirection.Input),
  1081. new OracleParameter(":updateuserid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  1082. new OracleParameter(":optimestamp", OracleDbType.TimeStamp, dt.Rows[0]["optimestamp"], ParameterDirection.Input),
  1083. };
  1084. int result = tran.ExecuteNonQuery(sql, parameters);
  1085. ServiceResultEntity sre = new ServiceResultEntity();
  1086. if (result <= 0)
  1087. {
  1088. sre.Status = Constant.ServiceResultStatus.DataChanged;
  1089. return sre;
  1090. }
  1091. tran.Commit();
  1092. return sre;
  1093. }
  1094. catch (Exception ex)
  1095. {
  1096. if (tran != null &&
  1097. tran.ConnState == ConnectionState.Open)
  1098. {
  1099. tran.Rollback();
  1100. }
  1101. throw ex;
  1102. }
  1103. finally
  1104. {
  1105. if (tran != null &&
  1106. tran.ConnState == ConnectionState.Open)
  1107. {
  1108. tran.Disconnect();
  1109. }
  1110. }
  1111. }
  1112. }
  1113. }