feat: app查询我的项目调整
parent
9d37179894
commit
457183cafa
|
|
@ -24,6 +24,7 @@ import org.springframework.context.annotation.Lazy;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
|
|
@ -89,8 +90,13 @@ public class EvalCustomerExecutor implements EvalCustomerApi {
|
|||
EvalCustomerQuery domainQuery = evalCustomerCmdConvertor.convertPageQueryToQ(query);
|
||||
domainQuery.setOrgId(institutionOrgSupport.resolveCurrentOrgId());
|
||||
PageResult<EvalCustomerEntity> pageResult = evalCustomerDomainService.page(domainQuery);
|
||||
List<EvalCustomerCO> co = evalCustomerCmdConvertor.convertEListToCOList(pageResult.getRecords());
|
||||
for (EvalCustomerCO evalCustomerCO : co) {
|
||||
long projectCount = evalCustomerDomainService.countProjects(Long.valueOf(evalCustomerCO.getId()), null);
|
||||
evalCustomerCO.setProjectCount(projectCount);
|
||||
}
|
||||
return PageResponse.of(
|
||||
evalCustomerCmdConvertor.convertEListToCOList(pageResult.getRecords()),
|
||||
co,
|
||||
pageResult.getTotal());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package org.qinan.safetyeval.app.executor.institution;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.qinan.safetyeval.app.convertor.EvalProjectCmdConvertor;
|
||||
|
|
@ -92,9 +93,45 @@ public class EvalProjectExecutor implements EvalProjectApi {
|
|||
@Override
|
||||
public PageResponse<EvalProjectCO> page(EvalProjectPageQuery query) {
|
||||
EvalProjectQuery domainQuery = evalProjectCmdConvertor.convertPageQueryToQ(query);
|
||||
domainQuery.setSurveyType(query.getSurveyType());
|
||||
PageResult<EvalProjectEntity> pageResult = evalProjectDomainService.page(domainQuery);
|
||||
List<EvalProjectCO> co = evalProjectCmdConvertor.convertEListToCOList(pageResult.getRecords());
|
||||
if (!CollectionUtils.isEmpty(co)) {
|
||||
if (query.getSurveyType() == 0) {
|
||||
// 未完成,有可能其他人已经上传检查表(已完成),但是当前人员没有去打卡, 需要判断节点是否完成, 如完成,设置为完成
|
||||
for (EvalProjectCO evalProjectCO : co) {
|
||||
int surveyType = 0;
|
||||
List<ProjectNodeCO> projectNodeCOS = JSON.parseArray(evalProjectCO.getProjectNode(), ProjectNodeCO.class);
|
||||
for (ProjectNodeCO projectNodeCO : projectNodeCOS) {
|
||||
if (ProjectStageEnum.SITE_SURVEY.getVal().equals(projectNodeCO.getType()) && projectNodeCO.getState() == 1) {
|
||||
surveyType = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
evalProjectCO.setSurveyType(surveyType);
|
||||
}
|
||||
}
|
||||
if (query.getSurveyType() == 1) {
|
||||
for (EvalProjectCO evalProjectCO : co) {
|
||||
evalProjectCO.setSurveyType(1);
|
||||
}
|
||||
}
|
||||
if (query.getSurveyType() == 2) {
|
||||
for (EvalProjectCO evalProjectCO : co) {
|
||||
int surveyType = 0;
|
||||
List<ProjectNodeCO> projectNodeCOS = JSON.parseArray(evalProjectCO.getProjectNode(), ProjectNodeCO.class);
|
||||
for (ProjectNodeCO projectNodeCO : projectNodeCOS) {
|
||||
if (ProjectStageEnum.SITE_SURVEY.getVal().equals(projectNodeCO.getType()) && projectNodeCO.getState() == 1) {
|
||||
surveyType = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
evalProjectCO.setSurveyType(surveyType);
|
||||
}
|
||||
}
|
||||
}
|
||||
return PageResponse.of(
|
||||
evalProjectCmdConvertor.convertEListToCOList(pageResult.getRecords()),
|
||||
co,
|
||||
pageResult.getTotal());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,4 +86,7 @@ public class EvalProjectCO {
|
|||
|
||||
@ApiModelProperty("项目阶段名称:正常/延期")
|
||||
private String projectPhaseName;
|
||||
|
||||
@ApiModelProperty("app项目勘察类型: 0-待勘察, 1-已完成")
|
||||
private int surveyType;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,4 +28,7 @@ public class EvalProjectPageQuery extends BasePageQuery {
|
|||
|
||||
@ApiModelProperty("app关键字搜素")
|
||||
private String keyword;
|
||||
|
||||
@ApiModelProperty("app项目勘察类型: 0-待勘察, 1-已完成, 2-全部(默认)")
|
||||
private int surveyType = 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,4 +38,6 @@ public class EvalProjectQuery {
|
|||
|
||||
@ApiModelProperty("app关键字搜素")
|
||||
private String keyword;
|
||||
@ApiModelProperty("app项目勘察类型: 0-待勘察, 1-已完成, 2-全部")
|
||||
private int surveyType;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,15 +14,21 @@ import org.qinan.safetyeval.domain.query.PageResult;
|
|||
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.convertor.EvalProjectDoConvertor;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectDO;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalSurveyDO;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSignTaskMapper;
|
||||
import org.qinan.safetyeval.infrastructure.mapper.EvalSurveyMapper;
|
||||
import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
|
||||
import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -37,6 +43,10 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway {
|
|||
|
||||
@Resource
|
||||
private OrgContextResolver orgContextResolver;
|
||||
@Autowired
|
||||
private EvalSignTaskMapper evalSignTaskMapper;
|
||||
@Autowired
|
||||
private EvalSurveyMapper evalSurveyMapper;
|
||||
|
||||
@Override
|
||||
public EvalProjectEntity save(EvalProjectEntity entity) {
|
||||
|
|
@ -160,7 +170,30 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway {
|
|||
if (StringUtils.hasText(query.getKeyword())) {
|
||||
wrapper.and(o -> o.like(EvalProjectDO::getProjectName, query.getKeyword()).or().like(EvalProjectDO::getProjectNo, query.getKeyword()));
|
||||
}
|
||||
if (Boolean.TRUE.equals(query.getMyProject())) {
|
||||
// app查询(已完成的勘察打卡)
|
||||
List<Long> pIds = evalSurveyMapper.selectList(new LambdaQueryWrapper<EvalSurveyDO>()
|
||||
.eq(EvalSurveyDO::getPersonnelId, AuthUserContextAdapter.getCurrentUserId())
|
||||
.isNotNull(EvalSurveyDO::getSignOutTime)).stream().map(EvalSurveyDO::getProjectId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (query.getSurveyType() == 1) {
|
||||
wrapper.in(EvalProjectDO::getId, CollectionUtils.isEmpty(pIds) ? Collections.singletonList(0L) : pIds);
|
||||
}
|
||||
if (query.getSurveyType() == 0) {
|
||||
List<Long> myPIds = evalProjectMapper.getByPersonnelId(AuthUserContextAdapter.getCurrentUserId());
|
||||
List<Long> unfinishedIds = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(pIds)) {
|
||||
for (Long peId : myPIds) {
|
||||
if (!pIds.contains(peId)) {
|
||||
unfinishedIds.add(peId);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
unfinishedIds.addAll(myPIds);
|
||||
}
|
||||
wrapper.in(EvalProjectDO::getId, CollectionUtils.isEmpty(unfinishedIds) ? Collections.singletonList(0L) : unfinishedIds);
|
||||
}
|
||||
if (Boolean.TRUE.equals(query.getMyProject()) && query.getSurveyType() == 2) {
|
||||
wrapper.apply("JSON_CONTAINS(participants_json, JSON_OBJECT('id', {0}))", AuthUserContextAdapter.getCurrentUserId());
|
||||
}
|
||||
applyProgressStatusFilter(wrapper, query.getProgressStatus());
|
||||
|
|
|
|||
|
|
@ -76,4 +76,5 @@ public interface EvalProjectMapper extends BaseMapper<EvalProjectDO> {
|
|||
*/
|
||||
List<RegulatorEvalSurveyClockInCO> selectRegulatorSurveyClockInList(@Param("projectId") Long projectId);
|
||||
|
||||
List<Long> getByPersonnelId(@Param("currentUserId") Long currentUserId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -253,5 +253,10 @@
|
|||
AND s.project_id = #{projectId}
|
||||
ORDER BY s.id ASC
|
||||
</select>
|
||||
<select id="getByPersonnelId" resultType="java.lang.Long">
|
||||
select id
|
||||
from eval_project
|
||||
where JSON_CONTAINS(participants_json, JSON_OBJECT('id', #{currentUserId}));
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue