Jelajahi Sumber

init: init project step4: biz code support

shc 1 tahun lalu
induk
melakukan
bc19e2611d

+ 391 - 369
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeController.java

@@ -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));
+    }
 }

+ 11 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskTypeService.java

@@ -1,5 +1,3 @@
-
-
 package com.qunzhixinxi.hnqz.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -9,6 +7,7 @@ import com.qunzhixinxi.hnqz.admin.api.model.output.WmTaskTypeDeptOutput;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 任务类型打分表
@@ -17,13 +16,19 @@ import java.util.List;
  * @date 2020-07-01 20:20:05
  */
 public interface WmTaskTypeService extends IService<WmTaskType> {
-	public int getWmTaskTypeByEnt(WmTaskType wmTaskType);
+    int getWmTaskTypeByEnt(WmTaskType wmTaskType);
 
     List<WmTaskType> selectByRuleId(WmTaskType wmTaskType);
 
-	List<WmTaskTypeTree> getTaskTree(String description);
+    List<WmTaskTypeTree> getTaskTree(String description);
 
-	R getTaskTypeTree(String description);
+    /**
+     * 查询有效任务类型树
+     *
+     * @param description 描述
+     * @return 有效任务类型树
+     */
+    R<Map<String, Object>> getTaskTypeTree(String description);
 
-	List<WmTaskTypeDeptOutput> getTaskTypeDeptList(WmTaskType query);
+    List<WmTaskTypeDeptOutput> getTaskTypeDeptList(WmTaskType query);
 }

+ 104 - 99
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskTypeServiceImpl.java

@@ -30,103 +30,108 @@ import java.util.stream.Collectors;
 @Service
 @AllArgsConstructor
 public class WmTaskTypeServiceImpl extends ServiceImpl<WmTaskTypeMapper, WmTaskType> implements WmTaskTypeService {
-	private final WmTaskTypeMapper wmTaskTypeMapper;
-	private final SysDictItemMapper sysDictItemMapper;
-
-	@Override
-	public List<WmTaskTypeDeptOutput> getTaskTypeDeptList(WmTaskType query) {
-		return wmTaskTypeMapper.getTaskTypeDeptList(query);
-	}
-
-	@Override
-	public int getWmTaskTypeByEnt(WmTaskType wmTaskType) {
-		wmTaskType.setDelFlag("0");
-		wmTaskType.setEnableFlag("0");
-		List<WmTaskType> list = super.list(Wrappers.query(wmTaskType));
-		if (list.size() > 0) {
-			if (list.size() > 0) {
-				return list.get(0).getScore();
-			}
-		} else {
-			return 0;
-		}
-		return 0;
-	}
-
-	@Override
-	public List<WmTaskType> selectByRuleId(WmTaskType wmTaskType) {
-		return wmTaskTypeMapper.selectByRuleId(wmTaskType);
-	}
-
-	/**
-	 * 查询有效任务类型树
-	 *
-	 * @return
-	 */
-	@Override
-	public List<WmTaskTypeTree> getTaskTree(String description) {
-		List<SysDictItem> dictList=new ArrayList<>();
-		if(StringUtil.isEmpty(description)){
-			dictList=sysDictItemMapper.selectList(
-					Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType,"score_task_type")
-							.orderByDesc(SysDictItem::getValue));
-		}else {
-			dictList=sysDictItemMapper.selectList(
-					Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType,"score_task_type")
-							.eq(SysDictItem::getDescription,description)
-							.orderByDesc(SysDictItem::getValue));
-		}
-
-		List<WmTaskTypeTree> treeList=new ArrayList<>();
-		for (SysDictItem item:dictList){
-			WmTaskTypeTree tree=new WmTaskTypeTree();
-			tree.setTaskTypeId(item.getValue());
-			tree.setTaskTypeName(item.getLabel());
-			tree.setType(item.getDescription());
-			WmTaskType wmTaskType=new WmTaskType();
-			wmTaskType.setParentId(item.getValue());
-			tree.setChildren(wmTaskTypeMapper.getWmTaskTypeYX(wmTaskType));
-			treeList.add(tree);
-		}
-		return treeList;
-	}
-
-	/**
-	 * 查询有效任务类型树
-	 * @return
-	 */
-	public R getTaskTypeTree(String description){
-		List<SysDictItem> dictList=new ArrayList<>();
-		List<String> keys = new ArrayList<>();
-		if(StringUtil.isEmpty(description)){
-			dictList=sysDictItemMapper.selectList(
-					Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType,"score_task_type")
-							.orderByAsc(SysDictItem::getValue));
-		}else {
-			dictList=sysDictItemMapper.selectList(
-					Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType,"score_task_type")
-							.eq(SysDictItem::getDescription,description)
-							.orderByAsc(SysDictItem::getValue));
-		}
-
-		List<WmTaskTypeTree> treeList=new ArrayList<>();
-		keys.addAll(dictList.stream().map(SysDictItem::getValue).collect(Collectors.toList()));
-		for (SysDictItem item:dictList){
-			WmTaskTypeTree tree=new WmTaskTypeTree();
-			tree.setTaskTypeId(item.getValue());
-			tree.setTaskTypeName(item.getLabel());
-			tree.setType(item.getDescription());
-			WmTaskType wmTaskType=new WmTaskType();
-			wmTaskType.setParentId(item.getValue());
-			List<WmTaskTypeTree> children = wmTaskTypeMapper.getWmTaskTypeYX(wmTaskType);
-			keys.addAll(children.stream().map(WmTaskTypeTree::getTaskTypeId).collect(Collectors.toList()));
-			tree.setChildren(children);
-			treeList.add(tree);
-		}
-
-		Map<String,Object> resultMap = new HashMap<>();
-		resultMap.put("treeList",treeList);
-		resultMap.put("keys",keys);
-		return R.ok(resultMap);
-	}
+    private final WmTaskTypeMapper wmTaskTypeMapper;
+    private final SysDictItemMapper sysDictItemMapper;
+
+    @Override
+    public List<WmTaskTypeDeptOutput> getTaskTypeDeptList(WmTaskType query) {
+        return wmTaskTypeMapper.getTaskTypeDeptList(query);
+    }
+
+    @Override
+    public int getWmTaskTypeByEnt(WmTaskType wmTaskType) {
+        wmTaskType.setDelFlag("0");
+        wmTaskType.setEnableFlag("0");
+        List<WmTaskType> list = super.list(Wrappers.query(wmTaskType));
+        if (list.size() > 0) {
+            if (list.size() > 0) {
+                return list.get(0).getScore();
+            }
+        } else {
+            return 0;
+        }
+        return 0;
+    }
+
+    @Override
+    public List<WmTaskType> selectByRuleId(WmTaskType wmTaskType) {
+        return wmTaskTypeMapper.selectByRuleId(wmTaskType);
+    }
+
+    /**
+     * 查询有效任务类型树
+     *
+     * @return
+     */
+    @Override
+    public List<WmTaskTypeTree> getTaskTree(String description) {
+        List<SysDictItem> dictList = new ArrayList<>();
+        if (StringUtil.isEmpty(description)) {
+            dictList = sysDictItemMapper.selectList(
+                    Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType, "score_task_type")
+                            .orderByDesc(SysDictItem::getValue));
+        } else {
+            dictList = sysDictItemMapper.selectList(
+                    Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType, "score_task_type")
+                            .eq(SysDictItem::getDescription, description)
+                            .orderByDesc(SysDictItem::getValue));
+        }
+
+        List<WmTaskTypeTree> treeList = new ArrayList<>();
+        for (SysDictItem item : dictList) {
+            WmTaskTypeTree tree = new WmTaskTypeTree();
+            tree.setTaskTypeId(item.getValue());
+            tree.setTaskTypeName(item.getLabel());
+            tree.setType(item.getDescription());
+            WmTaskType wmTaskType = new WmTaskType();
+            wmTaskType.setParentId(item.getValue());
+            tree.setChildren(wmTaskTypeMapper.getWmTaskTypeYX(wmTaskType));
+            treeList.add(tree);
+        }
+        return treeList;
+    }
+
+    /**
+     * 查询有效任务类型树
+     *
+     * @param description 描述
+     * @return 有效任务类型树
+     */
+    public R<Map<String, Object>> getTaskTypeTree(String description) {
+        List<SysDictItem> dictList;
+        if (StringUtil.isEmpty(description)) {
+            dictList = sysDictItemMapper.selectList(
+                    Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType, "score_task_type")
+                            .orderByAsc(SysDictItem::getValue));
+        } else {
+            dictList = sysDictItemMapper.selectList(
+                    Wrappers.<SysDictItem>lambdaQuery().eq(SysDictItem::getType, "score_task_type")
+                            .eq(SysDictItem::getDescription, description)
+                            .orderByAsc(SysDictItem::getValue));
+        }
+
+        List<String> keys = dictList.stream().map(SysDictItem::getValue).collect(Collectors.toList());
+        List<WmTaskTypeTree> treeList = new ArrayList<>(dictList.size());
+
+        for (SysDictItem item : dictList) {
+            WmTaskTypeTree tree = new WmTaskTypeTree();
+            tree.setTaskTypeId(item.getValue());
+            tree.setTaskTypeName(item.getLabel());
+            tree.setType(item.getDescription());
+
+            WmTaskType wmTaskType = new WmTaskType();
+            wmTaskType.setParentId(item.getValue());
+
+            List<WmTaskTypeTree> children = wmTaskTypeMapper.getWmTaskTypeYX(wmTaskType);
+            keys.addAll(children.stream().map(WmTaskTypeTree::getTaskTypeId).collect(Collectors.toList()));
+
+            tree.setChildren(children);
+            treeList.add(tree);
+        }
+
+        Map<String, Object> resultMap = new HashMap<>(2);
+        resultMap.put("treeList", treeList);
+        resultMap.put("keys", keys);
+        return R.ok(resultMap);
+    }
 }