From 5bf75f909fc56a82be653431f18c134bd32e4430 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 22 七月 2023 14:04:19 +0800
Subject: [PATCH] 增加app任务下发

---
 ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java                    |  113 ++++
 ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml                               |  190 +++++++
 ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java    |  104 ++++
 ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java |   89 +++
 ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java                  |   65 ++
 ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.xml                           |   63 ++
 ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java         |  190 +++++++
 ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java                 |   61 ++
 ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java            |   61 ++
 ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java         |   61 ++
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java                       |   65 ++
 ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java            |  104 ++++
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java                    |  149 +++++
 ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java                          |  149 +++++
 14 files changed, 1,464 insertions(+), 0 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
new file mode 100644
index 0000000..1eb5f3e
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.app.task.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.task.domain.ArdAppTask;
+import com.ruoyi.app.task.service.IArdAppTaskService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * app浠诲姟绠$悊Controller
+ *
+ * @author ard
+ * @date 2023-07-22
+ */
+@RestController
+@RequestMapping("/app/task")
+public class ArdAppTaskController extends BaseController
+{
+    @Autowired
+    private IArdAppTaskService ardAppTaskService;
+
+    /**
+     * 鏌ヨapp浠诲姟绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ArdAppTask ardAppTask)
+    {
+        startPage();
+        List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭app浠诲姟绠$悊鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:export')")
+    @Log(title = "app浠诲姟绠$悊", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    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浠诲姟绠$悊鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇app浠诲姟绠$悊璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(ardAppTaskService.selectArdAppTaskById(id));
+    }
+
+    /**
+     * 鏂板app浠诲姟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:add')")
+    @Log(title = "app浠诲姟绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ArdAppTask ardAppTask)
+    {
+        return toAjax(ardAppTaskService.insertArdAppTask(ardAppTask));
+    }
+
+    /**
+     * 淇敼app浠诲姟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:edit')")
+    @Log(title = "app浠诲姟绠$悊", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ArdAppTask ardAppTask)
+    {
+        return toAjax(ardAppTaskService.updateArdAppTask(ardAppTask));
+    }
+
+    /**
+     * 鍒犻櫎app浠诲姟绠$悊
+     */
+    @PreAuthorize("@ss.hasPermi('app:task:remove')")
+    @Log(title = "app浠诲姟绠$悊", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(ardAppTaskService.deleteArdAppTaskByIds(ids));
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java
new file mode 100644
index 0000000..65f7bed
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java
@@ -0,0 +1,149 @@
+package com.ruoyi.app.task.domain;
+
+import java.util.List;
+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
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public class ArdAppTask extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private String id;
+
+    /** 浠诲姟鍚嶇О */
+    @Excel(name = "浠诲姟鍚嶇О")
+    private String name;
+
+    /** 浠诲姟鏂囨湰 */
+    @Excel(name = "浠诲姟鏂囨湰")
+    private String text;
+
+    /** 浠诲姟璇煶 */
+    @Excel(name = "浠诲姟璇煶")
+    private String voice;
+
+    /** 閮ㄩ棬ID */
+    @Excel(name = "閮ㄩ棬ID")
+    private Integer deptId;
+
+    /** 鐢ㄦ埛ID */
+    @Excel(name = "鐢ㄦ埛ID")
+    private String userId;
+    /** app浠诲姟鍥剧墖淇℃伅 */
+    private List<ArdAppTaskPic> ardAppTaskPicList;
+
+    /** app浠诲姟鍏宠仈澶氱敤鎴� */
+    private List<String> userIds;
+
+    /** app浠诲姟璇︽儏淇℃伅 */
+    private List<ArdAppTaskDetail> ardAppTaskDetailList;
+
+    public List<ArdAppTaskPic> getArdAppTaskPicList()
+    {
+        return ardAppTaskPicList;
+    }
+
+    public List<String> getUserIds() {
+        return userIds;
+    }
+
+    public void setUserIds(List<String> userIds) {
+        this.userIds = userIds;
+    }
+
+    public void setArdAppTaskPicList(List<ArdAppTaskPic> ardAppTaskPicList)
+    {
+        this.ardAppTaskPicList = ardAppTaskPicList;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setText(String text) 
+    {
+        this.text = text;
+    }
+
+    public String getText() 
+    {
+        return text;
+    }
+    public void setVoice(String voice) 
+    {
+        this.voice = voice;
+    }
+
+    public String getVoice() 
+    {
+        return voice;
+    }
+    public void setDeptId(Integer deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Integer getDeptId() 
+    {
+        return deptId;
+    }
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+
+    public List<ArdAppTaskDetail> getArdAppTaskDetailList()
+    {
+        return ardAppTaskDetailList;
+    }
+
+    public void setArdAppTaskDetailList(List<ArdAppTaskDetail> ardAppTaskDetailList)
+    {
+        this.ardAppTaskDetailList = ardAppTaskDetailList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("id", getId())
+            .append("name", getName())
+            .append("text", getText())
+            .append("voice", getVoice())
+            .append("deptId", getDeptId())
+            .append("userId", getUserId())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("ardAppTaskDetailList", getArdAppTaskDetailList())
+            .toString();
+    }
+}
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
new file mode 100644
index 0000000..e52c535
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java
@@ -0,0 +1,149 @@
+package com.ruoyi.app.task.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
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public class ArdAppTaskDetail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private String id;
+
+    /** 鍏磋叮鐐瑰悕绉� */
+    @Excel(name = "鍏磋叮鐐瑰悕绉�")
+    private String name;
+
+    /** 鍏磋叮鐐圭粡搴� */
+    @Excel(name = "鍏磋叮鐐圭粡搴�")
+    private String longitude;
+
+    /** 鍏磋叮鐐圭含搴� */
+    @Excel(name = "鍏磋叮鐐圭含搴�")
+    private String latitude;
+
+    /** 鍏磋叮鐐归珮灞� */
+    @Excel(name = "鍏磋叮鐐归珮灞�")
+    private String altitude;
+
+    /** 鍏宠仈鐢ㄦ埛ID */
+    @Excel(name = "鍏宠仈鐢ㄦ埛ID")
+    private String userId;
+
+    /** 鎵撳崱鏂囨湰 */
+    @Excel(name = "鎵撳崱鏂囨湰")
+    private String text;
+
+    /** 鎵撳崱璇煶 */
+    @Excel(name = "鎵撳崱璇煶")
+    private String voice;
+
+    /** 浠诲姟ID */
+    @Excel(name = "浠诲姟ID")
+    private String taskId;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setLongitude(String longitude) 
+    {
+        this.longitude = longitude;
+    }
+
+    public String getLongitude() 
+    {
+        return longitude;
+    }
+    public void setLatitude(String latitude) 
+    {
+        this.latitude = latitude;
+    }
+
+    public String getLatitude() 
+    {
+        return latitude;
+    }
+    public void setAltitude(String altitude) 
+    {
+        this.altitude = altitude;
+    }
+
+    public String getAltitude() 
+    {
+        return altitude;
+    }
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+    public void setText(String text) 
+    {
+        this.text = text;
+    }
+
+    public String getText() 
+    {
+        return text;
+    }
+    public void setVoice(String voice) 
+    {
+        this.voice = voice;
+    }
+
+    public String getVoice() 
+    {
+        return voice;
+    }
+    public void setTaskId(String taskId) 
+    {
+        this.taskId = taskId;
+    }
+
+    public String getTaskId() 
+    {
+        return taskId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("longitude", getLongitude())
+            .append("latitude", getLatitude())
+            .append("altitude", getAltitude())
+            .append("userId", getUserId())
+            .append("text", getText())
+            .append("voice", getVoice())
+            .append("taskId", getTaskId())
+            .toString();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java
new file mode 100644
index 0000000..b37e20e
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskPic.java
@@ -0,0 +1,65 @@
+package com.ruoyi.app.task.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_pic
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public class ArdAppTaskPic extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private String id;
+
+    /** app浠诲姟ID */
+    @Excel(name = "app浠诲姟ID")
+    private String taskId;
+
+    /** app浠诲姟鍥剧墖url */
+    @Excel(name = "app浠诲姟鍥剧墖url")
+    private String picUrl;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setTaskId(String taskId) 
+    {
+        this.taskId = taskId;
+    }
+
+    public String getTaskId() 
+    {
+        return taskId;
+    }
+    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("taskId", getTaskId())
+            .append("picUrl", getPicUrl())
+            .toString();
+    }
+}
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
new file mode 100644
index 0000000..6869eb6
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/mapper/ArdAppTaskMapper.java
@@ -0,0 +1,113 @@
+package com.ruoyi.app.task.mapper;
+
+import java.util.List;
+import com.ruoyi.app.task.domain.ArdAppTask;
+import com.ruoyi.app.task.domain.ArdAppTaskDetail;
+import com.ruoyi.app.task.domain.ArdAppTaskPic;
+
+/**
+ * app浠诲姟绠$悊Mapper鎺ュ彛
+ *
+ * @author ard
+ * @date 2023-07-22
+ */
+public interface ArdAppTaskMapper
+{
+    /**
+     * 鏌ヨapp浠诲姟绠$悊
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return app浠诲姟绠$悊
+     */
+    public ArdAppTask selectArdAppTaskById(String id);
+
+    /**
+     * 鏌ヨapp浠诲姟绠$悊鍒楄〃
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return app浠诲姟绠$悊闆嗗悎
+     */
+    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask);
+
+    /**
+     * 鏂板app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertArdAppTask(ArdAppTask ardAppTask);
+
+    /**
+     * 淇敼app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateArdAppTask(ArdAppTask ardAppTask);
+
+    /**
+     * 鍒犻櫎app浠诲姟绠$悊
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskById(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskByIds(String[] ids);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟鍥剧墖
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskPicByTaskIds(String[] ids);
+
+    /**
+     * 鎵归噺鏂板app浠诲姟鍥剧墖
+     *
+     * @param ardAppTaskPicList app浠诲姟鍥剧墖鍒楄〃
+     * @return 缁撴灉
+     */
+    public int batchArdAppTaskPic(List<ArdAppTaskPic> ardAppTaskPicList);
+
+
+    /**
+     * 閫氳繃app浠诲姟绠$悊涓婚敭鍒犻櫎app浠诲姟鍥剧墖淇℃伅
+     *
+     * @param id app浠诲姟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskPicByTaskId(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟璇︽儏
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskDetailByTaskIds(String[] ids);
+
+    /**
+     * 鎵归噺鏂板app浠诲姟璇︽儏
+     *
+     * @param ardAppTaskDetailList app浠诲姟璇︽儏鍒楄〃
+     * @return 缁撴灉
+     */
+    public int batchArdAppTaskDetail(List<ArdAppTaskDetail> ardAppTaskDetailList);
+
+
+    /**
+     * 閫氳繃app浠诲姟绠$悊涓婚敭鍒犻櫎app浠诲姟璇︽儏淇℃伅
+     *
+     * @param id app浠诲姟绠$悊ID
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskDetailByTaskId(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
new file mode 100644
index 0000000..03a72a4
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.app.task.service;
+
+import java.util.List;
+import com.ruoyi.app.task.domain.ArdAppTask;
+
+/**
+ * app浠诲姟绠$悊Service鎺ュ彛
+ *
+ * @author ard
+ * @date 2023-07-22
+ */
+public interface IArdAppTaskService
+{
+    /**
+     * 鏌ヨapp浠诲姟绠$悊
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return app浠诲姟绠$悊
+     */
+    public ArdAppTask selectArdAppTaskById(String id);
+
+    /**
+     * 鏌ヨapp浠诲姟绠$悊鍒楄〃
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return app浠诲姟绠$悊闆嗗悎
+     */
+    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask);
+
+    /**
+     * 鏂板app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    public int insertArdAppTask(ArdAppTask ardAppTask);
+
+    /**
+     * 淇敼app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    public int updateArdAppTask(ArdAppTask ardAppTask);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑app浠诲姟绠$悊涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskByIds(String[] ids);
+
+    /**
+     * 鍒犻櫎app浠诲姟绠$悊淇℃伅
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskById(String id);
+}
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
new file mode 100644
index 0000000..79c86b7
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java
@@ -0,0 +1,190 @@
+package com.ruoyi.app.task.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.app.task.domain.ArdAppTaskDetail;
+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;
+import com.ruoyi.app.task.domain.ArdAppTaskPic;
+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;
+
+/**
+ * app浠诲姟绠$悊Service涓氬姟灞傚鐞�
+ *
+ * @author ard
+ * @date 2023-07-22
+ */
+@Service
+public class ArdAppTaskServiceImpl implements IArdAppTaskService {
+    @Resource
+    private ArdAppTaskMapper ardAppTaskMapper;
+    @Resource
+    private ArdAppTaskTextMapper ardAppTaskTextMapper;
+    /**
+     * 鏌ヨapp浠诲姟绠$悊
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return app浠诲姟绠$悊
+     */
+    @Override
+    public ArdAppTask selectArdAppTaskById(String id) {
+        return ardAppTaskMapper.selectArdAppTaskById(id);
+    }
+
+    /**
+     * 鏌ヨapp浠诲姟绠$悊鍒楄〃
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return app浠诲姟绠$悊
+     */
+    @Override
+    @DataScope(deptAlias = "d", userAlias = "u")
+    public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) {
+        return ardAppTaskMapper.selectArdAppTaskList(ardAppTask);
+    }
+
+    /**
+     * 鏂板app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int insertArdAppTask(ArdAppTask ardAppTask) {
+        ardAppTask.setId(IdUtils.simpleUUID());
+        ardAppTask.setUserId(SecurityUtils.getUserId());
+        ardAppTask.setCreateBy(SecurityUtils.getUsername());
+        ardAppTask.setCreateTime(DateUtils.getNowDate());
+        int rows = ardAppTaskMapper.insertArdAppTask(ardAppTask);
+        insertArdAppTaskPic(ardAppTask);
+        insertArdAppTaskDetail(ardAppTask);
+        insertArdAppTaskText(ardAppTask);
+        return rows;
+    }
+
+    /**
+     * 淇敼app浠诲姟绠$悊
+     *
+     * @param ardAppTask app浠诲姟绠$悊
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int updateArdAppTask(ArdAppTask ardAppTask) {
+        ardAppTask.setUpdateBy(SecurityUtils.getUsername());
+        ardAppTask.setUpdateTime(DateUtils.getNowDate());
+        ardAppTaskMapper.deleteArdAppTaskPicByTaskId(ardAppTask.getId());
+        ardAppTaskMapper.deleteArdAppTaskDetailByTaskId(ardAppTask.getId());
+        insertArdAppTaskPic(ardAppTask);
+        insertArdAppTaskDetail(ardAppTask);
+        return ardAppTaskMapper.updateArdAppTask(ardAppTask);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟绠$悊
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑app浠诲姟绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int deleteArdAppTaskByIds(String[] ids) {
+        ardAppTaskMapper.deleteArdAppTaskPicByTaskIds(ids);
+        return ardAppTaskMapper.deleteArdAppTaskByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎app浠诲姟绠$悊淇℃伅
+     *
+     * @param id app浠诲姟绠$悊涓婚敭
+     * @return 缁撴灉
+     */
+    @Transactional
+    @Override
+    public int deleteArdAppTaskById(String id) {
+        ardAppTaskMapper.deleteArdAppTaskPicByTaskId(id);
+        return ardAppTaskMapper.deleteArdAppTaskById(id);
+    }
+
+    /**
+     * 鏂板app浠诲姟鍥剧墖淇℃伅
+     *
+     * @param ardAppTask app浠诲姟绠$悊瀵硅薄
+     */
+    public void insertArdAppTaskPic(ArdAppTask ardAppTask) {
+        List<ArdAppTaskPic> ardAppTaskPicList = ardAppTask.getArdAppTaskPicList();
+        String id = ardAppTask.getId();
+        if (StringUtils.isNotNull(ardAppTaskPicList)) {
+            List<ArdAppTaskPic> list = new ArrayList<ArdAppTaskPic>();
+            for (ArdAppTaskPic ardAppTaskPic :ardAppTaskPicList)
+            {
+                ardAppTaskPic.setId(IdUtils.simpleUUID());
+                ardAppTaskPic.setTaskId(id);
+                list.add(ardAppTaskPic);
+            }
+            if (list.size() > 0) {
+                ardAppTaskMapper.batchArdAppTaskPic(list);
+            }
+        }
+    }
+
+    /**
+     * 鏂板app浠诲姟璇︽儏淇℃伅
+     *
+     * @param ardAppTask app浠诲姟绠$悊瀵硅薄
+     */
+    public void insertArdAppTaskDetail(ArdAppTask ardAppTask) {
+        List<String> userIds = ardAppTask.getUserIds();
+        for(String userId:userIds) {
+            List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
+            String id = ardAppTask.getId();
+            if (StringUtils.isNotNull(ardAppTaskDetailList)) {
+                List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
+                for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
+                    ardAppTaskDetail.setId(IdUtils.simpleUUID());
+                    ardAppTaskDetail.setTaskId(id);
+                    ardAppTaskDetail.setUserId(userId);
+                    list.add(ardAppTaskDetail);
+                }
+                if (list.size() > 0) {
+                    ardAppTaskMapper.batchArdAppTaskDetail(list);
+                }
+            }
+        }
+    }
+    /**
+     * 鏂板app浠诲姟鎻忚堪淇℃伅
+     *
+     * @param ardAppTask app浠诲姟绠$悊瀵硅薄
+     */
+    public void insertArdAppTaskText(ArdAppTask ardAppTask) {
+        String userId = ardAppTask.getUserId();
+        String text = ardAppTask.getText();
+        ArdAppTaskText ardAppTaskText=new ArdAppTaskText();
+        ardAppTaskText.setId(IdUtils.simpleUUID());
+        ardAppTaskText.setUserId(userId);
+        ardAppTaskText.setText(text);
+        List<ArdAppTaskText> ardAppTaskTexts = ardAppTaskTextMapper.selectArdAppTaskTextList(ardAppTaskText);
+        if(ardAppTaskTexts.size()==0)
+        {
+            ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText);
+        }
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java b/ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java
new file mode 100644
index 0000000..70fd7b9
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/tasktext/controller/ArdAppTaskTextController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.app.tasktext.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.tasktext.domain.ArdAppTaskText;
+import com.ruoyi.app.tasktext.service.IArdAppTaskTextService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * app浠诲姟鎻忚堪Controller
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+@RestController
+@RequestMapping("/task/text")
+public class ArdAppTaskTextController extends BaseController
+{
+    @Autowired
+    private IArdAppTaskTextService ardAppTaskTextService;
+
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ArdAppTaskText ardAppTaskText)
+    {
+        startPage();
+        List<ArdAppTaskText> list = ardAppTaskTextService.selectArdAppTaskTextList(ardAppTaskText);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭app浠诲姟鎻忚堪鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:export')")
+    @Log(title = "app浠诲姟鎻忚堪", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ArdAppTaskText ardAppTaskText)
+    {
+        List<ArdAppTaskText> list = ardAppTaskTextService.selectArdAppTaskTextList(ardAppTaskText);
+        ExcelUtil<ArdAppTaskText> util = new ExcelUtil<ArdAppTaskText>(ArdAppTaskText.class);
+        util.exportExcel(response, list, "app浠诲姟鎻忚堪鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇app浠诲姟鎻忚堪璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:query')")
+    @GetMapping(value = "/{userId}")
+    public AjaxResult getInfo(@PathVariable("userId") String userId)
+    {
+        return success(ardAppTaskTextService.selectArdAppTaskTextByUserId(userId));
+    }
+
+    /**
+     * 鏂板app浠诲姟鎻忚堪
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:add')")
+    @Log(title = "app浠诲姟鎻忚堪", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ArdAppTaskText ardAppTaskText)
+    {
+        return toAjax(ardAppTaskTextService.insertArdAppTaskText(ardAppTaskText));
+    }
+
+    /**
+     * 淇敼app浠诲姟鎻忚堪
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:edit')")
+    @Log(title = "app浠诲姟鎻忚堪", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ArdAppTaskText ardAppTaskText)
+    {
+        return toAjax(ardAppTaskTextService.updateArdAppTaskText(ardAppTaskText));
+    }
+
+    /**
+     * 鍒犻櫎app浠诲姟鎻忚堪
+     */
+    @PreAuthorize("@ss.hasPermi('task:text:remove')")
+    @Log(title = "app浠诲姟鎻忚堪", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{userIds}")
+    public AjaxResult remove(@PathVariable String[] userIds)
+    {
+        return toAjax(ardAppTaskTextService.deleteArdAppTaskTextByUserIds(userIds));
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java b/ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java
new file mode 100644
index 0000000..fc75e3e
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/tasktext/domain/ArdAppTaskText.java
@@ -0,0 +1,65 @@
+package com.ruoyi.app.tasktext.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_text
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public class ArdAppTaskText extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 鐢ㄦ埛ID */
+    @Excel(name = "鐢ㄦ埛ID")
+    private String userId;
+
+    /** app浠诲姟鎻忚堪 */
+    @Excel(name = "app浠诲姟鎻忚堪")
+    private String text;
+
+    /** ID */
+    private String id;
+
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+    public void setText(String text) 
+    {
+        this.text = text;
+    }
+
+    public String getText() 
+    {
+        return text;
+    }
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("userId", getUserId())
+            .append("text", getText())
+            .append("id", getId())
+            .toString();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java b/ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java
new file mode 100644
index 0000000..bba0652
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/tasktext/mapper/ArdAppTaskTextMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.app.tasktext.mapper;
+
+import java.util.List;
+import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
+
+/**
+ * app浠诲姟鎻忚堪Mapper鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public interface ArdAppTaskTextMapper 
+{
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪
+     * 
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return app浠诲姟鎻忚堪
+     */
+    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId);
+
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪鍒楄〃
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return app浠诲姟鎻忚堪闆嗗悎
+     */
+    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 鏂板app浠诲姟鎻忚堪
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 淇敼app浠诲姟鎻忚堪
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 鍒犻櫎app浠诲姟鎻忚堪
+     * 
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskTextByUserId(String userId);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟鎻忚堪
+     * 
+     * @param userIds 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskTextByUserIds(String[] userIds);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java b/ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java
new file mode 100644
index 0000000..45f3f49
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/tasktext/service/IArdAppTaskTextService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.app.tasktext.service;
+
+import java.util.List;
+import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
+
+/**
+ * app浠诲姟鎻忚堪Service鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-07-22
+ */
+public interface IArdAppTaskTextService 
+{
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪
+     * 
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return app浠诲姟鎻忚堪
+     */
+    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId);
+
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪鍒楄〃
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return app浠诲姟鎻忚堪闆嗗悎
+     */
+    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 鏂板app浠诲姟鎻忚堪
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 淇敼app浠诲姟鎻忚堪
+     * 
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText);
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟鎻忚堪
+     * 
+     * @param userIds 闇�瑕佸垹闄ょ殑app浠诲姟鎻忚堪涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskTextByUserIds(String[] userIds);
+
+    /**
+     * 鍒犻櫎app浠诲姟鎻忚堪淇℃伅
+     * 
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAppTaskTextByUserId(String userId);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java
new file mode 100644
index 0000000..97e94d4
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/app/tasktext/service/impl/ArdAppTaskTextServiceImpl.java
@@ -0,0 +1,89 @@
+package com.ruoyi.app.tasktext.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper;
+import com.ruoyi.app.tasktext.domain.ArdAppTaskText;
+import com.ruoyi.app.tasktext.service.IArdAppTaskTextService;
+
+/**
+ * app浠诲姟鎻忚堪Service涓氬姟灞傚鐞�
+ *
+ * @author ard
+ * @date 2023-07-22
+ */
+@Service
+public class ArdAppTaskTextServiceImpl implements IArdAppTaskTextService {
+    @Autowired
+    private ArdAppTaskTextMapper ardAppTaskTextMapper;
+
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪
+     *
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return app浠诲姟鎻忚堪
+     */
+    @Override
+    public ArdAppTaskText selectArdAppTaskTextByUserId(String userId) {
+        return ardAppTaskTextMapper.selectArdAppTaskTextByUserId(userId);
+    }
+
+    /**
+     * 鏌ヨapp浠诲姟鎻忚堪鍒楄〃
+     *
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return app浠诲姟鎻忚堪
+     */
+    @Override
+    public List<ArdAppTaskText> selectArdAppTaskTextList(ArdAppTaskText ardAppTaskText) {
+        return ardAppTaskTextMapper.selectArdAppTaskTextList(ardAppTaskText);
+    }
+
+    /**
+     * 鏂板app浠诲姟鎻忚堪
+     *
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertArdAppTaskText(ArdAppTaskText ardAppTaskText) {
+                ardAppTaskText.setUserId(SecurityUtils.getUserId());
+            return ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText);
+    }
+
+    /**
+     * 淇敼app浠诲姟鎻忚堪
+     *
+     * @param ardAppTaskText app浠诲姟鎻忚堪
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateArdAppTaskText(ArdAppTaskText ardAppTaskText) {
+        return ardAppTaskTextMapper.updateArdAppTaskText(ardAppTaskText);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎app浠诲姟鎻忚堪
+     *
+     * @param userIds 闇�瑕佸垹闄ょ殑app浠诲姟鎻忚堪涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAppTaskTextByUserIds(String[] userIds) {
+        return ardAppTaskTextMapper.deleteArdAppTaskTextByUserIds(userIds);
+    }
+
+    /**
+     * 鍒犻櫎app浠诲姟鎻忚堪淇℃伅
+     *
+     * @param userId app浠诲姟鎻忚堪涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAppTaskTextByUserId(String userId) {
+        return ardAppTaskTextMapper.deleteArdAppTaskTextByUserId(userId);
+    }
+}
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
new file mode 100644
index 0000000..53d6ecd
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -0,0 +1,190 @@
+<?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.task.mapper.ArdAppTaskMapper">
+
+    <resultMap type="ArdAppTask" id="ArdAppTaskResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="text" column="text"/>
+        <result property="voice" column="voice"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <resultMap id="ArdAppTaskArdAppTaskPicResult" type="ArdAppTask" extends="ArdAppTaskResult">
+        <collection property="ardAppTaskPicList" notNullColumn="sub_id" javaType="java.util.List"
+                    resultMap="ArdAppTaskPicResult"/>
+    </resultMap>
+    <resultMap id="ArdAppTaskArdAppTaskDetailResult" type="ArdAppTask" extends="ArdAppTaskResult">
+        <collection property="ardAppTaskDetailList" notNullColumn="sub_id" javaType="java.util.List"
+                    resultMap="ArdAppTaskDetailResult"/>
+    </resultMap>
+
+    <resultMap type="ArdAppTaskDetail" id="ArdAppTaskDetailResult">
+        <result property="id" column="sub_id"/>
+        <result property="name" column="sub_name"/>
+        <result property="longitude" column="sub_longitude"/>
+        <result property="latitude" column="sub_latitude"/>
+        <result property="altitude" column="sub_altitude"/>
+        <result property="userId" column="sub_user_id"/>
+        <result property="text" column="sub_text"/>
+        <result property="voice" column="sub_voice"/>
+        <result property="taskId" column="sub_task_id"/>
+    </resultMap>
+    <resultMap type="ArdAppTaskPic" id="ArdAppTaskPicResult">
+        <result property="id" column="sub_id"/>
+        <result property="taskId" column="sub_task_id"/>
+        <result property="picUrl" column="sub_pic_url"/>
+    </resultMap>
+
+    <sql id="selectArdAppTaskVo">
+        select c.id,
+               c.name,
+               c.text,
+               c.voice,
+               c.dept_id,
+               c.user_id,
+               c.create_by,
+               c.create_time,
+               c.update_by,
+               c.update_time
+        from ard_app_task c
+        left join sys_dept d on d.dept_id = c.dept_id
+        left join sys_user u on u.user_id = c.user_id
+    </sql>
+
+    <select id="selectArdAppTaskList" parameterType="ArdAppTask" resultMap="ArdAppTaskResult">
+        <include refid="selectArdAppTaskVo"/>
+        <where>
+            <if test="name != null  and name != ''">and name like '%'||#{name}||'%'</if>
+            <if test="text != null  and text != ''">and text = #{text}</if>
+            <if test="voice != null  and voice != ''">and voice = #{voice}</if>
+            <if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
+                WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
+            </if>
+            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
+            <!-- 鏁版嵁鑼冨洿杩囨护 -->
+            ${params.dataScope}
+        </where>
+    </select>
+
+    <select id="selectArdAppTaskById" parameterType="String" resultMap="ArdAppTaskArdAppTaskPicResult">
+        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 sub_id,
+               b.task_id as sub_task_id,
+               b.pic_url as sub_pic_url
+        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 a.id = #{id}
+    </select>
+
+    <insert id="insertArdAppTask" parameterType="ArdAppTask">
+        insert into ard_app_task
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="name != null">name,</if>
+            <if test="text != null">text,</if>
+            <if test="voice != null">voice,</if>
+            <if test="deptId != null">dept_id,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="name != null">#{name},</if>
+            <if test="text != null">#{text},</if>
+            <if test="voice != null">#{voice},</if>
+            <if test="deptId != null">#{deptId},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateArdAppTask" parameterType="ArdAppTask">
+        update ard_app_task
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="text != null">text = #{text},</if>
+            <if test="voice != null">voice = #{voice},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteArdAppTaskById" parameterType="String">
+        delete
+        from ard_app_task
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteArdAppTaskByIds" parameterType="String">
+        delete from ard_app_task where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteArdAppTaskPicByTaskIds" parameterType="String">
+        delete from ard_app_task_pic where task_id in
+        <foreach item="taskId" collection="array" open="(" separator="," close=")">
+            #{taskId}
+        </foreach>
+    </delete>
+
+    <delete id="deleteArdAppTaskPicByTaskId" parameterType="String">
+        delete
+        from ard_app_task_pic
+        where task_id = #{taskId}
+    </delete>
+
+    <insert id="batchArdAppTaskPic">
+        insert into ard_app_task_pic( id, task_id, pic_url) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            ( #{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=")">
+            #{taskId}
+        </foreach>
+    </delete>
+
+    <delete id="deleteArdAppTaskDetailByTaskId" parameterType="String">
+        delete from ard_app_task_detail where task_id = #{taskId}
+    </delete>
+
+    <insert id="batchArdAppTaskDetail">
+        insert into ard_app_task_detail( id, name, longitude, latitude, altitude, user_id, text, voice, task_id) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            ( #{item.id}, #{item.name}, #{item.longitude}, #{item.latitude}, #{item.altitude}, #{item.userId}, #{item.text}, #{item.voice}, #{item.taskId})
+        </foreach>
+    </insert>
+</mapper>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.xml
new file mode 100644
index 0000000..a9dc727
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskTextMapper.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.tasktext.mapper.ArdAppTaskTextMapper">
+    
+    <resultMap type="ArdAppTaskText" id="ArdAppTaskTextResult">
+        <result property="userId"    column="user_id"    />
+        <result property="text"    column="text"    />
+        <result property="id"    column="id"    />
+    </resultMap>
+
+    <sql id="selectArdAppTaskTextVo">
+        select user_id, text, id from ard_app_task_text
+    </sql>
+
+    <select id="selectArdAppTaskTextList" parameterType="ArdAppTaskText" resultMap="ArdAppTaskTextResult">
+        <include refid="selectArdAppTaskTextVo"/>
+        <where>  
+            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
+            <if test="text != null  and text != ''"> and text = #{text}</if>
+        </where>
+    </select>
+    
+    <select id="selectArdAppTaskTextByUserId" parameterType="String" resultMap="ArdAppTaskTextResult">
+        <include refid="selectArdAppTaskTextVo"/>
+        where user_id = #{userId}
+    </select>
+        
+    <insert id="insertArdAppTaskText" parameterType="ArdAppTaskText">
+        insert into ard_app_task_text
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="userId != null">user_id,</if>
+            <if test="text != null">text,</if>
+            <if test="id != null">id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="userId != null">#{userId},</if>
+            <if test="text != null">#{text},</if>
+            <if test="id != null">#{id},</if>
+         </trim>
+    </insert>
+
+    <update id="updateArdAppTaskText" parameterType="ArdAppTaskText">
+        update ard_app_task_text
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="text != null">text = #{text},</if>
+            <if test="id != null">id = #{id},</if>
+        </trim>
+        where user_id = #{userId}
+    </update>
+
+    <delete id="deleteArdAppTaskTextByUserId" parameterType="String">
+        delete from ard_app_task_text where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteArdAppTaskTextByUserIds" parameterType="String">
+        delete from ard_app_task_text where user_id in 
+        <foreach item="userId" collection="array" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3