提交代码
This commit is contained in:
+24
-19
@@ -1,30 +1,30 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.area;
|
package cn.iocoder.yudao.module.farm.controller.admin.area;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import io.swagger.annotations.*;
|
|
||||||
|
|
||||||
import javax.validation.constraints.*;
|
|
||||||
import javax.validation.*;
|
|
||||||
import javax.servlet.http.*;
|
|
||||||
import java.util.*;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.dto.AreaProjectDTO;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.*;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.*;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
|
||||||
import cn.iocoder.yudao.module.farm.convert.area.AreaConvert;
|
import cn.iocoder.yudao.module.farm.convert.area.AreaConvert;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
@Api(tags = "管理后台 - ")
|
@Api(tags = "管理后台 - ")
|
||||||
@RestController
|
@RestController
|
||||||
@@ -97,4 +97,9 @@ public class AreaController {
|
|||||||
ExcelUtils.write(response, ".xls", "数据", AreaExcelVO.class, datas);
|
ExcelUtils.write(response, ".xls", "数据", AreaExcelVO.class, datas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/miniAreaProjectCount")
|
||||||
|
@ApiOperation("小程序首页上方一级区域及自己计划准备中的数量")
|
||||||
|
public CommonResult<List<AreaProjectDTO>> miniAreaProjectCount(){
|
||||||
|
return success(areaService.miniAreaProjectCount());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.area.dto;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class AreaProjectDTO {
|
||||||
|
private Long areaId;
|
||||||
|
|
||||||
|
private String areaName;
|
||||||
|
|
||||||
|
private Double area;
|
||||||
|
|
||||||
|
private Integer projectCount;
|
||||||
|
}
|
||||||
+2
-2
@@ -108,7 +108,7 @@ public class StatisticalController {
|
|||||||
* 项目数据
|
* 项目数据
|
||||||
*/
|
*/
|
||||||
public List<TaskDO> projectMsg(StatisticalVo vo){
|
public List<TaskDO> projectMsg(StatisticalVo vo){
|
||||||
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery().eq(TaskDO::getPretendDelete, false).eq(TaskDO::getDraft, false));
|
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery().ne(TaskDO::getStatus, TaskStatus.END.getCode()).eq(TaskDO::getDraft, false));
|
||||||
vo.setTaskTotalCount(taskList.size());
|
vo.setTaskTotalCount(taskList.size());
|
||||||
Long planeCount = taskList.stream().filter(plane -> plane.getStatus().equals(TaskStatus.PLAN) || plane.getStatus().equals(TaskStatus.READY)).count();
|
Long planeCount = taskList.stream().filter(plane -> plane.getStatus().equals(TaskStatus.PLAN) || plane.getStatus().equals(TaskStatus.READY)).count();
|
||||||
vo.setTaskPlanCount(planeCount.intValue());
|
vo.setTaskPlanCount(planeCount.intValue());
|
||||||
@@ -162,7 +162,7 @@ public class StatisticalController {
|
|||||||
vo.setCakeSeries(cakeList);
|
vo.setCakeSeries(cakeList);
|
||||||
}
|
}
|
||||||
vo.setCakeTitle("总数量");
|
vo.setCakeTitle("总数量");
|
||||||
vo.setCakeSubtitle(vo.getCakeSeries().stream().mapToDouble(CakeSeries::getValue).sum()+"平方");
|
vo.setCakeSubtitle(vo.getCakeSeries().stream().mapToDouble(CakeSeries::getValue).sum()+"亩");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-9
@@ -1,9 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.task.dto;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.page.PageDTO;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Created by jiu on 2022/6/15.
|
|
||||||
*/
|
|
||||||
public class TaskPageDTO extends PageDTO {
|
|
||||||
}
|
|
||||||
-2
@@ -66,8 +66,6 @@ public class TaskBaseVO extends BaseDO {
|
|||||||
@ApiModelProperty("草稿")
|
@ApiModelProperty("草稿")
|
||||||
private Boolean draft = false;
|
private Boolean draft = false;
|
||||||
|
|
||||||
private Boolean pretendDelete;
|
|
||||||
|
|
||||||
private Map<String, Boolean> actions;
|
private Map<String, Boolean> actions;
|
||||||
public Map<String, Boolean> getActions() {
|
public Map<String, Boolean> getActions() {
|
||||||
actions = Maps.newHashMap();
|
actions = Maps.newHashMap();
|
||||||
|
|||||||
-1
@@ -49,6 +49,5 @@ public class TaskExcelVO {
|
|||||||
private Date createTime;
|
private Date createTime;
|
||||||
@ExcelProperty("草稿")
|
@ExcelProperty("草稿")
|
||||||
private Boolean draft;
|
private Boolean draft;
|
||||||
private Boolean pretendDelete;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -63,6 +63,4 @@ public class TaskExportReqVO {
|
|||||||
@ApiModelProperty("草稿")
|
@ApiModelProperty("草稿")
|
||||||
private Boolean draft;
|
private Boolean draft;
|
||||||
|
|
||||||
private Boolean pretendDelete;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -70,8 +70,6 @@ public class TaskPageReqVO extends PageParam {
|
|||||||
@ApiModelProperty("草稿")
|
@ApiModelProperty("草稿")
|
||||||
private Boolean draft = false;
|
private Boolean draft = false;
|
||||||
|
|
||||||
private Boolean pretendDelete = false;
|
|
||||||
|
|
||||||
private TaskStatus status;
|
private TaskStatus status;
|
||||||
|
|
||||||
@ApiModelProperty("参与状态 我参与 我创建 我负责")
|
@ApiModelProperty("参与状态 我参与 我创建 我负责")
|
||||||
|
|||||||
-3
@@ -90,9 +90,6 @@ public class TaskDO extends BaseDO {
|
|||||||
@ApiModelProperty("草稿")
|
@ApiModelProperty("草稿")
|
||||||
private Boolean draft;
|
private Boolean draft;
|
||||||
|
|
||||||
@ApiModelProperty("假装删除")
|
|
||||||
private Boolean pretendDelete;
|
|
||||||
|
|
||||||
@ApiModelProperty("部门Id")
|
@ApiModelProperty("部门Id")
|
||||||
@Dict(dictTable = "system_dept",dicCode = "id",dicText = "name")
|
@Dict(dictTable = "system_dept",dicCode = "id",dicText = "name")
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|||||||
+4
-43
@@ -1,15 +1,12 @@
|
|||||||
package cn.iocoder.yudao.module.farm.dal.mysql.task;
|
package cn.iocoder.yudao.module.farm.dal.mysql.task;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.task.vo.TaskExportReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.task.vo.*;
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 农场项目 Mapper
|
* 农场项目 Mapper
|
||||||
@@ -19,41 +16,6 @@ import cn.iocoder.yudao.module.farm.controller.admin.task.vo.*;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface TaskMapper extends BaseMapperX<TaskDO> {
|
public interface TaskMapper extends BaseMapperX<TaskDO> {
|
||||||
|
|
||||||
default PageResult<TaskDO> selectPage(TaskPageReqVO reqVO) {
|
|
||||||
LambdaQueryWrapperX<TaskDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<TaskDO>();
|
|
||||||
|
|
||||||
//搜索区域
|
|
||||||
if (ObjectUtil.isNotEmpty(reqVO.getAreaId())){
|
|
||||||
lambdaQueryWrapperX.apply("JSON_CONTAINS(areas, '"+ reqVO.getAreaId()+"')");
|
|
||||||
}
|
|
||||||
//搜索资源
|
|
||||||
if (ObjectUtil.isNotEmpty(reqVO.getResourceId())){
|
|
||||||
lambdaQueryWrapperX.apply("JSON_CONTAINS(resources, JSON_OBJECT('resourceId'," +reqVO.getResourceId()+"))");
|
|
||||||
}
|
|
||||||
//搜索执行人
|
|
||||||
if (ObjectUtil.isNotEmpty(reqVO.getExecutorName())){
|
|
||||||
lambdaQueryWrapperX.apply("JSON_CONTAINS(executor_person, '"+ reqVO.getExecutorName()+"')");
|
|
||||||
}
|
|
||||||
|
|
||||||
lambdaQueryWrapperX.eqIfPresent(TaskDO::getProjectId, reqVO.getProjectId())
|
|
||||||
.eqIfPresent(TaskDO::getCropId, reqVO.getCropId())
|
|
||||||
.eqIfPresent(TaskDO::getCropNum, reqVO.getCropNum())
|
|
||||||
.eqIfPresent(TaskDO::getTaskCateId, reqVO.getTaskCateId())
|
|
||||||
.eqIfPresent(TaskDO::getTaskCateName, reqVO.getTaskCateName())
|
|
||||||
.eqIfPresent(TaskDO::getResources, reqVO.getResources())
|
|
||||||
.eqIfPresent(TaskDO::getImages, reqVO.getImages())
|
|
||||||
.eqIfPresent(TaskDO::getDraft, reqVO.getDraft())
|
|
||||||
.betweenIfPresent(TaskDO::getPlanStartTime, reqVO.getBeginPlanStartTime(), reqVO.getEndPlanStartTime())
|
|
||||||
.betweenIfPresent(TaskDO::getPlanEndTime, reqVO.getBeginPlanEndTime(), reqVO.getEndPlanEndTime())
|
|
||||||
.eqIfPresent(TaskDO::getWeight, reqVO.getWeight())
|
|
||||||
.betweenIfPresent(TaskDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
|
||||||
.eqIfPresent(TaskDO::getPretendDelete, reqVO.getPretendDelete())
|
|
||||||
.eqIfPresent(TaskDO::getMainPerson, reqVO.getMainPerson())
|
|
||||||
.orderByDesc(TaskDO::getId);
|
|
||||||
|
|
||||||
return selectPage(reqVO, lambdaQueryWrapperX);
|
|
||||||
}
|
|
||||||
|
|
||||||
default List<TaskDO> selectList(TaskExportReqVO reqVO) {
|
default List<TaskDO> selectList(TaskExportReqVO reqVO) {
|
||||||
return selectList(new LambdaQueryWrapperX<TaskDO>()
|
return selectList(new LambdaQueryWrapperX<TaskDO>()
|
||||||
.eqIfPresent(TaskDO::getProjectId, reqVO.getProjectId())
|
.eqIfPresent(TaskDO::getProjectId, reqVO.getProjectId())
|
||||||
@@ -68,7 +30,6 @@ public interface TaskMapper extends BaseMapperX<TaskDO> {
|
|||||||
.betweenIfPresent(TaskDO::getPlanEndTime, reqVO.getBeginPlanEndTime(), reqVO.getEndPlanEndTime())
|
.betweenIfPresent(TaskDO::getPlanEndTime, reqVO.getBeginPlanEndTime(), reqVO.getEndPlanEndTime())
|
||||||
.eqIfPresent(TaskDO::getWeight, reqVO.getWeight())
|
.eqIfPresent(TaskDO::getWeight, reqVO.getWeight())
|
||||||
.betweenIfPresent(TaskDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
.betweenIfPresent(TaskDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
||||||
.eqIfPresent(TaskDO::getPretendDelete, reqVO.getPretendDelete())
|
|
||||||
.orderByDesc(TaskDO::getId));
|
.orderByDesc(TaskDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.farm.service.area;
|
package cn.iocoder.yudao.module.farm.service.area;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.area.dto.AreaProjectDTO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaCreateReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaExportReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaExportReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaPageReqVO;
|
||||||
@@ -90,4 +91,6 @@ public interface AreaService {
|
|||||||
*/
|
*/
|
||||||
List<AreaDO> getAreaAndSubArea(Long id);
|
List<AreaDO> getAreaAndSubArea(Long id);
|
||||||
|
|
||||||
|
List<AreaProjectDTO> miniAreaProjectCount();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+63
@@ -2,13 +2,19 @@ package cn.iocoder.yudao.module.farm.service.area;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.area.dto.AreaProjectDTO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaCreateReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaExportReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaExportReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaPageReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaPageReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaUpdateReqVO;
|
import cn.iocoder.yudao.module.farm.controller.admin.area.vo.AreaUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.farm.convert.area.AreaConvert;
|
import cn.iocoder.yudao.module.farm.convert.area.AreaConvert;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.area.AreaMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.project.ProjectMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.enums.ProjectStateEnum;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
@@ -23,6 +29,7 @@ import java.util.Optional;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.AREA_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.AREA_NOT_EXISTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,6 +44,10 @@ public class AreaServiceImpl implements AreaService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AreaMapper areaMapper;
|
private AreaMapper areaMapper;
|
||||||
|
@Resource
|
||||||
|
private CpUserMapper cpUserMapper;
|
||||||
|
@Resource
|
||||||
|
private ProjectMapper projectMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createArea(AreaCreateReqVO createReqVO) {
|
public Long createArea(AreaCreateReqVO createReqVO) {
|
||||||
@@ -184,4 +195,56 @@ public class AreaServiceImpl implements AreaService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AreaProjectDTO> miniAreaProjectCount(){
|
||||||
|
List<AreaDO> allList = areaMapper.selectList();
|
||||||
|
List<AreaProjectDTO> areaProjectList = new ArrayList<>();
|
||||||
|
|
||||||
|
CpUserDO user = cpUserMapper.selectOne(CpUserDO::getUserId, getLoginUser().getUsername());
|
||||||
|
List<ProjectDO> projectList = new ArrayList<>();
|
||||||
|
if (ObjectUtil.isNotEmpty(user)){
|
||||||
|
projectList = projectMapper.selectList(Wrappers.<ProjectDO>lambdaQuery().eq(ProjectDO::getDraft, false)
|
||||||
|
.eq(ProjectDO::getPretendDelete, false).in(ProjectDO::getState, ProjectStateEnum.STARTING.getCode(), ProjectStateEnum.PLAN.getCode())
|
||||||
|
.eq(ProjectDO::getMainPerson, user.getId()));
|
||||||
|
System.out.println(projectList.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<AreaDO> oneList = allList.stream().filter(item -> item.getParentId().equals(0L)).collect(Collectors.toList());
|
||||||
|
for (AreaDO oneArea : oneList) {
|
||||||
|
//存放一级及对应二三级区域信息
|
||||||
|
List<AreaDO> areaList = new ArrayList<>();
|
||||||
|
areaList.add(oneArea);
|
||||||
|
|
||||||
|
List<AreaDO> secondList = allList.stream().filter(item -> item.getParentId().equals(oneArea.getId())).collect(Collectors.toList());
|
||||||
|
areaList.addAll(secondList);
|
||||||
|
for (AreaDO twoArea : secondList) {
|
||||||
|
List<AreaDO> thirdList = allList.stream().filter(item -> item.getParentId().equals(twoArea.getId())).collect(Collectors.toList());
|
||||||
|
areaList.addAll(thirdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> distinctIdList = areaList.stream().map(AreaDO::getId).distinct().collect(Collectors.toList());
|
||||||
|
System.out.println(oneArea.getName() +",,"+ secondList.size()+">>>>" + distinctIdList.toString());
|
||||||
|
AreaProjectDTO areaProject = AreaProjectDTO.builder()
|
||||||
|
.areaId(oneArea.getId())
|
||||||
|
.areaName(oneArea.getName())
|
||||||
|
.area(oneArea.getArea())
|
||||||
|
.projectCount(0)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(projectList)){
|
||||||
|
for (ProjectDO project : projectList) {
|
||||||
|
List<Long> countList = project.getAreas().stream().filter(distinctIdList::contains).collect(Collectors.toList());
|
||||||
|
if (ObjectUtil.isNotEmpty(countList)){
|
||||||
|
areaProject.setProjectCount(areaProject.getProjectCount() + 1) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
areaProjectList.add(areaProject);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return areaProjectList;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-2
@@ -206,7 +206,16 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
return queryWrapperX.eq(ProjectDO::getCropId, 99999L);
|
return queryWrapperX.eq(ProjectDO::getCropId, 99999L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
queryWrapperX.eqIfPresent(ProjectDO::getState, pageDTO.getState());
|
if (ObjectUtil.isNotEmpty(pageDTO.getState())){
|
||||||
|
if (pageDTO.getState() == 13){
|
||||||
|
//查看 计划中进行中
|
||||||
|
queryWrapperX.lt(ProjectDO::getState, ProjectStateEnum.FINISH.getCode());
|
||||||
|
}else{
|
||||||
|
//按给定状态查看
|
||||||
|
queryWrapperX.eqIfPresent(ProjectDO::getState, pageDTO.getState());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
queryWrapperX.likeIfPresent(ProjectDO::getName, pageDTO.getProjectName());
|
queryWrapperX.likeIfPresent(ProjectDO::getName, pageDTO.getProjectName());
|
||||||
queryWrapperX.eq(ProjectDO::getPretendDelete, false);
|
queryWrapperX.eq(ProjectDO::getPretendDelete, false);
|
||||||
if (ObjectUtil.isNotEmpty(pageDTO.getTimeLimit())){
|
if (ObjectUtil.isNotEmpty(pageDTO.getTimeLimit())){
|
||||||
@@ -308,7 +317,7 @@ public class ProjectServiceImpl implements ProjectService {
|
|||||||
public void checkProjectTaskFinish(ProjectDO updateObj){
|
public void checkProjectTaskFinish(ProjectDO updateObj){
|
||||||
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery()
|
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery()
|
||||||
.eq(TaskDO::getProjectId, updateObj.getId())
|
.eq(TaskDO::getProjectId, updateObj.getId())
|
||||||
.eq(TaskDO::getPretendDelete, false)
|
.ne(TaskDO::getStatus, TaskStatus.END.getCode())
|
||||||
.eq(TaskDO::getDraft, false)
|
.eq(TaskDO::getDraft, false)
|
||||||
.ne(TaskDO::getStatus, TaskStatus.COMPLETE)
|
.ne(TaskDO::getStatus, TaskStatus.COMPLETE)
|
||||||
);
|
);
|
||||||
|
|||||||
+57
-10
@@ -62,6 +62,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||||
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
@@ -141,7 +142,7 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
// 校验存在
|
// 校验存在
|
||||||
TaskDO taskDO = this.validateTaskExists(id);
|
TaskDO taskDO = this.validateTaskExists(id);
|
||||||
// 删除
|
// 删除
|
||||||
taskDO.setPretendDelete(true);
|
taskDO.setStatus(TaskStatus.END);
|
||||||
taskMapper.updateById(taskDO);
|
taskMapper.updateById(taskDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,7 +205,6 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
.betweenIfPresent(TaskDO::getPlanEndTime, pageReqVO.getBeginPlanEndTime(), pageReqVO.getEndPlanEndTime())
|
.betweenIfPresent(TaskDO::getPlanEndTime, pageReqVO.getBeginPlanEndTime(), pageReqVO.getEndPlanEndTime())
|
||||||
.eqIfPresent(TaskDO::getWeight, pageReqVO.getWeight())
|
.eqIfPresent(TaskDO::getWeight, pageReqVO.getWeight())
|
||||||
.betweenIfPresent(TaskDO::getCreateTime, pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime())
|
.betweenIfPresent(TaskDO::getCreateTime, pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime())
|
||||||
.eqIfPresent(TaskDO::getPretendDelete, pageReqVO.getPretendDelete())
|
|
||||||
.eqIfPresent(TaskDO::getStatus, pageReqVO.getStatus())
|
.eqIfPresent(TaskDO::getStatus, pageReqVO.getStatus())
|
||||||
.orderByDesc(TaskDO::getId);
|
.orderByDesc(TaskDO::getId);
|
||||||
|
|
||||||
@@ -220,14 +220,50 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<TaskAssemblyDTO> getAdminTaskPage(TaskPageReqVO pageReqVO){
|
public PageResult<TaskAssemblyDTO> getAdminTaskPage(TaskPageReqVO reqVO){
|
||||||
PageResult<TaskDO> taskPage = taskMapper.selectPage(pageReqVO);
|
LambdaQueryWrapperX<TaskDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<TaskDO>();
|
||||||
|
|
||||||
|
//搜索区域
|
||||||
|
if (ObjectUtil.isNotEmpty(reqVO.getAreaId())){
|
||||||
|
lambdaQueryWrapperX.apply("JSON_CONTAINS(areas, '"+ reqVO.getAreaId()+"')");
|
||||||
|
}
|
||||||
|
//搜索资源
|
||||||
|
if (ObjectUtil.isNotEmpty(reqVO.getResourceId())){
|
||||||
|
lambdaQueryWrapperX.apply("JSON_CONTAINS(resources, JSON_OBJECT('resourceId'," +reqVO.getResourceId()+"))");
|
||||||
|
}
|
||||||
|
//搜索执行人
|
||||||
|
if (ObjectUtil.isNotEmpty(reqVO.getExecutorName())){
|
||||||
|
lambdaQueryWrapperX.apply("JSON_CONTAINS(executor_person, '"+ reqVO.getExecutorName()+"')");
|
||||||
|
}
|
||||||
|
//自己创建和负责的任务
|
||||||
|
if (ObjectUtil.isNotEmpty(reqVO.getMyTask()) && reqVO.getMyTask()){
|
||||||
|
CpUserDO user = cpUserMapper.selectOne(CpUserDO::getUserId, getLoginUser().getUsername());
|
||||||
|
if (ObjectUtil.isNotEmpty(user)){
|
||||||
|
//查看我负责或创建的任务
|
||||||
|
lambdaQueryWrapperX.apply(" ( main_person = "+ user.getId() +" or creator = " + getLoginUserId() +")");
|
||||||
|
}
|
||||||
|
lambdaQueryWrapperX.ne(TaskDO::getStatus, TaskStatus.END.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
lambdaQueryWrapperX.eqIfPresent(TaskDO::getProjectId, reqVO.getProjectId())
|
||||||
|
.eqIfPresent(TaskDO::getCropId, reqVO.getCropId())
|
||||||
|
.eqIfPresent(TaskDO::getTaskCateId, reqVO.getTaskCateId())
|
||||||
|
.eqIfPresent(TaskDO::getTaskCateName, reqVO.getTaskCateName())
|
||||||
|
.eqIfPresent(TaskDO::getDraft, reqVO.getDraft())
|
||||||
|
.betweenIfPresent(TaskDO::getPlanStartTime, reqVO.getBeginPlanStartTime(), reqVO.getEndPlanStartTime())
|
||||||
|
.betweenIfPresent(TaskDO::getPlanEndTime, reqVO.getBeginPlanEndTime(), reqVO.getEndPlanEndTime())
|
||||||
|
.eqIfPresent(TaskDO::getWeight, reqVO.getWeight())
|
||||||
|
.betweenIfPresent(TaskDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
||||||
|
.eqIfPresent(TaskDO::getStatus, reqVO.getStatus())
|
||||||
|
.eqIfPresent(TaskDO::getMainPerson, reqVO.getMainPerson())
|
||||||
|
.orderByDesc(TaskDO::getId);
|
||||||
|
|
||||||
|
PageResult<TaskDO> taskPage = taskMapper.selectPage(reqVO, lambdaQueryWrapperX);
|
||||||
Map<Long, TaskAssemblyDTO> map = this.taskAssemble(taskPage.getList());
|
Map<Long, TaskAssemblyDTO> map = this.taskAssemble(taskPage.getList());
|
||||||
List<TaskAssemblyDTO> list = new ArrayList<>(map.values()).stream().sorted(Comparator.comparing(TaskAssemblyDTO::getId).reversed()).collect(Collectors.toList());
|
List<TaskAssemblyDTO> list = new ArrayList<>(map.values()).stream().sorted(Comparator.comparing(TaskAssemblyDTO::getId).reversed()).collect(Collectors.toList());
|
||||||
PageResult<TaskAssemblyDTO> page = new PageResult<>();
|
PageResult<TaskAssemblyDTO> page = new PageResult<>();
|
||||||
page.setList(list);
|
page.setList(list);
|
||||||
page.setTotal(taskPage.getTotal());
|
page.setTotal(taskPage.getTotal());
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,16 +495,16 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
if (ObjectUtil.isNotEmpty(userId)){
|
if (ObjectUtil.isNotEmpty(userId)){
|
||||||
//我创建
|
//我创建
|
||||||
taskSummaryDTO.setCreateCount(taskMapper.selectCount(
|
taskSummaryDTO.setCreateCount(taskMapper.selectCount(
|
||||||
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getCreator, userId).eq(TaskDO::getDraft, false).eq(TaskDO::getPretendDelete, false)).intValue());
|
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getCreator, userId).eq(TaskDO::getDraft, false).ne(TaskDO::getStatus, TaskStatus.END.getCode())).intValue());
|
||||||
AdminUserDO adminUser = adminUserMapper.selectOne(AdminUserDO::getId, userId);
|
AdminUserDO adminUser = adminUserMapper.selectOne(AdminUserDO::getId, userId);
|
||||||
CpUserDO cpUser = cpUserMapper.selectOne(CpUserDO::getUserId, adminUser.getCpUserId());
|
CpUserDO cpUser = cpUserMapper.selectOne(CpUserDO::getUserId, adminUser.getCpUserId());
|
||||||
//我负责的
|
//我负责的
|
||||||
taskSummaryDTO.setResponsibleCount(taskMapper.selectCount(
|
taskSummaryDTO.setResponsibleCount(taskMapper.selectCount(
|
||||||
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getMainPerson, cpUser.getId()).eq(TaskDO::getDraft, false).eq(TaskDO::getPretendDelete, false)).intValue());
|
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getMainPerson, cpUser.getId()).eq(TaskDO::getDraft, false).ne(TaskDO::getStatus, TaskStatus.END.getCode())).intValue());
|
||||||
//我参与的
|
//我参与的
|
||||||
//queryWrapperX.apply(" ((JSON_CONTAINS(members, '"+ user.getId()+"') or creator = " + getLoginUserId() +"))");
|
//queryWrapperX.apply(" ((JSON_CONTAINS(members, '"+ user.getId()+"') or creator = " + getLoginUserId() +"))");
|
||||||
taskSummaryDTO.setJoinCount(taskMapper.selectCount(
|
taskSummaryDTO.setJoinCount(taskMapper.selectCount(
|
||||||
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getDraft, false).eq(TaskDO::getPretendDelete, false).apply(("JSON_CONTAINS(executor_person, '"+ cpUser.getId()+"')"))).intValue());
|
new LambdaQueryWrapper<TaskDO>().eq(TaskDO::getDraft, false).ne(TaskDO::getStatus, TaskStatus.END.getCode()).apply(("JSON_CONTAINS(executor_person, '"+ cpUser.getId()+"')"))).intValue());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,8 +515,15 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
public List<Map<String, String>> whatDayHaveTask(Long projectId){
|
public List<Map<String, String>> whatDayHaveTask(Long projectId){
|
||||||
LambdaQueryWrapperX<TaskDO> queryWrapperX = new LambdaQueryWrapperX<>();
|
LambdaQueryWrapperX<TaskDO> queryWrapperX = new LambdaQueryWrapperX<>();
|
||||||
queryWrapperX.ne(TaskDO::getDraft, true);
|
queryWrapperX.ne(TaskDO::getDraft, true);
|
||||||
queryWrapperX.ne(TaskDO::getPretendDelete, true);
|
queryWrapperX.ne(TaskDO::getStatus, TaskStatus.END.getCode());
|
||||||
queryWrapperX.eqIfPresent(TaskDO::getProjectId, projectId);
|
queryWrapperX.eqIfPresent(TaskDO::getProjectId, projectId);
|
||||||
|
|
||||||
|
CpUserDO user = cpUserMapper.selectOne(CpUserDO::getUserId, getLoginUser().getUsername());
|
||||||
|
if (ObjectUtil.isNotEmpty(user)){
|
||||||
|
//查看我负责或创建的任务
|
||||||
|
queryWrapperX.apply(" ( main_person = "+ user.getId() +" or creator = " + getLoginUserId() +")");
|
||||||
|
}
|
||||||
|
|
||||||
List<TaskDO> taskList = taskMapper.selectList(queryWrapperX);
|
List<TaskDO> taskList = taskMapper.selectList(queryWrapperX);
|
||||||
List<Map<String, String>> list = new ArrayList<>();
|
List<Map<String, String>> list = new ArrayList<>();
|
||||||
if (ObjectUtil.isEmpty(taskList)){
|
if (ObjectUtil.isEmpty(taskList)){
|
||||||
@@ -573,6 +616,10 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
* @param task 任务实体
|
* @param task 任务实体
|
||||||
*/
|
*/
|
||||||
public void checkStateByExecutionTime(TaskDO task){
|
public void checkStateByExecutionTime(TaskDO task){
|
||||||
|
if (ObjectUtil.isNotEmpty(task.getStatus()) && task.getStatus().equals(TaskStatus.END)){
|
||||||
|
task.setStatus(TaskStatus.END);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (task.getPlanStartTime() != null){
|
if (task.getPlanStartTime() != null){
|
||||||
FarmTimeEnum timeEnum = FarmTimeUtil.checkingDate(task.getPlanStartTime());
|
FarmTimeEnum timeEnum = FarmTimeUtil.checkingDate(task.getPlanStartTime());
|
||||||
if (timeEnum.equals(FarmTimeEnum.BEFORE_TODAY)){
|
if (timeEnum.equals(FarmTimeEnum.BEFORE_TODAY)){
|
||||||
@@ -596,7 +643,7 @@ public class TaskServiceImpl implements TaskService {
|
|||||||
Boolean oldIgnore = TenantContextHolder.isIgnore();
|
Boolean oldIgnore = TenantContextHolder.isIgnore();
|
||||||
try {
|
try {
|
||||||
TenantContextHolder.setIgnore(true);
|
TenantContextHolder.setIgnore(true);
|
||||||
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery().ne(TaskDO::getDraft, true).eq(TaskDO::getPretendDelete, false)
|
List<TaskDO> taskList = taskMapper.selectList(Wrappers.<TaskDO>lambdaQuery().ne(TaskDO::getDraft, true).ne(TaskDO::getStatus, TaskStatus.END.getCode())
|
||||||
.in(TaskDO::getStatus, TaskStatus.PLAN.getCode(), TaskStatus.READY.getCode())
|
.in(TaskDO::getStatus, TaskStatus.PLAN.getCode(), TaskStatus.READY.getCode())
|
||||||
.like(TaskDO::getPlanStartTime, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
|
.like(TaskDO::getPlanStartTime, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
|
||||||
if (taskList.size() != 0){
|
if (taskList.size() != 0){
|
||||||
|
|||||||
Reference in New Issue
Block a user