提交 bba3d068 作者: 17607474349

feat:

1、完善风险数据规则:撤离推送、处置推送
上级 2c7387cd
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import com.yiring.auth.domain.user.User;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment;
/**
* 风险处置推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Getter
@Setter
@ToString
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_RISK_HANDLE_PUSH")
@Comment("风险处置推送")
public class RiskHandlePush extends BasicEntity implements Serializable {
@Serial
private static final long serialVersionUID = 7118854661682647225L;
@Comment("风险推送")
@ManyToOne
RiskPush riskPush;
@Comment("通知方式")
String types;
@Comment("用户集合")
@Builder.Default
@OneToMany
Set<User> users = new HashSet<>(0);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
*
* @author LJ-2204
* @date 2022/5/6
*/
@Repository
public interface RiskHandlePushRepository
extends JpaRepository<RiskHandlePush, Serializable>, JpaSpecificationExecutor<RiskHandlePush> {}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import com.yiring.app.domain.workArea.WorkArea;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial;
import java.io.Serializable;
import javax.persistence.*;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment;
/**
* 部门信息控制器
*
* @author LJ-2204
* @date 2022/5/23
*/
@Getter
@Setter
@ToString
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_RISK_PUSH")
@Comment("风险推送")
public class RiskPush extends BasicEntity implements Serializable {
@Serial
private static final long serialVersionUID = -4532411898085672339L;
@Comment("工区")
@OneToOne
WorkArea workArea;
@Comment("风险等级")
@Enumerated(EnumType.STRING)
Level level;
// @Comment("撤离推送")
// @Builder.Default
// @OneToMany(mappedBy = "riskPush")
// Set<RiskWithdrawalPush> withdrawalPush = new HashSet<>(0);
//
// @Comment("处置推送")
// @Builder.Default
// @OneToMany(mappedBy = "riskPush")
// Set<RiskHandlePush> handlePush = new HashSet<>(0);
@SuppressWarnings({ "unused" })
public enum Level {
RED("红色预警"),
ORANGE("橙色预警"),
YELLOW("黄色预警"),
BLUE("蓝色预警");
final String text;
Level(String text) {
this.text = text;
}
public String text() {
return this.text;
}
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
*
* @author LJ-2204
* @date 2022/5/6
*/
@Repository
public interface RiskPushRepository extends JpaRepository<RiskPush, Serializable>, JpaSpecificationExecutor<RiskPush> {}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import com.yiring.common.domain.BasicEntity;
import java.io.Serial;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.FieldNameConstants;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.Comment;
/**
* 风险撤离推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Getter
@Setter
@ToString
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_RISK_WITHDRAWAL_PUSH")
@Comment("风险撤离推送")
public class RiskWithdrawalPush extends BasicEntity implements Serializable {
@Serial
private static final long serialVersionUID = -9180079134512271247L;
@Comment("风险推送")
@ManyToOne
RiskPush riskPush;
@Comment("通知方式")
String types;
@Comment("通知范围")
String scope;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.risk;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
*
* @author LJ-2204
* @date 2022/5/6
*/
@Repository
public interface RiskWithdrawalPushRepository
extends JpaRepository<RiskWithdrawalPush, Serializable>, JpaSpecificationExecutor<RiskWithdrawalPush> {}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.risk;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 处置推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("RiskHandlePushSaveParam")
public class RiskHandlePushSaveParam implements Serializable {
@Serial
private static final long serialVersionUID = 830597649929357057L;
@ApiModelProperty(value = "风险推送id", example = "1", required = true)
@NotNull(message = "风险推送id不能为空")
Long riskPushId;
@ApiModelProperty(value = "通知方式", example = "APP/SMS", required = true)
@NotEmpty(message = "通知方式不能为空")
String types;
@ApiModelProperty(value = "接收人", example = "1,2", required = true)
@NotEmpty(message = "接收人不能为空")
String userIds;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.risk;
import com.yiring.app.domain.risk.RiskPush;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("RiskPushConditionParam")
public class RiskPushConditionParam implements Serializable {
@Serial
private static final long serialVersionUID = -6881143618338622978L;
@ApiModelProperty(value = "工区id", example = "1")
Long workId;
@ApiModelProperty(value = "风险等级", example = "RED/ORANGE/YELLOW/BLUE")
RiskPush.Level level;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.risk;
import com.yiring.app.domain.risk.RiskPush;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("RiskPushSaveParam")
public class RiskPushSaveParam implements Serializable {
@Serial
private static final long serialVersionUID = 1001709895607191990L;
@ApiModelProperty(value = "工区id", example = "1", required = true)
@NotNull(message = "工区id不能为空")
Long workId;
@ApiModelProperty(value = "风险等级", example = "RED/ORANGE/YELLOW/BLUE", required = true)
@NotNull(message = "风险等级不能为空")
RiskPush.Level level;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.risk;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 部门信息控制器
*
* @author LJ-2204
* @date 2022/5/24
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel("RiskWithdrawalPushSaveParam")
public class RiskWithdrawalPushSaveParam implements Serializable {
@Serial
private static final long serialVersionUID = -3521301923886149409L;
@ApiModelProperty(value = "风险推送id", example = "1", required = true)
@NotNull(message = "风险推送id不能为空")
Long riskPushId;
@ApiModelProperty(value = "通知方式", example = "APP/SMS", required = true)
@NotEmpty(message = "通知方式不能为空")
String types;
@ApiModelProperty(value = "通知范围", example = "23", required = true)
@NotEmpty(message = "通知范围不能为空")
String scope;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.risk;
import com.yiring.app.param.risk.RiskHandlePushSaveParam;
import com.yiring.app.vo.risk.RiskHandlePushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
/**
* 处置推送
*
* @author LJ-2204
* @date 2022/5/24
*/
public interface RiskHandlePushService {
/**
* 新增
* @param param RiskHandlePushSaveParam
* @return Result<String>
*/
Result<String> add(RiskHandlePushSaveParam param);
/**
* 分页查询
* @param pageParam PageParam
* @return Result<PageVo<RiskHandlePushVo>>
*/
Result<PageVo<RiskHandlePushVo>> page(PageParam pageParam);
/**
* 删除
* @param idParam IdParam
* @return Result<String>
*/
Result<String> delete(IdParam idParam);
/**
* 编辑
* @param param RiskHandlePushSaveParam
* @param idParam IdParam
* @return Result<String>
*/
Result<String> modify(RiskHandlePushSaveParam param, IdParam idParam);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.risk;
import com.yiring.app.param.risk.RiskPushConditionParam;
import com.yiring.app.param.risk.RiskPushSaveParam;
import com.yiring.app.vo.risk.RiskPushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
public interface RiskPushService {
/**
* 新增
* @param param RiskPushSaveParam
* @return Result<String>
*/
Result<String> add(RiskPushSaveParam param);
/**
* 删除
* @param idParam IdParam
* @return Result<String>
*/
Result<String> delete(IdParam idParam);
/**
* 分页查询
* @param param RiskPushConditionParam
* @param pageParam PageParam
* @return Result<PageVo<RiskPushVo>>
*/
Result<PageVo<RiskPushVo>> page(RiskPushConditionParam param, PageParam pageParam);
/**
* 查询详情
* @param idParam IdParam
* @return Result<RiskPushVo>
*/
Result<RiskPushVo> info(IdParam idParam);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.risk;
import com.yiring.app.param.risk.RiskWithdrawalPushSaveParam;
import com.yiring.app.vo.risk.RiskWithdrawalPushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
/**
* 撤离推送
*
* @author LJ-2204
* @date 2022/5/24
*/
public interface RiskWithdrawalPushService {
/**
* 新增
* @param param RiskWithdrawalPushSaveParam
* @return Result<String>
*/
Result<String> add(RiskWithdrawalPushSaveParam param);
/**
* 分页查询
* @param pageParam PageParam
* @return Result<PageVo<RiskWithdrawalPushVo>>
*/
Result<PageVo<RiskWithdrawalPushVo>> page(PageParam pageParam);
/**
* 删除
* @param idParam IdParam
* @return Result<String>
*/
Result<String> delete(IdParam idParam);
/**
* 修改
* @param param RiskWithdrawalPushSaveParam
* @param idParam IdParam
* @return Result<String>
*/
Result<String> modify(RiskWithdrawalPushSaveParam param, IdParam idParam);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.risk.impl;
import cn.hutool.core.convert.Convert;
import com.yiring.app.domain.risk.RiskHandlePush;
import com.yiring.app.domain.risk.RiskHandlePushRepository;
import com.yiring.app.domain.risk.RiskPush;
import com.yiring.app.domain.risk.RiskPushRepository;
import com.yiring.app.param.risk.RiskHandlePushSaveParam;
import com.yiring.app.service.risk.RiskHandlePushService;
import com.yiring.app.vo.risk.RiskHandlePushVo;
import com.yiring.auth.domain.user.User;
import com.yiring.auth.domain.user.UserRepository;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 处置推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class RiskHandlePushServiceImpl implements RiskHandlePushService {
@Resource
RiskHandlePushRepository riskHandlePushRepository;
@Resource
RiskPushRepository riskPushRepository;
@Resource
UserRepository userRepository;
@Override
public Result<String> add(RiskHandlePushSaveParam param) {
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(param.getRiskPushId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "风险规则不存在");
}
RiskHandlePush riskHandlePush = Convert.convert(RiskHandlePush.class, param);
riskHandlePush.setRiskPush(riskHandlePush.getRiskPush());
String[] split = param.getUserIds().split(",");
Long[] userIds = Convert.toLongArray(split);
List<User> users = userRepository.findAllById(Arrays.asList(userIds));
users.forEach(user -> riskHandlePush.getUsers().add(user));
riskHandlePushRepository.save(riskHandlePush);
return Result.ok();
}
@Override
public Result<PageVo<RiskHandlePushVo>> page(PageParam pageParam) {
Pageable pageable = PageRequest.of(pageParam.getPageNo() - 1, pageParam.getPageSize());
Page<RiskHandlePush> riskHandlePushes = riskHandlePushRepository.findAll(pageable);
List<RiskHandlePushVo> riskHandlePushVos = riskHandlePushes
.stream()
.map(riskHandlePush -> {
RiskHandlePushVo riskHandlePushVo = Convert.convert(RiskHandlePushVo.class, riskHandlePush);
Set<User> users = riskHandlePush.getUsers();
StringBuilder userName = new StringBuilder();
users.forEach(user -> userName.append(user.getRealName()).append(","));
if (userName.length() > 0) {
String names = userName.substring(0, userName.length() - 1);
riskHandlePushVo.setUsers(names);
}
return riskHandlePushVo;
})
.collect(Collectors.toList());
PageVo<RiskHandlePushVo> pageVo = PageVo.build(riskHandlePushVos, riskHandlePushes.getTotalElements());
return Result.ok(pageVo);
}
@Override
public Result<String> delete(IdParam idParam) {
Optional<RiskHandlePush> riskHandlePushOptional = riskHandlePushRepository.findById(idParam.getId());
if (riskHandlePushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "处置推送不存在");
}
riskHandlePushRepository.delete(riskHandlePushOptional.get());
return Result.ok();
}
@Override
public Result<String> modify(RiskHandlePushSaveParam param, IdParam idParam) {
Optional<RiskHandlePush> riskHandlePushOptional = riskHandlePushRepository.findById(idParam.getId());
if (riskHandlePushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "处置推送不存在");
}
RiskHandlePush riskHandlePush = riskHandlePushOptional.get();
riskHandlePush.setTypes(param.getTypes());
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(param.getRiskPushId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "风险规则不存在");
}
riskHandlePush.setRiskPush(riskPushOptional.get());
String[] split = param.getUserIds().split(",");
Long[] userIds = Convert.toLongArray(split);
List<User> users = userRepository.findAllById(Arrays.asList(userIds));
riskHandlePush.getUsers().clear();
users.forEach(user -> riskHandlePush.getUsers().add(user));
riskHandlePushRepository.save(riskHandlePush);
return Result.ok();
}
}
/* (C) 2022 YiRing, Inc. */
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.workArea.WorkArea;
import com.yiring.app.domain.workArea.WorkAreaRepository;
import com.yiring.app.param.risk.RiskPushConditionParam;
import com.yiring.app.param.risk.RiskPushSaveParam;
import com.yiring.app.service.risk.RiskPushService;
import com.yiring.app.vo.risk.RiskPushVo;
import com.yiring.app.vo.workArea.WorkAreaVo;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.domain.BasicEntity;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class RiskPushServiceImpl implements RiskPushService {
@Resource
RiskPushRepository riskPushRepository;
@Resource
WorkAreaRepository workAreaRepository;
@Override
public Result<String> add(RiskPushSaveParam param) {
Optional<WorkArea> workAreaOptional = workAreaRepository.findById(param.getWorkId());
if (workAreaOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "工区不存在");
}
WorkArea workArea = workAreaOptional.get();
RiskPush riskPush = RiskPush.builder().workArea(workArea).level(param.getLevel()).build();
riskPushRepository.save(riskPush);
return Result.ok();
}
@Override
public Result<String> delete(IdParam idParam) {
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(idParam.getId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "规则不存在");
}
riskPushRepository.delete(riskPushOptional.get());
return Result.ok();
}
@Override
public Result<PageVo<RiskPushVo>> page(RiskPushConditionParam param, PageParam pageParam) {
Pageable pageable = PageRequest.of(pageParam.getPageNo() - 1, pageParam.getPageSize());
Page<RiskPush> riskPushes = riskPushRepository.findAll(condition(param), pageable);
List<RiskPushVo> riskPushVos = riskPushes
.stream()
.map(riskPush -> {
RiskPushVo riskPushVo = RiskPushVo.transform(riskPush);
if (ObjectUtil.isNotEmpty(riskPush.getWorkArea())) {
WorkArea workArea = riskPush.getWorkArea();
WorkAreaVo workAreaVo = Convert.convert(WorkAreaVo.class, workArea);
riskPushVo.setWorkAreaVo(workAreaVo);
}
return riskPushVo;
})
.collect(Collectors.toList());
PageVo<RiskPushVo> pageVo = PageVo.build(riskPushVos, riskPushes.getTotalElements());
return Result.ok(pageVo);
}
@Override
public Result<RiskPushVo> info(IdParam idParam) {
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(idParam.getId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "风险规则不存在");
}
RiskPush riskPush = riskPushOptional.get();
RiskPushVo riskPushVo = Convert.convert(RiskPushVo.class, riskPush);
if (ObjectUtil.isNotEmpty(riskPush.getWorkArea())) {
WorkArea workArea = riskPush.getWorkArea();
WorkAreaVo workAreaVo = Convert.convert(WorkAreaVo.class, workArea);
riskPushVo.setWorkAreaVo(workAreaVo);
}
return Result.ok(riskPushVo);
}
public Specification<RiskPush> condition(RiskPushConditionParam param) {
return (root, cq, cb) -> {
List<Predicate> predicates = ListUtil.toList();
if (ObjectUtil.isNotEmpty(param.getWorkId())) {
predicates.add(
cb.equal(root.get(RiskPush.Fields.workArea).get(BasicEntity.Fields.id), param.getWorkId())
);
}
if (ObjectUtil.isNotEmpty(param.getLevel())) {
predicates.add(cb.equal(root.get(RiskPush.Fields.level), param.getLevel()));
}
Order order = cb.desc(root.get(BasicEntity.Fields.createTime));
return cq.orderBy(order).where(predicates.toArray(new Predicate[0])).getRestriction();
};
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.risk.impl;
import cn.hutool.core.convert.Convert;
import com.yiring.app.domain.risk.RiskPush;
import com.yiring.app.domain.risk.RiskPushRepository;
import com.yiring.app.domain.risk.RiskWithdrawalPush;
import com.yiring.app.domain.risk.RiskWithdrawalPushRepository;
import com.yiring.app.param.risk.RiskWithdrawalPushSaveParam;
import com.yiring.app.service.risk.RiskWithdrawalPushService;
import com.yiring.app.vo.risk.RiskWithdrawalPushVo;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 撤离推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class RiskWithdrawalPushServiceImpl implements RiskWithdrawalPushService {
@Resource
RiskWithdrawalPushRepository riskWithdrawalPushRepository;
@Resource
RiskPushRepository riskPushRepository;
@Override
public Result<String> add(RiskWithdrawalPushSaveParam param) {
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(param.getRiskPushId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "风险规则不存在");
}
RiskWithdrawalPush riskWithdrawalPush = Convert.convert(RiskWithdrawalPush.class, param);
riskWithdrawalPush.setRiskPush(riskPushOptional.get());
riskWithdrawalPushRepository.save(riskWithdrawalPush);
return Result.ok();
}
@Override
public Result<PageVo<RiskWithdrawalPushVo>> page(PageParam pageParam) {
Pageable pageable = PageRequest.of(pageParam.getPageNo() - 1, pageParam.getPageSize());
Page<RiskWithdrawalPush> riskWithdrawalPushes = riskWithdrawalPushRepository.findAll(pageable);
List<RiskWithdrawalPushVo> riskWithdrawalPushVos = riskWithdrawalPushes
.stream()
.map(riskWithdrawalPush -> Convert.convert(RiskWithdrawalPushVo.class, riskWithdrawalPush))
.collect(Collectors.toList());
PageVo<RiskWithdrawalPushVo> pageVo = PageVo.build(
riskWithdrawalPushVos,
riskWithdrawalPushes.getTotalElements()
);
return Result.ok(pageVo);
}
@Override
public Result<String> delete(IdParam idParam) {
Optional<RiskWithdrawalPush> riskWithdrawalPushOptional = riskWithdrawalPushRepository.findById(
idParam.getId()
);
if (riskWithdrawalPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "撤离推送数据不存在");
}
riskWithdrawalPushRepository.delete(riskWithdrawalPushOptional.get());
return Result.ok();
}
@Override
public Result<String> modify(RiskWithdrawalPushSaveParam param, IdParam idParam) {
Optional<RiskWithdrawalPush> riskWithdrawalPushOptional = riskWithdrawalPushRepository.findById(
idParam.getId()
);
if (riskWithdrawalPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "撤离推送数据不存在");
}
RiskWithdrawalPush riskWithdrawalPush = riskWithdrawalPushOptional.get();
Optional<RiskPush> riskPushOptional = riskPushRepository.findById(param.getRiskPushId());
if (riskPushOptional.isEmpty()) {
return Result.no(Status.BAD_REQUEST, "风险规则不存在");
}
riskWithdrawalPush.setRiskPush(riskPushOptional.get());
riskWithdrawalPush.setScope(param.getScope());
riskWithdrawalPush.setTypes(param.getTypes());
riskWithdrawalPushRepository.save(riskWithdrawalPush);
return Result.ok();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.risk;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 处置推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("RiskHandlePushVo")
public class RiskHandlePushVo implements Serializable {
@Serial
private static final long serialVersionUID = 2933927953440725113L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "通知方式", example = "APP/SMS")
String types;
@ApiModelProperty(value = "接收人", example = "6,5")
String users;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.vo.risk;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiring.app.domain.risk.RiskPush;
import com.yiring.app.vo.workArea.WorkAreaVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("RiskPushVo")
public class RiskPushVo implements Serializable {
@Serial
private static final long serialVersionUID = -7639234704874660621L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "工区相关信息", example = "workAreaVo")
WorkAreaVo workAreaVo;
@ApiModelProperty(value = "风险等级", example = "红、橙、黄、蓝")
String level;
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.risk;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serial;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 撤离推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("RiskWithdrawalPushVo")
public class RiskWithdrawalPushVo implements Serializable {
@Serial
private static final long serialVersionUID = 7722496117450005400L;
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(value = "id", example = "1")
Long id;
@ApiModelProperty(value = "通知方式", example = "APP/SMS")
String types;
@ApiModelProperty(value = "通知范围", example = "23")
String scope;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.risk;
import com.yiring.app.param.risk.RiskHandlePushSaveParam;
import com.yiring.app.service.risk.RiskHandlePushService;
import com.yiring.app.vo.risk.RiskHandlePushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 处置推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Slf4j
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "处置推送", description = "RiskHandlePush")
@RestController
@RequestMapping("/risk/handle/push/")
public class RiskHandlePushController {
@Resource
RiskHandlePushService riskHandlePushService;
@ApiOperation("新增")
@PostMapping("add")
public Result<String> add(@Valid RiskHandlePushSaveParam param) {
return riskHandlePushService.add(param);
}
@ApiOperation("分页查询")
@GetMapping("page")
public Result<PageVo<RiskHandlePushVo>> page(@Valid PageParam pageParam) {
return riskHandlePushService.page(pageParam);
}
@ApiOperation("删除")
@DeleteMapping("delete")
public Result<String> delete(@Valid IdParam idParam) {
return riskHandlePushService.delete(idParam);
}
@ApiOperation("编辑")
@PutMapping("modify")
public Result<String> modify(@Valid RiskHandlePushSaveParam param, @Valid IdParam idParam) {
return riskHandlePushService.modify(param, idParam);
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.risk;
import com.yiring.app.param.risk.RiskPushConditionParam;
import com.yiring.app.param.risk.RiskPushSaveParam;
import com.yiring.app.service.risk.RiskPushService;
import com.yiring.app.vo.risk.RiskPushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 风险推送
*
* @author LJ-2204
* @date 2022/5/23
*/
@Slf4j
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "风险推送", description = "RiskPush")
@RestController
@RequestMapping("/risk/push/")
public class RiskPushController {
@Resource
RiskPushService riskPushService;
@ApiOperation("新增")
@PostMapping("add")
public Result<String> add(@Valid RiskPushSaveParam param) {
return riskPushService.add(param);
}
@ApiOperation("删除")
@DeleteMapping("delete")
public Result<String> delete(@Valid IdParam idParam) {
return riskPushService.delete(idParam);
}
@ApiOperation("分页查询")
@GetMapping("page")
public Result<PageVo<RiskPushVo>> page(@Valid RiskPushConditionParam param, @Valid PageParam pageParam) {
return riskPushService.page(param, pageParam);
}
@ApiOperation("查询详情")
@GetMapping("info")
public Result<RiskPushVo> info(@Valid IdParam idParam) {
return riskPushService.info(idParam);
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.web.risk;
import com.yiring.app.param.risk.RiskWithdrawalPushSaveParam;
import com.yiring.app.service.risk.RiskWithdrawalPushService;
import com.yiring.app.vo.risk.RiskWithdrawalPushVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.param.PageParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 撤离推送
*
* @author LJ-2204
* @date 2022/5/24
*/
@Slf4j
@Validated
@SuppressWarnings({ "deprecation" })
@Api(tags = "撤离推送", description = "RiskWithdrawalPush")
@RestController
@RequestMapping("/risk/withdrawal/push/")
public class RiskWithdrawalPushController {
@Resource
RiskWithdrawalPushService riskWithdrawalPushService;
@ApiOperation("新增")
@PostMapping("add")
public Result<String> add(@Valid RiskWithdrawalPushSaveParam param) {
return riskWithdrawalPushService.add(param);
}
@ApiOperation("分页查询")
@GetMapping("page")
public Result<PageVo<RiskWithdrawalPushVo>> page(@Valid PageParam pageParam) {
return riskWithdrawalPushService.page(pageParam);
}
@ApiOperation("删除")
@DeleteMapping("delete")
public Result<String> delete(@Valid IdParam idParam) {
return riskWithdrawalPushService.delete(idParam);
}
@ApiOperation("编辑")
@PutMapping("modify")
public Result<String> modify(@Valid RiskWithdrawalPushSaveParam param, @Valid IdParam idParam) {
return riskWithdrawalPushService.modify(param, idParam);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论