business/src/main/java/com/ycl/domain/json/DelegateData.java
@@ -20,6 +20,11 @@ private List<String> beforeHandlerIds; /** * 转ååçå¤ç人å§å */ private List<String> beforeHandlerNames; /** * 转ååçå¤ç人类å */ private HandlerTypeEnum beforeHandlerType; @@ -30,6 +35,11 @@ private List<String> afterHandlerIds; /** * 转ååçå¤ç人å§å */ private List<String> afterHandlerNames; /** * 转ååçå¤ç人类å */ private HandlerTypeEnum afterHandlerType; business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.common.base.Result; import com.ycl.common.core.domain.entity.SysDept; import com.ycl.common.core.domain.entity.SysRole; import com.ycl.common.core.domain.entity.SysUser; import com.ycl.common.enums.business.HandlerTypeEnum; import com.ycl.common.enums.business.ProcessLogEventTypeEnum; import com.ycl.domain.entity.ProcessLog; import com.ycl.domain.json.DelegateData; @@ -16,13 +20,18 @@ import com.ycl.framework.utils.PageUtil; import com.ycl.mapper.ProcessLogMapper; import com.ycl.service.ProcessLogService; import com.ycl.system.service.ISysDeptService; import com.ycl.system.service.ISysRoleService; import com.ycl.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** @@ -36,6 +45,9 @@ public class ProcessLogServiceImpl extends ServiceImpl<ProcessLogMapper, ProcessLog> implements ProcessLogService { private final ProcessLogMapper processLogMapper; private final ISysUserService userService; private final ISysDeptService deptService; private final ISysRoleService roleService; /** * æ·»å æ¥å¿ @@ -133,16 +145,52 @@ list.stream().forEach(log -> { if (StringUtils.isNotBlank(log.getEventDataJson())) { if (ProcessLogEventTypeEnum.DELEGATE.equals(log.getEventType())) { log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), DelegateData.class)); DelegateData delegateData = JSON.parseObject(log.getEventDataJson(), DelegateData.class); // æ¥è¯¢è½¬ååçå¤ç人åç§° List<String> names = new ArrayList<>(2); List<Long> ids = delegateData.getAfterHandlerIds().stream().map(Long::parseLong).collect(Collectors.toList()); this.getName(delegateData.getAfterHandlerType(), ids, names); delegateData.setAfterHandlerNames(names); log.setEventDataObj(delegateData); } else if (ProcessLogEventTypeEnum.JUMP.equals(log.getEventType())) { log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), JumpData.class)); } else if (ProcessLogEventTypeEnum.REJECT.equals(log.getEventType())) { log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), RejectData.class)); } else if (ProcessLogEventTypeEnum.SUPERVISE.equals(log.getEventType())) { log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), SuperviseData.class)); SuperviseData superviseData = JSON.parseObject(log.getEventDataJson(), SuperviseData.class); SysUser user = userService.selectUserById(Long.parseLong(superviseData.getSenderId())); if (Objects.nonNull(user)) { superviseData.setSenderName(user.getNickName() + "(" + (Objects.nonNull(user.getDept()) ? user.getDept().getDeptName() : "æ é¨é¨") + ")"); } log.setEventDataObj(superviseData); } } }); return Result.ok().data(list); } /** * è§£ææµç¨æ¥å¿ä¸çæ°æ®-åç§° * * @param handlerType * @param ids * @param names */ private void getName(HandlerTypeEnum handlerType, List<Long> ids, List<String> names) { if (HandlerTypeEnum.FIX_USER.equals(handlerType)) { SysUser user = userService.selectUserById(ids.get(0)); if (Objects.nonNull(user)) { names.add(user.getNickName() + "(" + (Objects.nonNull(user.getDept()) ? user.getDept().getDeptName() : "æ é¨é¨") + ")"); } } else if (HandlerTypeEnum.USER.equals(handlerType)) { List<SysUser> users = userService.selectUserByIds(ids); names = users.stream().map(user -> user.getNickName() + "(" + (Objects.nonNull(user.getDept()) ? user.getDept().getDeptName() : "æ é¨é¨") + ")").collect(Collectors.toList()); } else if (HandlerTypeEnum.DEPT.equals(handlerType)) { List<SysDept> depts = deptService.selectDeptByIds(ids); names = depts.stream().map(SysDept::getDeptName).collect(Collectors.toList()); } else if (HandlerTypeEnum.ROLE.equals(handlerType)) { List<SysRole> roles = roleService.selectRoleByIds(ids); names = roles.stream().map(SysRole::getRoleName).collect(Collectors.toList()); } } } flowable/src/main/java/com/ycl/domain/vo/ProcessLogVO.java
@@ -23,6 +23,9 @@ @ApiModelProperty("ä»»å¡id") private String taskId; @ApiModelProperty("ä»»å¡åç§°") private String taskName; /** äºä»¶æ¥å¿ç±»å */ @ApiModelProperty("äºä»¶æ¥å¿ç±»å") private ProcessLogEventTypeEnum eventType; flowable/src/main/resources/mapper/ProcessLogMapper.xml
@@ -5,6 +5,7 @@ <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProcessLogVO"> <result column="task_id" property="taskId" /> <result column="task_name" property="taskName" /> <result column="event_type" property="eventType" typeHandler="com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler"/> <result column="project_id" property="projectId" /> <result column="process_ins_id" property="processInsId" /> @@ -23,6 +24,7 @@ <select id="getById" resultMap="BaseResultMap"> SELECT TFL.task_id, TFL.task_name, TFL.event_type, TFL.project_id, TFL.process_ins_id, @@ -39,6 +41,7 @@ <select id="getPage" resultMap="BaseResultMap"> SELECT TFL.task_id, TFL.task_name, TFL.event_type, TFL.project_id, TFL.process_ins_id, @@ -56,17 +59,19 @@ <select id="projectProcessLogPage" resultMap="BaseResultMap"> SELECT TFL.task_id, TFL.task_name, TFL.event_type, TFL.project_id, TFL.process_ins_id, TFL.user_id, SU.nick_name, CONCAT(SU.nick_name, '(',COALESCE(SD.dept_name, 'æ é¨é¨'), ')') as nick_name, TFL.event_data_json, TFL.gmt_create, TFL.id FROM t_process_log TFL LEFT JOIN sys_user SU ON SU.user_id = TFL.user_id LEFT JOIN sys_dept SD ON SU.dept_id = SD.dept_id WHERE TFL.deleted = 0 AND TFL.project_id = #{query.projectId} AND TFL.process_ins_id = #{query.processInsId} ORDER BY sql/project_management-2ÔÂ14.sqlBinary files differ
system/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
@@ -36,6 +36,8 @@ */ public SysDept selectDeptById(Long deptId); List<SysDept> selectDeptByIds(List<Long> deptIds); /** * æ ¹æ®IDæ¥è¯¢ææåé¨é¨ * @@ -117,4 +119,5 @@ public int deleteDeptById(Long deptId); String selectAncestors(Long userId); } system/src/main/java/com/ycl/system/mapper/SysRoleMapper.java
@@ -49,6 +49,8 @@ */ public SysRole selectRoleById(Long roleId); public List<SysRole> selectRoleByIds(List<Long> roleIds); /** * æ ¹æ®ç¨æ·IDæ¥è¯¢è§è² * system/src/main/java/com/ycl/system/mapper/SysUserMapper.java
@@ -51,6 +51,8 @@ */ public SysUser selectUserById(Long userId); public List<SysUser> selectUserByIds(List<Long> userIds); /** * æ°å¢ç¨æ·ä¿¡æ¯ * system/src/main/java/com/ycl/system/service/ISysDeptService.java
@@ -75,6 +75,8 @@ */ public SysDept selectDeptById(Long deptId); public List<SysDept> selectDeptByIds(List<Long> deptIds); /** * æ ¹æ®IDæ¥è¯¢ææåé¨é¨ï¼æ£å¸¸ç¶æï¼ * system/src/main/java/com/ycl/system/service/ISysRoleService.java
@@ -7,14 +7,14 @@ /** * è§è²ä¸å¡å± * * * @author ycl */ public interface ISysRoleService { /** * æ ¹æ®æ¡ä»¶å页æ¥è¯¢è§è²æ°æ® * * * @param role è§è²ä¿¡æ¯ * @return è§è²æ°æ®éåä¿¡æ¯ */ @@ -22,7 +22,7 @@ /** * æ ¹æ®ç¨æ·IDæ¥è¯¢è§è²å表 * * * @param userId ç¨æ·ID * @return è§è²å表 */ @@ -30,7 +30,7 @@ /** * æ ¹æ®ç¨æ·IDæ¥è¯¢è§è²æé * * * @param userId ç¨æ·ID * @return æéå表 */ @@ -38,14 +38,14 @@ /** * æ¥è¯¢ææè§è² * * * @return è§è²å表 */ public List<SysRole> selectRoleAll(); /** * æ ¹æ®ç¨æ·IDè·åè§è²éæ©æ¡å表 * * * @param userId ç¨æ·ID * @return éä¸è§è²IDå表 */ @@ -53,15 +53,17 @@ /** * éè¿è§è²IDæ¥è¯¢è§è² * * * @param roleId è§è²ID * @return è§è²å¯¹è±¡ä¿¡æ¯ */ public SysRole selectRoleById(Long roleId); public List<SysRole> selectRoleByIds(List<Long> roleIds); /** * æ ¡éªè§è²åç§°æ¯å¦å¯ä¸ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -69,7 +71,7 @@ /** * æ ¡éªè§è²æéæ¯å¦å¯ä¸ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -77,21 +79,21 @@ /** * æ ¡éªè§è²æ¯å¦å 许æä½ * * * @param role è§è²ä¿¡æ¯ */ public void checkRoleAllowed(SysRole role); /** * æ ¡éªè§è²æ¯å¦ææ°æ®æé * * * @param roleId è§è²id */ public void checkRoleDataScope(Long roleId); /** * éè¿è§è²IDæ¥è¯¢è§è²ä½¿ç¨æ°é * * * @param roleId è§è²ID * @return ç»æ */ @@ -99,7 +101,7 @@ /** * æ°å¢ä¿åè§è²ä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -107,7 +109,7 @@ /** * ä¿®æ¹ä¿åè§è²ä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -115,7 +117,7 @@ /** * ä¿®æ¹è§è²ç¶æ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -123,7 +125,7 @@ /** * ä¿®æ¹æ°æ®æéä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -131,7 +133,7 @@ /** * éè¿è§è²IDå é¤è§è² * * * @param roleId è§è²ID * @return ç»æ */ @@ -139,7 +141,7 @@ /** * æ¹éå é¤è§è²ä¿¡æ¯ * * * @param roleIds éè¦å é¤çè§è²ID * @return ç»æ */ @@ -147,7 +149,7 @@ /** * åæ¶ææç¨æ·è§è² * * * @param userRole ç¨æ·åè§è²å ³èä¿¡æ¯ * @return ç»æ */ @@ -155,7 +157,7 @@ /** * æ¹éåæ¶ææç¨æ·è§è² * * * @param roleId è§è²ID * @param userIds éè¦åæ¶ææçç¨æ·æ°æ®ID * @return ç»æ @@ -164,7 +166,7 @@ /** * æ¹ééæ©ææç¨æ·è§è² * * * @param roleId è§è²ID * @param userIds éè¦å é¤çç¨æ·æ°æ®ID * @return ç»æ system/src/main/java/com/ycl/system/service/ISysUserService.java
@@ -53,6 +53,14 @@ public SysUser selectUserById(Long userId); /** * éè¿ç¨æ·IDsæ¥è¯¢ç¨æ· * * @param userIds ç¨æ·ID * @return ç¨æ·å¯¹è±¡ä¿¡æ¯ */ public List<SysUser> selectUserByIds(List<Long> userIds); /** * æ ¹æ®ç¨æ·IDæ¥è¯¢ç¨æ·æå±è§è²ç» * * @param userName ç¨æ·å system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -172,6 +172,11 @@ return deptMapper.selectDeptById(deptId); } @Override public List<SysDept> selectDeptByIds(List<Long> deptIds) { return deptMapper.selectDeptByIds(deptIds); } /** * æ ¹æ®IDæ¥è¯¢ææåé¨é¨ï¼æ£å¸¸ç¶æï¼ * system/src/main/java/com/ycl/system/service/impl/SysRoleServiceImpl.java
@@ -27,7 +27,7 @@ /** * è§è² ä¸å¡å±å¤ç * * * @author ycl */ @Service @@ -47,7 +47,7 @@ /** * æ ¹æ®æ¡ä»¶å页æ¥è¯¢è§è²æ°æ® * * * @param role è§è²ä¿¡æ¯ * @return è§è²æ°æ®éåä¿¡æ¯ */ @@ -60,7 +60,7 @@ /** * æ ¹æ®ç¨æ·IDæ¥è¯¢è§è² * * * @param userId ç¨æ·ID * @return è§è²å表 */ @@ -85,7 +85,7 @@ /** * æ ¹æ®ç¨æ·IDæ¥è¯¢æé * * * @param userId ç¨æ·ID * @return æéå表 */ @@ -106,7 +106,7 @@ /** * æ¥è¯¢ææè§è² * * * @return è§è²å表 */ @Override @@ -117,7 +117,7 @@ /** * æ ¹æ®ç¨æ·IDè·åè§è²éæ©æ¡å表 * * * @param userId ç¨æ·ID * @return éä¸è§è²IDå表 */ @@ -129,7 +129,7 @@ /** * éè¿è§è²IDæ¥è¯¢è§è² * * * @param roleId è§è²ID * @return è§è²å¯¹è±¡ä¿¡æ¯ */ @@ -139,9 +139,14 @@ return roleMapper.selectRoleById(roleId); } @Override public List<SysRole> selectRoleByIds(List<Long> roleIds) { return roleMapper.selectRoleByIds(roleIds); } /** * æ ¡éªè§è²åç§°æ¯å¦å¯ä¸ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -159,7 +164,7 @@ /** * æ ¡éªè§è²æéæ¯å¦å¯ä¸ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -177,7 +182,7 @@ /** * æ ¡éªè§è²æ¯å¦å 许æä½ * * * @param role è§è²ä¿¡æ¯ */ @Override @@ -191,7 +196,7 @@ /** * æ ¡éªè§è²æ¯å¦ææ°æ®æé * * * @param roleId è§è²id */ @Override @@ -211,7 +216,7 @@ /** * éè¿è§è²IDæ¥è¯¢è§è²ä½¿ç¨æ°é * * * @param roleId è§è²ID * @return ç»æ */ @@ -223,7 +228,7 @@ /** * æ°å¢ä¿åè§è²ä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -238,7 +243,7 @@ /** * ä¿®æ¹ä¿åè§è²ä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -255,7 +260,7 @@ /** * ä¿®æ¹è§è²ç¶æ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -267,7 +272,7 @@ /** * ä¿®æ¹æ°æ®æéä¿¡æ¯ * * * @param role è§è²ä¿¡æ¯ * @return ç»æ */ @@ -285,7 +290,7 @@ /** * æ°å¢è§è²èåä¿¡æ¯ * * * @param role è§è²å¯¹è±¡ */ public int insertRoleMenu(SysRole role) @@ -333,7 +338,7 @@ /** * éè¿è§è²IDå é¤è§è² * * * @param roleId è§è²ID * @return ç»æ */ @@ -350,7 +355,7 @@ /** * æ¹éå é¤è§è²ä¿¡æ¯ * * * @param roleIds éè¦å é¤çè§è²ID * @return ç»æ */ @@ -377,7 +382,7 @@ /** * åæ¶ææç¨æ·è§è² * * * @param userRole ç¨æ·åè§è²å ³èä¿¡æ¯ * @return ç»æ */ @@ -389,7 +394,7 @@ /** * æ¹éåæ¶ææç¨æ·è§è² * * * @param roleId è§è²ID * @param userIds éè¦åæ¶ææçç¨æ·æ°æ®ID * @return ç»æ @@ -402,7 +407,7 @@ /** * æ¹ééæ©ææç¨æ·è§è² * * * @param roleId è§è²ID * @param userIds éè¦ææçç¨æ·æ°æ®ID * @return ç»æ system/src/main/java/com/ycl/system/service/impl/SysUserServiceImpl.java
@@ -129,6 +129,11 @@ return userMapper.selectUserById(userId); } @Override public List<SysUser> selectUserByIds(List<Long> userIds) { return userMapper.selectUserByIds(userIds); } /** * æ¥è¯¢ç¨æ·æå±è§è²ç» * system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -65,6 +65,13 @@ where d.dept_id = #{deptId} </select> <select id="selectDeptByIds" parameterType="Long" resultMap="SysDeptResult"> select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, (select dept_name from sys_dept where dept_id = d.parent_id) parent_name from sys_dept d where d.dept_id in <foreach collection="deptIds" open="(" separator="," close=")" item="deptId">#{deptId}</foreach> </select> <select id="checkDeptExistUser" parameterType="Long" resultType="int"> select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0' </select> system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -78,6 +78,11 @@ where r.role_id = #{roleId} </select> <select id="selectRoleByIds" parameterType="Long" resultMap="SysRoleResult"> <include refid="selectRoleVo"/> where r.role_id in <foreach collection="roleIds" open="(" separator="," close=")" item="roleId">#{roleId}</foreach> </select> <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> <include refid="selectRoleVo"/> WHERE r.del_flag = '0' and u.user_name = #{userName} system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -133,6 +133,11 @@ where u.user_id = #{userId} </select> <select id="selectUserByIds" parameterType="Long" resultMap="SysUserResult"> <include refid="selectUserVo"/> where u.user_id in <foreach collection="userIds" open="(" separator="," close=")" item="userId">#{userId}</foreach> </select> <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult"> select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1 </select>