|
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -21,16 +22,13 @@ import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
|
|
-import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDeptTaskTypeConfigMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDeptTaskTypeConfigMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
-import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
-import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -39,7 +37,6 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.HashSet;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
@@ -76,6 +73,14 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
// 判断是否已存在
|
|
// 判断是否已存在
|
|
int count = this.count(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
int count = this.count(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
.eq(WmDeptTaskTypeConfig::getDeptId, wmDeptTaskTypeConfigDTO.getDeptId()));
|
|
.eq(WmDeptTaskTypeConfig::getDeptId, wmDeptTaskTypeConfigDTO.getDeptId()));
|
|
|
|
+ // 批量设置任务类型id设置为基础类型id
|
|
|
|
+ wmDeptTaskTypeConfigDTO.getConfigList().forEach(configJsonDTO -> {
|
|
|
|
+ // 查询任务名称对应的基础任务类型id
|
|
|
|
+ WmTaskType baseTaskType = wmTaskTypeService.getOne(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
|
+ .eq(WmTaskType::getTaskTypeLevel, "1")
|
|
|
|
+ .eq(WmTaskType::getTaskTypeName, configJsonDTO.getTaskTypeName()));
|
|
|
|
+ configJsonDTO.setTaskTypeId(baseTaskType.getId());
|
|
|
|
+ });
|
|
if (count <= 0) {
|
|
if (count <= 0) {
|
|
// 新增
|
|
// 新增
|
|
WmDeptTaskTypeConfig deptTaskTypeConfig = new WmDeptTaskTypeConfig();
|
|
WmDeptTaskTypeConfig deptTaskTypeConfig = new WmDeptTaskTypeConfig();
|
|
@@ -174,6 +179,79 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
|
|
+ public IPage<WmTask> listTaskByConfig(Page<WmTask> page, String taskTypeName, String[] taskStatus) {
|
|
|
|
+ Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
|
|
+ WmDeptTaskTypeConfig deptTaskTypeConfig = this.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
|
|
+ .eq(WmDeptTaskTypeConfig::getDeptId, deptId));
|
|
|
|
+ if (deptTaskTypeConfig != null) {
|
|
|
|
+ // 查询该企业当前任务类型下 的任务类型配置数据
|
|
|
|
+ List<WmDeptTaskTypeConfigJsonDTO> configJsonDTOList =
|
|
|
|
+ JSON.parseArray(deptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
|
|
|
|
+ List<WmDeptTaskTypeConfigJsonDTO> filterConfigJsonDTOList = null;
|
|
|
|
+ if (StringUtils.isNotBlank(taskTypeName)) {
|
|
|
|
+ filterConfigJsonDTOList = configJsonDTOList.stream()
|
|
|
|
+ .filter(configJsonDTO -> configJsonDTO.getTaskTypeName().equals(taskTypeName) && configJsonDTO.getQualifiedTask())
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ } else {
|
|
|
|
+ filterConfigJsonDTOList = configJsonDTOList.stream()
|
|
|
|
+ .filter(configJsonDTO -> configJsonDTO.getQualifiedTask())
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtil.isEmpty(filterConfigJsonDTOList)) {
|
|
|
|
+ // 任务配置为空,则直接返回空page
|
|
|
|
+ return page;
|
|
|
|
+ }
|
|
|
|
+ // 查询本地和下级的deptId
|
|
|
|
+ List<SysDeptRelation> relationList = sysDeptRelationMapper.selectList(Wrappers.<SysDeptRelation>lambdaQuery()
|
|
|
|
+ .eq(SysDeptRelation::getAncestor, deptId));
|
|
|
|
+ List<String> associateDeptIdList = relationList.stream()
|
|
|
|
+ .map(deptRelation -> String.valueOf(deptRelation.getDescendant()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ // 根据不同任务类型的不同条件 拼接sql
|
|
|
|
+ QueryWrapper<WmTask> taskWrapper = Wrappers.query();
|
|
|
|
+ taskWrapper.eq("t.del_flag", DelEnum.NOT_DEL.val());
|
|
|
|
+ taskWrapper.eq("t.real_flag", "0");
|
|
|
|
+ taskWrapper.in("t.task_status", taskStatus);
|
|
|
|
+ List<WmDeptTaskTypeConfigJsonDTO> finalFilterConfigJsonDTOList = filterConfigJsonDTOList;
|
|
|
|
+ taskWrapper.and(wrapper -> {
|
|
|
|
+ for (WmDeptTaskTypeConfigJsonDTO configJsonDTO : finalFilterConfigJsonDTOList) {
|
|
|
|
+ // 用户类型
|
|
|
|
+ List<String> taskUserTypeList = new ArrayList<>();
|
|
|
|
+ if (configJsonDTO.getZbdbStatusEnable() && configJsonDTO.getZbdbStatusSelect()) {
|
|
|
|
+ taskUserTypeList.add("5");
|
|
|
|
+ }
|
|
|
|
+ if (configJsonDTO.getYydbStatusEnable() && configJsonDTO.getYydbStatusSelect()) {
|
|
|
|
+ taskUserTypeList.add("6");
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtil.isNotEmpty(taskUserTypeList)) {
|
|
|
|
+ wrapper.or(wrapper2 -> {
|
|
|
|
+ wrapper2.eq("t.task_type_id", configJsonDTO.getTaskTypeId());
|
|
|
|
+ wrapper2.in("t.task_user_type", taskUserTypeList);
|
|
|
|
+ if (configJsonDTO.getAssociateLower()) {
|
|
|
|
+ // 关联了下级
|
|
|
|
+ wrapper2.in("t.dept_id", associateDeptIdList);
|
|
|
|
+ } else {
|
|
|
|
+ // 没有关联下级
|
|
|
|
+ wrapper2.eq("t.dept_id", deptId);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return wmTaskMapper.listWmTaskByWrapper(page, taskWrapper);
|
|
|
|
+ }
|
|
|
|
+ return page;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据企业的任务类型配置查询任务列表
|
|
|
|
+ *
|
|
|
|
+ * @param taskTypeName 任务类型名称
|
|
|
|
+ * @param taskStatus 任务状态
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Deprecated
|
|
|
|
+ @Override
|
|
public IPage<WmTask> listTaskByDeptTaskType(Page<WmTask> page, String taskTypeName, String[] taskStatus) {
|
|
public IPage<WmTask> listTaskByDeptTaskType(Page<WmTask> page, String taskTypeName, String[] taskStatus) {
|
|
Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
WmDeptTaskTypeConfig deptTaskTypeConfig = this.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
WmDeptTaskTypeConfig deptTaskTypeConfig = this.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|