Commit c11706d9b1b16e73e22ea4975488b8542897ad07

Authored by 房远帅
1 parent 6e425951

采购计划:审核、审核详情按钮展示

... ... @@ -4,11 +4,6 @@ import com.fasterxml.jackson.annotation.JsonFormat;
4 4 import com.lframework.starter.common.constants.StringPool;
5 5 import com.lframework.starter.common.utils.CollectionUtil;
6 6 import com.lframework.starter.web.core.bo.BaseBo;
7   -import com.lframework.starter.web.core.utils.ApplicationUtil;
8   -import com.lframework.xingyun.basedata.entity.CompanyShort;
9   -import com.lframework.xingyun.basedata.entity.Supplier;
10   -import com.lframework.xingyun.basedata.service.company.CompanyShortService;
11   -import com.lframework.xingyun.basedata.service.supplier.SupplierService;
12 7 import com.lframework.xingyun.sc.procurement.entity.ProcurementPlan;
13 8 import com.lframework.xingyun.sc.procurement.entity.ProcurementPlanLine;
14 9 import io.swagger.annotations.ApiModelProperty;
... ... @@ -525,10 +520,16 @@ public class GetProcurementPlanBo extends BaseBo<ProcurementPlan> {
525 520 private String workshopId;
526 521
527 522 /**
528   - * 前端行标识
  523 + * 是否展示审核按钮
529 524 */
530   - @ApiModelProperty("前端行标识")
531   - private String itemId;
  525 + @ApiModelProperty("是否展示审核按钮")
  526 + private Boolean showExamine = false;
  527 +
  528 + /**
  529 + * 是否展示审核详情按钮
  530 + */
  531 + @ApiModelProperty("是否展示审核详情按钮")
  532 + private Boolean showExamineDetail;
532 533
533 534 /**
534 535 * 创建人ID
... ...
... ... @@ -303,6 +303,18 @@ public class ProcurementPlan extends BaseEntity implements BaseDto {
303 303 private String attachmentFileNames;
304 304
305 305 /**
  306 + * 是否展示审核按钮(非持久化字段)
  307 + */
  308 + @TableField(exist = false)
  309 + private Boolean showExamine = false;
  310 +
  311 + /**
  312 + * 是否展示审核详情按钮(非持久化字段)
  313 + */
  314 + @TableField(exist = false)
  315 + private Boolean showExamineDetail;
  316 +
  317 + /**
306 318 * 创建人ID
307 319 */
308 320 @TableField(fill = FieldFill.INSERT)
... ...
... ... @@ -5,9 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
5 5 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
6 6 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
7 7 import com.github.pagehelper.PageInfo;
  8 +import com.lframework.starter.bpm.dto.FlowTaskDto;
8 9 import com.lframework.starter.bpm.entity.FlowInstanceWrapper;
  10 +import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
9 11 import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
10 12 import com.lframework.starter.bpm.service.FlowTaskWrapperService;
  13 +import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
11 14 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
12 15 import com.lframework.starter.common.exceptions.impl.InputErrorException;
13 16 import com.lframework.starter.common.utils.Assert;
... ... @@ -15,6 +18,7 @@ import com.lframework.starter.common.utils.CollectionUtil;
15 18 import com.lframework.starter.common.utils.NumberUtil;
16 19 import com.lframework.starter.common.utils.StringUtil;
17 20 import com.lframework.starter.web.core.annotations.oplog.OpLog;
  21 +import com.lframework.starter.web.core.components.security.SecurityUtil;
18 22 import com.lframework.starter.web.core.impl.BaseMpServiceImpl;
19 23 import com.lframework.starter.web.core.utils.IdUtil;
20 24 import com.lframework.starter.web.core.utils.OpLogUtil;
... ... @@ -25,6 +29,7 @@ import com.lframework.starter.web.core.utils.PageResultUtil;
25 29 import com.lframework.xingyun.basedata.entity.Workshop;
26 30 import com.lframework.xingyun.basedata.service.workshop.WorkshopService;
27 31 import com.lframework.xingyun.sc.bo.procurement.GetProcurementPlanBo;
  32 +import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
28 33 import com.lframework.xingyun.sc.procurement.entity.ProcurementPlan;
29 34 import com.lframework.xingyun.sc.procurement.entity.ProcurementPlanLine;
30 35 import com.lframework.xingyun.sc.procurement.mappers.plan.ProcurementPlanMapper;
... ... @@ -40,13 +45,7 @@ import com.lframework.xingyun.sc.procurement.vo.plan.UpdateProcurementPlanVo;
40 45 import java.math.BigDecimal;
41 46 import java.time.LocalDate;
42 47 import java.time.format.DateTimeFormatter;
43   -import java.util.ArrayList;
44   -import java.util.Collections;
45   -import java.util.Comparator;
46   -import java.util.HashMap;
47   -import java.util.LinkedHashMap;
48   -import java.util.List;
49   -import java.util.Map;
  48 +import java.util.*;
50 49 import java.util.stream.Collectors;
51 50 import org.apache.commons.lang3.StringUtils;
52 51 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -71,16 +70,19 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla
71 70 private FlowTaskWrapperService flowTaskWrapperService;
72 71 @Resource
73 72 private ProcurementBuyoutApplyService procurementBuyoutApplyService;
  73 + @Resource
  74 + private FlowTaskWrapperMapper flowTaskWrapperMapper;
74 75
75 76 @Override
76 77 public PageResult<ProcurementPlan> query(Integer pageIndex, Integer pageSize,
77   - QueryProcurementPlanVo vo) {
  78 + QueryProcurementPlanVo vo) {
78 79
79 80 Assert.greaterThanZero(pageIndex);
80 81 Assert.greaterThanZero(pageSize);
81 82
82 83 PageHelperUtil.startPage(pageIndex, pageSize);
83 84 List<ProcurementPlan> datas = this.query(vo);
  85 + fillShowExamineInfo(datas);
84 86
85 87 return PageResultUtil.convert(new PageInfo<>(datas));
86 88 }
... ... @@ -104,6 +106,8 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla
104 106
105 107 List<ProcurementPlanLine> lines = procurementPlanLineService.getByProcurementPlanId(id);
106 108
  109 + fillShowExamineInfo(Collections.singletonList(plan));
  110 +
107 111 return new GetProcurementPlanBo(plan, lines);
108 112 }
109 113
... ... @@ -620,4 +624,41 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla
620 624
621 625 return candidate;
622 626 }
  627 +
  628 + /**
  629 + * 回填审核按钮展示信息
  630 + *
  631 + * @param datas 数据列表
  632 + */
  633 + private void fillShowExamineInfo(List<ProcurementPlan> datas) {
  634 + if (CollectionUtil.isEmpty(datas)) {
  635 + return;
  636 + }
  637 +
  638 + List<ProcurementPlan> validDatas = datas.stream()
  639 + .filter(Objects::nonNull)
  640 + .collect(Collectors.toList());
  641 + if (CollectionUtil.isEmpty(validDatas)) {
  642 + return;
  643 + }
  644 +
  645 + List<String> businessIds = validDatas.stream().map(ProcurementPlan::getId).collect(Collectors.toList());
  646 + List<FlowInstanceWrapper> flowList = flowInstanceWrapperService.getFlowByBusinessIdList(businessIds);
  647 + Set<String> flowBusinessIdSet = CollectionUtil.isNotEmpty(flowList)
  648 + ? flowList.stream().map(FlowInstanceWrapper::getBusinessId).collect(Collectors.toSet())
  649 + : new HashSet<>();
  650 +
  651 + List<FlowTaskDto> todoFlowTaskList = flowTaskWrapperMapper.queryTodoList(
  652 + new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
  653 + Set<String> todoBusinessIdSet = CollectionUtil.isNotEmpty(todoFlowTaskList)
  654 + ? todoFlowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toSet())
  655 + : new HashSet<>();
  656 +
  657 + for (ProcurementPlan data : validDatas) {
  658 + boolean hasFlow = flowBusinessIdSet.contains(data.getId());
  659 + boolean hasTodo = todoBusinessIdSet.contains(data.getId());
  660 + data.setShowExamineDetail(hasFlow && StringUtils.isNotBlank(data.getApprovalStatus()));
  661 + data.setShowExamine(hasTodo && CustomerDevelopStatus.AUDIT.name().equals(data.getApprovalStatus()));
  662 + }
  663 + }
623 664 }
... ...