1.用户对象管理业务迁移

This commit is contained in:
2026-02-10 14:36:12 +08:00
parent fd04c21997
commit aecee4de49
5 changed files with 386 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
package com.njcn.device.pq.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Author: cdf
* @CreateTime: 2025-12-02
* @Description:
*/
@Data
public class PqSensitiveUserParam {
/**
* 敏感用户名称
*/
@NotBlank(message = "用户名称不可为空")
@ApiModelProperty(name = "name",value = "用户名称不可为空")
private String name;
/**
* 敏感负荷类型
*/
@NotBlank(message = "敏感负荷类型不可为空")
@ApiModelProperty(name = "loadType",value = "敏感负荷类型")
private String loadType;
/**
* 用户协议容量
*/
@Range(min = 0,max = 10000000 )
@ApiModelProperty(name = "userAgreementCapacity",value = "用户协议容量")
private Double userAgreementCapacity;
/**
* 装机容量
*/
@Range(min = 0,max = 10000000 )
@ApiModelProperty(name = "installedCapacity",value = "装机容量")
private Double installedCapacity;
/**
* 所属厂站名称
*/
@NotBlank(message = "所属厂站名称不可为空")
@ApiModelProperty(name = "substationName",value = "所属厂站名称")
private String substationName;
/**
* 排序
*/
@NotNull(message = "排序不可为空")
@ApiModelProperty(name = "sort",value = "排序")
private Integer sort;
@Data
@EqualsAndHashCode(callSuper = true)
public static class UpdatePqSensitiveUserParam extends PqSensitiveUserParam{
/**
* id
*/
@NotBlank(message = "id不可为空")
@ApiModelProperty(name = "id",value = "id")
private String id;
}
}

View File

@@ -0,0 +1,64 @@
package com.njcn.device.pq.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author xy
* @since 2025-11-17
*/
@Data
public class PqSensitiveUserVo implements Serializable{
private static final long serialVersionUID = 1L;
/**
* id
*/
private String id;
/**
* 敏感用户名称
*/
private String name;
/**
* 敏感负荷类型
*/
private String loadType;
/**
* 排序
*/
private Integer sort;
/**
* 是否监测
*/
private String isMonitor;
/**
* 是否治理
*/
private String isGovern;
/**
* 用户协议容量
*/
private Double userAgreementCapacity;
/**
* 装机容量
*/
private Double installedCapacity;
/**
* 所属厂站名称
*/
private String substationName;
}

View File

@@ -0,0 +1,113 @@
package com.njcn.device.pq.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.biz.pojo.po.PqSensitiveUser;
import com.njcn.device.pq.pojo.param.PqSensitiveUserParam;
import com.njcn.device.pq.pojo.vo.PqSensitiveUserVo;
import com.njcn.device.pqUser.service.IPqSensitiveUserService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* <p>
* 前端控制器
* </p>
*
* @author xy
* @since 2025-11-17
*/
@Slf4j
@RestController
@RequestMapping("/pqSensitiveUser")
@Api(tags = "敏感负荷用户管理")
@AllArgsConstructor
public class PqSensitiveUserController extends BaseController {
private final IPqSensitiveUserService pqSensitiveUserService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getList")
@ApiOperation("获取敏感负荷用户列表")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
public HttpResult<Page<PqSensitiveUserVo>> getList(@RequestBody BaseParam param) {
String methodDescribe = getMethodDescribe("getList");
Page<PqSensitiveUserVo> page = pqSensitiveUserService.getList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getListByIds")
@ApiOperation("根据id集合获取敏感负荷用户列表")
@ApiImplicitParam(name = "ids", value = "id集合")
public HttpResult<List<PqSensitiveUser>> getListByIds(@RequestParam(name = "ids", required = false) List<String> ids) {
String methodDescribe = getMethodDescribe("getListByIds");
List<PqSensitiveUser> list;
list = pqSensitiveUserService.list(
new LambdaQueryWrapper<PqSensitiveUser>().in(PqSensitiveUser::getId, ids)
);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 新增用户对象
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/save")
@ApiOperation("新增用户对象")
public HttpResult<Boolean> save(@RequestBody @Validated PqSensitiveUserParam pqSensitiveUserParam) {
String methodDescribe = getMethodDescribe("save");
pqSensitiveUserService.save(pqSensitiveUserParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
/**
* 修改用户对象
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE)
@PostMapping("/update")
@ApiOperation("修改用户对象")
public HttpResult<Boolean> update(@RequestBody @Validated PqSensitiveUserParam.UpdatePqSensitiveUserParam pqSensitiveUserParam) {
String methodDescribe = getMethodDescribe("update");
pqSensitiveUserService.update(pqSensitiveUserParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
/**
* 删除用户对象
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE)
@PostMapping("/delete")
@ApiOperation("删除用户对象")
@ApiImplicitParam(name = "ids", value = "id集合")
public HttpResult<Boolean> delete(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("delete");
pqSensitiveUserService.removeByIds(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
}

View File

@@ -0,0 +1,26 @@
package com.njcn.device.pqUser.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.po.PqSensitiveUser;
import com.njcn.device.pq.pojo.param.PqSensitiveUserParam;
import com.njcn.device.pq.pojo.vo.PqSensitiveUserVo;
import com.njcn.web.pojo.param.BaseParam;
/**
* <p>
* 服务类
* </p>
*
* @author xy
* @since 2025-11-17
*/
public interface IPqSensitiveUserService extends IService<PqSensitiveUser> {
Page<PqSensitiveUserVo> getList(BaseParam param);
boolean save(PqSensitiveUserParam pqSensitiveUserParam);
boolean update(PqSensitiveUserParam.UpdatePqSensitiveUserParam pqSensitiveUserParam);
}

View File

@@ -0,0 +1,107 @@
package com.njcn.device.pqUser.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.mapper.PqSensitiveUserMapper;
import com.njcn.device.biz.pojo.po.PqSensitiveUser;
import com.njcn.device.pq.pojo.param.PqSensitiveUserParam;
import com.njcn.device.pq.pojo.vo.PqSensitiveUserVo;
import com.njcn.device.pqUser.service.IPqSensitiveUserService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.pojo.param.BaseParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author xy
* @since 2025-11-17
*/
@DS("sjzx")
@Slf4j
@Service
@RequiredArgsConstructor
public class PqSensitiveUserServiceImpl extends ServiceImpl<PqSensitiveUserMapper, PqSensitiveUser> implements IPqSensitiveUserService {
private final DicDataFeignClient dicDataFeignClient;
@Override
public Page<PqSensitiveUserVo> getList(BaseParam param) {
Page<PqSensitiveUserVo> result = new Page<>(param.getPageNum(),param.getPageSize());
LambdaQueryWrapper<PqSensitiveUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.orderByDesc(PqSensitiveUser::getSort);
if (StrUtil.isNotBlank(param.getSearchValue())) {
lambdaQueryWrapper.like(PqSensitiveUser::getName, param.getSearchValue());
}
Page<PqSensitiveUser> page = this.page(new Page<>(param.getPageNum(),param.getPageSize()),lambdaQueryWrapper);
if(CollUtil.isNotEmpty(page.getRecords())){
List<PqSensitiveUserVo> dataGroupEventVOList = new ArrayList<>();
page.getRecords().forEach(item->{
PqSensitiveUserVo vo = new PqSensitiveUserVo();
BeanUtil.copyProperties(item,vo);
dataGroupEventVOList.add(vo);
});
result.setRecords(dataGroupEventVOList);
result.setTotal(page.getTotal());
result.setSize(page.getSize());
result.setCurrent(page.getCurrent());
result.setPages(page.getPages());
}
return result;
}
@Override
public boolean save(PqSensitiveUserParam pqSensitiveUserParam) {
checkParam(pqSensitiveUserParam,false);
PqSensitiveUser pqSensitiveUser = new PqSensitiveUser();
BeanUtil.copyProperties(pqSensitiveUserParam,pqSensitiveUser);
return this.save(pqSensitiveUser);
}
@Override
public boolean update(PqSensitiveUserParam.UpdatePqSensitiveUserParam pqSensitiveUserParam) {
checkParam(pqSensitiveUserParam,true);
PqSensitiveUser pqSensitiveUser = new PqSensitiveUser();
BeanUtil.copyProperties(pqSensitiveUserParam,pqSensitiveUser);
return this.updateById(pqSensitiveUser);
}
private void checkParam(PqSensitiveUserParam param,boolean update){
DictData data = dicDataFeignClient.getDicDataById(param.getLoadType()).getData();
if(Objects.isNull(data)){
throw new BusinessException(CommonResponseEnum.FAIL,"字典负荷类型缺失!");
}
LambdaQueryWrapper<PqSensitiveUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PqSensitiveUser::getName,param.getName());
if(update){
if(param instanceof PqSensitiveUserParam.UpdatePqSensitiveUserParam){
lambdaQueryWrapper.ne(PqSensitiveUser::getId,((PqSensitiveUserParam.UpdatePqSensitiveUserParam) param).getId());
}
}
int count = this.count(lambdaQueryWrapper);
if(count>0){
throw new BusinessException(CommonResponseEnum.FAIL,"用户名称重复!");
}
}
}