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