index.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. import { http } from '@/utils/http/axios';
  2. import type { QueryPageRequest, QueryPageResponse } from '@/types/basic-query';
  3. /**
  4. * 隐患台账单条记录(与接口文档 ProductionHiddenDangerPageRes 一致)
  5. */
  6. export interface HiddenDangerItem {
  7. id: number;
  8. sourceType?: number; // 数据来源:1-员工上报 2-台账新增 3-台账导入 4-区域检查
  9. sourceRefId?: number;
  10. dangerCode: string;
  11. dangerProblem: string;
  12. /** 扣分原因名称(下拉显示,若无则用 dangerProblem) */
  13. deductionReason?: string;
  14. typeId: number;
  15. typeName: string;
  16. reasonId: number;
  17. reasonName: string;
  18. taskSource: string;
  19. rectificationRequirement: string;
  20. rectificationDeadline: string;
  21. rectificationDepartmentIds: string;
  22. rectificationDepartmentNames: string;
  23. rectificationResponsiblePerson: string;
  24. reviewDepartmentId?: number;
  25. reviewDepartmentName?: string;
  26. reviewPersonId?: number;
  27. reviewPersonName: string;
  28. isDrawLessonsPush: number;
  29. drawLessonsContent?: string;
  30. drawLessonsDepartmentIds?: string;
  31. drawLessonsDepartmentNames?: string;
  32. drawLessonsDeadline?: string;
  33. entryTime?: string;
  34. currentNode?: string;
  35. associationOtId?: number;
  36. statusId: number;
  37. statusName: string;
  38. statusOrder?: number;
  39. creatorId?: number;
  40. creatorName: string;
  41. createdAt: string;
  42. updatedAt?: string;
  43. isDeleted?: number;
  44. rectificationCompletionStatus?: string;
  45. rectificationCompletionTime?: string;
  46. attachments?: string;
  47. canEdit?: boolean;
  48. canDelete?: boolean;
  49. canIssue?: boolean;
  50. canRectify?: boolean;
  51. canReview?: boolean;
  52. canDeduct?: boolean;
  53. canView?: boolean;
  54. /** 审查不通过原因(详情/整改页展示) */
  55. reviewRejectReason?: string;
  56. }
  57. /**
  58. * 分页查询 queryParam(与接口文档一致)
  59. * status: 0全部 1上级检查 2院内自查 3专家安全评估 4待下发 5待整改 6待复查 7已完成
  60. */
  61. export interface HiddenDangerQueryParam {
  62. dangerCode?: string;
  63. typeId?: number;
  64. reasonId?: number;
  65. rectificationDepartmentId?: number;
  66. status?: number;
  67. startDate?: string;
  68. endDate?: string;
  69. keyword?: string;
  70. /** 兼容旧字段,映射到 keyword 或单独传 */
  71. dangerProblem?: string;
  72. taskSource?: string;
  73. statusId?: number;
  74. }
  75. /**
  76. * 1.1 分页查询隐患台账
  77. * POST /api/productionHiddenDanger/queryPage
  78. */
  79. export function queryHiddenDangerPage(
  80. query: QueryPageRequest<HiddenDangerQueryParam>,
  81. ) {
  82. return http.request<QueryPageResponse<HiddenDangerItem>>({
  83. url: '/productionHiddenDanger/queryPage',
  84. method: 'post',
  85. data: query,
  86. });
  87. }
  88. /**
  89. * 1.2 查询隐患台账详情
  90. * GET /api/productionHiddenDanger/queryDetail?id=xxx
  91. */
  92. export function getHiddenDangerDetail(id: number) {
  93. return http.request<HiddenDangerItem>({
  94. url: '/productionHiddenDanger/queryDetail',
  95. method: 'get',
  96. params: { id },
  97. });
  98. }
  99. /**
  100. * 1.3 删除隐患台账
  101. * DELETE /api/productionHiddenDanger/delete?id=xxx
  102. */
  103. export function deleteHiddenDanger(id: number) {
  104. return http.request({
  105. url: '/productionHiddenDanger/delete',
  106. method: 'delete',
  107. params: { id },
  108. });
  109. }
  110. /**
  111. * 1.4 新增隐患台账
  112. * POST /api/productionHiddenDanger/saveHiddenDanger
  113. */
  114. export interface SaveHiddenDangerRequest {
  115. typeId: number;
  116. reasonId: number;
  117. dangerProblem: string;
  118. taskSource?: string;
  119. rectificationRequirement?: string;
  120. rectificationDepartmentIds?: string;
  121. rectificationResponsiblePerson?: string;
  122. rectificationDeadline: string;
  123. isDrawLessonsPush?: number;
  124. drawLessonsContent?: string;
  125. drawLessonsDepartmentIds?: string;
  126. drawLessonsDeadline?: string;
  127. reviewDepartmentId?: number;
  128. reviewPersonId?: number;
  129. reviewPersonName?: string;
  130. /** 附件(详情中附件参数) */
  131. attachments?: string;
  132. }
  133. export function saveHiddenDanger(data: SaveHiddenDangerRequest) {
  134. return http.request({
  135. url: '/productionHiddenDanger/saveHiddenDanger',
  136. method: 'post',
  137. data,
  138. });
  139. }
  140. /**
  141. * 1.5 修改隐患台账
  142. * PUT /api/productionHiddenDanger/updateHiddenDanger
  143. */
  144. export interface UpdateHiddenDangerRequest extends SaveHiddenDangerRequest {
  145. id: number;
  146. statusId?: number;
  147. }
  148. export function updateHiddenDanger(data: UpdateHiddenDangerRequest) {
  149. return http.request({
  150. url: '/productionHiddenDanger/updateHiddenDanger',
  151. method: 'put',
  152. data,
  153. });
  154. }
  155. /**
  156. * 隐患台账下发
  157. * POST /api/productionHiddenDanger/issueHiddenDanger
  158. */
  159. export interface IssueHiddenDangerRequest {
  160. danger_id: number;
  161. rectification_department_ids: string;
  162. rectification_responsible_person: string;
  163. dept_name: string;
  164. rectification_responsible_ids: string;
  165. }
  166. export function issueHiddenDanger(data: IssueHiddenDangerRequest) {
  167. return http.request({
  168. url: '/productionHiddenDanger/issueHiddenDanger',
  169. method: 'post',
  170. data,
  171. });
  172. }
  173. /**
  174. * 1.6 整改隐患
  175. * POST /api/productionHiddenDanger/rectifyHiddenDanger
  176. */
  177. export interface RectifyHiddenDangerRequest {
  178. dangerId: number;
  179. typeId?: number;
  180. reasonId?: number;
  181. rectificationDeadline?: string;
  182. drawLessonsDepartmentIds?: string;
  183. drawLessonsDeadline?: string;
  184. rectificationPlan?: string;
  185. rectificationResponsiblePerson?: string;
  186. rectificationStartTime?: string;
  187. rectificationEndTime?: string;
  188. rectificationCompletionStatus?: string;
  189. rectificationCompletionTime?: string;
  190. attachments?: string;
  191. isCompleted?: number;
  192. }
  193. export function rectifyHiddenDanger(data: RectifyHiddenDangerRequest) {
  194. return http.request({
  195. url: '/productionHiddenDanger/rectifyHiddenDanger',
  196. method: 'post',
  197. data,
  198. });
  199. }
  200. /**
  201. * 1.7 复查隐患
  202. * POST /api/productionHiddenDanger/reviewHiddenDanger
  203. */
  204. export interface ReviewHiddenDangerRequest {
  205. dangerId: number;
  206. typeId?: number;
  207. reasonId?: number;
  208. rectificationDeadline?: string;
  209. drawLessonsDepartmentIds?: string;
  210. drawLessonsDeadline?: string;
  211. reviewResult?: number;
  212. reviewConclusion?: string;
  213. reviewComments?: string;
  214. reviewReason?: string;
  215. reviewTime?: string;
  216. attachments?: string;
  217. }
  218. export function reviewHiddenDanger(data: ReviewHiddenDangerRequest) {
  219. return http.request({
  220. url: '/productionHiddenDanger/reviewHiddenDanger',
  221. method: 'post',
  222. data,
  223. });
  224. }
  225. /**
  226. * 1.8 导出隐患台账
  227. * POST /api/productionHiddenDanger/exportHiddenDanger
  228. * 请求体:直接传 queryParam 对象,不要包在 pageNumber/pageSize/queryParam 里
  229. */
  230. export function exportHiddenDanger(query: HiddenDangerQueryParam) {
  231. return http.request(
  232. {
  233. url: '/productionHiddenDanger/exportHiddenDanger',
  234. method: 'post',
  235. data: query,
  236. responseType: 'blob',
  237. },
  238. {
  239. isTransformResponse: false,
  240. },
  241. );
  242. }
  243. /**
  244. * 1.9 导入隐患台账
  245. * POST /api/productionHiddenDanger/importHiddenDanger
  246. * multipart/form-data,字段名 file
  247. */
  248. export function importHiddenDanger(data: FormData) {
  249. return http.request<string>({
  250. url: '/productionHiddenDanger/importHiddenDanger',
  251. method: 'post',
  252. data,
  253. });
  254. }
  255. /**
  256. * 扣分记录(接口文档未单独列出,保留原路径供联调)
  257. */
  258. export interface HiddenDangerDeductPointsRequest {
  259. dangerId: number;
  260. initialScore?: number;
  261. deductionScore: number;
  262. deductionReason?: string;
  263. remark?: string;
  264. /** 扣分部门,多个用逗号分隔 */
  265. departmentIds?: string;
  266. }
  267. export function deductHiddenDangerPoints(data: HiddenDangerDeductPointsRequest) {
  268. return http.request({
  269. url: '/production/hiddenDanger/deductPoints',
  270. method: 'post',
  271. data,
  272. });
  273. }