提交修改

This commit is contained in:
quyixiao 2020-11-23 09:48:19 +08:00
commit bd75727e5c
7 changed files with 45 additions and 34 deletions

View File

@ -23,7 +23,7 @@ public enum WorkMsgTypeEnum {
SCORE(9, "绩效考评待办事项", "评分", "\n @的绩效\n \n 需您去评分"),
SKIP(10, "绩效跳过", "跳过", "# @的绩效\n ## 己经跳过"),
TRANSFER(11, "绩效转交", "转交", "# @的绩效\n ## 己经转交"),
CLEARN(10, "绩效转交", "转交", "# @的绩效\n ## 己经转交"),
CLEARN(12, "绩效转交", "转交", "# @的绩效\n ## 己经转交"),
// 您的2020年10月绩效考核已经开始请尽快制定绩效目标
// 吴林的2020年12月绩效考核的目标需要您确认点击前往确认
;

View File

@ -87,4 +87,6 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
List<FlowRecord> selectLastFlowRecordsById(@Param("recordId") Long recordId);
List<FlowRecord> selectLastFlowRecordsByIdAndFlowIndex(@Param("recordId") Long recordId, @Param("flowIndex") int flowIndex);
List<FlowRecord> selectSkipFlowRecordsById(@Param("recordId") Long recordId);
}

View File

@ -82,4 +82,6 @@ public interface FlowRecordService extends IService<FlowRecord> {
List<FlowRecord> selectLastFlowRecordsById(Long recordId);
//获取制定步骤一个小节点的所有数据
List<FlowRecord> selectLastFlowRecordsByIdAndFlowIndex(Long recordId, int flowIndex);
List<FlowRecord> selectSkipFlowRecordsById(Long recordId);
}

View File

@ -221,4 +221,9 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
return flowRecordMapper.selectLastFlowRecordsByIdAndFlowIndex(recordId, flowIndex);
}
@Override
public List<FlowRecord> selectSkipFlowRecordsById(Long recordId){
return flowRecordMapper.selectSkipFlowRecordsById(recordId);
}
}

View File

@ -243,7 +243,7 @@ public class DingtalkBusiness {
ResultRecord resultRecord = resultRecordService.selectResultRecordById(resultRecordId);
if(resultRecord != null){
FlowStart flowStart = flowStartService.selectFlowStartById(resultRecord.getStartId());
StaffSimpleInfo fromStaff = staffService.selectStaffSimpleInfo(resultRecord.getStaffId());
StaffSimpleInfo fromStaff = staffService.selectStaffSimpleInfo(resultRecord.getStaffId());//查询来自那里
fromStaff.setResultRecord(resultRecord);
fromStaff.setFlowStart(flowStart);
List<StaffSimpleInfo> toStaffids = new ArrayList<>();
@ -252,21 +252,16 @@ public class DingtalkBusiness {
if(type == WorkMsgTypeEnum.REJECT.getType()){//被拒
sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.REJECT.getType());
}else if(type == WorkMsgTypeEnum.URGING.getType()){//被拒
sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.URGING.getType());
}else if(type == WorkMsgTypeEnum.SKIP.getType()){//被拒
sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.SKIP.getType());
}else if(type == WorkMsgTypeEnum.TRANSFER.getType()){//被拒
sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.TRANSFER.getType());
}else{
/*List<FlowRecord> flowRecords =
flowRecordService.selectFlowRecordByRecordIdStatus(resultRecordId, 2);
List<Long> ids = flowRecords.stream().map(new Function<FlowRecord, Long>() {
@Override
public Long apply(FlowRecord flowRecord) {
return flowRecord.getApprovalStaffId();
}
}).collect(Collectors.toList());
toStaffids = staffService.selectStaffSimpleInfos(ids);
for (StaffSimpleInfo simpleInfo:toStaffids
) {
simpleInfo.setResultRecord(resultRecord);
simpleInfo.setFlowStart(flowStart);
}*/
sendWorkMSGWithAsyn(null, toStaffids, WorkMsgTypeEnum.PROCESS.getType());
}
@ -480,6 +475,7 @@ public class DingtalkBusiness {
if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.TRANSFER.getType()){//转交
//转交
//并发转交会有问题
logger.info("转交待办任务处理");
FlowChange flowChange = flowChangeService.selectFlowChangeByRecordIdAndToIdAndType(info.getResultRecord().getId(),
info.getId(), 0);
@ -489,10 +485,12 @@ public class DingtalkBusiness {
if(thirdMsgSendRecord != null){//把原来的任务更新掉
dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token);
}
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2);
FlowRecord flowRecord = flowRecordService.selectFlowRecordById(flowChange.getFlowRecordId());
StaffSimpleInfo staffSimpleInfo = staffService.selectStaffSimpleInfo(flowRecord.getApprovalStaffId());
//List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2);
//发送待办任务到新指定人员转交过来一定会有数据
sendNotic(info.getId(), info.getEmployeeId(),
flowRecords.get(0).getFlowName(), info.getFlowStart().getName(),
sendNotic(info.getId(), staffSimpleInfo.getEmployeeId(),
flowRecord.getFlowName(), info.getFlowStart().getName(),
info.getResultRecord().getStaffName(), token, url, info.getResultRecord().getId());
@ -500,36 +498,32 @@ public class DingtalkBusiness {
}else if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.SKIP.getType()){//跳过
//跳过
logger.info("跳过待办任务处理");
FlowChange flowChange = flowChangeService.selectFlowChangeByRecordIdAndToIdAndType(info.getResultRecord().getId(),
info.getId(), 1);
ThirdMsgSendRecord thirdMsgSendRecord =
thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus(
info.getResultRecord().getId(),
flowChange.getApprovalId(), 1, 1);
if(thirdMsgSendRecord != null){//把原来的任务更新掉
dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token);
}
List<FlowRecord> flowRecords = flowRecordService.selectAndOrFlowRecordsById(flowChange.getFlowRecordId(), info.getResultRecord().getId());
List<FlowRecord> flowRecords =
flowRecordService.selectSkipFlowRecordsById(info.getResultRecord().getId());//取消所有跳过的人
logger.info("查询到可能需要更新待办任务数量{}", flowRecords.size());
if(flowRecords.size() > 0){
if(flowRecords.get(0).getType().intValue() == 1){
//if(flowRecords.get(0).getType().intValue() == 1){
//或签
logger.info("或签,需要更新该节点下所有人员的待办任务");
for (FlowRecord flowRecord:flowRecords
) {
if(flowRecord.getApprovalStaffId().longValue() != info.getId()){
//if(flowRecord.getApprovalStaffId().longValue() != info.getId()){
logger.info("更新非直接跳关人员的待办任务人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(),
flowRecord.getApprovalStaffName());
thirdMsgSendRecord =
ThirdMsgSendRecord thirdMsgSendRecord =
thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus(
info.getResultRecord().getId(),
flowRecord.getApprovalStaffId(), 1, 1);
if(thirdMsgSendRecord != null){//把原来的任务更新掉
dingTalkUtil.updateWorkMSG(thirdMsgSendRecord, token);
}else{
logger.info("无需更新");
}
}
//}
}
}
//}
}
}else{
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(info.getResultRecord().getId(), 2);

View File

@ -14,6 +14,7 @@ import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.sys.entity.SysUserEntityDto;
import com.lz.modules.sys.entity.SysUserTokenEntity;
import com.lz.modules.sys.service.ShiroService;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
@ -30,6 +31,7 @@ import java.util.Set;
* @author Mark sunlightcs@gmail.com
*/
@Component
@Slf4j
public class OAuth2Realm extends AuthorizingRealm {
@Autowired
private ShiroService shiroService;
@ -74,8 +76,10 @@ public class OAuth2Realm extends AuthorizingRealm {
SysUserEntity user = null;
StaffEntity staffEntity = staffService.selectStaffById(tokenEntity.getUserId());
if(tokenEntity.getType() == 0){ //如果是系统用户
log.info("token判定为系统用户");
user = shiroService.queryUser(tokenEntity.getUserId());
if(staffEntity != null){
log.info("查询到系统用户信息");
user.setAvatar(staffEntity.getAvatar());
}

View File

@ -310,5 +310,9 @@
<select id="selectLastFlowRecordsByIdAndFlowIndex" resultType="com.lz.modules.flow.entity.FlowRecord">
select * from lz_flow_record where is_delete = 0 and flow_index = #{flowIndex} and record_id = #{recordId}
</select>
<select id="selectSkipFlowRecordsById" resultType="com.lz.modules.flow.entity.FlowRecord">
select * from lz_flow_record where is_delete = 0 and (status=4 or status=3) and record_id = #{recordId}
</select>
</mapper>