From f50f1839aaa33be713561da03cf056662ac44f18 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 28 七月 2023 11:30:25 +0800
Subject: [PATCH] 增加app任务查看时间和查看位置 修改app任务详情为打卡时间和打卡位置
---
ard-work/src/main/java/com/ruoyi/app/task/service/impl/ArdAppTaskServiceImpl.java | 48 +++++++++------
ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml | 12 +++
ard-work/src/main/java/com/ruoyi/app/task/service/IArdAppTaskService.java | 1
ard-work/src/main/java/com/ruoyi/app/task/controller/ArdAppTaskController.java | 2
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 78 +++++++++-----------------
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTaskDetail.java | 8 +-
ard-work/src/main/java/com/ruoyi/app/task/domain/ArdAppTask.java | 25 ++++++++
ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 3 +
8 files changed, 100 insertions(+), 77 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 3910fd7..afe193d 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
@@ -50,6 +50,7 @@
List<ArdAppTask> list = ardAppTaskService.selectArdAppTaskList(ardAppTask);
return getDataTable(list);
}
+
@ApiOperation("鍗曞叺绔� - 涓嬪彂缁欐垜鐨勪换鍔″垪琛�")
@PreAuthorize("@ss.hasPermi('app:task:list')")
@GetMapping("/listWithDetail")
@@ -99,6 +100,7 @@
/**
* 淇敼app浠诲姟绠$悊
*/
+ @ApiOperation("鎸囨尌绔�-淇敼浠诲姟")
@PreAuthorize("@ss.hasPermi('app:task:edit')")
@Log(title = "app浠诲姟绠$悊", businessType = BusinessType.UPDATE)
@PutMapping
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
index 3dfe20e..3bbdfba 100644
--- 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
@@ -1,7 +1,9 @@
package com.ruoyi.app.task.domain;
+import java.util.Date;
import java.util.List;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@@ -50,6 +52,29 @@
/** app浠诲姟璇︽儏淇℃伅 */
@ApiModelProperty(notes = "app浠诲姟璇︽儏淇℃伅")
private List<ArdAppTaskDetail> ardAppTaskDetailList;
+ /** 棣栨鏌ョ湅鏃堕棿 */
+ @Excel(name = "棣栨鏌ョ湅鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date viewTime;
+ /** 棣栨鏌ョ湅浣嶇疆 */
+ @Excel(name = "棣栨鏌ョ湅浣嶇疆")
+ private String viewPosition;
+
+ public Date getViewTime() {
+ return viewTime;
+ }
+
+ public void setViewTime(Date viewTime) {
+ this.viewTime = viewTime;
+ }
+
+ public String getViewPosition() {
+ return viewPosition;
+ }
+
+ public void setViewPosition(String viewPosition) {
+ this.viewPosition = viewPosition;
+ }
public List<ArdAppTaskPic> getArdAppTaskPicList()
{
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 e2279ec..9af3442 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
@@ -68,12 +68,12 @@
/** app浠诲姟璇︽儏鍥剧墖淇℃伅 */
private List<ArdAppTaskDetailPic> ardAppTaskDetailPic;
- /** 棣栨鏌ョ湅鏃堕棿 */
- @Excel(name = "棣栨鏌ョ湅鏃堕棿")
+ /** 鎵撳崱鏃堕棿 */
+ @Excel(name = "鎵撳崱鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date viewTime;
- /** 棣栨鏌ョ湅浣嶇疆 */
- @Excel(name = "棣栨鏌ョ湅浣嶇疆")
+ /** 鎵撳崱浣嶇疆 */
+ @Excel(name = "鎵撳崱浣嶇疆")
private String viewPosition;
public Date getViewTime() {
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 8d18b1e..470081c 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
@@ -41,6 +41,7 @@
* @return app浠诲姟璇︽儏闆嗗悎
*/
public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask);
+
public List<ArdAppTask> selectArdAppTaskListWithDetailById(ArdAppTask ardAppTask);
/**
* 鏂板app浠诲姟绠$悊
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 ca958c8..b6986bd 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
@@ -57,8 +57,7 @@
ArdAppTaskDetailPic ardAppTaskDetailPic = new ArdAppTaskDetailPic();
ardAppTaskDetailPic.setTaskDetailId(id);
List<ArdAppTaskDetailPic> ardAppTaskDetailPicList = ardAppTaskDetailPicMapper.selectArdAppTaskDetailPicList(ardAppTaskDetailPic);
- if(ardAppTaskDetailPicList.size()>0)
- {
+ if (ardAppTaskDetailPicList.size() > 0) {
appTaskDetail.setArdAppTaskDetailPic(ardAppTaskDetailPicList);
}
return appTaskDetail;
@@ -132,8 +131,7 @@
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);
@@ -173,8 +171,10 @@
*/
public void insertArdAppTaskPic(ArdAppTask ardAppTask) {
List<ArdAppTaskPic> ardAppTaskPicList = ardAppTask.getArdAppTaskPicList();
- String id = ardAppTask.getId();
if (StringUtils.isNotNull(ardAppTaskPicList)) {
+ ardAppTaskMapper.deleteArdAppTaskPicByTaskId(ardAppTask.getId());
+ String id = ardAppTask.getId();
+
List<ArdAppTaskPic> list = new ArrayList<ArdAppTaskPic>();
for (ArdAppTaskPic ardAppTaskPic : ardAppTaskPicList) {
ardAppTaskPic.setId(IdUtils.simpleUUID());
@@ -193,21 +193,29 @@
* @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.setStatus("0");
- ardAppTaskDetail.setTaskId(id);
- ardAppTaskDetail.setUserId(userId);
- list.add(ardAppTaskDetail);
- }
- if (list.size() > 0) {
- ardAppTaskMapper.batchArdAppTaskDetail(list);
+ List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
+ if (StringUtils.isNotNull(ardAppTaskDetailList)) {
+ if (ardAppTaskDetailList.size() > 0) {
+ List<String> userIds = ardAppTask.getUserIds();
+ if (userIds.size() > 0) {
+ ardAppTaskMapper.deleteArdAppTaskDetailByTaskId(ardAppTask.getId());
+ for (String userId : userIds) {
+ String id = ardAppTask.getId();
+ if (StringUtils.isNotNull(ardAppTaskDetailList)) {
+ List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
+ for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
+ ardAppTaskDetail.setId(IdUtils.simpleUUID());
+ ardAppTaskDetail.setStatus("0");
+ ardAppTaskDetail.setTaskId(id);
+ ardAppTaskDetail.setUserId(userId);
+ list.add(ardAppTaskDetail);
+ }
+ if (list.size() > 0) {
+
+ ardAppTaskMapper.batchArdAppTaskDetail(list);
+ }
+ }
+ }
}
}
}
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
index 0805696..61ed850 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppTaskMapper.xml
@@ -15,6 +15,8 @@
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
+ <result property="viewTime" column="view_time"/>
+ <result property="viewPosition" column="view_position"/>
</resultMap>
<resultMap id="ArdAppTaskSubResult" type="ArdAppTask" extends="ArdAppTaskResult">
<collection property="ardAppTaskPicList" notNullColumn="sub2_id" javaType="java.util.List"
@@ -61,7 +63,9 @@
c.create_by,
c.create_time,
c.update_by,
- c.update_time
+ c.update_time,
+ c.view_time,
+ c.view_position
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
@@ -77,6 +81,8 @@
a.create_time,
a.update_by,
a.update_time,
+ a.view_time,
+ a.view_position,
b.id as sub2_id,
b.task_id as sub2_task_id,
b.pic_url as sub2_pic_url,
@@ -190,6 +196,8 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
+ <if test="viewTime != null">view_time = #{viewTime},</if>
+ <if test="viewPosition != null">view_position = #{viewPosition},</if>
</trim>
where id = #{id}
</update>
@@ -282,7 +290,7 @@
c.text,
c.voice,
c.status,
- c.clock_in_pic_url
+ c.clock_in_pic_url,
c.view_time,
c.view_position
from ard_app_task_detail c
diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
index 7907744..fb9ab8e 100644
--- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
+++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -92,6 +92,9 @@
<if test="camMaxVisibleDistance != null ">and c.cam_max_visible_distance = #{camMaxVisibleDistance}</if>
<if test="camAlarmGuideEnable != null ">and c.cam_alarm_guide_enable = #{camAlarmGuideEnable}</if>
<if test="loginId != null ">and c.login_id = #{loginId}</if>
+ <if test="deptId != null ">and (d.dept_id = #{deptId} OR d.dept_id IN ( SELECT t.dept_id FROM sys_dept t
+ WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
+ </if>
<!-- 鏁版嵁鑼冨洿杩囨护 -->
${params.dataScope}
</where>
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 a4dcc41..74ce1bd 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
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.List;
+
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@@ -23,8 +24,7 @@
*/
@Aspect
@Component
-public class DataScopeAspect
-{
+public class DataScopeAspect {
/**
* 鍏ㄩ儴鏁版嵁鏉冮檺
*/
@@ -56,22 +56,18 @@
public static final String DATA_SCOPE = "dataScope";
@Before("@annotation(controllerDataScope)")
- public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable
- {
+ public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable {
clearDataScope(point);
handleDataScope(point, controllerDataScope);
}
- protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope)
- {
+ protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope) {
// 鑾峰彇褰撳墠鐨勭敤鎴�
LoginUser loginUser = SecurityUtils.getLoginUser();
- if (StringUtils.isNotNull(loginUser))
- {
+ if (StringUtils.isNotNull(loginUser)) {
SysUser currentUser = loginUser.getUser();
// 濡傛灉鏄秴绾х鐞嗗憳锛屽垯涓嶈繃婊ゆ暟鎹�;濡傛灉鏄痑pp鎸囨尌绔紝鍒欎笉杩囨护鏁版嵁;
- if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
- {
+ if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin()) {
String permission = StringUtils.defaultIfEmpty(controllerDataScope.permission(), PermissionContextHolder.getContext());
dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
controllerDataScope.userAlias(), permission);
@@ -83,58 +79,42 @@
/**
* 鏁版嵁鑼冨洿杩囨护
*
- * @param joinPoint 鍒囩偣
- * @param user 鐢ㄦ埛
- * @param deptAlias 閮ㄩ棬鍒悕
- * @param userAlias 鐢ㄦ埛鍒悕
+ * @param joinPoint 鍒囩偣
+ * @param user 鐢ㄦ埛
+ * @param deptAlias 閮ㄩ棬鍒悕
+ * @param userAlias 鐢ㄦ埛鍒悕
* @param permission 鏉冮檺瀛楃
*/
- public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission)
- {
+ public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias, String permission) {
StringBuilder sqlString = new StringBuilder();
List<String> conditions = new ArrayList<String>();
- for (SysRole role : user.getRoles())
- {
+ for (SysRole role : user.getRoles()) {
String dataScope = role.getDataScope();
- if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope))
- {
+ if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) {
continue;
}
if (StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions())
- && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission)))
- {
+ && !StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) {
continue;
}
- if (DATA_SCOPE_ALL.equals(dataScope))
- {
+ if (DATA_SCOPE_ALL.equals(dataScope)) {
sqlString = new StringBuilder();
break;
- }
- else if (DATA_SCOPE_CUSTOM.equals(dataScope))
- {
+ } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
sqlString.append(StringUtils.format(
" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
role.getRoleId()));
- }
- else if (DATA_SCOPE_DEPT.equals(dataScope))
- {
+ } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
- }
- else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
- {
+ } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {//" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or '{}'= any(string_to_array(ancestors,',') ))",
sqlString.append(StringUtils.format(
- " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or '{}'= any(string_to_array(ancestors,',') ))",
- deptAlias, user.getDeptId(), user.getDeptId()));
- }
- else if (DATA_SCOPE_SELF.equals(dataScope))
- {
- if (StringUtils.isNotBlank(userAlias))
- {
+ " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE CAST ( {} AS VARCHAR ) = ANY ( string_to_array( ancestors, ',' )))",
+ deptAlias, user.getDeptId()));
+ } else if (DATA_SCOPE_SELF.equals(dataScope)) {
+ if (StringUtils.isNotBlank(userAlias)) {
sqlString.append(StringUtils.format(" OR {}.user_id = '{}' ", userAlias, user.getUserId()));
- }
- else
- {
+ } else {
// 鏁版嵁鏉冮檺涓轰粎鏈汉涓旀病鏈塽serAlias鍒悕涓嶆煡璇换浣曟暟鎹�
sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
}
@@ -142,11 +122,9 @@
conditions.add(dataScope);
}
- if (StringUtils.isNotBlank(sqlString.toString()))
- {
+ if (StringUtils.isNotBlank(sqlString.toString())) {
Object params = joinPoint.getArgs()[0];
- if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
- {
+ if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
}
@@ -156,11 +134,9 @@
/**
* 鎷兼帴鏉冮檺sql鍓嶅厛娓呯┖params.dataScope鍙傛暟闃叉娉ㄥ叆
*/
- private void clearDataScope(final JoinPoint joinPoint)
- {
+ private void clearDataScope(final JoinPoint joinPoint) {
Object params = joinPoint.getArgs()[0];
- if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
- {
+ if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, "");
}
--
Gitblit v1.9.3