|
@@ -0,0 +1,118 @@
|
|
|
+package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeConfig;
|
|
|
+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.EnableEnum;
|
|
|
+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.service.WmDeptTaskTypeConfigService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 部门任务类型配置服务
|
|
|
+ *
|
|
|
+ * @author lixuesong
|
|
|
+ * @date 2021年12月03日 10:14
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@AllArgsConstructor
|
|
|
+@Service
|
|
|
+public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeConfigMapper, WmDeptTaskTypeConfig> implements WmDeptTaskTypeConfigService {
|
|
|
+
|
|
|
+ private final WmTaskTypeService wmTaskTypeService;
|
|
|
+
|
|
|
+ private final SysDeptRelationMapper sysDeptRelationMapper;
|
|
|
+
|
|
|
+ private final WmDaDrugEntMapper wmDaDrugEntMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存任务类型配置
|
|
|
+ *
|
|
|
+ * @param wmDeptTaskTypeConfigDTO
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void saveDeptTaskTypeConfig(WmDeptTaskTypeConfigDTO wmDeptTaskTypeConfigDTO) {
|
|
|
+ // 判断是否已存在
|
|
|
+ int count = this.count(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
|
+ .eq(WmDeptTaskTypeConfig::getDeptId, wmDeptTaskTypeConfigDTO.getDeptId()));
|
|
|
+ if (count <= 0) {
|
|
|
+ // 新增
|
|
|
+ WmDeptTaskTypeConfig deptTaskTypeConfig = new WmDeptTaskTypeConfig();
|
|
|
+ deptTaskTypeConfig.setDeptId(wmDeptTaskTypeConfigDTO.getDeptId());
|
|
|
+ deptTaskTypeConfig.setTaskTypeJson(JSON.toJSONString(wmDeptTaskTypeConfigDTO.getConfigList()));
|
|
|
+ deptTaskTypeConfig.setCreateTime(LocalDateTime.now());
|
|
|
+ deptTaskTypeConfig.setCreateUser(SecurityUtils.getUser().getId());
|
|
|
+ this.save(deptTaskTypeConfig);
|
|
|
+ } else {
|
|
|
+ // 更新
|
|
|
+ WmDeptTaskTypeConfig deptTaskTypeConfig = new WmDeptTaskTypeConfig();
|
|
|
+ deptTaskTypeConfig.setDeptId(wmDeptTaskTypeConfigDTO.getDeptId());
|
|
|
+ deptTaskTypeConfig.setTaskTypeJson(JSON.toJSONString(wmDeptTaskTypeConfigDTO.getConfigList()));
|
|
|
+ deptTaskTypeConfig.setUpdateTime(LocalDateTime.now());
|
|
|
+ deptTaskTypeConfig.setUpdateUser(SecurityUtils.getUser().getId());
|
|
|
+ this.update(Wrappers.<WmDeptTaskTypeConfig>lambdaUpdate()
|
|
|
+ .eq(WmDeptTaskTypeConfig::getDeptId, deptTaskTypeConfig.getDeptId())
|
|
|
+ .set(WmDeptTaskTypeConfig::getTaskTypeJson, JSON.toJSONString(wmDeptTaskTypeConfigDTO.getConfigList()))
|
|
|
+ .set(WmDeptTaskTypeConfig::getUpdateTime, LocalDateTime.now())
|
|
|
+ .set(WmDeptTaskTypeConfig::getUpdateUser, SecurityUtils.getUser().getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询任务类型配置
|
|
|
+ *
|
|
|
+ * @param deptId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public WmDeptTaskTypeConfigDTO getDeptTaskTypeConfig(Integer deptId) {
|
|
|
+ // 查询出当前dept对应的任务类型(药企或药企给CSO的任务类型)
|
|
|
+ List<SysDeptRelation> relationList = sysDeptRelationMapper.selectList(Wrappers.<SysDeptRelation>lambdaQuery()
|
|
|
+ .eq(SysDeptRelation::getDescendant, deptId));
|
|
|
+ SysDeptRelation deptRelation = relationList.stream()
|
|
|
+ .filter(sysDeptRelation -> !sysDeptRelation.getAncestor().equals(1))
|
|
|
+ .findFirst()
|
|
|
+ .get();
|
|
|
+ WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntMapper.selectOne(Wrappers.<WmDaDrugEnt>lambdaQuery()
|
|
|
+ .eq(WmDaDrugEnt::getDeptId, deptRelation.getAncestor())
|
|
|
+ .eq(WmDaDrugEnt::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
+ List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
+ .eq(WmTaskType::getDeptId, deptId)
|
|
|
+ .eq(WmTaskType::getDurgentId, wmDaDrugEnt.getId()));
|
|
|
+
|
|
|
+ WmDeptTaskTypeConfig deptTaskTypeConfig = this.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
|
|
|
+ .eq(WmDeptTaskTypeConfig::getDeptId, deptId));
|
|
|
+
|
|
|
+ WmDeptTaskTypeConfigDTO deptTaskTypeConfigDTO = null;
|
|
|
+ if (deptTaskTypeConfig != null) {
|
|
|
+ // 配置任务类型不为空,同时返回配置和任务类型列表
|
|
|
+ deptTaskTypeConfigDTO = BeanUtil.copyProperties(deptTaskTypeConfig, WmDeptTaskTypeConfigDTO.class);
|
|
|
+ List<WmDeptTaskTypeConfigJsonDTO> configJsonDTOList = JSON.parseArray(deptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
|
|
|
+ deptTaskTypeConfigDTO.setConfigList(configJsonDTOList);
|
|
|
+ // 任务类型
|
|
|
+ deptTaskTypeConfigDTO.setTaskTypeList(taskTypeList);
|
|
|
+ } else {
|
|
|
+ // 配置任务类型为空,只返回任务类型列表
|
|
|
+ deptTaskTypeConfigDTO = new WmDeptTaskTypeConfigDTO();
|
|
|
+ deptTaskTypeConfigDTO.setTaskTypeList(taskTypeList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return deptTaskTypeConfigDTO;
|
|
|
+ }
|
|
|
+}
|