提交 d99981ab 作者: 17607474349

feat:

1、新增首页:人员数据、报警数据
上级 73567f49
......@@ -36,7 +36,7 @@ public class RiskPush extends BasicEntity implements Serializable {
private static final long serialVersionUID = -4532411898085672339L;
@Comment("工区")
@OneToOne
@ManyToOne
WorkArea workArea;
@Comment("风险等级")
......
......@@ -3,6 +3,7 @@ package com.yiring.app.service.key;
import com.yiring.app.param.key.KeyAlarmFindParam;
import com.yiring.app.vo.key.KeyAlarmVo;
import com.yiring.app.vo.user.UserListInfoVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
......@@ -36,4 +37,11 @@ public interface KeyAlarmService {
* @return Result<PageVo<KeyAlarmVo>>
*/
Result<PageVo<KeyAlarmVo>> find(KeyAlarmFindParam param);
/**
*
* @param param KeyAlarmFindParam
* @return Result<PageVo<UserListInfoVo>>
*/
Result<PageVo<UserListInfoVo>> listInfo(KeyAlarmFindParam param);
}
......@@ -4,8 +4,7 @@ package com.yiring.app.service.risk.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.yiring.app.domain.risk.RiskPush;
import com.yiring.app.domain.risk.RiskPushRepository;
import com.yiring.app.domain.risk.*;
import com.yiring.app.domain.workArea.WorkArea;
import com.yiring.app.domain.workArea.WorkAreaRepository;
import com.yiring.app.param.risk.RiskPushConditionParam;
......@@ -26,6 +25,7 @@ import javax.annotation.Resource;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
......@@ -49,6 +49,12 @@ public class RiskPushServiceImpl implements RiskPushService {
RiskPushRepository riskPushRepository;
@Resource
RiskHandlePushRepository riskHandlePushRepository;
@Resource
RiskWithdrawalPushRepository riskWithdrawalPushRepository;
@Resource
WorkAreaRepository workAreaRepository;
@Override
......@@ -91,6 +97,19 @@ public class RiskPushServiceImpl implements RiskPushService {
WorkAreaVo workAreaVo = Convert.convert(WorkAreaVo.class, workArea);
riskPushVo.setWorkAreaVo(workAreaVo);
}
// 查询处置推送总数
List<RiskHandlePush> riskHandlePushes = riskHandlePushRepository.findAll(
Example.of(RiskHandlePush.builder().riskPush(riskPush).build())
);
riskPushVo.setHandlePush(Convert.toStr(riskHandlePushes.size()));
// 查询撤离推送总数
List<RiskWithdrawalPush> riskWithdrawalPushes = riskWithdrawalPushRepository.findAll(
Example.of(RiskWithdrawalPush.builder().riskPush(riskPush).build())
);
riskPushVo.setWithdrawalPush(Convert.toStr(riskWithdrawalPushes.size()));
return riskPushVo;
})
.collect(Collectors.toList());
......
......@@ -3,6 +3,7 @@ package com.yiring.app.service.user;
import com.yiring.app.param.user.*;
import com.yiring.app.vo.user.UserInfoVo;
import com.yiring.app.vo.user.UserListInfoVo;
import com.yiring.app.vo.user.UserVo;
import com.yiring.auth.param.IdsParam;
import com.yiring.common.core.Result;
......@@ -110,4 +111,10 @@ public interface UserAppService {
* @return Result<String>
*/
Result<String> batchSendCard(MultipartFile file);
/**
* 首页数据
* @return Result<PageVo<UserListInfoVo>>
*/
Result<PageVo<UserListInfoVo>> listInfo();
}
......@@ -24,6 +24,7 @@ import com.yiring.app.service.dept.DepartmentService;
import com.yiring.app.service.user.UserAppService;
import com.yiring.app.util.zy.ZyUtil;
import com.yiring.app.vo.user.UserInfoVo;
import com.yiring.app.vo.user.UserListInfoVo;
import com.yiring.app.vo.user.UserVo;
import com.yiring.auth.domain.dept.Department;
import com.yiring.auth.domain.dept.DepartmentRepository;
......@@ -46,6 +47,7 @@ import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
......@@ -645,6 +647,62 @@ public class UserAppServiceImpl implements UserAppService {
return Result.ok();
}
@Override
public Result<PageVo<UserListInfoVo>> listInfo() {
List<User> users = userRepository.findAll();
ArrayList<UserListInfoVo> userListInfoVos = ListUtil.toList();
// 员工、访客
Map<User.Type, List<User>> mapTypes = users.stream().collect(Collectors.groupingBy(User::getType));
// 员工
List<User> userList = mapTypes.get(User.Type.EMPLOYEES);
// 普通人员
AtomicInteger oPer = new AtomicInteger(0);
// 内部特殊工作人员
AtomicInteger intSpPer = new AtomicInteger(0);
// 外部特殊工作人员
AtomicInteger extSpPer = new AtomicInteger(0);
// 巡检人员
AtomicInteger inspectionPer = new AtomicInteger(0);
userList.forEach(user -> {
// 特殊人员处理
if (user.getIsSpecial()) {
if (StrUtil.isNotEmpty(user.getUnit())) {
// 外部特殊人员+
extSpPer.addAndGet(1);
} else {
intSpPer.addAndGet(1);
}
return;
}
if (ObjectUtil.equal(User.Status.INSPECTION, user.getStatus())) {
inspectionPer.addAndGet(1);
return;
}
oPer.addAndGet(1);
});
// 普通人员+
userListInfoVos.add(UserListInfoVo.builder().type("普通人员").numOfPeo(oPer.get()).build());
// 内部特殊工作人员+
userListInfoVos.add(UserListInfoVo.builder().type("内部特殊工作人员").numOfPeo(intSpPer.get()).build());
// 外部特殊工作人员+
userListInfoVos.add(UserListInfoVo.builder().type("外部特殊工作人员").numOfPeo(extSpPer.get()).build());
// 巡检人员+
userListInfoVos.add(UserListInfoVo.builder().type("巡检人员").numOfPeo(inspectionPer.get()).build());
// 访客+
userListInfoVos.add(
UserListInfoVo.builder().type("访客").numOfPeo(mapTypes.get(User.Type.GUEST).size()).build()
);
PageVo<UserListInfoVo> pageVo = PageVo.build(userListInfoVos, users.size());
return Result.ok(pageVo);
}
@NotNull
private CriteriaQuery<UserVo> getUserVoCriteriaQuery(UserFindParam param) {
CriteriaBuilder cb = em.getCriteriaBuilder();
......
......@@ -41,6 +41,12 @@ public class RiskPushVo implements Serializable {
@ApiModelProperty(value = "风险等级", example = "红、橙、黄、蓝")
String level;
@ApiModelProperty(value = "撤离推送总数", example = "1")
String withdrawalPush;
@ApiModelProperty(value = "处置推送总数", example = "1")
String handlePush;
public static RiskPushVo transform(RiskPush riskPush) {
return RiskPushVo.builder().id(riskPush.getId()).level(riskPush.getLevel().text()).build();
}
......
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.FieldDefaults;
/**
* 首页数据
*
* @author LJ-2204
* @date 2022/5/25
*/
@ApiModel("UserListInfoVo")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserListInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 7533061903975538781L;
@ApiModelProperty(value = "人员类型", example = "普通人员")
String type;
@ApiModelProperty(value = "相关人数")
Integer numOfPeo;
}
......@@ -4,6 +4,7 @@ package com.yiring.app.web.key;
import com.yiring.app.param.key.KeyAlarmFindParam;
import com.yiring.app.service.key.KeyAlarmService;
import com.yiring.app.vo.key.KeyAlarmVo;
import com.yiring.app.vo.user.UserListInfoVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
......@@ -11,6 +12,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -35,19 +37,25 @@ public class KeyAlarmController {
@ApiOperation("表格查询")
@GetMapping("page")
public Result<PageVo<KeyAlarmVo>> page(KeyAlarmFindParam param, PageParam pageParam) {
public Result<PageVo<KeyAlarmVo>> page(@Valid KeyAlarmFindParam param, @Valid PageParam pageParam) {
return keyAlarmService.page(param, pageParam);
}
@ApiOperation("条件查询")
@GetMapping("find")
public Result<PageVo<KeyAlarmVo>> find(KeyAlarmFindParam param) {
public Result<PageVo<KeyAlarmVo>> find(@Valid KeyAlarmFindParam param) {
return keyAlarmService.find(param);
}
@ApiOperation("导出")
@GetMapping("export")
public void export(KeyAlarmFindParam param, HttpServletResponse response) {
public void export(@Valid KeyAlarmFindParam param, HttpServletResponse response) {
keyAlarmService.export(param, response);
}
@ApiOperation("首页数据")
@GetMapping("listInfo")
public Result<PageVo<UserListInfoVo>> listInfo(@Valid KeyAlarmFindParam param) {
return keyAlarmService.listInfo(param);
}
}
......@@ -36,7 +36,7 @@ public class KeyAlarmLogController {
@ApiOperation("表格查询")
@GetMapping("page")
public Result<PageVo<KeyAlarmLogVo>> page(KeyAlarmLogFindParam param, PageParam pageParam) {
public Result<PageVo<KeyAlarmLogVo>> page(@Valid KeyAlarmLogFindParam param, @Valid PageParam pageParam) {
return keyAlarmLogService.page(param, pageParam);
}
......
......@@ -15,6 +15,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -37,31 +38,34 @@ public class KeyAlarmRuleController {
@ApiOperation("新增报警规则")
@PostMapping("add")
public Result<String> add(KeyAlarmRuleAddParam keyAlarmRuleAddParam) {
public Result<String> add(@Valid KeyAlarmRuleAddParam keyAlarmRuleAddParam) {
return keyAlarmRuleService.add(keyAlarmRuleAddParam);
}
@ApiOperation("删除报警规则")
@DeleteMapping("delete")
public Result<String> delete(IdParam idParam) {
public Result<String> delete(@Valid IdParam idParam) {
return keyAlarmRuleService.delete(idParam);
}
@ApiOperation("更新报警规则")
@PutMapping("modify")
public Result<String> modify(KeyAlarmRuleModifyParam keyAlarmRuleModifyParam) {
public Result<String> modify(@Valid KeyAlarmRuleModifyParam keyAlarmRuleModifyParam) {
return keyAlarmRuleService.modify(keyAlarmRuleModifyParam);
}
@ApiOperation("导出")
@GetMapping("export")
public void export(KeyAlarmRuleExportParam keyAlarmRuleExportParam, HttpServletResponse response) {
public void export(@Valid KeyAlarmRuleExportParam keyAlarmRuleExportParam, HttpServletResponse response) {
keyAlarmRuleService.export(keyAlarmRuleExportParam, response);
}
@ApiOperation("表格查询")
@GetMapping("page")
public Result<PageVo<KeyAlarmRuleVo>> page(KeyAlarmRulePageParam keyAlarmRulePageParam, PageParam pageParam) {
public Result<PageVo<KeyAlarmRuleVo>> page(
@Valid KeyAlarmRulePageParam keyAlarmRulePageParam,
@Valid PageParam pageParam
) {
return keyAlarmRuleService.page(keyAlarmRulePageParam, pageParam);
}
}
......@@ -4,6 +4,7 @@ package com.yiring.app.web.user;
import com.yiring.app.param.user.*;
import com.yiring.app.service.user.UserAppService;
import com.yiring.app.vo.user.UserInfoVo;
import com.yiring.app.vo.user.UserListInfoVo;
import com.yiring.app.vo.user.UserVo;
import com.yiring.auth.param.IdsParam;
import com.yiring.common.core.Result;
......@@ -118,4 +119,10 @@ public class UserAppController {
public Result<String> batchSendCard(@RequestParam("file") MultipartFile file) {
return userService.batchSendCard(file);
}
@ApiOperation("首页数据")
@GetMapping("listInfo")
public Result<PageVo<UserListInfoVo>> listInfo() {
return userService.listInfo();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论