|
@@ -1211,25 +1211,73 @@ public class WmSupervisionManager {
|
|
|
HnqzUser user = SecurityUtils.getUser();
|
|
|
Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
|
|
|
+ // 判断是否要查询指定的代表
|
|
|
+ String memberName = query.getMemberName();
|
|
|
+ List<Integer> userIds1;
|
|
|
+ if (StrUtil.isNotBlank(memberName)) {
|
|
|
+ userIds1 = userService.list(Wrappers.<SysUser>lambdaQuery()
|
|
|
+ .eq(SysUser::getLockFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(SysUser::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .like(SysUser::getRealname, memberName.trim()))
|
|
|
+ .stream()
|
|
|
+ .mapToInt(SysUser::getUserId)
|
|
|
+ .boxed()
|
|
|
+ .sorted()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(userIds1)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ userIds1 = Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 获取药品条件
|
|
|
+ List<Integer> drugtableIds = wmDaDrugEntDrugtableMapper.selectList(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
|
|
|
+ .like(StrUtil.isNotBlank(query.getMahName()), WmDaDrugEntDrugtable::getDrugEntName, query.getMahName())
|
|
|
+ .like(StrUtil.isNotBlank(query.getSkuName()), WmDaDrugEntDrugtable::getDrugnameTy, query.getSkuName()))
|
|
|
+ .stream()
|
|
|
+ .mapToInt(drug -> Integer.parseInt(drug.getId()))
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
// 根据角色判断药品
|
|
|
List<Integer> drugIds;
|
|
|
if (!roles.contains(39) && !roles.contains(37)) {
|
|
|
|
|
|
drugIds = userDrugService.listDrugIdByUserId(user.getId());
|
|
|
|
|
|
+ // 如果有条件参数查询交集
|
|
|
+ drugIds = new ArrayList<>(CollUtil.intersectionDistinct(drugIds, drugtableIds));
|
|
|
+
|
|
|
if (CollUtil.isEmpty(drugIds)) {
|
|
|
log.info("当前操作人没有分配产品");
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
- drugIds = Collections.emptyList();
|
|
|
+ drugIds = CollUtil.isEmpty(drugtableIds) ? Collections.emptyList() : drugtableIds;
|
|
|
}
|
|
|
|
|
|
// 获取积分包
|
|
|
- List<WmScorePackage> packages = packageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .like(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
|
|
|
.in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
- .eq(WmScorePackage::getSendPackageDeptId, query.getDeptId()));
|
|
|
+ .eq(WmScorePackage::getSendPackageDeptId, query.getDeptId());
|
|
|
+
|
|
|
+ LocalDate[] pkgPeriod = query.getPkgPeriod();
|
|
|
+ if (ArrayUtil.isNotEmpty(pkgPeriod)) {
|
|
|
+ queryWrapper.ge(WmScorePackage::getStartTime, pkgPeriod[0]);
|
|
|
+ queryWrapper.le(WmScorePackage::getEndTime, pkgPeriod[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WmScorePackage> packages = packageService.list(queryWrapper);
|
|
|
|
|
|
if (CollUtil.isEmpty(packages)) {
|
|
|
return page;
|
|
@@ -1239,11 +1287,11 @@ public class WmSupervisionManager {
|
|
|
List<Integer> pkgIds = packages.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
|
|
|
// 积分包内已经监督的任务
|
|
|
-
|
|
|
List<WmTaskSupervision> list1 = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
// .in(WmTaskSupervision::getRoleId, visibleRoleIds)
|
|
|
// .eq(WmTaskSupervision::getModifiable, false)
|
|
|
- .in(WmTaskSupervision::getPackageId, pkgIds).orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
+ .in(WmTaskSupervision::getPackageId, pkgIds)
|
|
|
+ .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
|
|
|
List<WmTaskSupervision> list = list1.stream().filter(ts -> !ts.getModifiable()).collect(Collectors.toList());
|
|
|
|
|
@@ -1283,7 +1331,13 @@ public class WmSupervisionManager {
|
|
|
Set<Integer> supTaskIds = collect.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
- taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()),
|
|
|
+ Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .in(CollUtil.isNotEmpty(userIds1), WmTask::getTaskUserId, userIds1)
|
|
|
+ .eq(StrUtil.isNotBlank(query.getTaskTypeId()), WmTask::getTaskTypeId, query.getTaskTypeId())
|
|
|
+ .like(StrUtil.isNotBlank(query.getTaskId()), WmTask::getId, query.getTaskId())
|
|
|
+ .like(StrUtil.isNotBlank(query.getTaskNumber()), WmTask::getTaskNumber, query.getTaskNumber())
|
|
|
+ .in(WmTask::getId, supTaskIds));
|
|
|
}
|
|
|
// 负责人|分管领导|事业部总经理
|
|
|
else {
|
|
@@ -1351,7 +1405,12 @@ public class WmSupervisionManager {
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
- taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .in(CollUtil.isNotEmpty(userIds1), WmTask::getTaskUserId, userIds1)
|
|
|
+ .eq(StrUtil.isNotBlank(query.getTaskTypeId()), WmTask::getTaskTypeId, query.getTaskTypeId())
|
|
|
+ .like(StrUtil.isNotBlank(query.getTaskId()), WmTask::getId, query.getTaskId())
|
|
|
+ .like(StrUtil.isNotBlank(query.getTaskNumber()), WmTask::getTaskNumber, query.getTaskNumber())
|
|
|
+ .in(WmTask::getId, supTaskIds));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1479,18 +1538,19 @@ public class WmSupervisionManager {
|
|
|
/**
|
|
|
* 生成报告pdf
|
|
|
*
|
|
|
- * @param entId 企业ID
|
|
|
- * @param user 操作人
|
|
|
+ * @param entId 企业ID
|
|
|
+ * @param user 操作人
|
|
|
+ * @param period 周期
|
|
|
* @return 本地路径
|
|
|
*/
|
|
|
- public Map<String, String> exportSupervisionReportPDF(Integer entId, HnqzUser user) throws Exception {
|
|
|
+ public Map<String, String> exportSupervisionReportPDF(Integer entId, LocalDate[] period, HnqzUser user) throws Exception {
|
|
|
|
|
|
Map<String, String> envPaths = OsEnvUtils.getEachEnvPaths();
|
|
|
// 生成本地路径
|
|
|
String targetPath = envPaths.get(OsEnvUtils.TargetFile.TEMP.getName()) + DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_PATTERN).format(LocalDateTime.now()) + "_supervision_" + IdUtil.fastSimpleUUID() + ".pdf";
|
|
|
|
|
|
// 封装报告数据
|
|
|
- Object[][] datas = buildSupervisionReportDatas(entId, user);
|
|
|
+ Object[][] datas = buildSupervisionReportDatas(entId, period, user);
|
|
|
|
|
|
PdfUtils.generateSupervisionReport(targetPath, PageSize.A4, true, envPaths.get(OsEnvUtils.TargetFile.FONT.getName()) + "SimSun.ttc", datas);
|
|
|
|
|
@@ -1502,14 +1562,23 @@ public class WmSupervisionManager {
|
|
|
return uploaded;
|
|
|
}
|
|
|
|
|
|
- private Object[][] buildSupervisionReportDatas(Integer entId, HnqzUser user) {
|
|
|
+ private Object[][] buildSupervisionReportDatas(Integer entId, LocalDate[] period, HnqzUser user) {
|
|
|
|
|
|
|
|
|
// 获取企业
|
|
|
SysDept service = deptService.getById(entId);
|
|
|
|
|
|
// 获取服务商下的所有c端包
|
|
|
- List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString()));
|
|
|
+
|
|
|
+ LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString());
|
|
|
+
|
|
|
+ if (ArrayUtil.isNotEmpty(period)) {
|
|
|
+ queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
+ queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
|
|
|
if (CollUtil.isEmpty(pkgs)) {
|
|
|
throw new BizException("当前服务商不存在可用的执行包,无法导出");
|