|
@@ -89,1853 +89,2336 @@ import java.util.stream.Collectors;
|
|
|
@AllArgsConstructor
|
|
|
public class WmSupervisionManager {
|
|
|
|
|
|
- private static final LocalDate SEASON1_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 4, 1);
|
|
|
- private static final LocalDate SEASON2_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 7, 1);
|
|
|
- private static final LocalDate SEASON3_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 10, 1);
|
|
|
- private static final LocalDate SEASON4_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 1, 1);
|
|
|
-
|
|
|
-
|
|
|
- private final WmPackageSupervisionService packageSupervisionService;
|
|
|
- private final WmTaskSupervisionService taskSupervisionService;
|
|
|
- private final WmScorePackageStatusService packageStatusService;
|
|
|
- private final WmScorePackageService packageService;
|
|
|
- private final WmTaskService taskService;
|
|
|
- private final SysDeptService deptService;
|
|
|
- private final SysUserService userService;
|
|
|
- private final SysEnterpriseAreaService enterpriseAreaService;
|
|
|
- private final WmRoleSupervisionWarnRuleService warnRuleService;
|
|
|
- private final SysRoleService roleService;
|
|
|
- private final WmWarnUserRelationService warnUserRelationService;
|
|
|
- private final WmRoleSupervisionWarnService roleSupervisionWarnService;
|
|
|
- private final SysUserRoleService userRoleService;
|
|
|
- private final SysUserDrugService userDrugService;
|
|
|
- private final WmTaskSupervisionAdviceService taskSupervisionAdviceService;
|
|
|
- private final SysFileService fileService;
|
|
|
- private final WmTaskTypeService taskTypeService;
|
|
|
- private final WmDaDrugEntDrugtableMapper wmDaDrugEntDrugtableMapper;
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取监督分页
|
|
|
- *
|
|
|
- * @param query 查询条件
|
|
|
- * @param operator 操作人
|
|
|
- * @return 分页结果
|
|
|
- */
|
|
|
- public Page<Map<String, Object>> pagePkg(WmSupervisionDto.OnPkgPage query, HnqzUser operator) {
|
|
|
-
|
|
|
- Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
-
|
|
|
- List<Integer> drugIds;
|
|
|
-
|
|
|
- if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
-
|
|
|
- drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(drugIds)) {
|
|
|
- log.info("当前操作人没有分配产品");
|
|
|
- return page;
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- drugIds = Collections.emptyList();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // 筛查区域和服务商名称
|
|
|
- List<Long> areaCode = query.getAreaCode();
|
|
|
- List<Long> entIds;
|
|
|
- if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
- entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
- if (CollUtil.isEmpty(entIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
- } else {
|
|
|
- entIds = Collections.emptyList();
|
|
|
- }
|
|
|
-
|
|
|
- String entName = query.getEntName();
|
|
|
- Set<Integer> finalEntIds = new HashSet<>();
|
|
|
- if (CharSequenceUtil.isNotBlank(entName)) {
|
|
|
- List<SysDept> enterprises = deptService.list(Wrappers.<SysDept>lambdaQuery().like(SysDept::getName, entName).in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
- List<Integer> deptIds = enterprises.stream().mapToInt(SysDept::getDeptId).boxed().distinct().collect(Collectors.toList());
|
|
|
- if (CollUtil.isEmpty(deptIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
- finalEntIds.addAll(deptIds);
|
|
|
- } else {
|
|
|
- finalEntIds.addAll(entIds.stream().map(Long::intValue).collect(Collectors.toSet()));
|
|
|
- }
|
|
|
-
|
|
|
- packageService.pageForSupervision(page, query.getPkgName(), query.getSupervision(), finalEntIds, drugIds);
|
|
|
-
|
|
|
- List<Map<String, Object>> records = page.getRecords();
|
|
|
- if (CollUtil.isNotEmpty(records)) {
|
|
|
-
|
|
|
- // 获取服务商信息
|
|
|
- Set<Integer> deptId = records.stream().mapToInt(map -> Integer.parseInt((String) map.get("deptId"))).boxed().collect(Collectors.toSet());
|
|
|
- Map<Integer, String> deptIdToDeptNameMap = deptService.listByIds(deptId).stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
|
|
|
-
|
|
|
- // 获取监督信息 && 任务监督
|
|
|
- Set<Integer> pkgIds = records.stream().filter(map -> Objects.nonNull(map.get("supFlag"))).mapToInt(map -> (Integer) map.get("id")).boxed().collect(Collectors.toSet());
|
|
|
-
|
|
|
- Map<Integer, String> pkgIdToCreatorNameMap;
|
|
|
- Map<Integer, WmPackageSupervision> pkgIdToSupervisionMap;
|
|
|
- Map<Integer, Map<String, String>> taskSupStatMap = new HashMap<>(pkgIds.size());
|
|
|
- if (CollUtil.isNotEmpty(pkgIds)) {
|
|
|
-
|
|
|
- Map<Integer, List<WmTaskSupervision>> pkgIdToTaskSupMap = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, pkgIds)).stream().collect(Collectors.groupingBy(WmTaskSupervision::getPackageId));
|
|
|
-
|
|
|
- Map<String, List<WmTask>> pkgIdToTaskMap = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds)).stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
-
|
|
|
-
|
|
|
- pkgIds.forEach(pid -> {
|
|
|
- Map<String, String> stat = new HashMap<>(2);
|
|
|
-
|
|
|
- List<WmTaskSupervision> wmTaskSupervisions = pkgIdToTaskSupMap.get(pid);
|
|
|
- stat.put("supTotal", CollUtil.isNotEmpty(wmTaskSupervisions) ? String.valueOf(wmTaskSupervisions.stream().map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size()) : "0");
|
|
|
-
|
|
|
- List<WmTask> total = pkgIdToTaskMap.get(pid.toString());
|
|
|
- stat.put("total", CollUtil.isNotEmpty(total) ? String.valueOf(total.size()) : "0");
|
|
|
- taskSupStatMap.put(pid, stat);
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- List<WmPackageSupervision> supervisions = packageSupervisionService.list(Wrappers.<WmPackageSupervision>lambdaQuery().in(WmPackageSupervision::getPackageId, pkgIds));
|
|
|
-
|
|
|
- pkgIdToSupervisionMap = supervisions.stream().collect(Collectors.toMap(WmPackageSupervision::getPackageId, Function.identity()));
|
|
|
-
|
|
|
- Map<Integer, String> pkgIdAndSupCreateorUsernameMap = supervisions.stream().collect(Collectors.toMap(WmPackageSupervision::getPackageId, WmPackageSupervision::getCreateBy, (v1, v2) -> v2));
|
|
|
- Collection<String> values = pkgIdAndSupCreateorUsernameMap.values();
|
|
|
- if (CollUtil.isNotEmpty(values)) {
|
|
|
- Map<String, String> userToNameMap = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, values)).stream().collect(Collectors.toMap(SysUser::getUsername, SysUser::getRealname));
|
|
|
- pkgIdToCreatorNameMap = new HashMap<>(pkgIdAndSupCreateorUsernameMap.size());
|
|
|
- for (Map.Entry<Integer, String> entry : pkgIdAndSupCreateorUsernameMap.entrySet()) {
|
|
|
- pkgIdToCreatorNameMap.put(entry.getKey(), userToNameMap.get(entry.getValue()));
|
|
|
- }
|
|
|
- } else {
|
|
|
- pkgIdToCreatorNameMap = Collections.emptyMap();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
- pkgIdToCreatorNameMap = Collections.emptyMap();
|
|
|
- pkgIdToSupervisionMap = Collections.emptyMap();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // 添加参数
|
|
|
- records.forEach(map -> {
|
|
|
- map.put("deptName", deptIdToDeptNameMap.get(Integer.parseInt((String) map.get("deptId"))));
|
|
|
- Integer pkgId = (Integer) map.get("id");
|
|
|
- map.put("supervisor", pkgIdToCreatorNameMap.get(pkgId));
|
|
|
- map.put("supervision", pkgIdToSupervisionMap.get(pkgId));
|
|
|
- map.put("taskSupStat", taskSupStatMap.get(pkgId));
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- page.setRecords(records);
|
|
|
-
|
|
|
- }
|
|
|
+ private static final LocalDate SEASON1_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 4, 1);
|
|
|
+ private static final LocalDate SEASON2_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 7, 1);
|
|
|
+ private static final LocalDate SEASON3_BEGIN_DATE =
|
|
|
+ LocalDate.of(LocalDate.now().getYear(), 10, 1);
|
|
|
+ private static final LocalDate SEASON4_BEGIN_DATE = LocalDate.of(LocalDate.now().getYear(), 1, 1);
|
|
|
+
|
|
|
+ private final WmPackageSupervisionService packageSupervisionService;
|
|
|
+ private final WmTaskSupervisionService taskSupervisionService;
|
|
|
+ private final WmScorePackageStatusService packageStatusService;
|
|
|
+ private final WmScorePackageService packageService;
|
|
|
+ private final WmTaskService taskService;
|
|
|
+ private final SysDeptService deptService;
|
|
|
+ private final SysUserService userService;
|
|
|
+ private final SysEnterpriseAreaService enterpriseAreaService;
|
|
|
+ private final WmRoleSupervisionWarnRuleService warnRuleService;
|
|
|
+ private final SysRoleService roleService;
|
|
|
+ private final WmWarnUserRelationService warnUserRelationService;
|
|
|
+ private final WmRoleSupervisionWarnService roleSupervisionWarnService;
|
|
|
+ private final SysUserRoleService userRoleService;
|
|
|
+ private final SysUserDrugService userDrugService;
|
|
|
+ private final WmTaskSupervisionAdviceService taskSupervisionAdviceService;
|
|
|
+ private final SysFileService fileService;
|
|
|
+ private final WmTaskTypeService taskTypeService;
|
|
|
+ private final WmDaDrugEntDrugtableMapper wmDaDrugEntDrugtableMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取监督分页
|
|
|
+ *
|
|
|
+ * @param query 查询条件
|
|
|
+ * @param operator 操作人
|
|
|
+ * @return 分页结果
|
|
|
+ */
|
|
|
+ public Page<Map<String, Object>> pagePkg(WmSupervisionDto.OnPkgPage query, HnqzUser operator) {
|
|
|
+
|
|
|
+ Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+
|
|
|
+ List<Integer> drugIds;
|
|
|
+
|
|
|
+ if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
+
|
|
|
+ drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(drugIds)) {
|
|
|
+ log.info("当前操作人没有分配产品");
|
|
|
return page;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * 执行包监督
|
|
|
- *
|
|
|
- * @param resource 监督信息
|
|
|
- * @param user 操作人
|
|
|
- * @return 监督结果
|
|
|
- */
|
|
|
- public Boolean createPkgSupervision(WmSupervisionDto.OnPkgSupervision resource, HnqzUser user) {
|
|
|
-
|
|
|
- // 校验周期
|
|
|
- if (!this.checkDate(100)) {
|
|
|
- throw new BizException("不在监督周期");
|
|
|
- }
|
|
|
-
|
|
|
- // 校验是否已经完成了监督
|
|
|
- boolean checked = packageSupervisionService.hasChecked(resource.getPkgId());
|
|
|
- if (checked) {
|
|
|
- throw new BizException("执行包存在监督记录,请勿重复操作");
|
|
|
- }
|
|
|
-
|
|
|
- packageSupervisionService.createPkgSupervision(resource, user);
|
|
|
-
|
|
|
- // 更新监督结果
|
|
|
- packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
-
|
|
|
- return Boolean.TRUE;
|
|
|
+ } else {
|
|
|
+ drugIds = Collections.emptyList();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 周期
|
|
|
- *
|
|
|
- * @param period 周期时长
|
|
|
- * @return 校验结果
|
|
|
- */
|
|
|
- private boolean checkDate(int period) {
|
|
|
-
|
|
|
- LocalDate today = LocalDate.now();
|
|
|
-
|
|
|
- return (today.isAfter(SEASON1_BEGIN_DATE) && today.isBefore(SEASON1_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON2_BEGIN_DATE) && today.isBefore(SEASON2_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON3_BEGIN_DATE) && today.isBefore(SEASON3_BEGIN_DATE.plusDays(period))) || (today.isAfter(SEASON4_BEGIN_DATE) && today.isBefore(SEASON4_BEGIN_DATE.plusDays(period)));
|
|
|
+ // 筛查区域和服务商名称
|
|
|
+ List<Long> areaCode = query.getAreaCode();
|
|
|
+ List<Long> entIds;
|
|
|
+ if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
+ entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
+ if (CollUtil.isEmpty(entIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ entIds = Collections.emptyList();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取积分包监督结果
|
|
|
- *
|
|
|
- * @param supId 监督记录
|
|
|
- * @return 监督结果
|
|
|
- */
|
|
|
- public WmPackageSupervision getPkgSupervision(Integer supId) {
|
|
|
- return packageSupervisionService.getById(supId);
|
|
|
+ String entName = query.getEntName();
|
|
|
+ Set<Integer> finalEntIds = new HashSet<>();
|
|
|
+ if (CharSequenceUtil.isNotBlank(entName)) {
|
|
|
+ List<SysDept> enterprises =
|
|
|
+ deptService.list(
|
|
|
+ Wrappers.<SysDept>lambdaQuery()
|
|
|
+ .like(SysDept::getName, entName)
|
|
|
+ .in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
+ List<Integer> deptIds =
|
|
|
+ enterprises.stream()
|
|
|
+ .mapToInt(SysDept::getDeptId)
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollUtil.isEmpty(deptIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ finalEntIds.addAll(deptIds);
|
|
|
+ } else {
|
|
|
+ finalEntIds.addAll(entIds.stream().map(Long::intValue).collect(Collectors.toSet()));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 查询审查计划
|
|
|
- *
|
|
|
- * @param all 是否全部
|
|
|
- * @param season 季节
|
|
|
- * @param operator 操作人
|
|
|
- * @return 统计结果
|
|
|
- */
|
|
|
- public Map<String, String> pkgSupervisionStat(Boolean all, Integer season, HnqzUser operator) {
|
|
|
-
|
|
|
- LocalDate today = LocalDate.now();
|
|
|
- int month = today.getMonthValue();
|
|
|
- int year = today.getYear();
|
|
|
- int startMonth;
|
|
|
-
|
|
|
- if (month <= 3) {
|
|
|
- startMonth = 10;
|
|
|
- year -= 1;
|
|
|
- } else if (month <= 6) {
|
|
|
- startMonth = 1;
|
|
|
- } else if (month <= 9) {
|
|
|
- startMonth = 4;
|
|
|
- } else {
|
|
|
- startMonth = 7;
|
|
|
- }
|
|
|
+ packageService.pageForSupervision(
|
|
|
+ page, query.getPkgName(), query.getSupervision(), finalEntIds, drugIds);
|
|
|
+
|
|
|
+ List<Map<String, Object>> records = page.getRecords();
|
|
|
+ if (CollUtil.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ // 获取服务商信息
|
|
|
+ Set<Integer> deptId =
|
|
|
+ records.stream()
|
|
|
+ .mapToInt(map -> Integer.parseInt((String) map.get("deptId")))
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ Map<Integer, String> deptIdToDeptNameMap =
|
|
|
+ deptService.listByIds(deptId).stream()
|
|
|
+ .collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
|
|
|
+
|
|
|
+ // 获取监督信息 && 任务监督
|
|
|
+ Set<Integer> pkgIds =
|
|
|
+ records.stream()
|
|
|
+ .filter(map -> Objects.nonNull(map.get("supFlag")))
|
|
|
+ .mapToInt(map -> (Integer) map.get("id"))
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<Integer, String> pkgIdToCreatorNameMap;
|
|
|
+ Map<Integer, WmPackageSupervision> pkgIdToSupervisionMap;
|
|
|
+ Map<Integer, Map<String, String>> taskSupStatMap = new HashMap<>(pkgIds.size());
|
|
|
+ if (CollUtil.isNotEmpty(pkgIds)) {
|
|
|
+
|
|
|
+ Map<Integer, List<WmTaskSupervision>> pkgIdToTaskSupMap =
|
|
|
+ taskSupervisionService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ .in(WmTaskSupervision::getPackageId, pkgIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.groupingBy(WmTaskSupervision::getPackageId));
|
|
|
|
|
|
- LocalDateTime startTime = LocalDateTime.of(year, startMonth, 1, 0, 0, 0);
|
|
|
- LocalDateTime entTime = startTime.plusMonths(3).minusSeconds(1);
|
|
|
-
|
|
|
- log.info("查询周期{} to {}", startTime, entTime);
|
|
|
-
|
|
|
- // 获取领取记录
|
|
|
- int total = 0;
|
|
|
- int allOperatorSubtotal = 0;
|
|
|
- int curOperatorSubtotal = 0;
|
|
|
- double allOperatorSupRate = 0;
|
|
|
- double curOperatorSupRate = 0;
|
|
|
- List<WmScorePackageStatus> statuses = packageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery().between(WmScorePackageStatus::getCreateTime, startTime, entTime));
|
|
|
- if (CollUtil.isNotEmpty(statuses)) {
|
|
|
- Set<Integer> pkgIds = statuses.stream().map(WmScorePackageStatus::getPackageId).mapToInt(Integer::valueOf).boxed().collect(Collectors.toSet());
|
|
|
- Map<Boolean, List<WmPackageSupervision>> collect = packageSupervisionService.list(Wrappers.<WmPackageSupervision>lambdaQuery().in(WmPackageSupervision::getPackageId, pkgIds)).stream().collect(Collectors.partitioningBy(sup -> CharSequenceUtil.equals(sup.getCreateBy(), operator.getUsername())));
|
|
|
- total = pkgIds.size();
|
|
|
- allOperatorSubtotal = collect.get(true).size() + collect.get(false).size();
|
|
|
- curOperatorSubtotal = collect.get(true).size();
|
|
|
- allOperatorSupRate = (double) allOperatorSubtotal / total;
|
|
|
- curOperatorSupRate = (double) curOperatorSubtotal / total;
|
|
|
+ Map<String, List<WmTask>> pkgIdToTaskMap =
|
|
|
+ taskService
|
|
|
+ .list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
+
|
|
|
+ pkgIds.forEach(
|
|
|
+ pid -> {
|
|
|
+ Map<String, String> stat = new HashMap<>(2);
|
|
|
+
|
|
|
+ List<WmTaskSupervision> wmTaskSupervisions = pkgIdToTaskSupMap.get(pid);
|
|
|
+ stat.put(
|
|
|
+ "supTotal",
|
|
|
+ CollUtil.isNotEmpty(wmTaskSupervisions)
|
|
|
+ ? String.valueOf(
|
|
|
+ wmTaskSupervisions.stream()
|
|
|
+ .map(WmTaskSupervision::getTaskId)
|
|
|
+ .collect(Collectors.toSet())
|
|
|
+ .size())
|
|
|
+ : "0");
|
|
|
+
|
|
|
+ List<WmTask> total = pkgIdToTaskMap.get(pid.toString());
|
|
|
+ stat.put("total", CollUtil.isNotEmpty(total) ? String.valueOf(total.size()) : "0");
|
|
|
+ taskSupStatMap.put(pid, stat);
|
|
|
+ });
|
|
|
|
|
|
+ List<WmPackageSupervision> supervisions =
|
|
|
+ packageSupervisionService.list(
|
|
|
+ Wrappers.<WmPackageSupervision>lambdaQuery()
|
|
|
+ .in(WmPackageSupervision::getPackageId, pkgIds));
|
|
|
+
|
|
|
+ pkgIdToSupervisionMap =
|
|
|
+ supervisions.stream()
|
|
|
+ .collect(Collectors.toMap(WmPackageSupervision::getPackageId, Function.identity()));
|
|
|
+
|
|
|
+ Map<Integer, String> pkgIdAndSupCreateorUsernameMap =
|
|
|
+ supervisions.stream()
|
|
|
+ .collect(
|
|
|
+ Collectors.toMap(
|
|
|
+ WmPackageSupervision::getPackageId,
|
|
|
+ WmPackageSupervision::getCreateBy,
|
|
|
+ (v1, v2) -> v2));
|
|
|
+ Collection<String> values = pkgIdAndSupCreateorUsernameMap.values();
|
|
|
+ if (CollUtil.isNotEmpty(values)) {
|
|
|
+ Map<String, String> userToNameMap =
|
|
|
+ userService
|
|
|
+ .list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, values))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(SysUser::getUsername, SysUser::getRealname));
|
|
|
+ pkgIdToCreatorNameMap = new HashMap<>(pkgIdAndSupCreateorUsernameMap.size());
|
|
|
+ for (Map.Entry<Integer, String> entry : pkgIdAndSupCreateorUsernameMap.entrySet()) {
|
|
|
+ pkgIdToCreatorNameMap.put(entry.getKey(), userToNameMap.get(entry.getValue()));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ pkgIdToCreatorNameMap = Collections.emptyMap();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- Map<String, String> stat = new HashMap<>(5);
|
|
|
- stat.put("total", String.valueOf(total));
|
|
|
- stat.put("allOperatorSubtotal", String.valueOf(allOperatorSubtotal));
|
|
|
- stat.put("curOperatorSubtotal", String.valueOf(curOperatorSubtotal));
|
|
|
- stat.put("allOperatorSupRate", String.valueOf(allOperatorSupRate));
|
|
|
- stat.put("curOperatorSupRate", String.valueOf(curOperatorSupRate));
|
|
|
-
|
|
|
-
|
|
|
- return stat;
|
|
|
+ } else {
|
|
|
+ pkgIdToCreatorNameMap = Collections.emptyMap();
|
|
|
+ pkgIdToSupervisionMap = Collections.emptyMap();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加参数
|
|
|
+ records.forEach(
|
|
|
+ map -> {
|
|
|
+ map.put(
|
|
|
+ "deptName", deptIdToDeptNameMap.get(Integer.parseInt((String) map.get("deptId"))));
|
|
|
+ Integer pkgId = (Integer) map.get("id");
|
|
|
+ map.put("supervisor", pkgIdToCreatorNameMap.get(pkgId));
|
|
|
+ map.put("supervision", pkgIdToSupervisionMap.get(pkgId));
|
|
|
+ map.put("taskSupStat", taskSupStatMap.get(pkgId));
|
|
|
+ });
|
|
|
+
|
|
|
+ page.setRecords(records);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 服务任务监督
|
|
|
- *
|
|
|
- * @param resource 监督信息
|
|
|
- * @param user 操作人
|
|
|
- * @return 操作结果
|
|
|
- */
|
|
|
- public Boolean createTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser user) {
|
|
|
- taskSupervisionService.createTaskSupervision(resource, user);
|
|
|
-
|
|
|
- // 更新监督结果
|
|
|
- packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
-
|
|
|
- return true;
|
|
|
-
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 执行包监督
|
|
|
+ *
|
|
|
+ * @param resource 监督信息
|
|
|
+ * @param user 操作人
|
|
|
+ * @return 监督结果
|
|
|
+ */
|
|
|
+ public Boolean createPkgSupervision(WmSupervisionDto.OnPkgSupervision resource, HnqzUser user) {
|
|
|
+
|
|
|
+ // 校验周期
|
|
|
+ if (!this.checkDate(100)) {
|
|
|
+ throw new BizException("不在监督周期");
|
|
|
}
|
|
|
|
|
|
- // /**
|
|
|
- // * 获取可以监督的任务
|
|
|
- // *
|
|
|
- // * @param pkgId 执行包ID
|
|
|
- // * @return 任务列表
|
|
|
- // */
|
|
|
- // public List<Map<String, Object>> listAvailableTask(Integer pkgId) {
|
|
|
- //
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // Set<Integer> supTaskIds = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId)).stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- // List<WmTask> wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
|
|
|
- // List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
- // return maps;
|
|
|
- // }
|
|
|
-
|
|
|
- // /**
|
|
|
- // * 获取可以监督的任务
|
|
|
- // *
|
|
|
- // * @param pkgId 执行包ID
|
|
|
- // * @return 任务列表
|
|
|
- // */
|
|
|
- // public List<Map<String, Object>> listAvailableTask(Integer pkgId, Boolean review) {
|
|
|
- //
|
|
|
- // String username = SecurityUtils.getUser().getUsername();
|
|
|
- // List<Integer> roles = SecurityUtils.getRoles();
|
|
|
- //
|
|
|
- // // 监督员
|
|
|
- // if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
- // List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- // .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
- // .orderByDesc(WmTaskSupervision::getCreateTime)
|
|
|
- // );
|
|
|
- //
|
|
|
- //
|
|
|
- // // 复查
|
|
|
- // List<WmTask> wmTasks;
|
|
|
- // if (review) {
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username, ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- // wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() : taskService.listByIds(supTaskIds);
|
|
|
- // } else {
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // Set<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- // wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // List<Map<String, Object>> maps = CollUtil.isEmpty(wmTasks) ? Collections.emptyList() : taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
- //
|
|
|
- // Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
- // Map<String, SysUser> userMap;
|
|
|
- // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
- // Map<Integer, String> roleMap;
|
|
|
- // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
- // List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
- // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
|
|
|
- // Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
- // List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
- // userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
- // Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
- // roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
|
|
|
- // } else {
|
|
|
- // userMap = Collections.emptyMap();
|
|
|
- // userRoleMap = Collections.emptyMap();
|
|
|
- // roleMap = Collections.emptyMap();
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
- // maps.forEach(m -> {
|
|
|
- //
|
|
|
- // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
- //
|
|
|
- // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
- // m.put("supervision", wmTaskSupervisions);
|
|
|
- //
|
|
|
- // List<String> msgs = new ArrayList<>(4);
|
|
|
- // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
- //
|
|
|
- // msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
- // .map(ts -> {
|
|
|
- // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
- // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
- // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
- // String realName = user.getRealname();
|
|
|
- // String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
- // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
- // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
|
|
|
- //
|
|
|
- // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
|
|
|
- //
|
|
|
- // }).collect(Collectors.toList());
|
|
|
- //
|
|
|
- //
|
|
|
- // }
|
|
|
- // m.put("supervisionMessages", msgs);
|
|
|
- // m.put("review", review);
|
|
|
- //
|
|
|
- // });
|
|
|
- //
|
|
|
- // return maps;
|
|
|
- // }
|
|
|
- // // 服务商
|
|
|
- // else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- // // .eq(WmTaskSupervision::getSupervisionState, UpmsState.TaskSupervisionState.PASSED)
|
|
|
- // .eq(WmTaskSupervision::getPackageId, pkgId).orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
- //
|
|
|
- // if (CollUtil.isEmpty(list)) {
|
|
|
- // return Collections.emptyList();
|
|
|
- // }
|
|
|
- //
|
|
|
- // Set<Integer> supTaskIds = list.stream().filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- //
|
|
|
- // if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
- // return Collections.emptyList();
|
|
|
- // }
|
|
|
- //
|
|
|
- // List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
- // List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
|
|
|
- //
|
|
|
- // Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
- // Map<String, SysUser> userMap;
|
|
|
- // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
- // Map<Integer, String> roleMap;
|
|
|
- // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
- // List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
- // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
|
|
|
- // Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
- // List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
- // userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
- // Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
- // roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
|
|
|
- // } else {
|
|
|
- // userMap = Collections.emptyMap();
|
|
|
- // userRoleMap = Collections.emptyMap();
|
|
|
- // roleMap = Collections.emptyMap();
|
|
|
- // }
|
|
|
- //
|
|
|
- // Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
- // maps.forEach(m -> {
|
|
|
- //
|
|
|
- // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
- //
|
|
|
- // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
- // m.put("supervision", wmTaskSupervisions);
|
|
|
- //
|
|
|
- // List<String> msgs = new ArrayList<>(4);
|
|
|
- // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
- //
|
|
|
- // msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
- // .map(ts -> {
|
|
|
- // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
- // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
- // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
- // String realName = user.getRealname();
|
|
|
- // String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
- // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
- // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
|
|
|
- //
|
|
|
- // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
|
|
|
- //
|
|
|
- // }).collect(Collectors.toList());
|
|
|
- //
|
|
|
- //
|
|
|
- // }
|
|
|
- // m.put("supervisionMessages", msgs);
|
|
|
- // m.put("review", review);
|
|
|
- //
|
|
|
- // });
|
|
|
- //
|
|
|
- // return maps;
|
|
|
- // }
|
|
|
- // // 负责人|分管领导|事业部总经理
|
|
|
- // else {
|
|
|
- //
|
|
|
- //
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- // .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
- // .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
- //
|
|
|
- //
|
|
|
- // List<WmTask> wmTasks;
|
|
|
- // if (review) {
|
|
|
- // // 获取当前积分包已经监督过的任务ID
|
|
|
- // Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username, ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- // wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() : taskService.listByIds(supTaskIds);
|
|
|
- // } else {
|
|
|
- // Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
|
|
|
- // .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState, Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
- //
|
|
|
- //
|
|
|
- // Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
|
|
|
- // Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
|
|
|
- // Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
|
|
|
- // Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
|
|
|
- // Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
- //
|
|
|
- // // 负责人
|
|
|
- // List<Integer> supTaskIds;
|
|
|
- // if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
- //
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
- //
|
|
|
- // }
|
|
|
- // // 分管领导
|
|
|
- // else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
- //
|
|
|
- // }
|
|
|
- // // 事业部总经理
|
|
|
- // else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
- // } else {
|
|
|
- // throw new BizException("无监督权限");
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
- // return Collections.emptyList();
|
|
|
- // }
|
|
|
- //
|
|
|
- // wmTasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
- //
|
|
|
- // Map<Integer, List<WmTaskSupervision>> collect = list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
- //
|
|
|
- // Set<String> createdBy = list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
- // Map<String, SysUser> userMap;
|
|
|
- // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
- // Map<Integer, String> roleMap;
|
|
|
- // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
- // List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
- // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity()));
|
|
|
- // Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
- // List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
- // userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
- // Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
- // roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
|
|
|
- // } else {
|
|
|
- // userMap = Collections.emptyMap();
|
|
|
- // userRoleMap = Collections.emptyMap();
|
|
|
- // roleMap = Collections.emptyMap();
|
|
|
- // }
|
|
|
- //
|
|
|
- // maps.forEach(m -> {
|
|
|
- //
|
|
|
- // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
- //
|
|
|
- // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
- // m.put("supervision", wmTaskSupervisions);
|
|
|
- //
|
|
|
- // List<String> msgs = new ArrayList<>(4);
|
|
|
- // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
- //
|
|
|
- // msgs = wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
- // .map(ts -> {
|
|
|
- // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
- // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
- // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
- // String realName = user.getRealname();
|
|
|
- // String date = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
- // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
- // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " : ts.getRemarks();
|
|
|
- //
|
|
|
- // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
|
|
|
- //
|
|
|
- // }).collect(Collectors.toList());
|
|
|
- //
|
|
|
- //
|
|
|
- // }
|
|
|
- // m.put("supervisionMessages", msgs);
|
|
|
- // m.put("review", review);
|
|
|
- //
|
|
|
- // });
|
|
|
- //
|
|
|
- // return maps;
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取警告分页
|
|
|
- *
|
|
|
- * @param query 查询条件
|
|
|
- * @return 分页结果
|
|
|
- */
|
|
|
- public Page<Map<String, Object>> pageWarnRule(WmSupervisionDto.OnWarnRulePage query) {
|
|
|
-
|
|
|
- Page<WmRoleSupervisionWarnRule> page = warnRuleService.page(new Page<>(query.getCurrent(), query.getSize()));
|
|
|
-
|
|
|
- Page<Map<String, Object>> res = new Page<>();
|
|
|
- res.setTotal(page.getTotal());
|
|
|
- res.setCurrent(page.getCurrent());
|
|
|
- res.setSize(page.getSize());
|
|
|
-
|
|
|
- List<WmRoleSupervisionWarnRule> records = page.getRecords();
|
|
|
- if (CollUtil.isNotEmpty(records)) {
|
|
|
-
|
|
|
- Set<Integer> roleIds = records.stream().mapToInt(WmRoleSupervisionWarnRule::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
-
|
|
|
- Map<Integer, SysRole> idToRoleMap = roleService.listByIds(roleIds).stream().collect(Collectors.toMap(SysRole::getRoleId, Function.identity()));
|
|
|
-
|
|
|
- List<Map<String, Object>> collect = records.stream().map(rule -> {
|
|
|
- Map<String, Object> map = BeanUtil.copyProperties(rule, Map.class);
|
|
|
- SysRole role = idToRoleMap.get(rule.getRoleId());
|
|
|
- map.put("role", role);
|
|
|
- return map;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
- res.setRecords(collect);
|
|
|
- } else {
|
|
|
- res.setRecords(Collections.emptyList());
|
|
|
- }
|
|
|
-
|
|
|
- return res;
|
|
|
+ // 校验是否已经完成了监督
|
|
|
+ boolean checked = packageSupervisionService.hasChecked(resource.getPkgId());
|
|
|
+ if (checked) {
|
|
|
+ throw new BizException("执行包存在监督记录,请勿重复操作");
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /**
|
|
|
- * 创建预警规则
|
|
|
- *
|
|
|
- * @param resource 规则信息
|
|
|
- * @param user 创建人
|
|
|
- * @return 创建结果
|
|
|
- */
|
|
|
- public Boolean createWarnRule(WmSupervisionDto.OnWarnRulCreate resource, HnqzUser user) {
|
|
|
-
|
|
|
- boolean checked = warnRuleService.hasType(resource.getWarnType(), resource.getRoleId());
|
|
|
-
|
|
|
- if (checked) {
|
|
|
- throw new BizException("类型已经存在, 请勿重新添加");
|
|
|
- }
|
|
|
-
|
|
|
- return warnRuleService.createWarnRule(resource, user);
|
|
|
+ packageSupervisionService.createPkgSupervision(resource, user);
|
|
|
+
|
|
|
+ // 更新监督结果
|
|
|
+ packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
+
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 周期
|
|
|
+ *
|
|
|
+ * @param period 周期时长
|
|
|
+ * @return 校验结果
|
|
|
+ */
|
|
|
+ private boolean checkDate(int period) {
|
|
|
+
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+
|
|
|
+ return (today.isAfter(SEASON1_BEGIN_DATE)
|
|
|
+ && today.isBefore(SEASON1_BEGIN_DATE.plusDays(period)))
|
|
|
+ || (today.isAfter(SEASON2_BEGIN_DATE)
|
|
|
+ && today.isBefore(SEASON2_BEGIN_DATE.plusDays(period)))
|
|
|
+ || (today.isAfter(SEASON3_BEGIN_DATE)
|
|
|
+ && today.isBefore(SEASON3_BEGIN_DATE.plusDays(period)))
|
|
|
+ || (today.isAfter(SEASON4_BEGIN_DATE)
|
|
|
+ && today.isBefore(SEASON4_BEGIN_DATE.plusDays(period)));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取积分包监督结果
|
|
|
+ *
|
|
|
+ * @param supId 监督记录
|
|
|
+ * @return 监督结果
|
|
|
+ */
|
|
|
+ public WmPackageSupervision getPkgSupervision(Integer supId) {
|
|
|
+ return packageSupervisionService.getById(supId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询审查计划
|
|
|
+ *
|
|
|
+ * @param all 是否全部
|
|
|
+ * @param season 季节
|
|
|
+ * @param operator 操作人
|
|
|
+ * @return 统计结果
|
|
|
+ */
|
|
|
+ public Map<String, String> pkgSupervisionStat(Boolean all, Integer season, HnqzUser operator) {
|
|
|
+
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ int month = today.getMonthValue();
|
|
|
+ int year = today.getYear();
|
|
|
+ int startMonth;
|
|
|
+
|
|
|
+ if (month <= 3) {
|
|
|
+ startMonth = 10;
|
|
|
+ year -= 1;
|
|
|
+ } else if (month <= 6) {
|
|
|
+ startMonth = 1;
|
|
|
+ } else if (month <= 9) {
|
|
|
+ startMonth = 4;
|
|
|
+ } else {
|
|
|
+ startMonth = 7;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 修改预警规则
|
|
|
- *
|
|
|
- * @param resource 规则信息
|
|
|
- * @param user 创建人
|
|
|
- * @return 修改结果
|
|
|
- */
|
|
|
- public Boolean updateWarnRule(WmSupervisionDto.OnWarnRulUpdate resource, HnqzUser user) {
|
|
|
- return warnRuleService.updateWarnRule(resource, user);
|
|
|
+ LocalDateTime startTime = LocalDateTime.of(year, startMonth, 1, 0, 0, 0);
|
|
|
+ LocalDateTime entTime = startTime.plusMonths(3).minusSeconds(1);
|
|
|
+
|
|
|
+ log.info("查询周期{} to {}", startTime, entTime);
|
|
|
+
|
|
|
+ // 获取领取记录
|
|
|
+ int total = 0;
|
|
|
+ int allOperatorSubtotal = 0;
|
|
|
+ int curOperatorSubtotal = 0;
|
|
|
+ double allOperatorSupRate = 0;
|
|
|
+ double curOperatorSupRate = 0;
|
|
|
+ List<WmScorePackageStatus> statuses =
|
|
|
+ packageStatusService.list(
|
|
|
+ Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
+ .between(WmScorePackageStatus::getCreateTime, startTime, entTime));
|
|
|
+ if (CollUtil.isNotEmpty(statuses)) {
|
|
|
+ Set<Integer> pkgIds =
|
|
|
+ statuses.stream()
|
|
|
+ .map(WmScorePackageStatus::getPackageId)
|
|
|
+ .mapToInt(Integer::valueOf)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ Map<Boolean, List<WmPackageSupervision>> collect =
|
|
|
+ packageSupervisionService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmPackageSupervision>lambdaQuery()
|
|
|
+ .in(WmPackageSupervision::getPackageId, pkgIds))
|
|
|
+ .stream()
|
|
|
+ .collect(
|
|
|
+ Collectors.partitioningBy(
|
|
|
+ sup -> CharSequenceUtil.equals(sup.getCreateBy(), operator.getUsername())));
|
|
|
+ total = pkgIds.size();
|
|
|
+ allOperatorSubtotal = collect.get(true).size() + collect.get(false).size();
|
|
|
+ curOperatorSubtotal = collect.get(true).size();
|
|
|
+ allOperatorSupRate = (double) allOperatorSubtotal / total;
|
|
|
+ curOperatorSupRate = (double) curOperatorSubtotal / total;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取警告分页
|
|
|
- *
|
|
|
- * @param query 查询条件
|
|
|
- * @param user 查询人
|
|
|
- * @return 操作结果
|
|
|
- */
|
|
|
- public Page<Map<String, Object>> pageRoleSupervisionWarn(WmSupervisionDto.OnWarnPage query, HnqzUser user) {
|
|
|
-
|
|
|
-
|
|
|
- Set<Integer> roleIds = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, user.getId())).stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
-
|
|
|
- Page<WmRoleSupervisionWarn> page = roleSupervisionWarnService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmRoleSupervisionWarn>lambdaQuery().in(CollUtil.isNotEmpty(roleIds), WmRoleSupervisionWarn::getRoleId, roleIds).orderByDesc(WmRoleSupervisionWarn::getCreateTime));
|
|
|
-
|
|
|
- List<WmRoleSupervisionWarn> warns = page.getRecords();
|
|
|
+ Map<String, String> stat = new HashMap<>(5);
|
|
|
+ stat.put("total", String.valueOf(total));
|
|
|
+ stat.put("allOperatorSubtotal", String.valueOf(allOperatorSubtotal));
|
|
|
+ stat.put("curOperatorSubtotal", String.valueOf(curOperatorSubtotal));
|
|
|
+ stat.put("allOperatorSupRate", String.valueOf(allOperatorSupRate));
|
|
|
+ stat.put("curOperatorSupRate", String.valueOf(curOperatorSupRate));
|
|
|
+
|
|
|
+ return stat;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 服务任务监督
|
|
|
+ *
|
|
|
+ * @param resource 监督信息
|
|
|
+ * @param user 操作人
|
|
|
+ * @return 操作结果
|
|
|
+ */
|
|
|
+ public Boolean createTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser user) {
|
|
|
+ taskSupervisionService.createTaskSupervision(resource, user);
|
|
|
+
|
|
|
+ // 更新监督结果
|
|
|
+ packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // /**
|
|
|
+ // * 获取可以监督的任务
|
|
|
+ // *
|
|
|
+ // * @param pkgId 执行包ID
|
|
|
+ // * @return 任务列表
|
|
|
+ // */
|
|
|
+ // public List<Map<String, Object>> listAvailableTask(Integer pkgId) {
|
|
|
+ //
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // Set<Integer> supTaskIds =
|
|
|
+ // taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkgId)).stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ // List<WmTask> wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
|
|
|
+ // List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
+ // return maps;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // /**
|
|
|
+ // * 获取可以监督的任务
|
|
|
+ // *
|
|
|
+ // * @param pkgId 执行包ID
|
|
|
+ // * @return 任务列表
|
|
|
+ // */
|
|
|
+ // public List<Map<String, Object>> listAvailableTask(Integer pkgId, Boolean review) {
|
|
|
+ //
|
|
|
+ // String username = SecurityUtils.getUser().getUsername();
|
|
|
+ // List<Integer> roles = SecurityUtils.getRoles();
|
|
|
+ //
|
|
|
+ // // 监督员
|
|
|
+ // if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
+ // List<WmTaskSupervision> list =
|
|
|
+ // taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ // .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
+ // .orderByDesc(WmTaskSupervision::getCreateTime)
|
|
|
+ // );
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 复查
|
|
|
+ // List<WmTask> wmTasks;
|
|
|
+ // if (review) {
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username,
|
|
|
+ // ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ // wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() :
|
|
|
+ // taskService.listByIds(supTaskIds);
|
|
|
+ // } else {
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // Set<Integer> supTaskIds =
|
|
|
+ // list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ // wmTasks = taskService.listAvailableTaskForSupervision(pkgId, supTaskIds);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // List<Map<String, Object>> maps = CollUtil.isEmpty(wmTasks) ? Collections.emptyList() :
|
|
|
+ // taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
+ //
|
|
|
+ // Set<String> createdBy =
|
|
|
+ // list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
+ // Map<String, SysUser> userMap;
|
|
|
+ // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
+ // Map<Integer, String> roleMap;
|
|
|
+ // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
+ // List<SysUser> users =
|
|
|
+ // userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
+ // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername,
|
|
|
+ // Function.identity()));
|
|
|
+ // Set<Integer> userIds =
|
|
|
+ // users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
+ // List<SysUserRole> userRoles =
|
|
|
+ // userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
+ // userRoleMap =
|
|
|
+ // userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
+ // Set<Integer> roleId =
|
|
|
+ // userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
+ // roleMap =
|
|
|
+ // roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId,
|
|
|
+ // SysRole::getRoleName));
|
|
|
+ // } else {
|
|
|
+ // userMap = Collections.emptyMap();
|
|
|
+ // userRoleMap = Collections.emptyMap();
|
|
|
+ // roleMap = Collections.emptyMap();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // Map<Integer, List<WmTaskSupervision>> collect =
|
|
|
+ // list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
+ // maps.forEach(m -> {
|
|
|
+ //
|
|
|
+ // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
+ //
|
|
|
+ // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
+ // m.put("supervision", wmTaskSupervisions);
|
|
|
+ //
|
|
|
+ // List<String> msgs = new ArrayList<>(4);
|
|
|
+ // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
+ //
|
|
|
+ // msgs =
|
|
|
+ // wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
+ // .map(ts -> {
|
|
|
+ // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
+ // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
+ // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
+ // String realName = user.getRealname();
|
|
|
+ // String date =
|
|
|
+ // DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
+ // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
+ // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " :
|
|
|
+ // ts.getRemarks();
|
|
|
+ //
|
|
|
+ // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName,
|
|
|
+ // realName, resultMsg, remarks, date);
|
|
|
+ //
|
|
|
+ // }).collect(Collectors.toList());
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // m.put("supervisionMessages", msgs);
|
|
|
+ // m.put("review", review);
|
|
|
+ //
|
|
|
+ // });
|
|
|
+ //
|
|
|
+ // return maps;
|
|
|
+ // }
|
|
|
+ // // 服务商
|
|
|
+ // else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // List<WmTaskSupervision> list =
|
|
|
+ // taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ // // .eq(WmTaskSupervision::getSupervisionState,
|
|
|
+ // UpmsState.TaskSupervisionState.PASSED)
|
|
|
+ // .eq(WmTaskSupervision::getPackageId,
|
|
|
+ // pkgId).orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
+ //
|
|
|
+ // if (CollUtil.isEmpty(list)) {
|
|
|
+ // return Collections.emptyList();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // Set<Integer> supTaskIds = list.stream().filter(ts ->
|
|
|
+ // UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ //
|
|
|
+ // if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ // return Collections.emptyList();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId,
|
|
|
+ // supTaskIds));
|
|
|
+ // List<Map<String, Object>> maps = taskService.listTaskInfo(tasks, pkgId.toString());
|
|
|
+ //
|
|
|
+ // Set<String> createdBy =
|
|
|
+ // list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
+ // Map<String, SysUser> userMap;
|
|
|
+ // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
+ // Map<Integer, String> roleMap;
|
|
|
+ // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
+ // List<SysUser> users =
|
|
|
+ // userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
+ // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername,
|
|
|
+ // Function.identity()));
|
|
|
+ // Set<Integer> userIds =
|
|
|
+ // users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
+ // List<SysUserRole> userRoles =
|
|
|
+ // userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
+ // userRoleMap =
|
|
|
+ // userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
+ // Set<Integer> roleId =
|
|
|
+ // userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
+ // roleMap =
|
|
|
+ // roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId,
|
|
|
+ // SysRole::getRoleName));
|
|
|
+ // } else {
|
|
|
+ // userMap = Collections.emptyMap();
|
|
|
+ // userRoleMap = Collections.emptyMap();
|
|
|
+ // roleMap = Collections.emptyMap();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // Map<Integer, List<WmTaskSupervision>> collect =
|
|
|
+ // list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
+ // maps.forEach(m -> {
|
|
|
+ //
|
|
|
+ // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
+ //
|
|
|
+ // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
+ // m.put("supervision", wmTaskSupervisions);
|
|
|
+ //
|
|
|
+ // List<String> msgs = new ArrayList<>(4);
|
|
|
+ // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
+ //
|
|
|
+ // msgs =
|
|
|
+ // wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
+ // .map(ts -> {
|
|
|
+ // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
+ // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
+ // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
+ // String realName = user.getRealname();
|
|
|
+ // String date =
|
|
|
+ // DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
+ // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
+ // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " :
|
|
|
+ // ts.getRemarks();
|
|
|
+ //
|
|
|
+ // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName,
|
|
|
+ // realName, resultMsg, remarks, date);
|
|
|
+ //
|
|
|
+ // }).collect(Collectors.toList());
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // m.put("supervisionMessages", msgs);
|
|
|
+ // m.put("review", review);
|
|
|
+ //
|
|
|
+ // });
|
|
|
+ //
|
|
|
+ // return maps;
|
|
|
+ // }
|
|
|
+ // // 负责人|分管领导|事业部总经理
|
|
|
+ // else {
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // List<WmTaskSupervision> list =
|
|
|
+ // taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ // .eq(WmTaskSupervision::getPackageId, pkgId)
|
|
|
+ // .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // List<WmTask> wmTasks;
|
|
|
+ // if (review) {
|
|
|
+ // // 获取当前积分包已经监督过的任务ID
|
|
|
+ // Set<Integer> supTaskIds = list.stream().filter(ts -> StrUtil.equals(username,
|
|
|
+ // ts.getCreateBy())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ // wmTasks = CollUtil.isEmpty(supTaskIds) ? Collections.emptyList() :
|
|
|
+ // taskService.listByIds(supTaskIds);
|
|
|
+ // } else {
|
|
|
+ // Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
|
|
|
+ // .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState,
|
|
|
+ // Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
|
|
|
+ // Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
|
|
|
+ // Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
|
|
|
+ // Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
|
|
|
+ // Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
+ //
|
|
|
+ // // 负责人
|
|
|
+ // List<Integer> supTaskIds;
|
|
|
+ // if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
+ //
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // // 分管领导
|
|
|
+ // else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // // 事业部总经理
|
|
|
+ // else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
+ // } else {
|
|
|
+ // throw new BizException("无监督权限");
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ // return Collections.emptyList();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // wmTasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId,
|
|
|
+ // supTaskIds));
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // List<Map<String, Object>> maps = taskService.listTaskInfo(wmTasks, pkgId.toString());
|
|
|
+ //
|
|
|
+ // Map<Integer, List<WmTaskSupervision>> collect =
|
|
|
+ // list.stream().collect(Collectors.groupingBy(WmTaskSupervision::getTaskId));
|
|
|
+ //
|
|
|
+ // Set<String> createdBy =
|
|
|
+ // list.stream().map(WmTaskSupervision::getCreateBy).collect(Collectors.toSet());
|
|
|
+ // Map<String, SysUser> userMap;
|
|
|
+ // Map<Integer, List<SysUserRole>> userRoleMap;
|
|
|
+ // Map<Integer, String> roleMap;
|
|
|
+ // if (CollUtil.isNotEmpty(createdBy)) {
|
|
|
+ // List<SysUser> users =
|
|
|
+ // userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUsername, createdBy));
|
|
|
+ // userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername,
|
|
|
+ // Function.identity()));
|
|
|
+ // Set<Integer> userIds =
|
|
|
+ // users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
+ // List<SysUserRole> userRoles =
|
|
|
+ // userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
+ // userRoleMap =
|
|
|
+ // userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
+ // Set<Integer> roleId =
|
|
|
+ // userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
+ // roleMap =
|
|
|
+ // roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId,
|
|
|
+ // SysRole::getRoleName));
|
|
|
+ // } else {
|
|
|
+ // userMap = Collections.emptyMap();
|
|
|
+ // userRoleMap = Collections.emptyMap();
|
|
|
+ // roleMap = Collections.emptyMap();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // maps.forEach(m -> {
|
|
|
+ //
|
|
|
+ // Integer id = Integer.valueOf(m.get("id").toString());
|
|
|
+ //
|
|
|
+ // List<WmTaskSupervision> wmTaskSupervisions = collect.get(id);
|
|
|
+ // m.put("supervision", wmTaskSupervisions);
|
|
|
+ //
|
|
|
+ // List<String> msgs = new ArrayList<>(4);
|
|
|
+ // if (CollUtil.isNotEmpty(wmTaskSupervisions)) {
|
|
|
+ //
|
|
|
+ // msgs =
|
|
|
+ // wmTaskSupervisions.stream().sorted(Comparator.comparingInt(WmTaskSupervision::getTaskId).reversed())
|
|
|
+ // .map(ts -> {
|
|
|
+ // SysUser user = userMap.get(ts.getCreateBy());
|
|
|
+ // SysUserRole sysUserRole = userRoleMap.get(user.getUserId()).get(0);
|
|
|
+ // String roleName = roleMap.get(sysUserRole.getRoleId());
|
|
|
+ // String realName = user.getRealname();
|
|
|
+ // String date =
|
|
|
+ // DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(ts.getCreateTime());
|
|
|
+ // String resultMsg = ts.getSupervisionResult() ? " 通过 " : " 不通过 ";
|
|
|
+ // String remarks = StrUtil.isBlank(ts.getRemarks()) ? " " :
|
|
|
+ // ts.getRemarks();
|
|
|
+ //
|
|
|
+ // return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName,
|
|
|
+ // realName, resultMsg, remarks, date);
|
|
|
+ //
|
|
|
+ // }).collect(Collectors.toList());
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // m.put("supervisionMessages", msgs);
|
|
|
+ // m.put("review", review);
|
|
|
+ //
|
|
|
+ // });
|
|
|
+ //
|
|
|
+ // return maps;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取警告分页
|
|
|
+ *
|
|
|
+ * @param query 查询条件
|
|
|
+ * @return 分页结果
|
|
|
+ */
|
|
|
+ public Page<Map<String, Object>> pageWarnRule(WmSupervisionDto.OnWarnRulePage query) {
|
|
|
+
|
|
|
+ Page<WmRoleSupervisionWarnRule> page =
|
|
|
+ warnRuleService.page(new Page<>(query.getCurrent(), query.getSize()));
|
|
|
+
|
|
|
+ Page<Map<String, Object>> res = new Page<>();
|
|
|
+ res.setTotal(page.getTotal());
|
|
|
+ res.setCurrent(page.getCurrent());
|
|
|
+ res.setSize(page.getSize());
|
|
|
+
|
|
|
+ List<WmRoleSupervisionWarnRule> records = page.getRecords();
|
|
|
+ if (CollUtil.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ Set<Integer> roleIds =
|
|
|
+ records.stream()
|
|
|
+ .mapToInt(WmRoleSupervisionWarnRule::getRoleId)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<Integer, SysRole> idToRoleMap =
|
|
|
+ roleService.listByIds(roleIds).stream()
|
|
|
+ .collect(Collectors.toMap(SysRole::getRoleId, Function.identity()));
|
|
|
+
|
|
|
+ List<Map<String, Object>> collect =
|
|
|
+ records.stream()
|
|
|
+ .map(
|
|
|
+ rule -> {
|
|
|
+ Map<String, Object> map = BeanUtil.copyProperties(rule, Map.class);
|
|
|
+ SysRole role = idToRoleMap.get(rule.getRoleId());
|
|
|
+ map.put("role", role);
|
|
|
+ return map;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ res.setRecords(collect);
|
|
|
+ } else {
|
|
|
+ res.setRecords(Collections.emptyList());
|
|
|
+ }
|
|
|
|
|
|
- List<Map<String, Object>> resList;
|
|
|
- if (CollUtil.isNotEmpty(warns)) {
|
|
|
- Set<Integer> warnIds = warns.stream().mapToInt(WmRoleSupervisionWarn::getWarnId).boxed().collect(Collectors.toSet());
|
|
|
- Set<Integer> collect = warnUserRelationService.list(Wrappers.<WmWarnUserRelation>lambdaQuery().eq(WmWarnUserRelation::getUserId, user.getId()).in(WmWarnUserRelation::getWarnId, warnIds)).stream().mapToInt(WmWarnUserRelation::getWarnId).boxed().collect(Collectors.toSet());
|
|
|
+ return res;
|
|
|
+ }
|
|
|
|
|
|
- resList = warns.stream().map(warn -> {
|
|
|
- Map<String, Object> map = BeanUtil.copyProperties(warn, Map.class);
|
|
|
- map.put("read", collect.contains(warn.getWarnId()));
|
|
|
- map.put("targetInfo", "xxxxx");
|
|
|
- return map;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ /**
|
|
|
+ * 创建预警规则
|
|
|
+ *
|
|
|
+ * @param resource 规则信息
|
|
|
+ * @param user 创建人
|
|
|
+ * @return 创建结果
|
|
|
+ */
|
|
|
+ public Boolean createWarnRule(WmSupervisionDto.OnWarnRulCreate resource, HnqzUser user) {
|
|
|
|
|
|
- } else {
|
|
|
- resList = Collections.emptyList();
|
|
|
- }
|
|
|
+ boolean checked = warnRuleService.hasType(resource.getWarnType(), resource.getRoleId());
|
|
|
|
|
|
- Page<Map<String, Object>> res = new Page<>();
|
|
|
- res.setTotal(page.getTotal());
|
|
|
- res.setCurrent(page.getCurrent());
|
|
|
- res.setSize(page.getSize());
|
|
|
- res.setRecords(resList);
|
|
|
- return res;
|
|
|
+ if (checked) {
|
|
|
+ throw new BizException("类型已经存在, 请勿重新添加");
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 警告信息
|
|
|
- *
|
|
|
- * @param resource 警告信息
|
|
|
- * @param user 阅读人
|
|
|
- * @return 阅读结果
|
|
|
- */
|
|
|
- public Boolean readWarn(WmSupervisionDto.OnWarnCreate resource, HnqzUser user) {
|
|
|
-
|
|
|
- boolean read = warnUserRelationService.hasRead(resource.getWarnId(), user.getId());
|
|
|
- if (read) {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- return warnUserRelationService.read(resource, user);
|
|
|
+ return warnRuleService.createWarnRule(resource, user);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改预警规则
|
|
|
+ *
|
|
|
+ * @param resource 规则信息
|
|
|
+ * @param user 创建人
|
|
|
+ * @return 修改结果
|
|
|
+ */
|
|
|
+ public Boolean updateWarnRule(WmSupervisionDto.OnWarnRulUpdate resource, HnqzUser user) {
|
|
|
+ return warnRuleService.updateWarnRule(resource, user);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取警告分页
|
|
|
+ *
|
|
|
+ * @param query 查询条件
|
|
|
+ * @param user 查询人
|
|
|
+ * @return 操作结果
|
|
|
+ */
|
|
|
+ public Page<Map<String, Object>> pageRoleSupervisionWarn(
|
|
|
+ WmSupervisionDto.OnWarnPage query, HnqzUser user) {
|
|
|
+
|
|
|
+ Set<Integer> roleIds =
|
|
|
+ userRoleService
|
|
|
+ .list(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, user.getId()))
|
|
|
+ .stream()
|
|
|
+ .mapToInt(SysUserRole::getRoleId)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Page<WmRoleSupervisionWarn> page =
|
|
|
+ roleSupervisionWarnService.page(
|
|
|
+ new Page<>(query.getCurrent(), query.getSize()),
|
|
|
+ Wrappers.<WmRoleSupervisionWarn>lambdaQuery()
|
|
|
+ .in(CollUtil.isNotEmpty(roleIds), WmRoleSupervisionWarn::getRoleId, roleIds)
|
|
|
+ .orderByDesc(WmRoleSupervisionWarn::getCreateTime));
|
|
|
+
|
|
|
+ List<WmRoleSupervisionWarn> warns = page.getRecords();
|
|
|
+
|
|
|
+ List<Map<String, Object>> resList;
|
|
|
+ if (CollUtil.isNotEmpty(warns)) {
|
|
|
+ Set<Integer> warnIds =
|
|
|
+ warns.stream()
|
|
|
+ .mapToInt(WmRoleSupervisionWarn::getWarnId)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ Set<Integer> collect =
|
|
|
+ warnUserRelationService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmWarnUserRelation>lambdaQuery()
|
|
|
+ .eq(WmWarnUserRelation::getUserId, user.getId())
|
|
|
+ .in(WmWarnUserRelation::getWarnId, warnIds))
|
|
|
+ .stream()
|
|
|
+ .mapToInt(WmWarnUserRelation::getWarnId)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ resList =
|
|
|
+ warns.stream()
|
|
|
+ .map(
|
|
|
+ warn -> {
|
|
|
+ Map<String, Object> map = BeanUtil.copyProperties(warn, Map.class);
|
|
|
+ map.put("read", collect.contains(warn.getWarnId()));
|
|
|
+ map.put("targetInfo", "xxxxx");
|
|
|
+ return map;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ } else {
|
|
|
+ resList = Collections.emptyList();
|
|
|
}
|
|
|
|
|
|
- public String getCurrentPkgTaskSupResult(Integer pkg, HnqzUser user) {
|
|
|
-
|
|
|
- WmScorePackage scorePackage = packageService.getById(pkg.toString());
|
|
|
-
|
|
|
- List<WmTaskSupervision> list = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkg));
|
|
|
-
|
|
|
- int taskCount = taskService.count(Wrappers.<WmTask>lambdaQuery().eq(WmTask::getTaskStatus, "3").eq(WmTask::getScorePackageId, pkg.toString()));
|
|
|
-
|
|
|
-
|
|
|
- String msg = "积分包【" + scorePackage.getScorePackageName() + "】中共有审核通过的服务" + taskCount + "条,监督员共监督" + list.size() + "条,监督占比为" + String.format("%.2f", (list.size() * 100.0f / taskCount)) + "%";
|
|
|
-
|
|
|
-
|
|
|
- return msg;
|
|
|
+ Page<Map<String, Object>> res = new Page<>();
|
|
|
+ res.setTotal(page.getTotal());
|
|
|
+ res.setCurrent(page.getCurrent());
|
|
|
+ res.setSize(page.getSize());
|
|
|
+ res.setRecords(resList);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 警告信息
|
|
|
+ *
|
|
|
+ * @param resource 警告信息
|
|
|
+ * @param user 阅读人
|
|
|
+ * @return 阅读结果
|
|
|
+ */
|
|
|
+ public Boolean readWarn(WmSupervisionDto.OnWarnCreate resource, HnqzUser user) {
|
|
|
+
|
|
|
+ boolean read = warnUserRelationService.hasRead(resource.getWarnId(), user.getId());
|
|
|
+ if (read) {
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public Boolean checkPkgSupervision(WmSupervisionDto.OnPkgSupervisionCheck resource, HnqzUser user) {
|
|
|
-
|
|
|
- Integer supervisionId = resource.getSupervisionId();
|
|
|
-
|
|
|
- WmPackageSupervision supervision = packageSupervisionService.getById(supervisionId);
|
|
|
-
|
|
|
- if (resource.getSupervision()) {
|
|
|
-
|
|
|
- UpmsState.PackageSupervisionState state;
|
|
|
- switch (supervision.getSupervisionState()) {
|
|
|
- case INIT:
|
|
|
- state = UpmsState.PackageSupervisionState.CKT1;
|
|
|
- break;
|
|
|
- case CKT1:
|
|
|
- state = UpmsState.PackageSupervisionState.CKT2;
|
|
|
- break;
|
|
|
- case CKT2:
|
|
|
- state = UpmsState.PackageSupervisionState.PASSED;
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("监督状态不正确,不能操作");
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- String remarks = resource.getRemarks();
|
|
|
- if (StrUtil.isNotBlank(remarks)) {
|
|
|
- supervision.setRemarks(resource.getRemarks() + ";" + supervision.getRemarks());
|
|
|
- }
|
|
|
- supervision.setUpdateBy(user.getUsername());
|
|
|
- supervision.setUpdateTime(LocalDateTime.now());
|
|
|
- supervision.setSupervisionState(state);
|
|
|
- packageSupervisionService.updateById(supervision);
|
|
|
-
|
|
|
- } else {
|
|
|
- supervision.setSupervisionResult(false);
|
|
|
- supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
|
|
|
- supervision.setUpdateBy(user.getUsername());
|
|
|
- supervision.setUpdateTime(LocalDateTime.now());
|
|
|
- supervision.setSupervisionState(UpmsState.PackageSupervisionState.REJECTED);
|
|
|
- packageSupervisionService.updateById(supervision);
|
|
|
-
|
|
|
- // 如果审核拒绝 任务监督信息全部放弃 重新审核
|
|
|
- taskSupervisionService.remove(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, supervision.getPackageId()).eq(WmTaskSupervision::getCreateBy, supervision.getCreateBy()));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return true;
|
|
|
+ return warnUserRelationService.read(resource, user);
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getCurrentPkgTaskSupResult(Integer pkg, HnqzUser user) {
|
|
|
+
|
|
|
+ WmScorePackage scorePackage = packageService.getById(pkg.toString());
|
|
|
+
|
|
|
+ List<WmTaskSupervision> list =
|
|
|
+ taskSupervisionService.list(
|
|
|
+ Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getPackageId, pkg));
|
|
|
+
|
|
|
+ int taskCount =
|
|
|
+ taskService.count(
|
|
|
+ Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getTaskStatus, "3")
|
|
|
+ .eq(WmTask::getScorePackageId, pkg.toString()));
|
|
|
+
|
|
|
+ String msg =
|
|
|
+ "积分包【"
|
|
|
+ + scorePackage.getScorePackageName()
|
|
|
+ + "】中共有审核通过的服务"
|
|
|
+ + taskCount
|
|
|
+ + "条,监督员共监督"
|
|
|
+ + list.size()
|
|
|
+ + "条,监督占比为"
|
|
|
+ + String.format("%.2f", (list.size() * 100.0f / taskCount))
|
|
|
+ + "%";
|
|
|
+
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean checkPkgSupervision(
|
|
|
+ WmSupervisionDto.OnPkgSupervisionCheck resource, HnqzUser user) {
|
|
|
+
|
|
|
+ Integer supervisionId = resource.getSupervisionId();
|
|
|
+
|
|
|
+ WmPackageSupervision supervision = packageSupervisionService.getById(supervisionId);
|
|
|
+
|
|
|
+ if (resource.getSupervision()) {
|
|
|
+
|
|
|
+ UpmsState.PackageSupervisionState state;
|
|
|
+ switch (supervision.getSupervisionState()) {
|
|
|
+ case INIT:
|
|
|
+ state = UpmsState.PackageSupervisionState.CKT1;
|
|
|
+ break;
|
|
|
+ case CKT1:
|
|
|
+ state = UpmsState.PackageSupervisionState.CKT2;
|
|
|
+ break;
|
|
|
+ case CKT2:
|
|
|
+ state = UpmsState.PackageSupervisionState.PASSED;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new BizException("监督状态不正确,不能操作");
|
|
|
+ }
|
|
|
+
|
|
|
+ String remarks = resource.getRemarks();
|
|
|
+ if (StrUtil.isNotBlank(remarks)) {
|
|
|
+ supervision.setRemarks(resource.getRemarks() + ";" + supervision.getRemarks());
|
|
|
+ }
|
|
|
+ supervision.setUpdateBy(user.getUsername());
|
|
|
+ supervision.setUpdateTime(LocalDateTime.now());
|
|
|
+ supervision.setSupervisionState(state);
|
|
|
+ packageSupervisionService.updateById(supervision);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ supervision.setSupervisionResult(false);
|
|
|
+ supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
|
|
|
+ supervision.setUpdateBy(user.getUsername());
|
|
|
+ supervision.setUpdateTime(LocalDateTime.now());
|
|
|
+ supervision.setSupervisionState(UpmsState.PackageSupervisionState.REJECTED);
|
|
|
+ packageSupervisionService.updateById(supervision);
|
|
|
+
|
|
|
+ // 如果审核拒绝 任务监督信息全部放弃 重新审核
|
|
|
+ taskSupervisionService.remove(
|
|
|
+ Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ .eq(WmTaskSupervision::getPackageId, supervision.getPackageId())
|
|
|
+ .eq(WmTaskSupervision::getCreateBy, supervision.getCreateBy()));
|
|
|
}
|
|
|
|
|
|
- // // 按照区域 to 服务商的打包进行展示
|
|
|
- // public Page<Map<String, Object>> pagePkgV2(WmSupervisionDto.OnB2BPkgPage query, HnqzUser operator) {
|
|
|
- //
|
|
|
- // // 分页结果
|
|
|
- // Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
- //
|
|
|
- // // 根据角色判断药品
|
|
|
- // List<Integer> drugIds;
|
|
|
- // if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
- //
|
|
|
- // drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
- //
|
|
|
- // if (CollUtil.isEmpty(drugIds)) {
|
|
|
- // log.info("当前操作人没有分配产品");
|
|
|
- // return page;
|
|
|
- // }
|
|
|
- //
|
|
|
- // } else {
|
|
|
- // drugIds = Collections.emptyList();
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // // 筛查区域内所有企业
|
|
|
- // List<Long> areaCode = query.getAreaCode();
|
|
|
- // List<Long> entIds;
|
|
|
- // if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
- // entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
- // if (CollUtil.isEmpty(entIds)) {
|
|
|
- // return page;
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // entIds = Collections.emptyList();
|
|
|
- // }
|
|
|
- //
|
|
|
- // String entName = query.getEntName();
|
|
|
- // Set<Integer> finalEntIds = new HashSet<>();
|
|
|
- // if (CharSequenceUtil.isNotBlank(entName)) {
|
|
|
- // List<SysDept> enterprises = deptService.list(Wrappers.<SysDept>lambdaQuery().like(SysDept::getName, entName).in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
- // List<Integer> deptIds = enterprises.stream().mapToInt(SysDept::getDeptId).boxed().distinct().collect(Collectors.toList());
|
|
|
- // if (CollUtil.isEmpty(deptIds)) {
|
|
|
- // return page;
|
|
|
- // }
|
|
|
- // finalEntIds.addAll(deptIds);
|
|
|
- // } else {
|
|
|
- //
|
|
|
- // Set<Integer> collect = entIds.stream().map(Long::intValue).collect(Collectors.toSet());
|
|
|
- //
|
|
|
- // List<SysDept> depts = deptService.list(Wrappers.<SysDept>lambdaQuery().in(CollUtil.isNotEmpty(collect), SysDept::getDeptId, collect).eq(SysDept::getLevel, 4));
|
|
|
- //
|
|
|
- // finalEntIds.addAll(depts.stream().map(SysDept::getDeptId).collect(Collectors.toSet()));
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // // 获取全部的区域 & 获取区域ID
|
|
|
- // List<SysDept> districts = deptService.list(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 3));
|
|
|
- // Map<Integer, String> distId2NameMap = districts.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
|
|
|
- // List<Integer> disIds = districts.stream().mapToInt(SysDept::getDeptId).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
- //
|
|
|
- // // 获取区域发送所有b端包
|
|
|
- // Page<WmScorePackage> b2bPkgPage = packageService.page(new Page<>(query.getCurrent(), query.getSize()),
|
|
|
- // Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- // .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
- // .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
|
|
|
- // .in(CollUtil.isNotEmpty(finalEntIds), WmScorePackage::getDeptId, finalEntIds)
|
|
|
- // // .between(WmScorePackage::getCreateTime, , )
|
|
|
- // .in(WmScorePackage::getSendPackageDeptId, disIds));
|
|
|
- //
|
|
|
- // List<WmScorePackage> records = b2bPkgPage.getRecords();
|
|
|
- //
|
|
|
- // List<Map<String, Object>> build = new ArrayList<>(records.size());
|
|
|
- // if (CollUtil.isNotEmpty(records)) {
|
|
|
- //
|
|
|
- // // 获取服务商信息
|
|
|
- // Set<Integer> deptId = records.stream().mapToInt(pkg -> Integer.parseInt(pkg.getDeptId())).boxed().collect(Collectors.toSet());
|
|
|
- // Map<Integer, String> deptIdToDeptNameMap = deptService.listByIds(deptId).stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
|
|
|
- //
|
|
|
- // // 循环拼装数据
|
|
|
- // DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN);
|
|
|
- // for (WmScorePackage pkg : records) {
|
|
|
- //
|
|
|
- // Map<String, Object> ele = new HashMap<>(7);
|
|
|
- // ele.put("pkgName", pkg.getScorePackageName());
|
|
|
- // ele.put("score", pkg.getScore());
|
|
|
- // ele.put("pkgState", pkg.getPackageStatus());
|
|
|
- // ele.put("period", String.format("%s~%s", dateTimeFormatter.format(pkg.getStartTime()), dateTimeFormatter.format(pkg.getEndTime())));
|
|
|
- // ele.put("districtName", distId2NameMap.get(Integer.valueOf(pkg.getSendPackageDeptId())));
|
|
|
- // ele.put("deptName", deptIdToDeptNameMap.get(Integer.valueOf(pkg.getDeptId())));
|
|
|
- //
|
|
|
- //
|
|
|
- // // 获取子集包
|
|
|
- // List<WmScorePackage> b2cPkg = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getRelationScoreId, pkg.getId()));
|
|
|
- // if (CollUtil.isNotEmpty(b2cPkg)) {
|
|
|
- // List<String> b2cPkgIds = b2cPkg.stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
|
|
|
- // // 获取子集包中的所有任务
|
|
|
- // taskService.listAvailableTaskForSupervision1(b2cPkgIds.stream().mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList()), Collections.emptyList());
|
|
|
- // List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, b2cPkgIds));
|
|
|
- // // 获取监察记录
|
|
|
- // List<WmTaskSupervision> supervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, b2cPkgIds));
|
|
|
- //
|
|
|
- // // 获取监察结果
|
|
|
- // Map<String, String> stat = new HashMap<>(2);
|
|
|
- // stat.put("supTotal", CollUtil.isNotEmpty(supervisions) ? String.valueOf(supervisions.stream().map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size()) : "0");
|
|
|
- // stat.put("total", CollUtil.isNotEmpty(tasks) ? String.valueOf(tasks.size()) : "0");
|
|
|
- // ele.put("taskSupStat", stat);
|
|
|
- // }
|
|
|
- //
|
|
|
- // build.add(ele);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // page.setRecords(build);
|
|
|
- // page.setTotal(b2bPkgPage.getTotal());
|
|
|
- // return page;
|
|
|
- //
|
|
|
- // }
|
|
|
-
|
|
|
- // 按照服务商的维度显示季度任务信息
|
|
|
- public Page<Map<String, Object>> pagePkgV3(WmSupervisionDto.OnB2BPkgPage query, HnqzUser operator) {
|
|
|
-
|
|
|
- // 分页结果
|
|
|
- Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
-
|
|
|
- // 根据角色判断药品
|
|
|
- List<Integer> drugIds;
|
|
|
- if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
-
|
|
|
- drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // // 按照区域 to 服务商的打包进行展示
|
|
|
+ // public Page<Map<String, Object>> pagePkgV2(WmSupervisionDto.OnB2BPkgPage query, HnqzUser
|
|
|
+ // operator) {
|
|
|
+ //
|
|
|
+ // // 分页结果
|
|
|
+ // Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+ //
|
|
|
+ // // 根据角色判断药品
|
|
|
+ // List<Integer> drugIds;
|
|
|
+ // if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
+ //
|
|
|
+ // drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
+ //
|
|
|
+ // if (CollUtil.isEmpty(drugIds)) {
|
|
|
+ // log.info("当前操作人没有分配产品");
|
|
|
+ // return page;
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // } else {
|
|
|
+ // drugIds = Collections.emptyList();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 筛查区域内所有企业
|
|
|
+ // List<Long> areaCode = query.getAreaCode();
|
|
|
+ // List<Long> entIds;
|
|
|
+ // if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
+ // entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
+ // if (CollUtil.isEmpty(entIds)) {
|
|
|
+ // return page;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // entIds = Collections.emptyList();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // String entName = query.getEntName();
|
|
|
+ // Set<Integer> finalEntIds = new HashSet<>();
|
|
|
+ // if (CharSequenceUtil.isNotBlank(entName)) {
|
|
|
+ // List<SysDept> enterprises =
|
|
|
+ // deptService.list(Wrappers.<SysDept>lambdaQuery().like(SysDept::getName,
|
|
|
+ // entName).in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
+ // List<Integer> deptIds =
|
|
|
+ // enterprises.stream().mapToInt(SysDept::getDeptId).boxed().distinct().collect(Collectors.toList());
|
|
|
+ // if (CollUtil.isEmpty(deptIds)) {
|
|
|
+ // return page;
|
|
|
+ // }
|
|
|
+ // finalEntIds.addAll(deptIds);
|
|
|
+ // } else {
|
|
|
+ //
|
|
|
+ // Set<Integer> collect = entIds.stream().map(Long::intValue).collect(Collectors.toSet());
|
|
|
+ //
|
|
|
+ // List<SysDept> depts =
|
|
|
+ // deptService.list(Wrappers.<SysDept>lambdaQuery().in(CollUtil.isNotEmpty(collect),
|
|
|
+ // SysDept::getDeptId, collect).eq(SysDept::getLevel, 4));
|
|
|
+ //
|
|
|
+ // finalEntIds.addAll(depts.stream().map(SysDept::getDeptId).collect(Collectors.toSet()));
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 获取全部的区域 & 获取区域ID
|
|
|
+ // List<SysDept> districts =
|
|
|
+ // deptService.list(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getLevel, 3));
|
|
|
+ // Map<Integer, String> distId2NameMap =
|
|
|
+ // districts.stream().collect(Collectors.toMap(SysDept::getDeptId, SysDept::getName));
|
|
|
+ // List<Integer> disIds =
|
|
|
+ // districts.stream().mapToInt(SysDept::getDeptId).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
+ //
|
|
|
+ // // 获取区域发送所有b端包
|
|
|
+ // Page<WmScorePackage> b2bPkgPage = packageService.page(new Page<>(query.getCurrent(),
|
|
|
+ // query.getSize()),
|
|
|
+ // Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ // .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
+ // .eq(StrUtil.isNotBlank(query.getPkgName()),
|
|
|
+ // WmScorePackage::getScorePackageName, query.getPkgName())
|
|
|
+ // .in(CollUtil.isNotEmpty(finalEntIds), WmScorePackage::getDeptId,
|
|
|
+ // finalEntIds)
|
|
|
+ // // .between(WmScorePackage::getCreateTime, , )
|
|
|
+ // .in(WmScorePackage::getSendPackageDeptId, disIds));
|
|
|
+ //
|
|
|
+ // List<WmScorePackage> records = b2bPkgPage.getRecords();
|
|
|
+ //
|
|
|
+ // List<Map<String, Object>> build = new ArrayList<>(records.size());
|
|
|
+ // if (CollUtil.isNotEmpty(records)) {
|
|
|
+ //
|
|
|
+ // // 获取服务商信息
|
|
|
+ // Set<Integer> deptId = records.stream().mapToInt(pkg ->
|
|
|
+ // Integer.parseInt(pkg.getDeptId())).boxed().collect(Collectors.toSet());
|
|
|
+ // Map<Integer, String> deptIdToDeptNameMap =
|
|
|
+ // deptService.listByIds(deptId).stream().collect(Collectors.toMap(SysDept::getDeptId,
|
|
|
+ // SysDept::getName));
|
|
|
+ //
|
|
|
+ // // 循环拼装数据
|
|
|
+ // DateTimeFormatter dateTimeFormatter =
|
|
|
+ // DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN);
|
|
|
+ // for (WmScorePackage pkg : records) {
|
|
|
+ //
|
|
|
+ // Map<String, Object> ele = new HashMap<>(7);
|
|
|
+ // ele.put("pkgName", pkg.getScorePackageName());
|
|
|
+ // ele.put("score", pkg.getScore());
|
|
|
+ // ele.put("pkgState", pkg.getPackageStatus());
|
|
|
+ // ele.put("period", String.format("%s~%s",
|
|
|
+ // dateTimeFormatter.format(pkg.getStartTime()), dateTimeFormatter.format(pkg.getEndTime())));
|
|
|
+ // ele.put("districtName",
|
|
|
+ // distId2NameMap.get(Integer.valueOf(pkg.getSendPackageDeptId())));
|
|
|
+ // ele.put("deptName", deptIdToDeptNameMap.get(Integer.valueOf(pkg.getDeptId())));
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 获取子集包
|
|
|
+ // List<WmScorePackage> b2cPkg =
|
|
|
+ // packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getRelationScoreId, pkg.getId()));
|
|
|
+ // if (CollUtil.isNotEmpty(b2cPkg)) {
|
|
|
+ // List<String> b2cPkgIds =
|
|
|
+ // b2cPkg.stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
|
|
|
+ // // 获取子集包中的所有任务
|
|
|
+ //
|
|
|
+ // taskService.listAvailableTaskForSupervision1(b2cPkgIds.stream().mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList()), Collections.emptyList());
|
|
|
+ // List<WmTask> tasks =
|
|
|
+ // taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, b2cPkgIds));
|
|
|
+ // // 获取监察记录
|
|
|
+ // List<WmTaskSupervision> supervisions =
|
|
|
+ // taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getPackageId, b2cPkgIds));
|
|
|
+ //
|
|
|
+ // // 获取监察结果
|
|
|
+ // Map<String, String> stat = new HashMap<>(2);
|
|
|
+ // stat.put("supTotal", CollUtil.isNotEmpty(supervisions) ?
|
|
|
+ // String.valueOf(supervisions.stream().map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size()) : "0");
|
|
|
+ // stat.put("total", CollUtil.isNotEmpty(tasks) ? String.valueOf(tasks.size()) :
|
|
|
+ // "0");
|
|
|
+ // ele.put("taskSupStat", stat);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // build.add(ele);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // page.setRecords(build);
|
|
|
+ // page.setTotal(b2bPkgPage.getTotal());
|
|
|
+ // return page;
|
|
|
+ //
|
|
|
+ // }
|
|
|
+
|
|
|
+ // 按照服务商的维度显示季度任务信息
|
|
|
+ public Page<Map<String, Object>> pagePkgV3(
|
|
|
+ WmSupervisionDto.OnB2BPkgPage query, HnqzUser operator) {
|
|
|
+
|
|
|
+ // 分页结果
|
|
|
+ Page<Map<String, Object>> page = new Page<>(query.getCurrent(), query.getSize());
|
|
|
+
|
|
|
+ // 根据角色判断药品
|
|
|
+ List<Integer> drugIds;
|
|
|
+ if (!SecurityUtils.getRoles().contains(39) && !SecurityUtils.getRoles().contains(37)) {
|
|
|
+
|
|
|
+ drugIds = userDrugService.listDrugIdByUserId(operator.getId());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(drugIds)) {
|
|
|
+ log.info("当前操作人没有分配产品");
|
|
|
+ return page;
|
|
|
+ }
|
|
|
|
|
|
- if (CollUtil.isEmpty(drugIds)) {
|
|
|
- log.info("当前操作人没有分配产品");
|
|
|
- return page;
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ drugIds = Collections.emptyList();
|
|
|
+ }
|
|
|
|
|
|
- } else {
|
|
|
- drugIds = Collections.emptyList();
|
|
|
+ List<Long> entIds;
|
|
|
+ if (CollUtil.containsAny(SecurityUtils.getRoles(), List.of(37))) {
|
|
|
+ entIds = Collections.singletonList(Long.valueOf(operator.getDeptId()));
|
|
|
+ } else {
|
|
|
+ // 筛查区域内所有企业
|
|
|
+ List<Long> areaCode = query.getAreaCode();
|
|
|
+ if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
+ entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
+ if (CollUtil.isEmpty(entIds)) {
|
|
|
+ return page;
|
|
|
}
|
|
|
+ } else {
|
|
|
+ entIds = Collections.emptyList();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ // 查询所有的服务商
|
|
|
+ Page<SysDept> deptPage =
|
|
|
+ deptService.page(
|
|
|
+ new Page<>(query.getCurrent(), query.getSize()),
|
|
|
+ Wrappers.<SysDept>lambdaQuery()
|
|
|
+ .eq(SysDept::getLevel, 4)
|
|
|
+ .eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName())
|
|
|
+ .in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
|
|
|
- List<Long> entIds;
|
|
|
- if (CollUtil.containsAny(SecurityUtils.getRoles(), List.of(37))) {
|
|
|
- entIds = Collections.singletonList(Long.valueOf(operator.getDeptId()));
|
|
|
- } else {
|
|
|
- // 筛查区域内所有企业
|
|
|
- List<Long> areaCode = query.getAreaCode();
|
|
|
- if (CollUtil.isNotEmpty(areaCode)) {
|
|
|
- entIds = enterpriseAreaService.listAreaEnts(areaCode);
|
|
|
- if (CollUtil.isEmpty(entIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
- } else {
|
|
|
- entIds = Collections.emptyList();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 查询所有的服务商
|
|
|
- Page<SysDept> deptPage = deptService.page(new Page<>(query.getCurrent(), query.getSize()),
|
|
|
- Wrappers.<SysDept>lambdaQuery()
|
|
|
- .eq(SysDept::getLevel, 4)
|
|
|
- .eq(StrUtil.isNotBlank(query.getEntName()), SysDept::getName, query.getEntName())
|
|
|
- .in(CollUtil.isNotEmpty(entIds), SysDept::getDeptId, entIds));
|
|
|
+ List<SysDept> depts = deptPage.getRecords();
|
|
|
|
|
|
- List<SysDept> depts = deptPage.getRecords();
|
|
|
+ if (CollUtil.isEmpty(depts)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
|
|
|
- if (CollUtil.isEmpty(depts)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
+ // 封装参数
|
|
|
+ List<Map<String, Object>> collect =
|
|
|
+ depts.stream()
|
|
|
+ .map(
|
|
|
+ dept -> {
|
|
|
+ Map<String, Object> map = new HashMap<>(5);
|
|
|
+ map.put("deptName", dept.getName());
|
|
|
+ map.put("deptId", dept.getDeptId());
|
|
|
+
|
|
|
+ LambdaQueryWrapper<WmScorePackage> queryWrapper =
|
|
|
+ Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
+ .eq(
|
|
|
+ StrUtil.isNotBlank(query.getPkgName()),
|
|
|
+ WmScorePackage::getScorePackageName,
|
|
|
+ query.getPkgName())
|
|
|
+ .eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString());
|
|
|
+
|
|
|
+ LocalDate[] period = query.getPeriod();
|
|
|
+ if (ArrayUtil.isNotEmpty(period) && period.length == 2) {
|
|
|
+ queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
+ queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取当前企业当季度的包
|
|
|
+ List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
+
|
|
|
+ int total = 0;
|
|
|
+ int supTotal = 0;
|
|
|
+ int total1 = 0;
|
|
|
+ int supTotal1 = 0;
|
|
|
+
|
|
|
+ // 生产企业财务部监督员
|
|
|
+ int mahFinaSupTotal = 0;
|
|
|
+ // 生产企业销售部监督员
|
|
|
+ int mahSalesSupTotal = 0;
|
|
|
+ // 营销中心法务合规部监督员
|
|
|
+ int optLawSupTotal = 0;
|
|
|
+ // 营销中心财务部监督员
|
|
|
+ int optFinaSupTotal = 0;
|
|
|
+
|
|
|
+ // 获取c端包统计信息
|
|
|
+ if (CollUtil.isNotEmpty(pkgs)) {
|
|
|
+
|
|
|
+ List<String> pkgIds =
|
|
|
+ pkgs.stream()
|
|
|
+ .map(WmScorePackage::getId)
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 获取子集包中的所有任务
|
|
|
+ List<WmTask> tasks =
|
|
|
+ taskService.listAvailableTaskForSupervision1(
|
|
|
+ pkgIds.stream()
|
|
|
+ .mapToInt(Integer::valueOf)
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList()),
|
|
|
+ Collections.emptyList());
|
|
|
+ // List<WmTask> tasks =
|
|
|
+ // taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId,
|
|
|
+ // pkgIds).eq(WmTask::getTaskStatus, "3"));
|
|
|
+ // 获取监察记录(不可编辑的是监察过的)
|
|
|
+ List<WmTaskSupervision> supervisions =
|
|
|
+ taskSupervisionService.list(
|
|
|
+ Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ .eq(WmTaskSupervision::getModifiable, false)
|
|
|
+ .in(
|
|
|
+ WmTaskSupervision::getPackageId,
|
|
|
+ pkgIds.stream()
|
|
|
+ .mapToInt(Integer::valueOf)
|
|
|
+ .boxed()
|
|
|
+ .sorted()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList())));
|
|
|
+
|
|
|
+ Map<Integer, List<WmTaskSupervision>> roleId2SupMap =
|
|
|
+ supervisions.stream()
|
|
|
+ .collect(Collectors.groupingBy(WmTaskSupervision::getRoleId));
|
|
|
+ // 生产企业财务部监督员
|
|
|
+ mahFinaSupTotal =
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(49))
|
|
|
+ ? roleId2SupMap.get(49).size()
|
|
|
+ : 0;
|
|
|
+ // 生产企业销售部监督员
|
|
|
+ mahSalesSupTotal =
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(52))
|
|
|
+ ? roleId2SupMap.get(52).size()
|
|
|
+ : 0;
|
|
|
+ // 营销中心法务合规部监督员
|
|
|
+ optLawSupTotal =
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(53))
|
|
|
+ ? roleId2SupMap.get(53).size()
|
|
|
+ : 0;
|
|
|
+ // 营销中心财务部监督员
|
|
|
+ optFinaSupTotal =
|
|
|
+ CollUtil.isNotEmpty(roleId2SupMap.get(56))
|
|
|
+ ? roleId2SupMap.get(56).size()
|
|
|
+ : 0;
|
|
|
+
|
|
|
+ total = CollUtil.isNotEmpty(tasks) ? tasks.size() : 0;
|
|
|
+ supTotal =
|
|
|
+ CollUtil.isNotEmpty(supervisions)
|
|
|
+ ? supervisions.stream()
|
|
|
+ .map(WmTaskSupervision::getTaskId)
|
|
|
+ .collect(Collectors.toSet())
|
|
|
+ .size()
|
|
|
+ : 0;
|
|
|
+
|
|
|
+ List<Integer> roles = SecurityUtils.getRoles();
|
|
|
+ // 监察员
|
|
|
+ if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
+ // 获取监察结果
|
|
|
+ total1 = total;
|
|
|
+ supTotal1 = supTotal;
|
|
|
+ }
|
|
|
+ // 服务商
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
+
|
|
|
+ supTotal =
|
|
|
+ CollUtil.isNotEmpty(supervisions)
|
|
|
+ ? supervisions.stream()
|
|
|
+ .filter(
|
|
|
+ ts ->
|
|
|
+ UpmsState.TaskSupervisionState.PASSED.equals(
|
|
|
+ ts.getSupervisionState()))
|
|
|
+ .map(WmTaskSupervision::getTaskId)
|
|
|
+ .collect(Collectors.toSet())
|
|
|
+ .size()
|
|
|
+ : 0;
|
|
|
+
|
|
|
+ // 获取监察结果
|
|
|
+ total1 = supTotal;
|
|
|
+ supTotal1 = supTotal;
|
|
|
+ }
|
|
|
+ // 其他角色
|
|
|
+ else {
|
|
|
|
|
|
- // 封装参数
|
|
|
- List<Map<String, Object>> collect = depts.stream().map(dept -> {
|
|
|
- Map<String, Object> map = new HashMap<>(5);
|
|
|
- map.put("deptName", dept.getName());
|
|
|
- map.put("deptId", dept.getDeptId());
|
|
|
-
|
|
|
- LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .in(CollUtil.isNotEmpty(drugIds), WmScorePackage::getDrugtable, drugIds)
|
|
|
- .eq(StrUtil.isNotBlank(query.getPkgName()), WmScorePackage::getScorePackageName, query.getPkgName())
|
|
|
- .eq(WmScorePackage::getSendPackageDeptId, dept.getDeptId().toString());
|
|
|
-
|
|
|
- LocalDate[] period = query.getPeriod();
|
|
|
- if (ArrayUtil.isNotEmpty(period) && period.length == 2) {
|
|
|
- queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
- queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
- }
|
|
|
-
|
|
|
- // 获取当前企业当季度的包
|
|
|
- List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
-
|
|
|
- int total = 0;
|
|
|
- int supTotal = 0;
|
|
|
- int total1 = 0;
|
|
|
- int supTotal1 = 0;
|
|
|
-
|
|
|
- // 生产企业财务部监督员
|
|
|
- int mahFinaSupTotal = 0;
|
|
|
- // 生产企业销售部监督员
|
|
|
- int mahSalesSupTotal = 0;
|
|
|
- // 营销中心法务合规部监督员
|
|
|
- int optLawSupTotal = 0;
|
|
|
- // 营销中心财务部监督员
|
|
|
- int optFinaSupTotal = 0;
|
|
|
-
|
|
|
- // 获取c端包统计信息
|
|
|
- if (CollUtil.isNotEmpty(pkgs)) {
|
|
|
-
|
|
|
- List<String> pkgIds = pkgs.stream().map(WmScorePackage::getId).distinct().sorted().collect(Collectors.toList());
|
|
|
- // 获取子集包中的所有任务
|
|
|
- List<WmTask> tasks = taskService.listAvailableTaskForSupervision1(pkgIds.stream().mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList()), Collections.emptyList());
|
|
|
- // List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgIds).eq(WmTask::getTaskStatus, "3"));
|
|
|
- // 获取监察记录(不可编辑的是监察过的)
|
|
|
- List<WmTaskSupervision> supervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- .eq(WmTaskSupervision::getModifiable, false)
|
|
|
- .in(WmTaskSupervision::getPackageId, pkgIds.stream().mapToInt(Integer::valueOf).boxed().sorted().distinct()
|
|
|
- .collect(Collectors.toList())));
|
|
|
-
|
|
|
-
|
|
|
- Map<Integer, List<WmTaskSupervision>> roleId2SupMap = supervisions.stream().collect(Collectors.groupingBy(WmTaskSupervision::getRoleId));
|
|
|
- // 生产企业财务部监督员
|
|
|
- mahFinaSupTotal = CollUtil.isNotEmpty(roleId2SupMap.get(49)) ? roleId2SupMap.get(49).size() : 0;
|
|
|
- // 生产企业销售部监督员
|
|
|
- mahSalesSupTotal = CollUtil.isNotEmpty(roleId2SupMap.get(52)) ? roleId2SupMap.get(52).size() : 0;
|
|
|
- // 营销中心法务合规部监督员
|
|
|
- optLawSupTotal = CollUtil.isNotEmpty(roleId2SupMap.get(53)) ? roleId2SupMap.get(53).size() : 0;
|
|
|
- // 营销中心财务部监督员
|
|
|
- optFinaSupTotal = CollUtil.isNotEmpty(roleId2SupMap.get(56)) ? roleId2SupMap.get(56).size() : 0;
|
|
|
-
|
|
|
-
|
|
|
- total = CollUtil.isNotEmpty(tasks) ? tasks.size() : 0;
|
|
|
- supTotal = CollUtil.isNotEmpty(supervisions) ? supervisions.stream().map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size() : 0;
|
|
|
-
|
|
|
- List<Integer> roles = SecurityUtils.getRoles();
|
|
|
- // 监察员
|
|
|
- if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
- // 获取监察结果
|
|
|
- total1 = total;
|
|
|
- supTotal1 = supTotal;
|
|
|
- }
|
|
|
- // 服务商
|
|
|
- else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
-
|
|
|
- supTotal = CollUtil.isNotEmpty(supervisions)
|
|
|
- ? supervisions.stream().filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState()))
|
|
|
- .map(WmTaskSupervision::getTaskId).collect(Collectors.toSet()).size() : 0;
|
|
|
-
|
|
|
- // 获取监察结果
|
|
|
- total1 = supTotal;
|
|
|
- supTotal1 = supTotal;
|
|
|
- }
|
|
|
- // 其他角色
|
|
|
- else {
|
|
|
-
|
|
|
- // 所有监察的
|
|
|
- List<Long> supId = supervisions.stream().map(WmTaskSupervision::getSupervisionId).collect(Collectors.toList());
|
|
|
-
|
|
|
- if (CollUtil.isNotEmpty(supId)) {
|
|
|
+ // 所有监察的
|
|
|
+ List<Long> supId =
|
|
|
+ supervisions.stream()
|
|
|
+ .map(WmTaskSupervision::getSupervisionId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
+ if (CollUtil.isNotEmpty(supId)) {
|
|
|
|
|
|
// 我监察过的(有重复的的)
|
|
|
- Set<Long> advices = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
- .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
- .in(WmTaskSupervisionAdvice::getTaskSupervisionId, supId)
|
|
|
- .eq(WmTaskSupervisionAdvice::getCreateBy, operator.getUsername())).stream().map(WmTaskSupervisionAdvice::getTaskSupervisionId).collect(Collectors.toSet());
|
|
|
-
|
|
|
- Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = supervisions.stream()
|
|
|
- .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState, Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
-
|
|
|
-
|
|
|
- Set<Integer> init = collect1.getOrDefault(UpmsState.TaskSupervisionState.INIT, Collections.emptySet());
|
|
|
- Set<Integer> ckt1 = collect1.getOrDefault(UpmsState.TaskSupervisionState.CKT1, Collections.emptySet());
|
|
|
- Set<Integer> ckt2 = collect1.getOrDefault(UpmsState.TaskSupervisionState.CKT2, Collections.emptySet());
|
|
|
- Set<Integer> passed = collect1.getOrDefault(UpmsState.TaskSupervisionState.PASSED, Collections.emptySet());
|
|
|
- // Set<Integer> rejected = collect1.getOrDefault(UpmsState.TaskSupervisionState.REJECTED, Collections.emptySet());
|
|
|
+ Set<Long> advices =
|
|
|
+ taskSupervisionAdviceService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
+ .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
+ .in(WmTaskSupervisionAdvice::getTaskSupervisionId, supId)
|
|
|
+ .eq(
|
|
|
+ WmTaskSupervisionAdvice::getCreateBy,
|
|
|
+ operator.getUsername()))
|
|
|
+ .stream()
|
|
|
+ .map(WmTaskSupervisionAdvice::getTaskSupervisionId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 =
|
|
|
+ supervisions.stream()
|
|
|
+ .collect(
|
|
|
+ Collectors.groupingBy(
|
|
|
+ WmTaskSupervision::getSupervisionState,
|
|
|
+ Collectors.mapping(
|
|
|
+ WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
+
|
|
|
+ Set<Integer> init =
|
|
|
+ collect1.getOrDefault(
|
|
|
+ UpmsState.TaskSupervisionState.INIT, Collections.emptySet());
|
|
|
+ Set<Integer> ckt1 =
|
|
|
+ collect1.getOrDefault(
|
|
|
+ UpmsState.TaskSupervisionState.CKT1, Collections.emptySet());
|
|
|
+ Set<Integer> ckt2 =
|
|
|
+ collect1.getOrDefault(
|
|
|
+ UpmsState.TaskSupervisionState.CKT2, Collections.emptySet());
|
|
|
+ Set<Integer> passed =
|
|
|
+ collect1.getOrDefault(
|
|
|
+ UpmsState.TaskSupervisionState.PASSED, Collections.emptySet());
|
|
|
+ // Set<Integer> rejected =
|
|
|
+ // collect1.getOrDefault(UpmsState.TaskSupervisionState.REJECTED,
|
|
|
+ // Collections.emptySet());
|
|
|
|
|
|
// 负责人
|
|
|
if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
|
|
|
- supTotal1 = advices.size();
|
|
|
- total1 = init.size() + supTotal1;
|
|
|
+ supTotal1 = advices.size();
|
|
|
+ total1 = init.size() + supTotal1;
|
|
|
}
|
|
|
// 分管领导
|
|
|
else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
|
|
|
- supTotal1 = advices.size();
|
|
|
- total1 = ckt1.size() + supTotal1;
|
|
|
+ supTotal1 = advices.size();
|
|
|
+ total1 = ckt1.size() + supTotal1;
|
|
|
}
|
|
|
// 事业部总经理
|
|
|
else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
- supTotal1 = advices.size();
|
|
|
- total1 = ckt2.size() + supTotal1;
|
|
|
+ supTotal1 = advices.size();
|
|
|
+ total1 = ckt2.size() + supTotal1;
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Integer> stat = new HashMap<>(4);
|
|
|
+ stat.put("supTotal", supTotal);
|
|
|
+ stat.put("total", total);
|
|
|
+ stat.put("mahFinaSupTotal", mahFinaSupTotal);
|
|
|
+ stat.put("mahSalesSupTotal", mahSalesSupTotal);
|
|
|
+ stat.put("optLawSupTotal", optLawSupTotal);
|
|
|
+ stat.put("optFinaSupTotal", optFinaSupTotal);
|
|
|
+ map.put("taskSupStat", stat);
|
|
|
+ map.put("toCheck", supTotal1 != total1);
|
|
|
+ map.put("checked", supTotal1 != 0);
|
|
|
+
|
|
|
+ return map;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ page.setRecords(collect);
|
|
|
+ page.setTotal(deptPage.getTotal());
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<Integer> getVisibleRoleIds(List<Integer> roles) {
|
|
|
+
|
|
|
+ List<Integer> roleIds = new LinkedList<>();
|
|
|
+
|
|
|
+ // 49 生产企业财务部监察员
|
|
|
+ // 57 生产企业财务部监察负责人
|
|
|
+ // 51 生产企业财务部监察分管领导
|
|
|
+ if (CollUtil.containsAny(roles, List.of(49, 57, 51))) {
|
|
|
+ roleIds.add(49);
|
|
|
+ // return List.of(49);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ // 52 生产企业销售部监察员
|
|
|
+ // 58 生产企业销售部监察负责人
|
|
|
+ // 61 生产企业销售部监察分管领导
|
|
|
+ if (CollUtil.containsAny(roles, List.of(52, 58, 61))) {
|
|
|
+ roleIds.add(52);
|
|
|
+ // return List.of(52);
|
|
|
+ }
|
|
|
|
|
|
+ // 53 营销中心法务合规部监察员
|
|
|
+ // 60 营销中心法务合规部监察负责人
|
|
|
+ // 54 营销中心法务合规部监察分管领导
|
|
|
+ if (CollUtil.containsAny(roles, List.of(60, 54, 53))) {
|
|
|
+ roleIds.add(53);
|
|
|
+ // return List.of(53);
|
|
|
+ }
|
|
|
|
|
|
- Map<String, Integer> stat = new HashMap<>(4);
|
|
|
- stat.put("supTotal", supTotal);
|
|
|
- stat.put("total", total);
|
|
|
- stat.put("mahFinaSupTotal", mahFinaSupTotal);
|
|
|
- stat.put("mahSalesSupTotal", mahSalesSupTotal);
|
|
|
- stat.put("optLawSupTotal", optLawSupTotal);
|
|
|
- stat.put("optFinaSupTotal", optFinaSupTotal);
|
|
|
- map.put("taskSupStat", stat);
|
|
|
- map.put("toCheck", supTotal1 != total1);
|
|
|
- map.put("checked", supTotal1 != 0);
|
|
|
+ // 56 营销中心财务部监察员
|
|
|
+ // 59 营销中心财务部监察负责人
|
|
|
+ // 55 营销中心财务部监察分管领导
|
|
|
|
|
|
- return map;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ if (CollUtil.containsAny(roles, List.of(55, 59, 56))) {
|
|
|
+ roleIds.add(56);
|
|
|
+ // return List.of(56);
|
|
|
+ }
|
|
|
|
|
|
- page.setRecords(collect);
|
|
|
- page.setTotal(deptPage.getTotal());
|
|
|
+ return CollUtil.isNotEmpty(roleIds) ? roleIds : List.of(49, 52, 53, 56);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Page<Map<String, Object>> pageTaskSupervision(
|
|
|
+ WmSupervisionDto.OnTaskSupervisionPage query) {
|
|
|
+
|
|
|
+ // 操作人角色
|
|
|
+ List<Integer> roles = SecurityUtils.getRoles();
|
|
|
+ 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;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- public List<Integer> getVisibleRoleIds(List<Integer> roles) {
|
|
|
+ } else {
|
|
|
+ userIds1 = Collections.emptyList();
|
|
|
+ }
|
|
|
|
|
|
- List<Integer> roleIds = new LinkedList<>();
|
|
|
+ // 获取药品条件
|
|
|
+ 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;
|
|
|
+ }
|
|
|
|
|
|
- // 49 生产企业财务部监察员
|
|
|
- // 57 生产企业财务部监察负责人
|
|
|
- // 51 生产企业财务部监察分管领导
|
|
|
- if (CollUtil.containsAny(roles, List.of(49, 57, 51))) {
|
|
|
- roleIds.add(49);
|
|
|
- // return List.of(49);
|
|
|
- }
|
|
|
+ } else {
|
|
|
+ drugIds = CollUtil.isEmpty(drugtableIds) ? Collections.emptyList() : drugtableIds;
|
|
|
+ }
|
|
|
|
|
|
- // 52 生产企业销售部监察员
|
|
|
- // 58 生产企业销售部监察负责人
|
|
|
- // 61 生产企业销售部监察分管领导
|
|
|
- if (CollUtil.containsAny(roles, List.of(52, 58, 61))) {
|
|
|
- roleIds.add(52);
|
|
|
- // return List.of(52);
|
|
|
- }
|
|
|
+ // 获取积分包
|
|
|
+ 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());
|
|
|
+
|
|
|
+ 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);
|
|
|
|
|
|
- // 53 营销中心法务合规部监察员
|
|
|
- // 60 营销中心法务合规部监察负责人
|
|
|
- // 54 营销中心法务合规部监察分管领导
|
|
|
- if (CollUtil.containsAny(roles, List.of(60, 54, 53))) {
|
|
|
- roleIds.add(53);
|
|
|
- // return List.of(53);
|
|
|
- }
|
|
|
+ if (CollUtil.isEmpty(packages)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
|
|
|
- // 56 营销中心财务部监察员
|
|
|
- // 59 营销中心财务部监察负责人
|
|
|
- // 55 营销中心财务部监察分管领导
|
|
|
+ // 获取积分包ID
|
|
|
+ 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));
|
|
|
|
|
|
- if (CollUtil.containsAny(roles, List.of(55, 59, 56))) {
|
|
|
- roleIds.add(56);
|
|
|
- // return List.of(56);
|
|
|
+ List<WmTaskSupervision> list =
|
|
|
+ list1.stream()
|
|
|
+ .filter(
|
|
|
+ ts -> {
|
|
|
+ if (!ts.getModifiable()) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return roles.contains(ts.getRoleId());
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 监督员
|
|
|
+ Boolean review = query.getReview();
|
|
|
+
|
|
|
+ Page<WmTask> taskPage;
|
|
|
+ boolean isService;
|
|
|
+ if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
+ isService = false;
|
|
|
+
|
|
|
+ if (review) {
|
|
|
+
|
|
|
+ List<String> taskIds =
|
|
|
+ list.stream()
|
|
|
+ .filter(ts -> StrUtil.equals(ts.getCreateBy(), user.getUsername()))
|
|
|
+ .map(ts -> ts.getTaskId().toString())
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (CollUtil.isEmpty(taskIds)) {
|
|
|
+ return page;
|
|
|
}
|
|
|
+ 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, taskIds));
|
|
|
+
|
|
|
+ } else {
|
|
|
+ List<Integer> supTaskIds =
|
|
|
+ list.stream()
|
|
|
+ .mapToInt(WmTaskSupervision::getTaskId)
|
|
|
+ .boxed()
|
|
|
+ .sorted()
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ taskPage =
|
|
|
+ taskService.listAvailableTaskForSupervision3(
|
|
|
+ new Page<>(query.getCurrent(), query.getSize()),
|
|
|
+ userIds1,
|
|
|
+ query.getTaskTypeId(),
|
|
|
+ query.getTaskId(),
|
|
|
+ query.getTaskNumber(),
|
|
|
+ pkgIds,
|
|
|
+ supTaskIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 服务商
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
|
|
|
- return CollUtil.isNotEmpty(roleIds) ? roleIds : List.of(49, 52, 53, 56);
|
|
|
+ isService = true;
|
|
|
|
|
|
+ // 获取当前积分包已经监督过的任务ID
|
|
|
+ List<WmTaskSupervision> collect =
|
|
|
+ list.stream()
|
|
|
+ .filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
+ if (CollUtil.isEmpty(collect)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ 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(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 {
|
|
|
+ isService = false;
|
|
|
+ List<Integer> visibleRoleIds = getVisibleRoleIds(roles);
|
|
|
+
|
|
|
+ list =
|
|
|
+ list.stream()
|
|
|
+ .filter(ts -> visibleRoleIds.contains(ts.getRoleId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<Integer> supTaskIds;
|
|
|
+ if (review) {
|
|
|
+ // 获取当前积分包已经监督过的任务ID
|
|
|
+ Set<Long> tsId =
|
|
|
+ taskSupervisionAdviceService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
+ .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
+ .eq(WmTaskSupervisionAdvice::getCreateBy, user.getUsername()))
|
|
|
+ .stream()
|
|
|
+ .mapToLong(WmTaskSupervisionAdvice::getTaskSupervisionId)
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
|
- public Page<Map<String, Object>> pageTaskSupervision(WmSupervisionDto.OnTaskSupervisionPage query) {
|
|
|
-
|
|
|
- // 操作人角色
|
|
|
- List<Integer> roles = SecurityUtils.getRoles();
|
|
|
- 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();
|
|
|
+ if (CollUtil.isEmpty(tsId)) {
|
|
|
+ return page;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- // 获取药品条件
|
|
|
- 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()))
|
|
|
+ // Set<Integer> supTaskIds = list.stream().filter(ts ->
|
|
|
+ // tsId.contains(ts.getSupervisionId())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
+ supTaskIds =
|
|
|
+ list.stream()
|
|
|
+ .filter(
|
|
|
+ ts ->
|
|
|
+ tsId.contains(ts.getSupervisionId())
|
|
|
+ && visibleRoleIds.contains(ts.getRoleId()))
|
|
|
+ .mapToInt(WmTaskSupervision::getTaskId)
|
|
|
.boxed()
|
|
|
.distinct()
|
|
|
.sorted()
|
|
|
.collect(Collectors.toList());
|
|
|
+ } else {
|
|
|
+ Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 =
|
|
|
+ list.stream()
|
|
|
+ .collect(
|
|
|
+ Collectors.groupingBy(
|
|
|
+ WmTaskSupervision::getSupervisionState,
|
|
|
+ Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
+
|
|
|
+ Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
|
|
|
+ Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
|
|
|
+ Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
|
|
|
+ Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
|
|
|
+ // Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
+
|
|
|
+ // 负责人
|
|
|
+ if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
+
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
+ supTaskIds = CollUtil.subtractToList(init, ckt1);
|
|
|
|
|
|
-
|
|
|
- // 根据角色判断药品
|
|
|
- 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 = CollUtil.isEmpty(drugtableIds) ? Collections.emptyList() : drugtableIds;
|
|
|
- }
|
|
|
-
|
|
|
- // 获取积分包
|
|
|
- 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());
|
|
|
-
|
|
|
- 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;
|
|
|
- }
|
|
|
-
|
|
|
- // 获取积分包ID
|
|
|
- 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));
|
|
|
-
|
|
|
- List<WmTaskSupervision> list = list1.stream().filter(ts -> !ts.getModifiable()).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
- // 监督员
|
|
|
- Boolean review = query.getReview();
|
|
|
-
|
|
|
- Page<WmTask> taskPage;
|
|
|
- boolean isService;
|
|
|
- if (CollUtil.containsAny(roles, List.of(49, 52, 53, 56))) {
|
|
|
- isService = false;
|
|
|
-
|
|
|
- if (review) {
|
|
|
-
|
|
|
- List<String> taskIds =
|
|
|
- list.stream()
|
|
|
- .filter(ts -> StrUtil.equals(ts.getCreateBy(), user.getUsername()))
|
|
|
- .map(ts -> ts.getTaskId().toString()).distinct().collect(Collectors.toList());
|
|
|
- if (CollUtil.isEmpty(taskIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
- 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, taskIds));
|
|
|
-
|
|
|
- } else {
|
|
|
- List<Integer> supTaskIds = list.stream().mapToInt(WmTaskSupervision::getTaskId).boxed().sorted().distinct().collect(Collectors.toList());
|
|
|
- taskPage = taskService.listAvailableTaskForSupervision3(
|
|
|
- new Page<>(query.getCurrent(), query.getSize()),
|
|
|
- userIds1,
|
|
|
- query.getTaskTypeId(),
|
|
|
- query.getTaskId(),
|
|
|
- query.getTaskNumber(),
|
|
|
- pkgIds, supTaskIds);
|
|
|
- }
|
|
|
- }
|
|
|
- // 服务商
|
|
|
- else if (CollUtil.containsAny(roles, List.of(37))) {
|
|
|
-
|
|
|
- isService = true;
|
|
|
-
|
|
|
- // 获取当前积分包已经监督过的任务ID
|
|
|
- List<WmTaskSupervision> collect = list.stream().filter(ts -> UpmsState.TaskSupervisionState.PASSED.equals(ts.getSupervisionState())).collect(Collectors.toList());
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(collect)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
-
|
|
|
- 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(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 {
|
|
|
- isService = false;
|
|
|
- List<Integer> visibleRoleIds = getVisibleRoleIds(roles);
|
|
|
-
|
|
|
- list = list.stream().filter(ts -> visibleRoleIds.contains(ts.getRoleId())).collect(Collectors.toList());
|
|
|
-
|
|
|
- List<Integer> supTaskIds;
|
|
|
- if (review) {
|
|
|
- // 获取当前积分包已经监督过的任务ID
|
|
|
- Set<Long> tsId = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
- .eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
- .eq(WmTaskSupervisionAdvice::getCreateBy, user.getUsername()))
|
|
|
- .stream().mapToLong(WmTaskSupervisionAdvice::getTaskSupervisionId).boxed().collect(Collectors.toSet());
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(tsId)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
- // Set<Integer> supTaskIds = list.stream().filter(ts -> tsId.contains(ts.getSupervisionId())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
|
|
|
- supTaskIds = list.stream().filter(ts -> tsId.contains(ts.getSupervisionId()) && visibleRoleIds.contains(ts.getRoleId())).mapToInt(WmTaskSupervision::getTaskId).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
- } else {
|
|
|
- Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
|
|
|
- .collect(Collectors.groupingBy(WmTaskSupervision::getSupervisionState, Collectors.mapping(WmTaskSupervision::getTaskId, Collectors.toSet())));
|
|
|
-
|
|
|
-
|
|
|
- Set<Integer> init = collect1.get(UpmsState.TaskSupervisionState.INIT);
|
|
|
- Set<Integer> ckt1 = collect1.get(UpmsState.TaskSupervisionState.CKT1);
|
|
|
- Set<Integer> ckt2 = collect1.get(UpmsState.TaskSupervisionState.CKT2);
|
|
|
- Set<Integer> passed = collect1.get(UpmsState.TaskSupervisionState.PASSED);
|
|
|
- // Set<Integer> rejected = collect1.get(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
-
|
|
|
- // 负责人
|
|
|
- if (CollUtil.containsAny(roles, List.of(57, 58, 59, 60))) {
|
|
|
-
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(ckt1, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(init, temp);
|
|
|
- supTaskIds = CollUtil.subtractToList(init, ckt1);
|
|
|
-
|
|
|
- }
|
|
|
- // 分管领导
|
|
|
- else if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
- supTaskIds = CollUtil.subtractToList(ckt1, ckt2);
|
|
|
-
|
|
|
- }
|
|
|
- // 事业部总经理
|
|
|
- else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
- // Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
- // supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
- supTaskIds = CollUtil.subtractToList(ckt2, passed);
|
|
|
- } else {
|
|
|
- throw new BizException("无监督权限");
|
|
|
- }
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
-
|
|
|
- // taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
- }
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
- return page;
|
|
|
- }
|
|
|
-
|
|
|
- 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 if (CollUtil.containsAny(roles, List.of(51, 54, 55, 61))) {
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(ckt2, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(ckt1, temp);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt1, ckt2);
|
|
|
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- List<WmTask> records = taskPage.getRecords();
|
|
|
-
|
|
|
- if (CollUtil.isEmpty(records)) {
|
|
|
- return page;
|
|
|
+ // 事业部总经理
|
|
|
+ else if (CollUtil.containsAny(roles, List.of(39))) {
|
|
|
+ // Set<Integer> temp = CollUtil.unionDistinct(passed, rejected);
|
|
|
+ // supTaskIds = CollUtil.subtractToList(ckt2, temp);
|
|
|
+ supTaskIds = CollUtil.subtractToList(ckt2, passed);
|
|
|
+ } else {
|
|
|
+ throw new BizException("无监督权限");
|
|
|
}
|
|
|
|
|
|
- Map<String, List<WmTask>> collect = records.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
-
|
|
|
- List<Map<String, Object>> maps = new ArrayList<>(records.size());
|
|
|
- for (Map.Entry<String, List<WmTask>> entry : collect.entrySet()) {
|
|
|
-
|
|
|
- List<Map<String, Object>> m = taskService.listTaskInfo(entry.getValue(), entry.getKey());
|
|
|
-
|
|
|
- maps.addAll(m);
|
|
|
+ if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ return page;
|
|
|
}
|
|
|
|
|
|
- // 封装监察信息
|
|
|
- Map<Integer, WmTaskSupervision> taskId2TaskSupervisionMap = list1.stream().collect(Collectors.toMap(WmTaskSupervision::getTaskId, Function.identity()));
|
|
|
-
|
|
|
-
|
|
|
- List<SysUser> users = userService.list(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getDelFlag, CommonConstants.STATUS_NORMAL).eq(SysUser::getLockFlag, CommonConstants.STATUS_NORMAL));
|
|
|
- // List<SysUser> users = userService.list();
|
|
|
- Map<String, SysUser> userMap = users.stream().collect(Collectors.toMap(SysUser::getUsername, Function.identity(), (v1, v2) -> v2));
|
|
|
- Set<Integer> userIds = users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
- List<SysUserRole> userRoles = userRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
- Map<Integer, List<SysUserRole>> userRoleMap = userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
- Set<Integer> roleId = userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
- Map<Integer, SysRole> roleMap = roleService.listByIds(roleId).stream().collect(Collectors.toMap(SysRole::getRoleId, Function.identity()));
|
|
|
-
|
|
|
-
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
|
|
|
- maps.forEach(m -> {
|
|
|
- Integer tId = Integer.valueOf(m.get("id").toString());
|
|
|
- WmTaskSupervision wmTaskSupervision = taskId2TaskSupervisionMap.get(tId);
|
|
|
+ // taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()),
|
|
|
+ // Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
|
|
|
+ }
|
|
|
|
|
|
- if (wmTaskSupervision == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- m.put("modifiable", wmTaskSupervision.getModifiable());
|
|
|
-
|
|
|
- String supervisionMsg = String.format("【%s】,%s", wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过", wmTaskSupervision.getRemarks());
|
|
|
-
|
|
|
- m.put("supervisionMessage", supervisionMsg);
|
|
|
-
|
|
|
- List<String> advMsg;
|
|
|
- if (isService) {
|
|
|
- advMsg = Collections.emptyList();
|
|
|
- } else {
|
|
|
- List<WmTaskSupervisionAdvice> advices = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery().eq(WmTaskSupervisionAdvice::getTaskSupervisionId, wmTaskSupervision.getSupervisionId()));
|
|
|
- advMsg = advices.stream().map(adv -> {
|
|
|
- SysUser u = userMap.get(adv.getCreateBy());
|
|
|
- SysUserRole sysUserRole = userRoleMap.get(u.getUserId()).get(0);
|
|
|
- SysRole role = roleMap.get(sysUserRole.getRoleId());
|
|
|
- String roleName = (role == null ? " " : (StrUtil.isNotBlank(role.getRoleDesc()) ? role.getRoleDesc() : role.getRoleName()));
|
|
|
- String realName = u.getRealname();
|
|
|
- String date = formatter.format(adv.getCreateTime());
|
|
|
- String resultMsg = adv.getAdviceResult() ? " 通过 " : " 不通过 ";
|
|
|
- String remarks = StrUtil.isBlank(adv.getRemarks()) ? " " : adv.getRemarks();
|
|
|
-
|
|
|
- return String.format("%s【%s】,审核【%s】,监督意见为【%s】(%s)。", roleName, realName, resultMsg, remarks, date);
|
|
|
-
|
|
|
-
|
|
|
- }).collect(Collectors.toList());
|
|
|
- }
|
|
|
+ if (CollUtil.isEmpty(supTaskIds)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ 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));
|
|
|
+ }
|
|
|
|
|
|
+ List<WmTask> records = taskPage.getRecords();
|
|
|
|
|
|
- m.put("adviceMessages", advMsg);
|
|
|
- });
|
|
|
+ if (CollUtil.isEmpty(records)) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
|
|
|
+ Map<String, List<WmTask>> collect =
|
|
|
+ records.stream().collect(Collectors.groupingBy(WmTask::getScorePackageId));
|
|
|
|
|
|
- page.setRecords(maps);
|
|
|
- page.setTotal(taskPage.getTotal());
|
|
|
+ List<Map<String, Object>> maps = new ArrayList<>(records.size());
|
|
|
+ for (Map.Entry<String, List<WmTask>> entry : collect.entrySet()) {
|
|
|
|
|
|
- return page;
|
|
|
+ List<Map<String, Object>> m = taskService.listTaskInfo(entry.getValue(), entry.getKey());
|
|
|
|
|
|
+ maps.addAll(m);
|
|
|
}
|
|
|
|
|
|
- // 执行任务监察
|
|
|
- public Boolean doTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser operator) {
|
|
|
-
|
|
|
- // 监察任务是否有监察记录
|
|
|
- WmTaskSupervision supervision = taskSupervisionService.getSupervisionByTaskId(resource.getTaskId());
|
|
|
-
|
|
|
- // 存在监察记录
|
|
|
- if (supervision != null) {
|
|
|
+ // 封装监察信息
|
|
|
+ Map<Integer, WmTaskSupervision> taskId2TaskSupervisionMap =
|
|
|
+ list1.stream().collect(Collectors.toMap(WmTaskSupervision::getTaskId, Function.identity()));
|
|
|
+
|
|
|
+ List<SysUser> users =
|
|
|
+ userService.list(
|
|
|
+ Wrappers.<SysUser>lambdaQuery()
|
|
|
+ .eq(SysUser::getDelFlag, CommonConstants.STATUS_NORMAL)
|
|
|
+ .eq(SysUser::getLockFlag, CommonConstants.STATUS_NORMAL));
|
|
|
+ // List<SysUser> users = userService.list();
|
|
|
+ Map<String, SysUser> userMap =
|
|
|
+ users.stream()
|
|
|
+ .collect(Collectors.toMap(SysUser::getUsername, Function.identity(), (v1, v2) -> v2));
|
|
|
+ Set<Integer> userIds =
|
|
|
+ users.stream().mapToInt(SysUser::getUserId).boxed().collect(Collectors.toSet());
|
|
|
+ List<SysUserRole> userRoles =
|
|
|
+ userRoleService.list(
|
|
|
+ Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
|
|
|
+ Map<Integer, List<SysUserRole>> userRoleMap =
|
|
|
+ userRoles.stream().collect(Collectors.groupingBy(SysUserRole::getUserId));
|
|
|
+ Set<Integer> roleId =
|
|
|
+ userRoles.stream().mapToInt(SysUserRole::getRoleId).boxed().collect(Collectors.toSet());
|
|
|
+ Map<Integer, SysRole> roleMap =
|
|
|
+ roleService.listByIds(roleId).stream()
|
|
|
+ .collect(Collectors.toMap(SysRole::getRoleId, Function.identity()));
|
|
|
+
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
|
|
|
+ maps.forEach(
|
|
|
+ m -> {
|
|
|
+ Integer tId = Integer.valueOf(m.get("id").toString());
|
|
|
+ WmTaskSupervision wmTaskSupervision = taskId2TaskSupervisionMap.get(tId);
|
|
|
+
|
|
|
+ if (wmTaskSupervision == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ m.put("modifiable", wmTaskSupervision.getModifiable());
|
|
|
+
|
|
|
+ String supervisionMsg =
|
|
|
+ String.format(
|
|
|
+ "【%s】,%s",
|
|
|
+ wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过",
|
|
|
+ wmTaskSupervision.getRemarks());
|
|
|
+
|
|
|
+ m.put("supervisionMessage", supervisionMsg);
|
|
|
+
|
|
|
+ List<String> advMsg;
|
|
|
+ if (isService) {
|
|
|
+ advMsg = Collections.emptyList();
|
|
|
+ } else {
|
|
|
+ List<WmTaskSupervisionAdvice> advices =
|
|
|
+ taskSupervisionAdviceService.list(
|
|
|
+ Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
+ .eq(
|
|
|
+ WmTaskSupervisionAdvice::getTaskSupervisionId,
|
|
|
+ wmTaskSupervision.getSupervisionId()));
|
|
|
+ advMsg =
|
|
|
+ advices.stream()
|
|
|
+ .map(
|
|
|
+ adv -> {
|
|
|
+ SysUser u = userMap.get(adv.getCreateBy());
|
|
|
+ SysUserRole sysUserRole = userRoleMap.get(u.getUserId()).get(0);
|
|
|
+ SysRole role = roleMap.get(sysUserRole.getRoleId());
|
|
|
+ String roleName =
|
|
|
+ (role == null
|
|
|
+ ? " "
|
|
|
+ : (StrUtil.isNotBlank(role.getRoleDesc())
|
|
|
+ ? role.getRoleDesc()
|
|
|
+ : role.getRoleName()));
|
|
|
+ String realName = u.getRealname();
|
|
|
+ String date = formatter.format(adv.getCreateTime());
|
|
|
+ String resultMsg = adv.getAdviceResult() ? " 通过 " : " 不通过 ";
|
|
|
+ String remarks =
|
|
|
+ StrUtil.isBlank(adv.getRemarks()) ? " " : adv.getRemarks();
|
|
|
+
|
|
|
+ return String.format(
|
|
|
+ "%s【%s】,审核【%s】,监督意见为【%s】(%s)。",
|
|
|
+ roleName, realName, resultMsg, remarks, date);
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
- boolean modifiable = false;
|
|
|
- String remarks = resource.getRemarks();
|
|
|
+ m.put("adviceMessages", advMsg);
|
|
|
+ });
|
|
|
|
|
|
- // 如果监督记录创建人不是当前人,就记录监督意见
|
|
|
- if (!StrUtil.equals(operator.getUsername(), supervision.getCreateBy())) {
|
|
|
- modifiable = !resource.getSupervision();
|
|
|
- remarks = supervision.getRemarks();
|
|
|
+ page.setRecords(maps);
|
|
|
+ page.setTotal(taskPage.getTotal());
|
|
|
|
|
|
- taskSupervisionAdviceService.createAdvice(supervision.getSupervisionId(), resource, supervision.getRemarks(), operator);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
|
|
|
+ // 执行任务监察
|
|
|
+ public Boolean doTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser operator) {
|
|
|
|
|
|
- } else {
|
|
|
- // 监察员重新提交,删除历史的审核意见
|
|
|
- taskSupervisionAdviceService.delAdvice(supervision.getSupervisionId(), operator);
|
|
|
- }
|
|
|
+ // 监察任务是否有监察记录
|
|
|
+ WmTaskSupervision supervision =
|
|
|
+ taskSupervisionService.getSupervisionByTaskId(resource.getTaskId());
|
|
|
|
|
|
+ // 存在监察记录
|
|
|
+ if (supervision != null) {
|
|
|
|
|
|
- taskSupervisionService.updateSupervision(supervision.getSupervisionId(), remarks, modifiable, operator);
|
|
|
+ boolean modifiable = false;
|
|
|
+ String remarks = resource.getRemarks();
|
|
|
|
|
|
+ // 如果监督记录创建人不是当前人,就记录监督意见
|
|
|
+ if (!StrUtil.equals(operator.getUsername(), supervision.getCreateBy())) {
|
|
|
+ modifiable = !resource.getSupervision();
|
|
|
+ remarks = supervision.getRemarks();
|
|
|
|
|
|
- }
|
|
|
- // 不存在监察记录
|
|
|
- else {
|
|
|
+ taskSupervisionAdviceService.createAdvice(
|
|
|
+ supervision.getSupervisionId(), resource, supervision.getRemarks(), operator);
|
|
|
|
|
|
- taskSupervisionService.createTaskSupervision(resource, operator);
|
|
|
+ } else {
|
|
|
+ // 监察员重新提交,删除历史的审核意见
|
|
|
+ taskSupervisionAdviceService.delAdvice(supervision.getSupervisionId(), operator);
|
|
|
+ }
|
|
|
|
|
|
- // 更新监督结果
|
|
|
- packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
+ taskSupervisionService.updateSupervision(
|
|
|
+ supervision.getSupervisionId(), remarks, modifiable, operator);
|
|
|
|
|
|
- }
|
|
|
- return true;
|
|
|
}
|
|
|
+ // 不存在监察记录
|
|
|
+ else {
|
|
|
|
|
|
- // 执行任务监察(批量)
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public Boolean doTaskSupervisionBatch(WmSupervisionDto.OnTaskSupervisionBatch resource, HnqzUser user) {
|
|
|
+ taskSupervisionService.createTaskSupervision(resource, operator);
|
|
|
|
|
|
- resource.getSupervisionIds().forEach(id -> {
|
|
|
- taskSupervisionService.updateSupervision(id, resource.getRemarks(), !resource.getSupervision(), user);
|
|
|
- });
|
|
|
- return true;
|
|
|
+ // 更新监督结果
|
|
|
+ packageStatusService.updateSupervisionFlag(resource.getPkgId());
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 生成报告pdf
|
|
|
- *
|
|
|
- * @param entId 企业ID
|
|
|
- * @param user 操作人
|
|
|
- * @param period 周期
|
|
|
- * @return 本地路径
|
|
|
- */
|
|
|
- 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, period, user);
|
|
|
-
|
|
|
- PdfUtils.generateSupervisionReport(targetPath, PageSize.A4, true, envPaths.get(OsEnvUtils.TargetFile.FONT.getName()) + "SimSun.ttc", datas);
|
|
|
-
|
|
|
- File pdf = new File(targetPath);
|
|
|
- MockMultipartFile multipartFile = new MockMultipartFile("file", pdf.getName(), null, Files.newInputStream(pdf.toPath()));
|
|
|
- Map<String, String> uploaded = fileService.upload(multipartFile, user.getUsername());
|
|
|
-
|
|
|
- // 上传到oss
|
|
|
- return uploaded;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 执行任务监察(批量)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean doTaskSupervisionBatch(
|
|
|
+ WmSupervisionDto.OnTaskSupervisionBatch resource, HnqzUser user) {
|
|
|
+
|
|
|
+ resource
|
|
|
+ .getSupervisionIds()
|
|
|
+ .forEach(
|
|
|
+ id -> {
|
|
|
+ taskSupervisionService.updateSupervision(
|
|
|
+ id, resource.getRemarks(), !resource.getSupervision(), user);
|
|
|
+ });
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成报告pdf
|
|
|
+ *
|
|
|
+ * @param entId 企业ID
|
|
|
+ * @param user 操作人
|
|
|
+ * @param period 周期
|
|
|
+ * @return 本地路径
|
|
|
+ */
|
|
|
+ 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, period, user);
|
|
|
+
|
|
|
+ PdfUtils.generateSupervisionReport(
|
|
|
+ targetPath,
|
|
|
+ PageSize.A4,
|
|
|
+ true,
|
|
|
+ envPaths.get(OsEnvUtils.TargetFile.FONT.getName()) + "SimSun.ttc",
|
|
|
+ datas);
|
|
|
+
|
|
|
+ File pdf = new File(targetPath);
|
|
|
+ MockMultipartFile multipartFile =
|
|
|
+ new MockMultipartFile("file", pdf.getName(), null, Files.newInputStream(pdf.toPath()));
|
|
|
+ Map<String, String> uploaded = fileService.upload(multipartFile, user.getUsername());
|
|
|
+
|
|
|
+ // 上传到oss
|
|
|
+ return uploaded;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Object[][] buildSupervisionReportDatas(Integer entId, LocalDate[] period, HnqzUser user) {
|
|
|
+
|
|
|
+ // 获取企业
|
|
|
+ SysDept service = deptService.getById(entId);
|
|
|
+
|
|
|
+ // 获取服务商下的所有c端包
|
|
|
+
|
|
|
+ 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]);
|
|
|
}
|
|
|
|
|
|
- private Object[][] buildSupervisionReportDatas(Integer entId, LocalDate[] period, HnqzUser user) {
|
|
|
-
|
|
|
-
|
|
|
- // 获取企业
|
|
|
- SysDept service = deptService.getById(entId);
|
|
|
+ List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
|
|
|
- // 获取服务商下的所有c端包
|
|
|
-
|
|
|
- LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString());
|
|
|
+ if (CollUtil.isEmpty(pkgs)) {
|
|
|
+ throw new BizException("当前服务商不存在可用的执行包,无法导出");
|
|
|
+ }
|
|
|
+ Map<String, WmScorePackage> pkgMap =
|
|
|
+ pkgs.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
+
|
|
|
+ // 获取c端包下的所有的产品
|
|
|
+ Map<String, WmDaDrugEntDrugtable> drugMap =
|
|
|
+ wmDaDrugEntDrugtableMapper
|
|
|
+ .selectList(
|
|
|
+ Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
|
|
|
+ .in(
|
|
|
+ WmDaDrugEntDrugtable::getId,
|
|
|
+ pkgs.stream()
|
|
|
+ .flatMap(p -> Arrays.stream(p.getDrugtable()))
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList())))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
|
|
|
+
|
|
|
+ // 获取服务类型
|
|
|
+ Map<String, String> taskTypeMap =
|
|
|
+ taskTypeService
|
|
|
+ .list(Wrappers.<WmTaskType>lambdaQuery().le(WmTaskType::getId, "100"))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
|
|
|
+
|
|
|
+ // 获取包下的所有任务
|
|
|
+ List<WmTask> tasks =
|
|
|
+ taskService.list(
|
|
|
+ Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgMap.keySet()));
|
|
|
+ Map<String, WmTask> tid2EntityMap =
|
|
|
+ tasks.stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
|
|
|
+
|
|
|
+ List<Integer> taskIds =
|
|
|
+ tasks.stream()
|
|
|
+ .mapToInt(t -> Integer.parseInt(t.getId()))
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 代表名称
|
|
|
+ List<Integer> uid =
|
|
|
+ tasks.stream()
|
|
|
+ .mapToInt(t -> Integer.parseInt(t.getTaskUserId()))
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<Integer, String> userMap =
|
|
|
+ userService.listByIds(uid).stream()
|
|
|
+ .collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
|
|
|
+
|
|
|
+ List<WmTaskSupervision> taskSupervisions =
|
|
|
+ taskSupervisionService.list(
|
|
|
+ Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
+ .in(WmTaskSupervision::getTaskId, taskIds)
|
|
|
+ .eq(WmTaskSupervision::getCreateBy, user.getUsername()));
|
|
|
+
|
|
|
+ // 获取监督意见
|
|
|
+ List<Long> supIds =
|
|
|
+ taskSupervisions.stream()
|
|
|
+ .mapToLong(WmTaskSupervision::getSupervisionId)
|
|
|
+ .boxed()
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(supIds)) {
|
|
|
+ throw new BizException("当前操作人不存在监督记录,不能导出");
|
|
|
+ }
|
|
|
|
|
|
- if (ArrayUtil.isNotEmpty(period)) {
|
|
|
- queryWrapper.ge(WmScorePackage::getStartTime, period[0]);
|
|
|
- queryWrapper.le(WmScorePackage::getEndTime, period[1]);
|
|
|
+ Map<Long, List<WmTaskSupervisionAdvice>> advices =
|
|
|
+ taskSupervisionAdviceService
|
|
|
+ .list(
|
|
|
+ Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
+ .in(WmTaskSupervisionAdvice::getTaskSupervisionId, supIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.groupingBy(WmTaskSupervisionAdvice::getTaskSupervisionId));
|
|
|
+
|
|
|
+ // {{"2024年第四季度" + user.getRealName() + "监督结果"}, {"服务ID", "服务类型", "代表名称", "产品名称", "生产企业",
|
|
|
+ // "执行包名称", "周期", "监督结果", "监督意见", "部门负责人意见", "分管领导意见", "总经理意见"}};
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
|
|
+ Object[][] datas = new Object[taskSupervisions.size() + 2][];
|
|
|
+ for (int i = 0; i < datas.length; ++i) {
|
|
|
+ datas[i] = new Object[i == 0 ? 1 : 14];
|
|
|
+ if (i == 0) {
|
|
|
+ datas[0][0] =
|
|
|
+ "2024 年第 四 季度 "
|
|
|
+ + service.getName()
|
|
|
+ + " 服务监督结果(监督人:"
|
|
|
+ + user.getRealName()
|
|
|
+ + ",服务总数:"
|
|
|
+ + taskIds.size()
|
|
|
+ + ",本人监督数:"
|
|
|
+ + supIds.size()
|
|
|
+ + " )";
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (i == 1) {
|
|
|
+ datas[1][0] = "服务ID";
|
|
|
+ datas[1][1] = "服务类型";
|
|
|
+ datas[1][2] = "服务项目积分(单价)";
|
|
|
+ datas[1][3] = "服务供应商公司名称";
|
|
|
+ datas[1][4] = "代表名称";
|
|
|
+ datas[1][5] = "产品名称";
|
|
|
+ datas[1][6] = "生产企业";
|
|
|
+ datas[1][7] = "执行包名称";
|
|
|
+ datas[1][8] = "执行包周期";
|
|
|
+ datas[1][9] = "监督结果";
|
|
|
+ datas[1][10] = "监督意见";
|
|
|
+ datas[1][11] = "部门负责人意见";
|
|
|
+ datas[1][12] = "分管领导意见";
|
|
|
+ datas[1][13] = "监督时间";
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ WmTaskSupervision wmTaskSupervision = taskSupervisions.get(i - 2);
|
|
|
+ // 列的长度每次都变化。每次都要重新申请空间(长度)
|
|
|
+ for (int j = 0; j < datas[i].length; j++) {
|
|
|
+
|
|
|
+ // 服务ID
|
|
|
+ if (j == 0) {
|
|
|
+ datas[i][j] = wmTaskSupervision.getTaskId().toString();
|
|
|
}
|
|
|
|
|
|
- List<WmScorePackage> pkgs = packageService.list(queryWrapper);
|
|
|
+ // 服务类型
|
|
|
+ if (j == 1) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
|
|
|
- if (CollUtil.isEmpty(pkgs)) {
|
|
|
- throw new BizException("当前服务商不存在可用的执行包,无法导出");
|
|
|
+ datas[i][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
|
|
|
}
|
|
|
- Map<String, WmScorePackage> pkgMap = pkgs.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
|
|
|
- // 获取c端包下的所有的产品
|
|
|
- Map<String, WmDaDrugEntDrugtable> drugMap = wmDaDrugEntDrugtableMapper.selectList(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getId, pkgs.stream().flatMap(p -> Arrays.stream(p.getDrugtable())).distinct().sorted().collect(Collectors.toList()))).stream().collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
|
|
|
-
|
|
|
- // 获取服务类型
|
|
|
- Map<String, String> taskTypeMap = taskTypeService.list(Wrappers.<WmTaskType>lambdaQuery().le(WmTaskType::getId, "100")).stream().collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
|
|
|
-
|
|
|
- // 获取包下的所有任务
|
|
|
- List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgMap.keySet()));
|
|
|
- Map<String, WmTask> tid2EntityMap = tasks.stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
|
|
|
+ // 服务单价
|
|
|
+ if (j == 2) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ datas[i][j] = wmTask != null ? wmTask.getScore().toString() : "";
|
|
|
+ }
|
|
|
|
|
|
- List<Integer> taskIds = tasks.stream().mapToInt(t -> Integer.parseInt(t.getId())).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
+ // 服务供应商名称
|
|
|
+ if (j == 3) {
|
|
|
+ datas[i][j] = service.getName();
|
|
|
+ }
|
|
|
|
|
|
// 代表名称
|
|
|
- List<Integer> uid = tasks.stream().mapToInt(t -> Integer.parseInt(t.getTaskUserId())).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
- Map<Integer, String> userMap = userService.listByIds(uid).stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
|
|
|
-
|
|
|
- List<WmTaskSupervision> taskSupervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().in(WmTaskSupervision::getTaskId, taskIds).eq(WmTaskSupervision::getCreateBy, user.getUsername()));
|
|
|
+ if (j == 4) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ datas[i][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
|
|
|
+ }
|
|
|
|
|
|
- // 获取监督意见
|
|
|
- List<Long> supIds = taskSupervisions.stream().mapToLong(WmTaskSupervision::getSupervisionId).boxed().distinct().sorted().collect(Collectors.toList());
|
|
|
+ // 产品名称
|
|
|
+ if (j == 5) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ String drugId = scorePackage.getDrugtable()[0];
|
|
|
+ WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
|
|
|
- if (CollUtil.isEmpty(supIds)) {
|
|
|
- throw new BizException("当前操作人不存在监督记录,不能导出");
|
|
|
+ datas[i][j] = drugtable.getDrugname();
|
|
|
}
|
|
|
|
|
|
+ // 生产企业
|
|
|
+ if (j == 6) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ String drugId = scorePackage.getDrugtable()[0];
|
|
|
+ WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
+ datas[i][j] = drugtable.getDrugEntName();
|
|
|
+ }
|
|
|
|
|
|
- Map<Long, List<WmTaskSupervisionAdvice>> advices = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery().in(WmTaskSupervisionAdvice::getTaskSupervisionId, supIds)).stream().collect(Collectors.groupingBy(WmTaskSupervisionAdvice::getTaskSupervisionId));
|
|
|
-
|
|
|
-
|
|
|
- // {{"2024年第四季度" + user.getRealName() + "监督结果"}, {"服务ID", "服务类型", "代表名称", "产品名称", "生产企业", "执行包名称", "周期", "监督结果", "监督意见", "部门负责人意见", "分管领导意见", "总经理意见"}};
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
|
|
- Object[][] datas = new Object[taskSupervisions.size() + 2][];
|
|
|
- for (int i = 0; i < datas.length; ++i) {
|
|
|
- datas[i] = new Object[i == 0 ? 1 : 14];
|
|
|
- if (i == 0) {
|
|
|
- datas[0][0] = "2024 年第 四 季度 " + service.getName() + " 服务监督结果(监督人:" + user.getRealName() + ",服务总数:" + taskIds.size() + ",本人监督数:" + supIds.size() + " )";
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if (i == 1) {
|
|
|
- datas[1][0] = "服务ID";
|
|
|
- datas[1][1] = "服务类型";
|
|
|
- datas[1][2] = "服务项目积分(单价)";
|
|
|
- datas[1][3] = "服务供应商公司名称";
|
|
|
- datas[1][4] = "代表名称";
|
|
|
- datas[1][5] = "产品名称";
|
|
|
- datas[1][6] = "生产企业";
|
|
|
- datas[1][7] = "执行包名称";
|
|
|
- datas[1][8] = "执行包周期";
|
|
|
- datas[1][9] = "监督结果";
|
|
|
- datas[1][10] = "监督意见";
|
|
|
- datas[1][11] = "部门负责人意见";
|
|
|
- datas[1][12] = "分管领导意见";
|
|
|
- datas[1][13] = "监督时间";
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- WmTaskSupervision wmTaskSupervision = taskSupervisions.get(i - 2);
|
|
|
- // 列的长度每次都变化。每次都要重新申请空间(长度)
|
|
|
- for (int j = 0; j < datas[i].length; j++) {
|
|
|
-
|
|
|
-
|
|
|
- // 服务ID
|
|
|
- if (j == 0) {
|
|
|
- datas[i][j] = wmTaskSupervision.getTaskId().toString();
|
|
|
- }
|
|
|
-
|
|
|
- // 服务类型
|
|
|
- if (j == 1) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
-
|
|
|
- datas[i][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
|
|
|
- }
|
|
|
-
|
|
|
- // 服务单价
|
|
|
- if (j == 2) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- datas[i][j] = wmTask != null ? wmTask.getScore().toString() : "";
|
|
|
- }
|
|
|
-
|
|
|
- // 服务供应商名称
|
|
|
- if (j == 3) {
|
|
|
- datas[i][j] = service.getName();
|
|
|
- }
|
|
|
-
|
|
|
- // 代表名称
|
|
|
- if (j == 4) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- datas[i][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
|
|
|
- }
|
|
|
-
|
|
|
- // 产品名称
|
|
|
- if (j == 5) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- String drugId = scorePackage.getDrugtable()[0];
|
|
|
- WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
-
|
|
|
-
|
|
|
- datas[i][j] = drugtable.getDrugname();
|
|
|
- }
|
|
|
-
|
|
|
- // 生产企业
|
|
|
- if (j == 6) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- String drugId = scorePackage.getDrugtable()[0];
|
|
|
- WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
- datas[i][j] = drugtable.getDrugEntName();
|
|
|
- }
|
|
|
-
|
|
|
- // 执行包名称
|
|
|
- if (j == 7) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- datas[i][j] = scorePackage.getScorePackageName();
|
|
|
- }
|
|
|
-
|
|
|
- // 周期
|
|
|
- if (j == 8) {
|
|
|
- WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- datas[i][j] = String.format("%s至%s", formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
|
|
|
- }
|
|
|
-
|
|
|
- // 监督结果
|
|
|
- if (j == 9) {
|
|
|
- datas[i][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
|
|
|
- }
|
|
|
-
|
|
|
- // 监督意见
|
|
|
- if (j == 10) {
|
|
|
- datas[i][j] = wmTaskSupervision.getRemarks();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // 部门负责人意见
|
|
|
- if (j == 11) {
|
|
|
- List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
- if (CollUtil.isNotEmpty(supervisionAdvices)) {
|
|
|
- WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
|
|
|
- datas[i][j] = advice != null ? advice.getRemarks() : "";
|
|
|
- } else {
|
|
|
- datas[i][j] = "";
|
|
|
- }
|
|
|
-
|
|
|
+ // 执行包名称
|
|
|
+ if (j == 7) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ datas[i][j] = scorePackage.getScorePackageName();
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ // 周期
|
|
|
+ if (j == 8) {
|
|
|
+ WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ datas[i][j] =
|
|
|
+ String.format(
|
|
|
+ "%s至%s",
|
|
|
+ formatter.format(scorePackage.getStartTime()),
|
|
|
+ formatter.format(scorePackage.getEndTime()));
|
|
|
+ }
|
|
|
|
|
|
- // 分管领导意见
|
|
|
- if (j == 12) {
|
|
|
- List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
- if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
|
|
|
- WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
|
|
|
- datas[i][j] = advice != null ? advice.getRemarks() : "";
|
|
|
- } else {
|
|
|
- datas[i][j] = "";
|
|
|
- }
|
|
|
- }
|
|
|
+ // 监督结果
|
|
|
+ if (j == 9) {
|
|
|
+ datas[i][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
|
|
|
+ }
|
|
|
|
|
|
- // 监督时间
|
|
|
- if (j == 13) {
|
|
|
- datas[i][j] = formatter.format(wmTaskSupervision.getCreateTime().toLocalDate());
|
|
|
+ // 监督意见
|
|
|
+ if (j == 10) {
|
|
|
+ datas[i][j] = wmTaskSupervision.getRemarks();
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
+ // 部门负责人意见
|
|
|
+ if (j == 11) {
|
|
|
+ List<WmTaskSupervisionAdvice> supervisionAdvices =
|
|
|
+ advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
+ if (CollUtil.isNotEmpty(supervisionAdvices)) {
|
|
|
+ WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
|
|
|
+ datas[i][j] = advice != null ? advice.getRemarks() : "";
|
|
|
+ } else {
|
|
|
+ datas[i][j] = "";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ // 分管领导意见
|
|
|
+ if (j == 12) {
|
|
|
+ List<WmTaskSupervisionAdvice> supervisionAdvices =
|
|
|
+ advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
+ if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
|
|
|
+ WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
|
|
|
+ datas[i][j] = advice != null ? advice.getRemarks() : "";
|
|
|
+ } else {
|
|
|
+ datas[i][j] = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // int idx = 2;
|
|
|
- // for (WmTaskSupervision wmTaskSupervision : taskSupervisions) {
|
|
|
- // for (int j = 0; j < 12; j++) {
|
|
|
- //
|
|
|
- // // 服务ID
|
|
|
- // if (j == 0) {
|
|
|
- // datas[idx][j] = wmTaskSupervision.getTaskId().toString();
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 服务类型
|
|
|
- // if (j == 1) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- //
|
|
|
- // datas[idx][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 代表名称
|
|
|
- // if (j == 2) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- // datas[idx][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 产品名称
|
|
|
- // if (j == 3) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- // String drugId = scorePackage.getDrugtable()[0];
|
|
|
- // WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
- //
|
|
|
- //
|
|
|
- // datas[idx][j] = drugtable.getDrugname();
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 生产企业
|
|
|
- // if (j == 4) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- // String drugId = scorePackage.getDrugtable()[0];
|
|
|
- // WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
- // datas[idx][j] = drugtable.getDrugEntName();
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 执行包名称
|
|
|
- // if (j == 5) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- // datas[idx][j] = scorePackage.getScorePackageName();
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 周期
|
|
|
- // if (j == 6) {
|
|
|
- // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
- // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
- // datas[idx][j] = String.format("%s至%s", formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 监督结果
|
|
|
- // if (j == 7) {
|
|
|
- // datas[idx][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 监督意见
|
|
|
- // if (j == 8) {
|
|
|
- // datas[idx][j] = wmTaskSupervision.getRemarks();
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // // 部门负责人意见
|
|
|
- // if (j == 9) {
|
|
|
- // List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
- // if (CollUtil.isNotEmpty(supervisionAdvices)) {
|
|
|
- // WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
|
|
|
- // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
- // } else {
|
|
|
- // datas[idx][j] = "";
|
|
|
- // }
|
|
|
- //
|
|
|
- //
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 分管领导意见
|
|
|
- // if (j == 10) {
|
|
|
- // List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
- // if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
|
|
|
- // WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
|
|
|
- // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
- // } else {
|
|
|
- // datas[idx][j] = "";
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 总经理意见
|
|
|
- // if (j == 11) {
|
|
|
- // List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
- // if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 2) {
|
|
|
- // WmTaskSupervisionAdvice advice = supervisionAdvices.get(2);
|
|
|
- // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
- // } else {
|
|
|
- // datas[idx][j] = "";
|
|
|
- // }
|
|
|
- //
|
|
|
- // }
|
|
|
- // }
|
|
|
- // idx++;
|
|
|
- // }
|
|
|
-
|
|
|
- return datas;
|
|
|
+ // 监督时间
|
|
|
+ if (j == 13) {
|
|
|
+ datas[i][j] = formatter.format(wmTaskSupervision.getCreateTime().toLocalDate());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-// @Transactional(rollbackFor = Exception.class)
|
|
|
-// public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource, HnqzUser user) {
|
|
|
-// Integer supervisionId = resource.getSupervisionId();
|
|
|
-//
|
|
|
-// WmTaskSupervision supervision = taskSupervisionService.getById(supervisionId);
|
|
|
-//
|
|
|
-// if (resource.getSupervision()) {
|
|
|
-//
|
|
|
-// UpmsState.TaskSupervisionState state;
|
|
|
-// switch (supervision.getState()) {
|
|
|
-// case INIT:
|
|
|
-// state = UpmsState.TaskSupervisionState.CKT1;
|
|
|
-// break;
|
|
|
-// case CKT1:
|
|
|
-// state = UpmsState.TaskSupervisionState.CKT2;
|
|
|
-// break;
|
|
|
-// case CKT2:
|
|
|
-// state = UpmsState.TaskSupervisionState.PASSED;
|
|
|
-// break;
|
|
|
-// default:
|
|
|
-// throw new BizException("监督状态不正确,不能操作");
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// String remarks = resource.getRemarks();
|
|
|
-// if (StrUtil.isNotBlank(remarks)) {
|
|
|
-// supervision.setRemarks(resource.getRemarks() + ";" + supervision.getRemarks());
|
|
|
-// }
|
|
|
-// supervision.setUpdateBy(user.getUsername());
|
|
|
-// supervision.setUpdateTime(LocalDateTime.now());
|
|
|
-// supervision.setState(state);
|
|
|
-// taskSupervisionService.updateById(supervision);
|
|
|
-//
|
|
|
-// } else {
|
|
|
-// supervision.setSupervisionResult(false);
|
|
|
-// supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
|
|
|
-// supervision.setUpdateBy(user.getUsername());
|
|
|
-// supervision.setUpdateTime(LocalDateTime.now());
|
|
|
-// supervision.setState(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
-// taskSupervisionService.updateById(supervision);
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-//
|
|
|
-// return true;
|
|
|
-// }
|
|
|
+ // int idx = 2;
|
|
|
+ // for (WmTaskSupervision wmTaskSupervision : taskSupervisions) {
|
|
|
+ // for (int j = 0; j < 12; j++) {
|
|
|
+ //
|
|
|
+ // // 服务ID
|
|
|
+ // if (j == 0) {
|
|
|
+ // datas[idx][j] = wmTaskSupervision.getTaskId().toString();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 服务类型
|
|
|
+ // if (j == 1) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ //
|
|
|
+ // datas[idx][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 代表名称
|
|
|
+ // if (j == 2) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ // datas[idx][j] = wmTask != null ?
|
|
|
+ // userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 产品名称
|
|
|
+ // if (j == 3) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ // String drugId = scorePackage.getDrugtable()[0];
|
|
|
+ // WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // datas[idx][j] = drugtable.getDrugname();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 生产企业
|
|
|
+ // if (j == 4) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ // String drugId = scorePackage.getDrugtable()[0];
|
|
|
+ // WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
|
|
|
+ // datas[idx][j] = drugtable.getDrugEntName();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 执行包名称
|
|
|
+ // if (j == 5) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ // datas[idx][j] = scorePackage.getScorePackageName();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 周期
|
|
|
+ // if (j == 6) {
|
|
|
+ // WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
|
|
|
+ // WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
|
|
|
+ // datas[idx][j] = String.format("%s至%s",
|
|
|
+ // formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 监督结果
|
|
|
+ // if (j == 7) {
|
|
|
+ // datas[idx][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 监督意见
|
|
|
+ // if (j == 8) {
|
|
|
+ // datas[idx][j] = wmTaskSupervision.getRemarks();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // // 部门负责人意见
|
|
|
+ // if (j == 9) {
|
|
|
+ // List<WmTaskSupervisionAdvice> supervisionAdvices =
|
|
|
+ // advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
+ // if (CollUtil.isNotEmpty(supervisionAdvices)) {
|
|
|
+ // WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
|
|
|
+ // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
+ // } else {
|
|
|
+ // datas[idx][j] = "";
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 分管领导意见
|
|
|
+ // if (j == 10) {
|
|
|
+ // List<WmTaskSupervisionAdvice> supervisionAdvices =
|
|
|
+ // advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
+ // if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
|
|
|
+ // WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
|
|
|
+ // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
+ // } else {
|
|
|
+ // datas[idx][j] = "";
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 总经理意见
|
|
|
+ // if (j == 11) {
|
|
|
+ // List<WmTaskSupervisionAdvice> supervisionAdvices =
|
|
|
+ // advices.get(wmTaskSupervision.getSupervisionId());
|
|
|
+ // if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 2) {
|
|
|
+ // WmTaskSupervisionAdvice advice = supervisionAdvices.get(2);
|
|
|
+ // datas[idx][j] = advice != null ? advice.getRemarks() : "";
|
|
|
+ // } else {
|
|
|
+ // datas[idx][j] = "";
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // idx++;
|
|
|
+ // }
|
|
|
+
|
|
|
+ return datas;
|
|
|
+ }
|
|
|
+
|
|
|
+ // @Transactional(rollbackFor = Exception.class)
|
|
|
+ // public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource,
|
|
|
+ // HnqzUser user) {
|
|
|
+ // Integer supervisionId = resource.getSupervisionId();
|
|
|
+ //
|
|
|
+ // WmTaskSupervision supervision = taskSupervisionService.getById(supervisionId);
|
|
|
+ //
|
|
|
+ // if (resource.getSupervision()) {
|
|
|
+ //
|
|
|
+ // UpmsState.TaskSupervisionState state;
|
|
|
+ // switch (supervision.getState()) {
|
|
|
+ // case INIT:
|
|
|
+ // state = UpmsState.TaskSupervisionState.CKT1;
|
|
|
+ // break;
|
|
|
+ // case CKT1:
|
|
|
+ // state = UpmsState.TaskSupervisionState.CKT2;
|
|
|
+ // break;
|
|
|
+ // case CKT2:
|
|
|
+ // state = UpmsState.TaskSupervisionState.PASSED;
|
|
|
+ // break;
|
|
|
+ // default:
|
|
|
+ // throw new BizException("监督状态不正确,不能操作");
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // String remarks = resource.getRemarks();
|
|
|
+ // if (StrUtil.isNotBlank(remarks)) {
|
|
|
+ // supervision.setRemarks(resource.getRemarks() + ";" + supervision.getRemarks());
|
|
|
+ // }
|
|
|
+ // supervision.setUpdateBy(user.getUsername());
|
|
|
+ // supervision.setUpdateTime(LocalDateTime.now());
|
|
|
+ // supervision.setState(state);
|
|
|
+ // taskSupervisionService.updateById(supervision);
|
|
|
+ //
|
|
|
+ // } else {
|
|
|
+ // supervision.setSupervisionResult(false);
|
|
|
+ // supervision.setRemarks(supervision.getRemarks() + ";" + resource.getRemarks());
|
|
|
+ // supervision.setUpdateBy(user.getUsername());
|
|
|
+ // supervision.setUpdateTime(LocalDateTime.now());
|
|
|
+ // supervision.setState(UpmsState.TaskSupervisionState.REJECTED);
|
|
|
+ // taskSupervisionService.updateById(supervision);
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ //
|
|
|
+ // return true;
|
|
|
+ // }
|
|
|
}
|