|
|
@@ -37,7 +37,6 @@ import com.xunmei.common.core.enums.CycleCommonEnum;
|
|
|
import com.xunmei.common.core.enums.OrgTypeEnum;
|
|
|
import com.xunmei.common.core.enums.drill.DrillPlanCycleEnum;
|
|
|
import com.xunmei.common.core.enums.drill.DrillPlanStatus;
|
|
|
-import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
|
|
|
import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
|
|
|
import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
|
|
|
import com.xunmei.common.core.exception.ServiceException;
|
|
|
@@ -196,8 +195,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
vo.setPlanRoleId(ObjectUtil.isEmpty(execRoleIdList) ? null : execRoleIdList);
|
|
|
if (plan.getStandard() == 1) {
|
|
|
//是否存在已完成的任务
|
|
|
- final Integer done = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(plan.getId());
|
|
|
+ final Integer done = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(vo.getId());
|
|
|
vo.setDone(done);
|
|
|
+ //是否已生成了任务
|
|
|
+ final Integer hasTask = coreEduTrainingTaskMapper.checkHasTaskByPlanParentId(vo.getId());
|
|
|
+ vo.setHasTask(hasTask);
|
|
|
}
|
|
|
if (ObjectUtil.equal(plan.getPlanCycle(), EduTrainingPlanCycleEnum.NONE.getCode())) {
|
|
|
vo.setDone(coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanIdOrParentId(plan.getId()));
|
|
|
@@ -293,7 +295,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public int updateCoreEduTrainingPlan(CoreEduTrainingPlanEditDto request) {
|
|
|
final CoreEduTrainingPlan plan = getById(request.getId());
|
|
|
- if (plan==null){
|
|
|
+ if (plan == null) {
|
|
|
throw new RuntimeException("计划不存在!");
|
|
|
}
|
|
|
plan.setUpdateTime(DateUtils.getNowDate());
|
|
|
@@ -308,8 +310,8 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
}
|
|
|
if (plan.getPlanStatus() == EduTrainingPlanStatus.USING.getCode()) {
|
|
|
//使用中 状态,支持编辑名称;
|
|
|
- //存在已完成任务,本次修改内容将从下周期生效
|
|
|
//不存在已完成任务,本次修改内容将立即生成
|
|
|
+ //存在已完成任务,本次修改内容将从下周期生效
|
|
|
doUpdatePlanForUsing(plan, request);
|
|
|
}
|
|
|
|
|
|
@@ -319,13 +321,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
private void doUpdatePlanForUsing(CoreEduTrainingPlan plan, CoreEduTrainingPlanEditDto request) {
|
|
|
doUpdatePlanForDeleted(plan, request);
|
|
|
final List<Long> list = coreEduTrainingPlanMapper.selectIdByParentId(plan.getId());
|
|
|
- Integer isExecute = coreEduTrainingTaskMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTask>()
|
|
|
- .in(CoreEduTrainingTask::getPlanId, list)
|
|
|
- .eq(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.DONE.getCode()))
|
|
|
- .intValue();
|
|
|
+ Integer isExecute = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(plan.getId());
|
|
|
//不存在已完成任务,本次修改内容将立即生成
|
|
|
//存在已完成任务,本次修改内容将从下周期生效
|
|
|
- if (isExecute < 1) {
|
|
|
+ if (isExecute == null || isExecute < 1) {
|
|
|
coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
|
|
|
//使用中 状态,支持编辑名称,所以这里只需要修改计划名称就行了
|
|
|
this.update(new LambdaUpdateWrapper<CoreEduTrainingPlan>().in(CoreEduTrainingPlan::getId, list)
|
|
|
@@ -394,7 +393,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
List<Long> longs = baseMapper.selectAllIdByParentId(plan.getId());
|
|
|
if (!longs.isEmpty()) {
|
|
|
longs.remove(plan.getId());
|
|
|
- if(!longs.isEmpty()){
|
|
|
+ if (!longs.isEmpty()) {
|
|
|
baseMapper.delByIds(longs);
|
|
|
}
|
|
|
// physicalDeleteMapper.deletedEduPlanByIds(longs);
|
|
|
@@ -498,12 +497,9 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
removeById(id);
|
|
|
return;
|
|
|
}
|
|
|
- int isExecute = coreEduTrainingTaskMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTask>()
|
|
|
- .in(CoreEduTrainingTask::getPlanId, list)
|
|
|
- .eq(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.DONE.getCode()))
|
|
|
- .intValue();
|
|
|
+ Integer isExecute = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(id);
|
|
|
list.add(id);
|
|
|
- if (isExecute < 1) {
|
|
|
+ if (isExecute == null || isExecute < 1) {
|
|
|
// 计划下没有已完成:删除所有任务,计划数据做物理删除。
|
|
|
coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
|
|
|
coreEduTrainingPlanMapper.delByIds(list);
|
|
|
@@ -786,7 +782,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
List<Long> list = coreEduTrainingPlanMapper.selectIdByParentId(planId);
|
|
|
Integer isExecute = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
|
|
|
//计划下没有已完成:计划下没有已完成:删除所有任务数据,计划状态回到草稿状态。
|
|
|
- if (ObjectUtil.isNull(isExecute) || isExecute < 1/* || EduTrainingPlanCycleEnum.NONE.getCode().equals(plan.getPlanCycle())*/) {
|
|
|
+ if (isExecute == null || isExecute < 1) {
|
|
|
// 删除所有任务数据
|
|
|
coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(list, null, null);
|
|
|
//删除所有子计划
|
|
|
@@ -829,18 +825,17 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
// }
|
|
|
|
|
|
//1、由办事处机构获取到省联社机构,并获取到计划数据
|
|
|
- List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
+ List<SysOrgVO> parentOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
|
|
|
- List<CoreEduTrainingPlan> lsPlanList =new ArrayList<>();
|
|
|
- if(ObjectUtil.isNotNull(slsOrgVo))
|
|
|
- {
|
|
|
+ List<CoreEduTrainingPlan> lsPlanList = new ArrayList<>();
|
|
|
+ if (ObjectUtil.isNotNull(slsOrgVo)) {
|
|
|
lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
|
|
|
}
|
|
|
//2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
|
|
|
- List<SysOrg> hsOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId,SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
- List<CoreEduTrainingPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x->x.getId()).collect(toList()), 0,0);
|
|
|
+ List<SysOrg> hsOrgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
+ List<CoreEduTrainingPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x -> x.getId()).collect(toList()), 0, 0);
|
|
|
//3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
|
|
|
- lsPlanList=lsPlanList.stream().filter(ls->bscHsPlanList.stream().anyMatch(hs->ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
|
|
|
+ lsPlanList = lsPlanList.stream().filter(ls -> bscHsPlanList.stream().anyMatch(hs -> ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
|
|
|
|
|
|
//4、办事处自己下发的任务
|
|
|
|
|
|
@@ -852,12 +847,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
return hsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
|
|
|
case 4:
|
|
|
//网点
|
|
|
- List<SysOrgVO> parentOrgList1= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
+ List<SysOrgVO> parentOrgList1 = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
SysOrgVO hsOrgVo = parentOrgList1.stream().filter(x -> ObjectUtil.equal(x.getType(), 3)).findFirst().orElse(null);
|
|
|
- Long tempOrgId=orgId;
|
|
|
- if(ObjectUtil.isNotNull(hsOrgVo))
|
|
|
- {
|
|
|
- tempOrgId=hsOrgVo.getId();
|
|
|
+ Long tempOrgId = orgId;
|
|
|
+ if (ObjectUtil.isNotNull(hsOrgVo)) {
|
|
|
+ tempOrgId = hsOrgVo.getId();
|
|
|
}
|
|
|
final List<CoreEduTrainingPlan> wdhsPlanList = getPlanList(tempOrgId, null, null);
|
|
|
return wdhsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
|
|
|
@@ -867,16 +861,14 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
}
|
|
|
|
|
|
private List<CoreEduTrainingPlan> getPlanList(Long orgId, Integer standard, Integer issue) {
|
|
|
- LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
|
|
|
+ LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
|
|
|
- if(ObjectUtil.isNotNull(standard))
|
|
|
- {
|
|
|
- queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
|
|
|
- }
|
|
|
- if(ObjectUtil.isNotNull(issue))
|
|
|
- {
|
|
|
+ if (ObjectUtil.isNotNull(standard)) {
|
|
|
+ queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotNull(issue)) {
|
|
|
queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
|
|
|
}
|
|
|
return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
|
|
|
@@ -889,12 +881,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
queryWrapper.in(CoreEduTrainingPlan::getBelongOrgId, orgIds)
|
|
|
.eq(CoreEduTrainingPlan::getDeleted, 0)
|
|
|
.eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
|
|
|
- if(ObjectUtil.isNotNull(standard))
|
|
|
- {
|
|
|
+ if (ObjectUtil.isNotNull(standard)) {
|
|
|
queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
|
|
|
}
|
|
|
- if(ObjectUtil.isNotNull(issue))
|
|
|
- {
|
|
|
+ if (ObjectUtil.isNotNull(issue)) {
|
|
|
queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
|
|
|
}
|
|
|
return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
|
|
|
@@ -988,38 +978,38 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, trainingPlan.getId(), trainingPlan.getPlanName(), errorMsg);
|
|
|
|
|
|
return;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
Integer execOrgType = trainingPlan.getExecOrgType();
|
|
|
List<Long> orgIds = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(trainingPlan.getId());
|
|
|
List<Long> ids = new ArrayList<>();
|
|
|
- if(ObjectUtil.isNotEmpty(orgIds)){
|
|
|
+ if (ObjectUtil.isNotEmpty(orgIds)) {
|
|
|
//该计划是指定了具体机构的计划
|
|
|
//获取机构在 orgList子集机构
|
|
|
for (SysOrgVO sysOrgVO : orgList) {
|
|
|
List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
|
|
|
- if(ObjectUtil.isNotEmpty(sysOrgs)){
|
|
|
+ if (ObjectUtil.isNotEmpty(sysOrgs)) {
|
|
|
//获取sysOrgs 的属性id集合
|
|
|
List<Long> cids = sysOrgs.stream().map(SysOrg::getId).collect(toList());
|
|
|
//求cids和orgIds之间的交集
|
|
|
List<Long> collect = cids.stream().filter(id -> orgIds.contains(id)).collect(toList());
|
|
|
- if(!collect.isEmpty()){
|
|
|
+ if (!collect.isEmpty()) {
|
|
|
ids.addAll(collect);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//该计划是只指定了机构类型的计划
|
|
|
//获取orgList 机构树下的 机构类型
|
|
|
for (SysOrgVO sysOrgVO : orgList) {
|
|
|
List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
|
|
|
- if(ObjectUtil.isNotEmpty(sysOrgs)){
|
|
|
- //获取sysOrgs 的属性id集合
|
|
|
+ if (ObjectUtil.isNotEmpty(sysOrgs)) {
|
|
|
+ //获取sysOrgs 的属性id集合
|
|
|
ids.addAll(sysOrgs.stream().map(SysOrg::getId).collect(toList()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//没有子类计划的省联社计划
|
|
|
- create(trainingPlan,ids,threadPoolTaskExecutor);
|
|
|
+ create(trainingPlan, ids, threadPoolTaskExecutor);
|
|
|
compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, trainingPlan.getId(), trainingPlan.getPlanName(), errorMsg);
|
|
|
return;
|
|
|
}
|
|
|
@@ -1027,7 +1017,6 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
// 行社自建计划
|
|
|
if (INVALID_ORG_TYPES.contains(orgTypeEnum)) {
|
|
|
errorMsg = "补偿范围中传递机构信息错误!与计划信息不匹配";
|