|
|
@@ -1,14 +1,17 @@
|
|
|
package com.wx.blink.backend.manager;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.wx.blink.backend.constant.DeliveryTaskStageEnums;
|
|
|
import com.wx.blink.backend.domain.dataobject.MateDeliveryContactDO;
|
|
|
import com.wx.blink.backend.domain.dataobject.MateDeliveryDO;
|
|
|
import com.wx.blink.backend.domain.dataobject.MateDeliveryFileDO;
|
|
|
import com.wx.blink.backend.domain.dto.MateDeliveryContactDTO;
|
|
|
import com.wx.blink.backend.domain.dto.MateDeliveryDTO;
|
|
|
import com.wx.blink.backend.domain.dto.MateDeliveryFileDTO;
|
|
|
+import com.wx.blink.backend.domain.dto.MateDeliverySummaryDTO;
|
|
|
import com.wx.blink.backend.domain.qry.MateDeliveryContactQry;
|
|
|
import com.wx.blink.backend.domain.qry.MateDeliveryFileQry;
|
|
|
import com.wx.blink.backend.domain.qry.MateDeliveryQry;
|
|
|
@@ -18,6 +21,7 @@ import com.wx.blink.backend.service.IMateDeliveryService;
|
|
|
import com.wx.blink.base.common.domain.PageResult;
|
|
|
import com.wx.blink.base.common.domain.RequestUser;
|
|
|
import com.wx.blink.base.common.domain.ResponseDTO;
|
|
|
+import com.wx.blink.base.common.enumeration.BaseEnum;
|
|
|
import com.wx.blink.base.common.util.BlinkEntityUtil;
|
|
|
import com.wx.blink.base.common.util.BlinkEnumUtil;
|
|
|
import com.wx.blink.base.common.util.BlinkPageUtil;
|
|
|
@@ -29,13 +33,13 @@ import com.wx.blink.base.module.support.employee.qry.EmployeeQry;
|
|
|
import com.wx.blink.base.module.support.employee.repository.EmployeeRepository;
|
|
|
import com.wx.blink.base.module.support.serialnumber.constant.SerialNumberIdEnum;
|
|
|
import com.wx.blink.base.module.support.serialnumber.service.SerialNumberService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Predicate;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author gufj
|
|
|
@@ -180,4 +184,36 @@ public class MateDeliveryServiceImpl extends ServiceImpl<MateDeliveryRepository,
|
|
|
map.put("暂停项目", summaryList.stream().filter(item -> item.getDeliveryStatus().equals("04")).count());
|
|
|
return ResponseDTO.ok(pageResult, map);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<List<MateDeliverySummaryDTO>> mateDeliverySummary(MateDeliveryQry qry) {
|
|
|
+ List<MateDeliveryDTO> summaryList = mateDeliveryRepository.mateDeliveryQueryPage(null, qry);
|
|
|
+ //TODO:区分外包与自研,项目类型定义
|
|
|
+ //区分自研与外包项目,并对项目进行数据统计汇总
|
|
|
+ List<MateDeliveryDTO> outSourceList = summaryList.stream().filter(item -> item.getDeliveryType().equals("外包")).collect(Collectors.toList());
|
|
|
+ List<MateDeliveryDTO> selfDevList = summaryList.stream().filter(item -> item.getDeliveryType().equals("自研")).collect(Collectors.toList());
|
|
|
+ List<MateDeliverySummaryDTO> deliverySummaryList = new ArrayList<>();
|
|
|
+ MateDeliverySummaryDTO outSourceSummary = new MateDeliverySummaryDTO();
|
|
|
+ MateDeliverySummaryDTO selfDevSummary = new MateDeliverySummaryDTO();
|
|
|
+ outSourceSummary.setDeliveryTypeName("外包项目");
|
|
|
+ selfDevSummary.setDeliveryTypeName("自研项目");
|
|
|
+ outSourceSummary.setDeliverySum(outSourceList.size());
|
|
|
+ outSourceSummary.setUnstartedQuantity(outSourceList.stream().filter(item -> item.getDeliveryStatus().equals("01")).count());
|
|
|
+ outSourceSummary.setWorkQuantity(outSourceList.stream().filter(item -> item.getDeliveryStatus().equals("02")).count());
|
|
|
+ outSourceSummary.setCompletedQuantity(outSourceList.stream().filter(item -> item.getDeliveryStatus().equals("03")).count());
|
|
|
+ outSourceSummary.setSuspendCount(outSourceList.stream().filter(item -> item.getDeliveryStatus().equals("04")).count());
|
|
|
+ selfDevSummary.setDeliverySum(selfDevList.size());
|
|
|
+ selfDevSummary.setUnstartedQuantity(selfDevList.stream().filter(item -> item.getDeliveryStatus().equals("01")).count());
|
|
|
+ selfDevSummary.setWorkQuantity(selfDevList.stream().filter(item -> item.getDeliveryStatus().equals("02")).count());
|
|
|
+ selfDevSummary.setCompletedQuantity(selfDevList.stream().filter(item -> item.getDeliveryStatus().equals("03")).count());
|
|
|
+ selfDevSummary.setSuspendCount(selfDevList.stream().filter(item -> item.getDeliveryStatus().equals("04")).count());
|
|
|
+
|
|
|
+ LinkedHashMap<String, Object> map = new LinkedHashMap<>();
|
|
|
+ map.put("项目共计", summaryList.size());
|
|
|
+ map.put("未开始项目", summaryList.stream().filter(item -> item.getDeliveryStatus().equals("01")).count());
|
|
|
+ map.put("进行中项目", summaryList.stream().filter(item -> item.getDeliveryStatus().equals("02")).count());
|
|
|
+ map.put("已完成项目", summaryList.stream().filter(item -> item.getDeliveryStatus().equals("03")).count());
|
|
|
+ map.put("暂停项目", summaryList.stream().filter(item -> item.getDeliveryStatus().equals("04")).count());
|
|
|
+ return ResponseDTO.ok(deliverySummaryList, map);
|
|
|
+ }
|
|
|
}
|