|
@@ -17,6 +17,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigJsonDTO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
|
|
@@ -24,6 +25,7 @@ import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDeptTaskTypeConfigMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
@@ -32,12 +34,15 @@ import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -53,14 +58,14 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
|
|
|
private final WmTaskTypeService wmTaskTypeService;
|
|
|
|
|
|
- private final WmTaskService wmTaskService;
|
|
|
-
|
|
|
private final WmScorePackageService wmScorePackageService;
|
|
|
|
|
|
private final SysDeptRelationMapper sysDeptRelationMapper;
|
|
|
|
|
|
private final WmDaDrugEntMapper wmDaDrugEntMapper;
|
|
|
|
|
|
+ private final WmTaskMapper wmTaskMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 保存任务类型配置
|
|
|
*
|
|
@@ -165,7 +170,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
* 根据企业的任务类型配置查询任务列表
|
|
|
*
|
|
|
* @param taskTypeName 任务类型名称
|
|
|
- * @param taskStatus 任务状态
|
|
|
+ * @param taskStatus 任务状态
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
@@ -191,6 +196,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
LambdaQueryWrapper<WmScorePackage> scorePackageWrapper = Wrappers.lambdaQuery();
|
|
|
scorePackageWrapper.eq(WmScorePackage::getSendPackageDeptId, deptId);
|
|
|
scorePackageWrapper.eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val());
|
|
|
+ scorePackageWrapper.eq(WmScorePackage::getDelFlag, DelEnum.NOT_DEL.val());
|
|
|
scorePackageWrapper.eq(WmScorePackage::getPackageType1, PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val());
|
|
|
scorePackageWrapper.eq(WmScorePackage::getPackageType2, PackageTypeEnum.TYPE2_TASK_PACKAGE.val());
|
|
|
scorePackageWrapper.ge(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.IN_PROGRESS.val());
|
|
@@ -202,8 +208,13 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
List<WmScorePackage> scorePackageList = wmScorePackageService.list(scorePackageWrapper);
|
|
|
if (CollectionUtil.isNotEmpty(scorePackageList)) {
|
|
|
// 遍历查找所有下级积分包
|
|
|
- scorePackageList.forEach(scorePackage -> getAllLowerScorePackages(scorePackage.getId(), scorePackageList));
|
|
|
- scorePackageIdList = scorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
|
|
|
+ Set<String> ids = scorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
+ getAllLowerScorePackages(ids, scorePackageList);
|
|
|
+
|
|
|
+ // 过滤只要发给个人的包
|
|
|
+ scorePackageIdList = scorePackageList.stream()
|
|
|
+ .filter(scorePackage -> StringUtils.isBlank(scorePackage.getAcceptSug()))
|
|
|
+ .map(WmScorePackage::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
} else {
|
|
|
// 未勾选关联下级,则全部任务中只显示未关联积分包的任务,就是从企业直接下发给医药代表的任务 是未关联积分包吗?代理商可以有吧???
|
|
@@ -212,7 +223,10 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
.apply("length(accept_sug) = 0"));
|
|
|
List<WmScorePackage> scorePackageList = wmScorePackageService.list(scorePackageWrapper);
|
|
|
if (CollectionUtil.isNotEmpty(scorePackageList)) {
|
|
|
- scorePackageIdList = scorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
|
|
|
+ scorePackageIdList = scorePackageList.stream()
|
|
|
+ // 过滤只要发给个人的包
|
|
|
+ .filter(scorePackage -> StringUtils.isBlank(scorePackage.getAcceptSug()))
|
|
|
+ .map(WmScorePackage::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
}
|
|
|
// 用户类型
|
|
@@ -226,16 +240,12 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(scorePackageIdList) && CollectionUtil.isNotEmpty(taskUserTypeList)) {
|
|
|
// 查询任务列表
|
|
|
- LambdaQueryWrapper<WmTask> taskWrapper = Wrappers.lambdaQuery();
|
|
|
- taskWrapper.eq(WmTask::getTaskTypeId, baseTaskType.getId());
|
|
|
- taskWrapper.in(WmTask::getScorePackageId, scorePackageIdList);
|
|
|
- taskWrapper.in(WmTask::getTaskUserType, taskUserTypeList);
|
|
|
- if (ArrayUtil.isNotEmpty(taskStatus)) {
|
|
|
- taskWrapper.in(WmTask::getTaskStatus, taskStatus);
|
|
|
- } else {
|
|
|
- taskWrapper.eq(WmTask::getTaskStatus, TaskStatusEnum.UNDER_REVIEW.val());
|
|
|
- }
|
|
|
- Page<WmTask> taskPage = wmTaskService.page(page, taskWrapper);
|
|
|
+ WmTask queryTask = new WmTask();
|
|
|
+ queryTask.setTaskTypeId(baseTaskType.getId());
|
|
|
+ queryTask.setScorePackageId(String.join(",", scorePackageIdList));
|
|
|
+ queryTask.setTaskUserType(String.join(",", taskUserTypeList));
|
|
|
+ queryTask.setTaskStatus(String.join(",", taskStatus));
|
|
|
+ IPage<WmTask> taskPage = wmTaskMapper.listWmTaskByConfig(page, queryTask);
|
|
|
return taskPage;
|
|
|
}
|
|
|
}
|
|
@@ -246,18 +256,18 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
|
/**
|
|
|
* 查询所有下级的积分包
|
|
|
*
|
|
|
- * @param scorePackageId
|
|
|
- * @param scorePackageList
|
|
|
+ * @param ids
|
|
|
+ * @param res
|
|
|
*/
|
|
|
- private void getAllLowerScorePackages(String scorePackageId, List<WmScorePackage> scorePackageList) {
|
|
|
- if (scorePackageList.size() <= 999) {
|
|
|
- List<WmScorePackage> subList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .eq(WmScorePackage::getRelationScoreId, scorePackageId)
|
|
|
- .eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
- if (CollectionUtil.isNotEmpty(subList)) {
|
|
|
- scorePackageList.addAll(subList);
|
|
|
- subList.forEach(scorePackage -> getAllLowerScorePackages(scorePackage.getId(), scorePackageList));
|
|
|
- }
|
|
|
+ private void getAllLowerScorePackages(Set<String> ids, List<WmScorePackage> res) {
|
|
|
+ List<WmScorePackage> subList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(WmScorePackage::getRelationScoreId, ids)
|
|
|
+ .eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(subList)) {
|
|
|
+ Set<String> idSet = subList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
+ res.addAll(subList);
|
|
|
+ getAllLowerScorePackages(idSet, res);
|
|
|
}
|
|
|
}
|
|
|
}
|