Kaynağa Gözat

feat: MAH支付-查询结算列表

李学松 2 yıl önce
ebeveyn
işleme
e56a2af73c

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaAgentController.java

@@ -127,6 +127,7 @@ public class WmDaAgentController {
 		wmDaAgent.setDeptId(SecurityUtils.getUser().getDeptId() + "");
 		WmDaAgent wmDaAgent3 = wmDaAgentMapper.selectDeptId(wmDaAgent);
 		if (wmDaAgent3 != null) {
+			wmDaAgent3.setMahSettleFlag(wmDaAgent3.getMahSettleDeptId() != null);
 			wmDaAgentList.add(wmDaAgent3);
 		}
 		if (wmRelationList.size() > 0) {
@@ -136,6 +137,7 @@ public class WmDaAgentController {
 				WmDaAgent wmDaAgent1 = new WmDaAgent();
 				wmDaAgent1.setDeptId(String.valueOf(id));
 				WmDaAgent wmDaAgent2 = wmDaAgentMapper.selectDeptId(wmDaAgent1);
+				wmDaAgent2.setMahSettleFlag(wmDaAgent2.getMahSettleDeptId() != null);
 				wmDaAgentList.add(wmDaAgent2);
 			}
 		}

+ 19 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmPayOffController.java

@@ -235,6 +235,25 @@ public class WmPayOffController {
 		return R.ok(wmScorePackageService.listPackageSettleList(page, input));
 	}
 
+	/**
+	 * 财务审核页面-用于MAH结算
+	 *
+	 * @param page  分页信息
+	 * @param input 参数
+	 * @return 分页结果
+	 */
+	@ApiOperation(value = "分页查询结算", notes = "分页查询结算")
+	@SysLog("分页查询结算")
+	@GetMapping("/listMahPackageSettleList")
+	public R<?> listMAHPackageSettleList(Page<WmScorePackageSettleOutput> page, WmScorePackageSettleInput input) {
+
+		input.setMahSettleDeptId(SecurityUtils.getUser().getDeptId());
+		input.setPackageFinishStatus("1");
+		input.setTypeid("4");
+		input.setSettleFlag("1");
+		return R.ok(wmScorePackageService.listPackageSettleList(page, input));
+	}
+
 	/**
 	 * 结算包结算导出
 	 *

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

@@ -2973,6 +2973,98 @@ public class WmScorePackageController {
 		return R.ok(wmScorePackagePage);
 	}
 
+	/**
+	 * 积分包列表(结算包管理列表、无团队限制)-用于MAH结算
+	 *
+	 * @param packageType1 多个逗号分隔
+	 */
+	@GetMapping("/page-mah-settle-package")
+	public R pageMahSettlePackage(@RequestParam(value = "current") Integer current,
+							   @RequestParam(value = "size") Integer size,
+							   @RequestParam(value = "packageType1") String packageType1,
+							   @RequestParam(value = "packageType2") Integer packageType2,
+							   @RequestParam(value = "scorePackageName", required = false) String scorePackageName,
+							   @RequestParam(value = "scorePackageStatus", required = false) Integer scorePackageStatus,
+							   @RequestParam(value = "typeid", required = false) String typeId,
+							   @RequestParam(value = "monthStart", required = false) String monthStart,
+							   @RequestParam(value = "monthEnd", required = false) String monthEnd
+	) {
+
+		Integer sendDeptId = SecurityUtils.getUser().getDeptId();
+
+		LocalDateTime start = null;
+		LocalDateTime end = null;
+
+		if (StrUtil.isNotEmpty(monthStart) && StrUtil.isNotEmpty(monthEnd)) {
+			start = LocalDateTime.of(LocalDate.parse(monthStart + "-01", DatePattern.NORM_DATE_FORMATTER), LocalTime.MIN);
+			LocalDate e = LocalDate.parse(monthEnd + "-01", DatePattern.NORM_DATE_FORMATTER);
+			end = LocalDateTime.of(e.with(TemporalAdjusters.lastDayOfMonth()), LocalTime.MAX);
+
+		}
+
+		LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
+				.eq(WmScorePackage::getPackageType2, packageType2)
+				.like(StrUtil.isNotEmpty(scorePackageName), WmScorePackage::getScorePackageName, scorePackageName)
+				.eq(scorePackageStatus != null, WmScorePackage::getScorePackageStatus, scorePackageStatus)
+				.eq(WmScorePackage::getMahSettleDeptId, sendDeptId)
+				.between(start != null && end != null, WmScorePackage::getCreateTime, start, end);
+
+		List<String> packageType1List = StrUtil.split(packageType1, StrUtil.COMMA);
+		if (StrUtil.contains(packageType1, StrUtil.COMMA)) {
+			queryWrapper.in(WmScorePackage::getPackageType1, packageType1List);
+		} else {
+			queryWrapper.eq(WmScorePackage::getPackageType1, packageType1);
+		}
+
+
+		if (StringUtil.isEmpty(typeId)) {
+			queryWrapper.in(WmScorePackage::getTypeid, "3", "4");
+		} else {
+			List<String> split = StrUtil.split(typeId, StrUtil.COMMA);
+			queryWrapper.in(WmScorePackage::getTypeid, split);
+		}
+
+		Page<WmScorePackage> wmScorePackagePage = wmScorePackageMapper.selectPage(new Page<>(current, size), queryWrapper
+				.orderByDesc(WmScorePackage::getCreateTime));
+
+		List<WmScorePackage> pageRecords = wmScorePackagePage.getRecords();
+
+		if (CollUtil.isNotEmpty(pageRecords)) {
+
+			for (WmScorePackage scorePackage : pageRecords) {
+				if (packageType2 == 2) {
+
+					int wsNum = settleNoteMapper.selectCount(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
+							.eq(WmScorePackageSettleNote::getPackageId, scorePackage.getId())
+							.in(WmScorePackageSettleNote::getSettleNoteStatus, 2, 9));
+					int asNum = settleNoteMapper.selectCount(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
+							.eq(WmScorePackageSettleNote::getPackageId, scorePackage.getId())
+							.eq(WmScorePackageSettleNote::getSettleNoteStatus, 1));
+					scorePackage.setWsTaskNum(wsNum);
+					scorePackage.setAsTaskNum(asNum);
+
+				}
+
+				if (PackageTypeEnum.TYPE1_HCP_PACKAGE.getName().equals(scorePackage.getPackageType1())) {
+					// 如果是患者教育,则转换积分值 '分'-> '元'
+					String userScore = scorePackage.getUserScore();
+					if (org.apache.commons.lang3.StringUtils.isNumeric(userScore)) {
+						scorePackage.setUserScore(String.format("%.2f", Integer.parseInt(userScore) / 100.0));
+					}
+				}
+
+				List<WmScoreTaskType> taskTypeList = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(scorePackage.getId());
+				if (CollUtil.isNotEmpty(taskTypeList)) {
+					String taskTypes = taskTypeList.stream().map(
+							WmScoreTaskType::getTaskTypeName).collect(Collectors.joining(","));
+					scorePackage.setTaskTypes(taskTypes);
+				}
+			}
+		}
+
+		return R.ok(wmScorePackagePage);
+	}
+
 	/**
 	 * 根据id查询积分包信息
 	 *

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1485,6 +1485,9 @@
 		left join wm_score_package_status ps on p.id = ps.package_id
 		left join sys_user su on ps.user_id = su.user_id
 		<where>
+			<if test="query.mahSettleDeptId != null">
+				AND p.mah_settle_dept_id = #{query.mahSettleDeptId}
+			</if>
 			<if test="query.sendPackageDeptId != null and query.sendPackageDeptId != ''">
 				AND p.send_package_dept_id= #{query.sendPackageDeptId}
 			</if>