| | |
| | | */ |
| | | package org.sxkj.gd.workorder.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import lombok.AllArgsConstructor; |
| | | import javax.validation.Valid; |
| | | |
| | | import org.springblade.core.secure.BladeUser; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.sxkj.common.redis.RedisOpsUtils; |
| | | import org.sxkj.gd.common.IdParam; |
| | | import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity; |
| | | import org.sxkj.gd.workorder.entity.GdWorkOrderEntity; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskAddParam; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam; |
| | | import org.sxkj.gd.workorder.param.GdPatrolTaskUpdateParam; |
| | | import org.sxkj.gd.workorder.vo.GdClueEventVO; |
| | | import org.sxkj.gd.workorder.vo.GdPatrolTaskVO; |
| | | import org.sxkj.gd.workorder.enums.PatrolTaskStatusEnum; |
| | | import org.sxkj.gd.workorder.excel.GdPatrolTaskExcel; |
| | | import org.sxkj.gd.workorder.wrapper.GdPatrolTaskWrapper; |
| | | import org.sxkj.gd.workorder.param.*; |
| | | import org.sxkj.gd.workorder.service.IGdPatrolTaskService; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.sxkj.system.cache.SysCache; |
| | | import org.sxkj.gd.workorder.vo.GdPatrolTaskSimpleVO; |
| | | import org.sxkj.gd.workorder.vo.GdPatrolTaskVO; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Map; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 巡查任务表 控制器 |
| | |
| | | * @author lw |
| | | * @since 2026-01-14 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("workOrder/gdPatrolTask") |
| | |
| | | @ApiOperationSupport(order = 1) |
| | | @ApiOperation(value = "详情", notes = "传入gdPatrolTask") |
| | | public R<GdPatrolTaskVO> detail(GdPatrolTaskEntity gdPatrolTask) { |
| | | GdPatrolTaskEntity detail = gdPatrolTaskService.getOne(Condition.getQueryWrapper(gdPatrolTask)); |
| | | return R.data(GdPatrolTaskWrapper.build().entityVO(detail)); |
| | | GdPatrolTaskVO detail = gdPatrolTaskService.getPatrolTaskDetail(gdPatrolTask); |
| | | return R.data(detail); |
| | | } |
| | | /** |
| | | * 巡查任务表 分页 |
| | | */ |
| | | // @GetMapping("/list") |
| | | // @ApiOperationSupport(order = 2) |
| | | // @ApiOperation(value = "分页", notes = "传入gdPatrolTask") |
| | | // public R<IPage<GdPatrolTaskVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdPatrolTask, Query query) { |
| | | // IPage<GdPatrolTaskEntity> pages = gdPatrolTaskService.page(Condition.getPage(query), Condition.getQueryWrapper(gdPatrolTask, GdPatrolTaskEntity.class)); |
| | | // return R.data(GdPatrolTaskWrapper.build().pageVO(pages)); |
| | | // } |
| | | |
| | | /** |
| | | * 巡查任务表 自定义分页 |
| | |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "分页", notes = "传入gdPatrolTask") |
| | | public R<IPage<GdPatrolTaskVO>> page(GdPatrolTaskPageParam gdPatrolTask, Query query) { |
| | | IPage<GdPatrolTaskVO> pages = gdPatrolTaskService.selectGdPatrolTaskPage( |
| | | Condition.getPage(query), |
| | | gdPatrolTask, |
| | | SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())) |
| | | ); |
| | | IPage<GdPatrolTaskVO> pages = gdPatrolTaskService.selectGdPatrolTaskPage(Condition.getPage(query), gdPatrolTask); |
| | | return R.data(pages); |
| | | } |
| | | |
| | |
| | | return R.status(gdPatrolTaskService.savePatrolTask(taskEntityList)); |
| | | } |
| | | |
| | | /** |
| | | * 巡查任务表 修改 |
| | | */ |
| | | // @PostMapping("/update") |
| | | // @ApiOperationSupport(order = 5) |
| | | // @ApiOperation(value = "修改", notes = "传入gdPatrolTask") |
| | | // public R update(@Valid @RequestBody GdPatrolTaskEntity gdPatrolTask) { |
| | | // return R.status(gdPatrolTaskService.updateById(gdPatrolTask)); |
| | | // } |
| | | |
| | | /** |
| | | * 巡查任务表 新增或修改 |
| | | */ |
| | | // @PostMapping("/submit") |
| | | // @ApiOperationSupport(order = 6) |
| | | // @ApiOperation(value = "新增或修改", notes = "传入gdPatrolTask") |
| | | // public R submit(@Valid @RequestBody GdPatrolTaskEntity gdPatrolTask) { |
| | | // return R.status(gdPatrolTaskService.saveOrUpdate(gdPatrolTask)); |
| | | // } |
| | | |
| | | /** |
| | | * 巡查任务表 删除 |
| | |
| | | @ApiIgnore |
| | | public void exportGdPatrolTask(@ApiIgnore @RequestParam Map<String, Object> gdPatrolTask, BladeUser bladeUser, HttpServletResponse response) { |
| | | QueryWrapper<GdPatrolTaskEntity> queryWrapper = Condition.getQueryWrapper(gdPatrolTask, GdPatrolTaskEntity.class); |
| | | //if (!AuthUtil.isAdministrator()) { |
| | | // if (!AuthUtil.isAdministrator()) { |
| | | // queryWrapper.lambda().eq(GdPatrolTask::getTenantId, bladeUser.getTenantId()); |
| | | //} |
| | | queryWrapper.lambda().eq(GdPatrolTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 审核巡查任务 |
| | | * 巡查任务执行完成-对外 |
| | | * 根据执行结果设置不同状态: |
| | | * - 执行成功(success=true或不传): 状态设置为待验收(PENDING_ACCEPTANCE) |
| | | * - 执行失败(success=false): 状态设置为待签收(PENDING_SIGNING) |
| | | */ |
| | | @PostMapping("/auditExternal") |
| | | @ApiOperationSupport(order = 10) |
| | | @ApiOperation(value = "巡查任务执行完成-对外", notes = "只能使用执行完成操作") |
| | | public R auditExternal(@Valid @RequestBody GdPatrolTaskAuditParam auditParam) { |
| | | if (auditParam.getAuditStatus() != 8) { |
| | | return R.fail("非法参数"); |
| | | @ApiOperationSupport(order = 11) |
| | | @ApiOperation(value = "巡查任务执行完成-对外", notes = "根据执行结果设置不同状态,不传success默认为成功") |
| | | public R auditExternal(@Valid @RequestBody IdParam param) { |
| | | log.info("巡查任务执行完成-对外:{}", param); |
| | | if (param.getId() == null) { |
| | | return R.fail("巡检任务id不能为空"); |
| | | } |
| | | boolean result = gdPatrolTaskService.auditPatrolTask(auditParam); |
| | | return R.status(result); |
| | | GdPatrolTaskEntity auditParam = new GdPatrolTaskEntity(); |
| | | auditParam.setId(param.getId()); |
| | | // 根据执行结果设置不同状态,不传success默认为成功 |
| | | if (param.getSuccess() == null || Boolean.TRUE.equals(param.getSuccess())) { |
| | | // 执行成功(或不传),设置为待验收状态 |
| | | auditParam.setTaskStatus(PatrolTaskStatusEnum.PENDING_ACCEPTANCE.getValue()); |
| | | } else { |
| | | // 执行失败,设置为待签收状态 |
| | | auditParam.setTaskStatus(PatrolTaskStatusEnum.PENDING_SIGNING.getValue()); |
| | | } |
| | | return R.status(gdPatrolTaskService.updatePatrolTaskById(auditParam)); |
| | | } |
| | | |
| | | /** |
| | | * 更新单个巡查任务信息 |
| | | */ |
| | | @PostMapping("/republish") |
| | | @ApiOperationSupport(order = 11) |
| | | @ApiOperationSupport(order = 12) |
| | | @ApiOperation(value = "更新单个巡查任务信息", notes = "传入巡查任务信息") |
| | | public R republish(@Valid @RequestBody GdPatrolTaskUpdateParam gdPatrolTask) { |
| | | GdPatrolTaskEntity gdPatrolTaskEntity = Objects.requireNonNull(BeanUtil.copy(gdPatrolTask, GdPatrolTaskEntity.class)); |
| | | GdPatrolTaskEntity gdPatrolTaskEntity = Objects.requireNonNull(BeanUtil.copy(gdPatrolTask, GdPatrolTaskEntity.class)); |
| | | boolean result = gdPatrolTaskService.republishPatrolTask(gdPatrolTaskEntity); |
| | | return R.status(result); |
| | | } |
| | | |
| | | @PostMapping("/export-report") |
| | | @ApiOperationSupport(order = 13) |
| | | @ApiOperation(value = "导出巡查报告", notes = "传入巡查任务id") |
| | | public R<Boolean> exportReport(@RequestParam Long id) { |
| | | if (id == null) { |
| | | return R.fail("巡查任务id不能为空"); |
| | | } |
| | | boolean saved = gdPatrolTaskService.exportPatrolReport(id); |
| | | return R.data(saved); |
| | | } |
| | | |
| | | @PostMapping("/push-xingtu") |
| | | @ApiOperationSupport(order = 14) |
| | | @ApiOperation(value = "推送星图任务", notes = "传入巡查任务id") |
| | | public R pushXingtuTask(@RequestParam Long id) { |
| | | if (id == null) { |
| | | return R.fail("巡查任务id不能为空"); |
| | | } |
| | | return gdPatrolTaskService.pushXingtuFlyTask(id); |
| | | } |
| | | |
| | | //分享页面缓存数据接口 |
| | | @PostMapping("/share-cache-data") |
| | | @ApiOperationSupport(order = 15) |
| | | @ApiOperation(value = "分享页面缓存数据接口", notes = "传入需要缓存的数据") |
| | | public R<Object> shareCacheData(@RequestBody Object requestData) { |
| | | if (requestData == null) { |
| | | return R.fail("缓存的数据不能为空"); |
| | | } |
| | | // 缓存数据 7天过过期 |
| | | String cacheKey = UUID.randomUUID().toString(); |
| | | RedisOpsUtils.setWithExpire(cacheKey, requestData, 60 * 60 * 24 * 7); |
| | | return R.data(cacheKey); |
| | | } |
| | | |
| | | @GetMapping("/get-share-cache-data") |
| | | @ApiOperationSupport(order = 16) |
| | | @ApiOperation(value = "获取分享页面缓存数据接口", notes = "传入缓存key") |
| | | public R<Object> getShareCacheData(@RequestParam String cacheKey) { |
| | | if (cacheKey == null) { |
| | | return R.fail("缓存key不能为空"); |
| | | } |
| | | Object cacheData = RedisOpsUtils.get(cacheKey); |
| | | return R.data(cacheData); |
| | | } |
| | | |
| | | /** |
| | | * 根据工单ID查询巡查任务列表(仅返回id和名称) |
| | | */ |
| | | @GetMapping("/listByWorkOrderId") |
| | | @ApiOperationSupport(order = 17) |
| | | @ApiOperation(value = "根据工单ID查询巡查任务列表", notes = "传入工单ID") |
| | | public R<List<GdPatrolTaskSimpleVO>> listByWorkOrderId(@ApiParam(value = "工单ID", required = true) @RequestParam Long workOrderId) { |
| | | if (workOrderId == null) { |
| | | return R.fail("工单ID不能为空"); |
| | | } |
| | | List<GdPatrolTaskSimpleVO> list = gdPatrolTaskService.selectListByWorkOrderId(workOrderId); |
| | | return R.data(list); |
| | | } |
| | | |
| | | /** |
| | | * 查询待验收状态的巡查任务列表(对外接口) |
| | | * 支持按巡查任务名称模糊查询和时间区间查询 |
| | | */ |
| | | @GetMapping("/pendingAcceptanceTasks") |
| | | @ApiOperationSupport(order = 18) |
| | | @ApiOperation(value = "查询待验收状态的巡查任务列表", notes = "对外接口,支持任务名称和时间区间查询") |
| | | public R<List<GdPatrolTaskVO>> pendingAcceptanceTasks(GdPatrolTaskPendingAcceptanceQueryParam queryParam) { |
| | | List<GdPatrolTaskVO> list = gdPatrolTaskService.selectPendingAcceptanceTasks(queryParam); |
| | | return R.data(list); |
| | | } |
| | | |
| | | } |