Merge remote-tracking branch 'origin/feature/develop1.0' into feature/develop1.0

This commit is contained in:
jinqiming 2020-12-10 21:07:22 +08:00
commit d7a1af6d84
10 changed files with 74 additions and 61 deletions

View File

@ -82,6 +82,10 @@ public class SysOaLeaveController extends BaseController
startPage();
SysUser sysUser = ShiroUtils.getSysUser();
sysOaLeave.setCreateBy(sysUser.getUserName());
//管理员权限判断
if(!ShiroUtils.getSysUser().isAdmin()){
sysOaLeave.setCreateBy(String.valueOf(sysUser.getUserId()));
}
List<SysOaLeave> list = sysOaLeaveService.selectSysOaLeaveList(sysOaLeave);
return getDataTable(list);
}
@ -130,7 +134,7 @@ public class SysOaLeaveController extends BaseController
}
//生成请假单
String leaveNo = sequenceService.getNewSequenceNo(SequenceContants.OA_LEAVE_SEQUENCE);
sysOaLeave.setCreateBy(sysUser.getUserName());
sysOaLeave.setCreateBy(String.valueOf(sysUser.getUserId()));
sysOaLeave.setLeaveNo(leaveNo);
int i = sysOaLeaveService.insertSysOaLeave(sysOaLeave);
return toAjax(i);

View File

@ -90,18 +90,11 @@
field: 'name',
title: '请假名称'
},
/*
{
field: 'startTime',
title: '开始时间'
},
{
field: 'endTime',
title: '结束时间'
},*/
{
field: 'processStatus',
title: '流程状态',
title: '审批状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processStatusDatas, value);
}
@ -110,7 +103,10 @@
field: 'applyPerson',
title: '申请人'
},
{
field: 'createTime',
title: '创建时间'
},
{
title: '操作',
align: 'center',

View File

@ -21,7 +21,7 @@ public class WorkRecodeService implements ISyncDingTalkInfo {
private WorkRecodeServiceImpl workRecodeService=SpringUtils.getBean(WorkRecodeServiceImpl.class);
@Override
public void syncDingTalkInfoEvent(SyncEvent syncEvent) {
log.info("调用工作通知传入的原始参数:{}"+JSON.toJSONString(syncEvent));
log.info("调用工作通知传入的原始参数:{}",JSON.toJSONString(syncEvent));
DingTalkListenerType eventType =(DingTalkListenerType) syncEvent.getT();
Integer code = eventType.getCode();
if(code.equals(DingTalkListenerType.WORK_RECODE_CREATE.getCode())){

View File

@ -54,7 +54,7 @@ public class UserServiceImpl extends BaseService implements UserService {
req.setWorkPlace(sysUser.getWorkPlace());
req.setRemark(sysUser.getRemark());
//部门list
req.setDeptIdList(JSON.toJSONString(sysUser.getDept().getDeptId()));
req.setDeptIdList(JSON.toJSONString(sysUser.getDeptId()));
List<OapiV2UserCreateRequest.DeptOrder> list2 = new ArrayList<>();
//员工在对应的部门中的职位
List<OapiV2UserCreateRequest.DeptTitle> deptTitleList = new ArrayList<>();

View File

@ -38,7 +38,6 @@ public class WorkRecodeServiceImpl extends BaseService {
* @param workrecordAddRequest
* @return
*/
@SyncLog(dingTalkListenerType = DingTalkListenerType.WORK_RECODE_CREATE,dingTalkUrl=BaseConstantUrl.WORK_RECORD_CREATE)
public String create(WorkrecordAddRequest workrecordAddRequest){
DingTalkClient client = new DefaultDingTalkClient(BaseConstantUrl.WORK_RECORD_CREATE);
OapiWorkrecordAddRequest req = new OapiWorkrecordAddRequest();

View File

@ -259,28 +259,12 @@ public abstract class AbstractEventListener extends AbstractFlowableEventListen
//在流程中存在的才监听
if(flowDefEnum.getCode().equals(key)){
initEngineEventType(flowableEngineEvent);
//会监听多次
execute(flowableEngineEvent);
}
}
}
}
protected void execute(FlowableEngineEvent flowableEngineEvent) {
try {
process(flowableEngineEvent);
} catch (RuntimeException e) {
log.error("执行监听异常", e);
throw e;
}
}
/**
* 抽象需要执行的程序类
*/
protected abstract void process(FlowableEngineEvent flowableEngineEvent);
@Override

View File

@ -13,6 +13,7 @@ import com.snow.flowable.service.FlowableService;
import com.snow.system.domain.SysUser;
import com.snow.system.event.SyncEvent;
import com.snow.system.mapper.SysUserMapper;
import com.snow.system.service.impl.SysUserServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEvent;
@ -29,10 +30,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@ -59,13 +57,6 @@ public class SendMessageEventLister extends AbstractEventListener {
)));
}
@Override
protected void process(FlowableEngineEvent flowableEngineEvent) {
DelegateExecution execution = getExecution(flowableEngineEvent);
log.info("process========>{}",JSON.toJSONString(execution));
}
@Override
protected void taskCreated(FlowableEngineEntityEvent event) {
@ -119,7 +110,7 @@ public class SendMessageEventLister extends AbstractEventListener {
/**
* 组装参数
* @param userId
* @param userId 需要发送通知的人
* @param event
* @return
*/
@ -129,31 +120,41 @@ public class SendMessageEventLister extends AbstractEventListener {
TaskEntity entity = (TaskEntity)event.getEntity();
ProcessDefinition processDefinition = getProcessDefinition(event.getProcessDefinitionId());
WorkrecordAddRequest workrecordAddRequest=new WorkrecordAddRequest();
workrecordAddRequest.setUserid(userId);
workrecordAddRequest.setBizId(processInstance.getBusinessKey());
SysUser userInfo = getUserInfo(userId);
workrecordAddRequest.setUserid(userInfo.getDingUserId());
// workrecordAddRequest.setBizId(processInstance.getBusinessKey());
workrecordAddRequest.setUrl(entity.getFormKey());
workrecordAddRequest.setPcUrl(entity.getFormKey());
workrecordAddRequest.setSourceName("DING-FLOW");
workrecordAddRequest.setPcOpenType(2L);
workrecordAddRequest.setTitle(entity.getName());
workrecordAddRequest.setTitle(processDefinition.getName());
workrecordAddRequest.setCreateTime(entity.getCreateTime().getTime());
List<WorkrecordAddRequest.FormItemVo> formItemList=Lists.newArrayList();
WorkrecordAddRequest.FormItemVo formItemVo = new WorkrecordAddRequest.FormItemVo();
formItemVo.setTitle("流程名称:");
formItemVo.setContent(processDefinition.getName());
formItemVo.setTitle("请假单号");
formItemVo.setContent(processInstance.getBusinessKey());
formItemList.add(formItemVo);
WorkrecordAddRequest.FormItemVo formItemVo3 = new WorkrecordAddRequest.FormItemVo();
formItemVo3.setTitle("审批节点");
formItemVo3.setContent(entity.getName());
formItemList.add(formItemVo3);
WorkrecordAddRequest.FormItemVo formItemVo1 = new WorkrecordAddRequest.FormItemVo();
formItemVo1.setTitle("创建时间:");
formItemVo1.setTitle("创建时间");
formItemVo1.setContent(DateUtil.format(entity.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
formItemList.add(formItemVo1);
WorkrecordAddRequest.FormItemVo formItemVo2 = new WorkrecordAddRequest.FormItemVo();
formItemVo2.setTitle("发起人:");
formItemVo2.setContent(processInstance.getStartUserId());
formItemVo2.setTitle("发起人");
formItemVo2.setContent(getUserInfo(processInstance.getStartUserId()).getUserName());
formItemList.add(formItemVo2);
workrecordAddRequest.setFormItemList(formItemList);
return workrecordAddRequest;
}
/**
* 获取流程定义信息
* @param processDefinitionId
* @return
*/
protected ProcessDefinition getProcessDefinition(String processDefinitionId) {
RepositoryService repositoryService = (RepositoryService)SpringContextUtil.getBean(RepositoryService.class);
return repositoryService.createProcessDefinitionQuery()
@ -161,5 +162,17 @@ public class SendMessageEventLister extends AbstractEventListener {
.singleResult();
}
/**
* 获取用户信息
* @param userId
* @return
*/
protected SysUser getUserInfo(String userId) {
SysUserServiceImpl sysUserService = (SysUserServiceImpl)SpringContextUtil.getBean(SysUserServiceImpl.class);
return Optional.ofNullable(sysUserService.selectUserById(Long.parseLong(userId))).orElse(
new SysUser(1L,"System","manager4480")
);
}
}

View File

@ -43,11 +43,6 @@ public class ManagerTaskEventListener extends AbstractEventListener {
)));
}
@Override
protected void process(FlowableEngineEvent flowableEngineEvent) {
}
@Override
@ -63,9 +58,9 @@ public class ManagerTaskEventListener extends AbstractEventListener {
@Override
protected void taskCompleted(FlowableEngineEntityEvent event) {
SysOaLeaveServiceImpl sysOaLeaveService = (SysOaLeaveServiceImpl)SpringContextUtil.getBean(SysOaLeaveServiceImpl.class);
//任务完成做一些业务处理
log.info("ManagerTaskEventListener----taskCompleted任务完成监听{}",JSON.toJSONString(event));
SysOaLeaveServiceImpl sysOaLeaveService = (SysOaLeaveServiceImpl)SpringContextUtil.getBean(SysOaLeaveServiceImpl.class);
TaskEntity entity = (TaskEntity)event.getEntity();
DelegateExecution execution = getExecution(event);
SysOaLeave sysOaLeave=new SysOaLeave();

View File

@ -135,6 +135,10 @@ public class SysUser extends BaseEntity
*/
private String orgEmail;
/**
* 钉钉用户ID
*/
private String dingUserId;
public SysUser()
{
@ -145,7 +149,12 @@ public class SysUser extends BaseEntity
{
this.userId = userId;
}
public SysUser(Long userId,String userName,String dingUserId)
{
this.userId = userId;
this.userName=userName;
this.dingUserId=dingUserId;
}
public Long getUserId()
{
return userId;
@ -440,6 +449,14 @@ public class SysUser extends BaseEntity
this.orgEmail = orgEmail;
}
public String getDingUserId() {
return dingUserId;
}
public void setDingUserId(String dingUserId) {
this.dingUserId = dingUserId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@ -31,6 +31,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="tel" column="tel" />
<result property="hiredDate" column="hired_date" />
<result property="orgEmail" column="org_email" />
<result property="dingUserId" column="ding_user_id" />
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
@ -56,7 +58,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.login_name, u.user_name, u.user_type, u.email, u.avatar, u.phonenumber, u.sex, u.password, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_time, u.remark,
d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,
u.ding_user_id
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id
@ -64,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.login_name, u.user_name, u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
select u.user_id, u.dept_id, u.login_name, u.user_name, u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,u.ding_user_id from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="loginName != null and loginName != ''">
@ -200,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="tel != null">tel = #{tel},</if>
<if test="hiredDate != null">hired_date = #{hiredDate},</if>
<if test="orgEmail != null">org_email = #{orgEmail},</if>
<if test="dingUserId != null">ding_user_id = #{dingUserId},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
@ -228,6 +231,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="tel != null">tel ,</if>
<if test="hiredDate != null">hired_date,</if>
<if test="orgEmail != null">org_email,</if>
<if test="dingUserId != null">ding_user_id,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@ -250,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="tel != null and tel!=''">#{tel},</if>
<if test="hiredDate != null and hiredDate !='' ">#{hiredDate},</if>
<if test="orgEmail != null and orgEmail !=''"> #{orgEmail},</if>
<if test="dingUserId != null">#{dingUserId},</if>
sysdate()
)
</insert>