index.ts 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. import { http } from '@/utils/http/axios';
  2. import type { QueryPageRequest, QueryPageResponse } from '@/types/basic-query';
  3. /**
  4. * 考核项目内容
  5. */
  6. export interface EvaluationContent {
  7. id: number;
  8. psemId: number;
  9. serialNum: number;
  10. exProgram: string; // 考核项目
  11. exContent: string; // 考核内容
  12. scoringWay: string; // 评分方式
  13. isAdd?: number; // 是否加分项(0-否,1-是)
  14. reviewUserId?: number | null; // 复评人ID
  15. reviewUserName?: string; // 复评人姓名
  16. }
  17. /**
  18. * 安全考核管理返回对象
  19. */
  20. export interface EvaluationSystemItem {
  21. id: number;
  22. exName: string; // 考核表名称
  23. attachments: string; // 考核文档
  24. ratingDescribe: string; // 评分说明
  25. deptNames: string; // 下发部门
  26. deptIds: string; // 下发部门ID
  27. planStartTime: string; // 计划开始时间
  28. planEndTime: string; // 计划结束时间
  29. status: number; // 状态(0-未下发/2-待反馈/3-待评分/4-待审核/5-已作废/1-已完成)
  30. statusName: string; // 状态名称
  31. createdUserId: number;
  32. createdUserName: string; // 创建人
  33. createdAt: string; // 创建时间
  34. updatedAt: string; // 更新时间
  35. isDeleted: number;
  36. exContents: EvaluationContent[]; // 考核项目列表
  37. }
  38. /**
  39. * 安全考核管理查询参数
  40. */
  41. export interface EvaluationSystemQueryParam {
  42. psemId?: number;
  43. exName?: string; // 考核表名称
  44. status?: number; // 状态
  45. deptName?: string; // 所属部门
  46. userName?: string;
  47. planStartTime?: string; // 计划开始时间
  48. planEndTime?: string; // 计划结束时间
  49. }
  50. /**
  51. * 查询安全考核管理列表
  52. */
  53. export function querySecurityExamine(query: QueryPageRequest<EvaluationSystemQueryParam>) {
  54. return http.request<QueryPageResponse<EvaluationSystemItem>>({
  55. url: '/securityExamine/admin/querySecurityExamine',
  56. method: 'post',
  57. data: query,
  58. });
  59. }
  60. /**
  61. * 导入考核项目详情
  62. */
  63. export function importSecurityExamineDet(formData: FormData) {
  64. return http.request<EvaluationContent[]>({
  65. url: '/securityExamine/admin/importSecurityExamineDet',
  66. method: 'post',
  67. data: formData,
  68. headers: {
  69. 'Content-Type': 'multipart/form-data',
  70. },
  71. });
  72. }
  73. /**
  74. * 保存安全考核管理请求参数
  75. */
  76. export interface SaveSecurityExamineRequest {
  77. id?: number; // 编辑时传ID,新增时为0或不传
  78. exName: string; // 考核表名称
  79. attachments: string; // 考核文档(附件URL字符串,多个用逗号分隔)
  80. ratingDescribe: string; // 评分说明
  81. deptNames?: string; // 下发部门
  82. deptIds?: number[]; // 下发部门ID数组
  83. getUserGroupId?: number;
  84. planStartTime?: string; // 计划开始时间
  85. planEndTime?: string; // 计划结束时间
  86. status: number; // 状态(0-未下发)
  87. createdUserId?: number; // 创建人ID
  88. createdUserName?: string; // 创建人名称
  89. exContents: EvaluationContent[]; // 考核项目列表
  90. }
  91. /**
  92. * 保存安全考核管理(新增/编辑)
  93. */
  94. export function saveSecurityExamine(data: SaveSecurityExamineRequest) {
  95. return http.request({
  96. url: '/securityExamine/admin/saveSecurityExamine',
  97. method: 'post',
  98. data,
  99. });
  100. }
  101. /**
  102. * 查询安全考核管理详情
  103. */
  104. export function querySecurityExamineDetail(id: number) {
  105. return http.request<EvaluationSystemItem>({
  106. url: `/securityExamine/admin/querySecurityExamineDetail`,
  107. method: 'get',
  108. params: { id },
  109. });
  110. }
  111. /**
  112. * 删除安全考核管理
  113. */
  114. export function deleteSecurityExamine(id: number) {
  115. return http.request({
  116. url: `/securityExamine/admin/deleteSecurityExamine?id=${id}`,
  117. method: 'delete',
  118. // params: { id },
  119. });
  120. }
  121. /**
  122. * 更新安全考核管理请求参数(编辑时使用)
  123. */
  124. export interface UpdateSecurityExamineRequest {
  125. id: number; // 必须传ID
  126. exName: string; // 考核表名称
  127. attachments: string; // 考核文档(附件URL字符串,多个用逗号分隔)
  128. ratingDescribe: string; // 评分说明
  129. deptNames?: string; // 下发部门
  130. deptIds?: number[]; // 下发部门ID数组
  131. getUserGroupId?: number;
  132. planStartTime?: string; // 计划开始时间
  133. planEndTime?: string; // 计划结束时间
  134. status: number; // 状态
  135. createdUserId?: number; // 创建人ID
  136. createdUserName?: string; // 创建人名称
  137. exContents: EvaluationContent[]; // 考核项目列表
  138. }
  139. /**
  140. * 更新安全考核管理(编辑)
  141. */
  142. export function updateSecurityExamine(data: UpdateSecurityExamineRequest) {
  143. return http.request({
  144. url: '/securityExamine/admin/updateSecurityExamine',
  145. method: 'put',
  146. data,
  147. });
  148. }
  149. /**
  150. * 下发安全考核表请求参数
  151. */
  152. export interface SaveSecurityExamineIssueRequest {
  153. id: number;
  154. deptNames: string; // 部门名称(逗号分隔)
  155. deptIds: number; // 部门ID(单个)
  156. getUserGroupId?: number; // 分组ID
  157. deptSelfApproveUserId?: number; // 部门自评审核人ID
  158. planStartTime?: string; // 计划开始时间
  159. planEndTime?: string; // 计划结束时间
  160. }
  161. /**
  162. * 下发安全考核表
  163. */
  164. export function saveSecurityExamineIssue(data: SaveSecurityExamineIssueRequest) {
  165. return http.request({
  166. url: '/securityExamine/admin/saveSecurityExamineIssue',
  167. method: 'post',
  168. data,
  169. });
  170. }
  171. /**
  172. * 考核对象评分项
  173. */
  174. export interface EvaluationScoreItem {
  175. id: number;
  176. psemId: number;
  177. psedId: number;
  178. pseiId: number;
  179. serialNum: number;
  180. exProgram: string; // 考核项目
  181. exContent: string; // 考核内容
  182. scoringWay: string; // 评分方式
  183. selfScore: number; // 自评分数
  184. attachments: string; // 附件
  185. reviewScore: number; // 审核分数
  186. isAdd?: number; // 是否加分项(0-否,1-是)
  187. createdAt: string;
  188. updatedAt: string;
  189. isDeleted: number;
  190. }
  191. /**
  192. * 考核对象列表项
  193. */
  194. export interface EvaluationTargetItem {
  195. id: number;
  196. psemId: number; // 考核表ID
  197. deptName: string; // 部门名称
  198. exName: string; // 考核表名称
  199. attachments: string; // 考核文档
  200. planEndTime: string; // 计划结束时间
  201. deptId: number; // 部门ID
  202. status: number; // 状态(0-未下发/2-待反馈/3-待评分/4-待审核/5-已作废/1-已完成)
  203. statusName: string; // 状态名称
  204. reviewRejectReson?: string; // 审核拒绝原因
  205. approveRejectReson?: string; // 审批拒绝原因
  206. deptUserId?: number; // 部门负责人ID
  207. deptUserName?: string; // 部门负责人姓名
  208. deptUserLink?: string; // 部门负责人联系方式
  209. reviewUserId?: number; // 审核人ID
  210. reviewUserName?: string; // 审核人姓名
  211. createdAt: string;
  212. updatedAt: string;
  213. isDeleted: number;
  214. scores?: EvaluationScoreItem[]; // 评分详情
  215. scoreRank?: number; // 排名
  216. }
  217. /**
  218. * 查询考核对象列表请求参数(queryParam)
  219. */
  220. export interface QuerySecurityExamineIssueQueryParam {
  221. psemId?: number; // 考核表ID(从路由参数获取)
  222. planStartTime?: string; // 计划开始时间
  223. planEndTime?: string; // 计划结束时间
  224. status?: number; // 状态(0-未下发/2-待反馈/3-待评分/4-待审核/5-已作废/1-已完成)
  225. deptName?: string; // 部门名称(考核对象)
  226. }
  227. /**
  228. * 查询考核对象列表请求参数
  229. */
  230. export interface QuerySecurityExamineIssueParams {
  231. pageNumber: number; // 页号
  232. pageSize: number; // 每页数量
  233. queryParam: QuerySecurityExamineIssueQueryParam; // 查询参数
  234. }
  235. /**
  236. * 查询考核对象列表
  237. */
  238. export function querySecurityExamineIssue(params: QuerySecurityExamineIssueParams) {
  239. return http.request<QueryPageResponse<EvaluationTargetItem>>({
  240. url: '/securityExamine/admin/querySecurityExamineIssue',
  241. method: 'post',
  242. data: params,
  243. });
  244. }
  245. /**
  246. * 作废安全考核表
  247. */
  248. export function updateSecurityExamineRepeal(id: number) {
  249. return http.request({
  250. url: `/securityExamine/admin/updateSecurityExamineRepeal?id=${id}`,
  251. method: 'put',
  252. });
  253. }
  254. /**
  255. * 作废考核对象
  256. */
  257. export function updateSecurityExamineIssueRepeal(id: number) {
  258. return http.request({
  259. url: `/securityExamine/admin/updateSecurityExamineIssueRepeal?id=${id}`,
  260. method: 'put',
  261. });
  262. }
  263. /**
  264. * 删除考核对象
  265. */
  266. export function deleteSecurityExamineIssue(id: number) {
  267. return http.request({
  268. url: `/securityExamine/admin/deleteSecurityExamineIssue?id=${id}`,
  269. method: 'delete',
  270. });
  271. }
  272. /**
  273. * 查询部门考核列表请求参数(queryParam)
  274. */
  275. export interface QuerySecurityExamineDeptQueryParam {
  276. exName?: string; // 考核表名称
  277. status?: number; // 状态
  278. deptName?: string; // 部门名称
  279. planStartTime?: string; // 计划开始时间
  280. planEndTime?: string; // 计划结束时间
  281. }
  282. /**
  283. * 查询部门考核列表请求参数
  284. */
  285. export interface QuerySecurityExamineDeptParams {
  286. pageNumber: number; // 页号
  287. pageSize: number; // 每页数量
  288. queryParam: QuerySecurityExamineDeptQueryParam; // 查询参数
  289. }
  290. /**
  291. * 查询部门考核列表
  292. */
  293. export function querySecurityExamineDept(params: QuerySecurityExamineDeptParams) {
  294. return http.request<QueryPageResponse<EvaluationTargetItem>>({
  295. url: '/securityExamine/dept/querySecurityExamineDept',
  296. method: 'post',
  297. data: params,
  298. });
  299. }
  300. /**
  301. * 查询部门考核详情
  302. */
  303. export function querySecurityExamineIssueDeptDetail(id: number) {
  304. return http.request<EvaluationTargetItem>({
  305. url: `/securityExamine/dept/querySecurityExamineIssueDeptDetail?id=${id}`,
  306. method: 'get',
  307. });
  308. }
  309. /**
  310. * 查询管理员端考核对象详情(用于评分)
  311. */
  312. export function querySecurityExamineIssueDetail(id: number) {
  313. return http.request<EvaluationTargetItem>({
  314. url: `/securityExamine/admin/querySecurityExamineIssueDetail?id=${id}`,
  315. method: 'get',
  316. });
  317. }
  318. /**
  319. * 提交部门考核反馈请求参数
  320. */
  321. export interface UpdateSecurityExamineDeptSubmitParams {
  322. id: number; // 考核表ID (psemId)
  323. scores: Array<{
  324. id?: number; // 评分项ID
  325. selfScore: number; // 自评得分
  326. }>;
  327. }
  328. /**
  329. * 提交部门考核反馈
  330. */
  331. export function updateSecurityExamineDeptSubmit(params: UpdateSecurityExamineDeptSubmitParams) {
  332. return http.request({
  333. url: '/securityExamine/dept/updateSecurityExamineDeptSubmit',
  334. method: 'put',
  335. data: params,
  336. });
  337. }
  338. /**
  339. * 导出部门考核详情
  340. */
  341. export function exportSecurityExamineIssueDeptDetail(id: number) {
  342. return http.request({
  343. url: '/securityExamine/dept/exportSecurityExamineIssueDeptDetail',
  344. method: 'post',
  345. data: { id },
  346. responseType: 'blob',
  347. });
  348. }
  349. /**
  350. * 导入部门考核详情
  351. */
  352. export function importSecurityExamineIssueDeptDetail(params: { id: number; file: File }) {
  353. const formData = new FormData();
  354. formData.append('id', String(params.id));
  355. formData.append('file', params.file);
  356. return http.request({
  357. url: '/securityExamine/dept/importSecurityExamineIssueDeptDetail',
  358. method: 'post',
  359. data: formData,
  360. headers: {
  361. 'Content-Type': 'multipart/form-data',
  362. },
  363. });
  364. }
  365. /**
  366. * 管理员端复核提交
  367. */
  368. export function updateSecurityExamineIssueReviewSubmit(params: UpdateSecurityExamineDeptSubmitParams) {
  369. return http.request({
  370. url: '/securityExamine/admin/updateSecurityExamineIssueReviewSubmit',
  371. method: 'put',
  372. data: params,
  373. });
  374. }
  375. /**
  376. * 管理员端复核通过(提交)
  377. */
  378. export function updateSecurityExamineIssueReviewAgree(params: UpdateSecurityExamineDeptSubmitParams) {
  379. return http.request({
  380. url: '/securityExamine/admin/updateSecurityExamineIssueReviewAgree',
  381. method: 'put',
  382. data: params,
  383. });
  384. }
  385. /**
  386. * 管理员端复核不通过
  387. */
  388. export function updateSecurityExamineIssueReviewDisagree(id: number, reviewRejectReson?: string) {
  389. return http.request({
  390. url: '/securityExamine/admin/updateSecurityExamineIssueReviewDisagree',
  391. method: 'put',
  392. data: {
  393. id,
  394. reviewRejectReson,
  395. },
  396. });
  397. }
  398. /**
  399. * 管理员端审核通过
  400. */
  401. export function updateSecurityExamineIssueApproveAgree(id: number) {
  402. return http.request({
  403. url: `/securityExamine/admin/updateSecurityExamineIssueApproveAgree?id=${id}`,
  404. method: 'put',
  405. });
  406. }
  407. /**
  408. * 管理员端审核不通过
  409. */
  410. export function updateSecurityExamineIssueApproveDisagree(id: number, approveRejectReson?: string) {
  411. return http.request({
  412. url: '/securityExamine/admin/updateSecurityExamineIssueApproveDisagree',
  413. method: 'put',
  414. data: {
  415. id,
  416. approveRejectReson,
  417. },
  418. });
  419. }
  420. /**
  421. * 查询先进集体
  422. */
  423. export interface QuerySecurityExamineIssueAdvancedParams extends QueryPageRequest<any> {
  424. queryParam: {
  425. psemId?: number;
  426. deptName?: string;
  427. planStartTime?: string;
  428. planEndTime?: string;
  429. };
  430. }
  431. export function querySecurityExamineIssueAdvanced(params: QuerySecurityExamineIssueAdvancedParams) {
  432. return http.request<QueryPageResponse<EvaluationTargetItem>>({
  433. url: '/securityExamine/admin/querySecurityExamineIssueAdvanced',
  434. method: 'post',
  435. data: params,
  436. });
  437. }
  438. /**
  439. * 部门端先进个人查询请求参数(queryParam)
  440. */
  441. export interface QuerySecurityExamineDeptAdvancedUserQueryParam {
  442. psemId?: number; // 考核表ID
  443. userName?: string; // 员工工号/名称
  444. planStartTime?: string; // 计划开始时间
  445. planEndTime?: string; // 计划结束时间
  446. }
  447. /**
  448. * 部门端先进个人查询请求参数
  449. */
  450. export interface QuerySecurityExamineDeptAdvancedUserParams {
  451. pageNumber: number; // 页号
  452. pageSize: number; // 每页数量
  453. queryParam: QuerySecurityExamineDeptAdvancedUserQueryParam; // 查询参数
  454. }
  455. /**
  456. * 部门端先进个人返回对象
  457. */
  458. export interface EvaluationDeptAdvancedUserItem {
  459. id?: number; // 记录ID
  460. deptName: string; // 所属部门
  461. deptId?: number; // 部门ID
  462. deptUserId?: number; // 部门用户ID
  463. deptUserName: string; // 部门负责人
  464. deptUserLink: string; // 部门负责人联系方式
  465. advUserStaffNo: string; // 员工工号
  466. advUserName: string; // 先进个人姓名
  467. advUserLink: string; // 先进个人联系方式(员工联系方式)
  468. remark: string; // 先进个人描述
  469. attachments: string; // 附件
  470. planEndTime: string; // 上报日期(计划结束时间)
  471. }
  472. /**
  473. * 查询部门端先进个人列表
  474. */
  475. export function querySecurityExamineDeptAdvancedUser(params: QuerySecurityExamineDeptAdvancedUserParams) {
  476. return http.request<QueryPageResponse<EvaluationDeptAdvancedUserItem>>({
  477. url: '/securityExamine/dept/querySecurityExamineDeptAdvancedUser',
  478. method: 'post',
  479. data: params,
  480. });
  481. }
  482. /**
  483. * 管理员端先进个人查询请求参数(queryParam)
  484. */
  485. export interface QuerySecurityExamineIssueAdvancedUserQueryParam {
  486. psemId?: number; // 考核表ID
  487. deptName?: string; // 部门名称
  488. userName?: string; // 员工工号/名称
  489. planStartTime?: string; // 计划开始时间
  490. planEndTime?: string; // 计划结束时间
  491. }
  492. /**
  493. * 管理员端先进个人查询请求参数
  494. */
  495. export interface QuerySecurityExamineIssueAdvancedUserParams {
  496. pageNumber: number; // 页号
  497. pageSize: number; // 每页数量
  498. queryParam: QuerySecurityExamineIssueAdvancedUserQueryParam; // 查询参数
  499. }
  500. /**
  501. * 查询管理员端先进个人列表
  502. */
  503. export function querySecurityExamineIssueAdvancedUser(params: QuerySecurityExamineIssueAdvancedUserParams) {
  504. return http.request<QueryPageResponse<EvaluationDeptAdvancedUserItem>>({
  505. url: '/securityExamine/admin/querySecurityExamineIssueAdvancedUser',
  506. method: 'post',
  507. data: params,
  508. });
  509. }
  510. /**
  511. * 保存部门端先进个人请求参数
  512. */
  513. export interface SaveSecurityExamineDeptAdvUserRequest {
  514. psemId: number; // 考核表ID
  515. users: Array<{
  516. deptId: number; // 部门ID
  517. advUserStaffNo: string; // 员工工号
  518. advUserName: string; // 先进个人姓名
  519. advUserLink: string; // 先进个人联系方式
  520. remark: string; // 先进个人描述
  521. }>;
  522. }
  523. /**
  524. * 保存部门端先进个人
  525. */
  526. export function saveSecurityExamineDeptAdvUser(data: SaveSecurityExamineDeptAdvUserRequest) {
  527. return http.request({
  528. url: '/securityExamine/dept/saveSecurityExamineDeptAdvUser',
  529. method: 'post',
  530. data,
  531. });
  532. }
  533. /**
  534. * 管理员端保存先进个人请求参数
  535. */
  536. export interface SaveSecurityExamineAdvUserAdminRequest {
  537. psemId: number; // 考核表ID(路由参数id)
  538. deptId: number; // 部门ID
  539. advUserStaffNo: string; // 员工工号
  540. advUserName: string; // 先进个人姓名
  541. advUserLink: string; // 先进个人联系方式
  542. remark: string; // 先进个人描述
  543. }
  544. /**
  545. * 管理员端保存先进个人
  546. */
  547. export function saveSecurityExamineAdvUserAdmin(data: SaveSecurityExamineAdvUserAdminRequest) {
  548. return http.request({
  549. url: '/securityExamine/admin/saveSecurityExamineAdvUserAdmin',
  550. method: 'post',
  551. data,
  552. });
  553. }
  554. /**
  555. * 管理员端更新先进个人
  556. */
  557. export interface UpdateSecurityExamineAdvUserAdminRequest extends EvaluationDeptAdvancedUserItem {
  558. psemId?: number; // 考核表ID(可选)
  559. }
  560. export function updateSecurityExamineAdvUserAdmin(data: UpdateSecurityExamineAdvUserAdminRequest) {
  561. return http.request({
  562. url: '/securityExamine/admin/updateSecurityExamineAdvUserAdmin',
  563. method: 'post',
  564. data,
  565. });
  566. }
  567. /**
  568. * 查询部门端先进个人详情
  569. */
  570. export function querySecurityExamineDeptAdvUserDetail(id: number) {
  571. return http.request<EvaluationDeptAdvancedUserItem>({
  572. url: `/securityExamine/dept/querySecurityExamineDeptAdvUser?id=${id}`,
  573. method: 'get',
  574. });
  575. }
  576. /**
  577. * 更新部门端先进个人请求参数
  578. */
  579. export interface UpdateSecurityExamineDeptAdvUserRequest {
  580. id: number; // 记录ID
  581. psemId: number; // 考核表ID
  582. deptName: string; // 部门名称
  583. deptId: number; // 部门ID
  584. deptUserId: number; // 部门用户ID
  585. deptUserName: string; // 部门负责人姓名
  586. deptUserLink: string; // 部门负责人联系方式
  587. advUserStaffNo: string; // 员工工号
  588. advUserName: string; // 先进个人姓名
  589. advUserLink: string; // 先进个人联系方式
  590. remark: string; // 先进个人描述
  591. }
  592. /**
  593. * 更新部门端先进个人
  594. */
  595. export function updateSecurityExamineDeptAdvUser(data: UpdateSecurityExamineDeptAdvUserRequest) {
  596. return http.request({
  597. url: '/securityExamine/dept/updateSecurityExamineDeptAdvUser',
  598. method: 'put',
  599. data,
  600. });
  601. }
  602. /**
  603. * 管理员端查询先进个人详情
  604. */
  605. export function querySecurityExamineAdvUser(id: number) {
  606. return http.request<EvaluationDeptAdvancedUserItem>({
  607. url: `/securityExamine/admin/querySecurityExamineAdvUser?id=${id}`,
  608. method: 'get',
  609. });
  610. }
  611. /**
  612. * 删除部门端先进个人
  613. */
  614. export function deleteSecurityExamineDeptAdvUser(id: number) {
  615. return http.request({
  616. url: `/securityExamine/dept/deleteSecurityExamineDeptAdvUser?id=${id}`,
  617. method: 'delete',
  618. });
  619. }