Просмотр исходного кода

feat: 手术跟台任务类型相关修改

lixuesong 2 лет назад
Родитель
Сommit
dafefbe836

+ 24 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -32,6 +32,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmAdRecord;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
+import com.qunzhixinxi.hnqz.admin.entity.MedicalEquipment;
 import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
@@ -64,6 +65,7 @@ import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.UserSignResultEnum;
+import com.qunzhixinxi.hnqz.admin.service.MedicalEquipmentService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptCsmService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
@@ -201,6 +203,7 @@ public class ApiController {
 	private final SysUserExtRecordService sysUserExtRecordService;
 	private final WmTaskSubmissionRuleService taskSubmissionRuleService;
 	private final SysDeptCsmService deptCsmService;
+	private final MedicalEquipmentService medicalEquipmentService;
 
 	@SysLog("通过任务类型获取表单配置")
 	@ApiOperation(value = "任务类型表单配置-通过任务类型获取表单配置", notes = "根据任务类型获取表单配置")
@@ -226,6 +229,9 @@ public class ApiController {
 		} else if ("39".equals(taskTypeId) || "40".equals(taskTypeId) || "41".equals(taskTypeId)) {
 			// 应收账款回款-A类、应收账款回款-B类、应收账款回款-C类 都取39
 			connfigMap = getTaskContentConfigByTaskTypeId("39");
+		} else if ("42".equals(taskTypeId) || "43".equals(taskTypeId) || "44".equals(taskTypeId)) {
+			// 手术跟台-一级/手术跟台-二级/手术跟台-三级 都取42
+			connfigMap = getTaskContentConfigByTaskTypeId("42");
 		} else {
 			connfigMap = getTaskContentConfigByTaskTypeId(taskTypeId);
 		}
@@ -389,6 +395,19 @@ public class ApiController {
 				} else if ("package_drug_list".equals(config.getDictGroupName())) {
 					// 前端自动获取
 					dictMap.put(config.getDictGroupName(), "package_drug_list");
+				} else if ("medical_equipment_list".equals(config.getDictGroupName())) {
+					List<Map<String, Object>> listMap = new ArrayList<>();
+					// 手术跟台任务类型-推广产品
+					List<MedicalEquipment> medicalEquipmentList = medicalEquipmentService.listByDrugId(SecurityUtils.getUser().getDeptId());
+					if (CollUtil.isNotEmpty(medicalEquipmentList)) {
+						listMap = medicalEquipmentList.stream().map(medicalEquipment -> {
+							Map<String, Object> equipmentMap = new HashMap<>();
+							equipmentMap.put("value", medicalEquipment.getId());
+							equipmentMap.put("label", medicalEquipment.getName());
+							return equipmentMap;
+						}).collect(Collectors.toList());
+					}
+					dictMap.put(config.getDictGroupName(), listMap);
 				}
 
 			}
@@ -417,6 +436,11 @@ public class ApiController {
 		if ("39".equals(taskTypeId) || "40".equals(taskTypeId) || "41".equals(taskTypeId)) {
 			taskTypeId  = "39";
 		}
+		if ("42".equals(taskTypeId) || "43".equals(taskTypeId) || "44".equals(taskTypeId)) {
+			// 手术跟台-一级/手术跟台-二级/手术跟台-三级 都取42
+			taskTypeId  = "42";
+		}
+
 		queryConn.setTaskTypeId(taskTypeId);
 		queryConn.setDelFlag("0");
 		queryConn.setEnableFlag("0");

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/MedicalEquipmentService.java

@@ -3,6 +3,8 @@ package com.qunzhixinxi.hnqz.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.entity.MedicalEquipment;
 
+import java.util.List;
+
 /**
  * @author lixuesong
  * @description 针对表【medical_equipment(医疗器械)】的数据库操作Service
@@ -10,4 +12,11 @@ import com.qunzhixinxi.hnqz.admin.entity.MedicalEquipment;
  */
 public interface MedicalEquipmentService extends IService<MedicalEquipment> {
 
+	/**
+	 * 查询指定企业对应的医疗器械
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	List<MedicalEquipment> listByDrugId(Integer deptId);
 }

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

@@ -1,18 +1,68 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+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.MedicalEquipment;
+import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
 import com.qunzhixinxi.hnqz.admin.mapper.MedicalEquipmentMapper;
 import com.qunzhixinxi.hnqz.admin.service.MedicalEquipmentService;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * @author lixuesong
  * @description 针对表【medical_equipment(医疗器械)】的数据库操作Service实现
  * @createDate 2022-11-08 10:03:50
  */
 @Service
+@AllArgsConstructor
 public class MedicalEquipmentServiceImpl extends ServiceImpl<MedicalEquipmentMapper, MedicalEquipment>
 		implements MedicalEquipmentService {
 
+	private final WmDaDrugEntService wmDaDrugEntService;
+
+	private final SysDeptRelationService sysDeptRelationService;
+
+	/**
+	 * 查询指定企业对应的医疗器械
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	public List<MedicalEquipment> listByDrugId(Integer deptId) {
+		// 查询父级企业id
+		SysDeptRelation deptRelation = sysDeptRelationService.getOne(Wrappers.<SysDeptRelation>lambdaQuery()
+				.eq(SysDeptRelation::getDescendant, deptId)
+				.ne(SysDeptRelation::getAncestor, deptId));
+		if (deptRelation == null) {
+			return Collections.emptyList();
+		}
+		// Ancestor() != 1 表明不是第一级的药企
+		if (deptRelation.getAncestor() != 1) {
+			// 查询是否存在父级的父级
+			SysDeptRelation pDeptRelation = sysDeptRelationService.getOne(Wrappers.<SysDeptRelation>lambdaQuery()
+					.eq(SysDeptRelation::getDescendant, deptRelation.getAncestor())
+					.ne(SysDeptRelation::getAncestor, deptRelation.getAncestor()));
+			if (pDeptRelation != null && pDeptRelation.getAncestor() == 1) {
+				deptRelation = pDeptRelation;
+			}
+		}
+
+		// 查询企业对应药企id
+		WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.selectByDeptId(deptRelation.getDescendant());
+
+		if (wmDaDrugEnt == null) {
+			return Collections.emptyList();
+		}
+
+		return this.list(Wrappers.<MedicalEquipment>lambdaQuery()
+				.eq(MedicalEquipment::getDrugEntId, wmDaDrugEnt.getId()));
+	}
 }

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

@@ -92,6 +92,14 @@ public class WmScoreTaskTypeServiceImpl extends ServiceImpl<WmScoreTaskTypeMappe
 				// 应收账款回款-A类/应收账款回款-B类/应收账款回款-C类 统一回显为一个‘应收账款回款’
 				continue;
 			}
+			if (StrUtil.equals("42", type.getId())) {
+				type.setTaskTypeName("手术跟台");
+			}
+			if (StrUtil.equals("43", type.getId()) || StrUtil.equals("44", type.getId())) {
+				// 手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型 统一回显为一个‘手术跟台’
+				continue;
+			}
+
 			if(resultMap.containsKey(type.getParentId())){
 				String typeName = resultMap.get(type.getParentId());
 				typeName = typeName +";"+ type.getTaskTypeName();

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

@@ -1070,6 +1070,32 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 					score = (int) Math.round(score * Double.parseDouble(wmTaskContent.getTemp8()) / 1000.0D);
 				}
 
+				// 手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型 积分值设置
+				if ("42".equals(wmTaskContent.getTemp30())) {
+					// 根据选择的跟台级别 设置积分值
+					String taskTypeId = "42";
+					switch (wmTaskContent.getTemp23()) {
+						case "1":
+							taskTypeId = "42";
+							break;
+						case "2":
+							taskTypeId = "43";
+							break;
+						case "3":
+							taskTypeId = "44";
+							break;
+						default:
+					}
+					WmTaskType baseTaskType = wmTaskTypeService.getById(taskTypeId);
+					// 查询当前企业的任务类型积分
+					WmTaskType wmTaskType2 = new WmTaskType();
+					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(wmTaskContent.getTemp32());
+					wmTaskType2.setRuleId(wmScorePackage1.getRuleId());
+					wmTaskType2.setTaskTypeName(baseTaskType.getTaskTypeName());
+					wmTaskType2.setRuleId(wmScorePackage1.getRuleId());
+					score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType2);
+				}
+
 				log.info("获取任务得分:{}", score);
 
 				if (score < 0) {