Browse Source

小程序任务列表接口编写

tags/v1.0.0^2
chengwang 1 year ago
parent
commit
f0a9628f48
10 changed files with 291 additions and 82 deletions
  1. +8
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/DeptController.java
  2. +17
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/InspectionController.java
  3. +7
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/dao/DeptMapper.java
  4. +2
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IDeptService.java
  5. +5
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IInspectionService.java
  6. +46
    -30
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/DeptServiceImpl.java
  7. +57
    -52
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/InspectionServiceImpl.java
  8. +109
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/AirLineVO.java
  9. +5
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/InspectionInfoVo.java
  10. +35
    -0
      tuoheng-service/tuoheng-miniprogram/src/main/resources/mapper/DeptMapper.xml

+ 8
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/DeptController.java View File

@@ -27,5 +27,13 @@ public class DeptController {
return iDeptService.treeList();
}

@GetMapping("/test")
public JsonResult test(String id){
return iDeptService.test(id);
}





}

+ 17
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/controller/InspectionController.java View File

@@ -3,12 +3,16 @@ package com.tuoheng.miniprogram.controller;
import com.tuoheng.common.core.utils.JsonResult;
import com.tuoheng.miniprogram.entity.query.InspectionQuery;
import com.tuoheng.miniprogram.service.IInspectionService;
import com.tuoheng.miniprogram.vo.AirLineVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
* 巡检任务管理 前端控制器
*
@@ -34,6 +38,19 @@ public class InspectionController {
return iInspectionService.index(query);
}

/**
*
* 获取巡检路线
* @param droneId
* @return
*/
@GetMapping("/airport/line/{droneId}")
public List<AirLineVO> airLine(@PathVariable("droneId") Integer droneId){
return iInspectionService.airLine(droneId);
}







+ 7
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/dao/DeptMapper.java View File

@@ -3,6 +3,9 @@ package com.tuoheng.miniprogram.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tuoheng.miniprogram.entity.Dept;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @Author ChengWang
@@ -10,4 +13,8 @@ import com.tuoheng.miniprogram.entity.Dept;
*/
public interface DeptMapper extends BaseMapper<Dept> {

List<String> selectAllChildListById(String id);

List<String> getSondeptId(@Param("parentId") String id);

}

+ 2
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IDeptService.java View File

@@ -8,4 +8,6 @@ import com.tuoheng.common.core.utils.JsonResult;
*/
public interface IDeptService {
JsonResult treeList();

JsonResult test(String id);
}

+ 5
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/IInspectionService.java View File

@@ -2,6 +2,9 @@ package com.tuoheng.miniprogram.service;

import com.tuoheng.common.core.utils.JsonResult;
import com.tuoheng.miniprogram.entity.query.InspectionQuery;
import com.tuoheng.miniprogram.vo.AirLineVO;

import java.util.List;

/**
* @Author ChengWang
@@ -9,4 +12,6 @@ import com.tuoheng.miniprogram.entity.query.InspectionQuery;
*/
public interface IInspectionService {
JsonResult index(InspectionQuery query);

List<AirLineVO> airLine(Integer droneId);
}

+ 46
- 30
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/DeptServiceImpl.java View File

@@ -27,42 +27,58 @@ public class DeptServiceImpl implements IDeptService {
*/
@Override
public JsonResult treeList() {
List<Dept> deptTreeVoList = new ArrayList<>();
List<Dept> list = deptMapper.selectList(new LambdaQueryWrapper<Dept>()
.eq(Dept::getMark, 1));
Map<String, Dept> deptVoMap = new HashMap<>();
for (Dept dept : list) {
deptVoMap.put(dept.getId(),dept);
}
for (Dept dept : list) {
Dept child = dept;
if("0".equals(child.getPid())){
deptTreeVoList.add(dept);
}else {
Dept parent = deptVoMap.get(child.getPid());
parent.getItemList().add(child);
}
}
return JsonResult.success(deptTreeVoList);
// 获取所有一级节点
//预设id值为2
// List<Dept> result = list.stream().
// filter(dept -> dept.getPid().equals("2"))
// .peek(dept -> dept.setItemList(getChildren(dept, list))).sorted(Comparator.comparingInt(dept -> (dept.getSort() == null ? 0 : dept.getSort())))
// .collect(Collectors.toList());
// List<String> list1 = new ArrayList<>();
// for (Dept dept : result) {
// List<Dept> itemList = dept.getItemList();
// if(itemList!=null)
// list1.add(dept.getId());
// List<Dept> list1 = new ArrayList<>();
// result.stream().map(item->{
// TreeUtil.getByParent(list1,item.getPid());
// }).collect(Collectors.toList());

// return JsonResult.success(result);
List<Dept> result = list.stream().
filter(dept -> dept.getPid().equals("1"))
.peek(dept -> dept.setItemList(getChildren(dept, list))).sorted(Comparator.comparingInt(dept -> (dept.getSort() == null ? 0 : dept.getSort())))
.collect(Collectors.toList());
//List<Dept> deptList = new ArrayList<>();

return JsonResult.success(result);



// List<Dept> deptTreeVoList = new ArrayList<>();
// Map<String, Dept> deptVoMap = new HashMap<>();
// for (Dept dept : list) {
// deptVoMap.put(dept.getId(),dept);
// }
// for (Dept dept : list) {
// Dept child = dept;
// if("0".equals(child.getPid())){
// deptTreeVoList.add(dept);
// }else {
// Dept parent = deptVoMap.get(child.getPid());
// parent.getItemList().add(child);
// }
// }
// return JsonResult.success(deptTreeVoList);

}

@Override
public JsonResult test(String id) {
List<String> list = deptMapper.selectAllChildListById(id);

return JsonResult.success(list);
}


//查询出所有部门
// List all;
// addAll(1,all,new ArrayList());
//
// private void addAll(Integer id,List all,List res){
// all.stream().filter(x->Objects.equals(x.getparentId,id)).forEach(x->{
// res.add(x.getid());
// addAll(x.getid(),all,res);
// });
// }


/**
* 递归获取部门的子集
*

+ 57
- 52
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/service/impl/InspectionServiceImpl.java View File

@@ -21,6 +21,7 @@ import com.tuoheng.miniprogram.entity.User;
import com.tuoheng.miniprogram.entity.query.InspectionQuery;
import com.tuoheng.miniprogram.service.IInspectionService;
import com.tuoheng.miniprogram.utils.ShiroUtils;
import com.tuoheng.miniprogram.vo.AirLineVO;
import com.tuoheng.miniprogram.vo.InspectionInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -75,21 +76,18 @@ public class InspectionServiceImpl implements IInspectionService {
//查询部门及下级部门列表
List<Dept> list = deptMapper.selectList(Wrappers.<Dept>lambdaQuery()
.eq(Dept::getMark, 1));
//预设id为2
//初始部门id
String deptIdInt = query.getDeptId();
//query.setDeptId("1");
// 获取所有下级部门列表
// List<Dept> result = list.stream().
// filter(dept -> dept.getPid().equals(query.getDeptId()))
// .peek(dept -> dept.setItemList(getChildren(dept, list))).sorted(Comparator.comparingInt(dept -> (dept.getSort() == null ? 0 : dept.getSort())))
// .collect(Collectors.toList());
//query.setTenantId("0");
//获取当前部门对应的巡检任务
// List<Inspection> inspectionList = inspectionMapper.selectList(Wrappers.<Inspection>lambdaQuery()
// .eq(StringUtils.isNotEmpty(query.getDeptId()), Inspection::getDeptId, query.getDeptId())
// .eq(Inspection::getMark, 1)
// .eq(Inspection::getTenantId,0));
//获取分页数据
IPage<Inspection> page = new Page<>(query.getPage(),query.getLimit());
//获取当前部门对应的巡检任务
List<Inspection> inspectionList = inspectionMapper.selectList(Wrappers.<Inspection>lambdaQuery()
.eq(StringUtils.isNotEmpty(query.getDeptId()), Inspection::getDeptId, query.getDeptId())
.eq(Inspection::getMark, 1)
.eq(Inspection::getTenantId,0));

IPage<InspectionInfoVo> pageDataVo = new Page<>(query.getPage(),query.getLimit());
Date startTime = null;
Date endTime = null;
if(StringUtils.isNotEmpty(query.getStartTime()) && StringUtils.isNotEmpty(query.getEndTime())){
@@ -98,51 +96,58 @@ public class InspectionServiceImpl implements IInspectionService {
}
query.setStartTimeDate(startTime);
query.setEndTimeDate(endTime);
// 根据部门id获取此部门id和所有下级部门id封装list集合
List<String> deptLists = deptMapper.selectAllChildListById(query.getDeptId());

List<InspectionInfoVo> inspectionInfoVoList = new ArrayList<>();

IPage<InspectionInfoVo> pageData = inspectionMapper.queryPage(page,query);
pageData.getRecords().stream().forEach(x->{
int problemsFoundNum = 0;
int problemsVerifiedNum = 0;
List<InspectionFile> inspectionFileList = inspectionFileMapper.selectList(Wrappers.<InspectionFile>lambdaQuery()
.eq(StringUtils.isNotEmpty(x.getId()), InspectionFile::getInspectionId, x.getId())
.eq(InspectionFile::getTenantId, 0));
for (InspectionFile inspectionFile : inspectionFileList) {
if (5 == inspectionFile.getStatus()) {
problemsFoundNum += 1;
for (int i = 0; i < deptLists.size(); i++) {
String deptId = deptLists.get(i);
query.setDeptId(deptId);
IPage<InspectionInfoVo> pageData = inspectionMapper.queryPage(page,query);
pageData.getRecords().stream().forEach(x->{
int problemsFoundNum = 0;
int problemsVerifiedNum = 0;
List<InspectionFile> inspectionFileList = inspectionFileMapper.selectList(Wrappers.<InspectionFile>lambdaQuery()
.eq(StringUtils.isNotEmpty(x.getId()), InspectionFile::getInspectionId, x.getId())
.eq(InspectionFile::getTenantId, 0));
for (InspectionFile inspectionFile : inspectionFileList) {
if (5 == inspectionFile.getStatus()) {
problemsFoundNum += 1;
}
if (15 == inspectionFile.getStatus()) {
problemsVerifiedNum += 1;
}
}
if (15 == inspectionFile.getStatus()) {
problemsVerifiedNum += 1;
//获取任务deptId1:1为部门任务 0为子部门任务
String deptId1 = query.getDeptId();
if(deptIdInt.equals(deptId)){
x.setFlag(1);
}else {
x.setFlag(0);
}
x.setProblemsFoundNum(problemsFoundNum);
x.setProblemsVerifiedNum(problemsVerifiedNum);
});
List<InspectionInfoVo> records = pageData.getRecords();
for (InspectionInfoVo record : records) {
inspectionInfoVoList.add(record);
}
x.setProblemsFoundNum(problemsFoundNum);
x.setProblemsVerifiedNum(problemsVerifiedNum);
});
//查询每个任务对应的总问题数和已确认的问题数
// List<InspectionInfoVo> inspectionInfoVoList = pageData.getRecords().stream().map(item -> {
// //InspectionInfoVo vo = new InspectionInfoVo();
// // BeanUtils.copyProperties(item, vo);
// int problemsFoundNum = 0;
// int problemsVerifiedNum = 0;
// List<InspectionFile> inspectionFileList = inspectionFileMapper.selectList(Wrappers.<InspectionFile>lambdaQuery()
// .eq(StringUtils.isNotEmpty(item.getId()), InspectionFile::getInspectionId, item.getId())
// .eq(InspectionFile::getTenantId, 0));
// for (InspectionFile inspectionFile : inspectionFileList) {
// if (5 == inspectionFile.getStatus()) {
// problemsFoundNum += 1;
// }
// if (15 == inspectionFile.getStatus()) {
// problemsVerifiedNum += 1;
// }
// }
// vo.setProblemsFoundNum(problemsFoundNum);
// vo.setProblemsVerifiedNum(problemsVerifiedNum);
// return vo;
//
// }).collect(Collectors.toList());
// pageData.setRecords(inspectionInfoVoList);

return JsonResult.success(pageData);

}
pageDataVo.setRecords(inspectionInfoVoList);


return JsonResult.success(pageDataVo);
}

@Override
public List<AirLineVO> airLine(Integer droneId) {




return null;
}



+ 109
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/AirLineVO.java View File

@@ -0,0 +1,109 @@
package com.tuoheng.miniprogram.vo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
* @User qiujinyang
* @Description
* @Date Created by 2022/7/28 13:31
*/
@NoArgsConstructor
@Data
public class AirLineVO implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 任务id
*/
private Integer id;

/**
* 任务编号
*/
private String code;

/**
* 任务名称
*/
private String name;

/**
* 无人机id
*/
private Integer droneId;


/**
* 无人机名称
*/
private String droneName;

/**
* 无人机直播播流地址
*/
private String liveUrl;

/**
* 航线id
*/
private Integer airlineFileId;

/**
* 航线名称
*/
private String airlineFileName;

/**
* 航线文件地址路径
*/
private String airlineFileUrl;

/**
* 执行类型,1单次2每天
*/
private Integer type;

/**
* 单次执行时间
*/
private String singleTime;

/**
* 每天执行时间
*/
private Object everydayTime;

/**
* 任务备注
*/
private Object note;

/**
* 任务状态1待执行 2执行中
*/
private Integer status;

/**
* 创建人
*/
private Integer createUser;

/**
* 创建时间
*/
private String createTime;

/**
* 修改用户
*/
private Integer updateUser;

/**
* 修改时间
*/
private String updateTime;
}

+ 5
- 0
tuoheng-service/tuoheng-miniprogram/src/main/java/com/tuoheng/miniprogram/vo/InspectionInfoVo.java View File

@@ -75,6 +75,11 @@ public class InspectionInfoVo {
*/
private Integer problemsVerifiedNum;

/**
* 判断是否是本部的任务 flag: 1是 0否
*/
private Integer flag;



}

+ 35
- 0
tuoheng-service/tuoheng-miniprogram/src/main/resources/mapper/DeptMapper.xml View File

@@ -4,7 +4,42 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tuoheng.miniprogram.dao.DeptMapper">

<resultMap id="DeptResult" type="com.tuoheng.miniprogram.entity.Dept" >
<result property="id" column="id" />
<result property="tenantId" column="tenant_id" />
<result property="name" column="name" />
<result property="code" column="code" />
<result property="fullname" column="fullname" />
<result property="type" column="type" />
<result property="pid" column="pid" />
<result property="sort" column="sort" />
<result property="note" column="note" />
<result property="createUser" column="create_user" />
<result property="createTime" column="create_time" />
<result property="updateUser" column="update_user" />
<result property="updateTime" column="update_time" />
<result property="mark" column="mark" />
</resultMap>

<sql id="Base_Column_List">
id, tenant_id, name, code, fullname, type, pid, sort, note, create_user, create_time, update_user, update_time, mark
</sql>

<select id="selectAllChildListById" parameterType="String" resultType="java.lang.String">
SELECT id
FROM(
SELECT @ids AS p_ids, (SELECT @ids := GROUP_CONCAT(id) FROM th_dept WHERE FIND_IN_SET(pid, CONVERT(@ids USING utf8) COLLATE utf8_unicode_ci)) AS c_ids, @l := @l+1 AS LEVEL
FROM th_dept, (SELECT @ids := #{id}, @l := 0 ) b
having @ids IS NOT NULL
) u1
JOIN th_dept u2 ON FIND_IN_SET(u2.id, CONVERT(u1.p_ids USING utf8) COLLATE utf8_unicode_ci);
</select>

<select id="getSondeptId" parameterType="String" resultType="java.lang.String">
<![CDATA[
select eo.id from th_dept eo where eo.pid=#{parentId}
]]>
</select>


</mapper>

Loading…
Cancel
Save