You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

321 lines
10 KiB

  1. using System;
  2. using Learun.Util;
  3. using System.Data;
  4. using Learun.Application.TwoDevelopment.PersonnelManagement;
  5. using System.Web.Mvc;
  6. using System.Collections.Generic;
  7. using System.Drawing;
  8. using System.Linq;
  9. namespace Learun.Application.Web.Areas.PersonnelManagement.Controllers
  10. {
  11. /// <summary>
  12. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  13. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2020-03-27 17:52
  16. /// 描 述:工资记录表
  17. /// </summary>
  18. public class Sal_UserSalaryController : MvcControllerBase
  19. {
  20. private Sal_UserSalaryIBLL sal_UserSalaryIBLL = new Sal_UserSalaryBLL();
  21. private Sal_UserSalaryItemIBLL sal_UserSalaryItemIBLL = new Sal_UserSalaryItemBLL();
  22. private Sal_SalaryTemplateItemIBLL sal_SalaryTemplateItemIBLL = new Sal_SalaryTemplateItemBLL();
  23. #region 视图功能
  24. /// <summary>
  25. /// 主页面
  26. /// <summary>
  27. /// <returns></returns>
  28. [HttpGet]
  29. public ActionResult Index()
  30. {
  31. return View();
  32. }
  33. /// <summary>
  34. /// 我的工资
  35. /// <summary>
  36. /// <returns></returns>
  37. [HttpGet]
  38. public ActionResult IndexOfMy()
  39. {
  40. return View();
  41. }
  42. /// <summary>
  43. /// 工资导入
  44. /// <summary>
  45. /// <returns></returns>
  46. [HttpGet]
  47. public ActionResult ImportForm()
  48. {
  49. return View();
  50. }
  51. /// <summary>
  52. /// 表单页
  53. /// <summary>
  54. /// <returns></returns>
  55. [HttpGet]
  56. public ActionResult Form()
  57. {
  58. var itemList = sal_UserSalaryIBLL.GetAllTemplateInfo();
  59. ViewBag.ItemList = itemList.ToList();
  60. return View();
  61. }
  62. /// <summary>
  63. /// 详情页
  64. /// <summary>
  65. /// <returns></returns>
  66. [HttpGet]
  67. public ActionResult FormView()
  68. {
  69. var itemList = sal_UserSalaryIBLL.GetAllTemplateInfo();
  70. ViewBag.ItemList = itemList.ToList();
  71. return View();
  72. }
  73. #endregion
  74. #region 获取数据
  75. /// <summary>
  76. /// 获取页面显示列表数据
  77. /// <summary>
  78. /// <param name="queryJson">查询参数</param>
  79. /// <returns></returns>
  80. [HttpGet]
  81. [AjaxOnly]
  82. public ActionResult GetPageList(string pagination, string queryJson)
  83. {
  84. Pagination paginationobj = pagination.ToObject<Pagination>();
  85. var data = sal_UserSalaryIBLL.GetPageList(paginationobj, queryJson);
  86. var objectList = new List<Object>();
  87. foreach (var userSalary in data)
  88. {
  89. dynamic dataItem = new System.Dynamic.ExpandoObject();
  90. var dataItemDic = dataItem as IDictionary<string, object>;
  91. dataItemDic["F_UserId"] = userSalary.F_UserId;
  92. dataItemDic["USId"] = userSalary.USId;
  93. dataItemDic["STAll"] = userSalary.STAll;
  94. dataItemDic["STActual"] = userSalary.STActual;
  95. dataItemDic["USDate"] = userSalary.USDate;
  96. var ListItem = sal_SalaryTemplateItemIBLL.GetListByUSId(userSalary.USId);
  97. foreach (var itemEntity in ListItem)
  98. {
  99. var name = itemEntity.STIId;
  100. var val = itemEntity.STIValue;
  101. dataItemDic[name] = val;
  102. }
  103. objectList.Add(dataItem);
  104. }
  105. var jsonData = new
  106. {
  107. rows = objectList,
  108. total = paginationobj.total,
  109. page = paginationobj.page,
  110. records = paginationobj.records
  111. };
  112. return Success(jsonData);
  113. }
  114. /// <summary>
  115. /// 获取表单数据
  116. /// <summary>
  117. /// <returns></returns>
  118. [HttpGet]
  119. [AjaxOnly]
  120. public ActionResult GetFormData(string keyValue)
  121. {
  122. var Sal_UserSalaryData = sal_UserSalaryIBLL.GetSal_UserSalaryEntity(keyValue);
  123. dynamic dataItem = new System.Dynamic.ExpandoObject();
  124. var dataItemDic = dataItem as IDictionary<string, object>;
  125. dataItemDic["F_UserId"] = Sal_UserSalaryData.F_UserId;
  126. dataItemDic["USId"] = Sal_UserSalaryData.USId;
  127. dataItemDic["STAll"] = Sal_UserSalaryData.STAll;
  128. dataItemDic["STActual"] = Sal_UserSalaryData.STActual;
  129. dataItemDic["USDate"] = Sal_UserSalaryData.USDate;
  130. var ListItem = sal_SalaryTemplateItemIBLL.GetListByUSId(Sal_UserSalaryData.USId);
  131. foreach (var itemEntity in ListItem)
  132. {
  133. var name = itemEntity.STIId;
  134. var val = itemEntity.STIValue;
  135. dataItemDic[name] = val;
  136. }
  137. var jsonData = new
  138. {
  139. Sal_UserSalary = dataItem,
  140. };
  141. return Success(jsonData);
  142. }
  143. /// <summary>
  144. /// 获取已经启用的工资模板信息
  145. /// </summary>
  146. /// <returns></returns>
  147. [HttpGet]
  148. [AjaxOnly]
  149. public ActionResult GetEnableTemplateInfo()
  150. {
  151. var TemplateItems = sal_UserSalaryIBLL.GetEnableTemplateInfo();
  152. var jsonData = new
  153. {
  154. ItemList = TemplateItems,
  155. };
  156. return Success(jsonData);
  157. }
  158. /// <summary>
  159. /// 获取全部工资模板信息
  160. /// </summary>
  161. /// <returns></returns>
  162. [HttpGet]
  163. [AjaxOnly]
  164. public ActionResult GetAllTemplateInfo()
  165. {
  166. var TemplateItems = sal_UserSalaryIBLL.GetAllTemplateInfo();
  167. var jsonData = new
  168. {
  169. ItemList = TemplateItems,
  170. };
  171. return Success(jsonData);
  172. }
  173. #endregion
  174. #region 提交数据
  175. /// <summary>
  176. /// 删除实体数据
  177. /// <param name="keyValue">主键</param>
  178. /// <summary>
  179. /// <returns></returns>
  180. [HttpPost]
  181. [AjaxOnly]
  182. public ActionResult DeleteForm(string keyValue)
  183. {
  184. sal_UserSalaryIBLL.DeleteEntity(keyValue);
  185. return Success("删除成功!");
  186. }
  187. /// <summary>
  188. /// 保存实体数据(新增、修改)
  189. /// <param name="keyValue">主键</param>
  190. /// <summary>
  191. /// <returns></returns>
  192. [HttpPost]
  193. [ValidateAntiForgeryToken]
  194. [AjaxOnly]
  195. public ActionResult SaveForm(string keyValue, string strEntity, string strDetail)
  196. {
  197. Sal_UserSalaryEntity entity = strEntity.ToObject<Sal_UserSalaryEntity>();
  198. List<Sal_UserSalaryItemEntity> itemList = strDetail.ToList<Sal_UserSalaryItemEntity>();
  199. if (string.IsNullOrEmpty(keyValue))
  200. {
  201. entity.Create();
  202. }
  203. entity.STActual = 0;
  204. entity.STAll = 0;
  205. foreach (var item in itemList)
  206. {
  207. var Sal_SalaryTemplateItemEntity =
  208. sal_SalaryTemplateItemIBLL.GetSal_SalaryTemplateItemEntity(item.STIId);
  209. if (Sal_SalaryTemplateItemEntity != null)
  210. {
  211. if (Sal_SalaryTemplateItemEntity.STIParticipation == "true")
  212. {
  213. if (Sal_SalaryTemplateItemEntity.STIAdd == "true")
  214. {
  215. entity.STActual += Convert.ToDecimal(item.STIValue);
  216. }
  217. else
  218. {
  219. entity.STActual -= Convert.ToDecimal(item.STIValue);
  220. }
  221. }
  222. if (Sal_SalaryTemplateItemEntity.STIAdd == "true")
  223. {
  224. entity.STAll += Convert.ToDecimal(item.STIValue);
  225. }
  226. else
  227. {
  228. entity.STAll -= Convert.ToDecimal(item.STIValue);
  229. }
  230. if (string.IsNullOrEmpty(keyValue))
  231. {
  232. item.USId = entity.USId;
  233. sal_UserSalaryItemIBLL.SaveEntity("", item);
  234. }
  235. else
  236. {
  237. sal_UserSalaryItemIBLL.SaveEntity(keyValue, item);
  238. }
  239. }
  240. }
  241. sal_UserSalaryIBLL.SaveEntity(keyValue, entity);
  242. return Success("保存成功!");
  243. }
  244. #endregion
  245. #region 获取模板
  246. /// <summary>
  247. /// 下载工资导入模板
  248. /// </summary>
  249. [HttpPost]
  250. [ValidateAntiForgeryToken]
  251. public void DownTemplate()
  252. {
  253. //设置导出格式
  254. ExcelConfig excelConfig=new ExcelConfig();
  255. excelConfig.FileName = "工资导入模板.xls";
  256. excelConfig.IsAllSizeColumn = true;
  257. excelConfig.ColumnEntity=new List<ColumnModel>();
  258. //获取工资列
  259. var itemList = sal_UserSalaryIBLL.GetAllTemplateInfo();
  260. //表头
  261. DataTable dt=new DataTable();
  262. excelConfig.ColumnEntity.Add(new ColumnModel()
  263. {
  264. Column = "姓名",
  265. ExcelColumn = "姓名",
  266. Alignment = "center",
  267. Background = new Color()
  268. });
  269. dt.Columns.Add("姓名", typeof(string));
  270. excelConfig.ColumnEntity.Add(new ColumnModel()
  271. {
  272. Column = "发放时间",
  273. ExcelColumn = "发放时间",
  274. Alignment = "center",
  275. Background = new Color()
  276. });
  277. dt.Columns.Add("发放时间", typeof(string));
  278. foreach (var item in itemList)
  279. {
  280. excelConfig.ColumnEntity.Add(new ColumnModel()
  281. {
  282. Column = item.STIName,
  283. ExcelColumn = item.STIName,
  284. Alignment = "center",
  285. Background = new Color()
  286. });
  287. dt.Columns.Add(item.STIName, typeof(string));
  288. }
  289. ExcelHelper.ExcelDownload(dt, excelConfig);
  290. }
  291. #endregion
  292. }
  293. }