From 2f07c0e336517efc48f0386eb04bee28804af5a7 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 25 七月 2023 10:44:41 +0800
Subject: [PATCH] 增加app任务打卡 增加app按用户查询任务列表

---
 ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java                           |   33 ++
 ard-work/src/main/java/com/ruoyi/app/taskdetail/service/IArdAppTaskDetailPicService.java         |   61 +++
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                                      |   49 +++
 ard-work/src/main/java/com/ruoyi/app/taskdetail/domain/ArdAppTaskDetailPic.java                  |   65 ++++
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java                   |    4 
 ard-work/src/main/java/com/ruoyi/app/taskdetail/service/impl/ArdAppTaskDetailPicServiceImpl.java |   87 +++++
 ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java                |   56 +++
 ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java                        |   18 +
 ard-work/src/main/java/com/ruoyi/app/taskdetail/mapper/ArdAppTaskDetailPicMapper.java            |   61 +++
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java                      |  262 ++++++++--------
 ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java                   |   44 +
 ard-work/src/main/java/com/ruoyi/app/taskdetail/controller/ArdAppTaskDetailPicController.java    |  104 ++++++
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java                           |   17 +
 ard-work/src/main/resources/mapper/app/ArdAppTaskDetailPicMapper.xml                             |   63 +++
 14 files changed, 767 insertions(+), 157 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
index dba3030..b1cf439 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
+++ b/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));
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
index e52c535..bf0a2a4 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
+++ b/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;
     }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
index e341813..46390fe 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
+++ b/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);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
index 03a72a4..514de43 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
+++ b/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);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
index b5cd85b..a8cf189 100644
--- a/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
+++ b/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);
+            }
+        }
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/taskdetail/controller/ArdAppTaskDetailPicController.java b/ard-work/src/main/java/com/ruoyi/app/taskdetail/controller/ArdAppTaskDetailPicController.java
new file mode 100644
index 0000000..730252d
--- /dev/null
+++ b/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));
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/taskdetail/domain/ArdAppTaskDetailPic.java b/ard-work/src/main/java/com/ruoyi/app/taskdetail/domain/ArdAppTaskDetailPic.java
new file mode 100644
index 0000000..2dc3354
--- /dev/null
+++ b/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();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/taskdetail/mapper/ArdAppTaskDetailPicMapper.java b/ard-work/src/main/java/com/ruoyi/app/taskdetail/mapper/ArdAppTaskDetailPicMapper.java
new file mode 100644
index 0000000..7153964
--- /dev/null
+++ b/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);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/taskdetail/service/IArdAppTaskDetailPicService.java b/ard-work/src/main/java/com/ruoyi/app/taskdetail/service/IArdAppTaskDetailPicService.java
new file mode 100644
index 0000000..b68c17c
--- /dev/null
+++ b/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);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/taskdetail/service/impl/ArdAppTaskDetailPicServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/taskdetail/service/impl/ArdAppTaskDetailPicServiceImpl.java
new file mode 100644
index 0000000..8aa8769
--- /dev/null
+++ b/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);
+    }
+}
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskDetailPicMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskDetailPicMapper.xml
new file mode 100644
index 0000000..73dd1b9
--- /dev/null
+++ b/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>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index 6688e65..297f886 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/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>
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index 4e5bf1e..5675fd8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/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姝e父 1鍋滅敤锛� */
+    /**
+     * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+     */
     @Excel(name = "甯愬彿鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
     private String status;
 
-    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
+    /**
+     * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
+     */
     private String delFlag;
 
-    /** 鏈�鍚庣櫥褰旾P */
+    /**
+     * 鏈�鍚庣櫥褰旾P
+     */
     @Excel(name = "鏈�鍚庣櫥褰旾P", 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();
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
index c961522..9fbf323 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+++ b/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())
+            // 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�;濡傛灉鏄痑pp鎸囨尌绔紝鍒欎笉杩囨护鏁版嵁;
+            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()&& !currentUser.isAppLeader())
             {
                 String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
                 dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),

--
Gitblit v1.9.3