ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
@@ -5,8 +5,11 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.alarm.steal.domain.ArdAlarmStealelec; import com.ruoyi.app.task.domain.ArdAppTaskDetail; import com.ruoyi.common.utils.spring.SpringUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.catalina.security.SecurityUtil; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -29,8 +32,7 @@ @Api(tags = "app任务管理") @RestController @RequestMapping("/app/task") public class ArdAppTaskController extends BaseController { public class ArdAppTaskController extends BaseController { @Autowired private IArdAppTaskService ardAppTaskService; @@ -40,21 +42,26 @@ @ApiOperation("查询app任务管理列表") @PreAuthorize("@ss.hasPermi('app:task:list')") @GetMapping("/list") public TableDataInfo list(ArdAppTask ardAppTask) { public TableDataInfo list(ArdAppTask ardAppTask) { startPage(); List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask); return getDataTable(list); } @ApiOperation("查询app任务管理列表(详情)") @PreAuthorize("@ss.hasPermi('app:task:list')") @GetMapping("/listWithDetail") public TableDataInfo userlist(ArdAppTask ardAppTask) { startPage(); List<ArdAppTask> ardAppTasks = ardAppTaskService.selectArdAppTaskListWithDetail(ardAppTask); return getDataTable(ardAppTasks); } /** * 导出app任务管理列表 */ @PreAuthorize("@ss.hasPermi('app:task:export')") @Log(title = "app任务管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArdAppTask ardAppTask) { public void export(HttpServletResponse response, ArdAppTask ardAppTask) { List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask); ExcelUtil<ArdAppTask> util = new ExcelUtil<ArdAppTask>(ArdAppTask.class); util.exportExcel(response, list, "app任务管理数据"); @@ -66,8 +73,7 @@ @ApiOperation("获取app任务管理详细信息") @PreAuthorize("@ss.hasPermi('app:task:query')") @GetMapping(value = "/{id}") public AjaxResult getInfoWithPic(@PathVariable("id") String id) { public AjaxResult getInfoWithPic(@PathVariable("id") String id) { return success(ardAppTaskService.selectArdAppTaskById(id)); } @@ -78,8 +84,7 @@ @PreAuthorize("@ss.hasPermi('app:task:add')") @Log(title = "app任务管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArdAppTask ardAppTask) { public AjaxResult add(@RequestBody ArdAppTask ardAppTask) { return toAjax(ardAppTaskService.insertArdAppTask(ardAppTask)); } @@ -89,8 +94,7 @@ @PreAuthorize("@ss.hasPermi('app:task:edit')") @Log(title = "app任务管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ArdAppTask ardAppTask) { public AjaxResult edit(@RequestBody ArdAppTask ardAppTask) { return toAjax(ardAppTaskService.updateArdAppTask(ardAppTask)); } @@ -100,8 +104,18 @@ @PreAuthorize("@ss.hasPermi('app:task:remove')") @Log(title = "app任务管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardAppTaskService.deleteArdAppTaskByIds(ids)); } /** * 更新app任务详情 */ @ApiOperation("更新app任务详情(打卡)") @PreAuthorize("@ss.hasPermi('app:taskdetail:edit')") @Log(title = "更新app任务详情", businessType = BusinessType.UPDATE) @PutMapping("/detail") public AjaxResult editDetail(@RequestBody ArdAppTaskDetail ardAppTaskDetail) { return toAjax(ardAppTaskService.updateArdAppTaskDetail(ardAppTaskDetail)); } } ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
@@ -1,9 +1,13 @@ package com.ruoyi.app.task.domain; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import java.util.List; /** * app任务详情对象 ard_app_task_detail @@ -50,7 +54,18 @@ @Excel(name = "任务ID") private String taskId; public void setId(String id) /** app任务详情图片信息 */ private List<ArdAppTaskDetailPic> ardAppTaskDetailPic; public List<ArdAppTaskDetailPic> getArdAppTaskDetailPic() { return ardAppTaskDetailPic; } public void setArdAppTaskDetailPic(List<ArdAppTaskDetailPic> ardAppTaskDetailPic) { this.ardAppTaskDetailPic = ardAppTaskDetailPic; } public void setId(String id) { this.id = id; } ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
@@ -4,6 +4,7 @@ import com.ruoyi.app.task.domain.ArdAppTask; import com.ruoyi.app.task.domain.ArdAppTaskDetail; import com.ruoyi.app.task.domain.ArdAppTaskPic; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; /** * app任务管理Mapper接口 @@ -29,7 +30,13 @@ * @return app任务管理集合 */ public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask); /** * 查询app任务管理列表带详情图片 * * @param ardAppTask app任务管理 * @return app任务管理集合 */ public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask); /** * 新增app任务管理 * @@ -111,4 +118,28 @@ * @return 结果 */ public int deleteArdAppTaskDetailByTaskId(String id); /** * 修改app任务详情 * * @param ardAppTaskDetail app任务详情对象 * @return 结果 */ public int updateArdAppTaskDetail(ArdAppTaskDetail ardAppTaskDetail); /** * 批量新增app任务详情图片 * * @param ardAppTaskDetailPicList app任务详情图片列表 * @return 结果 */ public int batchArdAppTaskDetailPic(List<ArdAppTaskDetailPic> ardAppTaskDetailPicList); /** * 批量删除app任务详情图片 * * @param id 需要删除的数据主键 * @return 结果 */ public int deleteArdAppTaskDetailPicByTaskDetailId(String id); } ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
@@ -2,6 +2,7 @@ import java.util.List; import com.ruoyi.app.task.domain.ArdAppTask; import com.ruoyi.app.task.domain.ArdAppTaskDetail; /** * app任务管理Service接口 @@ -26,6 +27,14 @@ * @return app任务管理集合 */ public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask); /** * 查询app任务详情管理列表 * * @param ardAppTask app任务详情对象 * @return app任务详情集合 */ public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask); /** * 新增app任务管理 @@ -58,4 +67,13 @@ * @return 结果 */ public int deleteArdAppTaskById(String id); /** * 修改app任务详情管理 * * @param ardAppTaskDetail app任务详情管理 * @return 结果 */ public int updateArdAppTaskDetail(ArdAppTaskDetail ardAppTaskDetail); } ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -1,20 +1,15 @@ package com.ruoyi.app.task.service.impl; import java.util.List; import com.ruoyi.app.task.domain.ArdAppTaskDetail; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; import com.ruoyi.app.tasktext.domain.ArdAppTaskText; import com.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.common.utils.uuid.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.SecurityUtils; import org.springframework.transaction.annotation.Transactional; @@ -22,7 +17,6 @@ import com.ruoyi.app.task.mapper.ArdAppTaskMapper; import com.ruoyi.app.task.domain.ArdAppTask; import com.ruoyi.app.task.service.IArdAppTaskService; import javax.annotation.Resource; /** @@ -59,6 +53,17 @@ @DataScope(deptAlias = "d", userAlias = "u") public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) { return ardAppTaskMapper.selectArdAppTaskList(ardAppTask); } /** * 查询app任务详情管理列表 * * @param ardAppTask app任务对象 * @return app任务详情列表 */ @Override public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask) { ardAppTask.setUserId(SecurityUtils.getUserId()); return ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask); } /** @@ -180,6 +185,10 @@ public void insertArdAppTaskText(ArdAppTask ardAppTask) { String userId = ardAppTask.getUserId(); String text = ardAppTask.getText(); if(StringUtils.isEmpty(text)) { return; } ArdAppTaskText ardAppTaskText = new ArdAppTaskText(); ardAppTaskText.setId(IdUtils.simpleUUID()); ardAppTaskText.setUserId(userId); @@ -189,4 +198,37 @@ ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText); } } /** * 修改app任务详情 * * @param ardAppTaskDetail app任务详情对象 */ @Override public int updateArdAppTaskDetail(ArdAppTaskDetail ardAppTaskDetail) { insertArdAppTaskPic(ardAppTaskDetail); return ardAppTaskMapper.updateArdAppTaskDetail(ardAppTaskDetail); } /** * 新增app任务详情图片信息 * * @param ardAppTaskDetail app任务详情对象 */ public void insertArdAppTaskPic(ArdAppTaskDetail ardAppTaskDetail) { List<ArdAppTaskDetailPic> ardAppTaskDetailPicList = ardAppTaskDetail.getArdAppTaskDetailPic(); String detailId = ardAppTaskDetail.getId(); if (StringUtils.isNotNull(ardAppTaskDetailPicList)) { List<ArdAppTaskDetailPic> list = new ArrayList<ArdAppTaskDetailPic>(); for (ArdAppTaskDetailPic ardAppTaskDetailPic : ardAppTaskDetailPicList) { ardAppTaskDetailPic.setId(IdUtils.simpleUUID()); ardAppTaskDetailPic.setTaskDetailId(detailId); list.add(ardAppTaskDetailPic); } if (list.size() > 0) { ardAppTaskMapper.deleteArdAppTaskDetailPicByTaskDetailId(detailId); ardAppTaskMapper.batchArdAppTaskDetailPic(list); } } } } ard-work/src/main/java/com/ruoyi/app/taskdetail/controller/ArdAppTaskDetailPicController.java
对比新文件 @@ -0,0 +1,104 @@ package com.ruoyi.app.taskdetail.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; 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.taskdetail.domain.ArdAppTaskDetailPic; import com.ruoyi.app.taskdetail.service.IArdAppTaskDetailPicService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * app任务详情图片Controller * * @author ard * @date 2023-07-25 */ @RestController @RequestMapping("/app/pic") public class ArdAppTaskDetailPicController extends BaseController { @Autowired private IArdAppTaskDetailPicService ardAppTaskDetailPicService; /** * 查询app任务详情图片列表 */ @PreAuthorize("@ss.hasPermi('app:pic:list')") @GetMapping("/list") public TableDataInfo list(ArdAppTaskDetailPic ardAppTaskDetailPic) { startPage(); List<ArdAppTaskDetailPic> list = ardAppTaskDetailPicService.selectArdAppTaskDetailPicList(ardAppTaskDetailPic); return getDataTable(list); } /** * 导出app任务详情图片列表 */ @PreAuthorize("@ss.hasPermi('app:pic:export')") @Log(title = "app任务详情图片", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ArdAppTaskDetailPic ardAppTaskDetailPic) { List<ArdAppTaskDetailPic> list = ardAppTaskDetailPicService.selectArdAppTaskDetailPicList(ardAppTaskDetailPic); ExcelUtil<ArdAppTaskDetailPic> util = new ExcelUtil<ArdAppTaskDetailPic>(ArdAppTaskDetailPic.class); util.exportExcel(response, list, "app任务详情图片数据"); } /** * 获取app任务详情图片详细信息 */ @PreAuthorize("@ss.hasPermi('app:pic:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(ardAppTaskDetailPicService.selectArdAppTaskDetailPicById(id)); } /** * 新增app任务详情图片 */ @PreAuthorize("@ss.hasPermi('app:pic:add')") @Log(title = "app任务详情图片", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ArdAppTaskDetailPic ardAppTaskDetailPic) { return toAjax(ardAppTaskDetailPicService.insertArdAppTaskDetailPic(ardAppTaskDetailPic)); } /** * 修改app任务详情图片 */ @PreAuthorize("@ss.hasPermi('app:pic:edit')") @Log(title = "app任务详情图片", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ArdAppTaskDetailPic ardAppTaskDetailPic) { return toAjax(ardAppTaskDetailPicService.updateArdAppTaskDetailPic(ardAppTaskDetailPic)); } /** * 删除app任务详情图片 */ @PreAuthorize("@ss.hasPermi('app:pic:remove')") @Log(title = "app任务详情图片", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(ardAppTaskDetailPicService.deleteArdAppTaskDetailPicByIds(ids)); } } ard-work/src/main/java/com/ruoyi/app/taskdetail/domain/ArdAppTaskDetailPic.java
对比新文件 @@ -0,0 +1,65 @@ package com.ruoyi.app.taskdetail.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; /** * app任务详情图片对象 ard_app_task_detail_pic * * @author ard * @date 2023-07-25 */ public class ArdAppTaskDetailPic extends BaseEntity { private static final long serialVersionUID = 1L; /** ID */ private String id; /** app任务详情ID */ @Excel(name = "app任务详情ID") private String taskDetailId; /** app任务图片url */ @Excel(name = "app任务图片url") private String picUrl; public void setId(String id) { this.id = id; } public String getId() { return id; } public void setTaskDetailId(String taskDetailId) { this.taskDetailId = taskDetailId; } public String getTaskDetailId() { return taskDetailId; } public void setPicUrl(String picUrl) { this.picUrl = picUrl; } public String getPicUrl() { return picUrl; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("taskDetailId", getTaskDetailId()) .append("picUrl", getPicUrl()) .toString(); } } ard-work/src/main/java/com/ruoyi/app/taskdetail/mapper/ArdAppTaskDetailPicMapper.java
对比新文件 @@ -0,0 +1,61 @@ package com.ruoyi.app.taskdetail.mapper; import java.util.List; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; /** * app任务详情图片Mapper接口 * * @author ard * @date 2023-07-25 */ public interface ArdAppTaskDetailPicMapper { /** * 查询app任务详情图片 * * @param id app任务详情图片主键 * @return app任务详情图片 */ public ArdAppTaskDetailPic selectArdAppTaskDetailPicById(String id); /** * 查询app任务详情图片列表 * * @param ardAppTaskDetailPic app任务详情图片 * @return app任务详情图片集合 */ public List<ArdAppTaskDetailPic> selectArdAppTaskDetailPicList(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 新增app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ public int insertArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 修改app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ public int updateArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 删除app任务详情图片 * * @param id app任务详情图片主键 * @return 结果 */ public int deleteArdAppTaskDetailPicById(String id); /** * 批量删除app任务详情图片 * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteArdAppTaskDetailPicByIds(String[] ids); } ard-work/src/main/java/com/ruoyi/app/taskdetail/service/IArdAppTaskDetailPicService.java
对比新文件 @@ -0,0 +1,61 @@ package com.ruoyi.app.taskdetail.service; import java.util.List; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; /** * app任务详情图片Service接口 * * @author ard * @date 2023-07-25 */ public interface IArdAppTaskDetailPicService { /** * 查询app任务详情图片 * * @param id app任务详情图片主键 * @return app任务详情图片 */ public ArdAppTaskDetailPic selectArdAppTaskDetailPicById(String id); /** * 查询app任务详情图片列表 * * @param ardAppTaskDetailPic app任务详情图片 * @return app任务详情图片集合 */ public List<ArdAppTaskDetailPic> selectArdAppTaskDetailPicList(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 新增app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ public int insertArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 修改app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ public int updateArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic); /** * 批量删除app任务详情图片 * * @param ids 需要删除的app任务详情图片主键集合 * @return 结果 */ public int deleteArdAppTaskDetailPicByIds(String[] ids); /** * 删除app任务详情图片信息 * * @param id app任务详情图片主键 * @return 结果 */ public int deleteArdAppTaskDetailPicById(String id); } ard-work/src/main/java/com/ruoyi/app/taskdetail/service/impl/ArdAppTaskDetailPicServiceImpl.java
对比新文件 @@ -0,0 +1,87 @@ package com.ruoyi.app.taskdetail.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.app.taskdetail.mapper.ArdAppTaskDetailPicMapper; import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic; import com.ruoyi.app.taskdetail.service.IArdAppTaskDetailPicService; /** * app任务详情图片Service业务层处理 * * @author ard * @date 2023-07-25 */ @Service public class ArdAppTaskDetailPicServiceImpl implements IArdAppTaskDetailPicService { @Autowired private ArdAppTaskDetailPicMapper ardAppTaskDetailPicMapper; /** * 查询app任务详情图片 * * @param id app任务详情图片主键 * @return app任务详情图片 */ @Override public ArdAppTaskDetailPic selectArdAppTaskDetailPicById(String id) { return ardAppTaskDetailPicMapper.selectArdAppTaskDetailPicById(id); } /** * 查询app任务详情图片列表 * * @param ardAppTaskDetailPic app任务详情图片 * @return app任务详情图片 */ @Override public List<ArdAppTaskDetailPic> selectArdAppTaskDetailPicList(ArdAppTaskDetailPic ardAppTaskDetailPic) { return ardAppTaskDetailPicMapper.selectArdAppTaskDetailPicList(ardAppTaskDetailPic); } /** * 新增app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ @Override public int insertArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic) { return ardAppTaskDetailPicMapper.insertArdAppTaskDetailPic(ardAppTaskDetailPic); } /** * 修改app任务详情图片 * * @param ardAppTaskDetailPic app任务详情图片 * @return 结果 */ @Override public int updateArdAppTaskDetailPic(ArdAppTaskDetailPic ardAppTaskDetailPic) { return ardAppTaskDetailPicMapper.updateArdAppTaskDetailPic(ardAppTaskDetailPic); } /** * 批量删除app任务详情图片 * * @param ids 需要删除的app任务详情图片主键 * @return 结果 */ @Override public int deleteArdAppTaskDetailPicByIds(String[] ids) { return ardAppTaskDetailPicMapper.deleteArdAppTaskDetailPicByIds(ids); } /** * 删除app任务详情图片信息 * * @param id app任务详情图片主键 * @return 结果 */ @Override public int deleteArdAppTaskDetailPicById(String id) { return ardAppTaskDetailPicMapper.deleteArdAppTaskDetailPicById(id); } } ard-work/src/main/resources/mapper/app/ArdAppTaskDetailPicMapper.xml
对比新文件 @@ -0,0 +1,63 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.app.taskdetail.mapper.ArdAppTaskDetailPicMapper"> <resultMap type="ArdAppTaskDetailPic" id="ArdAppTaskDetailPicResult"> <result property="id" column="id" /> <result property="taskDetailId" column="task_detail_id" /> <result property="picUrl" column="pic_url" /> </resultMap> <sql id="selectArdAppTaskDetailPicVo"> select id, task_detail_id, pic_url from ard_app_task_detail_pic </sql> <select id="selectArdAppTaskDetailPicList" parameterType="ArdAppTaskDetailPic" resultMap="ArdAppTaskDetailPicResult"> <include refid="selectArdAppTaskDetailPicVo"/> <where> <if test="taskDetailId != null and taskDetailId != ''"> and task_detail_id = #{taskDetailId}</if> <if test="picUrl != null and picUrl != ''"> and pic_url = #{picUrl}</if> </where> </select> <select id="selectArdAppTaskDetailPicById" parameterType="String" resultMap="ArdAppTaskDetailPicResult"> <include refid="selectArdAppTaskDetailPicVo"/> where id = #{id} </select> <insert id="insertArdAppTaskDetailPic" parameterType="ArdAppTaskDetailPic"> insert into ard_app_task_detail_pic <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="taskDetailId != null">task_detail_id,</if> <if test="picUrl != null">pic_url,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="taskDetailId != null">#{taskDetailId},</if> <if test="picUrl != null">#{picUrl},</if> </trim> </insert> <update id="updateArdAppTaskDetailPic" parameterType="ArdAppTaskDetailPic"> update ard_app_task_detail_pic <trim prefix="SET" suffixOverrides=","> <if test="taskDetailId != null">task_detail_id = #{taskDetailId},</if> <if test="picUrl != null">pic_url = #{picUrl},</if> </trim> where id = #{id} </update> <delete id="deleteArdAppTaskDetailPicById" parameterType="String"> delete from ard_app_task_detail_pic where id = #{id} </delete> <delete id="deleteArdAppTaskDetailPicByIds" parameterType="String"> delete from ard_app_task_detail_pic where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> </mapper> ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -73,7 +73,33 @@ ${params.dataScope} </where> </select> <select id="selectArdAppTaskListWithDetail" parameterType="ArdAppTask" resultMap="ArdAppTaskSubResult"> select a.id, a.name, a.text, a.voice, a.dept_id, a.user_id, a.create_by, a.create_time, a.update_by, a.update_time, b.id as sub2_id, b.task_id as sub2_task_id, b.pic_url as sub2_pic_url, c.id as sub1_id, c.name as sub1_name, c.longitude as sub1_longitude, c.latitude as sub1_latitde, c.altitude as sub1_altitude, c.user_id as sub1_user_id, c.text as sub1_text, c.voice as sub1_voice from ard_app_task a left join ard_app_task_pic b on b.task_id = a.id left join ard_app_task_detail c on c.task_id = a.id where c.user_id = #{userId} </select> <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskSubResult"> select a.id, a.name, @@ -219,6 +245,7 @@ ( #{item.id}, #{item.taskId}, #{item.picUrl}) </foreach> </insert> <delete id="deleteArdAppTaskDetailByTaskIds" parameterType="String"> delete from ard_app_task_detail where task_id in <foreach item="taskId" collection="array" open="(" separator="," close=")"> @@ -239,4 +266,24 @@ #{item.text}, #{item.voice}, #{item.taskId}) </foreach> </insert> <update id="updateArdAppTaskDetail" parameterType="ArdAppTaskDetail"> update ard_app_task_detail <trim prefix="SET" suffixOverrides=","> <if test="text != null">text = #{text},</if> <if test="voice != null">voice = #{voice},</if> </trim> where id = #{id} </update> <insert id="batchArdAppTaskDetailPic"> insert into ard_app_task_detail_pic( id, task_detail_id, pic_url) values <foreach item="item" index="index" collection="list" separator=","> ( #{item.id}, #{item.taskDetailId}, #{item.picUrl}) </foreach> </insert> <delete id="deleteArdAppTaskDetailPicByTaskDetailId" parameterType="String"> delete from ard_app_task_detail_pic where task_detail_id = #{taskDetailId} </delete> </mapper> ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -19,90 +19,128 @@ /** * 用户对象 sys_user * * * @author ruoyi */ public class SysUser extends BaseEntity { public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; /** 用户ID */ /** * 用户ID */ @Excel(name = "用户序号", cellType = ColumnType.STRING, prompt = "用户编号") private String userId; /** 部门ID */ /** * 部门ID */ @Excel(name = "部门编号", type = Type.IMPORT) private Long deptId; /** 用户账号 */ /** * 用户账号 */ @Excel(name = "登录名称") private String userName; /** 用户昵称 */ /** * 用户昵称 */ @Excel(name = "用户名称") private String nickName; /** 用户邮箱 */ /** * 用户邮箱 */ @Excel(name = "用户邮箱") private String email; /** 手机号码 */ /** * 手机号码 */ @Excel(name = "手机号码") private String phonenumber; /** 用户性别 */ /** * 用户性别 */ @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") private String sex; /** 用户头像 */ /** * 用户头像 */ private String avatar; /** 密码 */ /** * 密码 */ @Excel(name = "密码") private String password; /** 帐号状态(0正常 1停用) */ /** * 帐号状态(0正常 1停用) */ @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") private String status; /** 删除标志(0代表存在 2代表删除) */ /** * 删除标志(0代表存在 2代表删除) */ private String delFlag; /** 最后登录IP */ /** * 最后登录IP */ @Excel(name = "最后登录IP", type = Type.EXPORT) private String loginIp; /** 最后登录时间 */ /** * 最后登录时间 */ @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) private Date loginDate; /** 部门对象 */ /** * 部门对象 */ @Excels({ @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) }) private SysDept dept; /** 角色对象 */ /** * 角色对象 */ private List<SysRole> roles; /** 角色组 */ /** * 角色组 */ private Long[] roleIds; /** 岗位组 */ /** * 岗位组 */ private Long[] postIds; /** 角色ID */ /** * 角色ID */ private Long roleId; /** 相机操控优先级 */ /** * 相机操控优先级 */ private Integer cameraPriority; /** 用户融云token */ /** * 用户融云token */ private String rongCloudToken; public SysUser() { public SysUser() { } @@ -122,239 +160,203 @@ this.cameraPriority = cameraPriority; } public SysUser(String userId) { public SysUser(String userId) { this.userId = userId; } public String getUserId() { public String getUserId() { return userId; } public void setUserId(String userId) { public void setUserId(String userId) { this.userId = userId; } public boolean isAdmin() { public boolean isAdmin() { return isAdmin(this.userId); } public static boolean isAdmin(String userId) { public static boolean isAdmin(String userId) { return userId != null && userId.equals("1"); } public boolean isApp() { return isApp(this.userId); /** * 是否app指挥端 */ public boolean isAppLeader() { return isAppLeader(this.userId); } public boolean isApp(String userId) { public boolean isAppLeader(String userId) { return userId != null && this.getRoles().stream().anyMatch(sysRole -> sysRole.getRoleKey().contains("appLeader")); } public Long getDeptId() { public Long getDeptId() { return deptId; } public void setDeptId(Long deptId) { public void setDeptId(Long deptId) { this.deptId = deptId; } @Xss(message = "用户昵称不能包含脚本字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") public String getNickName() { public String getNickName() { return nickName; } public void setNickName(String nickName) { public void setNickName(String nickName) { this.nickName = nickName; } @Xss(message = "用户账号不能包含脚本字符") @NotBlank(message = "用户账号不能为空") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") public String getUserName() { public String getUserName() { return userName; } public void setUserName(String userName) { public void setUserName(String userName) { this.userName = userName; } @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") public String getEmail() { public String getEmail() { return email; } public void setEmail(String email) { public void setEmail(String email) { this.email = email; } @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") public String getPhonenumber() { public String getPhonenumber() { return phonenumber; } public void setPhonenumber(String phonenumber) { public void setPhonenumber(String phonenumber) { this.phonenumber = phonenumber; } public String getSex() { public String getSex() { return sex; } public void setSex(String sex) { public void setSex(String sex) { this.sex = sex; } public String getAvatar() { public String getAvatar() { return avatar; } public void setAvatar(String avatar) { public void setAvatar(String avatar) { this.avatar = avatar; } public String getPassword() { public String getPassword() { return password; } public void setPassword(String password) { public void setPassword(String password) { this.password = password; } public String getStatus() { public String getStatus() { return status; } public void setStatus(String status) { public void setStatus(String status) { this.status = status; } public String getDelFlag() { public String getDelFlag() { return delFlag; } public void setDelFlag(String delFlag) { public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getLoginIp() { public String getLoginIp() { return loginIp; } public void setLoginIp(String loginIp) { public void setLoginIp(String loginIp) { this.loginIp = loginIp; } public Date getLoginDate() { public Date getLoginDate() { return loginDate; } public void setLoginDate(Date loginDate) { public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } public SysDept getDept() { public SysDept getDept() { return dept; } public void setDept(SysDept dept) { public void setDept(SysDept dept) { this.dept = dept; } public List<SysRole> getRoles() { public List<SysRole> getRoles() { return roles; } public void setRoles(List<SysRole> roles) { public void setRoles(List<SysRole> roles) { this.roles = roles; } public Long[] getRoleIds() { public Long[] getRoleIds() { return roleIds; } public void setRoleIds(Long[] roleIds) { public void setRoleIds(Long[] roleIds) { this.roleIds = roleIds; } public Long[] getPostIds() { public Long[] getPostIds() { return postIds; } public void setPostIds(Long[] postIds) { public void setPostIds(Long[] postIds) { this.postIds = postIds; } public Long getRoleId() { public Long getRoleId() { return roleId; } public void setRoleId(Long roleId) { public void setRoleId(Long roleId) { this.roleId = roleId; } @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("userId", getUserId()) .append("deptId", getDeptId()) .append("userName", getUserName()) .append("nickName", getNickName()) .append("email", getEmail()) .append("phonenumber", getPhonenumber()) .append("sex", getSex()) .append("avatar", getAvatar()) .append("password", getPassword()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("loginIp", getLoginIp()) .append("loginDate", getLoginDate()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .append("dept", getDept()) .toString(); .append("userId", getUserId()) .append("deptId", getDeptId()) .append("userName", getUserName()) .append("nickName", getNickName()) .append("email", getEmail()) .append("phonenumber", getPhonenumber()) .append("sex", getSex()) .append("avatar", getAvatar()) .append("password", getPassword()) .append("status", getStatus()) .append("delFlag", getDelFlag()) .append("loginIp", getLoginIp()) .append("loginDate", getLoginDate()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .append("dept", getDept()) .toString(); } } ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -69,8 +69,8 @@ if (StringUtils.isNotNull(loginUser)) { SysUser currentUser = loginUser.getUser(); // 如果是超级管理员,则不过滤数据 if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()&& !currentUser.isApp()) // 如果是超级管理员,则不过滤数据;如果是app指挥端,则不过滤数据; if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()&& !currentUser.isAppLeader()) { String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext()); dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),