浏览代码

Merge branch 'feat-20231205-configurablehospitalvisits'

lixuesong 1 年之前
父节点
当前提交
37a7e70d52

+ 5 - 0
db/v2.0/20231205.sql

@@ -0,0 +1,5 @@
+alter table wm_score_package_settle_note
+    add settle_dept_id int null comment '实际结算企业id';
+
+alter table wm_score_package_settle_note
+    add settle_dept_sub_id int null comment '实际结算企业subId';

+ 25 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsType.java

@@ -235,4 +235,29 @@ public final class UpmsType {
 			return null;
 		}
 	}
+
+	/**
+	 * 模板类型
+	 *
+	 * @author lixuesong
+	 * @date 2023/12/05
+	 */
+	@Getter
+	@AllArgsConstructor
+	public enum TemplateType {
+
+		TEMPLATE1("TEMPLATE1", "模板1"),
+		TEMPLATE2("TEMPLATE2", "模板2");
+
+		/**
+		 * 类型
+		 */
+		@EnumValue
+		private final String type;
+
+		/**
+		 * 描述
+		 */
+		private final String description;
+	}
 }

+ 30 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskTypeTemplateController.java

@@ -1,9 +1,11 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.map.MapUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeTemplate;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.base.BaseEntity;
@@ -83,6 +85,22 @@ public class WmDeptTaskTypeTemplateController {
 		return R.ok(taskTypeTemplate);
 	}
 
+	/**
+	 * 查询指定企业的任务类型模板
+	 *
+	 * @param deptId 部门id
+	 * @param taskTypeId 任务类型id
+	 * @return {@link R}<{@link WmDeptTaskTypeTemplate}> 返回结果
+	 */
+	@GetMapping("/get-template")
+	public R<WmDeptTaskTypeTemplate> getTemplateByTaskTypeId(@RequestParam("deptId") Integer deptId,
+															 @RequestParam("taskTypeId") String taskTypeId) {
+		WmDeptTaskTypeTemplate taskTypeTemplate = wmDeptTaskTypeTemplateService.getOne(Wrappers.<WmDeptTaskTypeTemplate>lambdaQuery()
+				.eq(WmDeptTaskTypeTemplate::getDeptId, deptId)
+				.eq(WmDeptTaskTypeTemplate::getTaskTypeId, taskTypeId));
+		return R.ok(taskTypeTemplate);
+	}
+
 	/**
 	 * 保存
 	 *
@@ -98,6 +116,10 @@ public class WmDeptTaskTypeTemplateController {
 		if (existCount > 0) {
 			return R.failed("任务类型已存在");
 		}
+		if (!UpmsType.TemplateType.TEMPLATE1.equals(wmDeptTaskTypeTemplate.getTemplate())) {
+			// 除模板1外, 其他模板科室数默认为1
+			wmDeptTaskTypeTemplate.setDetail(MapUtil.of("numberLimit", 1));
+		}
 		wmDeptTaskTypeTemplate.setCreateTime(LocalDateTime.now());
 		wmDeptTaskTypeTemplate.setCreateUser(SecurityUtils.getUser().getId());
 		wmDeptTaskTypeTemplate.setUpdateUser(null);
@@ -118,7 +140,14 @@ public class WmDeptTaskTypeTemplateController {
 		WmDeptTaskTypeTemplate update = new WmDeptTaskTypeTemplate();
 		update.setId(wmDeptTaskTypeTemplate.getId());
 		update.setTemplate(wmDeptTaskTypeTemplate.getTemplate());
-		update.setDetail(wmDeptTaskTypeTemplate.getDetail());
+
+		if (!UpmsType.TemplateType.TEMPLATE1.equals(wmDeptTaskTypeTemplate.getTemplate())) {
+			// 除模板1外, 其他模板科室数默认为1
+			update.setDetail(MapUtil.of("numberLimit", 1));
+		} else {
+			update.setDetail(wmDeptTaskTypeTemplate.getDetail());
+		}
+
 		update.setUpdateTime(LocalDateTime.now());
 		update.setUpdateUser(SecurityUtils.getUser().getId());
 		wmDeptTaskTypeTemplateService.updateById(update);

+ 4 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDeptTaskTypeTemplate.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.entity.base.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -24,6 +25,7 @@ import java.util.Map;
 @EqualsAndHashCode(callSuper = true)
 @TableName(value = "wm_dept_task_type_template", autoResultMap = true)
 public class WmDeptTaskTypeTemplate extends Model<WmDeptTaskTypeTemplate> {
+	private static final long serialVersionUID = 592460712418561510L;
 
 	/**
 	 * 主键id
@@ -59,8 +61,8 @@ public class WmDeptTaskTypeTemplate extends Model<WmDeptTaskTypeTemplate> {
 	/**
 	 * 模板
 	 */
-	@NotBlank(message = "模板不能为空", groups = {BaseEntity.Create.class, BaseEntity.Update.class})
-	private String template;
+	@NotNull(message = "模板不能为空", groups = {BaseEntity.Create.class, BaseEntity.Update.class})
+	private UpmsType.TemplateType template;
 
 	/**
 	 * 规则详情

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackageSettleNote.java

@@ -155,6 +155,16 @@ public class WmScorePackageSettleNote extends Model<WmScorePackageSettleNote> {
 	 */
 	private Integer finishTaskFlag;
 
+	/**
+	 * 实际结算企业id
+	 */
+	private Integer settleDeptId;
+
+	/**
+	 * 实际结算企业subId
+	 */
+	private Integer settleDeptSubId;
+
 	/**
 	 * 真实名称
 	 */

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

@@ -748,6 +748,12 @@ public class WmPayOffServiceImpl extends ServiceImpl<WmPayOffMapper, WmPayOff> i
 
 		String subType = String.valueOf(location.getGigType().getCode());
 
+		input.getNotes().forEach(note -> {
+			// 设置实际结算deptId和dept的subId
+			note.setSettleDeptId(operator.getDeptId());
+			note.setSettleDeptSubId(sysDeptSub.getSubId());
+		});
+
 		// 人力家
 		if (SubjectTypeEnum.TYPE_RENLIJIA.getCode().equals(subType)) {
 			return settleByRenLiJia(input, sysDeptSub, operator);

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

@@ -39,6 +39,7 @@ import com.qunzhixinxi.hnqz.admin.enums.PackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
+import com.qunzhixinxi.hnqz.admin.enums.SettleStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.*;
 import com.qunzhixinxi.hnqz.admin.recharge.entity.SysDeptRecharge;
@@ -2468,9 +2469,14 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		WmScorePackageSettleNote note = settleNoteMapper.selectOne(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
 				.eq(WmScorePackageSettleNote::getPackageId, scorePackage.getId()).last("limit 1"));
 
+		scorePackage.setSettleAmount(null);
 		if (note != null) {
 			scorePackage.setNotifyDate(note.getNotifyTime());
 			scorePackage.setSubToGigTime(note.getSubToGigTime());
+			scorePackage.setSettleStatus(note.getSettleNoteStatus());
+			if (SettleStatusEnum.SETTLE_STATUS_SUCCESS.getVal().equals(String.valueOf(note.getSettleNoteStatus()))) {
+				scorePackage.setSettleAmount(note.getSettleAmount());
+			}
 		}
 
 		if (packageType2 == 2) {

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

@@ -670,6 +670,10 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 		log.info("结算明细noteId: {} 开始结算-----------", note.getId());
 		log.info("结算渠道: {} ", note.getSubType());
 
+		// 设置实际结算deptId和dept的subId
+		note.setSettleDeptId(sysUser.getDeptId());
+		note.setSettleDeptSubId(sysDeptSub.getSubId());
+
 		if (SubjectTypeEnum.TYPE_RENLIJIA.getCode().equals(note.getSubType())) {
 			DingConfig config = new DingConfig();
 			config.setAppId(sysDeptSub.getAppId());
@@ -837,6 +841,10 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 			log.info("结算明细noteId: {} 开始结算-----------", note.getId());
 			log.info("结算渠道: {} ", note.getSubType());
 
+			// 设置实际结算deptId和dept的subId
+			note.setSettleDeptId(sysUser.getDeptId());
+			note.setSettleDeptSubId(sysDeptSub.getSubId());
+
 			if (SubjectTypeEnum.TYPE_RENLIJIA.getCode().equals(subType)) {
 				DingConfig config = new DingConfig();
 				config.setAppId(sysDeptSub.getAppId());