package com.casic.missiles.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.core.page.PageInfoBT; import com.casic.missiles.dto.BaseQueryForm; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.flowable.ApprovalRevokeRequest; import com.casic.missiles.dto.flowable.ApprovalSubmitRequest; import com.casic.missiles.dto.flowable.BaseApprovalRequest; import com.casic.missiles.dto.plan.PlanForm; import com.casic.missiles.dto.plan.PlanQueryForm; import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.equipment.EquipmentInfoApproval; import com.casic.missiles.model.plan.Plan; import com.casic.missiles.service.ICommonApprovalService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import java.io.IOException; import java.lang.reflect.ParameterizedType; import java.util.List; public class CommonApprovalController<T extends CommonApproval,Q extends BaseQueryForm> extends ExportController { private ICommonApprovalService<T,Q> service; public CommonApprovalController(ICommonApprovalService<T, Q> service) { this.service = service; } @ApiOperation("删除审批") @PostMapping("/approval/delete") @ResponseBody public ReturnDTO deleteApproval(Long id) { service.removeApproval(id); return ReturnUtil.success(); } @ApiOperation("提交审批") @PostMapping("/approval/submit") @ResponseBody public ReturnDTO submitApproval(@RequestBody ApprovalSubmitRequest submitRequest) { return service.submitApproval(submitRequest); } @ApiOperation("取消审批") @PostMapping("/approval/cancel") @ResponseBody public ReturnDTO cancelApproval(@RequestBody ApprovalRevokeRequest revokeRequest) { return service.cancelApproval(revokeRequest); } @ApiOperation("同意审批") @PostMapping("/approval/agree") @ResponseBody public ReturnDTO agreeApproval(@RequestBody BaseApprovalRequest agreeRequest) { return service.agreeApproval(agreeRequest); } @ApiOperation("拒绝审批") @PostMapping("/approval/refuse") @ResponseBody public ReturnDTO refuseApproval(@RequestBody BaseApprovalRequest refuseRequest) { return service.refuseApproval(refuseRequest); } @ApiOperation("审批列表-审批/草稿箱/审批中/已通过/未通过/已取消") @PostMapping("/approval/listPage") @ResponseBody public ReturnDTO<PageInfoBT<T>> listPage(@RequestBody Q queryForm) { Page<T> page = PageFactory.defaultPage(); page = service.listPage(page, queryForm); return ReturnUtil.success(super.packForBT(page)); } @ApiOperation("审批列表-待审批") @PostMapping("/approval/toApprovalListPage") @ResponseBody public ReturnDTO<PageInfoBT<T>> toApprovalListPage(@RequestBody Q queryForm) { Page<T> page = PageFactory.defaultPage(); page = service.toApprovalListPage(page, queryForm); return ReturnUtil.success(super.packForBT(page)); } @ApiOperation("审批列表-已审批") @PostMapping("/approval/approvedListPage") @ResponseBody public ReturnDTO<PageInfoBT<T>> approvedListPage(@RequestBody Q queryForm) { Page<T> page = PageFactory.defaultPage(); page = service.approvedListPage(page, queryForm); return ReturnUtil.success(super.packForBT(page)); } @ApiOperation("全部列表") @PostMapping("/allPage") @ResponseBody public ReturnDTO<PageInfoBT<T>> allPage(@RequestBody Q queryForm) { Page<T> page = PageFactory.defaultPage(); page = service.allPage(page, queryForm); return ReturnUtil.success(super.packForBT(page)); } @ApiOperation("全部列表导出") @PostMapping("/allExport") @ResponseBody public void allExport(@RequestBody Q queryForm) throws IOException { List<T> list = service.allExport(queryForm); Class<T> entityClass = (Class<T>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0]; super.exportExcel(entityClass,list,""); } }