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