|
@@ -7,6 +7,7 @@ import cn.hutool.core.text.CharSequenceUtil;
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -14,6 +15,7 @@ import com.itextpdf.text.PageSize;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType.AreaType;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto.OnTaskSupervision;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
@@ -1377,6 +1379,7 @@ public class WmSupervisionManager {
|
|
|
if (CollUtil.isNotEmpty(supId)) {
|
|
|
Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 =
|
|
|
supervisions.stream()
|
|
|
+ .filter(ts -> CollUtil.contains(getVisibleRoleIds(roles), ts.getRoleId()))
|
|
|
.collect(
|
|
|
Collectors.groupingBy(
|
|
|
WmTaskSupervision::getSupervisionState,
|
|
@@ -1622,18 +1625,11 @@ public class WmSupervisionManager {
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
- List<Integer> tids = tasks.stream().mapToInt(t -> Integer.parseInt(t.getId())).boxed()
|
|
|
- .distinct().sorted().collect(Collectors.toList());
|
|
|
-
|
|
|
// 积分包内已经监督的任务
|
|
|
List<WmTaskSupervision> list1 =
|
|
|
- taskSupervisionService.list(
|
|
|
- Wrappers.<WmTaskSupervision>lambdaQuery()
|
|
|
- .in(WmTaskSupervision::getTaskId, tids)
|
|
|
- // .in(WmTaskSupervision::getRoleId, visibleRoleIds)
|
|
|
- // .eq(WmTaskSupervision::getModifiable, false)
|
|
|
-// .in(WmTaskSupervision::getPackageId, pkgIds)
|
|
|
- .orderByDesc(WmTaskSupervision::getCreateTime));
|
|
|
+ taskSupervisionService.getSupervisionByPkgIds(pkgIds.stream().map(i -> i.toString()).collect(Collectors.toList()));
|
|
|
+ list1 = list1.stream().filter(ts -> ts.getSupervisionId() != null).collect(Collectors.toList());
|
|
|
+ list1.sort((a, b) -> b.getCreateTime().compareTo(a.getCreateTime()));
|
|
|
|
|
|
// 获取当前操作人监督的记录
|
|
|
List<WmTaskSupervision> list =
|
|
@@ -1676,39 +1672,19 @@ public class WmSupervisionManager {
|
|
|
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));
|
|
|
+ taskPage = getReviewTaskPage(query, userIds1, taskIds);
|
|
|
|
|
|
} else {
|
|
|
- List<Integer> supTaskIds =
|
|
|
- list.stream()
|
|
|
- .mapToInt(WmTaskSupervision::getTaskId)
|
|
|
- .boxed()
|
|
|
- .sorted()
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
taskPage =
|
|
|
- taskService.listAvailableTaskForSupervision3(
|
|
|
+ taskService.listAvailableTaskForSupervision2(
|
|
|
new Page<>(query.getCurrent(), query.getSize()),
|
|
|
userIds1,
|
|
|
query.getTaskTypeId(),
|
|
|
query.getTaskId(),
|
|
|
query.getTaskNumber(),
|
|
|
pkgIds,
|
|
|
- supTaskIds);
|
|
|
+ null,
|
|
|
+ roles);
|
|
|
}
|
|
|
}
|
|
|
// 服务商
|
|
@@ -1732,21 +1708,7 @@ public class WmSupervisionManager {
|
|
|
.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));
|
|
|
+ taskPage = getReviewTaskPage(query, userIds1, supTaskIds.stream().map(i -> i.toString()).collect(Collectors.toList()));
|
|
|
}
|
|
|
// 负责人|分管领导|事业部总经理
|
|
|
else {
|
|
@@ -1838,22 +1800,7 @@ public class WmSupervisionManager {
|
|
|
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));
|
|
|
+ taskPage = getReviewTaskPage(query, userIds1, supTaskIds.stream().map(i -> i.toString()).collect(Collectors.toList()));
|
|
|
}
|
|
|
|
|
|
List<WmTask> records = taskPage.getRecords();
|
|
@@ -1911,49 +1858,61 @@ public class WmSupervisionManager {
|
|
|
|
|
|
m.put("modifiable", wmTaskSupervision.getModifiable());
|
|
|
|
|
|
+ SysUser supUser = userMap.get(wmTaskSupervision.getCreateBy());
|
|
|
+ SysUserRole supSysUserRole = userRoleMap.get(supUser.getUserId()).get(0);
|
|
|
+ SysRole supRole = roleMap.get(supSysUserRole.getRoleId());
|
|
|
+ String supRoleName =
|
|
|
+ (supRole == null
|
|
|
+ ? " "
|
|
|
+ : (StrUtil.isNotBlank(supRole.getRoleDesc())
|
|
|
+ ? supRole.getRoleDesc()
|
|
|
+ : supRole.getRoleName()));
|
|
|
String supervisionMsg =
|
|
|
String.format(
|
|
|
- "【%s】,%s",
|
|
|
- wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过",
|
|
|
- wmTaskSupervision.getRemarks());
|
|
|
+ "%s【%s】,审核【%s】,监督意见为【%s】(%s)。",
|
|
|
+ supRoleName, supUser.getRealname(),
|
|
|
+ wmTaskSupervision.getSupervisionResult() ? " 通过 " : " 不通过 " ,
|
|
|
+ StrUtil.isBlank(wmTaskSupervision.getRemarks()) ? " " : wmTaskSupervision.getRemarks(),
|
|
|
+ formatter.format(wmTaskSupervision.getCreateTime()));
|
|
|
|
|
|
m.put("supervisionMessage", supervisionMsg);
|
|
|
|
|
|
- List<String> advMsg;
|
|
|
- if (isService) {
|
|
|
- advMsg = Collections.emptyList();
|
|
|
- } else {
|
|
|
+ List<String> advMsg = new ArrayList<>();
|
|
|
+ if (!isService) {
|
|
|
List<WmTaskSupervisionAdvice> advices =
|
|
|
taskSupervisionAdviceService.list(
|
|
|
Wrappers.<WmTaskSupervisionAdvice>lambdaQuery()
|
|
|
.eq(WmTaskSupervisionAdvice::getDelFlag, false)
|
|
|
.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());
|
|
|
+ wmTaskSupervision.getSupervisionId())
|
|
|
+ );
|
|
|
+
|
|
|
+ String lastUser = null;
|
|
|
+ for(WmTaskSupervisionAdvice adv: advices) {
|
|
|
+ if (adv.getUpdateBy().equals(lastUser)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ 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();
|
|
|
+
|
|
|
+ advMsg.add(String.format(
|
|
|
+ "%s【%s】,审核【%s】,监督意见为【%s】(%s)。",
|
|
|
+ roleName, realName, resultMsg, remarks, date));
|
|
|
+ lastUser = adv.getUpdateBy();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
m.put("adviceMessages", advMsg);
|
|
@@ -1965,6 +1924,41 @@ public class WmSupervisionManager {
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+private Page<WmTask> getReviewTaskPage(WmSupervisionDto.OnTaskSupervisionPage query, List<Integer> userIds1,
|
|
|
+ List<String> taskIds) {
|
|
|
+ Page<WmTask> taskPage = null;
|
|
|
+ int taskBatch = 2000;
|
|
|
+ int firstIdx = 0;
|
|
|
+ List<String> remains = new ArrayList<>();
|
|
|
+ while(firstIdx < taskIds.size()) {
|
|
|
+ int lastIdx = taskIds.size() > firstIdx + taskBatch ? firstIdx + taskBatch : taskIds.size();
|
|
|
+ List<String> batchTaskIds = taskIds.subList(firstIdx, lastIdx);
|
|
|
+ remains.addAll(batchTaskIds);
|
|
|
+ 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, remains));
|
|
|
+ if (taskPage.getRecords().size() == query.getSize()) {
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ remains.addAll(taskPage.getRecords().stream().map(record -> record.getId()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ firstIdx += taskBatch;
|
|
|
+ }
|
|
|
+ return taskPage;
|
|
|
+}
|
|
|
+
|
|
|
// 执行任务监察
|
|
|
public Boolean doTaskSupervision(WmSupervisionDto.OnTaskSupervision resource, HnqzUser operator) {
|
|
|
|
|
@@ -1981,8 +1975,11 @@ public class WmSupervisionManager {
|
|
|
// 如果监督记录创建人不是当前人,就记录监督意见
|
|
|
if (!StrUtil.equals(operator.getUsername(), supervision.getCreateBy())) {
|
|
|
modifiable = !resource.getSupervision();
|
|
|
- remarks = supervision.getRemarks();
|
|
|
+ if (resource.getSupervision()) {
|
|
|
+ remarks = supervision.getSupervisionResult() ? "同意监督结果,监督无异常" : "同意监督结果,不符合合规要求,不建议结算";
|
|
|
+ }
|
|
|
|
|
|
+ resource.setRemarks(remarks);
|
|
|
taskSupervisionAdviceService.createAdvice(
|
|
|
supervision.getSupervisionId(), resource, supervision.getRemarks(), operator);
|
|
|
|
|
@@ -1992,7 +1989,7 @@ public class WmSupervisionManager {
|
|
|
}
|
|
|
|
|
|
taskSupervisionService.updateSupervision(
|
|
|
- supervision.getSupervisionId(), remarks, modifiable, operator);
|
|
|
+ supervision.getSupervisionId(), supervision.getRemarks(), modifiable, operator);
|
|
|
|
|
|
}
|
|
|
// 不存在监察记录
|
|
@@ -2011,12 +2008,21 @@ public class WmSupervisionManager {
|
|
|
public Boolean doTaskSupervisionBatch(
|
|
|
WmSupervisionDto.OnTaskSupervisionBatch resource, HnqzUser user) {
|
|
|
|
|
|
+ Map<String, WmTask> id2task = taskService.list(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .in(WmTask::getId, resource.getSupervisionIds()))
|
|
|
+ .stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
|
|
|
+
|
|
|
resource
|
|
|
- .getSupervisionIds()
|
|
|
+ .getSupervisionIds().stream()
|
|
|
+ .distinct()
|
|
|
.forEach(
|
|
|
id -> {
|
|
|
- taskSupervisionService.updateSupervision(
|
|
|
- id, resource.getRemarks(), !resource.getSupervision(), user);
|
|
|
+ OnTaskSupervision single = new WmSupervisionDto.OnTaskSupervision();
|
|
|
+ single.setPkgId(Integer.valueOf(id2task.get(id.toString()).getScorePackageId()));
|
|
|
+ single.setRemarks(resource.getRemarks());
|
|
|
+ single.setSupervision(resource.getSupervision());
|
|
|
+ single.setTaskId(id.intValue());
|
|
|
+ doTaskSupervision(single, user);
|
|
|
});
|
|
|
return true;
|
|
|
}
|