Commit 3cb023487853582d2f7b318617849b9acfdb641f

Authored by yeqianyong
1 parent 8f271bac

楚江ERP-客户开发待办类型数量统计

  1 +package com.lframework.xingyun.sc.bo.customer.develop;
  2 +
  3 +import com.lframework.starter.web.core.bo.BaseBo;
  4 +import com.lframework.starter.web.core.dto.BaseDto;
  5 +import com.lframework.xingyun.sc.entity.CustomerDevelopPlan;
  6 +import io.swagger.annotations.ApiModelProperty;
  7 +import lombok.Data;
  8 +
  9 +
  10 +/**
  11 + * <p>
  12 + * 客户开发计划统计 BO
  13 + * </p>
  14 + *
  15 + */
  16 +@Data
  17 +public class CustomerDevelopPlanStatisticsBo extends BaseBo<CustomerDevelopPlan> implements BaseDto {
  18 +
  19 + /**
  20 + * 全部数量
  21 + */
  22 + @ApiModelProperty("allCount")
  23 + private Integer allCount;
  24 +
  25 + /**
  26 + * 已办数量
  27 + */
  28 + @ApiModelProperty("已办数量")
  29 + private Integer completedCount;
  30 +
  31 + /**
  32 + * 待办数量
  33 + */
  34 + @ApiModelProperty("待办数量")
  35 + private Integer todoCount;
  36 +}
@@ -15,6 +15,7 @@ import com.lframework.xingyun.basedata.service.customer.CustomerService; @@ -15,6 +15,7 @@ import com.lframework.xingyun.basedata.service.customer.CustomerService;
15 import com.lframework.xingyun.basedata.service.office.OfficeService; 15 import com.lframework.xingyun.basedata.service.office.OfficeService;
16 import com.lframework.xingyun.basedata.service.product.ProductVarietyService; 16 import com.lframework.xingyun.basedata.service.product.ProductVarietyService;
17 import com.lframework.xingyun.basedata.service.workshop.WorkshopService; 17 import com.lframework.xingyun.basedata.service.workshop.WorkshopService;
  18 +import com.lframework.xingyun.sc.bo.customer.develop.CustomerDevelopPlanStatisticsBo;
18 import com.lframework.xingyun.sc.bo.customer.develop.GetCustomerDevelopPlanBo; 19 import com.lframework.xingyun.sc.bo.customer.develop.GetCustomerDevelopPlanBo;
19 import com.lframework.xingyun.sc.enums.ExportType; 20 import com.lframework.xingyun.sc.enums.ExportType;
20 import com.lframework.xingyun.sc.excel.customer.CustomerDevelopExportTaskWorker; 21 import com.lframework.xingyun.sc.excel.customer.CustomerDevelopExportTaskWorker;
@@ -171,6 +172,19 @@ public class CustomerDevelopPlanController extends DefaultBaseController { @@ -171,6 +172,19 @@ public class CustomerDevelopPlanController extends DefaultBaseController {
171 172
172 173
173 /** 174 /**
  175 + * 待办类型数量统计
  176 + *
  177 + */
  178 + @ApiOperation("待办类型数量统计")
  179 + @HasPermission({"customer-dev-manage:customer-dev-plan:statistics"})
  180 + @GetMapping("/todoTypeStatistics")
  181 + public InvokeResult<CustomerDevelopPlanStatisticsBo> todoTypeStatistics() {
  182 + CustomerDevelopPlanStatisticsBo statistics = customerDevelopPlanService.todoTypeStatistics();
  183 + return InvokeResultBuilder.success(statistics);
  184 + }
  185 +
  186 +
  187 + /**
174 * 封装客户开发数据 188 * 封装客户开发数据
175 * 189 *
176 * @param dataList 数据集 190 * @param dataList 数据集
1 package com.lframework.xingyun.sc.impl.customer; 1 package com.lframework.xingyun.sc.impl.customer;
2 2
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 4 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 5 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 import com.github.pagehelper.PageInfo; 6 import com.github.pagehelper.PageInfo;
@@ -10,6 +11,7 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService; @@ -10,6 +11,7 @@ import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
10 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo; 11 import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
11 import com.lframework.starter.web.core.components.security.SecurityUtil; 12 import com.lframework.starter.web.core.components.security.SecurityUtil;
12 import com.lframework.starter.web.core.utils.*; 13 import com.lframework.starter.web.core.utils.*;
  14 +import com.lframework.xingyun.sc.bo.customer.develop.CustomerDevelopPlanStatisticsBo;
13 import com.lframework.xingyun.sc.entity.CustomerDevelopPlan; 15 import com.lframework.xingyun.sc.entity.CustomerDevelopPlan;
14 import com.lframework.starter.web.core.impl.BaseMpServiceImpl; 16 import com.lframework.starter.web.core.impl.BaseMpServiceImpl;
15 import com.lframework.starter.web.core.components.resp.PageResult; 17 import com.lframework.starter.web.core.components.resp.PageResult;
@@ -262,4 +264,44 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe @@ -262,4 +264,44 @@ public class CustomerDevelopPlanServiceImpl extends BaseMpServiceImpl<CustomerDe
262 .eq(CustomerDevelopPlan::getId, id); 264 .eq(CustomerDevelopPlan::getId, id);
263 getBaseMapper().update(updateWrapper); 265 getBaseMapper().update(updateWrapper);
264 } 266 }
  267 +
  268 +
  269 + /**
  270 + * 统计待办任务类型数量
  271 + *
  272 + * @return CustomerDevelopPlanStatisticsBo
  273 + */
  274 + @Override
  275 + public CustomerDevelopPlanStatisticsBo todoTypeStatistics() {
  276 + // 获取所有客户开发数据
  277 + LambdaQueryWrapper<CustomerDevelopPlan> queryWrapper = Wrappers.lambdaQuery(CustomerDevelopPlan.class);
  278 + List<CustomerDevelopPlan> customerDevelopPlans = this.getBaseMapper().selectList(queryWrapper);
  279 + if (CollectionUtils.isEmpty(customerDevelopPlans)) {
  280 + return null;
  281 + }
  282 + // 获取当前人员流程任务数据
  283 + List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo()
  284 + , SecurityUtil.getCurrentUser().getId());
  285 + List<String> businessIds = new ArrayList<>();
  286 + if (CollectionUtils.isNotEmpty(flowTaskList)) {
  287 + businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
  288 + }
  289 + int completedCount = 0;
  290 + int todoCount = 0;
  291 + for (CustomerDevelopPlan plan : customerDevelopPlans) {
  292 + CustomerDevelopStatus status = plan.getStatus();
  293 + if (CustomerDevelopStatus.PASS.equals(status)) {
  294 + completedCount++;
  295 + }
  296 + if (businessIds.contains(plan.getId())) {
  297 + todoCount++;
  298 + }
  299 + }
  300 + CustomerDevelopPlanStatisticsBo statisticsBo = new CustomerDevelopPlanStatisticsBo();
  301 + statisticsBo.setAllCount(customerDevelopPlans.size());
  302 + statisticsBo.setCompletedCount(completedCount);
  303 + statisticsBo.setTodoCount(todoCount);
  304 +
  305 + return statisticsBo;
  306 + }
265 } 307 }
1 package com.lframework.xingyun.sc.service.customer; 1 package com.lframework.xingyun.sc.service.customer;
2 2
  3 +import com.lframework.xingyun.sc.bo.customer.develop.CustomerDevelopPlanStatisticsBo;
3 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus; 4 import com.lframework.xingyun.sc.enums.CustomerDevelopStatus;
4 import com.lframework.xingyun.sc.vo.customer.develop.CreateCustomerDevelopPlanVo; 5 import com.lframework.xingyun.sc.vo.customer.develop.CreateCustomerDevelopPlanVo;
5 import com.lframework.xingyun.sc.vo.customer.develop.QueryCustomerDevelopPlanVo; 6 import com.lframework.xingyun.sc.vo.customer.develop.QueryCustomerDevelopPlanVo;
@@ -76,4 +77,11 @@ public interface CustomerDevelopPlanService extends BaseMpService<CustomerDevelo @@ -76,4 +77,11 @@ public interface CustomerDevelopPlanService extends BaseMpService<CustomerDevelo
76 * @param status 状态 77 * @param status 状态
77 */ 78 */
78 void updateStatus(String id, CustomerDevelopStatus status); 79 void updateStatus(String id, CustomerDevelopStatus status);
  80 +
  81 + /**
  82 + * 统计待办任务类型数量
  83 + *
  84 + * @return CustomerDevelopPlanStatisticsBo
  85 + */
  86 + CustomerDevelopPlanStatisticsBo todoTypeStatistics();
79 } 87 }