|
@@ -6,20 +6,20 @@ import cn.com.ty.lift.business.capital.dao.entity.model.request.AttendanceListRe
|
|
|
import cn.com.ty.lift.business.capital.dao.entity.model.request.SignInRequest;
|
|
|
import cn.com.ty.lift.business.capital.dao.entity.model.response.SignInResponse;
|
|
|
import cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecord;
|
|
|
+import cn.com.ty.lift.business.capital.dao.entity.model.response.SignRecordGroupResult;
|
|
|
import cn.com.ty.lift.business.capital.dao.mapper.SignInMapper;
|
|
|
import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
|
|
|
import cn.com.ty.lift.business.project.service.ProjectUserService;
|
|
|
import cn.com.ty.lift.common.constants.CommonEnum;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -90,6 +90,16 @@ public class SignInService extends ServiceImpl<SignInMapper, SignIn> {
|
|
|
return responseList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param request 公司id,项目id
|
|
|
+ * @return 签到时间列表
|
|
|
+ * @description 查询签到时间
|
|
|
+ * @date 2020/4/18 7:12 下午
|
|
|
+ */
|
|
|
+ public List<LocalDate> getSignDate(SignInRequest request) {
|
|
|
+ return baseMapper.getSignDate(request);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param request 大修签到查询条件
|
|
|
* @return RestResponse 结果集
|
|
@@ -97,11 +107,46 @@ public class SignInService extends ServiceImpl<SignInMapper, SignIn> {
|
|
|
* @date 2020/4/16 7:22 下午
|
|
|
*/
|
|
|
public SignInResponse list(SignInRequest request) {
|
|
|
- CapitalRepair capital = capitalRepairService.getOne(request.getId());
|
|
|
SignInResponse response = new SignInResponse();
|
|
|
+ //查询大修项目详情
|
|
|
+ CapitalRepair capital = capitalRepairService.getOne(request.getId());
|
|
|
response.setCapitalRepair(capital);
|
|
|
- IPage<SignRecord> signRecord = baseMapper.findByCondition(request.getPage(), request);
|
|
|
- response.setSignRecordList(signRecord.getRecords());
|
|
|
+ List<LocalDate> list = getSignDate(request);
|
|
|
+ int size = list.size();
|
|
|
+ int count = size / (int) request.getPageSize();
|
|
|
+ Map<String, Object> paramMap = new HashMap<>();
|
|
|
+ int minIndex = (int) ((request.getPageNum() - 1) * request.getPageSize());
|
|
|
+ int maxIndex = (int) (request.getPageNum() * request.getPageSize());
|
|
|
+ if (maxIndex >= size) {
|
|
|
+ maxIndex = size - 1;
|
|
|
+ }
|
|
|
+ LocalDate minDate = list.get(minIndex);
|
|
|
+ LocalDate maxDate = list.get(maxIndex);
|
|
|
+ paramMap.put("minDate", minDate);
|
|
|
+ paramMap.put("maxDate", maxDate);
|
|
|
+ paramMap.put("mtCompanyId", request.getMtCompanyId());
|
|
|
+ paramMap.put("projectId", request.getId());
|
|
|
+ paramMap.put("userId", request.getUserId());
|
|
|
+ //查询签到记录
|
|
|
+ List<SignRecord> signRecord = baseMapper.findByCondition(paramMap);
|
|
|
+ List<SignRecordGroupResult> results = new ArrayList<>();
|
|
|
+ //分组签到记录
|
|
|
+ Map<LocalDate, List<SignRecord>> collect = signRecord.stream().collect(Collectors.groupingBy(SignRecord::getSignDate));
|
|
|
+ for (Map.Entry<LocalDate, List<SignRecord>> entry : collect.entrySet()) {
|
|
|
+ SignRecordGroupResult result = new SignRecordGroupResult();
|
|
|
+ result.setSignDate(entry.getKey());
|
|
|
+ result.setSignRecords(entry.getValue());
|
|
|
+ results.add(result);
|
|
|
+ }
|
|
|
+ results.sort(Comparator.comparing(SignRecordGroupResult::getSignDate).reversed());
|
|
|
+ //组装分页数据
|
|
|
+ Page<SignRecordGroupResult> page = new Page<>();
|
|
|
+ page.setCurrent(request.getPageNum());
|
|
|
+ page.setSize(request.getPageSize());
|
|
|
+ page.setPages(size % request.getPageSize() > 0 ? count + 1 : count);
|
|
|
+ page.setTotal(size);
|
|
|
+ page.setRecords(results);
|
|
|
+ response.setResultPage(page);
|
|
|
return response;
|
|
|
}
|
|
|
}
|