package com.ruoyi.app.patrolplan.controller; import java.text.ParseException; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell; import com.ruoyi.alarmpoints.well.service.IArdAlarmpointsWellService; import com.ruoyi.app.patrolplan.domain.ArdAppPatrolpoint; import com.ruoyi.app.patrolplan.domain.ArdAppPatrolpointRecord; import com.ruoyi.app.patrolplan.domain.param.*; import com.ruoyi.app.patrolplan.service.IArdAppPatrolpointRecordService; import com.ruoyi.app.patrolplan.service.IArdAppPatrolpointService; import com.ruoyi.app.patrolplan.service.IArdAppPatroluserService; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.utils.result.Results; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import jdk.nashorn.internal.ir.annotations.Reference; import org.springframework.security.access.prepost.PreAuthorize; 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.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.app.patrolplan.domain.ArdAppPatrolplan; import com.ruoyi.app.patrolplan.service.IArdAppPatrolplanService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * app巡检计划Controller * * @author ard * @date 2023-08-02 */ @RestController @RequestMapping("/app/appPatrolplan") @Api(tags = "app巡检计划") public class ArdAppPatrolplanController extends BaseController { @Autowired private IArdAppPatrolplanService ardAppPatrolplanService; @Resource IArdAppPatrolpointService ardAppPatrolpointService; @Resource IArdAppPatroluserService ardAppPatroluserService; @Resource ISysUserService sysUserService; @Resource ISysDeptService sysDeptService; @Resource IArdAlarmpointsWellService wellService; @Resource IArdAppPatrolpointRecordService recordService; /** * 管理端--查询app巡检计划列表 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:list')") @GetMapping("/list") @ApiOperation("管理端--查询全部巡检列表及搜索筛选") public Results list(ArdAppPatrolplan ardAppPatrolplan) { String userId = SecurityUtils.getUserId(); ardAppPatrolplan.setUserId(userId); if(ardAppPatrolplan.getPageNum()==null || ardAppPatrolplan.getPageNum() == 0){ ardAppPatrolplan.setPageNum(1); } if(ardAppPatrolplan.getPageSize()==null || ardAppPatrolplan.getPageSize() == 0){ ardAppPatrolplan.setPageSize(10); } PageHelper.startPage(ardAppPatrolplan.getPageNum(),ardAppPatrolplan.getPageSize()); List list = ardAppPatrolplanService.selectArdAppPatrolplanList(ardAppPatrolplan); return Results.succeed(new PageInfo<>(list)); } /** * 管理端--导出app巡检计划列表 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:export')") @Log(title = "app巡检计划", businessType = BusinessType.EXPORT) @PostMapping("/export") @ApiOperation("管理端--导出全部巡检列表") public void export(HttpServletResponse response, ArdAppPatrolplan ardAppPatrolplan) { List list = ardAppPatrolplanService.selectArdAppPatrolplanList(ardAppPatrolplan); ExcelUtil util = new ExcelUtil(ArdAppPatrolplan.class); util.exportExcel(response, list, "app巡检计划数据"); } /** * 根据巡检ID查询兴趣点 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:wellByPlanId')") @GetMapping(value = "wellByPlanId/{id}") @ApiOperation("根据巡检ID查询兴趣点") public Results wellByPlanId(@PathVariable String id) { return ardAppPatrolpointService.wellByPlanId(id); } /** * 根据巡检ID查询巡检人 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:userByPlanId')") @GetMapping(value = "userByPlanId/{id}") @ApiOperation("根据巡检ID查询巡检人员") public Results userByPlanId(@PathVariable String id) { return ardAppPatroluserService.userByPlanId(id); } /** * 管理端--删除app巡检计划 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:remove')") @Log(title = "app巡检计划", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") @ApiOperation("管理端--删除app巡检计划") //public Results remove(@PathVariable String id) public AjaxResult remove(@PathVariable String id) { //return ardAppPatrolplanService.deleteArdApp(id); return toAjax(ardAppPatrolplanService.deleteArdApp(id)); } @PreAuthorize("@ss.hasPermi('app:appPatrolplan:allPlanUser')") @PostMapping("allPlanUser") @ApiOperation("查询权限下全部人员和兴趣点") public Results allPlanUser() { JSONObject jsonObject = new JSONObject(); String userId = SecurityUtils.getUserId(); //根据userId查询部门Id SysUser sysUser = sysUserService.selectUserById(userId); //根据当前deptId或者当前及所属下级的所有deptId List deptList = sysDeptService.deptIdBySub(sysUser.getDeptId()); //根据deptId列表获取到所有用户 List sysUserList = sysUserService.userByDeptList(deptList); jsonObject.put("user",sysUserList); //根据deptId列表获取到所有兴趣点 List wellList = wellService.wellByDeptList(deptList); jsonObject.put("well",wellList); return Results.succeed(jsonObject); } /** * 管理端--新增app巡检计划及人员点位 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:insertArdAppPatrolplan')") @Log(title = "app巡检计划", businessType = BusinessType.INSERT) @PostMapping("/insertArdAppPatrolplan") @ApiOperation("管理端--新增app巡检计划及人员点位") public AjaxResult addArdAppPatrolplan(@RequestBody Map para) { return toAjax(ardAppPatrolplanService.insertArdAppPatrolplan(para)); } /** * 管理端--查询单条数据 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:oneById')") @PostMapping("/oneById/{id}") @ApiOperation("管理端--查询单条数据") public Results oneById(@PathVariable String id) { return ardAppPatrolplanService.oneById(id); } /** * 管理端--修改app巡检计划 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:edit')") @Log(title = "app巡检计划", businessType = BusinessType.UPDATE) @ApiOperation("管理端--修改单条数据") @PutMapping("upd") public Results edit(@RequestBody Map para) { return ardAppPatrolplanService.updateArdAppPatrolplan(para); } /** * 巡检打卡 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:record')") @ApiOperation("巡检打卡") @PostMapping("record") public Results edit(@RequestBody ArdAppPatrolpointRecord ardAppPatrolpointRecord) { return recordService.record(ardAppPatrolpointRecord); } /** * 管理端--巡检日历 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:recordMonth')") @ApiOperation("管理端--巡检日历") @PostMapping("recordMonth") public Results recordMonth(@RequestBody RecordMonthParam recordMonthParam) throws ParseException { return recordService.recordMonth(recordMonthParam); } /** * 管理端--点击日历获取该记录下人员打卡记录 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:recordDetails')") @ApiOperation("管理端--点击日历获取该记录下人员打卡记录") @PostMapping("recordDetails") public Results recordDetails(@RequestBody RecordDetailsParam recordDetailsParam) throws ParseException { return recordService.recordDetails(recordDetailsParam); } /** * 管理端--单人详情 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:recordSolo')") @ApiOperation("管理端--单人详情") @PostMapping("recordSolo") public Results recordSolo(@RequestBody RecordSoloParam recordSoloParam) throws ParseException { return recordService.recordSolo(recordSoloParam); } /** * 单兵端--查询app巡检计划列表 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:executeList')") @GetMapping("/executeList") @ApiOperation("单兵端--查询该用户下所有执行计划及搜索筛选") public Results executeList(ArdAppPatrolplan ardAppPatrolplan) { String userId = SecurityUtils.getUserId(); ardAppPatrolplan.setUserId(userId); if(ardAppPatrolplan.getPageNum()==null || ardAppPatrolplan.getPageNum() == 0){ ardAppPatrolplan.setPageNum(1); } if(ardAppPatrolplan.getPageSize()==null || ardAppPatrolplan.getPageSize() == 0){ ardAppPatrolplan.setPageSize(10); } PageHelper.startPage(ardAppPatrolplan.getPageNum(),ardAppPatrolplan.getPageSize()); List list = ardAppPatrolplanService.executeList(ardAppPatrolplan); return Results.succeed(new PageInfo<>(list)); } /** * 单兵端--查询单条数据 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:executeOneById')") @PostMapping("/executeOneById/{id}") @ApiOperation("单兵端--查询单条数据") public Results executeOneById(@PathVariable String id) { return ardAppPatrolplanService.executeOneById(id); } /** * 单兵端--巡检日历 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:executeMonth')") @ApiOperation("单兵端--巡检日历") @PostMapping("executeMonth") public Results executeMonth(@RequestBody RecordMonthParam recordMonthParam) throws ParseException { return recordService.executeMonth(recordMonthParam); } /** * 单兵端--点击日历获取该记录下人员打卡记录 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:executeDetails')") @ApiOperation("单兵端--点击日历获取该人员下所有地点打卡记录") @PostMapping("executeDetails") public Results executeDetails(@RequestBody RecordDetailsParam recordDetailsParam) throws ParseException { return recordService.executeDetails(recordDetailsParam); } /** * 单兵端--单人详情 */ @PreAuthorize("@ss.hasPermi('app:appPatrolplan:executeSolo')") @ApiOperation("单兵端--单人详情") @PostMapping("executeSolo") public Results executeSolo(@RequestBody RecordSoloExParam recordSoloExParam) throws ParseException { return recordService.executeSolo(recordSoloExParam); } }