任务进度甘特图导入
This commit is contained in:
parent
423de43cbe
commit
2775ceea29
@ -61,34 +61,22 @@ public class PartyMemberLearnStrongCountryController {
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<PartyMemberLearnStrongCountry>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
||||
String orderby = MapUtils.getString(paramMap, "orderby");
|
||||
Result<IPage<PartyMemberLearnStrongCountry>> result = new Result<IPage<PartyMemberLearnStrongCountry>>();
|
||||
QueryWrapper<PartyMemberLearnStrongCountry> queryWrapper = QueryGenerator.initPageQueryWrapper(PartyMemberLearnStrongCountry.class, paramMap);
|
||||
if (StrUtil.isNotBlank(orderby)) {
|
||||
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PartyMemberLearnStrongCountry::getScore));
|
||||
} else {
|
||||
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PartyMemberLearnStrongCountry::getId));
|
||||
}
|
||||
Page page = PageUtil.getPage(paramMap);
|
||||
IPage<PartyMemberLearnStrongCountry> pageList = partyMemberLearnStrongCountryService.page(page, queryWrapper);
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
return result;
|
||||
return Result.success(partyMemberLearnStrongCountryService.queryPageList(paramMap));
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @param partyMemberLearnStrongCountry
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "列表查询学习强国信息", notes = "列表查询学习强国信息", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "orderby", value = "score(分数)", paramType = "query", required = true, dataType = "Integer"),
|
||||
})
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<PartyMemberLearnStrongCountry>> queryList(PartyMemberLearnStrongCountry partyMemberLearnStrongCountry,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<PartyMemberLearnStrongCountry> queryWrapper = QueryGenerator.initQueryWrapper(partyMemberLearnStrongCountry, req.getParameterMap());
|
||||
return Result.success(partyMemberLearnStrongCountryService.list(queryWrapper));
|
||||
public Result<List<PartyMemberLearnStrongCountry>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> paramMap) {
|
||||
return Result.success(partyMemberLearnStrongCountryService.queryList(paramMap));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
package com.zhgd.xmgl.modules.party.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.xmgl.modules.party.entity.PartyMemberLearnStrongCountry;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 学习强国
|
||||
* @author: pds
|
||||
@ -11,4 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface IPartyMemberLearnStrongCountryService extends IService<PartyMemberLearnStrongCountry> {
|
||||
|
||||
IPage<PartyMemberLearnStrongCountry> queryPageList(HashMap<String, Object> paramMap);
|
||||
|
||||
List<PartyMemberLearnStrongCountry> queryList(HashMap<String, Object> paramMap);
|
||||
}
|
||||
|
||||
@ -1,11 +1,23 @@
|
||||
package com.zhgd.xmgl.modules.party.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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 com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.modules.party.entity.PartyMemberLearnStrongCountry;
|
||||
import com.zhgd.xmgl.modules.party.mapper.PartyMemberLearnStrongCountryMapper;
|
||||
import com.zhgd.xmgl.modules.party.service.IPartyMemberLearnStrongCountryService;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 学习强国
|
||||
@ -16,4 +28,29 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@Service
|
||||
public class PartyMemberLearnStrongCountryServiceImpl extends ServiceImpl<PartyMemberLearnStrongCountryMapper, PartyMemberLearnStrongCountry> implements IPartyMemberLearnStrongCountryService {
|
||||
|
||||
@Override
|
||||
public IPage<PartyMemberLearnStrongCountry> queryPageList(HashMap<String, Object> paramMap) {
|
||||
QueryWrapper<PartyMemberLearnStrongCountry> queryWrapper = getPartyMemberLearnStrongCountryQueryWrapper(paramMap);
|
||||
Page page = PageUtil.getPage(paramMap);
|
||||
IPage<PartyMemberLearnStrongCountry> pageList = page(page, queryWrapper);
|
||||
return pageList;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private QueryWrapper<PartyMemberLearnStrongCountry> getPartyMemberLearnStrongCountryQueryWrapper(HashMap<String, Object> paramMap) {
|
||||
String orderby = MapUtils.getString(paramMap, "orderby");
|
||||
QueryWrapper<PartyMemberLearnStrongCountry> queryWrapper = QueryGenerator.initPageQueryWrapper(PartyMemberLearnStrongCountry.class, paramMap);
|
||||
if (StrUtil.isNotBlank(orderby)) {
|
||||
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PartyMemberLearnStrongCountry::getScore));
|
||||
} else {
|
||||
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(PartyMemberLearnStrongCountry::getId));
|
||||
}
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PartyMemberLearnStrongCountry> queryList(HashMap<String, Object> paramMap) {
|
||||
QueryWrapper<PartyMemberLearnStrongCountry> queryWrapper = getPartyMemberLearnStrongCountryQueryWrapper(paramMap);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,25 +48,17 @@ public class TaskProgressController {
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param taskProgress
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询任务进度甘特图信息", notes = "分页列表查询任务进度甘特图信息", httpMethod = "GET")
|
||||
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<TaskProgress>> queryPageList(TaskProgress taskProgress,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
Result<IPage<TaskProgress>> result = new Result<IPage<TaskProgress>>();
|
||||
QueryWrapper<TaskProgress> queryWrapper = QueryGenerator.initQueryWrapper(taskProgress, req.getParameterMap());
|
||||
Page<TaskProgress> page = new Page<TaskProgress>(pageNo, pageSize);
|
||||
IPage<TaskProgress> pageList = taskProgressService.page(page, queryWrapper);
|
||||
result.setSuccess(true);
|
||||
result.setResult(pageList);
|
||||
return result;
|
||||
public Result<IPage<TaskProgress>> queryPageList(@ApiIgnore HashMap<String, Object> paramMap) {
|
||||
return Result.success(taskProgressService.queryPageList(paramMap));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -218,8 +210,8 @@ public class TaskProgressController {
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", dataType = "string", dataTypeClass = String.class, required = true, paramType = "form"),
|
||||
@ApiImplicitParam(name = "type", value = "导入方式:1覆盖更新(复制)2根据名称替换更新", dataType = "integer", required = true, paramType = "form"),
|
||||
})
|
||||
public Result importData(@RequestParam(value = "mppFile") MultipartFile mppFile, String projectSn, Integer type, Long createUserId) {
|
||||
taskProgressService.importData(mppFile, projectSn, type, createUserId);
|
||||
public Result importData(@RequestParam(value = "mppFile") MultipartFile mppFile, String projectSn, Integer type) {
|
||||
taskProgressService.importData(mppFile, projectSn, type);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
|
||||
@ -81,7 +81,15 @@ public class TaskProgressContent implements Serializable {
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
|
||||
/**
|
||||
* 所属项目SN
|
||||
*/
|
||||
@Excel(name = "所属项目SN", width = 15)
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("上报进度的材料信息列表,如:{\"taskProgressMaterialTypeId\":100,\"actualUsage\":20.01},其中id是任务进度甘特图-材料类型的id")
|
||||
private List<TaskProgressMaterialRel> typeDataList;
|
||||
}
|
||||
|
||||
|
||||
@ -74,6 +74,12 @@ public class TaskProgressMaterialRel implements Serializable {
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
/**
|
||||
* 所属项目SN
|
||||
*/
|
||||
@Excel(name = "所属项目SN", width = 15)
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "名称(如工种、材料、设备名称等)")
|
||||
|
||||
@ -24,9 +24,11 @@ public interface ITaskProgressService extends IService<TaskProgress> {
|
||||
|
||||
void delete(HashMap<String, Object> map);
|
||||
|
||||
void importData(MultipartFile mppFile, String projectSn, Integer type, Long createUserId);
|
||||
void importData(MultipartFile mppFile, String projectSn, Integer type);
|
||||
|
||||
ModelAndView exportXls(HashMap<String, Object> paramMap, HttpServletRequest request);
|
||||
|
||||
IPage<TaskProgress> getParentChildPage(HashMap<String, Object> paramMap);
|
||||
|
||||
IPage<TaskProgress> queryPageList(HashMap<String, Object> paramMap);
|
||||
}
|
||||
|
||||
@ -1,31 +1,36 @@
|
||||
package com.zhgd.xmgl.modules.taskprogress.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
|
||||
import com.zhgd.xmgl.modules.project.constants.ProgressTaskConstant;
|
||||
import com.zhgd.xmgl.modules.project.entity.ProgressTask;
|
||||
import com.zhgd.xmgl.modules.project.entity.dto.ProgressTaskPredecessorDTO;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgress;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressAlarm;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressContent;
|
||||
import com.zhgd.xmgl.modules.taskprogress.entity.TaskProgressMaterialRel;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressAlarmMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressContentMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.mapper.TaskProgressMaterialRelMapper;
|
||||
import com.zhgd.xmgl.modules.taskprogress.service.ITaskProgressService;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.mpxj.MPXJException;
|
||||
import net.sf.mpxj.ProjectFile;
|
||||
import net.sf.mpxj.Relation;
|
||||
import net.sf.mpxj.Task;
|
||||
import net.sf.mpxj.mpp.MPPReader;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
@ -59,6 +64,12 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
@Value("${basePath}")
|
||||
private String basePath;
|
||||
@Autowired
|
||||
TaskProgressContentMapper taskProgressContentMapper;
|
||||
@Autowired
|
||||
TaskProgressMaterialRelMapper taskProgressMaterialRelMapper;
|
||||
@Autowired
|
||||
TaskProgressAlarmMapper taskProgressAlarmMapper;
|
||||
@Autowired
|
||||
TaskProgressMapper taskProgressMapper;
|
||||
@Autowired
|
||||
SystemUserMapper systemUserMapper;
|
||||
@ -145,17 +156,41 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
}
|
||||
|
||||
@Override
|
||||
public void importData(MultipartFile mppFile, String projectSn, Integer type, Long createUserId) {
|
||||
public void importData(MultipartFile mppFile, String projectSn, Integer type) {
|
||||
LambdaQueryWrapper<TaskProgress> queryWrapper = Wrappers.lambdaQuery(TaskProgress.class).eq(TaskProgress::getProjectSn, projectSn);
|
||||
List<TaskProgress> progressTasks = taskProgressMapper.selectList(queryWrapper);
|
||||
log.info("原progressTasks:{}", JSON.toJSONString(progressTasks));
|
||||
|
||||
taskProgressMapper.delete(queryWrapper);
|
||||
Long createUserId = SecurityUtils.getUser().getUserId();
|
||||
Collection<TaskProgress> progressTaskList = analysisMpp(mppFile, projectSn, createUserId);
|
||||
log.info("importData的新增数据:{}", progressTaskList);
|
||||
|
||||
if (CollUtil.isNotEmpty(progressTaskList)) {
|
||||
this.saveBatch(progressTaskList);
|
||||
if (Objects.equals(type, 1)) {
|
||||
taskProgressMapper.delete(queryWrapper);
|
||||
taskProgressContentMapper.delete(Wrappers.lambdaQuery(TaskProgressContent.class).eq(TaskProgressContent::getProjectSn, projectSn));
|
||||
taskProgressMaterialRelMapper.delete(Wrappers.lambdaQuery(TaskProgressMaterialRel.class).eq(TaskProgressMaterialRel::getProjectSn, projectSn));
|
||||
taskProgressAlarmMapper.delete(Wrappers.lambdaQuery(TaskProgressAlarm.class).eq(TaskProgressAlarm::getProjectSn, projectSn));
|
||||
if (CollUtil.isNotEmpty(progressTaskList)) {
|
||||
this.saveBatch(progressTaskList);
|
||||
}
|
||||
} else if (Objects.equals(type, 2)) {
|
||||
//新增
|
||||
Set<String> oldSet = progressTasks.stream().map(taskProgress -> taskProgress.getTaskName()).collect(Collectors.toSet());
|
||||
List<TaskProgress> insertList = progressTaskList.stream().filter(taskProgress -> !oldSet.contains(taskProgress.getTaskName())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(insertList)) {
|
||||
this.saveBatch(insertList);
|
||||
}
|
||||
|
||||
//更新
|
||||
for (TaskProgress taskProgress : progressTaskList) {
|
||||
String taskName = taskProgress.getTaskName();
|
||||
if (oldSet.contains(taskName)) {
|
||||
taskProgressMapper.update(taskProgress, new LambdaQueryWrapper<TaskProgress>()
|
||||
.eq(TaskProgress::getProjectSn, projectSn)
|
||||
.eq(TaskProgress::getTaskName, taskName)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,10 +205,6 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
private Collection<TaskProgress> analysisMpp(MultipartFile mppFile, String projectSn, Long createUserId) {
|
||||
List<TaskProgress> projectTaskList = new LinkedList<>();
|
||||
Set<String> userNameSet = new LinkedHashSet<>();
|
||||
// <mpp唯一id, 甘特图任务节点>
|
||||
Map<Long, TaskProgress> uniqueIdTaskProgressMap = new LinkedHashMap<>();
|
||||
// 前置任务列表
|
||||
List<ProgressTaskPredecessorDTO> progressTaskPredecessorList = new LinkedList<>();
|
||||
try {
|
||||
// 读取文件
|
||||
MPPReader mppRead = new MPPReader();
|
||||
@ -182,7 +213,7 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
// 递归拿到对应的数据, 跳过第0级无用数据
|
||||
List<Task> childTasks = pf.getChildTasks();
|
||||
if (CollUtil.isNotEmpty(childTasks)) {
|
||||
structureTaskDataList(projectTaskList, userNameSet, childTasks.get(0).getChildTasks(), uniqueIdTaskProgressMap, progressTaskPredecessorList, 0L, projectSn, createUserId);
|
||||
structureTaskDataList(projectTaskList, userNameSet, childTasks.get(0).getChildTasks(), 0L, projectSn, createUserId, null);
|
||||
// 判断是否具有负责人
|
||||
if (CollUtil.isNotEmpty(userNameSet)) {
|
||||
List<SystemUser> dutyUserList = systemUserMapper.selectBySnAndNumberOneList(projectSn, userNameSet);
|
||||
@ -197,18 +228,7 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
}
|
||||
|
||||
Map<Long, TaskProgress> progressTaskMap = projectTaskList.stream().collect(Collectors.toMap(TaskProgress::getId, Function.identity()));
|
||||
// 赋值前置任务
|
||||
if (CollUtil.isNotEmpty(progressTaskPredecessorList)) {
|
||||
for (ProgressTaskPredecessorDTO progressTaskPredecessor : progressTaskPredecessorList) {
|
||||
TaskProgress progressTask = progressTaskMap.get(progressTaskPredecessor.getTaskId());
|
||||
String predecessorIds = progressTask.getPredecessorIds();
|
||||
if (CharSequenceUtil.isBlank(predecessorIds)) {
|
||||
progressTask.setPredecessorIds(uniqueIdTaskProgressMap.get(progressTaskPredecessor.getPredecessorId()).getId() + "");
|
||||
} else {
|
||||
progressTask.setPredecessorIds(predecessorIds + "," + uniqueIdTaskProgressMap.get(progressTaskPredecessor.getPredecessorId()).getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return progressTaskMap.values();
|
||||
}
|
||||
throw new RuntimeException("mpp文件数据为空!");
|
||||
@ -224,16 +244,15 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
/**
|
||||
* 构建节点相关数据
|
||||
*
|
||||
* @param progressTaskList 甘特图节点列表
|
||||
* @param userNameSet 用户名称set
|
||||
* @param tasks mpp任务节点对象
|
||||
* @param uniqueIdTaskProgressMap mpp唯一id对应节点
|
||||
* @param progressTaskPredecessorList 前置任务列表
|
||||
* @param parentId 父级id
|
||||
* @param projectSn 项目sn
|
||||
* @param createUserId 创建用户
|
||||
* @param progressTaskList 甘特图节点列表
|
||||
* @param userNameSet 用户名称set
|
||||
* @param tasks mpp任务节点对象
|
||||
* @param parentId 父级id
|
||||
* @param projectSn 项目sn
|
||||
* @param createUserId 创建用户
|
||||
* @param predecessorIds 前置ids
|
||||
*/
|
||||
private void structureTaskDataList(List<TaskProgress> progressTaskList, Set<String> userNameSet, List<Task> tasks, Map<Long, TaskProgress> uniqueIdTaskProgressMap, List<ProgressTaskPredecessorDTO> progressTaskPredecessorList, Long parentId, String projectSn, Long createUserId) {
|
||||
private void structureTaskDataList(List<TaskProgress> progressTaskList, Set<String> userNameSet, List<Task> tasks, Long parentId, String projectSn, Long createUserId, String predecessorIds) {
|
||||
if (CollectionUtils.isEmpty(tasks)) {
|
||||
return;
|
||||
}
|
||||
@ -275,22 +294,22 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
progressTask.setStatus(ProgressTaskConstant.RUNNING);
|
||||
}
|
||||
// 负责人名称
|
||||
String dutyUserName = task.getText(1);
|
||||
String dutyUserName = task.getText(4);
|
||||
progressTask.setDutyUserName(dutyUserName);
|
||||
userNameSet.add(dutyUserName);
|
||||
|
||||
progressTask.setProjectSn(projectSn).setCreateUserId(createUserId);
|
||||
|
||||
// 前置任务列表
|
||||
List<Relation> predecessors = task.getPredecessors();
|
||||
if (CollUtil.isNotEmpty(predecessors)) {
|
||||
progressTaskPredecessorList.addAll(predecessors.stream().map(relation -> new ProgressTaskPredecessorDTO(id, Long.valueOf(relation.getTargetTask().getUniqueID()))).collect(Collectors.toList()));
|
||||
Integer level = task.getOutlineLevel();
|
||||
if (Objects.equals(level, 1)) {
|
||||
progressTask.setPredecessorIds("0");
|
||||
} else {
|
||||
progressTask.setPredecessorIds(predecessorIds);
|
||||
}
|
||||
predecessorIds = progressTask.getPredecessorIds() + "," + progressTask.getId();
|
||||
|
||||
// 唯一id对应任务
|
||||
uniqueIdTaskProgressMap.put(Long.valueOf(task.getUniqueID()), progressTask);
|
||||
progressTaskList.add(progressTask);
|
||||
structureTaskDataList(progressTaskList, userNameSet, task.getChildTasks(), uniqueIdTaskProgressMap, progressTaskPredecessorList, progressTask.getId(), projectSn, createUserId);
|
||||
structureTaskDataList(progressTaskList, userNameSet, task.getChildTasks(), progressTask.getId(), projectSn, createUserId, predecessorIds);
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,4 +385,11 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
|
||||
return baseMapper.queryList(paramMap, PageUtil.getPage(paramMap));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<TaskProgress> queryPageList(HashMap<String, Object> paramMap) {
|
||||
QueryWrapper<TaskProgress> queryWrapper = QueryGenerator.initPageQueryWrapper(TaskProgress.class, paramMap);
|
||||
Page page = PageUtil.getPage(paramMap);
|
||||
return page(page, queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
||||
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
|
||||
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService;
|
||||
import com.zhgd.xmgl.util.MessageUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
@ -62,7 +63,7 @@ public class AiAnalyseHardWareAlarmRecordController {
|
||||
@ApiImplicitParam(name = "accountType", value = "账号类型,1系统管理员,2企业总部管理员账号,3区域账号,4城市账号,5项目账号,6项目子账号,7项目部账号", dataType = "Integer", paramType = "query", required = false),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间,格式2020-08-16 00:00:00", dataType = "String", paramType = "query", required = false),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间,格式2020-08-16 23:59:59", dataType = "String", paramType = "query", required = false),
|
||||
@ApiImplicitParam(name = "alarmType", value = "类型 1-安全帽报警、2-明火报警、3-聚众报警、4-倒地报警、5-越界报警、6-闯入报警、7、反光衣报警,8-吸烟报警", paramType = "query", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "alarmType", value = "类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警", paramType = "query", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ -99,13 +100,13 @@ public class AiAnalyseHardWareAlarmRecordController {
|
||||
return result;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询近七天或近30天报警趋势", notes = "查询近七天或近30天报警趋势", httpMethod = "POST")
|
||||
@ApiOperation(value = "查询近七天或近30天或今日或24小时报警趋势", notes = "查询近七天或近30天或今日或24小时报警趋势", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "selectType", value = "查询类型,1近七天,2最近30天", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "selectType", value = "查询类型,1近七天,2最近30天,3今日,4、24小时", paramType = "query", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/selectAiAnalyseHardWareAlarmTrendList")
|
||||
public Result<List<Map<String, Object>>> selectAiAnalyseHardWareAlarmTrendList(@RequestBody Map<String, Object> map) {
|
||||
public Result<List<AiAnalyseHardWareAlarmTrendVo>> selectAiAnalyseHardWareAlarmTrendList(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(aiAnalyseHardWareAlarmRecordService.selectAiAnalyseHardWareAlarmTrendList(map));
|
||||
}
|
||||
|
||||
@ -119,12 +120,13 @@ public class AiAnalyseHardWareAlarmRecordController {
|
||||
return Result.success(aiAnalyseHardWareAlarmRecordService.selectAiAnalyseHardWareAlarmList(map));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询所有各预警类型预警数", notes = "查询所有各预警类型预警数", httpMethod = "POST")
|
||||
@ApiOperation(value = "查询所有各预警类型预警数(不同天数)", notes = "查询所有各预警类型预警数(不同天数)", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "selectType", value = "查询类型,1近七天,2最近30天,3今日,4、24小时", paramType = "query", required = false, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/getAiAnalyseHardWareAlarmTotal")
|
||||
public Result<Map<String, Object>> getAiAnalyseHardWareAlarmTotal(@RequestBody Map<String, Object> map) {
|
||||
public Result<AiAnalyseHardWareAlarmTrendVo> getAiAnalyseHardWareAlarmTotal(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(aiAnalyseHardWareAlarmRecordService.getAiAnalyseHardWareAlarmTotal(map));
|
||||
}
|
||||
|
||||
@ -192,4 +194,5 @@ public class AiAnalyseHardWareAlarmRecordController {
|
||||
return Result.error("参数错误 ").data(false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -218,6 +218,7 @@ public class VideoItemController {
|
||||
@ApiOperation(value = "查询项目视频列表", notes = "查询项目视频列表")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "query", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "all", value = "1全部列表", paramType = "query", required = false, dataType = "Integer"),
|
||||
})
|
||||
@PostMapping("/selectProjectVideoList")
|
||||
public Result<Map<String, Object>> selectProjectVideoList(@RequestBody Map<String, Object> map) {
|
||||
|
||||
@ -56,10 +56,10 @@ public class AiAnalyseHardWareAlarmRecord implements Serializable {
|
||||
@ApiModelProperty(value = "图片路径")
|
||||
private java.lang.String imageUrl;
|
||||
/**
|
||||
* 类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警 8-反光衣、9-裸土覆盖,13口罩识别,14徘徊预警,15物体滞留监测,16绊线监测
|
||||
* 类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警
|
||||
*/
|
||||
@Excel(name = "类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警 8-反光衣、9-裸土覆盖,13口罩识别,14徘徊预警,15物体滞留监测,16绊线监测", width = 15)
|
||||
@ApiModelProperty(value = "类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警 8-反光衣、9-裸土覆盖,13口罩识别,14徘徊预警,15物体滞留监测,16绊线监测")
|
||||
@Excel(name = "类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警", width = 15)
|
||||
@ApiModelProperty(value = "类型 1-烟感报警,2-明火报警,3-人员到底报警,4-未带安全帽报警,5-区域入侵报警,6-越界入侵报警,7-人员聚集报警")
|
||||
private java.lang.Integer alarmType;
|
||||
/**
|
||||
* 位置
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package com.zhgd.xmgl.modules.video.entity.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AiAnalyseHardWareAlarmTrendVo {
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
private String dayTitle;
|
||||
@ApiModelProperty("7-人员聚集报警")
|
||||
private Integer alarmTypeNum7;
|
||||
@ApiModelProperty("5-区域入侵报警")
|
||||
private Integer alarmTypeNum5;
|
||||
private Integer totalNum;
|
||||
@ApiModelProperty("6-越界入侵报警")
|
||||
private Integer alarmTypeNum6;
|
||||
@ApiModelProperty("3-人员到底报警")
|
||||
private Integer alarmTypeNum3;
|
||||
@ApiModelProperty("4-未带安全帽报警")
|
||||
private Integer alarmTypeNum4;
|
||||
@ApiModelProperty("1-烟感报警")
|
||||
private Integer alarmTypeNum1;
|
||||
@ApiModelProperty("2-明火报警")
|
||||
private Integer alarmTypeNum2;
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
||||
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -30,7 +31,7 @@ public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper<AiAnalyse
|
||||
|
||||
List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map);
|
||||
|
||||
Map<String, Object> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
|
||||
AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
|
||||
|
||||
List<Map<String, Object>> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);
|
||||
|
||||
|
||||
@ -8,8 +8,7 @@
|
||||
FROM ai_analyse_hard_ware_alarm_record a
|
||||
LEFT JOIN system_user s ON a.rectification_person_id = s.user_id
|
||||
LEFT join department_info di on s.department = di.department_name
|
||||
WHERE
|
||||
a.project_sn = #{param.projectSn}
|
||||
WHERE a.project_sn = #{param.projectSn}
|
||||
<if test="param.pushPersonId != null">
|
||||
and find_in_set(#{param.pushPersonId}, a.push_person_ids)
|
||||
</if>
|
||||
@ -68,25 +67,30 @@
|
||||
|
||||
<select id="selectAiAnalyseHardWareAlarmTrendList" resultType="java.util.Map">
|
||||
SELECT count(1) totalNum,
|
||||
DATE_FORMAT(a.create_time, '%Y-%m-%d') dayTitle,
|
||||
<if test="selectType == '1'.toString() or selectType == '2'.toString()">
|
||||
DATE_FORMAT(a.create_time, '%Y-%m-%d') dayTitle,
|
||||
</if>
|
||||
<if test="selectType == '3'.toString() or selectType == '4'.toString()">
|
||||
DATE_FORMAT(a.create_time, '%H:00') dayTitle,
|
||||
</if>
|
||||
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 1 THEN 1 ELSE 0 END)), 0) alarmTypeNum1,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 2 THEN 1 ELSE 0 END)), 0) alarmTypeNum2,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 3 THEN 1 ELSE 0 END)), 0) alarmTypeNum3,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 4 THEN 1 ELSE 0 END)), 0) alarmTypeNum4,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 5 THEN 1 ELSE 0 END)), 0) alarmTypeNum5,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 6 THEN 1 ELSE 0 END)), 0) alarmTypeNum6,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 7 THEN 1 ELSE 0 END)), 0) alarmTypeNum7,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 8 THEN 1 ELSE 0 END)), 0) alarmTypeNum8,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 9 THEN 1 ELSE 0 END)), 0) alarmTypeNum9
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 7 THEN 1 ELSE 0 END)), 0) alarmTypeNum7
|
||||
FROM ai_analyse_hard_ware_alarm_record a
|
||||
where a.project_sn = #{projectSn}
|
||||
<if test="selectType == '2'.toString()">
|
||||
and a.create_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -30 DAY), '%Y-%m-%d'), ' 00:00:00')
|
||||
<include refid="queryAlarmTime">
|
||||
</include>
|
||||
<if test="selectType == '1'.toString() or selectType == '2'.toString()">
|
||||
group by DATE_FORMAT(a.create_time, '%Y-%m-%d')
|
||||
</if>
|
||||
<if test="selectType == '1'.toString()">
|
||||
and a.create_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 DAY), '%Y-%m-%d'), ' 00:00:00')
|
||||
<if test="selectType == '3'.toString() or selectType == '4'.toString()">
|
||||
group by DATE_FORMAT(a.create_time, '%Y-%m-%d %H')
|
||||
</if>
|
||||
group by DATE_FORMAT(a.create_time, '%Y-%m-%d')
|
||||
order by dayTitle
|
||||
</select>
|
||||
<select id="selectAiAnalyseHardWareAlarmList"
|
||||
@ -97,19 +101,34 @@
|
||||
order by a.create_time desc
|
||||
LIMIT #{sizeNum}
|
||||
</select>
|
||||
<select id="getAiAnalyseHardWareAlarmTotal" resultType="java.util.Map">
|
||||
SELECT count(1) totalNum,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 1 THEN 1 ELSE 0 END)), 0) alarmTypeNum1,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 2 THEN 1 ELSE 0 END)), 0) alarmTypeNum2,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 3 THEN 1 ELSE 0 END)), 0) alarmTypeNum3,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 4 THEN 1 ELSE 0 END)), 0) alarmTypeNum4,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 5 THEN 1 ELSE 0 END)), 0) alarmTypeNum5,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 6 THEN 1 ELSE 0 END)), 0) alarmTypeNum6,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 7 THEN 1 ELSE 0 END)), 0) alarmTypeNum7,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 8 THEN 1 ELSE 0 END)), 0) alarmTypeNum8,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 9 THEN 1 ELSE 0 END)), 0) alarmTypeNum9
|
||||
<sql id="queryAlarmTime">
|
||||
<if test="selectType == '2'.toString()">
|
||||
and a.create_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -30 DAY), '%Y-%m-%d'), ' 00:00:00')
|
||||
</if>
|
||||
<if test="selectType == '1'.toString()">
|
||||
and a.create_time >= CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -6 DAY), '%Y-%m-%d'), ' 00:00:00')
|
||||
</if>
|
||||
<if test="selectType == '3'.toString()">
|
||||
and a.create_time >= DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00')
|
||||
</if>
|
||||
<if test="selectType == '4'.toString()">
|
||||
and a.create_time >= DATE_ADD(NOW(), INTERVAL -1 DAY)
|
||||
</if>
|
||||
</sql>
|
||||
<select id="getAiAnalyseHardWareAlarmTotal"
|
||||
resultType="com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo">
|
||||
SELECT count(1) totalNum,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 1 THEN 1 ELSE 0 END)), 0) alarmTypeNum1,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 2 THEN 1 ELSE 0 END)), 0) alarmTypeNum2,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 3 THEN 1 ELSE 0 END)), 0) alarmTypeNum3,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 4 THEN 1 ELSE 0 END)), 0) alarmTypeNum4,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 5 THEN 1 ELSE 0 END)), 0) alarmTypeNum5,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 6 THEN 1 ELSE 0 END)), 0) alarmTypeNum6,
|
||||
IFNULL(SUM((CASE WHEN a.alarm_type = 7 THEN 1 ELSE 0 END)), 0) alarmTypeNum7
|
||||
FROM ai_analyse_hard_ware_alarm_record a
|
||||
where a.project_sn = #{projectSn}
|
||||
<include refid="queryAlarmTime">
|
||||
</include>
|
||||
</select>
|
||||
<select id="selectAiAnalyseHardWareAlarmTypeCount" resultType="java.util.Map" parameterType="java.util.Map">
|
||||
SELECT w1.alarm_type alarmType,
|
||||
@ -180,22 +199,21 @@
|
||||
order by alarmNum desc
|
||||
</select>
|
||||
<select id="selectAiAlarmAnalyseCountList" resultType="java.util.Map">
|
||||
SELECT
|
||||
IFNULL(SUM(IFNULL(tp.alarm_num, 0)), 0) alarmNum
|
||||
SELECT IFNULL(SUM(IFNULL(tp.alarm_num, 0)), 0) alarmNum
|
||||
<if test="companyType == '1'.toString()">
|
||||
,a.company_name name
|
||||
, a.company_name name
|
||||
</if>
|
||||
<if test="companyType == '2'.toString()">
|
||||
,b.company_name name
|
||||
, b.company_name name
|
||||
</if>
|
||||
<if test="companyType == '3'.toString()">
|
||||
,cp.company_name name
|
||||
, cp.company_name name
|
||||
</if>
|
||||
<if test="companyType == '4'.toString()">
|
||||
,c.project_name name
|
||||
, c.project_name name
|
||||
</if>
|
||||
<if test="companyType == '5'.toString()">
|
||||
,c.project_name name
|
||||
, c.project_name name
|
||||
</if>
|
||||
FROM company a
|
||||
LEFT JOIN company b ON b.parent_id = a.company_id
|
||||
@ -317,8 +335,7 @@
|
||||
order by totalDev desc
|
||||
</select>
|
||||
<select id="selectProjectAiStatisticList" resultType="java.util.Map">
|
||||
SELECT
|
||||
IFNULL(tp.alarm_num, 0) alarmNum,
|
||||
SELECT IFNULL(tp.alarm_num, 0) alarmNum,
|
||||
IFNULL(d.videoDevNum, 0) videoDevNum,
|
||||
IFNULL(d.aiDevNum, 0) aiDevNum,
|
||||
round(IFNULL(TRUNCATE(IFNULL(d.aiDevNum, 0) / IFNULL(d.videoDevNum, 0), 4), 0) * 100, 2) ratioValue,
|
||||
@ -434,9 +451,9 @@
|
||||
request_rectification_date,
|
||||
update_date,
|
||||
push_person_ids,
|
||||
correct_time,
|
||||
correct_image,
|
||||
correct_remark
|
||||
correct_time,
|
||||
correct_image,
|
||||
correct_remark
|
||||
from ai_analyse_hard_ware_alarm_record
|
||||
WHERE location = #{location}
|
||||
ORDER BY id DESC
|
||||
@ -444,12 +461,12 @@
|
||||
</select>
|
||||
|
||||
|
||||
<!-- <select id="getAlarmData" resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord">
|
||||
SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY id DESC), ",", 3) as names
|
||||
<!-- <select id="getAlarmData" resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord">
|
||||
SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY id DESC), ",", 3) as names
|
||||
|
||||
FROM ai_analyse_hard_ware_alarm_record s
|
||||
GROUP BY location
|
||||
FROM ai_analyse_hard_ware_alarm_record s
|
||||
GROUP BY location
|
||||
|
||||
|
||||
</select>-->
|
||||
</select>-->
|
||||
</mapper>
|
||||
|
||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -22,11 +23,11 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
|
||||
|
||||
void saveAiAnalyseHardWareAlarmRecord(JSONObject body);
|
||||
|
||||
List<Map<String,Object>> selectAiAnalyseHardWareAlarmTrendList(Map<String, Object> map);
|
||||
List<AiAnalyseHardWareAlarmTrendVo> selectAiAnalyseHardWareAlarmTrendList(Map<String, Object> map);
|
||||
|
||||
List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map);
|
||||
|
||||
Map<String,Object> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
|
||||
AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
|
||||
|
||||
void saveAiAnalyseAlarmData(JSONArray array);
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.zhgd.xmgl.modules.video.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.xuyanwu.spring.file.storage.FileInfo;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
@ -25,6 +26,7 @@ import com.zhgd.xmgl.modules.project.service.IProjectService;
|
||||
import com.zhgd.xmgl.modules.project.service.ProjectJqmDevService;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
|
||||
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
|
||||
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper;
|
||||
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareRecordMapper;
|
||||
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService;
|
||||
@ -69,9 +71,9 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
@Autowired
|
||||
private ProjectJqmDevService projectJqmDevService;
|
||||
@Resource
|
||||
private CompanyMapper companyMapper;
|
||||
private CompanyMapper companyMapper;
|
||||
@Resource
|
||||
private CompanyConfigMapper companyConfigMapper;
|
||||
private CompanyConfigMapper companyConfigMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@ -123,13 +125,17 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> selectAiAnalyseHardWareAlarmTrendList(Map<String, Object> map) {
|
||||
public List<AiAnalyseHardWareAlarmTrendVo> selectAiAnalyseHardWareAlarmTrendList(Map<String, Object> map) {
|
||||
List<String> dayList;
|
||||
//获取时间段内所有天数
|
||||
if ("1".equals(MapUtils.getString(map, "selectType"))) {
|
||||
dayList = DateUtil.getNowFewDaysAgoList(7);
|
||||
} else {
|
||||
} else if ("2".equals(MapUtils.getString(map, "selectType"))) {
|
||||
dayList = DateUtil.getNowFewDaysAgoList(30);
|
||||
} else if ("3".equals(MapUtils.getString(map, "selectType"))) {
|
||||
dayList = DateUtil.getAllHourInDay();
|
||||
} else {
|
||||
dayList = DateUtil.getHoursListLastDay();
|
||||
}
|
||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||
Map<String, Object> data = aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmTrendList(map);
|
||||
@ -142,7 +148,6 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
Integer alarmTypeNum5 = 0;
|
||||
Integer alarmTypeNum6 = 0;
|
||||
Integer alarmTypeNum7 = 0;
|
||||
Integer alarmTypeNum8 = 0;
|
||||
if (data.containsKey(day)) {
|
||||
Map<String, Object> dayMap = (Map<String, Object>) data.get(day);
|
||||
if (dayMap != null) {
|
||||
@ -154,7 +159,6 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
alarmTypeNum5 = MapUtils.getInteger(dayMap, "alarmTypeNum5");
|
||||
alarmTypeNum6 = MapUtils.getInteger(dayMap, "alarmTypeNum6");
|
||||
alarmTypeNum7 = MapUtils.getInteger(dayMap, "alarmTypeNum7");
|
||||
alarmTypeNum8 = MapUtils.getInteger(dayMap, "alarmTypeNum8");
|
||||
}
|
||||
}
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -167,10 +171,9 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
result.put("alarmTypeNum5", alarmTypeNum5);
|
||||
result.put("alarmTypeNum6", alarmTypeNum6);
|
||||
result.put("alarmTypeNum7", alarmTypeNum7);
|
||||
result.put("alarmTypeNum8", alarmTypeNum8);
|
||||
dataList.add(result);
|
||||
}
|
||||
return dataList;
|
||||
return BeanUtil.copyToList(dataList, AiAnalyseHardWareAlarmTrendVo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -181,7 +184,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
|
||||
public AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
|
||||
return aiAnalyseHardWareAlarmRecordMapper.getAiAnalyseHardWareAlarmTotal(map);
|
||||
}
|
||||
|
||||
@ -273,9 +276,9 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
@Override
|
||||
public void saveJQMAlarm(JSONObject jsonObject) {
|
||||
|
||||
String jqmurl= "";
|
||||
String ak= "";
|
||||
String SECRET= "";
|
||||
String jqmurl = "";
|
||||
String ak = "";
|
||||
String SECRET = "";
|
||||
log.info("金钱猫调用接口,参数内容:{}", jsonObject);
|
||||
if (jsonObject == null) {
|
||||
log.error("金钱猫报警信息为空!");
|
||||
@ -287,11 +290,11 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
log.error("项目不存在!!项目number为:{}", jsonObject.getString("proId"));
|
||||
throw new NullPointerException("项目不存在!!");
|
||||
}
|
||||
Company com = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getCompanySn,project.getCompanySn()));
|
||||
CompanyConfig companyConfig = companyConfigMapper.selectOne(new QueryWrapper<CompanyConfig>().lambda().eq(CompanyConfig::getCompanySn,com.getHeadquartersSn()));
|
||||
ak = companyConfig.getAk();
|
||||
SECRET = companyConfig.getSecret();
|
||||
jqmurl = companyConfig.getUrl();
|
||||
Company com = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getCompanySn, project.getCompanySn()));
|
||||
CompanyConfig companyConfig = companyConfigMapper.selectOne(new QueryWrapper<CompanyConfig>().lambda().eq(CompanyConfig::getCompanySn, com.getHeadquartersSn()));
|
||||
ak = companyConfig.getAk();
|
||||
SECRET = companyConfig.getSecret();
|
||||
jqmurl = companyConfig.getUrl();
|
||||
|
||||
ProjectJqmDev dev = projectJqmDevService.getOne(Wrappers.<ProjectJqmDev>lambdaQuery().eq(ProjectJqmDev::getDevSn, jsonObject.getString("devId")));
|
||||
if (dev == null) {
|
||||
@ -322,7 +325,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
imageUrl.append("&");
|
||||
imageUrl.append("token");
|
||||
imageUrl.append("=");
|
||||
imageUrl.append(JinqianmaoUtil.getTokenUrl(currentTimeMillis,ak,SECRET));
|
||||
imageUrl.append(JinqianmaoUtil.getTokenUrl(currentTimeMillis, ak, SECRET));
|
||||
|
||||
|
||||
alarmRecord.setImageUrl(((List<Map<String, Object>>) uploadFileService.uploadUrlResource(imageUrl.toString()).get("data")).get(0).get("imageUrl").toString());
|
||||
|
||||
@ -351,6 +351,7 @@ public class VideoItemServiceImpl extends ServiceImpl<VideoItemMapper, VideoItem
|
||||
|
||||
@Override
|
||||
public Map<String, Object> selectProjectVideoList(Map<String, Object> map) {
|
||||
Integer all = MapUtils.getInteger(map, "all");
|
||||
// 如果config type = 1 获取token
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
List<EntityMap> videoList = videoItemMapper.selectProjectVideoList(map);
|
||||
@ -363,7 +364,7 @@ public class VideoItemServiceImpl extends ServiceImpl<VideoItemMapper, VideoItem
|
||||
}
|
||||
}
|
||||
List<EntityMap> groupList = videoGroupMapper.selectVideoGroupList(map);
|
||||
if (groupList != null && groupList.size() > 0) {
|
||||
if (groupList != null && groupList.size() > 0 && !Objects.equals(all, 1)) {
|
||||
List<EntityMap> tempList = new ArrayList<>();
|
||||
for (EntityMap group : groupList) {
|
||||
List<EntityMap> list = new ArrayList<>();
|
||||
|
||||
@ -211,6 +211,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
public void updateWorkerExit(Map<String, Object> map) {
|
||||
String workerIdStr = MapUtils.getString(map, "workerIdStr");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
checkExistAccount(workerIdStr);
|
||||
if (StringUtils.isNotEmpty(workerIdStr)) {
|
||||
for (String id : workerIdStr.split(",")) {
|
||||
WorkerInfo info = new WorkerInfo();
|
||||
@ -368,11 +369,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
if (workerInfo == null) {
|
||||
throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
||||
}
|
||||
List<SystemUser> systemUsers = systemUserMapper.selectList(new LambdaQueryWrapper<SystemUser>()
|
||||
.eq(SystemUser::getWorkerId, id));
|
||||
if (CollUtil.isNotEmpty(systemUsers)) {
|
||||
throw new OpenAlertException("该劳务人员己经绑定了账号,请先解绑账号(人员权限)");
|
||||
}
|
||||
checkExistAccount(id);
|
||||
|
||||
projectUfaceConfigService.deleteWorkerInfo(workerInfo);
|
||||
//上传住建
|
||||
@ -385,6 +382,14 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
asyncJiLianDa.removeWorkerInfo(workerInfo);
|
||||
}
|
||||
|
||||
private void checkExistAccount(String id) {
|
||||
List<SystemUser> systemUsers = systemUserMapper.selectList(new LambdaQueryWrapper<SystemUser>()
|
||||
.eq(SystemUser::getWorkerId, id));
|
||||
if (CollUtil.isNotEmpty(systemUsers)) {
|
||||
throw new OpenAlertException("该劳务人员己经绑定了账号,请先解绑账号(人员权限)");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 企业查看人员统计
|
||||
*
|
||||
|
||||
@ -134,6 +134,7 @@ public class EnvironmentDevTask {
|
||||
@SchedulerLock(name = "getEnvironmentDustData", lockAtMostFor = 1000 * 60 * 5, lockAtLeastFor = 1000 * 60 * 3)
|
||||
@Scheduled(cron = "0 0/5 * * * ?")
|
||||
public void getEnvironmentDustData() {
|
||||
log.info("获取扬尘数据(携稳)开始:{}", postEnvironmentDustData);
|
||||
if (StringUtils.isNotBlank(postEnvironmentDustData)) {
|
||||
// 获取所有
|
||||
List<EnvironmentDev> devList = environmentDevMapper.selectList(null);
|
||||
|
||||
@ -3,6 +3,7 @@ package com.zhgd.xmgl.util;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.HttpEntity;
|
||||
@ -24,7 +25,7 @@ import java.util.UUID;
|
||||
* @author: Mr.Peng
|
||||
* @create: 2020-11-24 11:54
|
||||
**/
|
||||
|
||||
@Slf4j
|
||||
public class QYUfaceUtil {
|
||||
|
||||
private static String url = "http://qy-rgs.com/api";
|
||||
@ -56,10 +57,10 @@ public class QYUfaceUtil {
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(resultJson.getString("body"));
|
||||
return jsonObject.getString("deviceId");
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
}
|
||||
@ -92,10 +93,10 @@ public class QYUfaceUtil {
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
}
|
||||
@ -117,23 +118,22 @@ public class QYUfaceUtil {
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param appId
|
||||
* @param appSecret
|
||||
* @param id 回调记录Id
|
||||
* @param id 回调记录Id
|
||||
* @return
|
||||
*/
|
||||
public static String getUfaceUrl(String appId, String appSecret, String id) {
|
||||
String img="";
|
||||
String img = "";
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("id", id);
|
||||
JSONObject json = createPostBody("RECOGNITION_PICTURE", appId, appSecret, body);
|
||||
@ -161,7 +161,6 @@ public class QYUfaceUtil {
|
||||
* @param icNum IC 卡号
|
||||
* @param ethnic IC 卡号
|
||||
* @param gender 1:男 2:女 3:未知
|
||||
*
|
||||
* @param birthday 出生日期(yyyy-MM-dd)
|
||||
* @return
|
||||
*/
|
||||
@ -181,7 +180,7 @@ public class QYUfaceUtil {
|
||||
body.put("gender", gender);
|
||||
body.put("birthday", birthday);
|
||||
String[] str2 = new String[1];
|
||||
str2[0]=Base64Util.getFileToBase64(face);
|
||||
str2[0] = Base64Util.getFileToBase64(face);
|
||||
body.put("faces", str2);
|
||||
JSONObject json = createPostBody("PERSON_CREATE_OR_UPDATE", appId, appSecret, body);
|
||||
String result = sendHttpPostWithJson(url, json.toJSONString());
|
||||
@ -190,18 +189,18 @@ public class QYUfaceUtil {
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(resultJson.getString("body"));
|
||||
String resultStrEmpower = addEmpower(appId, appSecret, jsonObject.getString("personId"), deviceIds);
|
||||
if(StringUtils.isNotEmpty(resultStrEmpower)){
|
||||
if (StringUtils.isNotEmpty(resultStrEmpower)) {
|
||||
JSONObject jsonObjectEmpower = JSONObject.parseObject(resultStrEmpower);
|
||||
if(!"SUCCESS".equals(jsonObjectEmpower.getString("code"))){
|
||||
if (!"SUCCESS".equals(jsonObjectEmpower.getString("code"))) {
|
||||
throw new OpenAlertException(jsonObjectEmpower.getString("msg"));
|
||||
}else{
|
||||
} else {
|
||||
return resultJsonStr;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
return null;
|
||||
@ -233,10 +232,10 @@ public class QYUfaceUtil {
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
return result;
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
}
|
||||
@ -254,15 +253,15 @@ public class QYUfaceUtil {
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(resultJson.getString("body"));
|
||||
JSONArray array=(JSONArray) jsonObject.get("persons");
|
||||
if(array!=null&&array.size()>0){
|
||||
JSONObject obj=(JSONObject) array.get(0);
|
||||
return deletePerson(appId,appSecret,obj.getString("id"));
|
||||
JSONArray array = (JSONArray) jsonObject.get("persons");
|
||||
if (array != null && array.size() > 0) {
|
||||
JSONObject obj = (JSONObject) array.get(0);
|
||||
return deletePerson(appId, appSecret, obj.getString("id"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
return false;
|
||||
@ -283,10 +282,10 @@ public class QYUfaceUtil {
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if ("SUCCESS".equals(resultJson.getString("code"))) {
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(resultJson.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
throw new OpenAlertException(MessageUtil.get("failErr"));
|
||||
}
|
||||
}
|
||||
@ -304,6 +303,7 @@ public class QYUfaceUtil {
|
||||
jsonObject.put("body", body);
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起post Json请求
|
||||
*
|
||||
@ -312,6 +312,8 @@ public class QYUfaceUtil {
|
||||
* @return
|
||||
*/
|
||||
public static String sendHttpPostWithJson(String url, String json) {
|
||||
log.info("sendHttpPostWithJson的url:{}", url);
|
||||
log.info("sendHttpPostWithJson的请求json:{}", json);
|
||||
CloseableHttpClient httpClient = null;
|
||||
try {
|
||||
httpClient = HttpClients.createDefault();
|
||||
@ -329,7 +331,9 @@ public class QYUfaceUtil {
|
||||
HttpResponse resp = httpClient.execute(httpPost);
|
||||
if (resp.getStatusLine().getStatusCode() == 200) {
|
||||
HttpEntity he = resp.getEntity();
|
||||
return EntityUtils.toString(he, "UTF-8");
|
||||
String s = EntityUtils.toString(he, "UTF-8");
|
||||
log.info("sendHttpPostWithJson的rs:{}", s);
|
||||
return s;
|
||||
}
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
@ -345,5 +349,4 @@ public class QYUfaceUtil {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -60,6 +60,10 @@ public class ${entityName}Controller {
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询${tableVo.ftlDescription}信息", notes = "分页列表查询${tableVo.ftlDescription}信息", httpMethod="GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<${entityName}>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) {
|
||||
QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initPageQueryWrapper(${entityName}.class, map);
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user