SystemController.cs 41 KB

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