Bläddra i källkod

feat: 企业批量任务审核-查询列表接口

lixuesong 2 år sedan
förälder
incheckning
24507836dc

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmReportController.java

@@ -17,12 +17,14 @@
 
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -252,7 +254,21 @@ public class WmReportController {
 		return wmReportService.getTaskListPage(page,wmReport1, isApprovalPage);
 	}
 
+	/**
+	 * 根据任务类型查询任务
+	 *
+	 * @param page
+	 * @param taskTypeName
+	 * @return
+	 */
+	@GetMapping("/task-page-by-type")
+	public R<?> taskPageByTaskType(Page<WmTaskVO> page, String taskTypeName) {
+		if (StrUtil.isBlank(taskTypeName)) {
+			return R.failed("taskTypeName必填");
+		}
 
+		return wmReportService.taskPageByTaskType(page, taskTypeName);
+	}
 
 
 

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmReport.java

@@ -153,4 +153,10 @@ public class WmReport extends Model<WmReport> {
 	 */
 	@TableField(exist = false)
 	private WmReportOpt reportOpt;
+
+	/**
+	 * 任务类型id
+	 */
+	@TableField(exist = false)
+	private String taskTypeId;
 }

+ 271 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/vo/WmTaskVO.java

@@ -0,0 +1,271 @@
+/*
+ *    Copyright (c) 2018-2025, hnqz All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: hnqz
+ */
+
+package com.qunzhixinxi.hnqz.admin.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 任务表
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+@Data
+@ApiModel(value = "任务表")
+public class WmTaskVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 *
+	 */
+	@TableId
+	@ApiModelProperty(value="")
+	private String id;
+	/**
+	 * 任务类型ID
+	 */
+	@ApiModelProperty(value="任务类型ID")
+	private String taskTypeId;
+
+	@ApiModelProperty(value="任务得分")
+	Integer score;
+
+	@ApiModelProperty(value="任务提交到的积分包ID")
+	String scorePackageDrugId;
+
+	@ApiModelProperty(value="任务提交到的积分包ID")
+	String scorePackageLevel1Id;
+
+	@ApiModelProperty(value="任务类型ID")
+	String scorePackageId;
+
+	@ApiModelProperty(value="积分分配")
+	String taskRuleId;
+
+	/**
+	 * 调研时间
+	 */
+	@ApiModelProperty(value="调研时间")
+	private LocalDateTime lookintoDate;
+	/**
+	 * 省
+	 */
+	@ApiModelProperty(value="省")
+	private String province;
+	/**
+	 * 市
+	 */
+	@ApiModelProperty(value="市")
+	private String city;
+	/**
+	 * 区
+	 */
+	@ApiModelProperty(value="区")
+	private String area;
+	/**
+	 * 地址
+	 */
+	@ApiModelProperty(value="地址")
+	private String address;
+	/**
+	 * 调研类型ID
+	 */
+	@ApiModelProperty(value="调研类型ID")
+	private String lookintoTypeId;
+	/**
+	 * 任务内容ID
+	 */
+	@ApiModelProperty(value="任务内容ID")
+	private String taskContentId;
+	/**
+	 * 任务状态
+	 */
+	@ApiModelProperty(value="任务状态")
+	private String taskStatus;
+
+	/**
+	 * 提交审核状态
+	 */
+	@ApiModelProperty(value="提交审核状态")
+	private String submitStatus;
+
+	/**
+	 * 任务用户ID
+	 */
+	@ApiModelProperty(value="任务用户ID")
+	private String taskUserId;
+
+	/**
+	 * 用户类型ID
+	 */
+	@ApiModelProperty(value="用户类型ID")
+	private String taskUserType;
+
+	/**
+	 * 服务药企
+	 */
+	@ApiModelProperty(value="服务药企")
+	private String drugEntId;
+
+	/**
+	 * 分享图片地址
+	 */
+	@ApiModelProperty(value="服务药企")
+	private String shareImgUrl;
+
+	/**
+	 * 组织机构ID
+	 */
+	@ApiModelProperty(value="组织机构ID")
+	private String deptId;
+	/**
+	 * 是否删除
+	 */
+	@ApiModelProperty(value="是否删除")
+	private String delFlag;
+	/**
+	 * 是否禁用
+	 */
+	@ApiModelProperty(value="是否禁用")
+	private String enableFlag;
+	/**
+	 * 所属租户
+	 */
+	@ApiModelProperty(value="所属租户",hidden=true)
+	private Integer tenantId;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value="创建时间")
+	private LocalDateTime createTime;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value="创建人")
+	private Integer createUser;
+	/**
+	 * 更新时间
+	 */
+	@ApiModelProperty(value="更新时间")
+	private LocalDateTime updateTime;
+	/**
+	 * 更新人
+	 */
+	@ApiModelProperty(value="更新人")
+	private String updateUser;
+
+	private String platAuditStatus;
+
+	private List<String> extIds;
+
+	private String taskInfoImg;
+
+	/**
+	 * 对比结果
+	 */
+	@ApiModelProperty(value="对比结果")
+	private String compareResult;
+	/**
+	 * 审批意见
+	 */
+	@ApiModelProperty(value="审批意见")
+	private String approvalOpinion;
+	/**
+	 * 审批说明
+	 */
+	@ApiModelProperty(value="审批说明")
+	private String approvalInfo;
+
+	private String realFlag;
+
+	@ApiModelProperty(value="任务提交到一级cso的报告ID")
+	private Integer reportOneId;
+	@ApiModelProperty(value="任务提交到一级cso的报告审核状态")
+	private String reportOneApprovalStatus;
+	@ApiModelProperty(value="任务提交到一级cso的报告审批意见")
+	private String reportOneApprovalOpinion;
+	@ApiModelProperty(value="任务提交到一级cso的报告审批说明")
+	private String reportOneApprovalInfo;
+
+	@ApiModelProperty(value="任务提交到二级cso的报告ID")
+	private Integer reportSecondId;
+	@ApiModelProperty(value="任务提交到二级cso的报告审核状态")
+	private String reportSecondApprovalStatus;
+	@ApiModelProperty(value="任务提交到二级cso的报告审批意见")
+	private String reportSecondApprovalOpinion;
+	@ApiModelProperty(value="任务提交到二级cso的报告审批说明")
+	private String reportSecondApprovalInfo;
+
+	@ApiModelProperty(value="任务提交到药企的报告ID")
+	private Integer reportDrugId;
+	@ApiModelProperty(value="任务提交到药企的报告审核状态")
+	private String reportDrugApprovalStatus;
+	@ApiModelProperty(value="任务提交到药企的报告审批意见")
+	private String reportDrugApprovalOpinion;
+	@ApiModelProperty(value="任务提交到药企的报告审批说明")
+	private String reportDrugApprovalInfo;
+
+	/**
+	 * 接单对象list
+	 */
+	private WmTaskContent wmTaskContent;
+
+	private String type;
+
+	/**
+	 * cso审批说明
+	 */
+	@ApiModelProperty(value="cso审批说明")
+	private String taskStatusInfo;
+
+
+	private String taskFrom;
+
+	/**
+	 * 任务用户用户名
+	 */
+	private String taskUsername;
+
+	/**
+	 * 关联的用户手机号
+	 */
+	private String username;
+
+	/**
+	 * 报告单号
+	 */
+	private String reportNo;
+
+	/**
+	 * 源头包积分包id
+	 */
+	private String scoreId;
+
+	/**
+	 * 分配对象类型(0-药企,1-一级CSO,2-二级CSO)
+	 */
+	private String typeid;
+}

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskMapper.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.entity.WmReport;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScopeMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -201,4 +202,13 @@ public interface WmTaskMapper extends DataScopeMapper<WmTask> {
 	 */
 	Long countMeetingTask(@Param("taskTypeList") List<String> taskTypeList, @Param("taskUserId") String taskUserId,
 						  @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
+
+	/**
+	 * 企业审核查询任务列表
+	 *
+	 * @param page
+	 * @param wmReport
+	 * @return
+	 */
+	IPage<WmTaskVO> entTaskPageByTaskType(Page<WmTaskVO> page, @Param("query") WmReport wmReport);
 }

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmReportService.java

@@ -21,6 +21,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
 import java.util.List;
@@ -43,5 +45,14 @@ public interface WmReportService extends IService<WmReport> {
 
 	IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name);
 
+	/**
+	 * 根据任务类型查询任务
+	 *
+	 * @param page
+	 * @param taskTypeName
+	 * @return
+	 */
+	R<?> taskPageByTaskType(Page<WmTaskVO> page, String taskTypeName);
+
 
 }

+ 59 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -17,6 +17,7 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
@@ -35,10 +36,14 @@ import com.qunzhixinxi.hnqz.admin.entity.WmReport;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
@@ -47,10 +52,12 @@ import com.qunzhixinxi.hnqz.admin.service.WmReportService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -69,13 +76,16 @@ import java.util.stream.Collectors;
  * @author pigx code generator
  * @date 2020-12-21 20:57:26
  */
+@Slf4j
 @Service
 @AllArgsConstructor
 public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> implements WmReportService {
 
 	private final WmScorePackageService wmScorePackageService;
 	private final WmScorePackageStatusService wmScorePackageStatusService;
+	private final WmTaskTypeService wmTaskTypeService;
 	private final WmTaskService wmTaskService;
+	private final WmTaskMapper wmTaskMapper;
 	private final WmReportMapper wmReportMapper;
 	private final SysUserService sysUserService;
 	private final WmDaDistributionService wmDaDistributionService;
@@ -453,7 +463,56 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 		return R.ok(pages);
 	}
 
+	/**
+	 * 根据任务类型查询任务
+	 *
+	 * @param page
+	 * @param taskTypeName
+	 * @return
+	 */
+	@Override
+	public R<?> taskPageByTaskType(Page<WmTaskVO> page, String taskTypeName) {
+
+		WmTaskType baseTaskType = wmTaskTypeService.getOne(Wrappers.<WmTaskType>lambdaQuery()
+				.eq(WmTaskType::getTaskTypeLevel, "1")
+				.eq(WmTaskType::getTaskTypeName, taskTypeName)
+				.eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val()));
+		if (baseTaskType == null) {
+			log.warn("任务类型不存在tastTypeName={}", taskTypeName);
+			return R.failed("任务类型不存在");
+		}
 
+		WmReport queryReport = new WmReport();
+		queryReport.setDrugEntId(SecurityUtils.getUser().getDeptId());
+		queryReport.setTaskTypeId(baseTaskType.getId());
+		IPage<WmTaskVO> pages = wmTaskMapper.entTaskPageByTaskType(page, queryReport);
+
+		Page<Map<String, Object>> mapPage = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal());
+		List<WmTaskVO> taskList = pages.getRecords();
+		if (CollUtil.isNotEmpty(taskList)) {
+			List<Map<String, Object>> resList = taskList.stream().map(wmtask -> {
+				Map<String, Object> map = JSON.parseObject(JSON.toJSONString(wmtask), Map.class);
+				map.put("reportNo", wmtask.getReportNo());
+				map.put("scoreId", wmtask.getScoreId());
+				if ("0".equals(wmtask.getTypeid())) {//药企
+					map.put("reportApprovalOpinion", wmtask.getReportDrugApprovalOpinion());
+				} else if ("1".equals(wmtask.getTypeid())) {//一级代理商类型
+					map.put("reportApprovalOpinion", wmtask.getReportDrugApprovalOpinion());
+				} else if ("2".equals(wmtask.getTypeid())) {//二级代理商类型
+					map.put("reportApprovalOpinion", wmtask.getReportOneApprovalOpinion());
+				}
+				// 姓名
+				if (StringUtils.isNumeric(wmtask.getTaskUserId())) {
+					SysUser user = sysUserService.getById(Integer.parseInt(wmtask.getTaskUserId()));
+					map.put("taskUsername", user.getRealname());
+				}
+				return map;
+			}).collect(Collectors.toList());
+
+			mapPage.setRecords(resList);
+		}
+		return R.ok(mapPage);
+	}
 }
 
 

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -1332,4 +1332,17 @@ FROM
 	  	AND wm_task_content.temp4 BETWEEN #{startTime} AND #{endTime}
 		AND wm_task.task_status != 4
 	</select>
+
+	<!-- 企业审核查询任务列表 -->
+    <select id="entTaskPageByTaskType" resultType="com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO">
+		select t.*, r.report_no, r.score_id, p.typeid
+		from wm_task t
+				 left join wm_report r on t.report_one_id = r.id or t.report_second_id = r.id or t.report_drug_id = r.id
+				 left join wm_score_package p on p.id = r.score_id
+		where r.drug_ent_id = #{query.drugEntId}
+		  and t.task_type_id = #{query.taskTypeId}
+		  and (p.typeid = 0 and t.report_drug_approval_opinion is null
+			or p.typeid = 1 and t.report_drug_approval_opinion is null
+			or p.typeid = 2 and t.report_one_approval_opinion is null)
+	</select>
 </mapper>