SystemController.cs 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228
  1. using OASystem.Domain.Dtos.System;
  2. using Org.BouncyCastle.Asn1.Cms;
  3. using System.Collections;
  4. using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels;
  5. namespace OASystem.API.Controllers
  6. {
  7. /// <summary>
  8. /// 系统设置
  9. /// </summary>
  10. //[Authorize]
  11. [Route("api/[controller]/[action]")]
  12. public class SystemController : ControllerBase
  13. {
  14. private readonly CompanyRepository _syscomRep;
  15. private readonly DepartmentRepository _sysDepRep;
  16. private readonly UsersRepository _userRep;
  17. private readonly IMapper _mapper;
  18. private readonly MessageRepository _messageRep;
  19. private readonly SetDataRepository _setDataRepository;
  20. private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository;
  21. private readonly CompanyRepository _CompanyRepository;
  22. private readonly PageFunctionPermissionRepository _PageFunctionPermissionRepository;
  23. private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
  24. private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
  25. private readonly JobPostRepository _jobRep;
  26. private readonly UserAuthorityRepository _UserAuthorityRepository;
  27. public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
  28. IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
  29. SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
  30. SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository,
  31. JobPostRepository jobRep,UserAuthorityRepository userAuthorityRepository, MessageRepository messageRep)
  32. {
  33. _syscomRep = syscom;
  34. _sysDepRep = sysDepRep;
  35. _messageRep = messageRep;
  36. _userRep = userRep;
  37. _mapper = mapper;
  38. _setDataRepository = setDataRepository;
  39. _CompanyRepository = companyRepository;
  40. _SystemMenuPermissionRepository = systemMenuPermissionRepository;
  41. _PageFunctionPermissionRepository = pageFunctionPermissionRepository;
  42. _SystemMenuAndFunctionRepository = systemMenuAndFunctionRepository;
  43. _JobPostAuthorityRepository = jobPostAuthorityRepository;
  44. _UserAuthorityRepository = userAuthorityRepository;
  45. _jobRep = jobRep;
  46. }
  47. #region 消息
  48. /// <summary>
  49. /// 获取消息列表
  50. /// </summary>
  51. /// <param name="dto"></param>
  52. /// <returns></returns>
  53. [HttpPost]
  54. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  55. public async Task<IActionResult> GetMsgList(MsgDto dto)
  56. {
  57. var msgData = await _messageRep.GetMsgList(dto);
  58. if (msgData.Code != 0)
  59. {
  60. return Ok(JsonView(false, msgData.Msg));
  61. }
  62. return Ok(JsonView(true, msgData.Data));
  63. }
  64. /// <summary>
  65. /// 获取消息详细信息
  66. /// </summary>
  67. /// <param name="dto"></param>
  68. /// <returns></returns>
  69. [HttpPost]
  70. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  71. public async Task<IActionResult> GetMsgInfo(MsgInfoDto dto)
  72. {
  73. var msgData = await _messageRep.GetMsgInfo(dto);
  74. if (msgData.Code != 0)
  75. {
  76. return Ok(JsonView(false, msgData.Msg));
  77. }
  78. return Ok(JsonView(true, msgData.Data));
  79. }
  80. /// <summary>
  81. /// 消息设置已读
  82. /// </summary>
  83. /// <param name="dto"></param>
  84. /// <returns></returns>
  85. [HttpPost]
  86. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  87. public async Task<IActionResult> SetMessageRead(MsgSetReadDto dto)
  88. {
  89. var msgData = await _messageRep.SetMsgRead(dto);
  90. if (msgData.Code != 0)
  91. {
  92. return Ok(JsonView(false, msgData.Msg));
  93. }
  94. return Ok(JsonView(true, msgData.Data));
  95. }
  96. /// <summary>
  97. /// 消息设置已读
  98. /// </summary>
  99. /// <param name="dto"></param>
  100. /// <returns></returns>
  101. [HttpPost]
  102. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  103. public async Task<IActionResult> DeleMsg(MsgDeleteDto dto)
  104. {
  105. var msgData = await _messageRep.DelMsg(dto);
  106. if (msgData.Code != 0)
  107. {
  108. return Ok(JsonView(false, msgData.Msg));
  109. }
  110. return Ok(JsonView(true, msgData.Data));
  111. }
  112. #endregion
  113. #region 类型表
  114. /// <summary>
  115. /// 查询类型数据
  116. /// </summary>
  117. /// <param name="dto"></param>
  118. /// <returns></returns>
  119. [HttpPost]
  120. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  121. public async Task<IActionResult> QuerSetData(SetDataDto dto)
  122. {
  123. try
  124. {
  125. if (dto.DataType==0)
  126. {
  127. return Ok(JsonView(false, "请传类型Id!"));
  128. }
  129. var setData = _setDataRepository.QueryDto<Sys_SetData, SetDataView>(s=>s.STid==dto.DataType).ToList();
  130. if (setData.Count == 0)
  131. {
  132. return Ok(JsonView(false, "暂无数据!"));
  133. }
  134. return Ok(JsonView(true, "查询成功!",setData));
  135. }
  136. catch (Exception ex)
  137. {
  138. return Ok(JsonView(false, "程序错误!"));
  139. throw;
  140. }
  141. }
  142. #endregion
  143. #region 企业操作
  144. /// <summary>
  145. /// 查询企业数据
  146. /// </summary>
  147. /// <param name="dto"></param>
  148. /// <returns></returns>
  149. [HttpPost]
  150. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  151. public async Task<IActionResult> getCompanyList(DtoBase dto)
  152. {
  153. try
  154. {
  155. if (dto.PortType == 1)
  156. {
  157. var CompanyDataResult = _CompanyRepository.GetCompanyData();
  158. if (CompanyDataResult.Code != 0)
  159. {
  160. return Ok(JsonView(CompanyDataResult.Msg));
  161. }
  162. List<CompanyView> companyListView = _mapper.Map<List<CompanyView>>(CompanyDataResult.Data);
  163. for (int i = 0; i < companyListView.Count; i++)
  164. {
  165. if (companyListView[i].ParentCompanyId != 0)
  166. {
  167. companyListView[i].ParentCompanyName = companyListView.Find(x => x.Id == companyListView[i].ParentCompanyId).CompanyName;
  168. }
  169. if (companyListView[i].ContactUserId!=0)
  170. {
  171. var user = _userRep.QueryDto<Sys_Users,UserInfoWebView>(x => x.Id == companyListView[i].ContactUserId).ToList();
  172. if (user.Count!=0)
  173. {
  174. companyListView[i].ContactUserName = user[0].CnName;
  175. }
  176. }
  177. }
  178. return Ok(JsonView(true, "查询成功!", companyListView));
  179. }
  180. else if (dto.PortType == 2)
  181. {
  182. var CompanyDataResult = _CompanyRepository.GetCompanyData();
  183. if (CompanyDataResult.Code != 0)
  184. {
  185. return Ok(JsonView(CompanyDataResult.Msg));
  186. }
  187. return Ok(JsonView(true,"查询成功!", CompanyDataResult.Data));
  188. }
  189. else if (dto.PortType == 3)
  190. {
  191. return Ok(JsonView(false, "暂无数据!"));
  192. }
  193. else
  194. {
  195. return Ok(JsonView(false, "暂无数据!"));
  196. }
  197. }
  198. catch (Exception ex)
  199. {
  200. return Ok(JsonView(false, "程序错误!"));
  201. throw;
  202. }
  203. }
  204. /// <summary>
  205. /// 添加企业数据
  206. /// </summary>
  207. /// <param name="dto"></param>
  208. /// <returns></returns>
  209. [HttpPost]
  210. [ProducesResponseType(typeof(JsonView),StatusCodes.Status200OK)]
  211. public async Task<IActionResult> AddCompany(AddCompanyDto dto)
  212. {
  213. try
  214. {
  215. if (string.IsNullOrWhiteSpace(dto.CompanyName) || dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.CompanyCode))
  216. {
  217. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  218. }
  219. else if (string.IsNullOrWhiteSpace(dto.Tel))
  220. {
  221. return Ok(JsonView(false, "请检查联系方式是否输入正确!"));
  222. }
  223. else
  224. {
  225. Sys_Company _Company = _mapper.Map<Sys_Company>(dto);
  226. int id = await _syscomRep.AddAsyncReturnId(_Company);
  227. if (id == 0)
  228. {
  229. return Ok(JsonView(false, "添加失败!"));
  230. }
  231. return Ok(JsonView(true,"添加成功", new { Id = id }));
  232. }
  233. }
  234. catch (Exception)
  235. {
  236. return Ok(JsonView(false, "程序错误!"));
  237. throw;
  238. }
  239. }
  240. /// <summary>
  241. /// 企业修改
  242. /// </summary>
  243. /// <param name="dto"></param>
  244. /// <returns></returns>
  245. [HttpPost]
  246. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  247. public async Task<IActionResult>EditCompany(EditCompanyDto dto)
  248. {
  249. try
  250. {
  251. if (string.IsNullOrWhiteSpace(dto.CompanyName) || string.IsNullOrWhiteSpace(dto.CompanyCode) || string.IsNullOrWhiteSpace(dto.Address) || dto.ContactUserId == 0)
  252. {
  253. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  254. }
  255. else if (string.IsNullOrWhiteSpace(dto.Tel))
  256. {
  257. return Ok(JsonView(false, "请检查联系方式是否输入正确!"));
  258. }
  259. else
  260. {
  261. bool res = await _syscomRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Company
  262. {
  263. CompanyName = dto.CompanyName,
  264. CompanyCode = dto.CompanyCode,
  265. Address = dto.Address,
  266. ParentCompanyId = dto.ParentCompanyId,
  267. Tel = dto.Tel,
  268. ContactUserId = dto.ContactUserId,
  269. Remark=dto.Remark,
  270. });
  271. if (!res) { return Ok(JsonView(false, "修改失败")); }
  272. return Ok(JsonView(true,"修改成功!"));
  273. }
  274. }
  275. catch (Exception)
  276. {
  277. return Ok(JsonView(false, "程序错误!"));
  278. throw;
  279. }
  280. }
  281. /// <summary>
  282. /// 企业删除
  283. /// </summary>
  284. /// <param name="dto"></param>
  285. /// <returns></returns>
  286. [HttpPost]
  287. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  288. public async Task<IActionResult> DelCompany(DelCompanyDto dto)
  289. {
  290. try
  291. {
  292. bool res = await _syscomRep.SoftDeleteAsync<Sys_Company>(dto.Id.ToString());
  293. if (!res) { return Ok(JsonView(false, "删除失败")); }
  294. return Ok(JsonView(true, "删除成功"));
  295. }
  296. catch (Exception)
  297. {
  298. return Ok(JsonView(false, "程序错误!"));
  299. throw;
  300. }
  301. }
  302. #endregion
  303. #region 部门操作
  304. /// <summary>
  305. /// 查询部门数据
  306. /// </summary>
  307. /// <param name="dto"></param>
  308. /// <returns></returns>
  309. [HttpPost]
  310. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  311. public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
  312. {
  313. try
  314. {
  315. if (dto.PortType==1)
  316. {
  317. if (dto.CompanyId!=0)
  318. {
  319. var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
  320. if (result.Count == 0)
  321. {
  322. return Ok(JsonView(false, "暂无数据!"));
  323. }
  324. for (int i = 0; i < result.Count; i++)
  325. {
  326. if (result[i].ParentDepId != 0)
  327. {
  328. result[i].ParentDepName = result.Find(x => x.Id == result[i].ParentDepId).ParentDepName;
  329. }
  330. var company = _sysDepRep.QueryDto<Sys_Company, CompanyView>(s => s.Id == result[i].CompanyId).ToList();
  331. if (company.Count != 0)
  332. {
  333. result[i].CompanyName = company[0].CompanyName;
  334. }
  335. return Ok(JsonView(true, "查询成功!", result));
  336. }
  337. }
  338. else
  339. {
  340. var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.IsDel <=1).ToList();
  341. if (result.Count == 0)
  342. {
  343. return Ok(JsonView(false, "暂无数据!"));
  344. }
  345. for (int i = 0; i < result.Count; i++)
  346. {
  347. if (result[i].ParentDepId != 0)
  348. {
  349. result[i].ParentDepName = result.Find(x => x.Id == result[i].ParentDepId).ParentDepName;
  350. }
  351. var company = _sysDepRep.QueryDto<Sys_Company, CompanyView>(s => s.Id == result[i].CompanyId).ToList();
  352. if (company.Count != 0)
  353. {
  354. result[i].CompanyName = company[0].CompanyName;
  355. }
  356. }
  357. return Ok(JsonView(true, "查询成功!", result));
  358. }
  359. return Ok(JsonView(false, "暂无数据!"));
  360. }
  361. else if (dto.PortType==2)
  362. {
  363. var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
  364. if (result.Count == 0)
  365. {
  366. return Ok(JsonView(false, "暂无数据!"));
  367. }
  368. return Ok(JsonView(true,"查询成功!",result));
  369. }
  370. else if (dto.PortType == 3)
  371. {
  372. return Ok(JsonView(false, "暂无数据!"));
  373. }
  374. else
  375. {
  376. return Ok(JsonView(false, "暂无数据!"));
  377. }
  378. }
  379. catch (Exception ex)
  380. {
  381. return Ok(JsonView(false, "程序错误!"));
  382. throw;
  383. }
  384. }
  385. /// <summary>
  386. /// 部门添加
  387. /// </summary>
  388. /// <param name="dto"></param>
  389. /// <returns></returns>
  390. [HttpPost]
  391. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  392. public async Task<IActionResult> AddDepartment(AddDepartmentDto dto)
  393. {
  394. try
  395. {
  396. if (dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode))
  397. {
  398. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  399. }
  400. else
  401. {
  402. Sys_Department _Department = _mapper.Map<Sys_Department>(dto);
  403. int id = await _sysDepRep.AddAsyncReturnId(_Department);
  404. if (id == 0)
  405. {
  406. return Ok(JsonView(false, "添加失败!"));
  407. }
  408. return Ok(JsonView(true, "添加成功!", new { Id = id }));
  409. }
  410. }
  411. catch (Exception)
  412. {
  413. return Ok(JsonView(false, "程序错误!"));
  414. throw;
  415. }
  416. }
  417. /// <summary>
  418. /// 部门修改
  419. /// </summary>
  420. /// <param name="dto"></param>
  421. /// <returns></returns>
  422. [HttpPost]
  423. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  424. public async Task<IActionResult> EditDepartment(EditDepartmentDto dto)
  425. {
  426. try
  427. {
  428. if (dto.Id==0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode))
  429. {
  430. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  431. }
  432. else
  433. {
  434. bool res = await _sysDepRep.UpdateAsync<Sys_Department>(a => a.Id == dto.Id, a => new Sys_Department
  435. {
  436. CompanyId=dto.CompanyId,
  437. DepCode=dto.DepCode,
  438. DepName=dto.DepName,
  439. ParentDepId=dto.ParentDepId,
  440. Remark=dto.Remark,
  441. });
  442. if (!res)
  443. {
  444. return Ok(JsonView(false, "修改失败!"));
  445. }
  446. return Ok(JsonView(true, "修改成功!"));
  447. }
  448. }
  449. catch (Exception)
  450. {
  451. return Ok(JsonView(false, "程序错误!"));
  452. throw;
  453. }
  454. }
  455. /// <summary>
  456. /// 部门删除
  457. /// </summary>
  458. /// <param name="dto"></param>
  459. /// <returns></returns>
  460. [HttpPost]
  461. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  462. public async Task<IActionResult> DelDepartment(DelDepartmentDto dto)
  463. {
  464. try
  465. {
  466. if (dto.Id == 0)
  467. {
  468. return Ok(JsonView(-1, "请检查信息是否输入完整!", null));
  469. }
  470. else
  471. {
  472. bool res =await _sysDepRep.SoftDeleteAsync<Sys_Department>(dto.Id.ToString());
  473. if (!res)
  474. {
  475. return Ok(JsonView(false, "删除失败!"));
  476. }
  477. return Ok(JsonView(true, "删除成功!"));
  478. }
  479. }
  480. catch (Exception)
  481. {
  482. return Ok(JsonView(false, "程序错误!"));
  483. throw;
  484. }
  485. }
  486. #endregion
  487. #region 岗位板块
  488. /// <summary>
  489. /// 岗位查询
  490. /// </summary>
  491. /// <param name="dto"></param>
  492. /// <returns></returns>
  493. [HttpPost]
  494. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  495. public async Task<IActionResult> QueryJobPost(QueryJobPostDto dto)
  496. {
  497. try
  498. {
  499. if (dto.PortType == 1)
  500. {
  501. string sqlWhere = string.Empty;
  502. if (dto.CompanyId != 0)
  503. {
  504. sqlWhere += string.Format(@" And jp.CompanyId={0}", dto.CompanyId);
  505. }
  506. if (dto.DepId != 0)
  507. {
  508. sqlWhere += string.Format(@" And jp.DepId={0}", dto.DepId);
  509. }
  510. if (!string.IsNullOrEmpty(sqlWhere.Trim()))
  511. {
  512. Regex r = new Regex("And");
  513. sqlWhere = r.Replace(sqlWhere, "Where", 1);
  514. }
  515. List<Sys_JobPostI> jobList = await _jobRep.QueryJobPost(sqlWhere);
  516. List<JobPostView> List = _mapper.Map<List<JobPostView>>(jobList);
  517. if (jobList.Count == 0)
  518. {
  519. return Ok(JsonView(false, "暂无数据!"));
  520. }
  521. return Ok(JsonView(true, "查询成功!", jobList));
  522. }
  523. else if (dto.PortType == 2)
  524. {
  525. var result = _jobRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId==dto.DepId).ToList();
  526. if (result.Count == 0)
  527. {
  528. return Ok(JsonView(false, "暂无数据!"));
  529. }
  530. return Ok(JsonView(true, "查询成功!", result));
  531. }
  532. else if (dto.PortType == 3)
  533. {
  534. return Ok(JsonView(false, "暂无数据!"));
  535. }
  536. else
  537. {
  538. return Ok(JsonView(false, "暂无数据!"));
  539. }
  540. }
  541. catch (Exception ex)
  542. {
  543. return Ok(JsonView(false, "程序错误!"));
  544. throw;
  545. }
  546. }
  547. /// <summary>
  548. /// 添加岗位
  549. /// </summary>
  550. /// <param name="dto"></param>
  551. /// <returns></returns>
  552. [HttpPost]
  553. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  554. public async Task<IActionResult> AddJobPost(AddJobPostDto dto)
  555. {
  556. try
  557. {
  558. Sys_JobPost sys_Job = _mapper.Map<Sys_JobPost>(dto);
  559. int id = await _jobRep.AddAsyncReturnId(sys_Job);
  560. if (id == 0)
  561. {
  562. return Ok(JsonView(false, "添加失败"));
  563. }
  564. return Ok(JsonView(true, "添加成功", new { Id = id }));
  565. }
  566. catch (Exception ex)
  567. {
  568. return Ok(JsonView(false, "程序错误!"));
  569. throw;
  570. }
  571. }
  572. /// <summary>
  573. /// 修改岗位
  574. /// </summary>
  575. /// <param name="dto"></param>
  576. /// <returns></returns>
  577. [HttpPost]
  578. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  579. public async Task<IActionResult> EditJobPost(EditJobPostDto dto)
  580. {
  581. try
  582. {
  583. bool res = await _jobRep.UpdateAsync<Sys_JobPost>(a=>a.Id==dto.Id,a =>new Sys_JobPost
  584. {
  585. CompanyId=dto.CompanyId,
  586. DepId=dto.DepId,
  587. JobName=dto.JobName,
  588. Remark=dto.Remark,
  589. });
  590. if (!res)
  591. {
  592. return Ok(JsonView(false, "修改失败"));
  593. }
  594. return Ok(JsonView(true, "修改成功"));
  595. }
  596. catch (Exception ex)
  597. {
  598. return Ok(JsonView(false, "程序错误!"));
  599. throw;
  600. }
  601. }
  602. /// <summary>
  603. /// 删除岗位
  604. /// </summary>
  605. /// <param name="dto"></param>
  606. /// <returns></returns>
  607. [HttpPost]
  608. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  609. public async Task<IActionResult> DelJobPost(DelJobPostDto dto)
  610. {
  611. try
  612. {
  613. bool res = await _jobRep.SoftDeleteAsync<Sys_JobPost>(dto.Id.ToString());
  614. if (!res)
  615. {
  616. return Ok(JsonView(false, "删除失败!"));
  617. }
  618. return Ok(JsonView(true, "删除成功"));
  619. }
  620. catch (Exception)
  621. {
  622. return Ok(JsonView(false, "程序错误!"));
  623. throw;
  624. }
  625. }
  626. #endregion
  627. #region 用户操作
  628. /// <summary>
  629. /// 查询所有员工(web)
  630. /// </summary>
  631. /// <param name="dto"></param>
  632. /// <returns></returns>
  633. //[OASystemAuthentication]
  634. [HttpPost]
  635. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  636. public async Task<IActionResult> GetUserList(DtoBase dto)
  637. {
  638. try
  639. {
  640. var result = _userRep.GetUserList(dto.PortType, string.Empty);
  641. if (result.Result.Code != 0)
  642. {
  643. return Ok(JsonView(false, "暂无数据!"));
  644. }
  645. return Ok(JsonView(true, "查询成功!", result.Result.Data));
  646. }
  647. catch (Exception)
  648. {
  649. return Ok(JsonView(false, "程序错误!"));
  650. throw;
  651. }
  652. }
  653. /// <summary>
  654. /// 查询用户数据
  655. /// </summary>
  656. /// <param name="dto"></param>
  657. /// <returns></returns>
  658. [HttpPost]
  659. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  660. public async Task<IActionResult> QueryUserList(UserDto dto)
  661. {
  662. try
  663. {
  664. string sqlWhere = string.Empty;
  665. if (dto.CompanyId!=0)
  666. {
  667. sqlWhere += string.Format(@" And su.CompanyId={0}", dto.CompanyId);
  668. }
  669. if (dto.DepId != 0)
  670. {
  671. sqlWhere += string.Format(@" And su.DepId={0}", dto.DepId);
  672. }
  673. if (dto.JobPostId != 0)
  674. {
  675. sqlWhere += string.Format(@" And su.JobPostId={0}", dto.JobPostId);
  676. }
  677. if (!string.IsNullOrEmpty(sqlWhere.Trim()))
  678. {
  679. Regex r = new Regex("And");
  680. sqlWhere = r.Replace(sqlWhere, "Where", 1);
  681. }
  682. List<UserInfo> _userList =await _userRep.QueryUser(sqlWhere);
  683. if (_userList.Count == 0)
  684. {
  685. return Ok(JsonView(false, "暂无数据!"));
  686. }
  687. List<UserInfoWebView> userList = _mapper.Map<List<UserInfoWebView>>(_userList);
  688. return Ok(JsonView(true,"查询成功!", userList));
  689. }
  690. catch (Exception)
  691. {
  692. return Ok(JsonView(false, "程序错误!"));
  693. throw;
  694. }
  695. }
  696. /// <summary>
  697. /// 修改用户信息(上级修改/分配 公司、部门、岗位、工号等信息)
  698. /// </summary>
  699. /// <param name="dto"></param>
  700. /// <returns></returns>
  701. [HttpPost]
  702. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  703. public async Task<IActionResult> EditUser(EditUserDto dto)
  704. {
  705. try
  706. {
  707. bool res = await _userRep.UpdateAsync<Sys_Users>(a => a.Id == dto.Id, a => new Sys_Users
  708. {
  709. Number = dto.Number,
  710. CompanyId = dto.CompanyId,
  711. DepId = dto.DepId,
  712. JobPostId = dto.JobPostId,
  713. Ext = dto.Ext,
  714. UsePeriod = dto.UsePeriod,
  715. HrAudit = dto.HrAudit
  716. });
  717. if (!res)
  718. {
  719. return Ok(JsonView(false, "修改失败!"));
  720. }
  721. return Ok(JsonView(true, "修改成功!"));
  722. }
  723. catch (Exception)
  724. {
  725. return Ok(JsonView(false, "程序错误!"));
  726. throw;
  727. }
  728. }
  729. /// <summary>
  730. /// 修改用户信息(登录用户修改个人信息)
  731. /// </summary>
  732. /// <param name="dto"></param>
  733. /// <returns></returns>
  734. [HttpPost]
  735. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  736. public async Task<IActionResult> EditMyUser(EditMyUserDto dto)
  737. {
  738. try
  739. {
  740. if (string.IsNullOrWhiteSpace(dto.CnName) || string.IsNullOrWhiteSpace(dto.Address) || string.IsNullOrWhiteSpace(dto.IDCard) || dto.Sex != 0 && dto.Sex != 1 ||
  741. string.IsNullOrWhiteSpace(dto.MaritalStatus) || string.IsNullOrWhiteSpace(dto.HomeAddress)|| dto.Birthday>=DateTime.Now.AddYears(-1))
  742. {
  743. return Ok(JsonView(false, "请完善你的个人信息!"));
  744. }
  745. else if (string.IsNullOrWhiteSpace(dto.GraduateInstitutions) || string.IsNullOrWhiteSpace(dto.Professional) || dto.Education == 0 || string.IsNullOrWhiteSpace(dto.GraduateInstitutions))
  746. {
  747. return Ok(JsonView(false, "请完善你的学历信息!"));
  748. }
  749. else if (string.IsNullOrWhiteSpace(dto.Phone) || string.IsNullOrWhiteSpace(dto.UrgentPhone) || string.IsNullOrWhiteSpace(dto.Email))
  750. {
  751. return Ok(JsonView(false, "请检查联系方式、紧急联系人及邮箱输写是否正确!"));
  752. }
  753. else
  754. {
  755. bool res = await _userRep.UpdateAsync<Sys_Users>(a => a.Id == dto.Id, a => new Sys_Users
  756. {
  757. CnName = dto.CnName,
  758. EnName = dto.EnName,
  759. Sex = dto.Sex,
  760. Phone = dto.Phone,
  761. UrgentPhone = dto.UrgentPhone,
  762. Email = dto.Email,
  763. Address = dto.Address,
  764. Edate = dto.Edate,
  765. Birthday = dto.Birthday,
  766. IDCard = dto.IDCard,
  767. GraduateInstitutions = dto.GraduateInstitutions,
  768. Professional = dto.Professional,
  769. Education = dto.Education,
  770. TheOrAdultEducation = dto.TheOrAdultEducation,
  771. MaritalStatus = dto.MaritalStatus,
  772. HomeAddress = dto.HomeAddress,
  773. WorkExperience = dto.WorkExperience,
  774. Certificate = dto.Certificate
  775. });
  776. if (!res)
  777. {
  778. return Ok(JsonView(false, "修改失败!"));
  779. }
  780. return Ok(JsonView(true, "修改成功!"));
  781. }
  782. }
  783. catch (Exception)
  784. {
  785. return Ok(JsonView(false, "程序错误!"));
  786. throw;
  787. }
  788. }
  789. #endregion
  790. #region 权限模块
  791. /// <summary>
  792. /// 权限数据页面初始化
  793. /// </summary>
  794. /// <param name="dto"></param>
  795. /// <returns></returns>
  796. //[Authorize]
  797. [HttpPost]
  798. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  799. public async Task<IActionResult> GetAuth(AuthDto dto)
  800. {
  801. Result result = new Result();
  802. //模块数据
  803. var setDataResult = await _setDataRepository.GetSySDefultModule();
  804. if (setDataResult.Code != 0)
  805. {
  806. return Ok(JsonView(setDataResult.Msg));
  807. }
  808. //操作方式
  809. var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
  810. //获取所有关联页面
  811. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  812. //页面数据
  813. var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x=>x.Mid == dto.moduleId).ToList();
  814. if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
  815. {
  816. return Ok(JsonView("暂无数据"));
  817. }
  818. ArrayList viewData = new ArrayList();
  819. //组合页面数据
  820. foreach (var item in SystemMenuPermissionData)
  821. {
  822. ArrayList ids = new ArrayList();
  823. foreach (var viewop in PageOperation)
  824. {
  825. var op = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.SmId == item.Id && x.FId == viewop.Id);
  826. if (op != null)
  827. {
  828. ids.Add(viewop.Id);
  829. }
  830. }
  831. viewData.Add(new
  832. {
  833. Id = item.Id,
  834. Mid = item.Mid,
  835. Name = item.Name,
  836. SystemMenuCode = item.SystemMenuCode,
  837. opList = ids,
  838. selList = new string[0]
  839. }) ;
  840. }
  841. //公司数据
  842. var CompanyDataResult = _CompanyRepository.GetCompanyData();
  843. if (CompanyDataResult.Code != 0)
  844. {
  845. return Ok(JsonView(CompanyDataResult.Msg));
  846. }
  847. result.Code = 0;
  848. result.Msg = "成功!";
  849. var Dyresult = new
  850. {
  851. setDataResult = setDataResult.Data,
  852. CompanyDataResult = CompanyDataResult.Data,
  853. SystemMenuPermissionData = viewData,
  854. PageOperation = PageOperation,
  855. };
  856. return Ok(JsonView(200, "成功!", Dyresult));
  857. }
  858. /// <summary>
  859. /// 获取职务权限
  860. /// </summary>
  861. /// <param name="dto"></param>
  862. /// <returns></returns>
  863. [HttpPost]
  864. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  865. public IActionResult QueryJobAuth(QueryJobAuthDto dto)
  866. {
  867. //选中的操作权限
  868. var DBdata = _JobPostAuthorityRepository.QueryDto<Sys_JobPostAuthority, JobPostAuthorityView>(x=>x.JpId == dto.jobid).ToList();
  869. var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x => x.Mid == dto.moduleId).ToList();
  870. if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
  871. {
  872. return Ok(JsonView("暂无数据"));
  873. }
  874. //所有操作
  875. var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
  876. //获取所有关联页面
  877. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  878. ArrayList viewData = new ArrayList();
  879. //组合页面数据
  880. foreach (var item in SystemMenuPermissionData)
  881. {
  882. ArrayList ids = new ArrayList();
  883. foreach (var viewop in PageOperation)
  884. {
  885. var op = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.SmId == item.Id && x.FId == viewop.Id);
  886. if (op != null)
  887. {
  888. ids.Add(viewop.Id);
  889. }
  890. }
  891. //获取本职务的页面拥有的权限
  892. var DBwhere = DBdata.Where(x => x.SmId == item.Id && x.JpId == dto.jobid).ToList();
  893. viewData.Add(new
  894. {
  895. Id = item.Id,
  896. Mid = item.Mid,
  897. Name = item.Name,
  898. SystemMenuCode = item.SystemMenuCode,
  899. opList = ids,
  900. selList = DBwhere.Select(x => x.FId)
  901. }) ;
  902. }
  903. return Ok(JsonView(200, "成功!", viewData));
  904. }
  905. /// <summary>
  906. /// 保存岗位权限
  907. /// </summary>
  908. /// <param name="dto"></param>
  909. /// <returns></returns>
  910. [HttpPost]
  911. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  912. public async Task<IActionResult> SaveJobAuth(SaveJobDto dto)
  913. {
  914. //获取所有关联页面
  915. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  916. List<Sys_JobPostAuthority> adds = new List<Sys_JobPostAuthority>();
  917. foreach (var item in dto.Savejobs)
  918. {
  919. foreach (var fid in item.FIds)
  920. {
  921. var whereobj = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.FId == fid && x.SmId == item.SmId);
  922. if (whereobj != null)
  923. {
  924. adds.Add(new Sys_JobPostAuthority
  925. {
  926. CreateTime = DateTime.Now,
  927. CreateUserId = 245,
  928. FId = fid,
  929. JpId = dto.Jpid,
  930. SmId = item.SmId
  931. });
  932. }
  933. }
  934. }
  935. _JobPostAuthorityRepository.BeginTran();
  936. try
  937. { //删除岗位
  938. bool isdel = await _JobPostAuthorityRepository.DeleteAsync<Sys_JobPostAuthority>(x => x.JpId == dto.Jpid);
  939. int UpRows = _JobPostAuthorityRepository.Adds<Sys_JobPostAuthority>(adds);
  940. //获取所有职位员工
  941. var jobUserAll = await QueryUserList(new UserDto { PortType = 2, JobPostId = dto.Jpid });
  942. List<UserInfoWebView> users = null;
  943. var QueryUserListApiResult = (((jobUserAll as OkObjectResult).Value) as OASystem.Domain.ViewModels.JsonView);
  944. if (QueryUserListApiResult != null)
  945. {
  946. if (QueryUserListApiResult.Code == 200)
  947. {
  948. users = QueryUserListApiResult.Data as List<UserInfoWebView>;
  949. }
  950. }
  951. if (users != null && users.Count > 0)
  952. {
  953. List<Sys_UserAuthority> userAuth = null;
  954. foreach (var user in users)
  955. {
  956. //删除个人级岗位权限
  957. isdel = await _UserAuthorityRepository.DeleteAsync<Sys_UserAuthority>(x => x.IsTemp == 1 &&
  958. x.UId == user.Id);
  959. userAuth = adds.Select(x=> new Sys_UserAuthority
  960. {
  961. CreateTime = DateTime.Now,
  962. CreateUserId = 235,
  963. FId = x.FId,
  964. SmId = x.SmId,
  965. UId = user.Id,
  966. IsTemp = 1,
  967. }).ToList();
  968. //添加个人级别岗位
  969. int AddRows = _UserAuthorityRepository.Adds<Sys_UserAuthority>(userAuth);
  970. }
  971. }
  972. }
  973. catch (Exception ex)
  974. {
  975. _JobPostAuthorityRepository.RollbackTran();
  976. return Ok(JsonView("系统错误!"));
  977. }
  978. _JobPostAuthorityRepository.CommitTran();
  979. return Ok(JsonView(200, "成功", new { }));
  980. }
  981. /// <summary>
  982. /// 获取员工权限
  983. /// </summary>
  984. /// <param name="dto"></param>
  985. /// <returns></returns>
  986. [HttpPost]
  987. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  988. public IActionResult QueryUserAuth(QueryUserAuthDto dto)
  989. {
  990. //选中的员工操作权限
  991. var DBdata = _UserAuthorityRepository.QueryDto<Sys_UserAuthority, UserAuthorityView>(x => x.UId == dto.Userid).ToList();
  992. var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x => x.Mid == dto.moduleId).ToList();
  993. if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
  994. {
  995. return Ok(JsonView("暂无数据"));
  996. }
  997. //所有操作
  998. var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
  999. //获取所有关联页面
  1000. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  1001. ArrayList viewData = new ArrayList();
  1002. //组合页面数据
  1003. foreach (var item in SystemMenuPermissionData)
  1004. {
  1005. ArrayList ids = new ArrayList();
  1006. foreach (var viewop in PageOperation)
  1007. {
  1008. var op = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.SmId == item.Id && x.FId == viewop.Id);
  1009. if (op != null)
  1010. {
  1011. ids.Add(viewop.Id);
  1012. }
  1013. }
  1014. //获取本员工拥有的权限
  1015. var DBwhere = DBdata.Where(x => x.SmId == item.Id && x.UId == dto.Userid).ToList();
  1016. viewData.Add(new
  1017. {
  1018. Id = item.Id,
  1019. Mid = item.Mid,
  1020. Name = item.Name,
  1021. SystemMenuCode = item.SystemMenuCode,
  1022. opList = ids,
  1023. selList = DBwhere.Select(x => x.FId)
  1024. });
  1025. }
  1026. return Ok(JsonView(200, "成功!", viewData));
  1027. }
  1028. /// <summary>
  1029. /// 保存员工权限
  1030. /// </summary>
  1031. /// <param name="dto"></param>
  1032. /// <returns></returns>
  1033. [HttpPost]
  1034. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  1035. public async Task<IActionResult> SaveUserAuth(SaveUserDto dto)
  1036. {
  1037. //获取所有关联页面
  1038. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  1039. List<Sys_UserAuthority> adds = new List<Sys_UserAuthority>();
  1040. foreach (var item in dto.Savejobs)
  1041. {
  1042. foreach (var fid in item.FIds)
  1043. {
  1044. var whereobj = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.FId == fid && x.SmId == item.SmId);
  1045. if (whereobj != null)
  1046. {
  1047. adds.Add(new Sys_UserAuthority
  1048. {
  1049. CreateTime = DateTime.Now,
  1050. CreateUserId = 235,
  1051. FId = fid,
  1052. UId = dto.uid,
  1053. SmId = item.SmId,
  1054. IsTemp = 0
  1055. });
  1056. }
  1057. }
  1058. }
  1059. _JobPostAuthorityRepository.BeginTran();
  1060. try
  1061. {
  1062. List<Sys_UserAuthority> userAuth = null;
  1063. //删除个人级岗位权限
  1064. bool isdel = await _UserAuthorityRepository.DeleteAsync<Sys_UserAuthority>(x=> x.UId == dto.uid);
  1065. userAuth = adds.Select(x => new Sys_UserAuthority
  1066. {
  1067. CreateTime = DateTime.Now,
  1068. CreateUserId = 235,
  1069. FId = x.FId,
  1070. SmId = x.SmId,
  1071. UId = dto.uid,
  1072. IsTemp = 0,
  1073. }).ToList();
  1074. //添加个人级别岗位
  1075. int AddRows = _UserAuthorityRepository.Adds<Sys_UserAuthority>(userAuth);
  1076. }
  1077. catch (Exception ex)
  1078. {
  1079. _JobPostAuthorityRepository.RollbackTran();
  1080. return Ok(JsonView("系统错误!"));
  1081. }
  1082. _JobPostAuthorityRepository.CommitTran();
  1083. return Ok(JsonView(200, "成功", new { }));
  1084. }
  1085. #endregion
  1086. #region 页面配置
  1087. /// <summary>
  1088. /// 页面配置界面数据初始化
  1089. /// </summary>
  1090. /// <returns></returns>
  1091. //[Authorize]
  1092. [HttpPost]
  1093. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  1094. public async Task<IActionResult> PageConfigInit()
  1095. {
  1096. ArrayList arr = new ArrayList();
  1097. var viewList = await _setDataRepository.GetSetDataAndPageInfoBySTId();
  1098. if (viewList.Code != 0)
  1099. {
  1100. return Ok(JsonView(viewList.Msg));
  1101. }
  1102. var ModList = await _setDataRepository.GetSySDefultModule();
  1103. return Ok(JsonView(new
  1104. {
  1105. viewList,
  1106. ModList,
  1107. }));
  1108. }
  1109. [HttpPost]
  1110. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  1111. public IActionResult EditPageInfo()
  1112. {
  1113. return Ok(JsonView(""));
  1114. }
  1115. [HttpPost]
  1116. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  1117. public IActionResult AddPageInfo()
  1118. {
  1119. return Ok(JsonView(""));
  1120. }
  1121. #endregion
  1122. }
  1123. }