Переглянути джерело

Merge branch 'feat-tasktypetemplate-20220407'

Qutong 3 роки тому
батько
коміт
8da8b10aec

+ 31 - 8
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -733,8 +733,8 @@ public class ApiController {
 						.collect(Collectors.toList());
 				mapOne.put("subList", subTypeList);
 
-				// 判断是否有配置医院拜访的任务类型模板
-				mapOne.put("checkHospitalTemplate", wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(sysU.getDeptId()));
+				// 查询配置了任务类型模板的任务类型
+				mapOne.put("hasTaskTypeTemplate", wmDeptTaskTypeTemplateService.listTaskTypeByDeptId(sysU.getDeptId()));
 
 				// 结算通道
 
@@ -2460,16 +2460,39 @@ public class ApiController {
 					if (null != wmTaskContent.getTemp3()) {
 						List<WmUserSign> wmUserSignList = new ArrayList<>();
 						WmUserSign userSign = wmUserSignService.getById(wmTaskContent.getTemp3());
-						// 如果配置了医院拜访的任务类型模板,则关联保存签到详情
-						if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(Integer.valueOf(wmTask.getDeptId()))) {
+						// 如果配置了医院拜访的任务类型模板,则关联查询签到详情
+						if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(Integer.valueOf(wmTask.getDeptId()), wmTask.getTaskTypeId())) {
 							WmUserSignDetail userSignDetail = wmUserSignDetailService.getOne(Wrappers.<WmUserSignDetail>lambdaQuery()
 									.eq(WmUserSignDetail::getSignId, userSign.getId()));
 							if (userSignDetail != null) {
 								if (ArrayUtil.isNotEmpty(userSignDetail.getPurpose())) {
-									String[] purposeNameArr = Stream.of(userSignDetail.getPurpose())
-											.map(s -> UserSignPurposeEnum.resolve(s).getName())
-											.toArray(String[]::new);
-									userSignDetail.setPurposeName(purposeNameArr);
+									List<Integer> purposeList = Stream.of(userSignDetail.getPurpose())
+											.map(Integer::parseInt)
+											.collect(Collectors.toList());
+									String dictType = null;
+									switch (userSign.getSignEntType()) {
+										case "1":
+											dictType = "user_sign_detail_purpose";
+											break;
+										case "2":
+											dictType = "user_sign_detail_distribution_purpose";
+											break;
+										case "3":
+											dictType = "user_sign_detail_pharmacy_purpose";
+											break;
+										default:
+											dictType = "";
+									}
+									List<SysDictItem> itemList = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+											.in(SysDictItem::getValue, purposeList)
+											.eq(SysDictItem::getType, dictType)
+											.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+									if (CollUtil.isNotEmpty(itemList)) {
+										String[] purposeNameArr = itemList.stream()
+												.map(SysDictItem::getLabel)
+												.toArray(String[]::new);
+										userSignDetail.setPurposeName(purposeNameArr);
+									}
 								}
 								if (StrUtil.isNotBlank(userSignDetail.getResult())) {
 									userSignDetail.setResultName(UserSignResultEnum.resolve(userSignDetail.getResult()).getName());

+ 12 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDeptTaskTypeTemplateService.java

@@ -3,6 +3,8 @@ package com.qunzhixinxi.hnqz.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeTemplate;
 
+import java.util.List;
+
 /**
  * 部门任务类型模板服务层
  *
@@ -15,7 +17,16 @@ public interface WmDeptTaskTypeTemplateService extends IService<WmDeptTaskTypeTe
 	 * 查询企业是否配置了医院拜访的任务类型模板
 	 *
 	 * @param deptId
+	 * @param taskTypeId
+	 * @return
+	 */
+	boolean checkDeptIdHospitalTemplate(Integer deptId, String taskTypeId);
+
+	/**
+	 * 根据deptId查询列表
+	 *
+	 * @param deptId
 	 * @return
 	 */
-	boolean checkDeptIdHospitalTemplate(Integer deptId);
+	List<String> listTaskTypeByDeptId(Integer deptId);
 }

+ 25 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDeptTaskTypeTemplateServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeTemplate;
@@ -8,6 +9,10 @@ import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeTemplateService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * @author lixuesong
  * @date 2022年01月18日 11:57
@@ -20,13 +25,31 @@ public class WmDeptTaskTypeTemplateServiceImpl extends ServiceImpl<WmDeptTaskTyp
 	 * 查询企业是否配置了医院拜访的任务类型模板
 	 *
 	 * @param deptId
+	 * @param taskTypeId
 	 * @return
 	 */
 	@Override
-	public boolean checkDeptIdHospitalTemplate(Integer deptId) {
+	public boolean checkDeptIdHospitalTemplate(Integer deptId, String taskTypeId) {
 		int count = this.count(Wrappers.<WmDeptTaskTypeTemplate>lambdaQuery()
 				.eq(WmDeptTaskTypeTemplate::getDeptId, deptId)
-				.eq(WmDeptTaskTypeTemplate::getTaskTypeId, "5"));
+				.eq(WmDeptTaskTypeTemplate::getTaskTypeId, taskTypeId));
 		return count > 0;
 	}
+
+	/**
+	 * 根据deptId查询列表
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	@Override
+	public List<String> listTaskTypeByDeptId(Integer deptId) {
+		List<WmDeptTaskTypeTemplate> list = this.list(Wrappers.<WmDeptTaskTypeTemplate>lambdaQuery()
+				.eq(WmDeptTaskTypeTemplate::getDeptId, deptId));
+		if (CollUtil.isNotEmpty(list)) {
+			return list.stream()
+					.map(WmDeptTaskTypeTemplate::getTaskTypeId).collect(Collectors.toList());
+		}
+		return new ArrayList<>();
+	}
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java

@@ -260,7 +260,7 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 				wmScorePackageService.updateById(updatePke);
 
 				// 如果配置了医院拜访的任务类型模板,则关联保存签到详情
-				if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(sysU.getDeptId())) {
+				if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(sysU.getDeptId(), wmTask.getTaskTypeId())) {
 					WmUserSignDetail userSignDetail = wmUserSign.getUserSignDetail();
 					if (userSignDetail != null) {
 						userSignDetail.setSignId(wmUserSign.getId());