feat(pocket): 新增历史与停机管理功能- 在服务接口中增加insertByBo、updateByBo和deleteWithValidByIds方法

- 控制器中实现新增、修改、删除及详情查询接口- 使用@Log注解记录操作日志,支持防重复提交
- 实现数据校验逻辑,确保实体保存前的合法性
- 支持通过主键批量删除历史与停机信息
- 引入BeanUtil工具类简化BO到实体的转换过程
This commit is contained in:
JR
2025-10-30 10:49:56 +08:00
parent e9f3288bd0
commit 2338940b7e
6 changed files with 223 additions and 0 deletions

View File

@@ -1,5 +1,11 @@
package com.klp.pocket.controller;
import com.klp.common.annotation.Log;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
@@ -10,6 +16,11 @@ import com.klp.pocket.domain.bo.Klptcm1ProPlantStateHistoryBo;
import com.klp.pocket.service.IKlptcm1ProPlantStateHistoryService;
import com.klp.common.core.page.TableDataInfo;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.Date;
/**
* 历史
*
@@ -32,4 +43,46 @@ public class Klptcm1ProPlantStateHistoryController extends BaseController {
return iKlptcm1ProPlantStateHistoryService.queryPageList(bo, pageQuery);
}
/**
* 获取历史详细信息
*
* @param INSDATE 主键
*/
@GetMapping("/{INSDATE}")
public R<Klptcm1ProPlantStateHistoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Date INSDATE) {
return R.ok(iKlptcm1ProPlantStateHistoryService.queryById(INSDATE));
}
/**
* 新增历史
*/
@Log(title = "历史", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Klptcm1ProPlantStateHistoryBo bo) {
return toAjax(iKlptcm1ProPlantStateHistoryService.insertByBo(bo));
}
/**
* 修改历史
*/
@Log(title = "历史", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Klptcm1ProPlantStateHistoryBo bo) {
return toAjax(iKlptcm1ProPlantStateHistoryService.updateByBo(bo));
}
/**
* 删除历史
*
* @param INSDATEs 主键串
*/
@Log(title = "历史", businessType = BusinessType.DELETE)
@DeleteMapping("/{INSDATEs}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Date[] INSDATEs) {
return toAjax(iKlptcm1ProPlantStateHistoryService.deleteWithValidByIds(Arrays.asList(INSDATEs), true));
}
}

View File

@@ -1,5 +1,11 @@
package com.klp.pocket.controller;
import com.klp.common.annotation.Log;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
@@ -10,6 +16,10 @@ import com.klp.pocket.domain.bo.Klptcm1ProStoppageBo;
import com.klp.pocket.service.IKlptcm1ProStoppageService;
import com.klp.common.core.page.TableDataInfo;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 停机
*
@@ -32,4 +42,46 @@ public class Klptcm1ProStoppageController extends BaseController {
return iKlptcm1ProStoppageService.queryPageList(bo, pageQuery);
}
/**
* 获取停机详细信息
*
* @param STOPID 主键
*/
@GetMapping("/{STOPID}")
public R<Klptcm1ProStoppageVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long STOPID) {
return R.ok(iKlptcm1ProStoppageService.queryById(STOPID));
}
/**
* 新增停机
*/
@Log(title = "停机", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Klptcm1ProStoppageBo bo) {
return toAjax(iKlptcm1ProStoppageService.insertByBo(bo));
}
/**
* 修改停机
*/
@Log(title = "停机", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Klptcm1ProStoppageBo bo) {
return toAjax(iKlptcm1ProStoppageService.updateByBo(bo));
}
/**
* 删除停机
*
* @param STOPIDs 主键串
*/
@Log(title = "停机", businessType = BusinessType.DELETE)
@DeleteMapping("/{STOPIDs}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] STOPIDs) {
return toAjax(iKlptcm1ProStoppageService.deleteWithValidByIds(Arrays.asList(STOPIDs), true));
}
}

View File

@@ -5,6 +5,7 @@ import com.klp.pocket.domain.bo.Klptcm1ProPlantStateHistoryBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.Date;
import java.util.List;
@@ -31,4 +32,18 @@ public interface IKlptcm1ProPlantStateHistoryService {
*/
List<Klptcm1ProPlantStateHistoryVo> queryList(Klptcm1ProPlantStateHistoryBo bo);
/**
* 新增历史
*/
Boolean insertByBo(Klptcm1ProPlantStateHistoryBo bo);
/**
* 修改历史
*/
Boolean updateByBo(Klptcm1ProPlantStateHistoryBo bo);
/**
* 校验并批量删除历史信息
*/
Boolean deleteWithValidByIds(Collection<Date> ids, Boolean isValid);
}

View File

@@ -5,6 +5,7 @@ import com.klp.pocket.domain.bo.Klptcm1ProStoppageBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
@@ -29,4 +30,19 @@ public interface IKlptcm1ProStoppageService {
* 查询停机列表
*/
List<Klptcm1ProStoppageVo> queryList(Klptcm1ProStoppageBo bo);
/**
* 新增停机
*/
Boolean insertByBo(Klptcm1ProStoppageBo bo);
/**
* 修改停机
*/
Boolean updateByBo(Klptcm1ProStoppageBo bo);
/**
* 校验并批量删除停机信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,5 +1,6 @@
package com.klp.pocket.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
@@ -14,6 +15,7 @@ import com.klp.pocket.domain.Klptcm1ProPlantStateHistory;
import com.klp.pocket.mapper.Klptcm1ProPlantStateHistoryMapper;
import com.klp.pocket.service.IKlptcm1ProPlantStateHistoryService;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -169,4 +171,46 @@ public class Klptcm1ProPlantStateHistoryServiceImpl implements IKlptcm1ProPlantS
lqw.eq(bo.getVALUE99() != null, Klptcm1ProPlantStateHistory::getValue99, bo.getVALUE99());
return lqw;
}
/**
* 新增历史
*/
@Override
public Boolean insertByBo(Klptcm1ProPlantStateHistoryBo bo) {
Klptcm1ProPlantStateHistory add = BeanUtil.toBean(bo, Klptcm1ProPlantStateHistory.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setINSDATE(add.getInsdate());
}
return flag;
}
/**
* 修改历史
*/
@Override
public Boolean updateByBo(Klptcm1ProPlantStateHistoryBo bo) {
Klptcm1ProPlantStateHistory update = BeanUtil.toBean(bo, Klptcm1ProPlantStateHistory.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Klptcm1ProPlantStateHistory entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除历史
*/
@Override
public Boolean deleteWithValidByIds(Collection<Date> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -1,5 +1,6 @@
package com.klp.pocket.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
@@ -15,6 +16,7 @@ import com.klp.pocket.domain.Klptcm1ProStoppage;
import com.klp.pocket.mapper.Klptcm1ProStoppageMapper;
import com.klp.pocket.service.IKlptcm1ProStoppageService;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -77,4 +79,45 @@ public class Klptcm1ProStoppageServiceImpl implements IKlptcm1ProStoppageService
return lqw;
}
/**
* 新增停机
*/
@Override
public Boolean insertByBo(Klptcm1ProStoppageBo bo) {
Klptcm1ProStoppage add = BeanUtil.toBean(bo, Klptcm1ProStoppage.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setSTOPID(add.getStopid());
}
return flag;
}
/**
* 修改停机
*/
@Override
public Boolean updateByBo(Klptcm1ProStoppageBo bo) {
Klptcm1ProStoppage update = BeanUtil.toBean(bo, Klptcm1ProStoppage.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Klptcm1ProStoppage entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除停机
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}