Browse Source

Merge branch 'feat-20221107-operatingheeltable'

lixuesong 2 years ago
parent
commit
7f8517aeb1

+ 38 - 0
db/v2.0/221109.sql

@@ -0,0 +1,38 @@
+-- 新增医疗器械表
+create table if not exists medical_equipment
+(
+    id            int auto_increment comment '医疗器械'
+        primary key,
+    name          varchar(64)      null comment '器械名称',
+    manufacturer  varchar(64)      null comment '生产厂家',
+    drug_ent_id   int              null comment '所属企业id',
+    drug_ent_name varchar(64)      null comment '所属企业名称',
+    specification varchar(64)      null comment '规格',
+    measure_unit  varchar(64)      null comment '计量单位组名称',
+    level         varchar(20)      null comment '等级',
+    remark        varchar(64)      null comment '备注',
+    del_flag      char default '0' null comment '删除标记,1:已删除,0:正常',
+    create_time   datetime         null comment '创建时间',
+    create_user   int              null comment '创建人',
+    update_time   datetime         null comment '更新时间',
+    update_user   int              null comment '更新人'
+)
+    comment '医疗器械';
+
+-- 新增任务类型手术跟台
+INSERT INTO hnqzx.wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id, durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user, status, base_id, real_flag, rule_id, parent_id) VALUES (42, '手术跟台-一级', '1', 0, 500, 500, null, null, null, null, 0, '0', 1, '2022-11-07 16:52:06', null, '2022-11-07 16:44:22', null, 0, '专项服务', null, '1', 'p-17');
+INSERT INTO hnqzx.wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id, durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user, status, base_id, real_flag, rule_id, parent_id) VALUES (43, '手术跟台-二级', '1', 0, 1000, 1000, null, null, null, null, 0, '0', 1, '2022-11-07 16:52:06', null, '2022-11-07 16:44:22', null, 0, '专项服务', null, '1', 'p-17');
+INSERT INTO hnqzx.wm_task_type (id, task_type_name, task_type_level, task_score_start, task_score_end, score, task_ent_id, durgent_id, level1_id, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user, status, base_id, real_flag, rule_id, parent_id) VALUES (44, '手术跟台-三级', '1', 0, 2000, 2000, null, null, null, null, 0, '0', 1, '2022-11-07 17:15:55', null, '2022-11-07 16:44:22', null, 0, '专项服务', null, '1', 'p-17');
+
+-- 新增任务类型手术跟台-小程序页面字段配置
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp32', '关联积分包', 1, 'domain', 1, 200, '', '', 'package_list', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp2', '手术名称', 2, 'text', 4, 50, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp4', '跟台时间', 5, 'datetime', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp31', '位置打卡', 6, 'map', 1, 200, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp6', '手术单/术前讨论会(1张)', 7, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp10', '跟台总结', 11, 'longtext', 5, 100, '', '', '', '0', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp7', '产品出库单(1张)', 8, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp12', '应用产品', 3, 'domain', 1, 200, null, '', 'medical_equipment_list', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp23', '跟台级别', 4, 'select', 1, 2, '', '', 'operating_heel_table_level', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp8', '现场照片(最少3张,需包含现场照片、医生照片)', 9, 'img', 3, 5, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);
+INSERT INTO hnqzx.wm_task_content_config (base_type_id, task_type_id, task_filed_key, task_filed_value, seq, task_filed_type, task_filed_minsize, task_filed_maxsize, task_filed_alert, dict_url, dict_group_name, is_mustfill, dept_id, del_flag, enable_flag, tenant_id, create_time, create_user, update_time, update_user) VALUES ('42', '42', 'temp9', '术后小结(1张,需包含对应产品列示)', 10, 'img', 1, 5, '', '', '', '1', null, '0', '0', 1, '2022-11-07 17:28:54', null, '2022-11-07 17:28:54', null);

+ 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");

+ 120 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/MedicalEquipmentController.java

@@ -0,0 +1,120 @@
+package com.qunzhixinxi.hnqz.admin.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.entity.base.BaseEntity;
+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 com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author: lixuesong
+ * @createTime: 2022/11/08 10:07
+ * @description: 医疗企业前端控制器
+ */
+@Slf4j
+@RestController
+@AllArgsConstructor
+@RequestMapping("/medical-equipment")
+public class MedicalEquipmentController {
+
+	private final MedicalEquipmentService medicalEquipmentService;
+
+	private final WmDaDrugEntService wmDaDrugEntService;
+
+	private final SysDeptRelationService sysDeptRelationService;
+
+	/**
+	 * 新增
+	 *
+	 * @param medicalEquipment
+	 * @return
+	 */
+	@PostMapping
+	public R<?> save(@Validated(BaseEntity.Create.class) @RequestBody MedicalEquipment medicalEquipment) {
+		int count = medicalEquipmentService.count(Wrappers.<MedicalEquipment>lambdaQuery()
+				.eq(MedicalEquipment::getDrugEntId, medicalEquipment.getDrugEntId())
+				.eq(MedicalEquipment::getName, medicalEquipment.getName()));
+		if (count > 0) {
+			return R.failed("所属企业下已存在");
+		}
+		medicalEquipmentService.save(medicalEquipment);
+		return R.ok();
+	}
+
+	/**
+	 * 修改
+	 *
+	 * @param medicalEquipment
+	 * @return
+	 */
+	@PutMapping
+	public R<?> update(@Validated(BaseEntity.Update.class) @RequestBody MedicalEquipment medicalEquipment) {
+		int count = medicalEquipmentService.count(Wrappers.<MedicalEquipment>lambdaQuery()
+				.eq(MedicalEquipment::getDrugEntId, medicalEquipment.getDrugEntId())
+				.eq(MedicalEquipment::getName, medicalEquipment.getName())
+				.ne(MedicalEquipment::getId, medicalEquipment.getId()));
+		if (count > 0) {
+			return R.failed("所属企业下已存在");
+		}
+		medicalEquipmentService.updateById(medicalEquipment);
+		return R.ok();
+	}
+
+	/**
+	 * 删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@DeleteMapping("/{id}")
+	public R<?> remove(@PathVariable("id") Integer id) {
+		medicalEquipmentService.removeById(id);
+		return R.ok();
+	}
+
+	/**
+	 * 分页查询
+	 *
+	 * @param page
+	 * @param medicalEquipment
+	 * @return
+	 */
+	@GetMapping("/page")
+	public R<?> page(Page<MedicalEquipment> page, MedicalEquipment medicalEquipment) {
+		LambdaQueryWrapper<MedicalEquipment> queryWrapper = Wrappers.lambdaQuery();
+		if (StrUtil.isNotBlank(medicalEquipment.getName())) {
+			queryWrapper.like(MedicalEquipment::getName, medicalEquipment.getName());
+		}
+		if (StrUtil.isNotBlank(medicalEquipment.getManufacturer())) {
+			queryWrapper.like(MedicalEquipment::getManufacturer, medicalEquipment.getManufacturer());
+		}
+		if (StrUtil.isNotBlank(medicalEquipment.getDrugEntName())) {
+			queryWrapper.like(MedicalEquipment::getDrugEntName, medicalEquipment.getDrugEntName());
+		}
+		Page<MedicalEquipment> equipmentPage = medicalEquipmentService.page(page, queryWrapper);
+		return R.ok(equipmentPage);
+	}
+
+}

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -2433,6 +2433,19 @@ public class WmScorePackageController {
 						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType40);
 						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType41);
 					}
+					// 如果存在taskTypeId=42 则同时增加手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型(42/43/44)
+					if (wmScorePackage.getWmScoreTaskTypeList().stream().anyMatch(wmTaskTypeTree -> "42".equals(wmTaskTypeTree.getTaskTypeId()))) {
+						WmScoreTaskType addTaskType43 = new WmScoreTaskType();
+						addTaskType43.setScoreId(wmScorePackage.getId());
+						addTaskType43.setType("1");
+						addTaskType43.setTaskTypeId("43");
+						WmScoreTaskType addTaskType44 = new WmScoreTaskType();
+						addTaskType44.setScoreId(wmScorePackage.getId());
+						addTaskType44.setType("1");
+						addTaskType44.setTaskTypeId("44");
+						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType43);
+						wmScorePackage.getWmScoreTaskTypeList().add(addTaskType44);
+					}
 
 					List<WmScoreTaskType> wmScoreTaskTypess = new ArrayList<>();
 					for (WmScoreTaskType wmScoreTaskTypes : wmScorePackage.getWmScoreTaskTypeList()) {

+ 106 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/MedicalEquipment.java

@@ -0,0 +1,106 @@
+package com.qunzhixinxi.hnqz.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.qunzhixinxi.hnqz.admin.entity.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 医疗器械
+ * @TableName medical_equipment
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName(value ="medical_equipment")
+public class MedicalEquipment extends Model<MedicalEquipment> {
+    /**
+     * 医疗器械id
+     */
+	@NotNull(message = "id不能为空", groups = BaseEntity.Update.class)
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 器械名称
+     */
+	@NotBlank(message = "器械名称不能为空", groups = BaseEntity.Create.class)
+    private String name;
+
+    /**
+     * 生产厂家
+     */
+	@NotBlank(message = "生产厂家不能为空", groups = BaseEntity.Create.class)
+    private String manufacturer;
+
+    /**
+     * 所属企业id
+     */
+	@NotNull(message = "所属企业id不能为空", groups = BaseEntity.Create.class)
+    private Integer drugEntId;
+
+    /**
+     * 所属企业名称
+     */
+    private String drugEntName;
+
+    /**
+     * 规格
+     */
+	@NotBlank(message = "规格不能为空", groups = BaseEntity.Create.class)
+    private String specification;
+
+    /**
+     * 计量单位组名称
+     */
+	@NotBlank(message = "计量单位组名称不能为空", groups = BaseEntity.Create.class)
+    private String measureUnit;
+
+    /**
+     * 等级
+     */
+    private String level;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+	/**
+	 * 删除标记,1:已删除,0:正常
+	 */
+	@TableLogic
+	private String delFlag;
+
+	/**
+	 * 创建时间
+	 */
+	private LocalDateTime createTime;
+
+	/**
+	 * 创建人
+	 */
+	private Integer createUser;
+
+	/**
+	 * 更新时间
+	 */
+	private LocalDateTime updateTime;
+
+	/**
+	 * 更新人
+	 */
+	private Integer updateUser;
+
+}

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/MedicalEquipmentMapper.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.entity.MedicalEquipment;
+
+/**
+ * @author lixuesong
+ * @description 针对表【medical_equipment(医疗器械)】的数据库操作Mapper
+ * @createDate 2022-11-08 10:03:50
+ * @Entity com.qunzhixinxi.hnqz.admin.entity.MedicalEquipment
+ */
+public interface MedicalEquipmentMapper extends BaseMapper<MedicalEquipment> {
+
+
+}

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

@@ -0,0 +1,22 @@
+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
+ * @createDate 2022-11-08 10:03:50
+ */
+public interface MedicalEquipmentService extends IService<MedicalEquipment> {
+
+	/**
+	 * 查询指定企业对应的医疗器械
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	List<MedicalEquipment> listByDrugId(Integer deptId);
+}

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

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

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

@@ -147,6 +147,9 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 			add("应收账款回款-A类");
 			add("应收账款回款-B类");
 			add("应收账款回款-C类");
+			add("手术跟台-一级");
+			add("手术跟台-二级");
+			add("手术跟台-三级");
 		}};
 		BASE_TASK_TYPE_MAP.put("专项服务", medicineList);
 

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

@@ -757,6 +757,15 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 					tasktypeList.add(addTaskTypeTree40);
 					tasktypeList.add(addTaskTypeTree41);
 				}
+				// 如果存在taskTypeId=42 则同时增加手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型(42/43/44)
+				if (tasktypeList.stream().anyMatch(wmTaskTypeTree -> "42".equals(wmTaskTypeTree.getTaskTypeId()))) {
+					WmTaskTypeTree addTaskTypeTree43 = new WmTaskTypeTree();
+					addTaskTypeTree43.setTaskTypeId("43");
+					WmTaskTypeTree addTaskTypeTree44 = new WmTaskTypeTree();
+					addTaskTypeTree44.setTaskTypeId("44");
+					tasktypeList.add(addTaskTypeTree43);
+					tasktypeList.add(addTaskTypeTree44);
+				}
 
 				for (WmTaskTypeTree type : tasktypeList) {
 					WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();
@@ -1363,6 +1372,15 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 					wmScorePackage.getTaskTypeList().add(addTaskTypeTree40);
 					wmScorePackage.getTaskTypeList().add(addTaskTypeTree41);
 				}
+				// 如果存在taskTypeId=42 则同时增加手术跟台-一级/手术跟台-二级/手术跟台-三级任务类型(42/43/44)
+				if (wmScorePackage.getTaskTypeList().stream().anyMatch(wmTaskTypeTree -> "42".equals(wmTaskTypeTree.getTaskTypeId()))) {
+					WmTaskTypeTree addTaskTypeTree43 = new WmTaskTypeTree();
+					addTaskTypeTree43.setTaskTypeId("43");
+					WmTaskTypeTree addTaskTypeTree44 = new WmTaskTypeTree();
+					addTaskTypeTree44.setTaskTypeId("44");
+					wmScorePackage.getTaskTypeList().add(addTaskTypeTree43);
+					wmScorePackage.getTaskTypeList().add(addTaskTypeTree44);
+				}
 
 				for (WmTaskTypeTree type : tasktypeList) {
 					WmScoreTaskType wmScoreTaskType = new WmScoreTaskType();

+ 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();

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

@@ -1070,6 +1070,35 @@ 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);
+					// 设置实际的任务类型
+					wmTaskContent.setTemp30(taskTypeId);
+					wmTask.setTaskTypeId(taskTypeId);
+				}
+
 				log.info("获取任务得分:{}", score);
 
 				if (score < 0) {