修改一键催办逻辑
This commit is contained in:
parent
a6cd4a34bd
commit
dc8a5f406f
@ -105,4 +105,8 @@ public interface FlowRecordMapper extends BaseMapper<FlowRecord> {
|
|||||||
FlowRecord selectPreFlowRecordByRecordIdMinIdStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List<Integer> statusList);
|
FlowRecord selectPreFlowRecordByRecordIdMinIdStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List<Integer> statusList);
|
||||||
|
|
||||||
List<FlowRecord> selectFlowRecordByRecordIdFlowIndexStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List<Integer> statusList);
|
List<FlowRecord> selectFlowRecordByRecordIdFlowIndexStatusList(@Param("recordId") Long recordId, @Param("flowIndex") Integer flowIndex, @Param("statusList") List<Integer> statusList);
|
||||||
|
|
||||||
|
List<FlowRecord> selectFlowRecordByRecordIdsFlowProcess(@Param("recordIds") List<Long> recordIds, @Param("flowProcess") Long flowProcess);
|
||||||
|
|
||||||
|
List<FlowRecord> selectFlowRecordByRecordIdsStatus(@Param("recordIds") List<Long> recordIds, @Param("status") int status);
|
||||||
}
|
}
|
||||||
@ -101,4 +101,8 @@ public interface FlowRecordService extends IService<FlowRecord> {
|
|||||||
List<FlowRecord> selectFlowRecordByRecordIdFlowIndexStatusList(Long recordId, Integer flowIndex, List<Integer> statusList);
|
List<FlowRecord> selectFlowRecordByRecordIdFlowIndexStatusList(Long recordId, Integer flowIndex, List<Integer> statusList);
|
||||||
|
|
||||||
List<FlowRecord> selectFlowRecordByRecordIdLeFlowIndex(Long resultRecordId, Integer flowIndex);
|
List<FlowRecord> selectFlowRecordByRecordIdLeFlowIndex(Long resultRecordId, Integer flowIndex);
|
||||||
|
|
||||||
|
List<FlowRecord> selectFlowRecordByRecordIdsFlowProcess(List<Long> recordIds, Long flowProcess);
|
||||||
|
|
||||||
|
List<FlowRecord> selectFlowRecordByRecordIdsStatus(List<Long> recordIds, int status);
|
||||||
}
|
}
|
||||||
@ -266,4 +266,14 @@ public class FlowRecordServiceImpl extends ServiceImpl<FlowRecordMapper, FlowRec
|
|||||||
return flowRecordMapper.selectFlowRecordByRecordIdLeFlowIndex(resultRecordId,flowIndex);
|
return flowRecordMapper.selectFlowRecordByRecordIdLeFlowIndex(resultRecordId,flowIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FlowRecord> selectFlowRecordByRecordIdsFlowProcess(List<Long> recordIds, Long flowProcess){
|
||||||
|
return flowRecordMapper.selectFlowRecordByRecordIdsFlowProcess(recordIds,flowProcess);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FlowRecord> selectFlowRecordByRecordIdsStatus(List<Long> recordIds, int status){
|
||||||
|
return flowRecordMapper.selectFlowRecordByRecordIdsStatus(recordIds,status);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -984,15 +984,17 @@ public class DingtalkBusiness {
|
|||||||
return R.error("未授权登录");
|
return R.error("未授权登录");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void urging(List<StaffEntity> staffEntities, Map<Long, ResultRecord> mapReords) {
|
public void urging(List<FlowRecord> flowRecords, Map<Long, StaffEntity> mapStaffs, Map<Long, ResultRecord> mapReords) {
|
||||||
logger.info("批量催办");
|
logger.info("批量催办");
|
||||||
ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid);
|
ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid);
|
||||||
String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig);
|
String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig);
|
||||||
if(token != null && token.length() > 0){
|
if(token != null && token.length() > 0){
|
||||||
for (StaffEntity info:staffEntities
|
|
||||||
|
for (FlowRecord flowRecord:flowRecords
|
||||||
) {
|
) {
|
||||||
ResultRecord record = mapReords.get(info.getId());
|
ResultRecord record = mapReords.get(flowRecord.getId());
|
||||||
if(record != null){
|
StaffEntity info = mapStaffs.get(flowRecord.getApprovalStaffId());
|
||||||
|
if(record != null && info != null){
|
||||||
String url = homeUrl;
|
String url = homeUrl;
|
||||||
if(url.contains("?")){
|
if(url.contains("?")){
|
||||||
url += "&halokit=" + System.currentTimeMillis();
|
url += "&halokit=" + System.currentTimeMillis();
|
||||||
|
|||||||
@ -11,10 +11,12 @@ import com.lz.modules.app.service.DepartmentsService;
|
|||||||
import com.lz.modules.app.service.DepartmentsStaffRelateService;
|
import com.lz.modules.app.service.DepartmentsStaffRelateService;
|
||||||
import com.lz.modules.app.service.StaffService;
|
import com.lz.modules.app.service.StaffService;
|
||||||
import com.lz.modules.flow.dao.FlowStartMapper;
|
import com.lz.modules.flow.dao.FlowStartMapper;
|
||||||
|
import com.lz.modules.flow.entity.FlowRecord;
|
||||||
import com.lz.modules.flow.entity.FlowStart;
|
import com.lz.modules.flow.entity.FlowStart;
|
||||||
import com.lz.modules.flow.entity.StaffRole;
|
import com.lz.modules.flow.entity.StaffRole;
|
||||||
import com.lz.modules.flow.entity.StaffRoleDepartment;
|
import com.lz.modules.flow.entity.StaffRoleDepartment;
|
||||||
import com.lz.modules.flow.service.EvaluationStartStaffService;
|
import com.lz.modules.flow.service.EvaluationStartStaffService;
|
||||||
|
import com.lz.modules.flow.service.FlowRecordService;
|
||||||
import com.lz.modules.flow.service.StaffRoleDepartmentService;
|
import com.lz.modules.flow.service.StaffRoleDepartmentService;
|
||||||
import com.lz.modules.flow.service.StaffRoleService;
|
import com.lz.modules.flow.service.StaffRoleService;
|
||||||
import com.lz.modules.job.business.DingtalkBusiness;
|
import com.lz.modules.job.business.DingtalkBusiness;
|
||||||
@ -80,6 +82,8 @@ public class AssessManagerController extends AbstractController{
|
|||||||
@Autowired
|
@Autowired
|
||||||
private StaffService staffService;
|
private StaffService staffService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private FlowRecordService flowRecordService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -261,8 +265,6 @@ public class AssessManagerController extends AbstractController{
|
|||||||
staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds);
|
staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log.info("查询到有权限可以推送的人员数量为{}, 如下{}", staffIds.size(), staffIds);
|
log.info("查询到有权限可以推送的人员数量为{}, 如下{}", staffIds.size(), staffIds);
|
||||||
//下面查询当前startId,当前flowProcess下面有多少人员id
|
//下面查询当前startId,当前flowProcess下面有多少人员id
|
||||||
List<ResultRecord> resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess);
|
List<ResultRecord> resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess);
|
||||||
@ -273,10 +275,47 @@ public class AssessManagerController extends AbstractController{
|
|||||||
log.info("查询到在当前节点下的人数为{},如下{}", staffIds1.size(), staffIds1);
|
log.info("查询到在当前节点下的人数为{},如下{}", staffIds1.size(), staffIds1);
|
||||||
if(staffIds1.size() > 0 && staffIds.size() > 0){
|
if(staffIds1.size() > 0 && staffIds.size() > 0){
|
||||||
staffIds.retainAll(staffIds1);//求交集
|
staffIds.retainAll(staffIds1);//求交集
|
||||||
log.info("最终能推送人员个数{}", staffIds.size());
|
log.info("需要推送绩效个数{}", staffIds.size());
|
||||||
if(staffIds.size() > 0){
|
if(staffIds.size() > 0){
|
||||||
|
|
||||||
|
staffIds1 = mapReords.keySet().stream().collect(Collectors.toList());
|
||||||
|
staffIds1.retainAll(staffIds);
|
||||||
|
log.info("去掉排除的数据后数量{}", staffIds1.size());
|
||||||
|
for (Long id:staffIds1
|
||||||
|
) {
|
||||||
|
mapReords.remove(id);
|
||||||
|
}
|
||||||
|
//获取催办的节点的人员信息
|
||||||
|
List<Long> recordIds = resultRecords.stream().map(new Function<ResultRecord, Long>() {
|
||||||
|
@Override
|
||||||
|
public Long apply(ResultRecord resultRecord) {
|
||||||
|
return resultRecord.getId();
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
log.info("剩余需要处理record的数量{}", recordIds.size());
|
||||||
|
List<FlowRecord> flowRecords;
|
||||||
|
if(flowProcess == null){//催全部,获取当前节点的人员信息
|
||||||
|
|
||||||
|
flowRecords =
|
||||||
|
flowRecordService.selectFlowRecordByRecordIdsStatus(recordIds, 2);
|
||||||
|
log.info("催当前节点的人员,数量{}", flowRecords.size());
|
||||||
|
}else{
|
||||||
|
flowRecords =
|
||||||
|
flowRecordService.selectFlowRecordByRecordIdsFlowProcess(recordIds, flowProcess);
|
||||||
|
log.info("催指定节点的人员,数量{}", flowRecords.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
staffIds = flowRecords.stream().map(new Function<FlowRecord, Long>() {
|
||||||
|
@Override
|
||||||
|
public Long apply(FlowRecord flowRecord) {
|
||||||
|
return flowRecord.getApprovalStaffId();
|
||||||
|
}
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
log.info("最终能推送人员个数{}", staffIds.size());
|
||||||
|
mapReords = resultRecords.stream().collect(Collectors.toMap(ResultRecord::getId, Function.identity(), (e, r) -> e));
|
||||||
List<StaffEntity> staffEntities = staffService.selectByIds(staffIds);
|
List<StaffEntity> staffEntities = staffService.selectByIds(staffIds);
|
||||||
dingtalkBusiness.urging(staffEntities, mapReords);
|
Map<Long, StaffEntity> mapStaffs = staffEntities.stream().collect(Collectors.toMap(StaffEntity::getId, Function.identity(), (e, r) -> e));
|
||||||
|
dingtalkBusiness.urging(flowRecords, mapStaffs, mapReords);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -656,6 +656,7 @@
|
|||||||
<select id="selectStaffIdsByStartIdAndFlowProcess" resultType="ResultRecord">
|
<select id="selectStaffIdsByStartIdAndFlowProcess" resultType="ResultRecord">
|
||||||
select * from lz_result_record where is_delete = 0 and start_id = #{startId}
|
select * from lz_result_record where is_delete = 0 and start_id = #{startId}
|
||||||
<if test="flowProcess != null"> and flow_process = #{flowProcess}</if>
|
<if test="flowProcess != null"> and flow_process = #{flowProcess}</if>
|
||||||
|
<if test="flowProcess != null"> and flow_process <![CDATA[<]]> 4</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -364,5 +364,25 @@
|
|||||||
update lz_flow_record set id = #{newId} where id = #{id}
|
update lz_flow_record set id = #{newId} where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="selectFlowRecordByRecordIdsFlowProcess" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||||
|
select * from lz_flow_record where is_delete = 0
|
||||||
|
and record_id in
|
||||||
|
<foreach item="recordIds" collection="recordId" open="(" separator="," close=")">
|
||||||
|
#{recordId}
|
||||||
|
</foreach>
|
||||||
|
and flow_process = #{flowProcess}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectFlowRecordByRecordIdsStatus" resultType="com.lz.modules.flow.entity.FlowRecord">
|
||||||
|
select * from lz_flow_record where is_delete = 0
|
||||||
|
and record_id in
|
||||||
|
<foreach item="recordIds" collection="recordId" open="(" separator="," close=")">
|
||||||
|
#{recordId}
|
||||||
|
</foreach>
|
||||||
|
and status = #{status}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user