|
@@ -70,7 +70,6 @@ import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
-import java.time.temporal.TemporalAccessor;
|
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.ExecutionException;
|
|
import java.util.concurrent.ExecutionException;
|
|
@@ -109,6 +108,7 @@ public class WmScorePackageController {
|
|
private final WmDaDrugEntMapper wmDaDrugEntMapper;
|
|
private final WmDaDrugEntMapper wmDaDrugEntMapper;
|
|
private final WmDaAgentMapper wmDaAgentMapper;
|
|
private final WmDaAgentMapper wmDaAgentMapper;
|
|
private final WmTeamService wmTeamService;
|
|
private final WmTeamService wmTeamService;
|
|
|
|
+ private final WmScorePackageSettleNoteMapper settleNoteMapper;
|
|
private final StringRedisTemplate redisTemplate;
|
|
private final StringRedisTemplate redisTemplate;
|
|
|
|
|
|
|
|
|
|
@@ -2630,6 +2630,142 @@ public class WmScorePackageController {
|
|
return R.ok(wmScorePackagePage);
|
|
return R.ok(wmScorePackagePage);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 积分包列表(结算包管理列表、无团队限制)
|
|
|
|
+ *
|
|
|
|
+ * @param packageType1 多个逗号分隔
|
|
|
|
+ * @param acceptUser 接单对象,模糊查询
|
|
|
|
+ */
|
|
|
|
+ @ApiOperation(value = "分页查询", notes = "分页查询")
|
|
|
|
+ @GetMapping("/page-settle-package")
|
|
|
|
+ public R pageSettlePackage(@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,
|
|
|
|
+ @RequestParam(value = "acceptUser", required = false) String acceptUser
|
|
|
|
+ ) {
|
|
|
|
+
|
|
|
|
+ Integer sendDeptId = SecurityUtils.getUser().getDeptId();
|
|
|
|
+ Integer userId = SecurityUtils.getUser().getId();
|
|
|
|
+
|
|
|
|
+ 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::getSendPackageDeptId, 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);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// boolean onePersonScorePackageFlag = packageType1List.contains(PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val())
|
|
|
|
+// && PackageTypeEnum.TYPE2_TASK_PACKAGE.val().equals(String.valueOf(packageType2));
|
|
|
|
+// boolean multiPersonScorePackageFlag = packageType1List.contains(PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val())
|
|
|
|
+// && PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(String.valueOf(packageType2));
|
|
|
|
+// if (onePersonScorePackageFlag || multiPersonScorePackageFlag) {
|
|
|
|
+// // 如果是个人承接-按积分值/多人承接-按积分值,判断当前用户是否配置了团队负责人
|
|
|
|
+// List<WmTeam> teamList = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
|
|
|
|
+// .eq(WmTeam::getDeptId, sendDeptId)
|
|
|
|
+// .eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
|
+// .eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
|
+// .apply("FIND_IN_SET({0}, leader)", String.valueOf(userId)));
|
|
|
|
+// if (CollectionUtil.isNotEmpty(teamList)) {
|
|
|
|
+// // 如果配置了,则只查询所在团队下发的积分包
|
|
|
|
+// List<String> teamIdList = teamList.stream().map(wmTeam -> String.valueOf(wmTeam.getId())).collect(Collectors.toList());
|
|
|
|
+// queryWrapper.in(WmScorePackage::getPackageUserScope, teamIdList);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ Page<WmScorePackage> wmScorePackagePage = null;
|
|
|
|
+ if (StrUtil.isNotBlank(acceptUser)) {
|
|
|
|
+ // 带有接单对象acceptUser模糊查询的查询
|
|
|
|
+ wmScorePackagePage = wmScorePackageMapper.listScorePackage(new Page<>(current, size), queryWrapper.orderByDesc(WmScorePackage::getCreateTime), acceptUser);
|
|
|
|
+ } else {
|
|
|
|
+ wmScorePackagePage = wmScorePackageMapper.selectPage(new Page<>(current, size), queryWrapper
|
|
|
|
+ .orderByDesc(WmScorePackage::getCreateTime));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<WmScorePackage> pageRecords = wmScorePackagePage.getRecords();
|
|
|
|
+
|
|
|
|
+ if (CollUtil.isNotEmpty(pageRecords)) {
|
|
|
|
+// List<Future<WmScorePackage>> futureList = new ArrayList<>(pageRecords.size());
|
|
|
|
+
|
|
|
|
+ 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())) {
|
|
|
|
+ // 如果是患者教育,则转换积分值 '分'-> '元'
|
|
|
|
+ Integer score = scorePackage.getScore();
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// List<WmScorePackage> finalRecords = new ArrayList<>(pageRecords.size());
|
|
|
|
+// try {
|
|
|
|
+// for (Future<WmScorePackage> future : futureList) {
|
|
|
|
+// WmScorePackage wmScorePackage = future.get();
|
|
|
|
+// finalRecords.add(wmScorePackage);
|
|
|
|
+//
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// wmScorePackagePage.setRecords(finalRecords);
|
|
|
|
+// } catch (ExecutionException | InterruptedException e) {
|
|
|
|
+// log.error("获取分页信息失败", e);
|
|
|
|
+// return R.failed("获取分页信息失败");
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return R.ok(wmScorePackagePage);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 根据id查询积分包信息
|
|
* 根据id查询积分包信息
|
|
*
|
|
*
|