|
@@ -32,6 +32,7 @@ import com.qunzhixinxi.hnqz.admin.entity.dto.UnpackDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
|
|
@@ -1847,62 +1848,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
Page<WmScorePackageSettleOutput> settleListPage = wmScorePackageMapper.listPackageSettleList(page, input);
|
|
|
|
|
|
List<WmScorePackageSettleOutput> settleList = settleListPage.getRecords();
|
|
|
- for (WmScorePackageSettleOutput ouPut : settleList) {
|
|
|
- WmScorePackageStatus statusQuery = new WmScorePackageStatus();
|
|
|
- statusQuery.setPackageId(ouPut.getId());
|
|
|
- statusQuery.setStatus("2");
|
|
|
- List<WmScorePackageStatus> statusList = wmScorePackageStatusService.getByPackageId(statusQuery);
|
|
|
- String userNames = statusList.stream()
|
|
|
- .map(WmScorePackageStatus::getUserId)
|
|
|
- .collect(Collectors.joining(","));
|
|
|
- ouPut.setUserNames(userNames);
|
|
|
-
|
|
|
- Set<String> userIds = statusList.stream().map(WmScorePackageStatus::getTaskUserId).collect(Collectors.toSet());
|
|
|
- if (CollUtil.isNotEmpty(userIds)) {
|
|
|
- List<SysUser> users = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
|
|
|
- String userPhones = users.stream().map(SysUser::getUsername).collect(Collectors.joining(","));
|
|
|
- ouPut.setUserPhones(userPhones);
|
|
|
- // 脱敏的身份证号
|
|
|
- String idCardNums = users.stream().map(user -> DesensitizedUtil.idCardNum(user.getIdCardNumber(), 5, 4)).collect(Collectors.joining(","));
|
|
|
- ouPut.setIdCardNums(idCardNums);
|
|
|
- }
|
|
|
- // 查询结算成功时间
|
|
|
- List<WmScorePackageSettleNote> packageSettleNoteList = settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
|
|
|
- .eq(WmScorePackageSettleNote::getPackageId, ouPut.getId()));
|
|
|
- if (CollectionUtil.isNotEmpty(packageSettleNoteList)) {
|
|
|
- WmScorePackageSettleNote settleNote = packageSettleNoteList.get(0);
|
|
|
- LocalDateTime notifyTime = settleNote.getNotifyTime();
|
|
|
- if (notifyTime != null) {
|
|
|
- ouPut.setBelongDate(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(notifyTime));
|
|
|
- }
|
|
|
- if (ouPut.getInvoiceCategory() == null) {
|
|
|
- ouPut.setInvoiceCategory(settleNote.getInvoiceType());
|
|
|
- }
|
|
|
-
|
|
|
- if (ouPut.getSettleAmount() == null) {
|
|
|
- BigDecimal tmp = new BigDecimal("0");
|
|
|
- for (WmScorePackageSettleNote note : packageSettleNoteList) {
|
|
|
- if (null != note.getSettleAmount()) {
|
|
|
- tmp = tmp.add(note.getSettleAmount());
|
|
|
- }
|
|
|
- }
|
|
|
- ouPut.setSettleAmount(tmp);
|
|
|
- }
|
|
|
- if (StringUtils.isBlank(ouPut.getSettleStatus())) {
|
|
|
- ouPut.setSettleStatus(String.valueOf(settleNote.getSettleNoteStatus()));
|
|
|
- }
|
|
|
- ouPut.setSubjectLocation(settleNote.getSubjectLocation());
|
|
|
- ouPut.setSubToGigTime(settleNote.getSubToGigTime());
|
|
|
- ouPut.setActualAmount(settleNote.getActualAmount());
|
|
|
- }
|
|
|
- if (PackageTypeEnum.TYPE1_HCP_PACKAGE.val().equals(ouPut.getPackageType1())) {
|
|
|
- // 如果是患者教育,则转换积分值 '分'->'元'
|
|
|
- WmScorePackage scorePackage = this.getById(ouPut.getId());
|
|
|
- if (scorePackage != null && StringUtils.isNumeric(scorePackage.getUserScore())) {
|
|
|
- ouPut.setScore(String.format("%.2f", Integer.parseInt(scorePackage.getUserScore()) / 100.0));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ this.settleDetail(settleList);
|
|
|
return settleListPage;
|
|
|
}
|
|
|
|
|
@@ -3482,4 +3428,84 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
|
|
|
return packages;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询财务结算复核数据详情
|
|
|
+ *
|
|
|
+ * @param query 查询条件
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<WmScorePackageSettleOutput> pageFinancialReviewDetail(Page<WmScorePackageSettleOutput> page, SettleFinancialReviewVO query) {
|
|
|
+ IPage<WmScorePackageSettleOutput> detailPage = wmScorePackageMapper.pageFinancialReviewDetail(page, query);
|
|
|
+
|
|
|
+ List<WmScorePackageSettleOutput> settleList = detailPage.getRecords();
|
|
|
+ this.settleDetail(settleList);
|
|
|
+
|
|
|
+ return detailPage;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结算数据字段拼接转换
|
|
|
+ *
|
|
|
+ * @param settleList 数据列表
|
|
|
+ */
|
|
|
+ private void settleDetail(List<WmScorePackageSettleOutput> settleList) {
|
|
|
+ for (WmScorePackageSettleOutput ouPut : settleList) {
|
|
|
+ WmScorePackageStatus statusQuery = new WmScorePackageStatus();
|
|
|
+ statusQuery.setPackageId(ouPut.getId());
|
|
|
+ statusQuery.setStatus("2");
|
|
|
+ List<WmScorePackageStatus> statusList = wmScorePackageStatusService.getByPackageId(statusQuery);
|
|
|
+ String userNames = statusList.stream()
|
|
|
+ .map(WmScorePackageStatus::getUserId)
|
|
|
+ .collect(Collectors.joining(","));
|
|
|
+ ouPut.setUserNames(userNames);
|
|
|
+
|
|
|
+ Set<String> userIds = statusList.stream().map(WmScorePackageStatus::getTaskUserId).collect(Collectors.toSet());
|
|
|
+ if (CollUtil.isNotEmpty(userIds)) {
|
|
|
+ List<SysUser> users = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds));
|
|
|
+ String userPhones = users.stream().map(SysUser::getUsername).collect(Collectors.joining(","));
|
|
|
+ ouPut.setUserPhones(userPhones);
|
|
|
+ // 脱敏的身份证号
|
|
|
+ String idCardNums = users.stream().map(user -> DesensitizedUtil.idCardNum(user.getIdCardNumber(), 5, 4)).collect(Collectors.joining(","));
|
|
|
+ ouPut.setIdCardNums(idCardNums);
|
|
|
+ }
|
|
|
+ // 查询结算成功时间
|
|
|
+ List<WmScorePackageSettleNote> packageSettleNoteList = settleNoteMapper.selectList(Wrappers.<WmScorePackageSettleNote>lambdaQuery()
|
|
|
+ .eq(WmScorePackageSettleNote::getPackageId, ouPut.getId()));
|
|
|
+ if (CollectionUtil.isNotEmpty(packageSettleNoteList)) {
|
|
|
+ WmScorePackageSettleNote settleNote = packageSettleNoteList.get(0);
|
|
|
+ LocalDateTime notifyTime = settleNote.getNotifyTime();
|
|
|
+ if (notifyTime != null) {
|
|
|
+ ouPut.setBelongDate(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(notifyTime));
|
|
|
+ }
|
|
|
+ if (ouPut.getInvoiceCategory() == null) {
|
|
|
+ ouPut.setInvoiceCategory(settleNote.getInvoiceType());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ouPut.getSettleAmount() == null) {
|
|
|
+ BigDecimal tmp = new BigDecimal("0");
|
|
|
+ for (WmScorePackageSettleNote note : packageSettleNoteList) {
|
|
|
+ if (null != note.getSettleAmount()) {
|
|
|
+ tmp = tmp.add(note.getSettleAmount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ouPut.setSettleAmount(tmp);
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(ouPut.getSettleStatus())) {
|
|
|
+ ouPut.setSettleStatus(String.valueOf(settleNote.getSettleNoteStatus()));
|
|
|
+ }
|
|
|
+ ouPut.setSubjectLocation(settleNote.getSubjectLocation());
|
|
|
+ ouPut.setSubToGigTime(settleNote.getSubToGigTime());
|
|
|
+ ouPut.setActualAmount(settleNote.getActualAmount());
|
|
|
+ }
|
|
|
+ if (PackageTypeEnum.TYPE1_HCP_PACKAGE.val().equals(ouPut.getPackageType1())) {
|
|
|
+ // 如果是患者教育,则转换积分值 '分'->'元'
|
|
|
+ WmScorePackage scorePackage = this.getById(ouPut.getId());
|
|
|
+ if (scorePackage != null && StringUtils.isNumeric(scorePackage.getUserScore())) {
|
|
|
+ ouPut.setScore(String.format("%.2f", Integer.parseInt(scorePackage.getUserScore()) / 100.0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|