|
@@ -0,0 +1,123 @@
|
|
|
|
+package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
+import cn.hutool.core.map.MapUtil;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeSubCate2;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DeptLevelEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeSubCate2Mapper;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeSubCate2Service;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @author snows
|
|
|
|
+* @description 针对表【wm_dept_task_type(任务类型二级分类表)】的数据库操作Service实现
|
|
|
|
+* @createDate 2022-12-22 23:57:19
|
|
|
|
+*/
|
|
|
|
+@Service
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+public class WmTaskTypeSubCate2ServiceImpl extends ServiceImpl<WmTaskTypeSubCate2Mapper, WmTaskTypeSubCate2>
|
|
|
|
+ implements WmTaskTypeSubCate2Service {
|
|
|
|
+
|
|
|
|
+ private final SysDeptMapper sysDeptMapper;
|
|
|
|
+
|
|
|
|
+ private final WmDaDrugEntMapper wmDaDrugEntMapper;
|
|
|
|
+
|
|
|
|
+ private final WmDaAgentMapper wmDaAgentMapper;
|
|
|
|
+
|
|
|
|
+ private final WmTaskTypeService wmTaskTypeService;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据企业id查询任务类型树
|
|
|
|
+ *
|
|
|
|
+ * @param deptId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<Map<String, Object>> listTaskTypeTree(Integer deptId) {
|
|
|
|
+
|
|
|
|
+ String durgentId = null;
|
|
|
|
+ SysDept dept = sysDeptMapper.selectById(deptId);
|
|
|
|
+ if (DeptLevelEnum.ENT.getVal().equals(dept.getLevel())) {
|
|
|
|
+ WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntMapper.selectOne(Wrappers.<WmDaDrugEnt>lambdaQuery()
|
|
|
|
+ .eq(WmDaDrugEnt::getDeptId, deptId)
|
|
|
|
+ .eq(WmDaDrugEnt::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
|
+ durgentId = wmDaDrugEnt.getId();
|
|
|
|
+ } else {
|
|
|
|
+ WmDaAgent wmDaAgent = wmDaAgentMapper.selectOne(Wrappers.<WmDaAgent>lambdaQuery()
|
|
|
|
+ .eq(WmDaAgent::getDeptId, deptId)
|
|
|
|
+ .eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
|
+ durgentId = wmDaAgent.getId();
|
|
|
|
+ }
|
|
|
|
+ // 查询企业对应的任务类型
|
|
|
|
+ LambdaQueryWrapper<WmTaskType> taskTypeWrapper = Wrappers.lambdaQuery();
|
|
|
|
+ taskTypeWrapper.eq(WmTaskType::getDeptId, deptId);
|
|
|
|
+ taskTypeWrapper.eq(WmTaskType::getRuleId, durgentId);
|
|
|
|
+ taskTypeWrapper.eq(WmTaskType::getTaskEntId, durgentId);
|
|
|
|
+ List<WmTaskType> taskTypeList = wmTaskTypeService.list(taskTypeWrapper);
|
|
|
|
+
|
|
|
|
+ // 查询基础任务类型
|
|
|
|
+ List<WmTaskType> baseTaskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
|
+ .eq(WmTaskType::getTaskTypeLevel, "1")
|
|
|
|
+ .eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
|
+ Map<String, String> baseTaskTypeMap = baseTaskTypeList.stream()
|
|
|
|
+ .collect(Collectors.toMap(WmTaskType::getTaskTypeName, WmTaskType::getId));
|
|
|
|
+
|
|
|
|
+ // 查询任务类型分类表
|
|
|
|
+ List<WmTaskTypeSubCate2> list = this.list();
|
|
|
|
+ // key-任务类型父类型, value-任务类型名称列表
|
|
|
|
+ Map<String, List<String>> listMap = list.stream()
|
|
|
|
+ .collect(
|
|
|
|
+ Collectors.groupingBy(
|
|
|
|
+ WmTaskTypeSubCate2::getSubCate, Collectors.mapping(WmTaskTypeSubCate2::getTypeName, Collectors.toList())
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
+ if (CollectionUtil.isNotEmpty(taskTypeList)) {
|
|
|
|
+ // 根据任务类型分类表,给企业任务类型分类
|
|
|
|
+ listMap.forEach((key, val) -> {
|
|
|
|
+ List<Map<String, String>> childTypeList = taskTypeList.stream()
|
|
|
|
+ .filter(wmTaskType -> val.contains(wmTaskType.getTaskTypeName())).map(wmTaskType -> {
|
|
|
|
+ Map<String, String> typeMap = new HashMap<>();
|
|
|
|
+ typeMap.put("taskTypeName", wmTaskType.getTaskTypeName());
|
|
|
|
+ typeMap.put("taskTypeId", baseTaskTypeMap.get(wmTaskType.getTaskTypeName()));
|
|
|
|
+ return typeMap;
|
|
|
|
+ })
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtil.isNotEmpty(childTypeList)) {
|
|
|
|
+ Map<String, Object> taskTypeMap = MapUtil.newHashMap(2);
|
|
|
|
+ taskTypeMap.put("category", key);
|
|
|
|
+ taskTypeMap.put("categoryName", UpmsType.TaskSubCategory2.valueOf(key).getDescription());
|
|
|
|
+ taskTypeMap.put("children", childTypeList);
|
|
|
|
+ resultList.add(taskTypeMap);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return resultList;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|