|
@@ -12,11 +12,18 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeEntRef;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeTree;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.model.output.WmTaskTypeDeptOutput;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.WmTaskTypeVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
|
-import com.qunzhixinxi.hnqz.admin.service.*;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeEntRefService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeSubCate2Service;
|
|
|
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
|
|
@@ -26,10 +33,24 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.bind.annotation.DeleteMapping;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PathVariable;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.PutMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -44,370 +65,371 @@ import java.util.stream.Collectors;
|
|
|
@RequestMapping("/wmtasktype")
|
|
|
public class WmTaskTypeController {
|
|
|
|
|
|
- private final WmTaskTypeService wmTaskTypeService;
|
|
|
- private final WmDaDrugEntService wmDaDrugEntService;
|
|
|
- private final WmDaAgentService wmDaAgentService;
|
|
|
- private final WmTaskTypeEntRefService wmTaskTypeEntRefService;
|
|
|
- private final WmDeptTaskTypeConfigService wmDeptTaskTypeConfigService;
|
|
|
- private final WmTaskTypeSubCate2Service wmTaskTypeSubCate2Service;
|
|
|
- private final WmTaskMapper wmTaskMapper;
|
|
|
-
|
|
|
- /**
|
|
|
- * 分页查询
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("/getTaskTypeDeptList")
|
|
|
- public R<?> getTaskTypeDeptList() {
|
|
|
-
|
|
|
- Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
|
- WmTaskType query = new WmTaskType();
|
|
|
- query.setDeptId(deptId);
|
|
|
- List<WmTaskTypeDeptOutput> deptOutputList = wmTaskTypeService.getTaskTypeDeptList(query);
|
|
|
-
|
|
|
- if(CollectionUtils.isEmpty(deptOutputList)){
|
|
|
- return R.ok();
|
|
|
- }
|
|
|
-
|
|
|
- List<Map<String,String>> resultList = new ArrayList<>();
|
|
|
- List<Map<String,String>> resultList2 = new ArrayList<>();
|
|
|
-
|
|
|
- for (WmTaskTypeDeptOutput output : deptOutputList) {
|
|
|
- if(output.getDurgentId() != null){
|
|
|
- WmDaDrugEnt drugEnt = wmDaDrugEntService.getById(output.getDurgentId());
|
|
|
- if(null !=drugEnt){
|
|
|
- Map<String,String> map = new HashMap<>();
|
|
|
- map.put("value",output.getRuleId());
|
|
|
- map.put("label",drugEnt.getEntname());
|
|
|
- if(drugEnt.getDeptId().equals(deptId)){
|
|
|
- resultList2.add(map);
|
|
|
- }else {
|
|
|
- resultList.add(map);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(StringUtils.isNotEmpty(output.getLevel1Id())){
|
|
|
- WmDaAgent daAgent = wmDaAgentService.getById(output.getLevel1Id());
|
|
|
- if(null !=daAgent){
|
|
|
- Map<String,String> map = new HashMap<>();
|
|
|
- map.put("value",output.getRuleId());
|
|
|
- map.put("label",daAgent.getGsmc());
|
|
|
- if(daAgent.getDeptId().equals(deptId)){
|
|
|
- resultList2.add(map);
|
|
|
- }else {
|
|
|
- resultList.add(map);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- resultList2.addAll(resultList);
|
|
|
-
|
|
|
- return R.ok(resultList2);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 分页查询
|
|
|
- *
|
|
|
- * @param page 分页对象
|
|
|
- * @param wmTaskType 任务类型打分表
|
|
|
- * @return 分页数据
|
|
|
- */
|
|
|
- @GetMapping("/page")
|
|
|
- public R<IPage<WmTaskTypeVO>> getWmTaskTypePage(Page<WmTaskType> page, WmTaskType wmTaskType) {
|
|
|
- List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
|
|
|
- "统计分析", "临床监察", "通用", "患者教育");
|
|
|
- LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.<WmTaskType>lambdaQuery()
|
|
|
- .notIn(WmTaskType::getTaskTypeName, noDisplayTaskTypeNameList);
|
|
|
-
|
|
|
- if (StrUtil.isNotBlank(wmTaskType.getTaskTypeLevel())) {
|
|
|
- queryWrapper.eq(WmTaskType::getTaskTypeLevel, wmTaskType.getTaskTypeLevel());
|
|
|
- }
|
|
|
- if (wmTaskType.getRuleId() != null){
|
|
|
- queryWrapper.eq(WmTaskType::getRuleId, wmTaskType.getRuleId());
|
|
|
- }
|
|
|
- if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName())) {
|
|
|
- queryWrapper.eq(WmTaskType::getTaskTypeName, wmTaskType.getTaskTypeName());
|
|
|
- }
|
|
|
- if (StrUtil.isNotBlank(wmTaskType.getEnableFlag())) {
|
|
|
- queryWrapper.eq(WmTaskType::getEnableFlag, wmTaskType.getEnableFlag());
|
|
|
- }
|
|
|
- queryWrapper.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val());
|
|
|
-
|
|
|
- Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
|
|
|
- Page<WmTaskTypeVO> voPage = new Page<>();
|
|
|
- voPage.setSize(pageResult.getSize());
|
|
|
- voPage.setCurrent(pageResult.getCurrent());
|
|
|
- voPage.setTotal(pageResult.getTotal());
|
|
|
- List<WmTaskTypeVO> voList = new ArrayList<>();
|
|
|
- pageResult.getRecords().forEach(taskType -> {
|
|
|
- WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score", "taskScoreStart", "taskScoreEnd");
|
|
|
- if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
- // 应收账款回款 任务类 保存的是1000倍数,需要转换回来
|
|
|
- typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
|
|
|
- typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart() / 1000.0D));
|
|
|
- typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd() / 1000.0D));
|
|
|
- } else {
|
|
|
- typeVO.setScore(String.valueOf(taskType.getScore()));
|
|
|
- typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart()));
|
|
|
- typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd()));
|
|
|
- }
|
|
|
- voList.add(typeVO);
|
|
|
- });
|
|
|
- voPage.setRecords(voList);
|
|
|
-
|
|
|
- return R.ok(voPage);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 分页查询
|
|
|
- *
|
|
|
- * @param page 分页对象
|
|
|
- * @param wmTaskType 任务类型打分表
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("/pages")
|
|
|
- public R getWmTaskTypePages(Page<WmTaskType> page, WmTaskType wmTaskType) {
|
|
|
-
|
|
|
- List<WmTaskTypeEntRef> wmTaskTypeEntRefList = wmTaskTypeEntRefService.selectByAgentId(wmTaskType.getLevel1Id());
|
|
|
- if (wmTaskTypeEntRefList.size() > 0) {
|
|
|
- for (WmTaskTypeEntRef wmTaskTypeEntRef1 : wmTaskTypeEntRefList) {
|
|
|
- //cso新增 药企id空 AgentId 有
|
|
|
- if (null!=wmTaskTypeEntRef1.getAgentId()&&null!=wmTaskTypeEntRef1.getDrugentId()&&!"".equals(wmTaskTypeEntRef1.getAgentId())
|
|
|
- && !"".equals(wmTaskTypeEntRef1.getDrugentId())
|
|
|
- ) {
|
|
|
- wmTaskType.setLevel1Id(wmTaskTypeEntRef1.getAgentId());
|
|
|
- List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
|
|
|
- for (WmTaskType wmTaskType1 : wmTaskTypeList) {
|
|
|
-
|
|
|
- if (wmTaskType1.getDurgentId()==null && "".equals(wmTaskType1.getDurgentId()) &&
|
|
|
- null!=wmTaskType1.getLevel1Id() && "".equals(wmTaskType1.getLevel1Id())) {
|
|
|
- wmTaskType.setRuleId(wmTaskType1.getRuleId());
|
|
|
- }
|
|
|
- }
|
|
|
- //药企新增 两个都是药企id
|
|
|
- } else if (wmTaskTypeEntRef1.getAgentId().equals(wmTaskTypeEntRef1.getDrugentId())) {
|
|
|
- wmTaskType.setRuleId(wmTaskTypeEntRef1.getAgentId().toString());
|
|
|
- //药企给cso新增 两个都有值 药企和cso
|
|
|
- } else if (null!=wmTaskTypeEntRef1.getAgentId()&&null!=wmTaskTypeEntRef1.getDrugentId()
|
|
|
- &&!"".equals(wmTaskTypeEntRef1.getAgentId())&&!"".equals(wmTaskTypeEntRef1.getDrugentId())
|
|
|
- ) {
|
|
|
- wmTaskType.setRuleId(""+wmTaskTypeEntRef1.getDrugentId() + wmTaskTypeEntRef1.getAgentId());
|
|
|
- List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
|
|
|
- for (WmTaskType wmTaskType1 : wmTaskTypeList) {
|
|
|
- if (null!=wmTaskType1.getDurgentId()&&null!=wmTaskType1.getLevel1Id()
|
|
|
- &&!"".equals(wmTaskType1.getDurgentId())&&!"".equals(wmTaskType1.getLevel1Id())) {
|
|
|
- wmTaskType.setRuleId(wmTaskType1.getRuleId());
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.lambdaQuery(wmTaskType);
|
|
|
- List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
|
|
|
- "统计分析", "临床监察", "通用", "患者教育");
|
|
|
- queryWrapper.notIn(WmTaskType::getTaskTypeName,noDisplayTaskTypeNameList);
|
|
|
- queryWrapper.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val());
|
|
|
-
|
|
|
- Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
|
|
|
-
|
|
|
- Page<WmTaskTypeVO> voPage = new Page<>();
|
|
|
- voPage.setSize(pageResult.getSize());
|
|
|
- voPage.setCurrent(pageResult.getCurrent());
|
|
|
- voPage.setTotal(pageResult.getTotal());
|
|
|
- List<WmTaskTypeVO> voList = new ArrayList<>();
|
|
|
- pageResult.getRecords().forEach(taskType -> {
|
|
|
- WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score");
|
|
|
- if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
- // 应收账款回款 任务类 保存的是1000倍数,需要转换回来
|
|
|
- typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
|
|
|
- } else {
|
|
|
- typeVO.setScore(String.valueOf(taskType.getScore()));
|
|
|
- }
|
|
|
- voList.add(typeVO);
|
|
|
- });
|
|
|
- voPage.setRecords(voList);
|
|
|
-
|
|
|
- return R.ok(voPage);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过id查询任务类型打分表
|
|
|
- *
|
|
|
- * @param id id
|
|
|
- * @return R
|
|
|
- */
|
|
|
- @GetMapping("/{id}")
|
|
|
- public R getById(@PathVariable("id") Integer id) {
|
|
|
- return R.ok(wmTaskTypeService.getById(id));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 新增任务类型打分表
|
|
|
- *
|
|
|
- * @param wmTaskType 任务类型打分表
|
|
|
- * @return R
|
|
|
- */
|
|
|
- @SysLog("新增任务类型打分表")
|
|
|
- @PostMapping
|
|
|
- public R save(@RequestBody WmTaskType wmTaskType) {
|
|
|
- wmTaskType.setCreateTime(LocalDateTime.now());
|
|
|
- if (SecurityUtils.getRoles().contains(2)) {
|
|
|
- wmTaskType.setStatus("0");
|
|
|
- } else {
|
|
|
- wmTaskType.setStatus("1");
|
|
|
- }
|
|
|
- return R.ok(wmTaskTypeService.save(wmTaskType));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 修改任务类型打分表
|
|
|
- *
|
|
|
- * @param wmTaskTypeVO 任务类型打分表
|
|
|
- * @return R
|
|
|
- */
|
|
|
- @SysLog("修改任务类型打分表")
|
|
|
- @PutMapping
|
|
|
- public R updateById(@RequestBody WmTaskTypeVO wmTaskTypeVO) {
|
|
|
-
|
|
|
- WmTaskType wmTaskType = BeanUtil.copyProperties(wmTaskTypeVO, WmTaskType.class);
|
|
|
- // 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 积分值乘1000保存
|
|
|
- if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName()) && wmTaskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
- wmTaskType.setScore((int) (Double.parseDouble(wmTaskTypeVO.getScore()) * 1000));
|
|
|
- wmTaskType.setTaskScoreStart((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreStart()) * 1000));
|
|
|
- wmTaskType.setTaskScoreEnd((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreEnd()) * 1000));
|
|
|
- }
|
|
|
-
|
|
|
- String baseId = wmTaskType.getId();
|
|
|
- if (SecurityUtils.getRoles().contains(2)) {
|
|
|
- if (null != wmTaskType.getId() && "1".equals(wmTaskType.getStatus())) {
|
|
|
- wmTaskTypeService.updateById(wmTaskType);
|
|
|
- } else {
|
|
|
- WmTaskType wmTaskRule1 = wmTaskType;
|
|
|
- wmTaskRule1.setId(null);
|
|
|
- wmTaskRule1.setStatus("1");
|
|
|
- wmTaskRule1.setBaseId(baseId);
|
|
|
- wmTaskTypeService.save(wmTaskRule1);
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- wmTaskTypeService.updateById(wmTaskType);
|
|
|
- }
|
|
|
- return R.ok();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 更新任务备注(自定义任务要求)
|
|
|
- *
|
|
|
- * @param taskRemarkUpdate 参数
|
|
|
- * @return {@link R}<{@link ?}> 结果
|
|
|
- */
|
|
|
- @SysLog("更新自定义任务要求")
|
|
|
- @PostMapping("/update-task-remark")
|
|
|
- public R<?> updateTaskRemark(@RequestBody @Validated WmTaskDTO.TaskRemarkUpdate taskRemarkUpdate) {
|
|
|
- WmTaskType update = new WmTaskType();
|
|
|
- update.setId(taskRemarkUpdate.getId());
|
|
|
- update.setTaskRemark(taskRemarkUpdate.getTaskRemark());
|
|
|
- wmTaskTypeService.updateById(update);
|
|
|
-
|
|
|
- return R.ok();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过id删除任务类型打分表
|
|
|
- *
|
|
|
- * @param id id
|
|
|
- * @return R
|
|
|
- */
|
|
|
- @SysLog("通过id删除任务类型打分表")
|
|
|
- @DeleteMapping("/{id}")
|
|
|
- @PreAuthorize("@pms.hasPermission('admin_wmtasktype_del')")
|
|
|
- public R removeById(@PathVariable Integer id) {
|
|
|
- return R.ok(wmTaskTypeService.removeById(id));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取药企列表
|
|
|
- *
|
|
|
- * @return 角色列表
|
|
|
- */
|
|
|
- @GetMapping("/list")
|
|
|
- public R listWmScorePackage() {
|
|
|
- WmTaskType wmDaDrugEnt = new WmTaskType();
|
|
|
- wmDaDrugEnt.setDelFlag("0");
|
|
|
- wmDaDrugEnt.setEnableFlag("0");
|
|
|
- wmDaDrugEnt.setTaskTypeLevel("1");
|
|
|
- return R.ok(wmTaskTypeService.list(Wrappers.query(wmDaDrugEnt)));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询待审核的任务类型
|
|
|
- *
|
|
|
- * @param scorePackageId 积分包id
|
|
|
- * @return 列表数据
|
|
|
- */
|
|
|
- @GetMapping("/list-package-task-type")
|
|
|
- public R<?> listPackageTaskType(@RequestParam(value = "scorePackageId") String scorePackageId, String taskStatus) {
|
|
|
- // 获取待审核的任务
|
|
|
- LambdaQueryWrapper<WmTask> queryWrapper = Wrappers.<WmTask>lambdaQuery()
|
|
|
- .select(WmTask::getTaskTypeId)
|
|
|
- .eq(WmTask::getScorePackageId, scorePackageId);
|
|
|
- if (StrUtil.isNotBlank(taskStatus)) {
|
|
|
- queryWrapper.eq(WmTask::getTaskStatus, taskStatus);
|
|
|
- }
|
|
|
- List<WmTask> wmTasks = wmTaskMapper.selectList(queryWrapper);
|
|
|
- if (CollUtil.isEmpty(wmTasks)) {
|
|
|
- return R.ok(Collections.emptyList());
|
|
|
- }
|
|
|
- Set<String> taskTypes = wmTasks.stream().map(WmTask::getTaskTypeId).collect(Collectors.toSet());
|
|
|
- return R.ok(wmTaskTypeService.listByIds(taskTypes));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取药企列表
|
|
|
- *
|
|
|
- * @return 角色列表
|
|
|
- */
|
|
|
- @GetMapping("/getTaskTree")
|
|
|
- public R getTaskTree(String description) {
|
|
|
- return R.ok(wmTaskTypeService.getTaskTree(description));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 有效任务类型树
|
|
|
- * @return 角色列表
|
|
|
- */
|
|
|
- @GetMapping("/getTaskTypeTree")
|
|
|
- public R getTaskTypeTree(String description) {
|
|
|
-
|
|
|
- return wmTaskTypeService.getTaskTypeTree(description);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 查询任务类型树
|
|
|
- *
|
|
|
- * @param taskTypeName
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("/list-task-type-tree")
|
|
|
- public R<?> listConfigedTaskTypeTree(String taskTypeName) {
|
|
|
- List<Map<String, Object>> list = wmDeptTaskTypeConfigService.listConfigedTaskTypeTree(taskTypeName);
|
|
|
- return R.ok(list);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 根据企业id查询分类的任务类型
|
|
|
- *
|
|
|
- * @param deptId
|
|
|
- * @return
|
|
|
- */
|
|
|
- @GetMapping("/list-category-task-type")
|
|
|
- public R<?> listTaskTypeTree(@RequestParam("deptId") Integer deptId) {
|
|
|
- return R.ok(wmTaskTypeSubCate2Service.listTaskTypeTree(deptId));
|
|
|
- }
|
|
|
+ private final WmTaskTypeService wmTaskTypeService;
|
|
|
+ private final WmDaDrugEntService wmDaDrugEntService;
|
|
|
+ private final WmDaAgentService wmDaAgentService;
|
|
|
+ private final WmTaskTypeEntRefService wmTaskTypeEntRefService;
|
|
|
+ private final WmDeptTaskTypeConfigService wmDeptTaskTypeConfigService;
|
|
|
+ private final WmTaskTypeSubCate2Service wmTaskTypeSubCate2Service;
|
|
|
+ private final WmTaskMapper wmTaskMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务类型列表
|
|
|
+ *
|
|
|
+ * @return 任务类型列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getTaskTypeDeptList")
|
|
|
+ public R<?> getTaskTypeDeptList() {
|
|
|
+
|
|
|
+ Integer deptId = SecurityUtils.getUser().getDeptId();
|
|
|
+ WmTaskType query = new WmTaskType();
|
|
|
+ query.setDeptId(deptId);
|
|
|
+ List<WmTaskTypeDeptOutput> deptOutputList = wmTaskTypeService.getTaskTypeDeptList(query);
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(deptOutputList)) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map<String, String>> resultList = new ArrayList<>();
|
|
|
+ List<Map<String, String>> resultList2 = new ArrayList<>();
|
|
|
+
|
|
|
+ for (WmTaskTypeDeptOutput output : deptOutputList) {
|
|
|
+ if (output.getDurgentId() != null) {
|
|
|
+ WmDaDrugEnt drugEnt = wmDaDrugEntService.getById(output.getDurgentId());
|
|
|
+ if (null != drugEnt) {
|
|
|
+ Map<String, String> map = new HashMap<>(2);
|
|
|
+ map.put("value", output.getRuleId());
|
|
|
+ map.put("label", drugEnt.getEntname());
|
|
|
+ if (drugEnt.getDeptId().equals(deptId)) {
|
|
|
+ resultList2.add(map);
|
|
|
+ } else {
|
|
|
+ resultList.add(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(output.getLevel1Id())) {
|
|
|
+ WmDaAgent daAgent = wmDaAgentService.getById(output.getLevel1Id());
|
|
|
+ if (null != daAgent) {
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ map.put("value", output.getRuleId());
|
|
|
+ map.put("label", daAgent.getGsmc());
|
|
|
+ if (daAgent.getDeptId().equals(deptId)) {
|
|
|
+ resultList2.add(map);
|
|
|
+ } else {
|
|
|
+ resultList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resultList2.addAll(resultList);
|
|
|
+
|
|
|
+ return R.ok(resultList2);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ *
|
|
|
+ * @param page 分页对象
|
|
|
+ * @param wmTaskType 任务类型打分表
|
|
|
+ * @return 分页数据
|
|
|
+ */
|
|
|
+ @GetMapping("/page")
|
|
|
+ public R<IPage<WmTaskTypeVO>> getWmTaskTypePage(Page<WmTaskType> page, WmTaskType wmTaskType) {
|
|
|
+ List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
|
|
|
+ "统计分析", "临床监察", "通用", "患者教育");
|
|
|
+ LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.<WmTaskType>lambdaQuery()
|
|
|
+ .notIn(WmTaskType::getTaskTypeName, noDisplayTaskTypeNameList);
|
|
|
+
|
|
|
+ if (StrUtil.isNotBlank(wmTaskType.getTaskTypeLevel())) {
|
|
|
+ queryWrapper.eq(WmTaskType::getTaskTypeLevel, wmTaskType.getTaskTypeLevel());
|
|
|
+ }
|
|
|
+ if (wmTaskType.getRuleId() != null) {
|
|
|
+ queryWrapper.eq(WmTaskType::getRuleId, wmTaskType.getRuleId());
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName())) {
|
|
|
+ queryWrapper.eq(WmTaskType::getTaskTypeName, wmTaskType.getTaskTypeName());
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(wmTaskType.getEnableFlag())) {
|
|
|
+ queryWrapper.eq(WmTaskType::getEnableFlag, wmTaskType.getEnableFlag());
|
|
|
+ }
|
|
|
+ queryWrapper.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val());
|
|
|
+
|
|
|
+ Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
|
|
|
+ Page<WmTaskTypeVO> voPage = new Page<>();
|
|
|
+ voPage.setSize(pageResult.getSize());
|
|
|
+ voPage.setCurrent(pageResult.getCurrent());
|
|
|
+ voPage.setTotal(pageResult.getTotal());
|
|
|
+ List<WmTaskTypeVO> voList = new ArrayList<>();
|
|
|
+ pageResult.getRecords().forEach(taskType -> {
|
|
|
+ WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score", "taskScoreStart", "taskScoreEnd");
|
|
|
+ if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
+ // 应收账款回款 任务类 保存的是1000倍数,需要转换回来
|
|
|
+ typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
|
|
|
+ typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart() / 1000.0D));
|
|
|
+ typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd() / 1000.0D));
|
|
|
+ } else {
|
|
|
+ typeVO.setScore(String.valueOf(taskType.getScore()));
|
|
|
+ typeVO.setTaskScoreStart(String.valueOf(taskType.getTaskScoreStart()));
|
|
|
+ typeVO.setTaskScoreEnd(String.valueOf(taskType.getTaskScoreEnd()));
|
|
|
+ }
|
|
|
+ voList.add(typeVO);
|
|
|
+ });
|
|
|
+ voPage.setRecords(voList);
|
|
|
+
|
|
|
+ return R.ok(voPage);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ *
|
|
|
+ * @param page 分页对象
|
|
|
+ * @param wmTaskType 任务类型打分表
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("/pages")
|
|
|
+ public R getWmTaskTypePages(Page<WmTaskType> page, WmTaskType wmTaskType) {
|
|
|
+
|
|
|
+ List<WmTaskTypeEntRef> wmTaskTypeEntRefList = wmTaskTypeEntRefService.selectByAgentId(wmTaskType.getLevel1Id());
|
|
|
+ if (wmTaskTypeEntRefList.size() > 0) {
|
|
|
+ for (WmTaskTypeEntRef wmTaskTypeEntRef1 : wmTaskTypeEntRefList) {
|
|
|
+ //cso新增 药企id空 AgentId 有
|
|
|
+ if (null != wmTaskTypeEntRef1.getAgentId() && null != wmTaskTypeEntRef1.getDrugentId() && !"".equals(wmTaskTypeEntRef1.getAgentId())
|
|
|
+ && !"".equals(wmTaskTypeEntRef1.getDrugentId())
|
|
|
+ ) {
|
|
|
+ wmTaskType.setLevel1Id(wmTaskTypeEntRef1.getAgentId());
|
|
|
+ List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
|
|
|
+ for (WmTaskType wmTaskType1 : wmTaskTypeList) {
|
|
|
+
|
|
|
+ if (wmTaskType1.getDurgentId() == null && "".equals(wmTaskType1.getDurgentId()) &&
|
|
|
+ null != wmTaskType1.getLevel1Id() && "".equals(wmTaskType1.getLevel1Id())) {
|
|
|
+ wmTaskType.setRuleId(wmTaskType1.getRuleId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //药企新增 两个都是药企id
|
|
|
+ } else if (wmTaskTypeEntRef1.getAgentId().equals(wmTaskTypeEntRef1.getDrugentId())) {
|
|
|
+ wmTaskType.setRuleId(wmTaskTypeEntRef1.getAgentId().toString());
|
|
|
+ //药企给cso新增 两个都有值 药企和cso
|
|
|
+ } else if (null != wmTaskTypeEntRef1.getAgentId() && null != wmTaskTypeEntRef1.getDrugentId()
|
|
|
+ && !"".equals(wmTaskTypeEntRef1.getAgentId()) && !"".equals(wmTaskTypeEntRef1.getDrugentId())
|
|
|
+ ) {
|
|
|
+ wmTaskType.setRuleId("" + wmTaskTypeEntRef1.getDrugentId() + wmTaskTypeEntRef1.getAgentId());
|
|
|
+ List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
|
|
|
+ for (WmTaskType wmTaskType1 : wmTaskTypeList) {
|
|
|
+ if (null != wmTaskType1.getDurgentId() && null != wmTaskType1.getLevel1Id()
|
|
|
+ && !"".equals(wmTaskType1.getDurgentId()) && !"".equals(wmTaskType1.getLevel1Id())) {
|
|
|
+ wmTaskType.setRuleId(wmTaskType1.getRuleId());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.lambdaQuery(wmTaskType);
|
|
|
+ List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
|
|
|
+ "统计分析", "临床监察", "通用", "患者教育");
|
|
|
+ queryWrapper.notIn(WmTaskType::getTaskTypeName, noDisplayTaskTypeNameList);
|
|
|
+ queryWrapper.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val());
|
|
|
+
|
|
|
+ Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);
|
|
|
+
|
|
|
+ Page<WmTaskTypeVO> voPage = new Page<>();
|
|
|
+ voPage.setSize(pageResult.getSize());
|
|
|
+ voPage.setCurrent(pageResult.getCurrent());
|
|
|
+ voPage.setTotal(pageResult.getTotal());
|
|
|
+ List<WmTaskTypeVO> voList = new ArrayList<>();
|
|
|
+ pageResult.getRecords().forEach(taskType -> {
|
|
|
+ WmTaskTypeVO typeVO = BeanUtil.copyProperties(taskType, WmTaskTypeVO.class, "score");
|
|
|
+ if (StrUtil.isNotBlank(taskType.getTaskTypeName()) && taskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
+ // 应收账款回款 任务类 保存的是1000倍数,需要转换回来
|
|
|
+ typeVO.setScore(String.valueOf(taskType.getScore() / 1000.0D));
|
|
|
+ } else {
|
|
|
+ typeVO.setScore(String.valueOf(taskType.getScore()));
|
|
|
+ }
|
|
|
+ voList.add(typeVO);
|
|
|
+ });
|
|
|
+ voPage.setRecords(voList);
|
|
|
+
|
|
|
+ return R.ok(voPage);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过id查询任务类型打分表
|
|
|
+ *
|
|
|
+ * @param id id
|
|
|
+ * @return R
|
|
|
+ */
|
|
|
+ @GetMapping("/{id}")
|
|
|
+ public R<WmTaskType> getById(@PathVariable("id") Integer id) {
|
|
|
+ return R.ok(wmTaskTypeService.getById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增任务类型打分表
|
|
|
+ *
|
|
|
+ * @param wmTaskType 任务类型打分表
|
|
|
+ * @return R
|
|
|
+ */
|
|
|
+ @SysLog("新增任务类型打分表")
|
|
|
+ @PostMapping
|
|
|
+ public R<Boolean> save(@RequestBody WmTaskType wmTaskType) {
|
|
|
+ wmTaskType.setCreateTime(LocalDateTime.now());
|
|
|
+ if (SecurityUtils.getRoles().contains(2)) {
|
|
|
+ wmTaskType.setStatus("0");
|
|
|
+ } else {
|
|
|
+ wmTaskType.setStatus("1");
|
|
|
+ }
|
|
|
+ return R.ok(wmTaskTypeService.save(wmTaskType));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改任务类型打分表
|
|
|
+ *
|
|
|
+ * @param wmTaskTypeVO 任务类型打分表
|
|
|
+ * @return R
|
|
|
+ */
|
|
|
+ @SysLog("修改任务类型打分表")
|
|
|
+ @PutMapping
|
|
|
+ public R<?> updateById(@RequestBody WmTaskTypeVO wmTaskTypeVO) {
|
|
|
+
|
|
|
+ WmTaskType wmTaskType = BeanUtil.copyProperties(wmTaskTypeVO, WmTaskType.class);
|
|
|
+ // 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 积分值乘1000保存
|
|
|
+ if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName()) && wmTaskType.getTaskTypeName().startsWith("应收账款回款")) {
|
|
|
+ wmTaskType.setScore((int) (Double.parseDouble(wmTaskTypeVO.getScore()) * 1000));
|
|
|
+ wmTaskType.setTaskScoreStart((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreStart()) * 1000));
|
|
|
+ wmTaskType.setTaskScoreEnd((int) (Double.parseDouble(wmTaskTypeVO.getTaskScoreEnd()) * 1000));
|
|
|
+ }
|
|
|
+
|
|
|
+ String baseId = wmTaskType.getId();
|
|
|
+ if (SecurityUtils.getRoles().contains(2)) {
|
|
|
+ if (null != wmTaskType.getId() && "1".equals(wmTaskType.getStatus())) {
|
|
|
+ wmTaskTypeService.updateById(wmTaskType);
|
|
|
+ } else {
|
|
|
+ WmTaskType wmTaskRule1 = wmTaskType;
|
|
|
+ wmTaskRule1.setId(null);
|
|
|
+ wmTaskRule1.setStatus("1");
|
|
|
+ wmTaskRule1.setBaseId(baseId);
|
|
|
+ wmTaskTypeService.save(wmTaskRule1);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ wmTaskTypeService.updateById(wmTaskType);
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新任务备注(自定义任务要求)
|
|
|
+ *
|
|
|
+ * @param taskRemarkUpdate 参数
|
|
|
+ * @return {@link R}<{@link ?}> 结果
|
|
|
+ */
|
|
|
+ @SysLog("更新自定义任务要求")
|
|
|
+ @PostMapping("/update-task-remark")
|
|
|
+ public R<?> updateTaskRemark(@RequestBody @Validated WmTaskDTO.TaskRemarkUpdate taskRemarkUpdate) {
|
|
|
+ WmTaskType update = new WmTaskType();
|
|
|
+ update.setId(taskRemarkUpdate.getId());
|
|
|
+ update.setTaskRemark(taskRemarkUpdate.getTaskRemark());
|
|
|
+ wmTaskTypeService.updateById(update);
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过id删除任务类型打分表
|
|
|
+ *
|
|
|
+ * @param id id
|
|
|
+ * @return R
|
|
|
+ */
|
|
|
+ @SysLog("通过id删除任务类型打分表")
|
|
|
+ @DeleteMapping("/{id}")
|
|
|
+ @PreAuthorize("@pms.hasPermission('admin_wmtasktype_del')")
|
|
|
+ public R<Boolean> removeById(@PathVariable Integer id) {
|
|
|
+ return R.ok(wmTaskTypeService.removeById(id));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取药企列表
|
|
|
+ *
|
|
|
+ * @return 角色列表
|
|
|
+ */
|
|
|
+ @GetMapping("/list")
|
|
|
+ public R<List<WmTaskType>> listWmScorePackage() {
|
|
|
+ WmTaskType wmDaDrugEnt = new WmTaskType();
|
|
|
+ wmDaDrugEnt.setDelFlag(CommonConstants.STATUS_NORMAL);
|
|
|
+ wmDaDrugEnt.setEnableFlag(CommonConstants.STATUS_NORMAL);
|
|
|
+ wmDaDrugEnt.setTaskTypeLevel("1");
|
|
|
+ return R.ok(wmTaskTypeService.list(Wrappers.query(wmDaDrugEnt)));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询待审核的任务类型
|
|
|
+ *
|
|
|
+ * @param scorePackageId 积分包id
|
|
|
+ * @return 列表数据
|
|
|
+ */
|
|
|
+ @GetMapping("/list-package-task-type")
|
|
|
+ public R<?> listPackageTaskType(@RequestParam(value = "scorePackageId") String scorePackageId, String taskStatus) {
|
|
|
+ // 获取待审核的任务
|
|
|
+ LambdaQueryWrapper<WmTask> queryWrapper = Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .select(WmTask::getTaskTypeId)
|
|
|
+ .eq(WmTask::getScorePackageId, scorePackageId);
|
|
|
+ if (StrUtil.isNotBlank(taskStatus)) {
|
|
|
+ queryWrapper.eq(WmTask::getTaskStatus, taskStatus);
|
|
|
+ }
|
|
|
+ List<WmTask> wmTasks = wmTaskMapper.selectList(queryWrapper);
|
|
|
+ if (CollUtil.isEmpty(wmTasks)) {
|
|
|
+ return R.ok(Collections.emptyList());
|
|
|
+ }
|
|
|
+ Set<String> taskTypes = wmTasks.stream().map(WmTask::getTaskTypeId).collect(Collectors.toSet());
|
|
|
+ return R.ok(wmTaskTypeService.listByIds(taskTypes));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取药企列表
|
|
|
+ *
|
|
|
+ * @return 角色列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getTaskTree")
|
|
|
+ public R<List<WmTaskTypeTree>> getTaskTree(String description) {
|
|
|
+ return R.ok(wmTaskTypeService.getTaskTree(description));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 有效任务类型树
|
|
|
+ *
|
|
|
+ * @return 角色列表
|
|
|
+ */
|
|
|
+ @GetMapping("/getTaskTypeTree")
|
|
|
+ public R<Map<String, Object>> getTaskTypeTree(String description) {
|
|
|
+
|
|
|
+ return wmTaskTypeService.getTaskTypeTree(description);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询任务类型树
|
|
|
+ *
|
|
|
+ * @param taskTypeName 任务类型名称
|
|
|
+ * @return 类型树
|
|
|
+ */
|
|
|
+ @GetMapping("/list-task-type-tree")
|
|
|
+ public R<?> listConfigedTaskTypeTree(String taskTypeName) {
|
|
|
+ List<Map<String, Object>> list = wmDeptTaskTypeConfigService.listConfigedTaskTypeTree(taskTypeName);
|
|
|
+ return R.ok(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据企业id查询分类的任务类型
|
|
|
+ *
|
|
|
+ * @param deptId 企业ID
|
|
|
+ * @return 类型树
|
|
|
+ */
|
|
|
+ @GetMapping("/list-category-task-type")
|
|
|
+ public R<?> listTaskTypeTree(@RequestParam("deptId") Integer deptId) {
|
|
|
+ return R.ok(wmTaskTypeSubCate2Service.listTaskTypeTree(deptId));
|
|
|
+ }
|
|
|
}
|